Continuous delivery with open source tools

69 %
31 %
Information about Continuous delivery with open source tools

Published on March 2, 2014

Author: Sebobo



These slides are about my personal experience from creating a continuous delivery process in the last 2 years.

The main focus lies in the tools I used and my experience with them.

Continuous delivery with open source tools presented by Sebastian Helzle

Who am I? • Web developer since Geocities went popular (~1997) • Living in Karlsruhe, Germany since 2004 • Freelancer since 2007 and first TYPO3 project • Javascript enthusiast since 2008 • DevOps architect since 2012 • TYPO3 Neos core developer since 2013 • First time in Asia two weeks ago • Cook, hiker, reader, traveler, gamer for a long time

Overview • Motivation for continuous delivery • Steps in the delivery pipeline and • What each step means • The tools I use in each step • Tools for keeping the delivery environment running • Summary

Motivation • Deliver features, changes, fixes fast and reproducible • Everyone should be able to do it • Maintainable architecture • Create value for your customer

The delivery pipeline

Agile teams Code repository Feedback & Monitoring Automated builds Automatic tests Deployment Approval Production Reporting

Agile teams

Code repository • Centralized source code management • For reviewing and checking what’s going on in your codebase • My tool: Git & Gitlab! • Your private Github • Big community • Easy to setup and maintain • Supports teams

Continuous integration Server • Manages the whole CI process • My tool: Jenkins • Centralized application for running 
 all tasks in the process 
 (after commit) • Very customizable • Can run in a distributed environment • Has lots of plugins available
 including Chuck Norris plugin

Automated builds • Run after each commit • Report to the team if there are 
 problems • Give every build a unique ID which is traceable throughout the pipeline to production

Automated Tests • Assure the quality of your codebase • Will be triggered for every build • Provides reporting on code quality and other metrics • Some tests can also be run as monitoring for the production system • Promote builds which pass the tests • Inform the team when a tests fails and show the overall quality 
 over a timespan • My tools: • Selenium(2)! • PHPUnit, JUnit, PyUnit, QUnit, etc…

Deployment • Requires no manual steps (if possible) • Only deploy promoted builds • Promote builds on success • Configurations should be • in version control • easy to setup • Should be reproducible by everyone in your company • Requires good reporting, because errors will happen!

My primary deployment tool:
 TYPO3 Surf • Distributed as TYPO3 Flow package • Can be part of the project itself • PHP-based configuration (not necessarily a good thing) • Code is readable and can be extended easily • Rollbacks when any error happens while deploying • Keeps revisions on the target system • Deployment via rsync, packaging, Git • Run customized tasks at every deployment step • Alternatives: • Fabric - Python based tool for deployment and remote administration tasks

Approval • Smoke tests • My tools • Selenium(2)! • Curl & grep! • JMeter (Performance)

Tools for keeping the delivery environment running

Maintaining the pipeline • Use tools which can automate the setup of each step in the pipeline • • Install the applications • Configure the system environment • • Provision the (virtual) machines Create basic configurations for projects My tool: Chef! • Write cookbooks and recipes in ruby for 
 setting up reproducible environments • Large community & good support • Lots of free cookbooks you can use

Simulate the the pipeline • Try out new tools & updates • Check if the tools work together • Simulate deliveries • Break things and try again • My tool: Vagrant! • Check out the talk by Michael Knoll (Saturday):
 „Reproducible and portable work environments with Vagrant & Chef“

Summary • We want continuous delivery because • We know what we are delivering • We can deliver it fast • We can tackle the steps which create headaches • It reduces stress -> we have a better life

Problems you will face • The tools I presented aren’t trivial • • First steps will be hard -> don’t give up! Motivate your people to play around with the systems • • • Best learning effect from my experience Spreads the knowledge in your company Making your customer invest in the improvements of your pipeline

Links • - Gitlab • - Selenium • - Jenkins • - Chef • - Fabric • - QUnit • - PHPUnit • - Vagrant

Contacting me • Twitter: @sebobo • By mail: • Skype: sebobo • Github:

Thank you! ! Any questions left?

Add a comment

Related presentations

Presentación que realice en el Evento Nacional de Gobierno Abierto, realizado los ...

In this presentation we will describe our experience developing with a highly dyna...

Presentation to the LITA Forum 7th November 2014 Albuquerque, NM

Un recorrido por los cambios que nos generará el wearabletech en el futuro

Um paralelo entre as novidades & mercado em Wearable Computing e Tecnologias Assis...

Microsoft finally joins the smartwatch and fitness tracker game by introducing the...

Related pages

GoCD - Open Source Continuous Delivery Server | GoCD

Simplify Continuous Delivery. Open source continuous delivery server to model and visualize complex workflows with ease Download Now.
Read more

Continuous Delivery | ThoughtWorks

Continuous Delivery ... Since then it has spawned a wide market of development tools ... made its way to many delivery teams by way of open source ...
Read more

Continuous Delivery Pipelines: GoCD vs Jenkins - HighOps

Continuous Delivery ... their Continuous Delivery tool GoCD, now Open Source!. ... concepts central to Continuous Delivery regardless of tools. ...
Read more

Continuous Delivery Using Build Pipelines with Jenkins and Ant

Continuous Delivery Using ... Introducing the Tools. Thankfully, implementing continuous delivery doesn ... Jenkins is an open-source Continuous ...
Read more

6 open source continuous integration tools |

6 open source continuous integration tools. ... Another interesting addition is the ability to visualize the entire continuous delivery workflow ...
Read more

How to Keep Using Your Favorite Open Source Tools in the ...

How to Keep Using Your Favorite Open Source Tools in the Continuous Delivery Era. ... All the above named open source tools were created in the days when ...
Read more

Kontinuierliche Integration – Wikipedia

... englisch continuous integration) ... (Continuous Delivery) ... CABIE – eine in Perl geschriebene Open-Source-Erstellungs- und Integrationsumgebung, ...
Read more

ThoughtWorks Announces Go Continuous Delivery Platform Now ...

ThoughtWorks Announces Go Continuous Delivery ... Apache 2.0 open source license. Go enables continuous ... our continuous delivery ...
Read more

CI/CD for documentation in OpenStack |

CI/CD for documentation in OpenStack. ... Anne Gentle - Anne Gentle works in open source projects with the ... Continuous integration and delivery for ...
Read more