Pourquoi vous devriez devenir un container expert
Les conteneurs ont la cote. Est-ce une raison suffisante pour vous spécialiser dans le sujet ? En soi, il est toujours intéressant de se tenir au courant des nouvelles technologies. Mais les conteneurs ont bien d’autres arguments en leur faveur.
1. Machines virtuelles
Pour ceux qui suivent de près le monde des technologies, impossible de passer à côté des conteneurs. On pourrait penser qu’aujourd’hui, tout le monde développe des applications cloud native dans une architecture de microservices. Dans la pratique, ce n’est évidemment pas si simple. La bonne vieille machine virtuelle est loin d’être dépassée, et elle présente en effet ses propres avantages. Il n’en reste pas moins intéressant pour vous de devenir container expert.
Examinons d’abord la raison d’être du conteneur. Au commencement, il y avait le serveur physique, doté d’un système d’exploitation et d’une application correspondante. Une approche efficace, jusqu’à ce que la loi de Moore fasse en sorte que la puissance de calcul des serveurs, même les plus modestes, commence à surpasser la demande de nombreuses applications.
La solution est apparue au début des années 2000, avec la virtualisation. Cette technologie permet de faire tourner plusieurs ordinateurs virtuels sur un même serveur physique. Chaque machine virtuelle (VM) possède son propre système d’exploitation, sur lequel tourne une application. Depuis lors, les VM sont devenues une marchandise comme une autre.
2. Léger et flexible
Mais les conteneurs vont encore plus loin. Une VM doit contenir un ordinateur numérique avec son propre système d’exploitation, ce qui veut dire qu’elle pèse rapidement plusieurs gigabytes, même lorsqu’une seule application très simple tourne dessus. Le conteneur règle ce problème, puisqu’il « emballe » l’application avec les seuls composants de l’OS qui sont nécessaires au fonctionnement de l’application. Par conséquent, il ne pèse que quelques mégabytes.
Vous connaissez les avantages : par définition, le conteneur contient déjà une application et ses dépendances, ce qui le rend portable. Ils se lancent très vite et sont petits, ce qui favorise l’évolutivité. En outre, ils invitent à travailler avec des microservices. Vous n’avez donc plus besoin de développer une grosse application monolithique : il vous suffit d’assembler un logiciel à partir de différents composants qui tournent chacun dans un conteneur. Des composants que vous pourrez modifier et mettre à jour facilement. Ce qui apporte un avantage supplémentaire : si un problème se pose avec l’un des composants, cela n’entraînera pas la mise hors ligne de toute l’application sous-jacente.
3. Le revers de la médaille
Si les conteneurs sont si pratiques, pourquoi tout le monde ne les utilise-t-il pas ? Deux inconvénients de taille s’opposent à leur généralisation. Le second, en particulier, rend l’étude de cette technologie si intéressante pour les développeurs.
Le premier défaut est technique et concerne la sécurité. Des VM qui tournent sur un même serveur sont presque entièrement isolées les unes des autres. Dans la pratique, on peut sans risque faire fonctionner dans le cloud les applications de deux entreprises différentes sur des VM qui partagent le même serveur physique. Chaque machine possède son propre OS et communique avec sa propre version virtualisée du matériel sous-jacent.
Il est vrai que les conteneurs contiennent leurs propres dépendances, mais ils partagent le même système d’exploitation sur le même serveur. Cela signifie que cet OS ne doit être installé qu’une fois, ce qui fait justement la légèreté et la portabilité du conteneur, mais entraîne théoriquement un risque de sécurité. En effet, il suffit de bricoler l’OS sur lequel tournent les conteneurs pour pouvoir s’attaquer à chacun d’eux.
4. Inconvénient ou avantage ?
Le second défaut des conteneurs est d’ordre pratique : s’agissant d’une technologie relativement nouvelle, peu d’ingénieurs IT en sont vraiment experts. On trouve très difficilement des développeurs spécialisés en développement d’applications cloud native sur des conteneurs. Les organisations qui souhaitent embrasser cette technologie se heurtent donc à un manque criant de personnel qualifié.
Il se peut dès lors qu’une organisation veuille remplacer son infrastructure habituelle par un système pratique et moderne d’applications en conteneurs, mais manque d’experts à cet effet. Sans compter le surcoût qu’implique la rareté de ces profils. Les salaires liés à ces fonctions sont plus élevés, ce qui rend les applications un peu plus chères. Ce détail financier, combiné au goulot du marché, dissuade les entreprises d’adopter pleinement cette technologie.
Un problème pour elles… Mais une bonne nouvelle pour vous ! En acquérant les qualifications requises, vous vous taillerez un profil très populaire, même parmi les ingénieurs IT les plus recherchés. C’est là le meilleur argument pour affiner ou tenir à jour vos connaissances en la matière, quels que soient par ailleurs les atouts et défauts des conteneurs.