SlideShare ist ein Scribd-Unternehmen logo
1 von 17
Downloaden Sie, um offline zu lesen
If it hurts do it more often
Introducing Continuous Delivery

pingworks – Alexander Birk, Christoph Lukas
SEITENBAU – Christian Faigle


Agile Bodensee, 28.9.2012
Case Study – Continuous Delivery


    Konkretes Projekt: online Präsentationstool
     a la slideshare.net
    Ordner, Tags, Berechtigungen
    ca. 40 Entwickler
    3 Standorte
Technischer Rahmen


   3 Schichten Architektur
   Java, PHP, JS
   ~ 35 SVN Module, 5000 Konfigparameter
   Unit-, Integrations- und Systemtests
Komponenten
Entwicklung mit SCRUM

   zweiwöchige Sprints
   Lieferung alle zwei Wochen
   Jede Lieferung bedeutet:
       Erstellung von Binärpaketen
       Deployment auf Testumgebung
       Durchführung von Tests
       Erstellung von Testprotokollen
Lieferung ohne Continuous Delivery

    Tagging, RPM Build, Deployment: ~ 1 PT
    Lieferung: ~ 2 PT
    Integration selten, mini BigBang
    Spezialwissen nötig
    Wehe, die Spezialisten haben Urlaub!!
Continuous Delivery
Continuous Delivery
Aspekte von Continuous Delivery


                   Continuous Delivery

                                   Convention over
       Continuous Integration
                                     Configuration




         DevOps Thinking        Continuous Improvement
Testumgebungen

   Virtualisierte Testumgebungen
   „Infrastructure as Code“
   Geskriptetes „bare Metal-Cloning“ und
    Konfiguration
   „Wegwerf-Mentalität“
   Erstellung in < 15 min.
Deployment

   Installer im Bundle
   Kann Anwendung auf allen Umgebungen
    installieren
   Konfiguriert die Anwendung
   „One Click Deployment“ in < 3 min.
Continuous Delivery in Zahlen


    Bis zu 100 Commits / Bundles pro Tag
    Bis zu 1000 Deployments pro Tag
Schwierigkeiten

    Bereitschaft für Veränderung
    Graben zwischen Dev und Ops zuschütten
    DevOps Thinking etablieren:
     „jeder ist verantwortlich für die Delivery und
     Betrieb“
    Vermeintliche Kosten
Aufwand und Kosten

   Aufsetzen von Continuous Delivery
    3 Entwickler Vollzeit 2 Monate => 120 PT

   Manuelles Deployment pro Sprint
    1 Jahr, 25 Sprints a 3 PTs       => 75 PT
    1 Sprint Integration / Bugfixing => 70 PT
                                     ----------
                                        145 PT
Gewinn

   Deployment wird zum Non-Event
   Kein „Configuration Nightmare“
   weniger (schwere) Fehler
   Keine Angst vor Refactorings
   Weniger Aufwand für Deployment /
    Konfiguration / Testing
   Mehr Zeit für Features, mehr Motivation
Fazit




  „Must Have“ für agile Software Entwicklung
Live Demo

   Erzeugung einer Testumgebung
   Dashboard
   Build-Pipeline im Jenkins
   Bundle-Repository
   Deployment auf neue Testumgebung

Weitere ähnliche Inhalte

Was ist angesagt?

Das eigene Test Lab, für jeden! (CeBIT-Edition mit Demo-Videos)
Das eigene Test Lab, für jeden! (CeBIT-Edition mit Demo-Videos)Das eigene Test Lab, für jeden! (CeBIT-Edition mit Demo-Videos)
Das eigene Test Lab, für jeden! (CeBIT-Edition mit Demo-Videos)Peter Kirchner
 
Continuous Delivery für Infrastrukturdienste in Container-Umgebungen
Continuous Delivery für Infrastrukturdienste in Container-UmgebungenContinuous Delivery für Infrastrukturdienste in Container-Umgebungen
Continuous Delivery für Infrastrukturdienste in Container-UmgebungenNicholas Dille
 
