Les modèles sont indispensables pour l'automatisation pilotée par GitOps

Publié: 2022-05-27

Table des matières

Automatisation pilotée par GitOps

Kubernetes est devenu célèbre pour sa facilité de mise à l'échelle et d'administration des applications conteneurisées. Il vous permet de trier et de gérer les nœuds, les éléments, les conteneurs, les services et les cartes de configuration tout au long du cycle de vie de l'application. Il était difficile d'obtenir une telle flexibilité et un tel contrôle par le biais de scripts.

Mais grâce à l'approche d'annonce de Kubernets en matière d'infrastructure, vous pouvez définir des changements de précision à n'importe quel niveau. Kubernetes vous permet d'intégrer plusieurs outils pour faciliter la planification, le déploiement et la surveillance automatisés des conteneurs.

L'un de ces outils est Helm, un framework d'automatisation adopté par la CNCF qui est devenu populaire non seulement dans les cercles Kubernetes mais aussi dans l'écosystème GitOps. Dans cet article, nous verrons comment Helm aide à automatiser les applications cloud natives via Kubernetes et GitOps.

C'est quoi Helm ?

Bien que décrit comme un gestionnaire de packages, Helm est un outil puissant pour automatiser l'installation, le déploiement, la mise à niveau et la gestion des applications Kubernetes. La gestion du Manifeste Kubernetes est une tâche qui devient de plus en plus complexe à travers les systèmes. Plusieurs fichiers YAML et valeurs de code dur en double sont nécessaires pour un seul tri. Kubernetes avait besoin d'un meilleur moyen de gérer les fichiers YAML via un format d'emballage simple, ce qui a conduit à des graphiques de barre. Cependant, le but du Helm va au-delà du modèle.

Graphiques

Les chartes Helm sont des unités qui peuvent être utilisées pour les applications Kubernetes. Chaque graphique peut contenir des fichiers, des métadonnées et une infrastructure d'application. Les graphiques écrits en Go seront stockés dans des répertoires de modèles spécifiques avec des variables, des versions et des descriptions associées. En stockant ces graphiques sous forme d'archives dans un référentiel, vous pouvez les partager avec votre équipe de développement pour les réutiliser.

Une fois qu'une copie d'un graphique est installée dans le cluster Kubernetes, elle est appelée sortie. Une nouvelle version est créée chaque fois que le graphique est utilisé, ce qui peut se produire plusieurs fois. Les publications vous aident à surveiller et à installer les cartes.

Vous trouverez ci-dessous quelques règles importantes à connaître lorsque vous travaillez avec Helm.

Chart.YAML : Le fichier principal qui contient la description de votre graphique

Values.YAML : Le fichier contenant les valeurs par défaut de votre graphique

Graphiques : un répertoire avec des sous-graphiques

Modèles : Répertoire des sources Kubernetes défini en tant que modèles

Modèles

Un dossier de modèles est une fonctionnalité clé de Helm. Il contient les fichiers de configuration de l'application, qui sont ensuite appliqués au cluster. Les fichiers du répertoire de modèles appellent leurs valeurs à partir de values.YAML.

Pourquoi Helm ?

Helm ajoute une grande valeur à l'environnement de livraison continue car il apporte les avantages suivants.

Productivité améliorée :

Helm (ainsi que d'autres outils de tri tels que Flux) vous permet de trier les logiciels avec un seul bouton ou une seule commande. Cela permettra à votre équipe de se concentrer uniquement sur le développement de logiciels.

Facilite le processus :

Le concept de graphiques vous permet de copier le même graphique dans tout le pipeline (développement, test et production) ou dans le flux de travail de différentes équipes. Cela réduit considérablement le problème.

La mesure:

Les graphiques sont conçus pour s'aligner sur l'architecture de cluster Kubernetes, ce qui facilite l'évolutivité.

Retrait facile :

Helm gère toutes les versions, ce qui facilite l'obtention de modifications lorsque des problèmes surviennent.

GitOps exploite à la fois Helm et Flux

Helm peut gérer des versions complexes et garder les choses simples au fur et à mesure que vous mesurez. Cependant, à mesure que les modifications sont progressivement introduites, Helm aura besoin d'outils supplémentaires pour mettre à jour le cluster Kubernetes.

Flux est une excellente solution de remplissage pour Helm car il agit comme un pont entre Helm et tous les référentiels Git importants à partir desquels l'ensemble du cluster Kubernetes et les spécifications des utilitaires sont définis.

Flux est une solution d'automatisation du déploiement basée sur le modèle GitOps, qui fait de Git le point de départ et la véritable source de tous les changements. Flux vous permet de maintenir la cohérence entre les référentiels de code et les clusters Kubernetes et automatise le tri lorsque des modifications de code sont introduites.

En bref, Flux Helm automatise les publications de graphiques en synchronisant les graphiques de Git vers le cluster Kubernetes.

Comment fonctionne Flux avec Helm ?

Pour utiliser Flux en tant qu'opérateur GitOps, vous enregistrez tous les graphiques Helm avec leurs fichiers YAML et les ressources personnalisées Kubernetes dans le référentiel Git. En outre, vous placez des images immuables de ces sources dans un registre de conteneurs.

Une fois que vous avez apporté une modification à Git avec la requête "Pull", Flux vérifiera votre référentiel et fournira les ressources nécessaires. Les modifications sont ensuite intégrées au cluster de production. Ceci, bien sûr, simplifie le processus, et vous pouvez faire beaucoup plus - comme des tests de tabagisme ou l'approbation de modifications spécifiques à SRE - mais pour l'instant, restons simples.

Si vous souhaitez en savoir plus sur la manière dont Flux 2 et Helm fonctionnent ensemble pour augmenter la vitesse et la fiabilité tout en réduisant le temps d'inactivité, consultez cette conférence YouTube de Scott Rigby.

Conclusion

Helm réduit considérablement la difficulté d'exécution de Kubernetes. Il ajoute une grande valeur au pipeline GitOps avec le concept de graphiques ou de modèles. Cela dit, il existe d'autres exigences au-delà des modèles, à savoir l'automatisation du déploiement de bout en bout. C'est là qu'un outil comme Flux (ou Weave GitOps, intégré à Flux) est nécessaire pour utiliser la barre. De plus, la solution de type Magalix garantit que les versions de Helm sont compatibles et sécurisées.

Weave KitApps est une solution de livraison continue qui vous permet de gérer Kubernetes à grande échelle. Cela permet à toute entreprise d'adopter et de mettre en œuvre facilement GitOps. Weave GitOps simplifie le cluster fonctionnel avec des commandes telles que « gitops install » pour activer GitOps et « gitops add app » à ajouter à votre application. Ces commandes éliminent les tâches complexes sous-jacentes qui sont autrement impliquées dans l'automatisation du déploiement. Weave GitOps rassemble l'ensemble du pipeline GitOps, y compris Helm, Flux, Magalix, etc., afin que vous puissiez démarrer avec GitOps sans perdre de temps.

comment-devenir-vendeur-amazon-en-étapes-faciles

marketing-numérique-pour-la-restauration