Die Live-Session via Web-TV fand am 8. August 2012 statt.

Video der Live-Session

Dieses Video downloaden (MP4, 400 MB)

Grundlagen

  • Ziel: Kurze Release-Zyklen unter Einhaltung der Qualitätskriterien und QS-Prozesse
  • Jede geänderte Code-Zeile führt zur Auslieferung einer vollständigen und QS-geprüften neuen Version der Software
  • Kent Beck scherzhaft über Continuous Deployment:

    "Write one line of code. Deploy. (...) Once the deployment is done, write another line of code. Deploy."

  • Umfangreicher und automatisierter QS-Prozess
  • QA-Pipeline: Qualitätsprüfung in mehreren Phasen --> Unit-Tests, Integrationstests, Oberflächentests

Schaubild zur Deployment Pipeline bei TwentyFeet

Agenda für die Live-Session

Grundlegendes: Was ist Continuous Deployment?

  • Continuous Deployment ist eine Lean-Startup-Technik
  • Prozess, bei dem alle Code-Zeilen für eine Anwendung unmittelbar in die Produktion eingehen

Vorteile

  • Ständige Überprüfung von Integrations-Problemen
  • Schnelle Entdeckung von Fehlern im System
  • Unmittelbare Reaktion des Systems bei fehlerhaftem oder unvollständigem Codes
  • Verkürzte Release-Zyklen und höhere Eigeninitiative
  • Schneller Weg, um Ideen am Markt zu testen (Hypothesen im Rahmen des Lean-Startup)

Kritische Betrachtung / Gefahren

  • Sichtbarkeit des fehlerhaften Codes, die durch Bugs erzeugt werden, die nicht durch Unit-Tests gesichert sind

Rahmenbedingungen

  • Continuous Integration Sever (Jenkins): Überwachungsplattform der Deployment Pipeline
  • Source control commit check (Quellkontrollen)
  • Deployment Scripts
  • Testmechanismen (erhöhte Automatisierung): Unit-, Integrations- und GUI-Tests
  • Deployment erst, wenn alle Tests "grün" sind -> stärkt die Relevanz des CI-Servers
  • manuelles (exploratives) Testen durchaus Teil der Pipeline
  • Partielles Rollout (für bestimmte Benutzergruppen, Feature Flags, Feature Toggle)
  • Ursachenanalyse

Herausforderungen

  • Robuste und flächendeckende Testsuite notwendig
  • Vereinbarkeit mit Integrationszyklen (Sprints)
  • Umgang mit Versionskontrolle muss geklärt werden (Versionen, Branches vs. Head Depoyment + Tags)
  • Manuelle Schritte führen zu Verzögerungen (Unterschiede zwischen Test- und Live-Version wachsen)

Umsetzung bei TwentyFeet

  • Auslöser: Lean-Startup
  • James Womack zu Lean Thinking:

    "Waste is any human activity which absorbs resources but creates no value."

  • Möglichst kurze Release-Zyklen finden Anklang im Lean-Startup-Konzept
  • Eric Ries hierzu:

    "The biggest waste in software is created from waiting for software as it moves from one state to another: Waiting to code, waiting to test, waiting to deploy. Reducing or eliminating these waits leads to faster iterations which is the key to success."

Dieser Inhalt wurde zuletzt am 07.07.2015 aktualisiert.

Der Inhalt auf dieser Seite ist schon seit einer Weile nicht mehr aktualisiert worden. Das muss kein Nachteil sein. Oft überdauern unsere Seiten Jahre, ohne wirklich unnütz zu werden. Einfach auf diesen Link klicken, wenn wir die Seite mal wieder aktualisieren sollten. Alte Inhalte können falsch, irreführend oder überholt sein. Bitte nutzen Sie das Formular oder den Live-Chat auf dieser Seite oder kontaktieren Sie uns via E-Mail unter content@seibert.group, wenn Sie Zweifel, Fragen, Anregungen oder Änderungswünsche haben.