31.01.23 ● Halima Gaye, DevOps engineer Senior ● 8 minutes lecture
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 :
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.
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 !
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.
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.
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.
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.
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 :
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 ?
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.
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 :
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.
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.
Les actions
Les avantages et les inconvénients
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 :
Les actions
Les avantages et les inconvénients
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).
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
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
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 :
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 !
Guidées par nos formateurs, vos unités obtiendrons les compétences nécessaires pour mettre et maintenir vos environnements en production en autonomie.
Une unité vous accompagne sur vos problématiques DevOps et de sécurité en engageant votre transition vers le cloud computing.
Présentation des Operators, indispensable à l'automatisation de vos tâches.
Cet article vous aide à mieux comprendre Kubernetes et à quel cas d'usage son usage et bénéfique.
Présentation des principaux composants de Kubernetes.
Assurons que vos efforts investis dans le cloud soient rentables … dans le temps !