Le conteneur comme nouvelle base du modèle économique

Les différents composants et fonctions de l’environnement de Docker. Les environnements à base de conteneurs deviennent le fondement du modèle économique du cloud et commencent à se répliquer dans les centres de données des entreprises. Iront-ils jusqu’à supplanter les machines virtuelles ? Rien ne le dit, mais leur montée en puissance est rapide comme le montrent différentes études. Jusqu’à présent, les différents environnements d’infrastructure tournaient autour des machines virtuelles et de la virtualisation des serveurs et du stockage. Depuis peu, les environnements autour des conteneurs et de Kubernetes émergent et commencent à gagner la faveur à la fois des offreurs de Clouds publics, mais aussi des entreprises. Une étude de Diamanti, un offreur d’infrastructure bare metal pour les conteneurs, indiquait récemment que 47 % des entreprises prévoient de déployer en environnement de production des conteneurs et qu’elles sont 12 % à déjà l’avoir fait. Les projets de conteneurisation sont pilotés essentiellement par des architectes (22 %), des développeurs (21,5 %), des équipes opérationnelles IT (17 %) ou encore les équipes DevOps (16,7 %). En termes d’investissement, 50,4 % des entreprises disent investir moins de 50 000 dollars dans leurs projets conteneurs, tandis qu’elles sont 33 % à consacrer au moins 100 000 dollars (et 11,6 % plus de 500 000 dollars) dans ces projets. Plus de la moitié des responsables informatiques (54 %) indiquent qu’ils utiliseront des conteneurs pour construire des applications cloud native, sachant que 39 % prévoient de construire avec des applications légères et autonomes. Migrations de cloud et modernisation des applications legacy concernent respectivement 32 % et 31 % des cas prévus. Chip Childers, le CTO de la Cloud Foundry Foundation (CFF), apporte d’autres éléments avec une étude réalisée auprès des membres de la CFF. « Selon notre dernière étude mondiale, nous avons constaté que l’utilisation des conteneurs s’était stabilisée : 38 % des répondants les utilisent et 43 % sont en phase d’évaluation ou de test. Seuls 11 % des 501 personnes interrogées dans le monde n’utilisent pas de conteneur. Il s’agit d’un niveau sans précédent. Ceux qui utilisent ou évaluent des conteneurs ont également augmenté le nombre de conteneurs qu’ils utilisent, avec près de la moitié (48 %) utilisant 100 conteneurs ou plus dans leur stratégie. Nous continuons à constater que les entreprises qui choisissent une stratégie multi plateforme utilisent plusieurs technologies cloud natives (conteneurs, PaaS). En fait, 72 % des personnes interrogées dans notre enquête utilisent conjointement les conteneurs et le PaaS, tandis que 48 % utilisent une combinaison de conteneurs, PaaS et serverless. » Autre enseignement intéressant de l’étude de Diamanti, près de 40 % des personnes interrogées indiquent que VMware est l’entreprise qui a le plus à perdre avec l’utilisation des conteneurs, devant Microsoft (20 %). Clairement, les conteneurs sont vus comme des alternatives aux architectures actuelles de virtualisation et les deux acteurs importants de la virtualisation seraient donc ceux qui auraient le plus à craindre de la montée en puissance des conteneurs. Mais pourquoi un tel revirement ? Minio, un environnement S3 sur votre site.

Les avantages des conteneurs

