Erkunden von DevOps-Methoden

Abgeschlossen

Das Integrieren von DevOps in den Anwendungslebenszyklus umfasst die Implementierung einer Reihe von DevOps-Methoden. Die Möglichkeit, die Vorteile von DevOps zu maximieren, hängt stark davon ab, inwieweit diese Implementierung erfolgreich ist. In unserem Beispielszenario müsste die Organisation erhebliche Änderungen an ihrem Betriebsmodell einführen, beginnend mit der Förderung der Zusammenarbeit und Kommunikation zwischen Entwicklungs- und Betriebsteams sowie investitionen in Die Versionssteuerung, Automatisierung, kontinuierliche Integration, kontinuierliche Tests, kontinuierliche Bereitstellung und kontinuierliche Überwachung. In dieser Lektion erfahren Sie mehr über diese Methoden.

Diagramm mit DevOps-Methoden.

Versionskontrolle

Die Versionssteuerung ist die Vorgehensweise zum Verwalten von Updates für Code durch Speichern in bestimmten Repositorys, Nachverfolgen der Überarbeitungen und Verwalten des Änderungsverlaufs. Dadurch werden Codeüberprüfungen und die Möglichkeit zur Wiederherstellung von Programmierfehlern erleichtert. Darüber hinaus ermöglichen Versionssteuerungssysteme (Version Control Systems, VCS) wie Git die Zusammenarbeit bei der Codeerstellung zwischen mehreren Entwicklern durch Features wie Repository-Klonen, Pullanforderungen, Codeänderungszusammenführungen, Konfliktauflösung und Unterstützung für Rollbacks. Die Verwendung der Versionssteuerung ist eine grundlegende DevOps-Praxis. Die Versionssteuerung ist auch eine Voraussetzung für Methoden wie kontinuierliche Integration und Infrastruktur als Code.

Kontinuierliche Integration (CI) und kontinuierliche Tests

Eine der Kernpraktiken von DevOps ist die Automatisierung. In diesem Fall gilt die Automatisierung für den Prozess der Zusammenführung von Codeänderungen, testen sie und erstellen resultierende Artefakte so früh wie möglich im Anwendungslebenszyklus. Die Absicht besteht darin, mögliche Probleme in der Entwicklungsphase zu erkennen, da dies den Aufwand und die Kosten für die Behebung minimiert. Automatisierte Tests überprüfen, ob Codeänderungen keine Fehler oder Regressionsprobleme eingeführt haben.

Kontinuierliche Lieferung (CD)

Die kontinuierliche Zustellung automatisiert den Prozess der Bereitstellung von Artefakten, die als Teil von CI erstellt wurden, und stellt sie ihren Verbrauchern zur Verfügung. CD automatisiert den Durchlauf dieser Artefakte durch verschiedene Umgebungen, z. B. Tests, Staging und Produktion. Kontinuierliche Integration und kontinuierliche Lieferung (CI/CD) bilden zusammen einen einheitlichen, optimierten, end-to-End-Softwareentwicklungs- und -übermittlungsprozess.

Kontinuierliche Überwachung

Kontinuierliche Überwachung bietet automatisierte Echtzeit-Einblicke in die Integrität und Leistung des gesamten Anwendungsstapels, einschließlich der zugrunde liegenden Infrastruktur. Dies erfolgt durch die Sammlung von Telemetriedaten, einschließlich Protokollen und Metriken, und anpassbarer Warnungen, die Benachrichtigungen über anomale Verhaltensweisen liefern, wodurch Sofortbehebungsaktionen erleichtert werden.

Kontinuierliche Sicherheit (DevSecOps)

Sicherheit ist ein wesentlicher Bestandteil jeder Phase des DevOps-basierten Anwendungslebenszyklus, was der Grund für die Prägung des Begriffs DevSecOps ist. DevSecOps ist eine Erweiterung von DevOps, wobei der Fokus auf der Integration von Sicherheitspraktiken in jede Phase liegt – von der Planung über Codierung, Tests und Bereitstellung bis hin zu Vorgängen.

Infrastruktur als Code (IaC)

Infrastruktur als Code ist ein wesentlicher Bestandteil moderner Softwareentwicklungs- und Betriebspraktiken. Sie umfasst die Verwendung von Programmiermethoden zum Bereitstellen und Verwalten von Infrastrukturdiensten. IaC definiert Infrastrukturkomponenten wie Server, Netzwerkgeräte und Datenbanken mithilfe von Code. Dieser Code befindet sich in der Regel in einem VCS, das Änderungen an Infrastrukturkonfigurationen verwaltet und nachverfolgt. Die Verwendung von Code erleichtert die automatisierte Bereitstellung und Konfiguration der Infrastruktur, verbessert Effizienz, Konsistenz und Skalierbarkeit. Darüber hinaus kann IaC (und häufig) mit CI/CD integriert werden, was zu einer umfassenden Softwarebereitstellungsstrategie führt, indem Infrastrukturbereitstellungen mit Anwendungsbuild, Test und Bereitstellung in einer kontinuierlichen, vollständig automatisierten Sequenz kombiniert werden.