Sélectionner une page

Principal concurrent de Docker, Kubernetes est un logiciel de gestion de workloads, développé par Google et rendu disponible en Open source en 2014. Il permet l’optimisation du déploiement, la mise à l’échelle et la gestion d’applications conteneurisées (notons que Kubernetes ne builde pas les applications et ne déploie pas le source, seulement les conteneurs).

Comment fonctionne Kubernetes ?

Cette technologie repose sur les clusters et les containers qu’ils gèrent : chaque cluster est sous la direction d’un master et contient des nœuds (des machines physiques ou virtuelles), qui exécutent des pods, c’est-à-dire les objets générés par Kubernetes.

Ces conteneurs d’applications sont isolés à la fois les uns des autres et de l’hôte : ils disposent tous de leurs propres systèmes de fichiers, ne peuvent voir que leurs propres processus et il est possible de contraindre leur usage des ressources à ce qui leur est strictement nécessaire. Ils sont donc plus simples à construire que des machines virtuelles, et disposent d’une bonne portabilité entre les différents providers y compris les fournisseurs de Cloud et les OS, parce qu’ils sont décorrélés de l’infrastructure sous-jacente ainsi que du système de fichiers de l’hôte.

Les conteneurs sont petits et rapides : il est possible de packager une application dans chacune de leurs images. L’équilibrage des charges, les logs et le monitoring peuvent se réaliser au niveau de chaque conteneur et non pas sur une globalité, ce qui garantit que les déploiements correspondront aux besoins des applications.

En passe de devenir une norme ?

La technologie de conteneurisation est extrêmement récente, et si plusieurs projets opensource se disputaient le standard il y a encore quelques années, c’est Kubernetes qui semble avoir pris le dessus. Pourquoi ? Tout d’abord parce que sa technologie est particulièrement stable, ce qui en fait un choix de confiance, plébiscité par les professionnels et les fournisseurs, mais également pour les bénéfices qu’il offre en développement d’applications.

Si vous vous demandez sur quelle technologie investir pour l’avenir, les conteneurs semblent clairement tirer leur épingle du jeu, on pressent d’ailleurs de nombreuses innovations à venir tant leur croissance est dynamique, soutenue par la tendance à la migration des machines virtuelles vers les conteneurs, justement. L’avenir nous le dira, mais il pourrait bien se passer quelque chose du côté de l’architecture sans serveur (serverless).

Du développement à l’exécution

Si les développeurs ont été prompts à s’emparer de cette technologie, c’est parce que cela leur a permis de transférer plus aisément leurs applications depuis les environnements de développement vers ceux de la production. En effet, il est courant de constater des différences entre le test et la prod, car les applications peuvent s’exécuter différemment. Or, les conteneurs, de par leur nature, contiennent littéralement à la fois l’application et tout ce qui l’entoure : en la transportant de cette manière, ils ont l’assurance que l’appli s’exécutera de la même manière que lors du test. Un gain de temps très appréciable pour les devs !

Dans une même logique, il est également plus facile pour l’utilisateur de migrer des applications existantes dans des conteneurs afin de les exécuter sur Kubernetes, ainsi que d’en créer de nouvelles comme les microservices Cloud natives.

Tous ces avantages font de Kubernetes un standard actuel de la technologie de containerisation, surpassant la technologie Docker… avec laquelle il peut d’ailleurs fonctionner !