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:
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:
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.
Ich bin mir nicht sicher, ob es noch andere gibt, aber dies sind die Kriterien, die ich verwende:
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).quelle