Les applications modernes conteneurisées sont toujours très prisées des entreprises. Pas étonnant dans ce cas de voir émerger des offres d’infrastructure et de gestion des conteneurs « en-tant-que-service » chez les principaux fournisseurs. Partout dans le monde, l’usage des conteneurs augmente fortement dans les entreprises : selon le dernier rapport « État du Cloud 2020 » (State of Cloud 2020) de Flexera, d'une manière ou d'une autre, 65 % des entreprises utilisent des conteneurs Docker et 58 % utilisent le système d'orchestration Kubernetes. Le manque de ressources et d'expertise est souvent cité comme le principal défi dans l'utilisation des conteneurs pour construire et maintenir des applications. Il n'est donc pas surprenant que les développeurs se tournent de plus en plus vers l'automatisation offerte par les offres de type « containers-as-a-service » (CaaS), un domaine où les trois principaux fournisseurs de cloud ouvrent la voie.

Les conteneurs en tant que service, ou CaaS

Les offres CaaS consistent essentiellement, pour les fournisseurs de cloud, à fournir un moteur d'orchestration de conteneurs hébergés, basé en général sur le très populaire projet open source Kubernetes initié par Google, pour déployer et exécuter des conteneurs, gérer des clusters, automatiser la mise à l'échelle et la gestion des pannes, et maintenir la couche d'infrastructure commune, avec de la gouvernance et de la sécurité. En général, toutes les fonctions de mise en réseau, d'équilibrage de charge, de surveillance, de journalisation, d'authentification, de sécurité, de mise à l'échelle automatique et d'intégration continue/livraison continue (CI/CD) sont prises en charge par la plateforme CaaS. Grâce à cette plateforme, les entreprises peuvent profiter des avantages de l'infrastructure cloud, sans risquer le verrouillage habituellement imposé par les fournisseurs sur les plates-formes en tant que service (PaaS), comme AWS Elastic Beanstalk, Azure App Service ou Google App Engine, car les conteneurs eux-mêmes permettent une portabilité simple entre divers environnements.

