Cloud Magazine vous présente ses meilleurs voeux

Automatisation complète de la pile grâce à Kubernetes

La révolution de l'open source repart en force avec l'essor de Kubernetes. La flexibilité et l'agilité sont les facteurs clés pour tirer le meilleur parti de l'ère du cloud, du multi-cloud ou du cloud hybride. Kubernetes facilite ce processus en accordant aux équipes de DevOps un plus grand contrôle sur l'ensemble de leur infrastructure. Mais plus facile ne signifie pas nécessairement simple ; il y a encore des obstacles à surmonter.

Connecter Kubernetes aux bases de données sous-jacentes s'est avéré difficile pour les entreprises qui cherchent à adopter une approche holistique de leurs opérations de cloud computing. L'agilité dynamique de Kubernetes, bien qu'elle soit excellente dans les environnements de cloud public, a tendance à être problématique pour les bases de données héritées qui sont toujours rattachées aux instances traditionnelles des machines virtuelles ou à bare-metal. Cette inadéquation entre l'évolutivité instantanée des environnements conteneurisés et les déploiements de bases de données plus complexes peut entraîner des problèmes importants lorsque la demande et l'utilisation d'une application cloud fluctuent.

Les principaux obstacles sont souvent les suivants :

  • Des coûts d'exploitation élevés : déployer et gérer manuellement des centaines de clusters de bases de données sur plusieurs zones géographiques augmente les coûts, les efforts et la complexité.
  • Des fournisseurs limités : l'absence de normalisation pour garantir la libre circulation des données en toute sécurité entre les fournisseurs de cloud computing a rendu difficile le changement rapide de fournisseur ou la collaboration avec plusieurs fournisseurs.
  • Des retards de mise sur le marché : les clients ayant des applications utilisant des architectures microservice ont des difficultés à gérer et à mettre à l'échelle les clusters de bases de données dans des systèmes cloisonnés, ce qui allonge les temps de développement et rend plus difficile le support de leurs applications.

Les développeurs ont besoin d'une agilité et d'une orchestration automatisée dans des environnements multi-cloud, et avec la bonne application de Kubernetes, ils peuvent surmonter ces défis pour y parvenir. Il y a quelques domaines d'intérêt clés.

La tête dans les clouds

Il est vraiment facile de se précipiter tête première dans le buzz séduisant des clouds tendance. Mais pour bien faire les choses, il faut une approche plus solide. Les applications natives de cloud ont beaucoup plus d'avantages que leurs homologues plus limitées, y compris une mise à l'échelle instantanée de la capacité en fonction de la demande des utilisateurs et de la livraison depuis le périphérique pour améliorer la vitesse et la fiabilité.

Le problème, c'est que l'aspect " cloud-natif " de l'application s'arrête généralement à l'application sans se soucier de tous les autres aspects qui la font fonctionner. De nombreuses bases de données héritées sont verrouillées dans une stratégie de déploiement spécifique sur des serveurs bare metal ou des machines virtuelles. Elles ont été conçues pour une époque antérieure où les bases de données ne fonctionnaient que dans des environnements sur site et se sont lentement adaptées. Il est donc difficile de s'adapter à la demande accrue durant les périodes de pointe, comme les vacances pour les détaillants ou l'été pour les entreprises de voyage et d'accueil, car les changements fréquents et les entrées plus nombreuses mettent à rude épreuve les limites de la puissance informatique disponible.

L'exécution d'applications dans le cloud est généralement un " jeu d'enfant". De nombreuses applications sont sans état, ce qui permet une restauration rapide en cas de plantage de l'instance de l'application. Les charges de travail sans état sont généralement faciles à transférer d'un fournisseur de cloud à l'autre. Les bases de données, d'autre part, sont dynamiques, nécessitant une gestion et une orchestration sophistiquées pour préserver la disponibilité et la cohérence en cas de crash des instances. La migration des bases de données à partir de l'environnement sur site de leur création peut donc devenir une tâche décourageante, d'autant plus que la quantité de données augmente de téraoctets en pétaoctets et au-delà.

