Solution Cloud — Managed Kubernetes
- Gestion déléguée de Kubernetes
- Quels sont les bénéfices ?
- Quels sont les principaux clients ?
- Quelques offres Managed Kubernetes du marché
Lorsqu’on travaille sur un produit ou service web, il arrive un moment où celui-ci touche le plafond et les murs : la fréquentation de notre service croît, les volumes de données qui transitent et sont stockés explosent, … et des problèmes de latence, voire carrément de perte de donné commencent à faire leur apparition.
La première étape pour répondre à ces problèmes consiste à « scaler son infrastructure » c’est-à-dire passer à une offre pour plus de puissance de calcul, plus de stockage, plus de redondance, etc.
Mais il arrive un moment où gérer tout ça soi-même consomme plus de temps, d’énergie et d’expertise que d’améliorer son propre produit. C’est à ce moment là qu’on se tourne vers des solutions comme Kubernetes : il permet de pousser encore plus loin la montée en charge de l’infrastructure de notre produit, sans augmenter la charge de travail
Kubernetes est une solution conçue pour faciliter la gestion d’infrastructures complexes dans le Cloud sans avoir à gérer l’orchestration des ressources, la redondance des services, etc. par soi-même.
Pour cela, il existe encore un seuil, au delà …
Gestion déléguée de Kubernetes
Même si Kubernetes a apporté de grands bénéfices, il reste lui-même complexe à exploiter. Les principales difficultés qui persistent pour les utilisateurs sont :
- La gestion du Control Plane de Kubernetes : Elle inclut son installation, sa configuration, et le suivi des mises à jour de Kubernetes, tout en s’assurant de garder ses propres services opérationnels.
- Interconnexion avec les autres services Cloud : Quand on déploie Kubernetes dans le Cloud, il ne va pas mener sa petite vie dans son coin. Il va forcément intéragir avec d’autres services de l’opérateur, comme la puissance de calcul, le stockage, la gestion des accès, etc.
- L’exploitation de Kubernetes : il s’agit de l’ensemble des tâches de maintenance du service, comme les mises à jours de sécurité, le provisionnement des ressources pour assurer la charge, les corrections qui pourraient être induites par des erreurs de configuration ou autre, etc.
Quels sont les bénéfices ?
En fournissant une solution de « Kubernetes as a Service » les opérateurs Cloud permettent aux utilisateurs de faire abstraction de cette complexité :
- L’offre Kubernetes est directement intégrée avec les autres offres. L’opérateur Cloud gère directement lesdites ressources, comme par exemple, les Machines Virtuelles sur lesquelles les pods de Kubernetes seront déployées. Ainsi, le déploiement (automatisé) de l’offre Kubernetes ne prendra que quelques minutes, sans intervention humaine en cours de route.
- Avec cette intégration vient la simplification de l’exploitation. L’opérateur va par exemple gérer les mises à jour de Kubernetes (en particulier les correctifs de sécurité), l’approvisionnement en ressources Cloud en fonction de la charge des services, etc.
- Une intégration standardisée. les opérateurs laissent à la charge du client la partie Terraform, grâce à laquelle le client peut déployer et administrer son propre service. Pour cela, l’opérateur assure la compatibilité avec les standards de Kubernetes. Cela apporte d’ailleurs en bonus l’interopérabilité et la portabilité des applications.
Les offres de Kubernetes Managées permettent ainsi aux clients de se focaliser sur leur propre solution et l’innovation. Ils permettent également aux clients de réduire leurs coûts (en réduisant la charge de travail et l’expertise requise à l’administration de Kubernetes) et les risques liées à l’administration manuelle de l’infrastructure.
En résumé, cela transforme Kubernetes d’un outil complexe en une plateforme « prête à l’emploi », idéale pour les équipes sans ops dédiés.
Kubernetes as a Service est particulièrement adapté pour des environnements de production critiques où la fiabilité est primordiale.
Quels sont les principaux clients ?
Dans le domaine de la tech, les clients typiques seront des entreprises proposant des solutions en « Software as a Service », que ce soient des startups ou des PME. un Kubernetes Managé leur permet d’itérer et faire croître leur produit rapidement, sans être obligé de monter une équipe d’opérations / maintien en condition opérationnelle conséquente.
Parmis les cas d’usage qui remontent le plus, on retrouve :
- Le déploiement d’applications modulaires, basés sur une architecture en microservices.
- Les applications multi-cloud, grâce au standard imposé par Kubernetes et Terraform.
- On retrouve aussi des entreprises PME et grands comptes qui migrent des applications legacy vers une infrastructure Kubernetes grâce aux offres managées.
Quelques offres Managed Kubernetes du marché
- Amazon Elastic Kubernetes Service (EKS)
- Google Kubernetes Engine (GKE)
- OVH Managed Kubernetes Service
- 3DS Outscale Kubernetes as a Service (OKS)
- Scaleway Kubernetes Kapsule
Exemple de création d’un projet Managed Kubernetes
- La première étape consiste à créer un projet : cette entité encapsule toutes les autres ressources, de segmenter les accès et de suivre la facturation granulaire, propre à ce projet et isolé des autres usages du Cloud (incluant les autres projets).
- Au sein de ce projet, nous pourrons ensuite créer un ou plusieurs cluster. Un cluster contient notamment le « Control Plane » au travers duquel le cluster sera administré.
- Un système de Templates réutilisable permet ensuite de faciliter, accélérer et standardiser les déploiements de clusters, nœuds, etc. Ils définissent les paramètres par défaut, comme la taille du Control Plane (dans le cas d’un template de Cluster), ou le type de stockage pour un nœud ou pool de nœuds (à noter que la notion de template varie d’un provider à un autre ; par exemple, certains ne proposent pas d’API, mais des templates sous forme de fichier yaml).
Il sera ensuite possible de configurer et automatiser les montées de version de Kubernetes pour un cluster ou un ensemble de nœuds donnés. Par exemple, on peut définir la fréquence et les plages horaires, si on traite les mises à jour majeurs et/ou les mineurs et patchs de sécurité, etc. L’idée à ce niveau est de s’assurer qu’une éventuelle interruption de service intervienne à un moment où ça n’affectera pas l’utilisation de notre service.
D’autres fonctionnalités permettront de surveiller l’état de son infrastructure Kubernetes les quotas disponibles, etc.
En complément, l’opérateur devra prévoir des outils comme kubectl ou Terraform, à partir desquels il pourra administrer l’infrastructure créée précédemment et les services qu’on y a déployé.
Ainsi, on voit qu’en quelques étapes clés, nous sommes en mesure de mettre en place, configurer et administrer toute une infrastructure Kubernetes … pour ensuite rapidement se concentrer sur notre propre service.
Write a comment