Nous avons vu dans un précédent article, en quoi les microservices et les conteneurs font de plus en plus sens pour mettre l’informatique au service du client.

Les conteneurs sont un nouveau moyen de déployer des applications, qui rapproche davantage les professionnels IT et les développeurs informatiques des entreprises en phase avec la démarche DevOps.

Ils rendent les développeurs plus indépendants des systèmes informatiques et permettent de créer des scénarios avancés sans toucher au modèle de sécurité ni à l’infrastructure principale.

Autres points décisifs, les conteneurs :

  • sont réactifs car ils utilisent le système d’exploitation hôte et partagent les bibliothèques appropriées
  • ne gaspillent pas les ressources de l’hôte contrairement aux machines virtuelles
  • permettent l’isolation des bibliothèques et des fichiers binaires spécifiques à l’application qu’ils exécutent
  • sont gérés par un moteur de conteneurisation

La conteneurisation a toute sa place dans une architecture dans laquelle l’application est divisée en plusieurs services communiquant entre eux.

Plus légers que la virtualisation, les conteneurs sont idéaux pour accueillir des microservices (à raison d’un par conteneur), auxquels ils apportent un certain degré d’indépendance. Les conteneurs sont indéniablement un booster, pour les microservices, et donc pour le mouvement DevOps.

En effet, les conteneurs peuvent embarquer directement les runtimes et les frameworks dont le code aura besoin pour fonctionner. Toutes les dépendances nécessaires sont packagées dans le conteneur directement au côté de l’application.

Les conteneurs sont avant tout un format de packaging qui facilite la portabilité

explique Marc Gardette directeur de la stratégie Cloud de Microsoft France

Ils n’intéressent donc pas que les DevOps. Leur réplicabilité facilitée par la présence des Runtimes n’impose pas la nature du mode de développement

Docker a donné ses lettres de noblesse aux conteneurs

Docker est un outil conçu à la fois pour les développeurs et les administrateurs système, ce qui le rapproche par nature des nombreuses chaînes d’outils DevOps (développeurs + opérations). Les développeurs peuvent se consacrer à l’écriture de code sans presque avoir à se soucier du système sur lequel il fonctionnera. Ils peuvent aussi s’appuyer sur l’un des milliers de programmes déjà conçus pour s’exécuter dans un conteneur Docker dans le cadre de leur application. Pour le personnel des opérations, Docker donne de la flexibilité et réduit potentiellement le nombre de systèmes nécessaires en raison de son faible encombrement et la diminution des frais afférents.

Sur le Cloud Azure de Microsoft, les conteneurs Docker peuvent être déployés dans des machines virtuelles via Azure Container Service.

Le déploiement bare metal (i.e « sur serveur physique ») est rarement choisi par les acteurs hyperscales, dont fait partie Microsoft

analyse Marc Gardette.

Pour ces sociétés, la multiplicité des services et la volumétrie supposent du tout virtualisé, du tout Cloud.

La problématique de la sécurité, Microsoft y a aussi pensé avec les conteneurs Hyper-V. En intégrant un kernel virtualisé spécifique au cœur du conteneur, ils offrent un meilleur niveau de sécurité.

La densité sera un peu moins importante, mais la logique propre aux conteneurs sera préservée

explique notre intervenant Microsoft.

Conteneur_schéma

Plus légers, les conteneurs sont présents en plus grand nombre sur chaque serveur.

DevOps, microservices et conteneurs se marient très bien avec les infrastructures Iaas qui présentent le même degré d’agilité. Ce principe d’infrastructure composable via des pools de ressources (CPU, mémoire, disque, réseau, etc.) librement attribuables permet de créer des infrastructures adaptées aussi bien aux systèmes legacy qu’aux microservices.