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.

3a15b4f5e737fed2ecab7b16c84aff1b?s=128

Benjamin Kluck

March 25, 2015
Tweet

Transcript

  1. 2.

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

    Systems - C, Java, Perl, PHP, HTML, CSS, JS - Debian - Scrum/Kanban
  2. 11.

    Tools - Jenkins Debian Glue - http://jenkins-debian-glue.org/ - Jenkins Job

    Builder - http://ci.openstack.org/jenkins-job-builder/
  3. 12.

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

    Build - Compilation - Dependency Managers - maven, cpanm, composer

    - Unit Tests - JUnit, Test::More, PHPUnit - Integration Tests - Sandbox
  5. 16.

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

    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