Welche Release-Management-Aspekte erklären den Unterschied zwischen Waterfall und Agile?


12

Wenn man jemandem DevOps erklärt, kommt es vor, dass eine Frage auftaucht:

Inwiefern unterscheidet sich das Release Management mit der Agile-Methode von Waterfall?

Nach welchen Kriterien können Sie diese Unterschiede einem solchen Publikum erklären?

Antworten:


11

IMO DevOps ist Kultur, ähnlich wie Agile (ohne eine agile Methodik zu wählen). Deshalb "macht" man DevOps nicht.

Sie "tun" eine Freigabemethode namens Continuous Delivery als Teil einer DevOps-Kultur. (Vollständige Offenlegung, ich glaube nicht, dass ich CD jemals als Veröffentlichungsmethode bezeichnet habe, aber in meinem Jetlag-Status denke ich, dass es funktioniert.)

Wenn Sie das kaufen, dann ist hier die Definition von Continuous Delivery von einem der Leute, die das Buch mit dem gleichen Titel geschrieben haben, Jez Humble .

Continuous Delivery ist die Möglichkeit, Änderungen aller Art - einschließlich neuer Funktionen, Konfigurationsänderungen, Fehlerkorrekturen und Experimente - sicher und schnell auf nachhaltige Weise in die Produktion oder in die Hände der Benutzer zu übertragen.

Unser Ziel ist es, Bereitstellungen - egal ob es sich um verteilte Großsysteme, komplexe Produktionsumgebungen, eingebettete Systeme oder Apps handelt - planbare Routineaufgaben zu ermöglichen, die bei Bedarf ausgeführt werden können.

All dies erreichen wir, indem wir sicherstellen, dass unser Code immer in einem bereitstellbaren Zustand ist, selbst gegenüber Teams von Tausenden von Entwicklern, die täglich Änderungen vornehmen. Auf diese Weise eliminieren wir die Integrations-, Test- und Härtungsphasen, die traditionell auf "dev complete" folgten, sowie das Einfrieren von Code vollständig.

Dann können Sie mit einer agilen Methodik arbeiten und dem Unternehmen Software demonstrieren, um sicherzustellen, dass Sie ordnungsgemäße automatisierte Tests durchführen und auf die Änderungen und all die Dinge, die sie besser machen als Wasserfälle, gut reagieren. Allzu oft heißt das nicht, dass Sie es tatsächlich für die Produktion bereitstellen könnten.

Am Ende haben Sie ungefähr Folgendes: agil ohne cd

Die Software wird (wahrscheinlich) besser sein, wenn Sie fertig sind, als wenn Sie keinen iterativen Ansatz hatten, aber Sie wissen es nicht wirklich, weil echte Benutzer es noch nie gesehen haben.

Was Sie wirklich wollen, sieht ungefähr so ​​aus:

Bildbeschreibung hier eingeben

Bei jeder Iteration wird etwas für die Produktion bereitgestellt. Die Software wird also bereitgestellt . Wenn Sie Downloads erstellen möchten, öffnen Sie den Webserver, oder geben Sie Software an die Benutzer weiter, für die sie freigegeben wurde .

Was zum Teufel!? Ich habe nach DevOps gefragt! Niemand hat nach Continuous Delivery gefragt !!

Was hat DevOps damit zu tun?

Es ist sehr, sehr schwer (fast unmöglich), Ihre Software wirklich in einem Zustand zu haben, in dem Sie sie jederzeit bereitstellen können, es sei denn, das Team arbeitet in einer DevOps-Kultur. Eine Kultur, in der Systemadministratoren, Datenbankadministratoren, SREs, Sicherheitsmitarbeiter, Entwickler, Qualitätssicherungsmitarbeiter usw. Teil eines einzigen Teams und nicht Teil einer Organisation mit Übergaben sind.

Hinweis :

Über einen Teil eines Kommentars zu dieser Antwort, der so aussah:

Über Ihre "... Software in einem Zustand, in dem Sie sie jederzeit bereitstellen können ...": Das erinnert mich an "Autopilot" -Software (in einem Flugzeug) ... Meine Lieblingsfrage dazu: " Stellen Sie sich ein Update vor auf eine solche Software angewendet wird ... Wie würden Sie sich fühlen über so Inflight tun ... Während Sie in an Bord sind? “.

Ich liebe diese Frage (in Fettdruck, im obigen Zitat)! Die Idee von "Ist es wirklich fertig?" ist etwas, worüber ich die ganze Zeit schimpfe - Blog . IMO ist es wichtig, dass Sie auf Sicherheit, Leistung und andere zu oft "sekundäre" Tests vertrauen, um CD zu üben. Die Funktionen sind erledigt, wenn sie erledigt sind, aber Hacker sind immer da.


