Qu'est-ce que le CaaS (conteneurs sous forme de service) ?

Par IBM Services

Le CaaS (conteneurs sous forme de service) est un modèle de service cloud qui permet aux utilisateurs de télécharger, d'organiser, de démarrer, d'arrêter, de mettre à l'échelle et de gérer d'une autre manière des conteneurs, des applications et des clusters. Le modèle gère ces processus à l'aide d'une virtualisation basée sur des conteneurs, d'une interface de programmation (API) ou d'une interface de portail Web. Le CaaS aide les utilisateurs à créer des applications conteneurisées évolutives et sécurisées par le biais de data centers sur site ou du cloud. Les conteneurs et les clusters sont utilisés en tant que service avec ce modèle et sont déployés dans le cloud ou dans des data centers sur site. 

Pourquoi le CaaS est-il important ?

Avec ses nombreuses applications, le CaaS aide les développeurs à rationaliser le processus de développement d'un conteneur à l'échelle et de déploiement d'applications. Il s'agit d'un modèle idéal pour les services informatiques, car il fournit un service de déploiement de conteneurs qui dispose d'un contrôle de gouvernance dans un environnement sécurisé. Le modèle CaaS aide les entreprises à simplifier la gestion des conteneurs dans leurs infrastructures définies par logiciel.

Comme avec d'autres services de Cloud Computing, les utilisateurs peuvent choisir et payer uniquement pour les ressources CaaS dont ils ont besoin. Parmi ces ressources CaaS, on peut citer les instances de calcul, les fonctions de planification et l'équilibrage de charges.

Avec la multiplication des services de Cloud Computing, le CaaS est considéré comme un sous-ensemble de l'IaaS (infrastructure sous forme de service) et se situe entre l'IaaS et la PaaS (plateforme sous forme de service). Le CaaS inclut les conteneurs en tant que ressource de base, contrairement aux machines virtuelles (VM) et aux systèmes hôtes matériels bare metal couramment utilisés pour les environnements IaaS.

Une qualité essentielle de la technologie CaaS est l'orchestration qui automatise les fonctions informatiques clés. Google Kubernetes et Docker Swarm sont deux exemples de plateformes d'orchestration CaaS. IBM, Amazon Web Services (AWS) et Google sont quelques exemples de fournisseurs CaaS de cloud public.

Pourquoi les conteneurs sont-ils importants ?

Les clients d'entreprise de tous les secteurs voient les avantages du CaaS et de la technologie des conteneurs. L'utilisation de conteneurs accroît leur efficacité et permet à ces clients de déployer rapidement des solutions innovantes pour la modernisation des applications et le développement cloud natif avec des microservices. La conteneurisation aide ces clients à distribuer des logiciels plus rapidement, à promouvoir la portabilité entre les environnements hybrides et multicloud, ainsi qu'à réduire les coûts en termes d'infrastructure, de licences logicielles et de fonctionnement.  

L'utilisation de conteneurs offre plusieurs avantages aux clients :

  • Portabilité : Lorsqu'une application est créée dans un conteneur, l'application terminée contient tout ce qu'elle doit exécuter, y compris les dépendances et les fichiers de configuration. La portabilité permet aux utilisateurs finaux de lancer des applications de manière fiable dans différents environnements et clouds publics ou privés. Cette portabilité offre également aux entreprises une grande flexibilité, elle accélère le processus de développement et facilite le passage à un autre environnement fournisseur ou cloud.
  • Haute efficacité et réduction des coûts : Comme les conteneurs n'ont pas besoin d'un système d'exploitation distinct, ils nécessitent moins de ressources qu'une machine virtuelle. Un conteneur ne requiert souvent qu'une dizaine de mégaoctets pour fonctionner, ce qui permet d'exécuter plusieurs conteneurs sur un seul serveur qui serait autrement utilisé pour exécuter une machine virtuelle. Cette efficacité permet de réduire les coûts liés au data center. Les conteneurs peuvent également réduire les coûts des systèmes bare metal car ils ont un niveau d'utilisation plus élevé en ce qui concerne le matériel sous-jacent et nécessitent moins de matériel.

