What is DevOps?

Abgeschlossen

In DevOps werden Personen, Prozesse und Produkte mit dem Ziel vereint, den Kunden einen kontinuierlichen Mehrwert zu bieten. Was jedoch genau bedeutet das? Treten Sie dem Team bei, und lassen Sie sich von Mara erklären, was DevOps ist und was nicht. Außerdem erfahren Sie, was Eliteleistungsträgern zum Erfolg verhilft.

Mara hat ihre Teamkollegen für ein kurzes Meeting zusammengerufen. Alle sind gekommen, aber niemand will hier sein. Sie hat eine Schachtel Donuts auf den Tisch gestellt.

Mara: Hallo, danke, dass ihr gekommen seid. Ich möchte mit euch über unsere Wertstromanalyse reden und darüber, wie wir unsere Prozesse optimieren können.

Maras Wertstromanalyse ist noch vom vorherigen Meeting auf dem Whiteboard zu sehen.

Screenshot of a whiteboard showing the value stream map.

Mara: Anhand unserer Wertstromanalyse sehen wir, wo Effizienz bei der Lieferung von Mehrwert an unsere Kunden verloren geht. Jeder Mensch kann sich verbessern, auch wir. Wir sollten entscheiden, welche Bereiche wir zuerst in Angriff nehmen.

Andy: Wir sehen hier zwar, wo unsere Probleme liegen, aber nicht, was wir dagegen tun können.

Mara: Stimmt. Es ist eine Übung, die uns die richtige Richtung weist. Und bei unseren Problemen könnte uns DevOps helfen. Bei meinem letzten Unternehmen sind unsere Bereitstellungsraten in die Höhe geschossen, Vorlaufzeiten waren viel kürzer, und es kam zu deutlich weniger Zwischenfällen im Betrieb. Wir haben eine Weile gebraucht, um uns daran zu gewöhnen, aber das war es wert. DevOps ist keine kurzfristige Lösung.

Tim: Ich kenne jemanden, der erst kürzlich eine Stelle als DevOps-Techniker gefunden hat. Ich denke, das ist etwas für Entwickler. Das wäre was für Andy.

Mara: DevOps ist keine Berufsbezeichnung.

Amita: Gibt es dafür ein Softwareprogramm oder eine Vorlage? Vielleicht gibt es ja ein DevOps-Spreadsheet.

Mara: DevOps ist keine Softwarekomponente.

Andy: Dann ist es eher eine Methodik.

Mara: Eigentlich nicht.

Andy, Amita, Tim: Was ist es dann?

Mara: Ich würde es folgendermaßen definieren:

DevOps ist die Verbindung aus Menschen, Prozessen und Produkten, die es ermöglicht, unseren Endbenutzern fortlaufend einen Mehrwert zu bieten.

Abel Wang, Cloud Advocate bei Microsoft, erläutert in mehreren Videos, was wir wissen sollten, und liefert schnelle Antworten auf unsere Fragen. Sehen wir uns Abels Definition von DevOps an:

Fragen an Abel

Unser Ziel ist es, Spiele für unsere Kunden zu entwickeln, die sie lieben werden. Hierzu arbeiten wir mit gemeinsamen Methoden und Tools.

Amita: Was bedeutet das? Welche gemeinsamen Methoden? Welche gemeinsamen Tools?

Mara: Mit Methoden meine ich:

  • Agile Planung: Wir erstellen gemeinsam ein Arbeitsbacklog, das vom gesamten Team und Management eingesehen werden kann. Wir weisen den Elementen einen Rang zu, an dem wir erkennen, woran zuerst gearbeitet werden muss. Zum Backlog können User Storys, Fehler und andere Informationen gehören, die uns helfen.
  • Continuous Integration (CI): Wir automatisieren das Erstellen und Testen unseres Codes. Das führen wir jedes Mal aus, wenn ein Teammitglied Änderungen an der Versionskontrolle committet.
  • Continuous Delivery (CD): Mit CD führen wir Tests, Konfiguration und Bereitstellung von Builds in die Qualitätssicherung oder Produktionsumgebung durch.
  • Monitoring: Wir verwenden Telemetrie, um Informationen über die Leistung und Nutzungsmuster einer Anwendung zu erhalten. Wir können diese Informationen zur Verbesserung von Iterationen verwenden.

