L’assurance d’une continuité applicative
Développer une application est une tâche laborieuse. Un développeur écrit les lignes de code puis implante l’application dans un environnement précis tandis que l’équipe de l’infrastructure installe la partie dépendance. Toutefois, les problèmes apparaissent lorsque cette application doit être déplacée vers un nouvel environnement. Les raisons peuvent être multiples :
- Mise à jour du système d’exploitation
- Mise à jour des dépendances applicatives
- Réinstallation sur un système d’exploitation plus récent
- Gestion de la très haute disponibilité lors de la panne d’un hyperviseur
Pour éviter l’arrêt de production, il est désormais possible de stocker les ressources matérielles (systèmes de fichiers, réseau, processeur, mémoire vive, etc.) et les dépendances des applications (fichiers, bibliothèques, etc.) dans un conteneur/docker pour les transporter sur d’autres systèmes d’exploitation en toute sécurité. « Cette technologie permet de redonner aux développeurs la gestion des dépendances applicatives (…), elle marque la fin du cloisonnement et de la dépendance entre application et système d’exploitation » explique Damien Ebel.
Bien que les conteneurs puissent fonctionner de façon autonome, ceux-ci peuvent se compter en milliers. C’est là qu’intervient Kubernetes, un programme développé par Google et disponible en open source visant à automatiser le déploiement et l’orchestration des conteneurs. Ce programme va créer un « porte-conteneurs » qui va séparer le système d’exploitation global et l’application, assurant à celui-ci une certaine indépendance. L’objectif ? Assurer une continuité applicative lors d’une mise à jour ou d’une panne et par conséquent d’empêcher l’arrêt de la production. L’apport majeur de Kubernetes est ici de minimiser la complexité liée à la configuration applicative tout en permettant aux équipes techniques d’accélérer les cycles de développement et de production applicatifs cloud-native. « La conteneurisation permet aux organisations de répondre à plusieurs problèmes de développement et d’assurer une livraison plus rapide tout en offrant agilité et portabilité tout au long du cycle de vie de l’application », affirme Florent Durant.
Kubernetes : point clé de la modernisation des applications
N’étant pas lié à un environnement ou à une technologie cloud spécifique, Kubernetes peut être lancé dans n’importe quel environnement : cloud public, privé, hybride ou encore on-premise. L’orchestrateur redéfinit ainsi les contours du cloud hybride et fluidifie les scénarios mixant « cloud privé » et « cloud public ». Le rapport « The State of Kubernetes 2020 » récemment publié par VMware confirme que les déploiements de Kubernetes en entreprise sont déjà très importants : 59% des responsables IT interrogés ont ainsi déjà déployé Kubernetes en production. Cette adoption voulue à la fois par les développeurs et les opérationnels IT n’est pas surprenante quand on regarde de près les bénéfices attendus par les entreprises quant à cette adoption de Kubernetes : adaptation, productivité, liberté et centralisation
De manière plus concrète, Kubernetes permet aux développeurs de ne plus se soucier des Machines virtuelles car il fait directement face à son environnement d’exécution : les conteneurs. Ainsi, le programme va s’occuper de la partie immergée de l’iceberg tout en adaptant l’infrastructure et le Back-end, aux apports du développeur. Ce dernier n’aura donc à se soucier que de sa propre création de nouvelles fonctionnalités et non de la stabilité de l’infrastructure lors du déploiement.
Mais au-delà ces aspects, l’outil peut être difficile à appréhender pour les non-initiés. C’est pour cela que VMware a développé Tanzu, une suite applicative pour l’usage professionnel. Le but ? Permettre aux organisations d’optimiser simplement leur stratégie de modernisation d’applications en concevant des apps et des micro-services ou encore en adoptant le DevSecOps, le tout en consommant Kubernetes à l’échelle des cloud publics et privés.
Kubernetes et conteneurisation : moteurs de la continuité applicative et de la modernisation des applications