Slide 1

Slide 1 text

Continuous Delivery "Fuck It, Ship It!”

Slide 2

Slide 2 text

sipgate - 60+ Commiters - 10+ Teams - 50+ Software Systems - C, Java, Perl, PHP, HTML, CSS, JS - Debian - Scrum/Kanban

Slide 3

Slide 3 text

Terminology Continuous Integration vs. Continuous Delivery vs. Continuous Deployment

Slide 4

Slide 4 text

Continuous Integration http://blog.assembla.com/AssemblaBlog/tabid/12618/bid/92411/Continuous-Delivery-vs-Continuous-Deployment-vs-Continuous-Integration-Wait-huh.aspx https://puppetlabs.com/blog/continuous-delivery-vs-continuous-deployment-whats-diff

Slide 5

Slide 5 text

Continuous Delivery http://blog.assembla.com/AssemblaBlog/tabid/12618/bid/92411/Continuous-Delivery-vs-Continuous-Deployment-vs-Continuous-Integration-Wait-huh.aspx https://puppetlabs.com/blog/continuous-delivery-vs-continuous-deployment-whats-diff

Slide 6

Slide 6 text

Continuous Deployment http://blog.assembla.com/AssemblaBlog/tabid/12618/bid/92411/Continuous-Delivery-vs-Continuous-Deployment-vs-Continuous-Integration-Wait-huh.aspx https://puppetlabs.com/blog/continuous-delivery-vs-continuous-deployment-whats-diff

Slide 7

Slide 7 text

B(u)y The Book

Slide 8

Slide 8 text

Deployment Pipeline http://en.wikipedia.org/wiki/Continuous_delivery

Slide 9

Slide 9 text

Deployment Pipeline https://wiki.jenkins-ci.org/display/JENKINS/Delivery+Pipeline+Plugin

Slide 10

Slide 10 text

Tools Jenkins

Slide 11

Slide 11 text

Tools - Jenkins Debian Glue - http://jenkins-debian-glue.org/ - Jenkins Job Builder - http://ci.openstack.org/jenkins-job-builder/

Slide 12

Slide 12 text

The Big Picture 1. Commit 2. Hook to Jenkins 3. Clone from GitHub 4. Build Debian Package 5. Upload Debian Package 6. Trigger Update 7. Get Package from Mirror 1. 2. 3. 4. 5. 6. 7.

Slide 13

Slide 13 text

Deployment Pipeline

Slide 14

Slide 14 text

Build - Compilation - Dependency Managers - maven, cpanm, composer - Unit Tests - JUnit, Test::More, PHPUnit - Integration Tests - Sandbox

Slide 15

Slide 15 text

Deployment Pipeline

Slide 16

Slide 16 text

Deploy 1. Disable Monitoring 2. Disable Load Balancing 3. Shutdown Service 4. Update Debian Package 5. Start Service 6. Test Service 7. Enable Load Balancing 8. Enable Monitoring

Slide 17

Slide 17 text

Lessons Learned - Take your time - Good things take time - “WTF?” - Resist building workarounds - Fix the problem - Use the same name everywhere - Jenkins, Debian Package, HAProxy, Icinga

Slide 18

Slide 18 text

Questions?

Slide 19

Slide 19 text

lunch.sipgate.de Hungry?