Die Evolution des Konfigurationsmanagements: IaC vs. GitOps
Veröffentlicht: 2022-05-23Inhaltsverzeichnis
Die Evolution des Konfigurationsmanagements
Unsachgemäße Strukturen sind der Hauptgrund für Sicherheitsvorfälle in Kubernetes-orchestrierten oder anderen Containerumgebungen. Ohne die richtige Konfiguration können Anwendungen auf Probleme stoßen, die von Inkompatibilitäten und Konflikten bis hin zu Leistungsstörungen, Sicherheitslücken und Betriebsausfällen reichen. Das Konfigurationsmanagement ist ein wichtiger Bestandteil der Aufrechterhaltung des gewünschten, stabilen Zustands von Computern im Lebenszyklus der Softwareentwicklung.
Vermächtnis der Konfigurationsverwaltung
Damals konzentrierte sich das IT-Team bei der Verwaltung von Änderungen an IT-Ressourcen hauptsächlich auf die Serverebene, um zu sehen, ob Änderungen an der Hardware Probleme in der verbleibenden Schicht verursachen würden. Jeder Server wurde mit großer Sorgfalt und Freizeit manuell konfiguriert. Virtuelle Maschinen brachten mehr Flexibilität und Effizienz in diesen Prozess.
Infrastructure Code (IaC) ist ein großer Schritt für das Konfigurationsmanagement, bei dem die gesamte Hardware als Code definiert wird. IaC-Tools wie Cloud-basierte Plattformen, Chef, Puppet und Ansible spielten eine Schlüsselrolle bei der Vereinfachung und Skalierung des Infrastrukturmanagements. Sie trugen dazu bei, die Bereitstellung der Infrastruktur zu beschleunigen und Kosten zu senken, indem sie die Ressourcennutzung verbesserten.
Im Laufe der Jahre haben Cloud-basierte Plattformen und insbesondere Container die Bereitstellung von Infrastruktur revolutioniert. Mit der Einführung einer großen Cloud und der Umwandlung von Git in das aktuelle Versionskontrollsystem hat sich GitOps als die neueste Wendung in der Entwicklung des Architekturmanagements herausgestellt. GitOps geht weit über IaC hinaus, wenn es darum geht, alles zu codieren. „Alles“ umfasst hier Infrastruktur, Netzwerke, Daten und Anwendungen.
Kubernetes und der deklarative Ansatz für die Infrastruktur
Wie bei der Programmierung gibt es zwei Ansätze zur Bereitstellung von Infrastruktur – Benachrichtigung und obligatorisch.
Ein überzeugender Ansatz erfordert, dass Sie die geeigneten Schritte angeben, die unternommen werden müssen, um die Infrastruktur bereitzustellen oder zu ändern. Es bietet die Erfahrung, die Infrastruktur zu nutzen. Es bietet die Erfahrung, die Infrastruktur zu nutzen. Andererseits ist der Benachrichtigungsansatz besser geeignet für den modernen Cloud-nativen Ansatz, der von Kubernetes definiert wird. Sie müssen nur den gewünschten Zustand des Systems definieren und seine Funktionalität einer Site wie Kubernetes überlassen. Die Kubernetes-Infrastruktur erleichtert sowohl die Automatisierung als auch die Benachrichtigungskonfiguration.
Der Wechsel von DevOps zu GitOps
GitOps wurde 2017 konzipiert und ist ein modernes funktionales Framework für die Verwaltung von Kubernetes-Clustern und die Bereitstellung von Git-fokussierten Anwendungen. Es holt die besten Teile von DevOps wie CI / CD-Tool, eine Zusammenarbeit zwischen Dev und Ops, Automatisierung von Prozessen und verwendet sie in der Software-Delivery-Pipeline mit Git als Quelle der Authentizität.
DevOps sicherte die Zusammenarbeit zwischen Entwicklungs- und Betriebsteams und bewirkte einen kulturellen Wandel im Bereich der Informationstechnologie. Weniger als erwartet übernahmen Unternehmen jedoch die Merkmale der kontinuierlichen Integration und kontinuierlichen Verteilung, bewegten sich jedoch nicht in Richtung kontinuierlichen Einsatz.
Hier bringt GitOps die Dinge auf die nächste Stufe. Mit dem GitOps-Ansatz definieren Teams nicht nur, sondern verwalten auch die Sortierung und Änderung ihrer Infrastruktur aus einem Git-Repository heraus. Änderungen an der Infrastruktur vorzunehmen ist jetzt so einfach wie das Erstellen einer Drag-Anfrage – Sie können Tippfehler abfangen, regelmäßige Überprüfungen vornehmen oder das Versprechen bei Bedarf ändern. Mit Git können Entwickler jetzt Code generieren, und Betriebssystemingenieure können diesen Code automatisch in der Produktion verwenden.
Verwenden von Flux & Helm für GitOps-gesteuertes Konfigurationsmanagement
Mit Kubernetes können Sie eine Vielzahl von Tools integrieren, um die Planung, Sortierung und Überwachung von Containern zu automatisieren. Ein solches Tool ist Helm, das im GitOps-Ökosystem sehr beliebt geworden ist.
Helm ist ein leistungsstarker Paketmanager für Kubernetes, der die Definition, Installation und Bereitstellung der sich wiederholendsten Anwendungen und Dienste erleichtert, die in einer Vielzahl von Situationen verwendet werden. Helm-Diagramme fügen der kontinuierlichen Verteilungsumgebung einen großen Mehrwert hinzu, indem sie ein organisiertes Verpackungsdesign für die Verwaltung mehrerer YAML-Dateien mit doppelten und fest codierten Werten bereitstellen.
Konfigurationsmanagement: IaC vs. GitOps
Kurz gesagt, Helm hilft Ihnen, die Dinge einfach zu halten, wenn Sie komplexe Ausgaben messen und verwalten. Es muss jedoch mit den wesentlichen Git-Repositories verknüpft werden, die durch die K8s-Cluster- und Anwendungsspezifikationen definiert sind. Flux macht es einfach.
Flux ist eine Sammlung von Open-Source-GitOps-Agenten, die als Brücke zwischen Git-Repositories und Kubernetes-Clustern fungieren. Helm-Diagramm ist ein Automatisierungstool zum Sortieren von Benachrichtigungen, das die Codekonsistenz aufrechterhält, indem es die Ausgabe automatisiert, wenn Codeänderungen eingeführt werden. Flux synchronisiert diese Änderungen von Git- zu Kubernetes-Clustern.
Dies geschieht mit benutzerdefinierten Ressourcen namens HelmRelease, die den Helm-Operator auslösen und Änderungen am Diagrammcode synchronisieren. Ganz zu schweigen davon, dass Flux mit umfangreichen Drifterkennungsfunktionen sowie anderen interessanten Features ausgestattet ist.
Lange Zeit ging es beim Architekturmanagement um Hardware und Infrastruktur, aber seitdem haben wir einen langen Weg zurückgelegt. Mit der Einführung von GitOps und den Tools, die es einfacher machen, haben Entwickler und Plattformingenieure viele Möglichkeiten, die Infrastruktur zu entwerfen, die sie wollen – in einer Art Ankündigung.
Weave GitOps nutzt Flux und Helm und ermöglicht effektive Konfigurationsmanagement-Workflows aus Jit-Repositories auf alle Arten, wie Kubernetes Cluster produziert. Ein Merkmal, das Weave GitOps auszeichnet, ist seine Fähigkeit, zuverlässige Anwendungen bereitzustellen. Fügt GitOps eine zuverlässige Bereitstellungsrichtlinie für Dienstprogramme als Code hinzu, Sicherheit und Compliance, Anwendungsregression und Implementierung von Codierungsstandards von der Quelle bis zur Produktion. Es ist eine Kombination aus sicheren GitOps-Pipelines und kontinuierlichen Sicherheitstests durch codierte Richtlinien, die Best Practices für Sicherheit und hohe Sicherheitsstandards während des gesamten Lebenszyklus der Softwareentwicklung ermöglichen. GitOps ist auch der Weg, um Konfigurationsmanagement für moderne Cloud-native Systeme zu betreiben, und Weave GitOps macht diesen Ansatz nicht nur einfach, sondern auch sicher.
wie-man-ein-gmail-konto-erstellt-schritt-für-schritt-anleitung
web-crawling-vs-web-scraping-was-ist-der-unterschied