Si vous connaissez les fichiers Zip, vous pouvez avoir une idée, assez simpliste de ce qu’est un conteneur. En effet ce dernier utilise le même principe de compression pour agréger plusieurs fichiers ensemble, mais là, ce sont uniquement des exécutables et des données que le programme va exécuter sans avoir à les chercher sur le réseau. L’un de ces éléments peut bien sûr être un mini système d’exploitation comme une version minimale de Linux ou une version Nano Server de Microsoft. La technologie a d’abord été développée en interne chez Google pour ses besoins autour de son moteur de recherche, sous le nom de code Borg. Chaque requête ou recherche est effectuée par des centaines, voire des milliers, de services individuels qui s’en partagent la responsabilité. C’est l’un des attraits du conteneur contre les machines virtuelles. Il est possible d’exécuter un plus grand nombre de conteneurs par serveur que de machines virtuelles. Sur des serveurs bare metal il est possible d’exécuter des centaines voire des milliers de conteneurs. À cette échelle, le rôle de Kubernetes devient primordial. Cette application d’orchestration prend en charge l’ensemble des composants de l’architecture dans un seul but : superviser et ordonner des charges de travail ou workloads. Pour s’assurer de son bon fonctionnement, Kubernetes place, un agent ou Kubelet sur chaque nœud du cluster qui s’assure que les tâches demandées sont bien exécutées et qu’elles ont assez de ressources pour le faire. Si ce n’est pas le cas, une fonction d’autoscaling va rechercher sur le cluster là où les ressources sont disponibles pour une bonne fin. Autre attrait, car on ne peut dire si c’est réellement un avantage, les conteneurs comme Kubernetes se déploient à partir d’un fichier comme d’une application ce qui permet des déploiements simples et récurrents dans une vision DevOps d’intégration et de déploiement continu. Cette continuité permet de plus de faire évoluer de manière granulaire les composants de l’application conteneurisée alors que l’orchestrateur va adapter les impacts du changement sur la charge de travail à effectuer. Intéressante aussi est la fonction éphémère des conteneurs. Un conteneur va seulement effectuer la tâche qu’on lui a assigné. Lorsqu’il a fini, il s’éteint ou meurt. Plus besoin de gérer la « fin de vie » du conteneur comme les administrateurs devaient le faire auparavant avec les machines virtuelles. Kubernetes maintient des répliques actives de groupes de conteneurs, appelées Replica, dans le but précis de maintenir la disponibilité et la réactivité en cas de défaillance d’un conteneur ou d’un groupe de conteneurs. Cela signifie qu’un centre de données n’a pas besoin de répliquer l’ensemble de l’application et de déclencher un équilibreur de charge pour passer à l’application secondaire en cas de défaillance de l’application primaire. En fait, une pluralité de pods d’un ensemble de Replica fonctionne généralement à un moment donné, et le travail de l’orchestrateur est de maintenir cette pluralité pendant toute la durée de vie de l’application. Cette résilience plaide là encore en faveur des conteneurs. Les conséquences de ces avantages entrent dans les actions des entreprises. L’étude de Diamanti déjà citée indique ainsi que 44 % des personnes interrogées déclarent qu’elles ont déjà remplacé des machines virtuelles par des conteneurs. Les principales raisons sont à 59 % l’overhead d’administration sur les machines virtuelles. Viennent ensuite la performance (39 %) et la politique de licence de VMware (38 %) : 20 % vont même jusqu’à penser que les machines virtuelles sont obsolètes ; 45 % pensent migrer des tâches de machines virtuelles vers des conteneurs et 21 % indiquent qu’à terme l’ensemble migrera vers des conteneurs. Le conteneur est de plus économiquement intéressant et remporte largement l’adhésion en termes de coût total de possession comparativement aux environnements de machines virtuelles. Il devient quasiment la nouvelle base de calcul du coût du Cloud et propose pour des environnements très larges des prix défiant toute concurrence en optimisant l’utilisation des ressources nécessaires à son fonctionnement. Causes de remplacement des VM par des conteneurs.

Les limites des conteneurs

Les conteneurs ne sont cependant pas la panacée universelle. Des questions récurrentes autour de la sécurité et de la persistance des données dans ces environnements sont permanentes. Pour l’instant les entreprises ont, sur ce point, une politique assez conservatrice et continuent à placer les applications critiques dans des machines virtuelles, un environnement qu’elles maîtrisent bien et dont la sécurisation est bien rôdée. Le manque de ressources compétentes sur les environnements de conteneurs et de Kubernetes est aussi un point important et freine le déploiement encore plus large de ces environnements. La technologie est encore jeune et demande certainement quelques améliorations avant de devenir réellement le choix par défaut des entreprises. On peut donc parier pour une vision hybride avec des machines virtuelles qui côtoient des conteneurs pendant une période plus ou moins longue.

Conteneurs et machines virtuelles

Il existe plusieurs possibilités pour faire cohabiter conteneurs et machines virtuelles. La première solution explorée a été de mettre les conteneurs dans des machines virtuelles avec l’idée de continuer à profiter des outils de gestion et de la sécurité des environnements virtualisés. Sans surprise, VMware a été – et est toujours – un grand partisan de cette approche. Elle permet aux entreprises de profiter de certains des aspects des conteneurs tout en s’assurant des points forts des machines virtuelles. Si cela semble contre-productif pour les partisans des conteneurs, cette méthode est souvent la réalité actuelle des entreprises et la voie la plus utilisée pour le moment. Une autre option est de choisir les conteneurs pour les nouvelles applications dite « cloud native », ou nativement développées pour le Cloud, et de conserver un existant, les applications critiques ou ayant besoin d’une forte sécurisation pour les machines virtuelles. Cette approche existera tant que les entreprises ne seront entrées dans une politique de lift and shift de leurs applications dite legacy.

