5 stratégies pour réussir son adoption Kubernetes

31.01.23  Halima Gaye, DevOps engineer Senior ● 8 minutes lecture 

Comment adopter Kubernetes ?

Kubernetes c’est quoi ? Un outil open-source qui nous permet de gérer les conteneurs dans lesquels sont déployés nos microservices. Kubernetes c’est quoi pour les affaires ? Un game changer qui nous permet de gérer nos infrastructures en microservices de manière optimale. Mais encore ? Un time-to-market record, des applications, résilientes, stables, et fiables. Belles promesses, mais dans la pratique Kubernetes c’est quoi ? Dans la pratique, Kubernetes implique des prérequis techniques et organisationnels interconnectés dont il faut avoir conscience quand on se lance. Mais encore ? Des maux de tête… évitables !

Cet article expose :

Les avantages d’une adoption Kubernetes
Les implications d’une adoption de Kubernetes
Les différentes stratégies pour réussir une adoption Kubernetes
Les différentes stratégies pour réussir une adoption Kubernetes

Pourquoi faut-il utiliser Kubernetes ? 

Réduire le temps de livraison des applications

Le fameux Time-to-market est sans doute la motivation première pour passer du côté DevSecOps de la force. Et pour cause, votre compétitivité repose sur celui-ci. Le bon usage de Kubernetes assure des temps de déploiement record en facilitant le processus de gestion sur tout le cycle de vie de vos services. Comment ?

Dans un modèle d’architecture en microservices, vos applications sont divisées en unités fonctionnelles pouvant communiquer les unes avec les autres par l'intermédiaire d'API. Ainsi, vous pouvez attribuer à chacune de vos équipes opérationnelles un (micro)service spécifique sur lequel elles pourront concentrer tous leurs efforts.

Plus avec moins

Il serait malhonnête de vous dire que vous allez faire des économies tout de suite - Kubernetes est un investissement comme un autre. Cependant, le bon usage de Kubernetes vous assure une bien meilleure gestion des ressources matérielles … et humaines sur le moyen terme ! 

Avec moins d’investissement financier

Selon la récente enquête de la CNCF, l'utilisation des ressources est citée comme le principal avantage par 56 % des répondants, face à 53% pour la réduction des cycles de développement (un chiffre que nous espérons voir augmenter à mesure que les solutions de gestion s’améliorent). Comment ? Les applications K8s peuvent être exécutées sur l’environnement de votre choix (on-premise, cloud privé ou cloud public) avec le nombre de ressources de votre choix en fonction de leur pertinence.

Avec moins d’investissement RH

Davantage, le fameux “bon usage” de Kubernetes tient en votre capacité à tirer parti de ses facultés d’automatisation. Kubernetes vous offre l’opportunité d'automatiser les tâches fastidieuses, les tests, les déploiements … En d’autres termes : des équipes concentrées sur les tâches à haute valeur ajoutée, un cadre de travail plus sain, un besoin en ressources humaines réduit.

Une migration vers le cloud rapide et efficace

Conteneuriser ses applications c’est embrasser tous les avantages du cloud sans faire de concessions. Un conteneur peut être exécuté sur n’importe quel environnement et ce sans en affecter ses performances. Ainsi, vos choix stratégiques ne sont plus contraints par des effets d’enfermements. En d'autres termes, Kubernetes n’est pas un outil de migration, mais le moteur de la migration de vos applications sur site vers des fournisseurs clouds publics ou privés. Notez que choisir le modèle de déploiement, hybride ou multi-cloud, mérite quelques questionnements.

Avoir conscience des difficultés à venir

Nous sommes totalement alignés, kubernetes implique bien plus d’un challenge : la sécurité, le stockage, le réseau … Ceux-ci tirent leur origine premièrement de la complexité native de Kubernetes, une complexité en partie dû à la jeunesse de l’outil et au virage technique engagé. Une nouvelle techno, de nouvelles compétences ! Il n’en reste pas moins que ceux-ci sont surmontables grâce aux solutions disponibles sur le marché mais ils ne sont que la partie émergée de l’iceberg.

La réussite de vos projets kubernetes tient à la manière dont vous appréhender la prise en main du gouvernail et de son écosystème. En d’autres termes : votre culture d’entreprise.

L’acculturation

Le cloud est un état d’esprit. Kubernetes est un état d’esprit #adoptetonDevSeCops. Cet état d’esprit impose à votre organisation une acculturation. Pour corriger ce problème, il faut tout d’abord comprendre (et accepter) dans quel type de schéma organisationnel vous évoluer. Nous vous en proposons trois :

L’entreprise hiérarchique ralentie par d'innombrables processus souffrant d’enjeux politique interne (DevVSsecVSOps).
L’entreprise de puissance ralentie par une prise de décision unilatérale … et déconnectée des réalités opérationnelles.
L’entreprise d’innovation vitalisée par des équipes interfonctionnelles.