Pour une entreprise souhaitant utiliser des conteneurs, la différence entre un CaaS et une infrastructure en tant que service (IaaS) classique se situe au niveau des ressources et des compétences nécessaires pour mettre en œuvre et gérer Kubernetes (ou une autre couche d'orchestration de conteneurs) : la question est de savoir si elle peut assumer elle-même cette gestion ou si elle a intérêt à confier cette tâche à un fournisseur de cloud. Une autre question peut entrer en compte dans sa décision : savoir si son environnement de conteneurs doit couvrir plusieurs clouds et/ou environnements sur site. Plusieurs fournisseurs proposent des plateformes CaaS pouvant être déployées soit sur site soit dans le cloud (voir ci-dessous). « Vous pouvez soit gérer les choses au niveau de l'infrastructure et mettre en place l'orchestrateur vous-même, soit utiliser une plateforme de conteneurs qui gère l'infrastructure sous-jacente et fournit un orchestrateur préinstallé prêt à être déployé et à faire évoluer vos conteneurs », a écrit Rob Isenberg, ancien développeur de la Deutsche Bank et de la BBC, dans son ouvrage « Docker for Rails Developers » publié par O'Reilly.

Les avantages du CaaS

Le fonctionnement des conteneurs sur un conteneur en tant que service (CaaS) est comparable au fonctionnement de machines virtuelles sur une infrastructure en tant que service (IaaS) : les principaux avantages sont la rapidité de déploiement et la facilité d'utilisation, de même que la simplicité du modèle de paiement à l’usage dans le cloud et l'absence de verrouillage des fournisseurs, comme mentionné plus haut. En confiant votre infrastructure de conteneurs à un fournisseur de cloud, l’entreprise peut être opérationnelle sans avoir à investir dans un matériel en propre et sans avoir à construire et à faire fonctionner ses propres clusters Kubernetes (ou un autre système d'orchestration de conteneurs). De plus, en mettant les applications en conteneur, elle peut plus facilement les faire migrer vers différents environnements ou écosystèmes de fournisseurs, ce qui lui donne plus de flexibilité et d'options d'évolution. Mis bout à bout, ces avantages permettent des possibilités de rentabilité très importantes, car les conteneurs sont mieux équipés pour évoluer horizontalement en fonction de la demande, ce qui signifie que l’entreprise ne doit payer que pour les ressources cloud qu'elle utilise. Les conteneurs sont beaucoup plus légers que les VM, ce qui signifie qu'ils nécessitent moins de ressources, ce qui permet souvent de gagner en rapidité et de réduire les coûts.

Autre avantage : la cohérence de l'instrumentation et de la journalisation, car la séparation des services individuels dans les conteneurs peut permettre une agrégation plus efficace des logs et une surveillance centralisée grâce au modèle de déploiement side-car, très répandu. La migration des applications traditionnelles vers des conteneurs reste un obstacle important à l'adoption, même quand elles sont exécutées sur un CaaS, comme l'ont indiqué 34 % des personnes interrogées dans le cadre du rapport « État du Cloud 2020 » de Flexera. La migration vers des conteneurs implique souvent de décomposer les applications monolithiques en micro-services, ce qui, pour les entreprises de plus grande taille et plus anciennes, peut représenter un changement culturel et technique majeur qui ne doit pas être pris à la légère.

Principales options du CaaS

La plupart des principaux fournisseurs de cloud proposent des offres CaaS, et plusieurs autres fournisseurs cherchent à prendre pied dans ce secteur. Amazon Web Services (AWS), leader du marché des services cloud, a rencontré beaucoup de succès avec ses services Elastic Container Service (ECS) sans Kubernetes et Elastic Kubernetes Service (EKS). De même, selon le rapport de Flexera, l'adoption d'Azure Kubernetes Service est en hausse significative, tout comme celle de Google Kubernetes Engine (GKE). Les trois géants du cloud offrent également des services Kubernetes sans serveur, comme AWS ECS sur Fargate, Google Cloud Run sur GKE et Azure Container Instances. A la différence de EKS, AKS et GKE, ces services affranchissent des tâches de gestion de serveur et sont parfaits pour les cas d’usage de consommation à la demande.

Une grande partie des capacités de gestion des conteneurs de Google Cloud se trouve désormais sous le parapluie Anthos, la plateforme de cloud hybride et multicloud de Google basée sur Kubernetes qui permet la gestion d'applications basées sur des conteneurs dans les infrastructures sur site et les principaux clouds publics (Google Cloud Platform, AWS, et Azure prochainement). Anthos combine GKE pour les charges de travail dans le cloud, GKE On-Prem et la console Anthos Config Management, qui permet une administration, des politiques et une sécurité centralisées dans le cadre de déploiements Kubernetes hybrides et multicloud. Outre les « trois grands » fournisseurs de cloud, des fournisseurs comme IBM/Red Hat, VMware, SUSE/Rancher, Canonical, D2iQ (anciennement Mesosphere), Rackspace, Oracle, HPE, Alibaba, Huawei et Tencent proposent tous une option de CaaS gérée. Plusieurs de ces offres peuvent être déployées sur site, dans les cloud publics, ou les deux.

Le meilleur CaaS

Gartner n'a pas publié de Magic Quadrant des fournisseurs de CaaS, mais dans son dernier rapport intitulé « Competitive Landscape : Public Cloud Container Services », Wataru Katsurashima cite le GKE de Google comme la meilleure option de gestion Kubernetes. Dans leur dernière étude intitulée « New Wave for Public Cloud Enterprise Container Platforms », publiée au troisième trimestre 2019, les analystes de Forrester ont placé AWS en tête suivie de Microsoft et de Google. Il convient cependant de préciser que le rapport de Forrester ne prend en compte que sept fournisseurs et se concentre strictement sur les déploiements de cloud public. Selon Dave Bartoletti et Charlie Dai, les auteurs du rapport Forrester, « AWS « mène le peloton avec ses options de déploiement, sa sécurité et ses intégrations profondes ». Ils ajoutent : « Leur large éventail d'options de consommation de Kubernetes (K8) entièrement gérés (et sans serveur), et la plupart des conteneurs déployés directement dans son infrastructure de cloud, AWS continue d'innover et d'intégrer profondément sa plate-forme de conteneurs avec ses principales fonctions de sécurité et de réseau ».

Dans leur rapport, les analystes de Forrester invitent aussi fortement Microsoft et Google à simplifier leurs plates-formes de conteneurs. S’ils saluent la plus grande expérience de Microsoft en termes de développement et de portée mondiale, ils regrettent sa complexité, une critique qui revient d’ailleurs assez souvent dans le rapport. Ces mêmes analystes félicitent Google pour son expertise très approfondie de Kubernetes et ses efforts pour traverser les environnements multiclouds, mais ils critiquent également sa complexité. Cela dit, selon une enquête réalisée en 2019 par la Cloud Native Computing Foundation (CNCF), EKS d’AWS reste la plateforme de gestion de conteneurs la plus utilisée, immédiatement suivie par GKE, Docker EE/CE et AKS. D’après le rapport sur l'État du Cloud 2020 de Flexera, 55 % des entreprises utilisent les plateformes EKS/ECS d’AWS, et 23 % des entreprises interrogées prévoient d’utiliser ces offres CaaS à l'avenir. 50% des entreprises ont adopté Azure Kubernetes Service, et 26 % des entreprises interrogées prévoient d'utiliser AKS à l'avenir. 26 des entreprises utilisent le moteur Google Kubernetes, et 27 % des entreprises interrogées prévoient d'utiliser GKS à l’avenir. Cependant, toujours selon le rapport Flexera, avec 63 % d’adoption chez les entreprises interrogées, Kubernetes autogéré dépasse encore toutes les offres CaaS.

Ressources CaaS

Les principales sources d'information sur le CaaS sont disponibles chez les fournisseurs eux-mêmes, ce qui ne facilite par un choix éclairé et impartial. Comme indiqué ci-dessus, Forrester et Gartner ont mené des analyses approfondies sur le sujet, mais l’objectif de leurs études est généralement de savoir quels fournisseurs se démarquent, plutôt que de savoir comment se mettre au diapason du CaaS en production. Il y a encore peu de livres sur le sujet, mais l’ouvrage « Software Architect's Handbook », publié par O'Reilly en donne un bon aperçu.