Tipps und Tricks im Umgang mit Docker
Tipps und Tricks im Umgang mit DockerTipps und Tricks im Umgang mit Docker
Tipps und Tricks im Umgang mit DockerNicholas Dille
 
Continuous Delivery - Aber Sicher?!
Continuous Delivery - Aber Sicher?!Continuous Delivery - Aber Sicher?!
Continuous Delivery - Aber Sicher?!Jan Dittberner
 
Akzeptanz-Test getriebene Produktentwicklung
Akzeptanz-Test getriebene ProduktentwicklungAkzeptanz-Test getriebene Produktentwicklung
Akzeptanz-Test getriebene ProduktentwicklungMichael Brandt
 
Continuous Deployment mit Rex und Jenkins
Continuous Deployment mit Rex und JenkinsContinuous Deployment mit Rex und Jenkins
Continuous Deployment mit Rex und Jenkinsinovex GmbH
 
Technische Gründe für schlechte Entwicklungsperformance
Technische Gründe für schlechte EntwicklungsperformanceTechnische Gründe für schlechte Entwicklungsperformance
Technische Gründe für schlechte EntwicklungsperformanceOPEN KNOWLEDGE GmbH
 
DevDay 2016: Peter Lehmann - Testautomatisierungsframework Xeta
DevDay 2016: Peter Lehmann - Testautomatisierungsframework XetaDevDay 2016: Peter Lehmann - Testautomatisierungsframework Xeta
DevDay 2016: Peter Lehmann - Testautomatisierungsframework XetaDevDay Dresden
 
Das Kung Fu des Code Reviews
Das Kung Fu des Code ReviewsDas Kung Fu des Code Reviews
Das Kung Fu des Code ReviewsChristian Erhardt
 

Was ist angesagt? (9)

Das eigene Test Lab, für jeden! (CeBIT-Edition mit Demo-Videos)
Das eigene Test Lab, für jeden! (CeBIT-Edition mit Demo-Videos)Das eigene Test Lab, für jeden! (CeBIT-Edition mit Demo-Videos)
Das eigene Test Lab, für jeden! (CeBIT-Edition mit Demo-Videos)
 
Continuous Delivery für Infrastrukturdienste in Container-Umgebungen
Continuous Delivery für Infrastrukturdienste in Container-UmgebungenContinuous Delivery für Infrastrukturdienste in Container-Umgebungen
Continuous Delivery für Infrastrukturdienste in Container-Umgebungen
 
Tipps und Tricks im Umgang mit Docker
Tipps und Tricks im Umgang mit DockerTipps und Tricks im Umgang mit Docker
Tipps und Tricks im Umgang mit Docker
 
Continuous Delivery - Aber Sicher?!
Continuous Delivery - Aber Sicher?!Continuous Delivery - Aber Sicher?!
Continuous Delivery - Aber Sicher?!
 
Akzeptanz-Test getriebene Produktentwicklung
Akzeptanz-Test getriebene ProduktentwicklungAkzeptanz-Test getriebene Produktentwicklung
Akzeptanz-Test getriebene Produktentwicklung
 
Continuous Deployment mit Rex und Jenkins
Continuous Deployment mit Rex und JenkinsContinuous Deployment mit Rex und Jenkins
Continuous Deployment mit Rex und Jenkins
 
Technische Gründe für schlechte Entwicklungsperformance
Technische Gründe für schlechte EntwicklungsperformanceTechnische Gründe für schlechte Entwicklungsperformance
Technische Gründe für schlechte Entwicklungsperformance
 
DevDay 2016: Peter Lehmann - Testautomatisierungsframework Xeta
DevDay 2016: Peter Lehmann - Testautomatisierungsframework XetaDevDay 2016: Peter Lehmann - Testautomatisierungsframework Xeta
DevDay 2016: Peter Lehmann - Testautomatisierungsframework Xeta
 