Le dernier modèle est celui de la réussite. Le schéma ci-dessus montre que Kubernetes et ses bénéfices doivent être compris puis sponsorisés par le TOP management. Ce faisant, le middle management ne fait plus office de tampon entre les décisions d’en haut et les difficultés d’en bas mais uniquement de vecteur de réussite. Enfin, les lignes opérationnelles, soulagées et mieux encadrées, délivrent des applications résilientes, stables, et fiables en un temps record.

Cette acculturation nécessaire repose sur des principes très populaires : établir un plan de transformation, adopter une méthodologie DevSecOps, communiquer, organiser des after work (ce dernier n’est pas obligatoire mais recommandé)... Est-ce que l’acculturation est un long fleuve tranquille ? Non, un tel virage prend du temps. Alors, est-elle vraiment utile ?

Pourquoi utiliser Kubernetes ?

Réussir son adoption Kubernetes

Entrons dans le vif du sujet. Une majorité des entreprises en 2023 est orientée microservices ou souhaite adopter ce type d’architecture - au détriment des architectures monolithiques qui ne peuvent plus répondre dans les temps à la demande. Mais qu’est-ce qu’une architecture microservices ? Sur le schéma ci-dessous, vous verrez l’ensemble des concepts appliquées dans une telle architecture.

Architecture en microservices

Pour faciliter votre compréhension, nous allons énumérer les stratégies à adopter pour assurer la réussite de votre migration sur une architecture simple qui comprend : l’API gateway, les microservices et leurs bases de données, le service discovery, la configuration - comme suit :

Principaux composants d'une migration Kubernetes

Vue générale d’une migration vers Kubernetes

Les 5R ! Pour être honnête, le patern 6R est le plus récent. Mais les concepts sont flous et ne vont pas droit au but. Donc reprenons : les 5R ! Ce pattern stratégique comprend 5 stratégies différentes : Rehosting, Refactoring, Revising, Rebuilding, Replace.

Celle-ci présente un niveau de difficulté, et d’investissement coût/temps différent. Votre position de départ dépendra de votre situation actuelle et de vos objectifs (court, moyen, long terme). Exemple, le rehosting présente le meilleur ratio coût/temps contre le rebuilding qui implique bien plus d'efforts. Pourtant, le rebuilding offre l’opportunité de bénéficier de toutes les fonctionnalités de Kubernetes tout en assurant l’acquisition de compétences fortes et la création d’une culture d’innovation forte. Pour comprendre, regardons de plus près chaque stratégie.

Stratégies 5R Kubernetes

1) Rehosting

Le Rehost est la manière la plus simple de migrer sur Kubernetes et implique que vous ayez déjà vos microservices (migrer un monolithe est anti-productif et source de souffrance). Cette stratégie consiste à conteneuriser et migrer vos unités telles quelles sur une infrastructure Kubernetes. En revanche, vous allez devoir adapter vos services à ce nouvel environnement pour bénéficier des fonctionnalités proposées par Kubernetes.

Rehost Kubernetes

Les actions 

Ajouter l’API gateway choisie pour ouvrir un point d'entrée unique à vos microservices ;
Ajout Gateway Ingess : recevoir des flux de l'extérieur dans votre cluster ;
Embarquer un discovery (ex : consul) et un serveur de configuration (ex : git externe) ;
Ajouter le composant External Service Kubernetes pour accéder à votre base de données externalisée ;

Les avantages et les inconvénients 

Migration sans modification importante de l'architecture de vos applications.
Une migration plus rapide.
Les risques associés à l'infrastructure en raison de ses conséquences sur l'évolutivité de l’application inchangée.

2) Refactoring et Revise

Pour ces stratégies, vous allez remplacer les fonctionnalités de vos applications que vous développez pour les remplacer par les fonctionnalités proposées par Kubernetes. L’effort est minime car elle implique la suppression de quelques composants, par exemple :

Refactoring Kubernetes

Les actions 

Si nous confrontons l’architecture Rehost et celle-ci, vous constaterez que le service discovery n’est plus. Avec Kubernetes il est possible que notre API Gateway appelle directement les microservices selon les requêtes reçues.
Vous pouvez aussi remplacer votre configuration externe (Git) par le composant Config Map de Kubernetes qui permet de partager vos configurations à vos différents microservices.

Les avantages et les inconvénients

Composant fourni par l’infrastructure Kubernetes ;
Moins d'efforts sur les tâches fastidieuses pour les équipes DevOps (prise en charge, automatisation…) ;
Efforts impliqués minimes ;
Compréhension des composants de l'architecture de Kubernetes nécessaire ;
Dépendance technique avec Kubernetes (pour le meilleur) ;

