Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Continuous Delivery - Fuck it, Ship it!

Continuous Delivery - Fuck it, Ship it!

After many years of doing "make install" we felt the urge to build a continuous delivery system. After roundabout six month of hard work we reduced all the complexity to a single button.

Benjamin Kluck

March 25, 2015
Tweet

More Decks by Benjamin Kluck

Other Decks in Programming

Transcript

  1. sipgate - 60+ Commiters - 10+ Teams - 50+ Software

    Systems - C, Java, Perl, PHP, HTML, CSS, JS - Debian - Scrum/Kanban
  2. Tools - Jenkins Debian Glue - http://jenkins-debian-glue.org/ - Jenkins Job

    Builder - http://ci.openstack.org/jenkins-job-builder/
  3. 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.
  4. Build - Compilation - Dependency Managers - maven, cpanm, composer

    - Unit Tests - JUnit, Test::More, PHPUnit - Integration Tests - Sandbox
  5. 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
  6. 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