Das Continuous Delivery-Bereitstellungsmodell
- 4 Minuten
Sie haben die vielen Nachteile der "epischen Bereitstellung" als Softwarebereitstellungsmodell kennengelernt, aber zu wissen, was nicht gut funktioniert, ist nur die Hälfte der Schlacht. In dieser Einheit lernen Sie die Alternative zu dieser monolithischen Methode kennen und erfahren, wie sie Ihr Ziel einer verbesserten Zuverlässigkeit weiter verbessern kann.
Es lohnt sich auch, zwei verwandte Begriffe zu unterscheiden, die manchmal austauschbar verwendet werden:
- Kontinuierliche Lieferung: Jede Änderung, die automatisierte Tests bestanden hat, ist bereit, in der Produktionsumgebung bereitgestellt zu werden, die tatsächliche Freigabe erfolgt jedoch durch eine manuelle Genehmigung.
- Kontinuierliche Bereitstellung: Jede Änderung, die automatisierte Tests bestanden, wird automatisch in die Produktion freigegeben, ohne manuelles Tor.
Beide hängen von den gleichen Grundlagen ab (häufige Integration, automatisierte Tests, wiederholbare Pipelines). Dieses Modul konzentriert sich auf diese gemeinsamen Grundlagen.
Was ist Continuous Delivery?
Kontinuierliche Bereitstellung ist eine Methode, bei der jede Änderung an Ihrer Codebasis auf eine schnellere, weniger stressige, risikofreiere und besser reproduzierbare Weise bereitgestellt wird. Anstatt jede Softwarebereitstellung oder Aktualisierung zu einem epischen Ereignis zu machen, verwandelt kontinuierliche Bereitstellung sie in eine schnelle, routinehafte, vorhersehbare Erfahrung, die nach Bedarf erfolgt.
Bereitstellungshäufigkeit: Bei einem fortlaufenden Bereitstellungsmodell treten häufig Bereitstellungen auf. Die Häufigkeit kann monatlich, wöchentlich, täglich oder sogar stündlich sein. Der Schlüssel besteht darin, dass Sie kleinere, fokussiertere Änderungen häufiger bereitstellen.
Ausgelöst durch Code commit: Anstatt weit im Voraus auf ein vorab geplantes Veröffentlichungsfenster zu warten, beginnt die Übermittlungspipeline, wenn Code zugesichert wird. Bei diesem Code kann es sich um Software, Infrastruktur oder sogar Softwarekonfigurationen handeln. Jede Änderung wird dann erstellt, getestet und bereit für die Veröffentlichung gehalten. Abhängig von den Steuerelementen Ihrer Organisation kann die Heraufstufung zur Produktion nach einer Genehmigung noch später erfolgen.
Automatisierte Tests: Sie können integrierte automatisierte Tests nicht nur verwenden, um den Code zu testen, sondern auch schnelles Feedback zu den Ergebnissen dieser Tests zu geben. Und genau dieses schnelle Feedback ermöglicht Ihnen, Tests mit Fehlern schnell zu durchlaufen und zu beheben.
Nachdem der Code getestet wurde, können Sie die Bereitstellung mit einem End-to-End-Test in einer Reihe von Stagingumgebungen testen, wie z. B. einer Test- oder QA-Umgebung. Das Testen Ihrer Bereitstellungen in diesen Umgebungen stellt einen wesentlichen Bestandteil des Bereitstellungsprozesses dar.
Historische Datensätze: Sie möchten nicht nur einen historischen Datensatz der Bereitstellungsaktivitäten, sie möchten auch jederzeit in der Lage sein, Ihre Produktionsumgebung abzugleichen. Sie möchten wissen, durch welche Bereitstellung die aktuelle Produktionsumgebung erstellt wurde. Auf diese Weise können Sie Konfigurationen, Testergebnisse und den Code selbst bis zu dem jeweiligen Pull Request zurückverfolgen, durch den die Bereitstellung ausgelöst wurde.
Ziele der Bereitstellung
Nachdem Sie nun wissen, wie die kontinuierliche Zustellung funktioniert, sollten Sie die Ziele für die kontinuierliche Bereitstellung und andere DevOps-Methoden berücksichtigen, die Ihnen bei der Bereitstellung von Softwarelösungen helfen.
Ziel 1: Verringern der Belastung, die entsteht, wenn Dienste bereitgestellt werden und ihre Zuverlässigkeit gleichzeitig erhöht werden soll
Die Verringerung des Stress von Software- und Infrastrukturbereitstellungen verbessert die tägliche Erfahrung der Ingenieure, die sie ausführen. Die resultierende Erhöhung der Zuverlässigkeit profitiert auch von Endbenutzern, die weniger Ausfälle und Unterbrechungen sehen.
Ziel 2: Verkürzen der Zeit, die zwischen dem Zeitpunkt des Feststellens einer erforderlichen Änderung und ihrer Bereitstellung in der Produktion liegt
Angenommen, Sie haben einen Codefehler identifiziert, der sich auf den Umsatz auswirkt, und Sie wissen genau, wie Sie ihn beheben können. Mit ausgereiften DevOps-Praktiken ist der Weg von Commit zu Produktion kurz und vorhersehbar. Die Änderung wird erstellt, automatisch in den relevanten Umgebungen getestet und innerhalb von Minuten für die Veröffentlichung vorbereitet. Sobald die erforderliche Genehmigung erteilt wurde, kann sie in die Produktion überführt werden, anstatt auf ein zukünftiges Freigabefenster zu warten.
Ziel 3: Reduzieren sie die Zeit zwischen der Idee und der Bereitstellung verwendbarer Software
Dieses Ziel ähnelt dem vorherigen, konzentriert sich jedoch auf Innovation und nicht auf Korrekturen. Wie lange dauert es, bis Sie auf eine neue Idee reagieren? Mit diesem Bereitstellungsmodell können Sie ein neues Konzept in ein Produktionssystem integrieren, sodass die Ergänzung das aktuelle System nicht unterbrechen oder behindern kann. Mit diesem Vertrauen können Sie neue Features schnell bereitstellen.
Auswirkungen der Bereitstellung
Die in dieser Einheit diskutierten Ziele sind nicht nur theoretische Bestrebungen, sie sind messbar. Seit 2014 hat das DevOps Research and Assessment (DORA)-Team jährliche State of DevOps-Forschung zu Softwarebereitstellungsleistung veröffentlicht. In den letzten Jahren wurde diese Arbeit als "Accelerate State of DevOps Report" veröffentlicht. Das aktuelle DORA-Modell verfolgt fünf Übermittlungsmetriken nach:
- Bereitstellungshäufigkeit
- Änderung der Vorlaufzeit
- Ausfallrate bei Änderungen
- Wiederherstellungszeit nach fehlgeschlagener Bereitstellung
- Bereitstellungsnacharbeitsrate
Jahr für Jahr zeigt die Forschung, dass leistungsstärkere Teams Änderungen häufiger umsetzen, vom Commit zur Produktion schneller wechseln, sich von fehlgeschlagenen Bereitstellungen schneller erholen und weniger Zeit damit verbringen, bereitstellungsbezogene Probleme zu beheben. Die neuesten Forschungs- und Metrikdefinitionen finden Sie in den Softwarebereitstellungsmetriken von DORA.
Diese Ergebnisse überprüfen die Idee, dass Bereitstellungspraktiken wichtig sind.