Les conteneurs n'interagissent pas et sont en quelque sorte isolés les uns des autres sur les mêmes serveurs, bien qu'ils partagent les mêmes ressources. Si une application tombe en panne pour un conteneur, les autres conteneurs peuvent continuer à l'utiliser sans rencontrer de problèmes techniques.

  • Sécurité : Cet isolement des conteneurs fait également office de fonction de sécurité qui aide à réduire les risques. Si une application est compromise, ses effets négatifs ne s'étendent pas aux autres conteneurs.

En outre, comme les conteneurs exécutent des processus d'application indépendamment du système d'exploitation et n'ont pas besoin de logiciels spécifiques pour exécuter des applications, il est plus simple de gérer votre système hôte. Cet avantage vous permet de lancer rapidement des mises à jour et des correctifs de sécurité.     

  • Rapidité : Démarrer, créer, répliquer ou détruire un conteneur ne prend que quelques secondes car les conteneurs n'ont pas besoin d'un manuel de système d'exploitation. Cet avantage permet également d'accélérer le processus de développement, les délais de commercialisation et la vitesse opérationnelle, et facilite la publication de nouvelles versions ou de nouveaux logiciels. Cette rapidité contribue aussi à l'expérience client, car elle permet aux entreprises et aux développeurs de répondre rapidement aux bogues et d'intégrer de nouvelles fonctionnalités dès que les clients leur font part de leurs besoins.
  • Mise à l'échelle : Les conteneurs intègrent une fonction de mise à l'échelle horizontale, ce qui permet aux utilisateurs finaux d'incorporer plusieurs conteneurs identiques dans un même cluster pour les mettre à l'échelle. En utilisant une mise à l'échelle intelligente et en exécutant uniquement les conteneurs dont vous avez besoin quand vous en avez besoin, vous pouvez réduire considérablement les coûts et augmenter votre retour sur investissement. 
  • Développement rationalisé : Disposer d'un pipeline de développement efficace et efficient constitue l'un des avantages de l'infrastructure basée sur des conteneurs. Parce que les conteneurs permettent aux applications de fonctionner comme si elles avaient été créées localement, les incohérences environnementales sont éliminées. Et cela bénéficie aux tests et au débogage, en les rendant moins complexes et chronophages. Cette fonction vaut également pour la mise à jour des applications : le développeur n'a qu'à modifier le fichier de configuration, puis générer de nouveaux conteneurs et supprimer les fichiers précédents – un processus qui ne prend que quelques minutes. 

Services de conteneur gérés et piles de conteneurs cloud

Les clients d'entreprise qui cherchent à booster leur activité en utilisant des conteneurs doivent choisir entre deux options :

  1. Une plateforme CaaS et un déploiement dans un cloud public ou sur une plateforme d'infrastructure sur site

  2. Un service de conteneur géré fourni par Google, Amazon ou Microsoft Azure, les trois principaux fournisseurs de cloud public

Ces deux options ne lient pas nécessairement une entreprise à un fournisseur. Née d'un partenariat entre Google et la Fondation Linux, et à l'origine du programme de certification Kubernetes, la Cloud Native Computing Foundation (CNCF) veille à ce que tous les fournisseurs respectent les normes en matière de portabilité et de conformité des conteneurs sur toutes les plateformes.   

Avant de choisir entre une plateforme de conteneur gérée ou un déploiement sur site, un client d'entreprise doit répondre aux questions suivantes :

  • Votre conteneur a-t-il besoin d'un déploiement sur site, ou peut-il être déployé dans le cloud public ?
  • Votre service informatique a-t-il les compétences nécessaires pour concevoir, déployer et administrer un environnement Kubernetes ? De quoi avez-vous besoin pour former ou retenir vos talents ?
  • Sur quelle plateforme de cloud public devez-vous déployer des conteneurs ? Exemples : Google, AWS ou Azure.
  • L'utilisation d'un plan de contrôle Kubernetes à service partagé a-t-elle des implications particulières ?

