Airship 2.0 : orchestration orientée cloud open source, piles incluses

L'avancée de Kubernetes a engendré un problématique au niveau de la gestion des opérations. L'initiative de l'Open Infrastructure Foundation intègre un certain nombre de projets open source pour gérer le cycle de vie des logiciels en automatisant déploiements, mises à jour et corrections.

L'open source a depuis longtemps conquis l'informatique d'entreprise. Aujourd'hui, grâce à la numérisation et la modernisation des infrastructures, il s'empare du cloud. Une enquête d’IBM / O'Reilly Media réalisée l'année dernière révèle que 70% des personnes interrogées souhaitent que leurs fournisseurs de cloud utilisent des logiciels open source. Pourquoi ? Parce que c’est une innovation qui offre choix, qualité et flexibilité.

Kubernetes est donc devenu une référence en matière d'exécution d'applications conteneurisées sur le cloud. OpenStack, l'un des trois projets open source les plus actifs, prend désormais en charge le plus grand nombre de systèmes de stockage et de réseaux d'entreprise du secteur.

Kubernetes est utilisé par près de la moitié des utilisateurs d'OpenStack pour le déploiement d'applications complexes sur l'infrastructure programmable fournie par OpenStack. L'innovation a permis l'intégration au niveau des pilotes et des API. Ainsi, ces projets assurent la cohérence et l'interopérabilité de services tels que le stockage, la mise en réseau, l'équilibrage des charges et la gestion du cycle de vie complet.

Le défi de l'opération

L'avancée de ces solutions d'infrastructure ouvertes a toutefois fait naître un nouveau défi : les opérations.

Il y a deux raisons à cela. La première est l'échelle, la taille toujours plus importante des déploiements de production et des équipes d'exploitation, combinée aux cycles récurrents de mise à jour. La seconde est le nombre de projets : l'infrastructure ouverte est composée de nombreux services, nécessitant l'intégration de nombreux projets open source différents.

Le défi pour les équipes informatiques est de pouvoir atteindre répétabilité et prévisibilité, en utilisant le même modèle de déploiement et de gestion pour tous les composants et reproduire les résultats sur des milliers de sites.

C'est là qu'intervient Airship, un projet de l'Open Infrastructure Foundation, qui intègre un certain nombre de projets open source pour gérer le cycle de vie des logiciels en automatisant les déploiements, les mises à jour et les corrections. Pour y parvenir, il utilise un modèle déclaratif avec des politiques écrites en YAML, et exécutées sous forme de flux de travail automatisés pour assurer la cohérence, la prévisibilité et la simplicité du processus à grande échelle. Kubernetes est un composant clé, Airship s'appuyant sur Kubernetes pour orchestrer le déploiement de l'infrastructure elle-même.

Il s'agit d’orchestration d'infrastructure ouverte - piles incluses - et Airship 2.0 marque un gigantesque pas en avant. Voici comment, dans cinq domaines clés connectés :

1. Descriptions YAML repensées

Les descriptions de sites entiers en YAML dans Airship 1.0 étaient devenues alambiquées et plutôt indigestes. De plus, le cloud s'étant développé, la gestion des nœuds ou clusters individuels a été délaissée au profit de la gestion de flottes de services. Le modèle déclaratif d'Airship 2.0 a donc été perfectionné pour s’adapter aux grands environnements de production et aux grandes équipes. Airship 2.0 présente des déclarations YAML simplifiées et de nouvelles valeurs par défaut, en plus de nouveaux outils pour créer des fichiers descripteurs.

2. Nouvel utilitaire en ligne de commande

Un utilitaire en ligne de commande - appelé Airshipctl - a été introduit. Il est au cœur du déploiement et du cycle de vie et automatise le provisionnement. Il communique directement avec les points de terminaison Kubernetes pour s'assurer que les dépendances, même de plus bas niveau, sont installées avant que les changements ne soient effectués. Il collecte les documents du contrôle de la source, applique les documents aux clusters et gère les flux de travail. Airshipctl évite de se perdre dans les fichiers de configuration ou de construire ses propres outils de collage.

3. Gestion centralisée des serveurs

Kubernetes suppose l'existence d'une infrastructure programmable en amont, ce qui peut créer un décalage lors du démarrage et de l'évolution d'un déploiement. Cluster API comble ces lacunes en utilisant des API déclaratives pour automatiser la création, la configuration et la gestion de ces ressources sous-jacentes. Airship 2.0 étend Cluster API pour permettre des fonctionnalités telles que les mises à jour du BIOS et la configuration RAID directement sur les serveurs bare-metal.

Le fait de travailler avec du bare-metal en plus des serveurs virtuels et des pods Kubernetes constitue une base pour la gestion unifiée des serveurs. Cluster API fonctionne également avec les fournisseurs de cloud, de sorte que le même flux de travail peut gérer les charges de travail sur Microsoft Azure, Google Cloud, AWS et OpenStack.

4. Phases

Airship 2.0 introduit un nouveau concept appelé phases. Une phase est une étape à réaliser pour atteindre un état souhaité du site géré. Regrouper des ensembles de commandes connexes permet d'effectuer une étape complète de déploiement avec une seule commande Airshipctl. Cela simplifie grandement le déploiement et le rend beaucoup plus facile à maintenir et à contrôler.

5. Gestion des secrets

Les projets open source utilisent souvent différents outils et méthodes pour gérer, protéger et fournir des actifs de sécurité tels que les mots de passe, les clés de sécurité ou les jetons d'API. Airship 2.0 standardise la gestion des secrets en utilisant un mode de plugin qui fournit un moyen unifié et cohérent d'utiliser ou de déployer ces actifs pour des applications ou des périphériques spécifiques.

Conclusion

L'objectif d'Airship est de résoudre le défi opérationnel que représente la gestion  à très grande échelle du cycle de vie d'une infrastructure alimentée par l’open source. Airship 2.0 fait mieux que la version 1.0, en offrant simplicité, puissance et flexibilité dans l'outillage combiné à une expérience utilisateur améliorée.