Les équipes de DevOps doivent apporter des modifications à leurs déploiements de bases de données afin d'être aussi agiles que les applications qu'elles prennent en charge. Cela signifie qu'il faut passer à une pile complète réfléchie comprenant les applications sans état et les applications avec état.

La pile complète et rien que la pile

Les systèmes d'orchestration de conteneurs comme Kubernetes peuvent aider à résoudre ces problèmes, en particulier pour les applications qui utilisent déjà des conteneurs pour l'application elle-même. On a longtemps cru, à tort, que les conteneurs n'étaient pas à la hauteur du défi de soutenir une base de données à part entière, ce qui a ralenti leur adoption. Par le passé, il s'agissait d'une taxe équitable à percevoir sur les conteneurs. Cependant, avec l'avènement de Kubernetes et la sophistication croissante de la gestion des charges de travail à états dynamiques (par exemple, contrôleurs personnalisés et volumes persistants), le déploiement de bases de données distribuées en conteneurs est une option viable. La capacité des environnements de conteneurs à s'adapter rapidement à l'évolution des besoins, en faisant tourner un plus grand nombre de groupes de conteneurs en un clin d'œil, les rend parfaitement adaptées aux tâches à l'échelle du cloud.

Kubernetes rend la plateforme cloud agnostique, ce qui signifie que peu importe que vous utilisiez on-prem, AWS, Azure, Joe's Home Cloud Platform ou une combinaison des trois. Le résultat final sera une opération fluide et transparente pour tous les utilisateurs. Une application conçue dans Kubernetes fonctionnera n'importe où, sans aucun changement, grâce aux directives strictes du CNCF que les fournisseurs de plateformes doivent suivre.

En automatisant les scénarios de clouds communs, les conteneurs peuvent soulager les équipes opérationnelles du fardeau de la surveillance et de la gestion. Kubernetes facilite la gestion de l'ensemble du processus de déploiement d'applications grâce à un tableau de bord unique incluant tous les éléments réseau ou de stockage.

Des réponses personnalisées à des situations courantes telles que des pics de demande peuvent être programmées dans la pile via Kubernetes. Ensuite, le système d'orchestration les exécutera automatiquement lorsque les critères apparaissent. Ce type de réaction instantanée n'est possible que lorsque l'application et la base de données fonctionnent sur la même plateforme en tant que service (platform as a service PaaS). Elle permet de faire de la mise à l'échelle de la capacité un processus linéaire presque parfait qui augmente et diminue avec la demande au lieu d'augmenter la puissance de calcul en laissant la capacité inutilisée.

Ce processus peut également contribuer à assurer la continuité et la disponibilité de l'application et de la base de données correspondante. Si des problèmes de connectivité ou des erreurs système d'une instance commencent à avoir un impact sur l'expérience utilisateur, le système d'orchestration peut détecter ce problème et réagir instantanément.

Montrez-moi les données

Le résultat final de tous ces avantages est que les équipes de DevOps qui adoptent Kubernetes pour leurs applications et leurs bases de données seront en mesure d'offrir une expérience utilisateur bien meilleure et une plus grande réactivité aux besoins changeants. L'agilité revêt une importance croissante à mesure que les équipes de développeurs s'efforcent de répondre à la pression du marché. Cette méthode leur permet de passer plus de temps sur l'application elle-même au lieu de gérer les détails quotidiens du déploiement de la base de données. Ils ont également le contrôle total de la base de données et des données qu'elle contient. Ils n'ont pas besoin de faire appel à des experts ou à des fournisseurs externes, mais peuvent utiliser le libre-service pour extraire la signification des données.

La montée en puissance de Kubernetes a permis une nouvelle ère de déploiements rapides d'applications que les entreprises les plus averties peuvent utiliser pour atteindre leurs objectifs. Mais il est important de ne pas se précipiter dans la stratosphère et de ne pas laisser le cloud derrière soi pour d'importants systèmes de soutien aux applications comme les bases de données. Pour bien faire les choses, il faut de la patience et du doigté pour tenir compte de tous les facteurs.

Couchbase