Was ist der Unterschied: kontinuierliche Integration, kontinuierliche Bereitstellung und kontinuierliche Bereitstellung.

DevOps hat viele neue Ziele, Praktiken und Begriffe. Viele von ihnen sind gemischt, missbraucht oder einfach fehlgeleitet und trinken aufgrund der sehr technischen Natur von DevOps keine spezifischen Unterschiede. Hier brechen wir die drei häufigsten Begriffe auf und versuchen, ein klares Beispiel zu geben, das jeden von ihnen unterscheidet.

Ständige Integration

Kontinuierliche Integration bezieht sich auf den Prozess der kontinuierlichen Integration von Änderungen in der Quelle der Wahrheitsquelle. In der Regel sind dies Entwickler, die den konvertierten Code auf eine gemeinsame Fernbedienung übertragen. Beispielsweise kann ein Team von 12 Herstellern in mehr als 18 GiT-Niederlassungen pro Tag mit mehr als 67 Aufträgen pro Tag arbeiten. Das sind viele Änderungen! Die Anzahl der während der Arbeitswoche vorgenommenen Änderungen kann leicht bis zu 300 Aufgaben finden. Wenn es darum geht, die neue Ausgabe zu vertreiben, müssen alle diese Änderungen in einem Zweig zusammengefasst werden. Der Punkt ist, dass das Team zusammenarbeiten muss, auch wenn sich das Team nicht gestresst fühlt. Ich verspreche, dass mehr als 300 Änderungen pro Woche Probleme verursachen werden. Das Problem besteht darin, zu spät zu kommen, mit dem Druck der Geschäftsinhaber umzugehen, Veröffentlichungstermine zu befürchten und nicht auf die Fähigkeit der Geschäftsinhaber zu vertrauen, Sie und Ihr Team rechtzeitig und rechtzeitig zu liefern. Niemand kann in einer solchen Situation gewinnen.

Mir wurde gesagt, dass die Bilder in den Artikeln die Aufmerksamkeit der Leser auf sich ziehen würden.

Steigen Sie in die kontinuierliche Integration ein. Holen Sie sich dasselbe Entwicklerteam in derselben Organisation, aber anstatt auf den Veröffentlichungstag zu warten, um Änderungen mehrmals am Tag zu kombinieren. Änderungen werden dauerhaft in den Ziel-GiT-Zweig integriert, um sicherzustellen, dass Integrationsprobleme (wenn sich die Datei von verschiedenen Personen auf unterschiedliche Weise ändert) unmittelbar nach den Änderungen auftreten. Nicht beim Entleeren. (Dies ist Teil des Begriffs "Links abbiegen" in DevOps.) Wenn sich das Veröffentlichungsdatum nähert, werden die Änderungen bereits lange vor dem Eintreten des Veröffentlichungsereignisses konsolidiert und korrigiert.

Kontinuierliche Lieferung

Die kontinuierliche Bereitstellung als Konzept ist ein logischer Übergang zur kontinuierlichen Integration mit zusätzlichen Schritten zur vollständigen Automatisierung. Es sollten automatisierte Qualitätskontrollschritte wie automatisiertes Testen, Überwachen, Ändern und Messen durchgeführt werden, um eine kontinuierliche Lieferung sicherzustellen. Warum nicht? Denn kontinuierliche Lieferung bedeutet, dass Änderungen an der Software immer zur Lieferung bereit sind. Auf Knopfdruck muss die Software in der Produktionsumgebung installiert werden. Man muss 100% hohes Vertrauen haben, alles funktioniert, nichts bricht.

Ich mag die unsinnige Infografik von https://chadhagen.com/Nonsensical-Infografics

Mein mentaler Zusammenbruch von kontinuierlicher Lieferung zu kontinuierlicher Lieferung besteht darin, es als UPS-Paket zu betrachten: Die Lieferung erfolgt vor Ihrer Tür, wenn sie bezahlt, verarbeitet, getestet, verwendet und einsatzbereit ist. Das Paket "Ununterbrochene Bereitstellung" wird deinstalliert, installiert und verwendet.

Festanstellung

