LES CONTENEURS, NOUVELLE DEVISE DES ARCHITECTURES IT MODERNES.

Si les conteneurs s’appuient sur une technologie ancienne, leur adoption par les entreprises est désormais rapide et massive. Retour sur le succès d’une technologie désormais indissociable des architectures IT modernes.

 

D’ici 2020, la moitié des entreprises dans le monde auront des applications conteneurisées en production, dixit Gartner. Elles étaient 20% il y a seulement… un an. Ces deux chiffres suffisent à illustrer l’adoption rapide et massive des conteneurs par les entreprises – de la TPE aux grands comptes en passant par les startups – mais ne l’expliquent pas pour autant. Pourquoi les conteneurs s’imposent dans les architectures IT ? Et pourquoi maintenant puisque la technologie même des conteneurs est née il y a une dizaine d’années ? Éléments de réponse. 

Les conteneurs, bras armés des SI agiles 

Depuis 20 ans, les systèmes d’information n’en finissent pas de parfaire leur évolution d’une informatique monolithique vers un modèle beaucoup plus composite. Le (vieux) concept SOA (Service Oriented Architecture – Architecture orientée service) a connu des évolutions multiples jusqu’aux microservices d’aujourd’hui. Dans cette architecture, les applications sont constituées de services autonomes qui peuvent évoluer indépendamment les uns des autres.  

Mais à quoi bon développer des services de manière granulaire et agile, si le déploiement, lui, butte sur la variété des systèmes d’exploitation, sur des librairies qui peuvent entrer en conflit ou encore sur des configurations réseaux variables ? La transformation numérique en cours appelle une agilité globale, de bout en bout, du développement à la mise en production. Et c’est là tout l’intérêt des conteneurs. Avec eux, les architectures modernes ont trouvé un allié de poids pour gagner en agilité jusqu’en production, notamment (mais pas uniquement) quand elles exploitent des microservices. 

Les conteneurs, un ratio portabilité/performance inédit 

C’est leur ratio portabilité/performance qui fait toute la valeur des conteneurs pour les architectures modernes. Assimilable à une bulle applicative, le conteneur embarque un service logiciel mais aussi toutes ses dépendances (librairies et binaires), ses fichiers de configuration, les versions des outils système exploités (navigateur, shell, etc.) ainsi que les variables système modifiées (chemins d’accès par défaut/path, bases de registre, etc.).  

Par comparaison avec une machine virtuelle (ou Virtual Machine, VM), il manque ici dans cette liste le système d’exploitation que le conteneur, de fait, n’intègre pas. C’est l’une des différences clés entre VM et conteneurs : pour exécuter cinq VM sur un serveur physique, il faut un hyperviseur et cinq systèmes d’exploitation. Avec les conteneurs, un seul OS suffit, les cinq applications se partageant le noyau du système d’exploitation. 

Résultat, là où une VM s’appuie sur un hyperviseur qui émule une véritable machine, un conteneur s’appuie directement sur le Kernel du système d’exploitation. Autrement dit, le conteneur présente à la fois un haut niveau d’isolement de l’application, ce qui protège cette dernière des subtiles variations du système qui l’héberge, et des performances accrues puisqu’un conteneur utilise moins de ressources matérielles qu’une VM. 

Docker ou le conteneur démocratisé 

D’autres avantages découlent de cette nature des conteneurs :

  • la compacité (un conteneur n’embarque que l’application et ses dépendances),
  • la rapidité (un conteneur se lance instantanément tandis qu’une VM appelle une vraie séquence de boot),
  • sans oublier la portabilité.

Les VM étant très dépendantes de leur hyperviseur, passer par exemple d’un environnement Vmware à Hyper-V est tout sauf anodin. Les conteneurs bénéficient pour leur part de la standardisation de fait apporté par Docker. 

Difficile en effet d’évoquer les conteneurs sans parler de Docker tant ils sont devenus synonymes (même si des alternatives à Docker existent).
Et pour cause, Docker a réellement démocratisé l’usage des conteneurs en simplifiant et en standardisant l’approche :

  • format des conteneurs,
  • jeux d’instruction pour les créer, les déployer et les gérer,
  • format d’image pour figer un conteneur sous forme de fichier aisément déplaçable d’un environnement à l’autre…
  • Couche de virtualisation applicative qui exécute et contrôle le fonctionnement des conteneurs au-dessus du Kernel,

Docker est aux conteneurs ce que l’hyperviseur est aux VM.

Le conteneur, ingrédient naturel du cloud 

Cette standardisation des conteneurs mais aussi leur compacité en font un ingrédient naturel des architectures cloud. D’autant que chaque conteneur peut être instancié uniquement lorsque nécessaire, son démarrage rapide pénalisant peu ou pas l’exécution. Des caractéristiques fort appréciables dans le cloud où la facturation est effectuée en fonction de la mémoire allouée, de la puissance utilisée et du stockage consommé.  

En outre, la portabilité des conteneurs rend le passage du développement à l’exploitation, d’un environnement cloud à l’autre, infiniment plus fiable, prédictible et reproductible. Il en résulte des gains de temps appréciables à toutes les étapes, donc des économies tangibles.

En somme, avec les conteneurs, les architectures modernes composées de microservices et adossées aux ressources du cloud ont trouvé leur nouvelle devise. De la même manière qu’une monnaie commune fluidifie les échanges et accélère la croissance, les conteneurs dynamisent la chaine de production IT, de la conception au déploiement, au profit de l’agilité globale des entreprises. Les conteneurs représentent désormais pour les systèmes d’information une devise avec laquelle il va falloir compter. Et pour longtemps.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.