L’arrivée du Cloud dans les entreprises où l’hybride s’impose

On le voit, les deux technologies ne vont pas l’une contre l’autre et vont se compléter pendant un certain temps. De plus, les environnements de Cloud descendent maintenant directement dans les centres de données des entreprises, qui peuvent ainsi répliquer des plates-formes utilisées chez les grands du Web pour leurs propres besoins et les combiner avec des extensions dans des Clouds publics. Tous les grands Clouds publics le proposent. Un dossier récent de L’Informaticien (n° 176) traitait le sujet et nous ne pouvons que vous conseiller de vous y référer en marge de ce dossier. L’article sur Anthos, annoncé lors du dernier Google Cloud, Summit, qui s’est tenu récemment à San Francisco, illustre parfaitement cette approche de standardisation ou d’« uniformatisation » autour des conteneurs et de Kubernetes en étendant les possibilités de chacun au Cloud privé sur site ou aux différents autres Clouds publics pour y déployer des instances managées. Au bilan, les conteneurs montent en puissance et démontrent leurs qualités en termes de résilience, d’évolutivité. Cependant, les questions autour de la persistance des données et de la sécurité font que les entreprises restent sur une approche assez conservatrice et continuent à combiner conteneurs et machines virtuelles. Cette réalité est là pour encore quelques temps… jusqu’à la pleine maturité des environnements de conteneurs !

Un exemple de service managé autour de Kubernetes chez OVH

Managed Kubernetes Service est mis à disposition sur le Cloud public d’OVH après un temps en version Beta depuis octobre dernier. L’offre se veut au plus près des besoins des utilisateurs et du standard open source de l’orchestrateur. Pour orchestrer les applications dans des conteneurs, Kubernetes n’a plus de rival mais sa mise en œuvre n’est pas toujours simple. L’offre de service managé d’OVH vise à éviter cet écueil sans les tracas liés à la maintenance du logiciel et de l’infrastructure. Suite aux retours des premiers clients testeurs, OVH a enrichi son offre Managed Kubernetes Service, qui propose donc dorénavant en complément : •  un répartiteur de charge (load balancer)  intégré nativement à Kubernetes ; •  le choix de la politique de mise à jour de sécurité par le client ; •  le choix entre les versions 1.11 et 1.12 de Kubernetes, les deux versions les plus récemment proposées  par les différentes offres managées du marché.

Au plus proche de l’Open Source

OVH est un des rares fournisseurs à avoir obtenu la certification de la CNCF (Cloud Native Computing Foundation) autour de Kubernetes dont la promesse est d’offrir un standard entre fournisseurs cloud, hybride et multi-cloud. Le service reste ainsi fidèle aux standards de l’Open Source tout en s’appuyant sur les avantages du Cloud public d’OVH (performance/prix). L’offre s’appuie sur une API standard open source ce qui évite les locks sur la solution ainsi que le support, l’accès à un réseau 16 Tb/s, les services de sécurité d’OVH et propose la brique de gestion de droit RBAC originelle de l’orchestrateur. La tarification est prédictible. OVH met gratuitement à disposition le logiciel d’orchestration Kubernetes ainsi que l’infrastructure nécessaire à son exécution. Les clients ne paieront que l’infrastructure de stockage (volume persistant) et de compute sur laquelle leurs conteneurs tourneront, au prix standard du Public Cloud OVH et selon le volume nécessaire. Par exemple, un client pourra disposer d’un cluster doté de performances (CPU et RAM) constantes et garanties dès 22 € HT/mois, tandis qu’une infrastructure composée de 5 nœuds de travail pour un total de 35 Go de RAM et 10 vCores reviendra à 110 € HT/mois. Les clients souhaitant utiliser Kubernetes et déployer leurs conteneurs sur OVH n’auront ainsi aucuns frais supplémentaires liés à son utilisation, les bandes passantes entrante et sortante étant incluses. Déjà disponible pour tous les clients d’OVH depuis le datacenter de Gravelines (France), Managed Kubernetes Service sera progressivement déployé au cours des prochains mois dans les différentes régions Public Cloud d’OVH. Cette extension de la disponibilité géographique réduira la latence et augmentera la performance proposée aux clients. Les prochaines évolutions de la solution vont apporter la compatibilité avec vRack pour permettre des utilisations hybrides multi-cloud mais aussi sur site et Cloud public par l’extension OVH CloudConnect.