See video: http://youtu.be/6e4HnoSs2J8 - Jetzt anfragen: http://seibert.biz/anfrage - Joachim Seibert und Martin Seibert (beide //SEIBERT/MEDIA) stellen das Continous Deployment (Continous Delivery) bei TwentyFeet und das Konzept für agile Software-Entwicklung im allgemeinen vor. Mehr Info: http://seibert.biz/continousdeployment
2. "Write one line of code.
Deploy. (...)
Once the deployment is
done, write another line
of code. Deploy."
Kent Beck
3. Beispiele
• Flickr: ca. 60 Deployments pro Woche
• GitHub: bis zu 40 Deployments am Tag
• Amazon mit einem Deployment alle 11,6
Sekunden
siehe: http://www.gi.de/service/informatiklexikon/detailansicht/article/deployment-continuous.html
4. Agenda
• Was ist Continuous Deployment?
• Welche Vorteile bringt mir das?
• Welche Rahmenbedingungen gibt es?
• Welche Herausforderungen müssen beachtet
werden?
• Wie haben wir es bei TwentyFeet umgesetzt?
5. Grundlegendes
• Jede geänderte Code-Zeile führt zur
Auslieferung einer vollständigen und
QS-geprüften neuen Version der
Software
• Minimierung der manuellen Schritte
vom Test bis zur Auslieferung
• Deployment bzw. QA-Pipeline:
Qualitätsprüfung in mehreren Phasen
6. Vorteile
• Continuous Integration: Frühzeitiges
Erkennen und Beheben von Fehlern
• Verkürzte Release-Zyklen (Time-to-market)
• Schneller Weg, um Ideen am Markt zu
Testen (Hypothesen im Rahmen des Lean-
Startup)
• Keine aufwändigen Deployments
8. Testumgebung
• Verschiedene Ebene der technischen Tests
• Unit-, Integration, Gui-Tests
• Deployment erst, wenn alle Tests grün.
• manuelles (exploratives) Testen durchaus
Teil der Pipeline
9. Herausforderungen
• Robuste und flächendeckende Testsuite notwendig
• Vereinbarkeit mit Integrationszyklen (Sprints,
Zwischenauslieferungen)
• 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
•
10. Continuous Deployment
& Lean Startup
! "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."
Eric Ries
11. TwentyFeet
• Auslöser: Lean Startup Methodik
• CI-Server Jenkins bereits eingesetzt
• Unit-, Integration-, Gui-Tests
• Deployment-Scripts bereits
teilautomatisiert
• Einfaches Bereitstellen von Testumgebungen
durch Cloud Hosting