3) Rebuild

La stratégie rebuild implique une architecture de vos applications en considérant toutes les possibilités offertes par Kubernetes : discovery, load balancing, self-healing, health check… Ainsi vous assurez à votre organisation de tirer pleinement avantage de l’outil sur le moyen et long terme. Plus particulièrement, vous allez centraliser vos efforts : le logging, la sécurité, les backups, le monitoring… et accéder à des stratégies de déploiement continue telles que canary, Blue/green ou encore A/B testing.

Cet investissement implique néanmoins un coût important en temps et en argent. En effet, cette adoption totale ne peut être menée à terme sans l’acquisition de compétences profondes sur Kubernetes (formations, conseils, emploie).

Rebuild Kubernetes

Les actions 

Au lieu de cibler vos microservices un à un comme dans le cas de refactoring, vous allez bénéficier du discovery optimisé propre à Kubernetes. Davantage, la config Map prendra en charge toutes les tâches de fonctionnement de vos applications (toutes automatisées dans le meilleur des cas) ainsi vos équipes n’auront qu’à se concentrer sur le développement et la mise sur le marché de vos applications.

Les avantages et les inconvénients

Résilience et haute disponibilité de vos applications ;
Temps d'exploitation réduit pour les DevOps ;
Time-to-market compétitif ;
Implique une maîtrise profonde de l’outil ;

4) Replace

La stratégie replace est orientée Cloud en général. Celle-ci consiste à remplacer une application existante par un service cloud existant et plus performant. Elle rejoint l’adoption de modèles hybrides ou multi-cloud qui implique l’usage de plusieurs fournisseurs cloud (Aws, GCP, Azure…) - modèles très plébiscités par ailleurs.

Cette stratégie n’est pas antinomique aux autres mais complémentaire. En effet, Kubernetes est en capacité d’être déployé sur n’importe quel type de serveur : on-premise, cloud privé ou public. Dans un contexte de déploiement dans un environnement cloud, Kubernetes comprend un composant faisant office passerelle entre l’API de la plateforme choisie et votre cluster - le cloud manager controller.

Les avantages et les inconvénients

Suppression d’investissement développement sur une partie de votre infrastructure ;
Bénéficier des meilleurs services pour satisfaire vos besoins techniques ;
Effet d’enfermement - c’est à dire dépendance au service utilisé ;
Couche de complexité supplémentaire dans la gestion quotidienne de Kubernetes ;

Alors, quel R ?

Nous avons vu dans cet article qu’il existe plusieurs points de départ : Rehosting, Refactoring, Revising, Rebuilding, Replace. Chacun d’entre eux présente des inconvénients et des avantages. Par expérience, le rebuilding est la stratégie qui montre le plus de bénéfice sur le moyen et long terme malgré la difficulté de la tâche. Quant au replace, cette stratégie est intrinsèquement liée à un projet de migration vers le cloud.

Pour faire le bon choix, impliquez toutes les parties prenantes de votre organisation pour commencer le plus gros chantier : la création d’une culture cloud basée sur l’apprentissage, la mise en commun, la résolution de problèmes. Comment faire ? L’application d’un R ne veut pas revient pas à changer la totalité de votre infastructure du jour au lendemain.

Votre transition doit être progressive. Commencez sur des zones applicatives définies avec des unités opérationnelles définies sur la base d’objectifs définis, exemple :

Réduire le temps de mise en production de 6 à 1 jour sur l’application A avec une unité composée de …
Réduire les coûts de fonctionnement de 1 000 000€/annuel à 750 000€/ annuel sur l’application B avec une unité composée de …

Ces zones d'expérimentation serviront à peaufiner vos choix et à créer un intérêt collectif suscité par l’atteinte des objectifs fixés promue par les équipes expérimentales (sponsor horizontal) et la direction (sponsor vertical). La ligne d’arrivée n’en sera que plus proche et bénéfique !

Formations Kubernetes

Guidées par nos formateurs, vos unités obtiendrons les compétences nécessaires pour mettre et maintenir vos environnements en production en autonomie.

Accompagnement

Une unité vous accompagne sur vos problématiques DevOps et de sécurité en engageant  votre transition vers le cloud computing.

Les operators dans Kubernetes

Présentation des Operators, indispensable à l'automatisation de vos tâches.

Ai-je besoin de Kubernetes

Cet article vous aide à mieux comprendre Kubernetes et à quel cas d'usage son usage et bénéfique.

Architecture Kubernetes guide

Kubernetes architecture

Présentation des principaux composants de Kubernetes.

www.beopenit.com

Assurons que vos efforts investis dans le cloud soient rentables … dans le temps !


© Copyright BeOpen IT.  All Rights Reserved