Das Kung Fu des Code Reviews
Das Kung Fu des Code ReviewsDas Kung Fu des Code Reviews
Das Kung Fu des Code Reviews
 

Ähnlich wie Agile Bodensee - Introducing Continuous Delivery

Build Patterns - Patterns und Best Practices für den Build Prozess
Build Patterns - Patterns und Best Practices für den Build ProzessBuild Patterns - Patterns und Best Practices für den Build Prozess
Build Patterns - Patterns und Best Practices für den Build ProzessRalf Abramowitsch
 
Vagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und ArchitektenVagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und ArchitektenOPITZ CONSULTING Deutschland
 
Softwarequalitätssicherung mit Continuous Integration Tools
 Softwarequalitätssicherung mit Continuous Integration Tools Softwarequalitätssicherung mit Continuous Integration Tools
Softwarequalitätssicherung mit Continuous Integration Toolsgedoplan
 
Softwarequalitätssicherung mit Continuous Integration Tools
Softwarequalitätssicherung mit Continuous Integration ToolsSoftwarequalitätssicherung mit Continuous Integration Tools
Softwarequalitätssicherung mit Continuous Integration ToolsGFU Cyrus AG
 
Continuous Lifecycle 2013: Testgetriebenes Arbeiten im Betrieb
Continuous Lifecycle 2013: Testgetriebenes Arbeiten im BetriebContinuous Lifecycle 2013: Testgetriebenes Arbeiten im Betrieb
Continuous Lifecycle 2013: Testgetriebenes Arbeiten im BetriebAndreas Schmidt
 
30. Treffen der .NET User Group Rhein-Neckar mit Constantin Klein - „Bekommen...
30. Treffen der .NET User Group Rhein-Neckar mit Constantin Klein - „Bekommen...30. Treffen der .NET User Group Rhein-Neckar mit Constantin Klein - „Bekommen...
30. Treffen der .NET User Group Rhein-Neckar mit Constantin Klein - „Bekommen....NET User Group Rhein-Neckar
 
DevOps Prinzipien im Zusammenspiel mit Kubernetes
DevOps Prinzipien im Zusammenspiel mit Kubernetes DevOps Prinzipien im Zusammenspiel mit Kubernetes
DevOps Prinzipien im Zusammenspiel mit Kubernetes QAware GmbH
 
Testgetriebene Softwareentwicklung
Testgetriebene SoftwareentwicklungTestgetriebene Softwareentwicklung
Testgetriebene Softwareentwicklungjlink
 
Test-driven Development mit TYPO3
Test-driven Development mit TYPO3Test-driven Development mit TYPO3
Test-driven Development mit TYPO3Oliver Klee
 
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturContinuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturQAware GmbH
 
Vortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development EnvironmentsVortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development EnvironmentsThorsten Kamann
 
JAX 2015 - Continuous Integration mit Java & Javascript
JAX 2015 - Continuous Integration mit Java & JavascriptJAX 2015 - Continuous Integration mit Java & Javascript
JAX 2015 - Continuous Integration mit Java & Javascriptdzuvic
 
Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)
Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)
Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)Wiest Simon
 
Nanoservice Architekturen
Nanoservice ArchitekturenNanoservice Architekturen
Nanoservice ArchitekturenLeo Lindhorst
 
Einführung Vorgehensmodelle und Agile Software Entwicklung
Einführung Vorgehensmodelle und Agile Software EntwicklungEinführung Vorgehensmodelle und Agile Software Entwicklung
Einführung Vorgehensmodelle und Agile Software EntwicklungChristian Baranowski
 
DevOps day - feature teams
DevOps day  - feature teamsDevOps day  - feature teams
DevOps day - feature teamsWalter Strametz
 
Robert Risch - Was sind die verschiedenen Phasen bei DevOps
Robert Risch - Was sind die verschiedenen Phasen bei DevOpsRobert Risch - Was sind die verschiedenen Phasen bei DevOps
Robert Risch - Was sind die verschiedenen Phasen bei DevOpsRobert Risch
 