Si votre entreprise en est toujours au stade de l'expérimentation des conteneurs, les services de conteneur gérés constituent probablement le meilleur choix pour vous. Les services de conteneur gérés constituent un bon point de départ qui ne nécessite pas de gestionnaire de cluster, d'allocation de ressources ou de déploiement d'une plateforme minimale. L'un des principaux avantages des services de conteneur gérés est qu'ils sont excellents pour les tests initiaux de déploiement de conteneurs, puis pour adapter les processus de développement et opérationnels.

Si votre entreprise en est déjà à un stade plus avancé de son déploiement de conteneurs sur Kubernetes ou AWS, ou sur une plateforme sur site, vous pouvez opter pour votre propre solution CaaS. Utiliser votre propre CaaS pourrait offrir à votre entreprise une plateforme plus riche en fonctionnalités, disposant des structures et des services nécessaires pour un système de niveau production.

L'ascension de Kubernetes

Comme avec la guerre opposant Betamax et VHS, la bataille pour le règne de l'orchestration de conteneurs était prévue pour le quatrième trimestre 2017 et s'est conclue au deuxième trimestre 2018. Google Kubernetes Engine (GKE), désormais connu sous le nom de Kubernetes, en est sorti vainqueur. Les fournisseurs et les utilisateurs ont donc redoublé d'efforts et se sont concentrés sur la production et la maturation de leurs déploiements pour Kubernetes.

La publication d'un service Kubernetes géré et de piles de conteneurs hybrides a facilité l'adoption de Kubernetes. GKE ayant aidé à lancer le concept de services de conteneur gérés, Kubernetes a toujours connu une plus grande demande que les services de conteneur de ses concurrents, AWS et Azure. Les versions d'Amazon Elastic Container Service for Kubernetes (Amazon EKS) et d'Azure Kubernetes Service (AKS) publiées mi-2018 ont assis la domination de GKE.

Regarder la vidéo

Kubernetes et orchestration de conteneurs

Kubernetes (K8s) est un système d'orchestration de conteneurs qui permet d'automatiser le déploiement, la gestion et la mise à l'échelle des applications. Conçu à l'origine par Google et rendu open source en 2014, Kubernetes est géré par la CNCF. Le site Web de Kubernetes décrit Kubernetes comme une « plateforme open source portable et extensible dédiée à la gestion des applications et des services conteneurisés, qui facilite à la fois la configuration déclarative et l'automatisation ».

Les trois principales plateformes de Kubernetes incluent :

  • Conteneurs
  • Microservices
  • Cloud portable

En tant qu'environnement de gestion axé sur les conteneurs, Kubernetes coordonne l'informatique, la mise en réseau et l'infrastructure de stockage pour les applications des utilisateurs. Kubernetes offre la même facilité d'utilisation qu'une PaaS avec la flexibilité de l'IaaS et la portabilité entre les fournisseurs d'infrastructure. 

Le parcours ouvert de Kubernetes, IBM et Red Hat

À travers une collaboration de plus de 20 ans, IBM et Red Hat ont exploré le secteur main dans la main. Premier soutien de Linux, IBM a travaillé en collaboration avec Red Hat et a aidé à développer et à prendre en charge la version entreprise de Linux. Plus récemment, cette collaboration a permis à un large éventail de clients de découvrir Kubernetes et les solutions cloud hybrides. Kubernetes constitue également l'une des bases de la stratégie de cloud hybride combinée d'IBM et de Red Hat.

Ces innovations sont devenues les technologies de base de l'activité cloud hybride d'IBM, qui pèse aujourd'hui USD 19 milliards. Après la finalisation de l'acquisition prévue pour fin 2019, Red Hat sera le dernier membre et une unité distincte de l'équipe Cloud Hybride d'IBM.  

Kubernetes, IBM et Hertz

Hertz Corporation, connue sous le nom de Hertz, a fêté ses 100 ans en 2018. Faisant face à des problèmes avec ses technologies existantes, l'entreprise avait besoin d'aide pour rationaliser son architecture métier et ses technologies. Hertz s'est donc associée à IBM Cloud Garage™ et a développé une architecture Kubernetes qui lui a permis de créer et de déployer des applications basées sur des microservices vers IBM Cloud™ Private et IBM Cloud Container Service.

