L'évolution de la gestion de la configuration : IaC contre GitOps

Publié: 2022-05-23

Table des matières

L'évolution de la gestion de la configuration

Les structures inappropriées sont la principale raison des incidents de sécurité dans les environnements de conteneurs orchestrés par Kubernetes ou autres. Sans la bonne configuration, les applications peuvent rencontrer des problèmes allant d'incompatibilités et de conflits à des problèmes de performances, des vulnérabilités de sécurité et des défaillances opérationnelles. La gestion de la configuration est une partie importante du maintien de l'état stable et souhaité des ordinateurs dans le cycle de vie du développement logiciel.

Héritage de la gestion de la configuration

À l'époque, lorsqu'il s'agissait de gérer les changements dans les ressources informatiques, l'équipe informatique se concentrait principalement sur le niveau du serveur, pour voir si des changements dans le matériel pouvaient causer des problèmes dans la couche restante. Chaque serveur a été configuré manuellement avec un excellent soin et du temps libre. Les machines virtuelles ont apporté plus de flexibilité et d'efficacité à ce processus.

Le code d'infrastructure (IaC) est une étape importante pour la gestion de la configuration où l'ensemble du matériel est défini sous forme de code. Les outils IaC tels que les plates-formes basées sur le cloud, Chef, Puppet et Ansible ont joué un rôle clé dans la simplification et la mise à l'échelle de la gestion de l'infrastructure. Ils ont contribué à accélérer le provisionnement de l'infrastructure et à réduire les coûts en améliorant l'utilisation des ressources.

Au fil des ans, les plates-formes basées sur le cloud, et les conteneurs en particulier, ont révolutionné la façon dont l'infrastructure est provisionnée. Avec l'adoption d'un cloud majeur et la transformation de Git en système de contrôle de version actuel, GitOps s'est imposé comme le dernier tournant dans l'évolution de la gestion de l'architecture. GitOps va bien au-delà d'IaC lorsqu'il s'agit de tout coder. « Tout » comprend ici l'infrastructure, la mise en réseau, les données et les applications.

Kubernetes et l'approche déclarative de l'infrastructure

Comme pour la programmation, il existe deux approches pour fournir une infrastructure : la notification et l'obligation.

Une approche convaincante vous oblige à spécifier les mesures appropriées à prendre pour fournir ou modifier l'infrastructure. Il fournit l'expérience nécessaire pour utiliser l'infrastructure. Il fournit l'expérience nécessaire pour utiliser l'infrastructure. D'autre part, l'approche de notification est plus adaptée à l'approche cloud-native moderne définie par Kubernetes. Il vous suffit de définir l'état souhaité du système et de laisser sa fonctionnalité à un site comme Kubernetes. L'infrastructure Kubernetes facilite à la fois l'automatisation et la configuration des notifications.

Le passage de DevOps à GitOps

GitOps, conçu en 2017, est un cadre fonctionnel moderne pour gérer les clusters Kubernetes et fournir des applications axées sur Git. Il obtient les meilleurs éléments de DevOps tels que l'outil CI / CD, une collaboration entre Dev et Ops, l'automatisation des processus et les utilise dans le pipeline de livraison de logiciels en utilisant Git comme source d'authenticité.

DevOps a assuré la collaboration entre les équipes de développement et opérationnelles et a provoqué un changement culturel dans le domaine des technologies de l'information. Mais, moins que prévu, les entreprises ont adopté les fonctionnalités d'intégration continue et de distribution continue mais n'ont pas évolué vers le déploiement continu.

C'est là que GitOps fait passer les choses au niveau supérieur. Avec l'approche GitOps, les équipes non seulement définissent mais gèrent également le tri et la modification de leur infrastructure à partir d'un référentiel Git. Apporter des modifications à l'infrastructure est aussi simple que de créer une demande de glisser maintenant - vous pouvez détecter les fautes de frappe, effectuer des révisions régulières ou modifier l'engagement si nécessaire. Grâce à Git, les développeurs peuvent désormais générer du code, et les ingénieurs du système d'exploitation peuvent utiliser ce code automatiquement en production.

Utilisation de Flux & Helm pour la gestion de la configuration pilotée par GitOps

Kubernetes vous permet d'intégrer une variété d'outils pour automatiser la planification, le tri et la surveillance des conteneurs. L'un de ces outils est Helm, qui est devenu très populaire dans l'écosystème GitOps.

Helm est un puissant gestionnaire de packages pour Kubernetes qui facilite la définition, l'installation et le déploiement des applications et services les plus répétitifs utilisés dans diverses situations. Les graphiques Helm ajoutent une grande valeur à l'environnement de distribution continue en fournissant une conception d'emballage organisée pour la gestion de plusieurs fichiers YAML avec des valeurs en double et codées en dur.

Gestion de la configuration : IaC contre GitOps

En bref, Helm vous aide à garder les choses simples lorsque vous mesurez et gérez des sorties complexes. Mais il doit être lié aux référentiels Git essentiels définis par le cluster K8s et les spécifications de l'application. Flux facilite les choses.

Flux est une collection d'agents GitOps open source qui agissent comme un pont entre les référentiels Git et les clusters Kubernetes. Helm chart est un outil d'automatisation du tri des notifications qui maintient la cohérence du code en automatisant la sortie lorsque des modifications de code sont introduites. Flux synchronise ces modifications de Git vers les clusters Kubernetes.

Pour ce faire, il utilise des ressources personnalisées appelées HelmRelease, qui déclenchent l'opérateur helm et synchronisent les modifications apportées au code du graphique. Sans oublier que Flux est livré avec des fonctions étendues de détection de dérive ainsi que d'autres fonctionnalités intéressantes.

Pendant longtemps, la gestion de l'architecture concernait le matériel et l'infrastructure, mais depuis, nous avons parcouru un long chemin. Avec l'introduction de GitOps et des outils qui facilitent la tâche, les développeurs et les ingénieurs de plate-forme ont l'embarras du choix pour concevoir l'infrastructure qu'ils souhaitent - de manière annoncée.

Weave GitOps utilise Flux et Helm et permet des flux de travail de gestion de configuration efficaces à partir de référentiels jit de toutes les façons dont Kubernetes produit des clusters. Une caractéristique qui distingue Weave GitOps est sa capacité à fournir des applications fiables. Ajoute une politique de livraison d'utilitaires fiable sous forme de code à GitOps, la sécurité et la conformité, la régression des applications et la mise en œuvre de normes de codage de la source à la production. Il s'agit d'une combinaison de pipelines GitOps sécurisés et de tests de sécurité continus via des politiques codées qui permettent les meilleures pratiques de sécurité et des normes de haute sécurité tout au long du cycle de vie du développement logiciel. GitOps est également le moyen de gérer la configuration des systèmes natifs du cloud modernes et Weave GitOps rend cette approche non seulement simple mais également sécurisée.

comment-créer-un-compte-gmail-guide-étape-par-étape

web-crawling-vs-web-scraping-quelle-est-la-différence