Quand utiliser Kubernetes

Effectué

La décision d’utiliser une plateforme d’orchestration de conteneurs comme Kubernetes dépend des exigences métier et de développement. Voici un passage en revue de l’architecture générale de la solution de suivi de drones.

La solution est créée sous forme de microservices conçus comme des services faiblement couplés et collaboratifs. Pour simplifier la conception et la maintenance de la solution, vous déployez ces services séparément les uns des autres. Voici la configuration actuelle de votre solution.

Diagram of the high-level architecture that describes the drone tracking solution.

  • Serveur web front-end : montre des cartes et des informations sur les drones suivis.
  • Service de mise en cache : Stocke les informations fréquemment demandées et affichées sur le site web.
  • API RESTful : utilisée par les drones suivis pour envoyer des données sur leur état, comme la localisation par GPS et les niveaux de charge de la batterie.
  • File d’attente : contient les données non traitées collectées par l’API RESTful.
  • Service de traitement des données : extrait et traite les données de la file d’attente.
  • Base de données NoSQL : stocke les données de suivi traitées et les informations utilisateur capturées depuis le site web et le service de traitement des données.

Des équipes distinctes au sein de votre entreprise développent et sont propriétaires de ces services. Chaque équipe utilise des conteneurs pour créer et déployer son service. Cette nouvelle stratégie permet à l’équipe de développement de répondre aux exigences du développement logiciel moderne quant à l’automatisation, au test, et à la stabilité et la qualité globales.

La modification des exigences des développeurs a induit plusieurs avantages métier et en termes de processus pour l'entreprise. Par exemple, une meilleure utilisation des ressources informatiques hébergées, de nouvelles fonctionnalités qui ont amélioré le délai de commercialisation et un accès amélioré aux clients.

Cependant, plusieurs tests concernant la gestion des conteneurs ont conduit votre entreprise à examiner les solutions d’orchestration de conteneurs. Vos équipes ont découvert que la mise à l’échelle de l’application de suivi pour un petit nombre de déploiements était relativement facile, mais que la mise à l’échelle et la gestion d’un grand nombre instances étaient difficiles.

Plusieurs autres aspects sont à prendre en compte. Par exemple, le traitement des conteneurs ayant échoué, de l’allocation du stockage, de la configuration réseau et de la gestion des secrets d’application.

Comme vous l’avez appris précédemment, Kubernetes (comme plateforme d’orchestration) fournit un support pour résoudre toutes ces difficultés.

Vous voulez utiliser Kubernetes quand votre entreprise :

  • Développe des applications en tant que microservices.
  • Développe des applications en tant qu’applications cloud natives.
  • Déploie des microservices en utilisant des conteneurs.
  • Déploie des conteneurs à grande échelle.
  • Nécessite une gestion centralisée du stockage et du réseau pour les conteneurs.

Quand ne pas utiliser Kubernetes

Toutes les applications ne doivent pas être exécutées dans Kubernetes. Ainsi, Kubernetes peut ne pas être adapté à votre entreprise.

Par exemple, l’effort de conteneurisation et de déploiement d’une application monolithique peut être trop important par rapport aux avantages qu’il y aurait à exécuter l’application dans Kubernetes. Une architecture monolithique ne peut pas facilement utiliser des fonctionnalités telles que la mise à l’échelle ou les mises à jour de composants individuels.

Kubernetes peut introduire de nombreux avantages professionnels pour le développement, le déploiement, la gestion de logiciels et la rationalisation des processus. Toutefois, Kubernetes a une courbe d’apprentissage abrupte. La conception modulaire de Kubernetes introduit de nouveaux concepts potentiels qui affectent les équipes dans votre entreprise.

Vos équipes de développement doivent adopter des techniques de conception modernes lors du développement et de la conception d'applications. Ces concepts comprennent l’utilisation de microservices et la leur conteneurisation. Les équipes doivent aussi expérimenter les environnements de conteneurs et d’orchestration pour tirer le meilleur parti de toutes les options disponibles.

Si votre entreprise n’est pas prête à adopter ce changement, Kubernetes risque de ne pas lui convenir.