Amita: Mit automatisierten Tests kenne ich mich nicht aus. Meine Tests führe ich manuell durch, sobald Andy mir den Code zukommen lässt. Ich habe keine Zeit dafür, meine gesamte Vorgehensweise zu ändern.

Tim: Auf keinen Fall lasse ich jemanden von euch Bereitstellungen in die Produktionsumgebung durchführen.

Andy: Das wird die Verwaltung abschrecken. Sie denken nie weiter als bis zum nächsten Release, und das hätten sie immer am liebsten schon gestern.

Mara: Ich verstehe eure Bedenken bezüglich der Verwaltung. Ich habe dieses Handout erstellt, das veranschaulichen soll, was ein hocheffizientes Team ausmacht.

Was macht ein hocheffizientes Team aus?

Hier ist Maras Handout. Die Informationen basieren auf DevOps-Forschungsberichten und Umfragen, die mit technischen Experten aus aller Welt durchgeführt wurden.

Mit DevOps können Unternehmen mit Möglichkeiten zur Steigerung der Kundenakzeptanz und -zufriedenheit experimentieren. Dies kann zu einer besseren Unternehmensleistung und oft auch zu einer höheren Rentabilität und einem größeren Marktanteil führen.

Es kommen Metriken zum Einsatz, anhand derer vier Kategorien für einen Vergleich zwischen Elite-Performern und Low Performern erstellt werden.

Für Elite-Performer gilt:

  • häufiger Bereitstellungen durchführen

    Einige Teams führen täglich dutzende Bereitstellungen durch.

    Methoden wie die Überwachung, fortlaufende Tests, die Verwaltung von Datenbankänderungen und die frühe Integration von Sicherheit in den Softwareentwicklungsprozess helfen Elite-Performern dabei, häufiger und mit größerer Vorhersehbarkeit und Sicherheit Bereitstellungen durchzuführen.

  • die Vorlaufzeit vom Commit zur Bereitstellung reduzieren

    Die Vorlaufzeit beschreibt die Zeit, in der ein Feature an den Kunden gebracht wird. Durch Arbeit in kleineren Batches, Automatisierung manueller Prozesse und häufigeren Bereitstellungen, können Eliteunternehmen innerhalb von Stunden oder Tagen schaffen, was sonst Wochen oder sogar Monate gedauert hat.

  • die Fehlerrate bei Änderungen reduzieren

    Ein neues Features, das in der Produktion oder bei anderen Features zu Fehlern führt, kann zu verpassten Verkaufschancen führen. Effiziente Teams reduzieren mit der Zeit ihre Fehlerrate bei Änderungen.

  • erholen sich schneller von Vorfällen

    Eliteunternehmen können sich schneller von Vorfällen erholen. Durch das Ableiten von Maßnahmen anhand der Metriken führen Elite-Performer schnellere Wiederherstellungen und auch häufigere Bereitstellungen durch.

Es ist auch wichtig, wie Sie die Cloudinfrastruktur implementieren. Die Cloud verbessert die Leistung bei der Softwarebereitstellung, und Teams, die wesentliche Cloudmerkmale nutzen, werden häufiger zu Elite-Performern.

Mithilfe von Outsourcing kann Geld gespart und Arbeitskräfte können flexibel zur Verfügung gestellt werden. Dabei muss es jedoch in den richtigen Bereichen eingesetzt werden. Im Gegensatz zu High-Performer-Teams ist es wahrscheinlicher, dass Low-Performer-Teams ganze Funktionen (Tests, Betrieb usw.) auslagern.

Fazit

DevOps ist einer der Hauptgründe dafür, dass viele Spitzenunternehmen in der Lage sind, ihren Kunden schneller als ihre Mitbewerber einen Mehrwert in Form von neuen Features und Verbesserungen zu bieten. In diesem kurzen Video erläutert Abel, warum es sich lohnt, sich näher über DevOps zu informieren:

Fragen an Abel

Was DevOps nicht ist

Bei der Suche nach einer Definition von DevOps gilt es auch zu berücksichtigen, was es eben nicht ist. Was DevOps nicht ist:

  • Eine Methode.
  • Eine bestimmte Softwarekomponente.
  • Eine schnelle Lösung für die Herausforderungen eines Unternehmens.
  • Nur der Name eines Teams bzw. eine Berufsbezeichnung (obwohl diese Bezeichnungen in der Branche durchaus üblich sind).