Vous avez un projet ?
Temps de lecture 4 minutes

CaaS & Kubernetes

Publié le 27 August 2018
scroll
N’oubliez pas
de partager
cet article

Le CaaS, évolution ou révolution pour le Cloud ?

L’arrivée des conteneurs dans le monde du Cloud a créé une nouvelle révolution qui permet de produire plus rapidement les applications sans pour autant changer d’infrastructure. En effet, la conteneurisation n’est qu’une autre forme d’isolation  d’un workload du matériel sous-jacent.

A la base, le concept de conteneurisation permet aux instances créées de partager les ressources d’un système d’exploitation hôte avec ses binaires, librairies et/ou drivers nécessaire pour le lancement du workload. Contrairement à une VM qui représente intégralement un serveur avec son système d’exploitation et ses « frais généraux » au-dessus duquel l’application est déployée.

Cette approche génère inévitablement des doublons engendrant un gaspillage des ressources matérielles (processeur, mémoire, stockage) indépendamment du modèle de virtualisation (HVM/PVM). Ainsi, le facteur majeur qui a permis à la conteneurisation de rencontrer cette expansion inégalée est son énorme valeur ajoutée dans la consolidation ainsi qu’une meilleure utilisation de l’infrastructure.

2018 ou la grande invasion du DevOps

L’année 2018 s’annonce prometteuse pour le développement de la culture DevOps dans de nombreuses entreprises. Selon “RightScale State of the Cloud Report”, l’adoption des technologies CaaS, constituant le noyau du DevOps, a déjà augmenté de 36% dans les 6 premiers mois de 2017. Un momentum qui est dû essentiellement à la démocratisation des technologies de conteneurisation ainsi qu’à la maturité des solutions d’orchestration de conteneurs.

Le CaaS, un vecteur majeur de la Transformation IT

Il est important de rappeler que les pratiques de déploiement en conteneur sont fondées principalement sur la vélocité de la mise en production d’un code en tant que métrique clé. D’une manière plus explicite, il s’agit de la capacité des développeurs à transmettre du code à la production et à créer ainsi de la valeur pour les parties prenantes. Pour ce faire, il est impératif de briser les barrières traditionnelles entre l’ingénierie et les opérations et de permettre aux développeurs de modifier l’infrastructure (contrôlée) sous forme de conteneurs. Par conséquent, le modèle IT devient plus agile permettant un déroulement “Idea to Market”  fluide et rapide.

Kubernetes, le grand gagnant de la course des orchestrateurs CaaS

Les orchestrateurs constituent la solution de pilotage et d’harmonisation dans un environnement CaaS. Leur rôle principal est la gestion du placement des conteneurs sur une infrastructure pouvant être un cloud public, privé ou bare-metal. Bien que Docker Swarm soit la solution d’orchestration native de Docker, son manque de maturité en déploiement de production à grande échelle a fait pencher la balance vers Kubernetes (k8s).

Elaboré par le géant Google, k8s a pu facilement se démarquer par rapport aux autres alternatives. A la base, le projet k8s était un fork de l’orchestrateur propriétaire de Google « Borg » manifestant ainsi l’expérience et le savoir-faire d’orchestration des conteneurs de plus que 10 ans. Selon Openstack User Survey, en 2017, 47% des entreprises qui ont adapté le CaaS ont choisi Kubernetes :

Source : Openstack Survey 2017

En proposant une large diversité de fonctionnalités et une maturité d’orchestration de déploiement de production à grande échelle, Kubernetes a gagné la confiance des géants du marché de l’entreprise. Selon le rapport présenté durant le Google Cloud Summit Paris-2018, plus de 54% des entreprises les plus fortunées ont choisi Kubernetes comme levier de transformation vers un modèle IT agile. L’esprit Open Source a notamment suivi cette technologie depuis son berceau et la force d’une large communauté représente un atout très favorable.

Source : Google Cloud Summit Paris-2018

La force de Kubernetes repose sur plusieurs facteurs. Le premier est son architecture cloud-native qui permet des myriades de possibilités adaptées aux spécificités du model IT existant. En plus, son API extensible est capable de se modeler au gré du besoin architectural de l’environnement. Le résultat est une solution agnostique pour  l’infrastructure et hautement évolutive assimilant les principes d’un modèle Agile et permettant une intégration plus aisée de la culture DevOps.

Avec Kubernetes, une architecture résiliente et flexible

Que ce soit à travers une offre Cloud public, On-Premise ou un simple déploiement Vanilla, Kubernetes expose une architecture résiliente, simple à mettre en place et facile à faire évoluer. Tout d’abord une couche Control Plane  constituée d’un cluster de Masters et de serveurs ETCD de type clé-valeur qui assurent la persistance de l’état désiré. Et ensuite une couche Data Plane  formée par un ensemble de serveurs  “worker-node”.

Source : Metanext Cloud Day, 2018

Pod : L’atome Kubernetes

Un « Pod » est un regroupement logique d’un ou plusieurs conteneurs avec, en option, une composante de stockage pour assurer la persistance. Cet élément est le bloc de construction de l’écosystème Kubernetes qui constitue l’unité des contrôleurs de réplication et de placement. En effet, ce concept peut être considéré comme une exclusivité K8S malgré son adaptation dans différents orchestrateur CaaS.

Ci-dessous, la représentation d’un Pod assurant le fonctionnement d’un service composite :

Source : Documentation Kubernetes

Kubernetes & DevOps : le duo clé pour le déploiement généralisé des conteneurs ?!

Alors que la fin de l’année 2018 se rapproche, tous les indicateurs démontrent qu’une migration vers un environnement Full-DevOps n’est plus un choix. C’est un must ! Durant les dernières années, le seul inconvénient qui, potentiellement, pouvait retarder cette migration est le manque de maturité de certaines solutions. Cependant, malgré cela, beaucoup d’entreprises se sont déjà engagées dans  la mise en œuvre d’une stratégie d’intégration graduelle de la culture DevOps commençant, essentiellement, par la démocratisation des technologies des conteneurs tel que Docker ou encore LXC. La prochaine étape est un déploiement généralisé et massif dans lequel Kubernetes jouera un rôle clé.