Un mois pour tout savoir sur Kubernetes

On parle de plus en plus de Kubernetes : cette solution n’est pourtant pas nouvelle puisqu’elle existe depuis plusieurs années. On la présente même comme LA solution pour héberger nos futures applications. La première version de Kubernetes est née en juin 2014, on peut donc la considérer comme mature d’un point de vue technologique. Pourtant, c’est en ce moment qu’on en parle le plus. Pas un fournisseur de solution Cloud qui n’a pas son produit « Kubernetes » dans son catalogue. Les éditeurs de logiciels sont de plus en plus nombreux à offrir à leurs clients des solutions autour de Kubernetes.
L’intérêt que nous portons à une technologie a été matérialisé par le Gartner dans le cycle du Hype représentée ci-dessous :
Où se situe Kubernetes sur cette courbe ? On a déjà quelques éléments de réponse :
- Nous voyons de plus en plus de communications dans les médias sur la thématique de la conteneurisation ;
- De plus en plus de fournisseurs proposent des solutions en relation avec la conteneurisation.
Nous approchons donc du pic des attentes exagérées de la courbe Hype, juste avant la phase du gouffre des désillusions. Kubernetes n’échappera pas à cette courbe. D’un côté, nous voyons le potentiel de la technologie pour construire des applications dites « Cloud-native ». De l’autre, nous observons l’intérêt croissant de nos clients avec beaucoup de questions. Forte de ses expériences, Cellenza s’est forgé des convictions sur le sujet, convictions que nous allons partager dans cette série de billets.
Kubernetes est une thématique complexe que nous pourrions aborder en parlant de technologie mais le sujet est beaucoup trop vaste. Le besoin de nos clients est déjà de répondre à un certain nombre de questions :
- En quoi Kubernetes est-il différent des plateformes applicatives actuelles ?
- Suis-je prêt à l’adopter comme plateforme applicative ?
- Quels bénéfices puis-je espérer pour mes applications ?
- Si Kubernetes rend mes applications indépendantes de ma plateforme, cela réduit-il ma dépendance par rapport à mon fournisseur (Vendor-Locking) ?
- Quelles sont les étapes pour l’adopter ?
- Quels sont les challenges à relever pour adopter cette plateforme applicative ?
Les billets de ce Mois du Conteneur ont donc pour objectif de répondre à ces questions et vous fournir nos convictions sur différentes thématiques en relation avec Kubernetes.
Kubernetes fait-il l’unanimité ?
On pourrait croire que Kubernetes s’est imposé par la force mais en réalité, il n’en est rien. La solution a été adoptée car elle était soutenue par toute l’industrie. Historiquement, c’est un projet interne développé par Google pour répondre aux défis de la conteneurisation des applications. Google a fait le choix de proposer sa solution en open-source au travers de la Cloud Native Computing Foundation. L’adoption a été massive. On aurait pu penser qu’un acteur comme Docker, qui a formalisé les principes des conteneurs, était le mieux placé pour répondre au challenge de la scalabilité des conteneurs. L’histoire retiendra que beaucoup ont essayé de le concurrencer mais finalement, tous se sont rangés de son côté. Kubernetes fait donc l’unanimité au point de devenir une norme.
Comme indiqué précédemment, tous les fournisseurs de solutions Cloud / éditeurs ont Kubernetes à leur catalogue :
- Microsoft Azure avec AKS ;
- Amazon Web Services Amazon avec EKS ;
- Google avec GKE ;
- Oracle avec Container Engine for Kubernetes ;
- Red Hat avec Red Hat OpenShift ;
- VMware avec VMware Tanzu.
L’illustration ci-dessous est issue de l’étude menée par le CNCF en 2020 et réalisée par la Cloud Native Computing Foundation. On peut constater que l’adoption de la plateforme est très forte et pas seulement pour tester la solution. En 2020, un grand nombre des répondants de l’étude font tourner leurs applications sur la plateforme Kubernetes en environnement de production.
Source : CNCF Survey Report 2020
Selon cette représentation, Kubernetes apparait comme une solution « mainstream » que tout le monde peut déployer en production. D’après l’étude, son usage en environnement de production a augmenté de 78% cette dernière année. Il toutefois faut relativiser ces chiffres : en effet, toujours selon cette même étude :
- Les répondants à l’étude travaillent majoritairement pour des entreprises de grande taille (supérieure à 5000 personnes) ;
- 43% des répondants annoncent opérer des clusters d’une taille relativement modeste (entre 5 et 100 nœuds physiques ou virtuels), alors que 17% des répondants opèrent des clusters de très grande taille (plus de 5000 nœuds) ;
- La majorité de ces entreprises (près de 60%) sont liées au secteur du logiciel / technologie ;
- 26% des répondants sont en capacité mettre en production une nouvelle version de leurs application chaque semaine.
Nous reconnaissons-nous dans le profil des répondants de cette étude ? Non, c’est pour cette raison qu’il faut la relativiser. Les répondants ont déjà massivement investi dans la plateforme et en ont acquis une maîtrise, mais ce ne sont pas les consommateurs les plus représentatifs.
Au final, Kubernetes fait certes l’unanimité dans l’écosystème des fournisseurs mais est-ce la plateforme dont vous avez besoin pour héberger vos applications ? C’est une des questions auxquelles Cellenza s’attachera à répondre dans cette série du Mois du Conteneur. Kubernetes n’est pas une solution universelle.
Pourquoi cette thématique des conteneurs ?
Kubernetes est une tendance de fond qui a commencé avec Docker il y a quelques années en révolutionnant la manière de construire nos applications. Docker a facilité la portabilité de nos applications en les rendant indépendantes de la plateforme qui les héberge, ce qui a eu pour conséquence de rendre les équipes de développement plus autonomes dans le développement des applications. Cette nouvelle manière de construire et d’héberger des applications a nécessité de réviser la manière même de construire ces applications dites « Cloud Native » qui sont à la fois portables, résilientes, adaptables à la charge de travail à la demande. Cette qualification est issue de retours d’expériences qui ont été formalisés dans la méthodologie des « Twelve Factor App ». Adopter Kubernetes, c’est aussi adopter une nouvelle approche de conception des applications. On ne peut adopter l’un sans l’autre. La conséquence de cette double adoption est que cela génèrera des frictions.
Toujours selon les répondants à l’étude du CNCF, il est admis que Kubernetes est une solution apparaissant comme très complexe et nécessitant beaucoup d’efforts pour l’adopter. Ces deux challenges sont même perçus comme plus importants que la sécurité. Dans le contexte du Cloud, la complexité de Kubernetes aura tendance à s’estomper car les fournisseurs Cloud nous le proposent sous la forme de services managés. La thématique du changement culturel est un des axes que Cellenza a retenus pour aborder ce Mois du Conteneur.
Source : CNCF Survey Report 2020
Enfin, la dernière raison pour laquelle Cellenza a choisi d’aborder la thématique des conteneurs est que celle-ci intéresse de plus en plus nos clients. Nous avons pu construire avec eux nos convictions dans différents domaines et apporter des réponses à un certain nombre de questions :
- Est-ce adapté pour héberger mes applications existantes ?
- Comment élaborer des applications « Cloud native » ?
- Quels patterns utiliser pour construire nos futures applications (et donc, par extension, quels anti-patterns) ?
- Comment migrer des applications existantes ?
- Que doit contenir ma plateforme pour héberger des applications en production ?
- Comment l’intégrer dans mon système d’information ?
- Mes applications seront-elles réellement portables d’un fournisseur Cloud à un autre (stratégie multicloud) ?
- Comment aborder la sécurité de la plateforme et des applications hébergées ?
L’objectif de ce Mois du Conteneur est d’apporter des réponses à ces différentes problématiques.
Trouver son chemin dans l’écosystème
D’un point de vue technique, Kubernetes est un assemblage de projets open-source portés par le CNCF. Dans l’illustration ci-dessous, nous voyons les différents projets en relation. C’est ce qui fait de Kubernetes un écosystème à part entière, à côté de celui d’Azure.
Source : https://github.com/cncf/landscape#trail-map
Kubernetes est disponible dans Azure sous forme de service managé (Azure Kubernetes Services). Le service est pleinement intégré à l’écosystème Azure mais on ne peut faire l’impasse sur la partie open-source. Pour vous donner une idée de cet écosystème, je vous conseille d’aller voir le panorama disponible ici. En conséquence, c’est donc un écosystème open-source que nous devons adopter.
Par où commencer ?
Vous l’aurez compris, Kubernetes est un univers vaste nous offrant de multiples possibilités / alternatives pour construire la plateforme qui va héberger nos applications. Par expérience, cela implique de traiter un certain nombre de thématiques et donc de faire des choix. L’objectif de cette série d’articles sera donc de vous aider à faire vos choix pour construire la plateforme permettant d’héberger vos applications. La série d’articles que nous introduisons ici vous permettra de répondre aux questions essentielles :
- Comment intégrer la plateforme dans ma stratégie applicative ?
- Pour quels usages applicatifs ?
- Comment exploiter la richesse de l’écosystème open-source pour construire ma plateforme “Production Ready” ?
- Comment l’intégrer dans ma stratégie CI/CD ?
- Comment migrer / développer des applications sur cette plateforme ?
- Comment l’intégrer dans ma stratégie de monitoring ?
- Quels sont les défis de sécurité à relever ?
C’est donc une approche pragmatique qui a pour objectif de vous aider à intégrer Kubernetes dans votre système d’information (pourvu que vos applications et votre culture s’y prêtent). La série d’articles se conclura par un livre blanc téléchargeable gratuitement.
Un webinaire 100% gratuit comme fil rouge
Comme nous venons de le voir, la thématique du conteneur que nous allons aborder dans cette série d’articles est large. Il fallait donc un point d’entrée et un fil rouge pour lier tous ces articles.
Nous vous proposons donc de revoir notre webinaire
Le sujet étant vaste, trois experts présentent les étapes nécessaires pour construire votre plateforme Kubernetes prête à héberger vos applications en production :
- Benoît SAUTIERE : Cellenza – Senior Technical Officer
- Stanislas QUASTANA : Microsoft – Cloud Solution Architect
- Louis-Guillaume MORAND : Microsoft – Cloud Solution Architect
Le Mois du Conteneur, c’est parti !
Bienvenue donc dans cette série sur le Mois du Conteneur !
A ce stade, nous n’avons fait qu’effleurer le sujet et poser quelques-unes des questions que Cellenza a déjà abordées avec ses clients. Kubernetes est à la fois une plateforme applicative, un écosystème intégré à Azure tout en évoluant en parallèle, et un écosystème dans lequel nous allons piocher pour construire VOTRE plateforme applicative répondant à VOS besoins. Avant de trouver notre chemin dans Kubernetes, il faudra répondre à la première question : Kubernetes pour quels usages ? En quoi Kubernetes peut-il avoir un intérêt pour répondre à vos besoins Business ?
Rendez-vous dans l’article suivant de ce Mois du Conteneur pour en savoir plus !