Das DevOps-Handbuch

Book description

Mehr denn je ist das effektive Management der IT entscheidend für die Wettbewerbsfähigkeit von Organisationen. In technologiegesteuerten Unternehmen ringen Manager damit, eine Balance zwischen Agilität, Zuverlässigkeit und Sicherheit herzustellen. Auf der anderen Seite schaffen es High-Performer wie Google, Amazon, Facebook oder Netflix, routinemäßig und zuverlässig hundert- oder gar tausendmal pro Tag Code auszuliefern. Diese Unternehmen verbindet eins: Sie arbeiten nach DevOps-Prinzipien.Die Autoren des Romans »Projekt Phoenix« zeigen in diesem Handbuch, wie die DevOps-Philosophie praktisch implementiert wird und Unternehmen dadurch umgestaltet werden können. Sie beschreiben konkrete Tools und Techniken, mit denen Software schneller und sicherer produziert werden kann. Zudem stellen sie Maßnahmen zu einer optimierten Zusammenarbeit aller Abteilungen vor, die zu einer Verbesserung der Arbeitskultur und zur Steigerung der Profitabilität eines Unternehmens führen.

Table of contents

  1. Cover
  2. Titel
  3. Impressum
  4. Inhalt
  5. Einleitung
  6. Vorwort
  7. Stellen Sie sich eine Welt vor, in der Dev und Ops zu DevOps werden: Eine Einführung in das DevOps-Handbuch
  8. Teil I: Die Drei Wege
    1. 1 Agile, Continuous Delivery und die Drei Wege
      1. Die Wertkette in der Herstellung
      2. Die Technologie-Wertkette
      3. Die Drei Wege: Die Prinzipien als Basis von DevOps
      4. Zusammenfassung
    2. 2 Der Erste Weg: Die Prinzipien des Flow
      1. Wir machen unsere Arbeit sichtbar
      2. Die Work in Process (WIP) beschränken
      3. Die Batchgrößen reduzieren
      4. Die Anzahl der Übergaben reduzieren
      5. Unsere Flaschenhälse kontinuierlich identifizieren und reduzieren
      6. Schwierigkeiten und Verschwendung in der Wertkette eliminieren
      7. Zusammenfassung
    3. 3 Der Zweite Weg: Die Prinzipien des Feedbacks
      1. Mit komplexen Systemen sicher arbeiten
      2. Probleme bei ihrem Auftreten erkennen
      3. Probleme umschwärmen und lösen, um neues Wissen zu schaffen
      4. Die Qualität näher zur Quelle bringen
      5. Für folgende Arbeitsstationen optimieren
      6. Zusammenfassung
    4. 4 Der Dritte Weg: Die Prinzipien des kontinuierlichen Lernens und Experimentierens
      1. Firmenweites Lernen und eine Sicherheitskultur ermöglichen
      2. Institutionalisieren Sie die Verbesserungen bei der täglichen Arbeit
      3. Lokale Entdeckungen in globale Verbesserungen umwandeln
      4. Resilienzmuster in unsere tägliche Arbeit einbringen
      5. Führungskräfte unterstützen eine Kultur des Lernens
      6. Zusammenfassung
      7. Zusammenfassung Teil I
  9. Teil II: Wie man beginnt
    1. 5 Die Auswahl der ersten Wertkette
      1. Greenfield- vs. Brownfield-Services
      2. Systems of Record und Systems of Engagement berücksichtigen
      3. Beginnen Sie mit den wohlgesonnensten und innovativsten Gruppen
      4. DevOps in unserer Firma verbreiten
      5. Zusammenfassung
    2. 6 Die Arbeit in der Wertkette verstehen, sie sichtbar machen und verbreiten
      1. Die Teams identifizieren, die unsere Wertkette unterstützen
      2. Eine Value Stream Map erstellen, um die Arbeit sichtbar zu machen
      3. Ein dediziertes Transformationsteam aufstellen
      4. Tools einsetzen, um das gewünschte Verhalten zu unterstützen
      5. Zusammenfassung
    3. 7 Organisation und Architektur anhand von Conways Gesetz entwerfen
      1. Organisatorische Archetypen
      2. Probleme, die häufig durch eine zu starke Funktionsorientierung verursacht werden (»Auf Kosten optimiert«)
      3. Marktorientierte Teams anstreben (»Auf Geschwindigkeit optimieren«)
      4. Funktionsorientierung nutzen
      5. Tests, Operations und Sicherheit als Aufgaben für jedermann an jedem Tag
      6. Jedes Teammitglied zu einem Generalisten machen
      7. Nicht Projekte finanzieren, sondern Services und Produkte
      8. Teamgrenzen anhand von Conways Gesetz festlegen
      9. Lose gekoppelte Architektur nutzen, damit Entwickler produktiv und sicher arbeiten können
      10. Zusammenfassung
    4. 8 Operations in die tägliche Entwicklungsarbeit integrieren
      1. Mit gemeinsam genutzten Services die Produktivität der Entwickler erhöhen
      2. Ops-Techniker in unsere Serviceteams integrieren
      3. Jedem Serviceteam eine Ops-Liaison verschaffen
      4. Ops in die Dev-Rituale integrieren
      5. Zusammenfassung
      6. Zusammenfassung Teil II
  10. Teil III: Der Erste Weg: Die technischen Praktiken des Flow
    1. 9 Die Grundlagen für unsere Deployment-Pipeline legen
      1. Dev-, Test- und Produktivumgebungen auf Anforderung erstellen können
      2. Ein Single Repository of Truth für das gesamte System schaffen
      3. Infrastruktur einfacher neu bauen, statt zu reparieren
      4. Die Definition des Entwicklungs-»Done« so anpassen, dass der Code in produktivähnlichen Umgebungen läuft
      5. Zusammenfassung
    2. 10 Schnelles und zuverlässiges automatisiertes Testen ermöglichen
      1. Continuous Build, Test und Integration von Code und Umgebungen
      2. Eine schnelle und zuverlässige automatisierte Validierungstest-Suite aufbauen
      3. Unsere Andon-Cord ziehen, wenn die Deployment-Pipeline unterbrochen wird
      4. Zusammenfassung
    3. 11 Continuous Integration ermöglichen und umsetzen
      1. Entwicklung in kleinen Batchgrößen und was passiert, wenn wir zu selten Code in den Trunk committen
      2. Trunk-basierte Entwicklungspraktiken übernehmen
      3. Zusammenfassung
    4. 12 Releases automatisieren und ihr Risiko reduzieren
      1. Unseren Deployment-Prozess automatisieren
      2. Deployments von Releases entkoppeln
      3. Übersicht über Continuous Delivery und Continuous Deployment in der Praxis
      4. Zusammenfassung
    5. 13 Eine Architektur für risikoarme Releases
      1. Architektonische Prototypen: Monolith vs. Microservices
      2. Mit dem Strangler-Application-Muster die Firmenarchitektur sicher weiterentwickeln
      3. Zusammenfassung
      4. Zusammenfassung Teil III
  11. Teil IV: Der Zweite Weg: Die technischen Praktiken des Feedbacks
    1. 14 Telemetriedaten erzeugen, um Probleme zu erkennen und zu beheben
      1. Unsere zentrale Telemetrie-Infrastruktur aufbauen
      2. Anwendungs-Logging-Telemetriedaten erzeugen, die in der Produktivumgebung helfen
      3. Mit Telemetriedaten beim Lösen von Problemen helfen
      4. Produktivmetriken als Teil der täglichen Arbeit ermöglichen
      5. Self-Service-Zugriff auf Telemetriedaten und Information Radiators schaffen
      6. Telemetrielücken finden und füllen
      7. Zusammenfassung
    2. 15 Telemetriedaten analysieren, um Probleme besser vorherzusehen und Ziele zu erreichen
      1. Mit Mittelwert und Standardabweichung potenzielle Probleme erkennen
      2. Unerwünschte Ergebnisse instrumentieren und davor warnen
      3. Probleme, die entstehen, wenn die Telemetriedaten keine Gauß-Verteilung aufweisen
      4. Techniken zur Anomalie-Erkennung einsetzen
      5. Zusammenfassung
    3. 16 Feedback ermöglichen, sodass Entwicklung und Operations Code sicher deployen können
      1. Deployments mit Telemetriedaten sicherer machen
      2. Dev nimmt am Bereitschaftsdienst von Ops teil
      3. Entwickler ermutigen, ihre Arbeit in der Wertkette zu beobachten
      4. Entwickler ihren Produktivservice initial selbst betreuen lassen
      5. Zusammenfassung
    4. 17 Hypothesengetriebene Entwicklung und A/B-Tests in die tägliche Arbeit integrieren
      1. Eine kurze Geschichte des A/B-Testens
      2. A/B-Tests in unser Feature-Testing integrieren
      3. A/B-Tests in unser Release einbinden
      4. A/B-Tests in unsere Feature-Planung integrieren
      5. Zusammenfassung
    5. 18 Review- und Koordinationsprozesse schaffen, um die Qualität der aktuellen Arbeit zu verbessern
      1. Die Gefahren von Change-Approval-Prozessen
      2. Potenzielle Gefahren von »zu sehr kontrollierten Änderungen«
      3. Koordination und Planung von Änderungen ermöglichen
      4. Peer Review für Änderungen einführen
      5. Potenzielle Gefahren durch mehr manuelle Tests und Änderungssperren
      6. Durch Pair Programming all unsere Änderungen verbessern
      7. Bürokratische Prozesse unerschrocken stoppen
      8. Zusammenfassung
      9. Zusammenfassung Teil IV
  12. Teil V: Der Dritte Weg: Die technischen Praktiken des fortlaufenden Lernens und Experimentierens
    1. 19 Lernen ermöglichen und Erfahrungen in die tägliche Arbeit einbringen
      1. Eine Just Culture und eine Kultur des Lernens umsetzen
      2. Post-Mortem-Meetings ohne Schuldzuweisung nach dem Eintreten von Unfällen
      3. Unsere Post-Mortem-Analysen so weit wie möglich verbreiten
      4. Die Toleranz gegenüber Vorfällen weiter absenken, um immer schwächere Fehlersignale zu erkennen
      5. Fehler neu definieren und das Eingehen kalkulierter Risiken unterstützen
      6. Fehler in die Produktivumgebung einbringen, um Resilienz und Lernen zu ermöglichen
      7. Game Days einführen, um Zwischenfälle zu üben
      8. Zusammenfassung
    2. 20 Lokale Erkenntnisse in globale Verbesserungen verwandeln
      1. Mit Chatrooms und Chat Bots firmenweites Wissen automatisieren und einfangen
      2. Standardisierte Prozesse zur Wiederverwendung in Software automatisieren
      3. Ein einzelnes, gemeinsam genutztes Quellcode-Repository für die gesamte Firma nutzen
      4. Wissen durch automatisierte Tests als Dokumentation und Community of Practice verbreiten
      5. Durch kodifizierte nicht funktionale Anforderungen für Operations designen
      6. Wiederverwendbare Operations User Stories in die Entwicklung integrieren
      7. Sicherstellen, dass technologische Entscheidungen dabei helfen, die Firmenziele zu erreichen
      8. Zusammenfassung
    3. 21 Zeit für das firmenweite Lernen und für Verbesserungen reservieren
      1. Rituale institutionalisieren, um technische Schulden zu bezahlen
      2. Lehren und Lernen für jeden ermöglichen
      3. Teilen Sie Ihre auf DevOps-Konferenzen Ihre Erfahrungen
      4. Internes Consulting und Coaches zum Verbreiten von Praktiken aufbauen
      5. Zusammenfassung
      6. Zusammenfassung Teil V
  13. Teil VI: Die technischen Praktiken zum Integrieren von Information Security, Änderungsmanagement und Compliance
    1. 22 Information Security als Aufgabe für jeden Mitarbeiter an jedem Tag
      1. Infosec in die Präsentationen der Entwicklungsiterationen einbinden
      2. Infosec in das Fehler-Tracking und in Post-Mortem-Analysen einbinden
      3. Präventive Sicherheitsmaßnahmen in die gemeinsam genutzten Quellcode-Repositories und Services integrieren
      4. Infosec in unsere Deployment-Pipeline einbinden
      5. Für die Sicherheit der Anwendung sorgen
      6. Die Sicherheit unserer Software-Lieferkette sicherstellen
      7. Die Sicherheit der Umgebung gewährleisten
      8. Infosec in die Produktiv-Telemetriedaten integrieren
      9. Sicherheits-Telemetriedaten in unseren Anwendungen erstellen
      10. Sicherheits-Telemetriedaten in unserer Umgebung erstellen
      11. Unsere Deployment-Pipeline schützen
      12. Zusammenfassung
    2. 23 Die Deployment-Pipeline schützen
      1. Sicherheit und Compliance in den Prozess zur Änderungsgenehmigung integrieren
      2. Den Großteil unserer Änderungen mit geringem Risiko als Standardänderungen neu kategorisieren
      3. Was zu tun ist, wenn Änderungen als normale Änderungen eingestuft werden
      4. Das Vertrauen in die Segregation of Duty reduzieren
      5. Für Dokumentation und Belege für Auditoren und Compliance Officer sorgen
      6. Zusammenfassung
      7. Zusammenfassung Teil VI
    3. 24 Ein Aufruf zum Handeln
  14. Anhänge: Zusatzmaterial
    1. A Die Konvergenz von DevOps
    2. B Theory of Constraints und zentrale chronische Konflikte
    3. C Tabellarische Form der Abwärtsspirale
    4. D Die Gefahren von Übergaben und Queues
    5. E Mythen der Arbeitssicherheit
    6. F Die Toyota-Andon-Cord
    7. G COTS-Software
    8. H Post-Mortem-Meetings
    9. I Die Simian Army
    10. J Transparent Uptime
    11. K Weitere Ressourcen
    12. L Danksagungen
  15. Fußnoten
  16. Index
  17. Über die Autoren

Product information

  • Title: Das DevOps-Handbuch
  • Author(s): Jez Humble, John Willis, Gene Kim, Patrick Debois
  • Release date: August 2017
  • Publisher(s): dpunkt
  • ISBN: 9783960090472