Presentation bp7 - citrix xen desktop
Presentation   bp7 - citrix xen desktopPresentation   bp7 - citrix xen desktop
Presentation bp7 - citrix xen desktopxKinAnx
 
Applikationsmodernisierung: Der Weg von Legacy in die Cloud
Applikationsmodernisierung: Der Weg von Legacy in die CloudApplikationsmodernisierung: Der Weg von Legacy in die Cloud
Applikationsmodernisierung: Der Weg von Legacy in die CloudAarno Aukia
 

Ähnlich wie Agile Bodensee - Introducing Continuous Delivery (20)

Build Patterns - Patterns und Best Practices für den Build Prozess
Build Patterns - Patterns und Best Practices für den Build ProzessBuild Patterns - Patterns und Best Practices für den Build Prozess
Build Patterns - Patterns und Best Practices für den Build Prozess
 
Vagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und ArchitektenVagrant, Puppet, Docker für Entwickler und Architekten
Vagrant, Puppet, Docker für Entwickler und Architekten
 
Softwarequalitätssicherung mit Continuous Integration Tools
 Softwarequalitätssicherung mit Continuous Integration Tools Softwarequalitätssicherung mit Continuous Integration Tools
Softwarequalitätssicherung mit Continuous Integration Tools
 
Softwarequalitätssicherung mit Continuous Integration Tools
Softwarequalitätssicherung mit Continuous Integration ToolsSoftwarequalitätssicherung mit Continuous Integration Tools
Softwarequalitätssicherung mit Continuous Integration Tools
 
Continuous Lifecycle 2013: Testgetriebenes Arbeiten im Betrieb
Continuous Lifecycle 2013: Testgetriebenes Arbeiten im BetriebContinuous Lifecycle 2013: Testgetriebenes Arbeiten im Betrieb
Continuous Lifecycle 2013: Testgetriebenes Arbeiten im Betrieb
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
 
30. Treffen der .NET User Group Rhein-Neckar mit Constantin Klein - „Bekommen...
30. Treffen der .NET User Group Rhein-Neckar mit Constantin Klein - „Bekommen...30. Treffen der .NET User Group Rhein-Neckar mit Constantin Klein - „Bekommen...
30. Treffen der .NET User Group Rhein-Neckar mit Constantin Klein - „Bekommen...
 
DevOps Prinzipien im Zusammenspiel mit Kubernetes
DevOps Prinzipien im Zusammenspiel mit Kubernetes DevOps Prinzipien im Zusammenspiel mit Kubernetes
DevOps Prinzipien im Zusammenspiel mit Kubernetes
 
Testgetriebene Softwareentwicklung
Testgetriebene SoftwareentwicklungTestgetriebene Softwareentwicklung
Testgetriebene Softwareentwicklung
 
Test-driven Development mit TYPO3
Test-driven Development mit TYPO3Test-driven Development mit TYPO3
Test-driven Development mit TYPO3
 
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer InfrastrukturContinuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
Continuous Delivery für Cloud-native Anwendungen auf Cloud-nativer Infrastruktur
 
Vortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development EnvironmentsVortragsreihe Dortmund: Unified Development Environments
Vortragsreihe Dortmund: Unified Development Environments
 
JAX 2015 - Continuous Integration mit Java & Javascript
JAX 2015 - Continuous Integration mit Java & JavascriptJAX 2015 - Continuous Integration mit Java & Javascript
JAX 2015 - Continuous Integration mit Java & Javascript
 
Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)
Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)
Continuous Integration mit Hudson (JUG Stuttgart, 11.02.2010)
 
Nanoservice Architekturen
Nanoservice ArchitekturenNanoservice Architekturen
Nanoservice Architekturen
 
Einführung Vorgehensmodelle und Agile Software Entwicklung
Einführung Vorgehensmodelle und Agile Software EntwicklungEinführung Vorgehensmodelle und Agile Software Entwicklung
Einführung Vorgehensmodelle und Agile Software Entwicklung
 