Dies bringt uns zum letzten Teil unseres heutigen Konzepts: Permanente Bereitstellung. Ich denke, alle drei sind leicht zu identifizieren und zu verstehen. Kontinuierliche Bereitstellung basierend auf dem Namen ist der Prozess der dauerhaften Installation des Programms an einem Ort, den der Benutzer verwenden kann (sprich: echte Personen).

Sie sehen sehr sauber aus.

Kontinuierliche Bereitstellung ist der heilige Gral der Automatisierung, und es ist für viele Unternehmen schwierig, sich eine harte Zeit zu nehmen. Die Partitionierung scheint nach Erreichen der Integration sehr einfach zu sein. Warum ist die Lieferung so schwer zu akzeptieren? Gut, denn das bedeutet eine Verpflichtung gegenüber der Vertriebsabteilung. Es gibt keine Einmischung von Menschen. Keine Qualitätstüren. Nicht vom Change Control Committee genehmigt. Wenn die Änderung akzeptiert wird, wird die Änderung gebucht.

Ein Beispiel dafür

Als Entwickler arbeiten Sie an der 1234-Funktion. Als Teil des Workflows verstecken Sie die Funktion 1234 hinter dem Funktionsflag im Programm. Vor dem Mittagessen und am Ende des Bürotages nehmen Sie sofort Anpassungen vor und korrigieren Konflikte. Es ist eine ständige Integration.

Als Teil der Automatisierungsrichtlinie in Ihrem Unternehmen müssen Sie Komponententests, Integrationsprüfungen und End-of-Life-Szenarien erstellen, um in das Commitments-Repository aufgenommen zu werden. Wenn die gesamte Automatisierung abgeschlossen ist, kann die Verpflichtung auf das Quell-Repository angewendet werden. Dies ist eine kontinuierliche Lieferung.

Endlich verspreche ich es.

In Anbetracht des oben Gesagten ist sich die Organisation der Bedeutung einer raschen Rückmeldung durch die Endbenutzer bewusst und verlässt sich auf Ingenieurteams, um das Absperrventil geschlossen zu halten und den Explosionsradius zu minimieren (wodurch die Organisation vorwärts gehen kann). Wettbewerb). Unter der Annahme, dass alle automatisierten Qualitätskontroll- und Testmessungen bestanden wurden, wird die Codeänderung sofort in die Live-Produktionsumgebung übernommen. Dies ist eine Festanstellung.

Ressourcen

  • Git Stream
  • Überprüfen Sie die DevOp-Reife
  • https://stackify.com/continuous-delivery-vs-continuous-deployment-vs-continuous-integration/
  • https://www.atlassian.com/continuous-delivery/ci-vs-ci-vs-cd
  • https://puppet.com/blog/continuous-delivery-vs-continuous-deployment-what-s-diff
  • https://semaphoreci.com/blog/2017/07/27/what-is-the-difference-between-continuous-integration-continuous-deployment-and-continuous-delivery.html

Zusammenfassung

Dev (Chat / Git / Sec / No) Der Ort, an dem sich Ops ständig ändert. Begriffe und Abkürzungen werden schnell verwirrt. Ich hoffe, dies hilft, die am häufigsten verwendeten Sätze zu löschen.

Jedes Ereignis über den Empfang von DevOps.

Dies ist keine leichte Aufgabe, aber wenn Sie verstehen, dass "Every Business Software Business" (Watts S. Humphrey), verstehen wir Software-Engineering genauso wie jede andere Form von Engineering. Wir müssen dieselben Prinzipien anwenden, um dieselben Belohnungen zu gewinnen. Größeres Aussehen, stärkere Produkte, flexibleres Interieur, schnellere Geschwindigkeit und Respekt für eine Handwerkskarriere. Dies ermöglicht es Organisationen, ausgezeichnet zu sein. wer will nicht großartig sein.

Was denkst du über DevOps damit? Haben Sie Erfahrung mit DevOps / CI / CD-Implementierungsorganisationen? Was halten Sie von der Störung in Organisationen und Märkten?

Ursprünglich veröffentlicht von David J. Eddy.