En collaborant avec IBM, Hertz a modernisé ses systèmes centraux pour ses canaux numériques, ses réservations et ses tarifs via des architectures de conteneurs et de microservices flexibles. Étant donné sa portée internationale, Hertz veille à ce que ses applications soient hautement disponibles et à l'échelle de l'entreprise et devrait recevoir 1,5 milliard de visites et 30 millions de mises à jour quotidiennes une fois ses applications en production.

Kubernetes et logiciels libres

Les logiciels libres continuent d'étendre leur influence, établissant encore davantage leur importance dans le monde des technologies de l'information. Le livre blanc d'IBM Services™ sur les solutions de support pour les environnements de logiciel libre note que « 96 % des applications commerciales intègrent une forme de composant open source » (PDF, 3,9 Mo).1

Dans le monde du logiciel libre, Arturo Suarez pèse lourd. Suarez est à l'origine de la première distribution commerciale d'OpenStack, la plateforme logicielle libre dédiée au Cloud Computing. Dans un entretien avec IT Biz Advisor en 2019, Suarez décrit son expérience avec Kubernetes : « Kubernetes est en train de gagner la course à l'orchestration de conteneurs ». Il ajoute même : « Kubernetes évolue encore plus vite qu'OpenStack, avec des versions publiées tous les trois mois, et a un meilleur modèle de gouvernance et une meilleure courbe d'adoption. » 2  

IBM Cloud Kubernetes Service

Mi-mai 2018, et suite à l'investissement stratégique d'IBM dans Kubernetes, IBM Cloud Container Service a été rebaptisé IBM Cloud Kubernetes Service, un service disponible depuis mai 2017.

IBM Cloud Kubernetes Service, service de conteneur géré qui permet de distribuer rapidement des applications, peut s'intégrer à IBM Watson®, à la blockchain et à d'autres services avancés. Les fonctions d'IBM Cloud Kubernetes Service incluent :

  • Planification intelligente
  • Réparation spontanée
  • Mise à l'échelle horizontale
  • Reconnaissance de service
  • Équilibrage des charges
  • Déploiements et annulations automatiques
  • Gestion des valeurs confidentielles et des configurations

Grâce à des fonctions avancées de gestion de clusters et à la possibilité de créer votre propre cluster, IBM Cloud Kubernetes Service offre également des stratégies de sécurité et d'isolement des conteneurs, ainsi que des outils opérationnels intégrés pour garantir la cohérence du déploiement.

IBM Cloud Kubernetes Service gère actuellement plus de 10 000 clusters de production payés et est utilisé par des clients comme Think Research, Eurobits Technologies et The Weather Company, une société IBM. Les entreprises utilisent IBM Cloud Kubernetes Service pour effectuer les tâches suivantes :

  • Créer des clusters.
  • Déployer une application Web évolutive sur Kubernetes.
  • Analyser des journaux et surveiller la santé des applications Kubernetes.
  • Garantir un déploiement continu vers Kubernetes.

Pour obtenir plus d'informations sur la façon dont les services de conteneur, les services cloud et Kubernetes peuvent aider votre entreprise, programmez une consultation avec un spécialiste IBM, gratuitement. Vous pouvez également vous inscrire à IBM Cloud Kubernetes Service afin de créer et développer gratuitement dans l'environnement IBM Cloud. IBM est là pour vous aider à faire progresser votre entreprise en toute confiance.

Plus de détails sur les conteneurs et Kubernetes

Sources

  1. IBM Services. « Solutions de support pour les environnements de logiciel libre », IBM, 2019. https://www.ibm.com/downloads/cas/BWJWOJRD (PDF, 3,9 Mo)
  2. Camilla Sharpe. « FAQ : Comment la technologie open source bouscule le paysage informatique », IBM, 16 mai 2019. https://itbizadvisor.com/2019/05/qa-how-open-source-technology-is-shaking-up-the-it-landscape