DevOps day - feature teams
DevOps day  - feature teamsDevOps day  - feature teams
DevOps day - feature teams
 
Robert Risch - Was sind die verschiedenen Phasen bei DevOps
Robert Risch - Was sind die verschiedenen Phasen bei DevOpsRobert Risch - Was sind die verschiedenen Phasen bei DevOps
Robert Risch - Was sind die verschiedenen Phasen bei DevOps
 
Presentation bp7 - citrix xen desktop
Presentation   bp7 - citrix xen desktopPresentation   bp7 - citrix xen desktop
Presentation bp7 - citrix xen desktop
 
Applikationsmodernisierung: Der Weg von Legacy in die Cloud
Applikationsmodernisierung: Der Weg von Legacy in die CloudApplikationsmodernisierung: Der Weg von Legacy in die Cloud
Applikationsmodernisierung: Der Weg von Legacy in die Cloud
 

Agile Bodensee - Introducing Continuous Delivery

  • 1. If it hurts do it more often Introducing Continuous Delivery pingworks – Alexander Birk, Christoph Lukas SEITENBAU – Christian Faigle Agile Bodensee, 28.9.2012
  • 2. Case Study – Continuous Delivery  Konkretes Projekt: online Präsentationstool a la slideshare.net  Ordner, Tags, Berechtigungen  ca. 40 Entwickler  3 Standorte
  • 3. Technischer Rahmen  3 Schichten Architektur  Java, PHP, JS  ~ 35 SVN Module, 5000 Konfigparameter  Unit-, Integrations- und Systemtests
  • 5. Entwicklung mit SCRUM  zweiwöchige Sprints  Lieferung alle zwei Wochen  Jede Lieferung bedeutet:  Erstellung von Binärpaketen  Deployment auf Testumgebung  Durchführung von Tests  Erstellung von Testprotokollen
  • 6. Lieferung ohne Continuous Delivery  Tagging, RPM Build, Deployment: ~ 1 PT  Lieferung: ~ 2 PT  Integration selten, mini BigBang  Spezialwissen nötig  Wehe, die Spezialisten haben Urlaub!!
  • 9. Aspekte von Continuous Delivery Continuous Delivery Convention over Continuous Integration Configuration DevOps Thinking Continuous Improvement
  • 10. Testumgebungen  Virtualisierte Testumgebungen  „Infrastructure as Code“  Geskriptetes „bare Metal-Cloning“ und Konfiguration  „Wegwerf-Mentalität“  Erstellung in < 15 min.
  • 11. Deployment  Installer im Bundle  Kann Anwendung auf allen Umgebungen installieren  Konfiguriert die Anwendung  „One Click Deployment“ in < 3 min.
  • 12. Continuous Delivery in Zahlen  Bis zu 100 Commits / Bundles pro Tag  Bis zu 1000 Deployments pro Tag
  • 13. Schwierigkeiten  Bereitschaft für Veränderung  Graben zwischen Dev und Ops zuschütten  DevOps Thinking etablieren: „jeder ist verantwortlich für die Delivery und Betrieb“  Vermeintliche Kosten
  • 14. Aufwand und Kosten  Aufsetzen von Continuous Delivery 3 Entwickler Vollzeit 2 Monate => 120 PT  Manuelles Deployment pro Sprint 1 Jahr, 25 Sprints a 3 PTs => 75 PT 1 Sprint Integration / Bugfixing => 70 PT ---------- 145 PT
  • 15. Gewinn  Deployment wird zum Non-Event  Kein „Configuration Nightmare“  weniger (schwere) Fehler  Keine Angst vor Refactorings  Weniger Aufwand für Deployment / Konfiguration / Testing  Mehr Zeit für Features, mehr Motivation
  • 16. Fazit „Must Have“ für agile Software Entwicklung
  • 17. Live Demo  Erzeugung einer Testumgebung  Dashboard  Build-Pipeline im Jenkins  Bundle-Repository  Deployment auf neue Testumgebung