• Anthony Colas

Pourquoi basculer sa plate-forme Cloud vers une architecture Kubernetes ?

Kubernetes, communément appelé “k8s”, est une technologie open-source permettant l’orchestration de conteneurs d’applications au sein d’une plate-forme Cloud, et dont le succès s'est imposé progressivement auprès des décideurs IT.


En effet, près de 5,6 millions de développeurs utilisent Kubernetes, soit une augmentation de 67% sur l’année écoulée ! (source Cloud Native Computing Foundation (CNCF)).

Pourquoi basculer sa plate-forme Cloud vers une architecture sous Kubernetes ?

Compatible avec toute une série de technologies de conteneurisation, quelle que soit l’infrastructure Cloud sous-jacente (public, privé ou hybride), Kubernetes est considéré comme le système idéal pour l’hébergement de plates-formes d’applications requérant de fortes sollicitations.


En tant que spécialiste du maintien en condition opérationnelle 24/7 de plates-formes Cloud & Kubernetes, nous avons recensé, de notre point de vue, les arguments essentiels qui ont convaincu nos clients de basculer vers une architecture sous Kubernetes.



1. Une production et des mises en production sereines

Une fois Kubernetes utilisé comme orchestrateur de conteneurs, un certain nombre de process deviennent complètement automatisés : redémarrage d’instances applicatives en cas de problèmes, répartition de charge automatique des ressources, autoscaling (ce qui rejoint le point 2), … garantissant une production industrialisée et une plate-forme Cloud stable.


Concernant les mises en production, tout devient également plus serein : Kubernetes est compatible avec la méthodologie GitOps (méthodologie d’automatisation des déploiements basée sur une source unique de vérité au sein d’un Git), permettant d’une part aux équipes techniques et devops d'augmenter la fréquence des cycles de mises en production de développement logiciels et applicatifs, et, d’autre part, de réduire les risques liés au facteur humain.



2. Un ajustement automatique des ressources Cloud

Toute plate-forme Cloud doit pouvoir s’adapter rapidement aux changements et à toute montée en charge, tout en restant performante et fonctionnelle… !


C’est l’une des missions de Kubernetes : la mise à l’échelle automatique des ressources Cloud, autrement appelée en anglais "autoscaling".


Ainsi, en contrôlant les ressources du fournisseur Cloud, Kubernetes peut ajuster automatiquement le niveau de ressources nécessaires qui composent chaque conteneur, en temps réel, que ce soit à la hausse ou la baisse, et sans interruption de service.


Par exemple, pour éviter toute saturation d’une application, et s’il est programmé en amont comme tel, k8s peut déployer de nouvelles instances de conteneurs, de nouveaux nodes (instances de cluster), ou de nouveaux pods, etc… C'est l’autoscaling horizontal : Kubernetes ajoute des réplicas pour décharger les pods sur-sollicités.


L’autoscaling vertical est bien sûr également possible : augmentation automatique des ressources (CPU, RAM) au sein d’un pod existant.


Cet ajustement automatique des ressources en fonction de la montée en charge, et plus généralement de l’usage de la plate-forme Cloud, participent à sa stabilité et à son optimisation financière.


L'optimisation de la plate-forme Cloud est ainsi pilotée, soit par le budget, soit par la performance, afin de trouver le bon équilibre performance/coût.



3. Une répartition fine des ressources au sein de la plate-forme

Kubernetes permet une utilisation optimisée des ressources intrinsèque à la plate-forme Cloud : chaque instance ou node est utilisé jusqu’à 100% pour supporter les pods et les conteneurs, eux-mêmes peu gourmands, et répartis intelligemment par Kubernetes sur les nodes pour éviter tout “gaspillage”.


Par exemple, la technologie « persistant volume » participe aux fonctionnalités de répartition des ressources Cloud. Cette technologie permet de basculer automatiquement un pod d’un nœud du cluster à un autre noeud, avec toutes les données associées au pod.

Une orchestration à fine granularité, qui participe encore à l'optimisation financière de l’ensemble.



4. Une indépendance vis-à-vis des fournisseurs Cloud

Sous Kubernetes, les fichiers de configuration des ressources de la plate-forme Cloud sont définis au sein de Kubernetes, quasi-indépendamment des infrastructures du fournisseur sur lesquelles la plate-forme Cloud repose : seule une fine couche technique d’adhérence existe entre Kubernetes et le fournisseur Cloud.


Ainsi, toute réversibilité – passage d’un fournisseur Cloud à un autre - est largement facilitée.


Concrètement, une plate-forme sous Kubernetes est ainsi compatible avec tout type de modes d’hébergement Cloud (public, privé et hybride) et surtout avec n’importe quel fournisseur Cloud.


Ce qui génère de nouvelles opportunités business pour les entreprises du numériques qui deviennent ainsi libres et indépendante vis-à-vis de leur fournisseur Cloud : réversibilité et migration indolores, multi-cloud facilité, industrialisation des zones Cloud, …



En conclusion...


Kubernetes est un système complet, riche en fonctionnalités d’automatisation, qui réduit le risque humain en termes de gestion de la plate-forme, qui optimise les ressources à tous les niveaux, permettant globalement une très grande stabilité et une mise à l'échelle automatique de la plate-forme, tout en apportant une optimisation des coûts.

Bien sûr, toute cette richesse fonctionnelle n’est possible que grâce à une administration pointue de la plate-forme Cloud sous Kubernetes, qui plus qu’une autre technologie, impose de nombreux profils techniques couvrant tous les domaines de compétences de l’hébergement : réseau, système, sécurité et développement.


Bénéficier des avantages et des automatisations de Kubernetes, c’est avant tout être capable d'administrer en amont Kubernetes avec une vision globale du projet technique.