Vielen Dank für Ihre interessanten Standpunkte / Antworten (und glänzende Bilder ...). Ich muss zugeben, dass ich noch nie von dem Begriff Release- Methodik gehört habe , obwohl mir das Release- Management (seit über zwei Jahrzehnten ...) ziemlich vertraut ist. Über Ihre "... Software in einem Zustand, in dem Sie sie einsetzen können, wann immer Sie wollen ..." (in Kombination mit der "Jetlagged" -Software): Das erinnert mich an die "Autopilot" -Software (in einem Flugzeug) ... Mein Favorit Frage dazu: " Stellen Sie sich vor, ein Update wird auf eine solche Software angewendet ... Wie würden Sie sich dabei fühlen, wenn Sie sich an Bord befinden? "
Pierre.Vriens

1
Ich liebe diese Frage! Die Idee von "Ist es wirklich fertig?" ist etwas, worüber ich die ganze Zeit schimpfe - Blog . IMO ist es wichtig, dass Sie auf Sicherheit, Leistung und andere zu oft "sekundäre" Tests vertrauen, um CD zu üben. Die Funktionen sind erledigt, wenn sie erledigt sind, aber Hacker sind immer da.
Ken Mugrage

1
Ich bezog mich auf: "Stellen Sie sich vor, ein Update wird auf eine solche Software angewendet ... Wie würden Sie sich dabei fühlen, wenn Sie sich an Bord befinden?"
Ken Mugrage

Und bitte redigieren Sie weg, ich bin ein n00b hier :)
Ken Mugrage

Bitte überprüfen Sie meinen Bearbeitungsvorschlag, um auch Ihren interessanten Kommentar zu integrieren. Wenn es Ihnen nicht gefällt, führen Sie einfach einen Rollback auf die vorherige Version durch (der Link befindet sich in "Überarbeitungen") und / oder verbessern / erweitern Sie es nach Ihren Wünschen. Ratet mal, es sieht so aus, als ob "Inflight" einige meiner "Berechtigungen" geändert wurden. Es sieht so aus, als ob ich bereits zu viele Mitarbeiter hier habe, um noch "Genehmigungen" für solche vorgeschlagenen Änderungen zu benötigen. Software (keine empfohlene Aktualisierung einer Flugroute ohne vorherige Genehmigung der Flugsicherung ...). Oeps 2 (Korrektur): Es wurde mit Lichtgeschwindigkeit genehmigt ...
Pierre.Vriens

2

Ich bin mir nicht sicher, ob es noch andere gibt, aber dies sind die Kriterien, die ich verwende:

+-------------------+-----------+-----------+
! Criteria          ! Agile     ! Waterfall !
+-------------------+-----------+-----------+
! Release Events    ! Frequent  ! Rare      !
! Risk              ! Less      ! High      !
! Required Effort   ! Smoother  ! Peaks     !
! Volume of changes ! Small     ! Huge      !
+-------------------+-----------+-----------+

Und wenn Sie als Benutzer einer bestimmten Software den Unterschied wirklich selbst erleben möchten, sollten Sie eine Software (z. B. eine Linux-Distribution) verwenden, bei der Sie zwischen den folgenden Versionen wählen können:

  • " Rolling" eine Veröffentlichung (==> Agile).

  • " Long Term Support" eine Veröffentlichung (==> Wasserfall).


1
Das Linux-Beispiel ist vielleicht nicht sehr inspirierend :) Persönlich mag ich die rollenden Releases nicht, weil: 1. die Qualitätsstufe und 2. die eher ablenkenden Änderungen (ich konzentriere mich lieber auf meine Arbeit, nicht auf das Linux, das ich für meine verwende) Arbeit). Daher verwende ich die langfristigen (meist weit über die EOL hinausgehenden) und konzentriere mich nur alle 2-3 Jahre auf ein größeres Update. Ist dies nicht nur eine zunehmende Abneigung gegen Veränderungen aufgrund des Alterns? :)
Dan Cornilescu

@DanCornilescu Ich habe dieses Linux-Beispiel verwendet, weil ich denke, dass es ein extremes Beispiel für einen Release-mgnt-Aspekt (dh die Häufigkeit von Releases) für beide Methoden ist. Obwohl "persönlich", stimme ich aus den gleichen Gründen, die Sie erwähnt haben, Ihrer Abneigung gegen Rolling Releases voll und ganz zu.
Pierre.Vriens
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.