• 21 mai 2013

    Le cloud, les frameworks : les couches d’abstraction ou la course à la puissance ?

    Un article paru sur wired ou encore le débat en vidéo paru sur GIGAOM nous ont fait réagir. Quel est le fond du message ? Aujourd’hui, l’administration système subit la même évolution que le développement, et l’industrialisation de l’infrastructure est à l’administration système ce que les frameworks/EDI sont au développement : s’éloigner de plus en plus des ressources matérielles. Cette analogie a ses limites, mais met en évidence une chose : l’expertise est rare. Les meilleurs développeurs connaissent aussi bien le développement que la machine.

    La dette technique explose

    Rappelez-vous : un jeu comme Another World tournait sur une machine de 7,09 Mhz avec 512 ko de mémoire vive. Eric Chahi a su et a pu faire tourner son jeu sur 2 disquettes 880 ko sur un Amiga 500. Aujourd’hui, il faut 210 Mo, un PC d’1,4 GHZ avec 512 Mo de mémoire vive. Hormis les améliorations graphiques et sonores, est-ce qu’un coefficient multiplicateur de 200 pour la puissance et 1024 pour la mémoire sont vraiment justifiés ? Programmer en assembleur n’est pas possible mais avoir ces ordres de coefficients multiplicateurs relèvent une chose : les ressources sont considérées comme infinies.

    picture-5

    Les ressources infinies : les frameworks et la loi de MooreMore power

    La tendance est la même pour des applications hébergées : les ressources sont souvent considérées, à tort, comme presque infinies surtout avec l’arrivée du Cloud. Oui, bien sûr, le prix de ces ressources a très largement chuté, ce qui a rendu cette augmentation de consommation de ressources « supportable ». La loi de Moore et les commodités apportées par les frameworks ont permis de multiplier les développements d’applications, mais elles ont aussi inscrit « les ressources infinies » dans l’inconscient collectif.

    « Aujourd’hui, on peut planter un clou avec une massue mais sans reconstruire le marteau »

    Les frameworks sont des couches d’abstraction qui empilent les boîtes noires. Pour les nouvelles générations de développeurs, la compréhension et l’utilité des listes chaînées, d’un pointeur ou d’une table de hash ne paraîssent plus si importantes. Grâce aux Frameworks, on peut faire très facilement des « Hello world », mais qui peuvent consommer jusqu’à 1000 fois plus de ressources qu’un « Hello world » d’il y a 10 ans.

    Les frameworks facilitent la vie du développeur mais surconsomment des ressources

    Tout administrateur qui a dû gérer des applications Zend connaît l’importante dette technique consommée sur l’infrastructure. Très pratique pour un développeur, les frameworks permettent de se concentrer sur les fonctionnalités à réaliser et se passent facilement des connaissances des couches basses logicielles et surtout matérielles. Le cloud en est le plus bel exemple : pas de besoin de savoir ce qui se cache derrière, il y a de la puissance brute à disponibilité. Cependant, la connaissance des mécaniques internes d’un « ordinateur » permet d’être plus efficace : c’est-à-dire d’adresser un besoin plus important avec moins de ressource. Le cloud est un ensemble d’ordinateurs et reste construit sur des équipements physiques qui ont leurs propres contraintes et limites.

    « Dans l’écosystème du développement, la connaissance des ressources matérielles est plus que nécessaire car les ressources ne sont pas infinies qu’elles soient matérielles ou budgétaires »

    Les hautes performances : une expertise plus que nécessaire

    Pour garantir avec succès des infrastructures « haute performance »  pouvant supporter des trafics capables de 5 000 req/sec à plus de 40 000 req/sec, il est indispensable d’avoir une vision en profondeur de l’infrastructure : du matériel (type de CPU, vitesse de bus, cache, type de carte réseau, etc..) à l’application (cache, SQL, NoSQL, multi threading, etc.. ) en passant par le système (kernel, stack TCP/IP, FileSystem, etc..).

    L’expérience nous montre qu’une optimisation d’un sysctl obscur peut décupler la puissance d’une application. Est-ce que nous faisons ça pour la beauté du geste ?

    Oui, un peu parce que nous sommes des passionnés, mais aussi et surtout par souci d’efficacité. Nous souhaitons permettre à nos clients d’adresser une quantité de trafic toujours plus élevée avec autant voir, moins de serveurs. Mais alors, pourquoi le discours en vogue n’est pas celui de l’efficience, qui semble être plein de bon sens ? Tout simplement parce qu’il est simple de vendre de la VM ou du serveur à la pelle, alors qu’il est quasi impossible d’avoir un effet de levier industriel sur l’expertise. Ainsi, l’essentiel des acteurs du marché vend ce qu’il est facile de vendre en masse, c’est-à-dire du serveur et de la puissance !

    En conclusion, l’industrialisation permet surtout d’automatiser des tâches à faible valeur ajoutée et répétitives. Elle permet aussi de garantir un niveau de qualité constatant sur l’infrastructure, mais il ne faut pas se méprendre, elle ne remplacera jamais l’expertise et la vision d’un gros barbu =). L’industrialisation et le Cloud ne remplacent pas les connaissances et l’expertise des éléments sous-jacents à la couche d’abstraction et illustre très bien le terme DevOps.

     

    , , , , ,

Newsletter

Inscrivez-vous et tenez vous au courant de l’actualité Oxalide