Erkunden des Lebenszyklus von DevOps-Anwendungen
Während DevOps-Praktiken einen großen Umfang haben, ist ihr primäres Ziel die Optimierung der Anwendungslebenszyklusverwaltung. Im fiktiven Unternehmensbeispiel erfordert die Migration von einer vorhandenen App zu einer neuen App mit aktualisierten Features eine erneute Überprüfung jeder Phase des Anwendungslebenszyklus. Erfahren Sie daher, wie DevOps-Prinzipien die Implementierung jeder Phase von der Planung über Entwicklung und Bereitstellung bis hin zu Vorgängen erheblich verändern können. Gehen Sie in dieser Einheit schrittweise eine allgemeine Übersicht über diese Implementierungen durch.
Phasen des Anwendungslebenszyklus
Zu den Phasen des Anwendungslebenszyklus gehören Planung, Entwicklung, Bereitstellung und Vorgänge.
Planung
Die Planungsphase umfasst die Überprüfung der Kundenbedürfnisse, um Features und Funktionen der zu entwickelnden Software zu konturieren und zu definieren. Diese Software kann von einzelnen Microservices bis hin zu Portfolios reichen, die aus mehreren Produkten bestehen. Das Ergebnis definiert Softwareanforderungen, Umfang und Meilensteine für die Entwicklung und Bereitstellung der Anwendung. Aus Der Sicht von DevOps sind die wichtigsten Aspekte in dieser Phase Agilität, kundenorientierter Fokus, Ausrichtung und Sichtbarkeit.
Entwicklung
In der Entwicklungsphase werden alle Aspekte der Entwicklung von Anwendungscode behandelt. Zu diesen Aspekten gehören Programmier-, Test- und Codeüberprüfungen. Um DevOps-Praktiken einzuhalten, sollte sich der Code in einem Quellcodeverwaltungssystem befinden, das die Zusammenarbeit erleichtert und die Versionsverwaltung unterstützt. Eine funktionierende Version des Codes wird verwendet, um Artefakte zu erstellen, die für die nachfolgende Übermittlung geeignet sind. Solche Artefakte können aus ausführbaren Binärdateien, Softwarebibliotheken, Containerimages, Installationspaketen, Konfigurationsdateien, Bereitstellungsskripts oder sogar Dokumentationen bestehen.
Änderungen in dieser Phase sollten in kleinen Schritten durch automatisierte Tests und Builds angewendet werden, die als kontinuierliche Integration (CI) bezeichnet werden, wodurch der Entwicklungsprozess beschleunigt und die Flexibilität verbessert wird.
Lieferung
Die Bereitstellung ist der Prozess, bei dem die in der Entwicklungsphase erstellten Artefakte auf konsistente und zuverlässige Weise in Produktionsumgebungen verfügbar gemacht werden. Während das ultimative Ziel in dieser Phase die vollständige Automatisierung durch kontinuierliche Bereitstellung (CD) ist, können einige Organisationen, insbesondere in frühen Phasen ihrer DevOps-Einführung, manuelle Genehmigungen oder Überprüfungen implementieren. Da das Vertrauen in DevOps-Praktiken wächst, ist es in der Regel möglich, diese Prüfungen vollständig zu automatisieren. Beispielsweise kann eine erfolgreiche, unbeaufsichtigte Überprüfung einer Bereitstellung in einer Stagingumgebung als Grundlage für den Übergang zur Produktionsumgebung dienen. Die Automatisierung trägt dazu bei, Lieferprozesse skalierbar, wiederholbar und stabiler zu machen (indem die Möglichkeit des menschlichen Fehlers minimiert wird). Der Schlüssel zu einer erfolgreichen Implementierung eines solchen Ansatzes ist das Folgen von DevOps-Praktiken, einschließlich ordnungsgemäßer Tests, der Verwendung von feststellbaren Messungen und kontinuierlichen Lernen.
Die Übermittlung sollte auch die Bereitstellung und Konfiguration der Infrastruktur der Zielumgebung über IaC berücksichtigen. Die Behandlung von Infrastruktur als Code bietet eine Reihe von Vorteilen, einschließlich Konsistenz, Reproduzierbarkeit und Flexibilität.
Transaktionen
Die Betriebsphase umfasst das Warten, Überwachen und Problembehandlung von Anwendungen in Produktionsumgebungen. Aus Der Sicht von DevOps sind die wichtigsten Ziele in dieser Phase Stabilität und Zuverlässigkeit, schnelle Reaktion auf Vorfälle, Sicherheit und Compliance und Kundenzufriedenheit. In gewissem Maße hängt die Erreichung dieser Ziele davon ab, dass messbare Ergebnisse ordnungsgemäß umgesetzt werden. DevOps-Prozesse basieren auch auf sogenannten Feedbackschleifen , die Daten liefern, die den aktuellen Zustand der bereitgestellten Anwendung widerspiegeln, z. B. Leistungsmetriken, Reaktionsfähigkeit und allgemeine Benutzererfahrung, einschließlich verbesserter oder beeinträchtigter Funktionalität.
In dieser Phase ist es wichtig, die maximale Zusammenarbeit zwischen Entwicklungs-, Betriebs- und Sicherheitsteams sicherzustellen. Diese Phase dient auch als wesentliche Quelle des kontinuierlichen Lernens.
Was ist die letzte Phase des Anwendungslebenszyklus?
Wie der Name angibt und das Bild am Anfang dieser Einheit veranschaulicht, ist der Anwendungslebenszyklus ein kreisförmiger Prozess. Es gibt einen deterministischen Beginn und ein Ende der Lebensdauer einer Anwendung, die durch ihre Inbetriebnahme- und Außerbetriebsetzungsereignisse bestimmt wird. Nach der anfänglichen Bereitstellung (oder häufig, sogar früher) informieren Benutzer und Überwachungsdaten jedoch über nachfolgende Updates und die Weiterentwicklung der Anwendung.
Anmerkung
Denken Sie daran, dass Sicherheit nach den DevSecOps-Prinzipien zwar nur ein paar Mal in dieser Einheit erwähnt wurde, ihre Rolle jedoch den gesamten Anwendungslebenszyklus durchdringt. Tatsächlich sollten sicherheitsbezogene Überlegungen während jeder Phase berücksichtigt werden, beginnend am Anfang der anfänglichen Planung.