Child pages
  • Live-Session - Continuous Deployment und die Deployment Pipeline bei TwentyFeet
Skip to end of banner
Go to start of banner
Skip to end of metadata
Go to start of metadata

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."