O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Continuous Delivery

Book Description

Continuous Delivery ermöglicht es, Software schneller und zuverlässiger in Produktion zu bringen als bisher. Grundlage dafür ist eine Continuous-Delivery-Pipeline, die das Ausrollen der Software weitgehend automatisiert. Dieses Buch erläutert, wie eine solche Pipeline praktisch aufgebaut wird und welche Technologien dazu eingesetzt werden können. Dabei geht es nicht nur um das Kompilieren und Installation der Software, sondern vor allem um verschiedene Tests, die die Qualität der Software abzusichern. Das Buch zeigt außerdem, welche Auswirkungen Continuous Delivery auf das Zusammenspiel zwischen Entwicklung und Betrieb im Rahmen des Begriffs DevOps hat. Schließlich werden die Auswirkungen auf die Softwareachitektur beschrieben.

Table of Contents

  1. Cover
  2. Titel
  3. Impressum
  4. 1 Einleitung
    1. 1.1 Überblick über Continuous Delivery und das Buch
    2. 1.2 Warum überhaupt Continuous Delivery?
    3. 1.3 Für wen ist das Buch?
    4. 1.4 Übersicht über die Kapitel
    5. 1.5 Pfade durch das Buch
    6. 1.6 Danksagung
  5. Teil 1: Grundlagen
    1. 2 Continuous Delivery: Was und wie?
      1. 2.1 Was ist Continuous Delivery?
      2. 2.2 Warum Software-Releases so kompliziert sind
      3. 2.3 Werte von Continuous Delivery
      4. 2.4 Vorteile von Continuous Delivery
        1. 2.4.1 Continuous Delivery für Time-to-Market
        2. 2.4.2 Continuous Delivery zur Risikominimierung
        3. 2.4.3 Schnelleres Feedback und Lean
      5. 2.5 Aufbau und Struktur einer Continuous-Delivery-Pipeline
      6. 2.6 Links & Literatur
    2. 3 Infrastruktur bereitstellen
      1. 3.1 Einleitung
      2. 3.2 Installationsskripte
      3. 3.3 Chef
        1. 3.3.1 Technische Grundlagen
        2. 3.3.2 Chef Solo
        3. 3.3.3 Chef Solo: Fazit
        4. 3.3.4 Knife und Chef Server
        5. 3.3.5 Chef Server: Fazit
      4. 3.4 Vagrant
        1. 3.4.1 Ein Beispiel mit Chef und Vagrant
        2. 3.4.2 Vagrant: Fazit
      5. 3.5 Docker
        1. 3.5.1 Dockers Lösung
        2. 3.5.2 Docker-Container erstellen
        3. 3.5.3 Beispielanwendung mit Docker betreiben
        4. 3.5.4 Docker und Vagrant
        5. 3.5.5 Komplexe Konfigurationen mit Docker
      6. 3.6 Infrastructure as Code
      7. 3.7 Platform as a Service (PaaS)
      8. 3.8 Umgang mit Daten und Datenbanken
      9. 3.9 Fazit
      10. 3.10 Links & Literatur
  6. Teil 2: Die Continuous-Delivery-Pipeline
    1. 4 Build-Automatisierung und Continuous Integration
      1. 4.1 Überblick
      2. 4.2 Build-Automatisierung und Build-Tools
        1. 4.2.1 Ant
        2. 4.2.2 Maven
        3. 4.2.3 Gradle
        4. 4.2.4 Weitere Build-Tools
        5. 4.2.5 Auswahl des geeigneten Tools
        6. 4.2.6 Links und Literatur
      3. 4.3 Unit-Tests
        1. 4.3.1 »Gute« Unit-Tests schreiben
        2. 4.3.2 TDD – Test Driven Development
        3. 4.3.3 Clean Code und Software Craftsmanship
        4. 4.3.4 Links und Literatur
      4. 4.4 Continuous Integration
        1. 4.4.1 Jenkins
        2. 4.4.2 Continuous-Integration-Infrastruktur
        3. 4.4.3 Fazit
        4. 4.4.4 Links und Literatur
      5. 4.5 Messung von Codequalität
        1. 4.5.1 SonarQube
        2. 4.5.2 Links und Literatur
      6. 4.6 Management von Artefakten
        1. 4.6.1 Integration in den Build
        2. 4.6.2 Weiterreichende Funktionen von Repositories
        3. 4.6.3 Links und Literatur
      7. 4.7 Fazit
    2. 5 Akzeptanztests
      1. 5.1 Einführung
      2. 5.2 Die Test-Pyramide
      3. 5.3 Was sind Akzeptanztests?
      4. 5.4 GUI-basierte Akzeptanztests
      5. 5.5 Alternative Werkzeuge für GUI-Tests
      6. 5.6 Textuelle Akzeptanztests
      7. 5.7 Alternative Frameworks
      8. 5.8 Strategien für Akzeptanztests
      9. 5.9 Fazit
      10. 5.10 Links & Literatur
    3. 6 Kapazitätstests
      1. 6.1 Einführung
      2. 6.2 Kapazitätstests – wie?
      3. 6.3 Kapazitätstests implementieren
      4. 6.4 Kapazitätstests mit Gatling
      5. 6.5 Alternativen zu Gatling
      6. 6.6 Fazit
      7. 6.7 Links & Literatur
    4. 7 Exploratives Testen
      1. 7.1 Einleitung
      2. 7.2 Warum explorative Tests?
      3. 7.3 Wie vorgehen?
      4. 7.4 Fazit
      5. 7.5 Links & Literatur
    5. 8 Deploy – der Rollout in Produktion
      1. 8.1 Einleitung
      2. 8.2 Rollout und Rollback
      3. 8.3 Roll Forward
      4. 8.4 Blue/Green Deployment
      5. 8.5 Canary Releasing
      6. 8.6 Continuous Deployment
      7. 8.7 Virtualisierung
      8. 8.8 Jenseits der Webanwendungen
      9. 8.9 Fazit
      10. 8.10 Links und Literatur
    6. 9 Operate – Produktionsbetrieb der Anwendungen
      1. 9.1 Einleitung
      2. 9.2 Herausforderungen im Betrieb
      3. 9.3 Log-Dateien
        1. 9.3.1 Werkzeuge zum Verarbeiten von Log-Dateien
        2. 9.3.2 Logging in der Beispielanwendung
      4. 9.4 Logs der Beispielanwendung analysieren
      5. 9.5 Andere Technologien für Logs
      6. 9.6 Fortgeschrittene Log-Techniken
      7. 9.7 Monitoring
      8. 9.8 Metriken mit Graphite
      9. 9.9 Metriken in der Beispielanwendung
      10. 9.10 Andere Monitoring-Lösungen
      11. 9.11 Weitere Herausforderungen beim Betrieb der Anwendung
      12. 9.12 Fazit
      13. 9.13 Links & Literatur
  7. Teil 3: Management-und Architektursicht auf Continuous Delivery
    1. 10 Einführen von Continuous Delivery in Unternehmen
      1. 10.1 Einleitung
      2. 10.2 Continuous Delivery von Anfang an
      3. 10.3 Value Stream Mapping
      4. 10.4 Weitere Optimierungsmaßnahmen
      5. 10.5 Zusammenfassung
      6. 10.6 Links & Literatur
    2. 11 Continuous Delivery und DevOps
      1. 11.1 Einführung
      2. 11.2 Was ist DevOps?
      3. 11.3 Continuous Delivery und DevOps
      4. 11.4 Wohin geht die Reise?
      5. 11.5 Fazit
      6. 11.6 Links & Literatur
    3. 12 Continuous Delivery, DevOps und Softwarearchitektur
      1. 12.1 Einleitung
      2. 12.2 Softwarearchitektur
      3. 12.3 Komponentenaufteilung für Continuous Delivery optimieren
      4. 12.4 Schnittstellen
      5. 12.5 Datenbanken
      6. 12.6 Umgang mit neuen Features
      7. 12.7 Fazit
      8. 12.8 Links & Literatur
    4. 13 Fazit: Was bringt’s?
      1. 13.1 Links & Literatur
  8. Index
  9. Fußnote
  10. Cover-Rückseite