Jenkins is the way to automate the world

Pipe Inception

Submitted By Jenkins User Sebastien Sirtoli
Using Jenkins to bring new app-based features to residents, commuters, and tourists relying on public transport in Brussels.
Organization: Public transportation agency based in Brussels, Belgium
Industries: Transportation
Programming Languages: Python
Version Control Systems: Bitbucket Server
Community Support: Jenkins.io websites & blogs, Networking at Jenkins event

Deploying timetables, station, and local stop info, and track services in realtime using CI/CD & Jenkins.

Background: For this deployment, we have multiple back offices to manage, with various versions of the framework and various deploy details. So each plan of deployment is unique. 

Goals: The main goal here is to decrease the time it takes to deploy new features in our software.

"Personally I analyze a lot, a lot, a lot of CI/CD tools, and Jenkins is the most complete — by the community and by stability. I love the possibility to create everything as code. Code is the way!"
image— Sebastien Sirtoli, DevOps Engineer

Solution & Results: The first step was to make each deploy job. Like this, each job can be deployed one by one. Afterward, we create a pipeline to run the plan in parallel. After we create the first deploy pipeline, we create a second to deploy to a different back office. And finally, we create a pipeline to run the other pipeline. Just like that, we create a deployment train in inception mode.

We used key capabilities like pipelines, Docker plugins, and Jenkins agents to get the following results:

  • Time to deploy reduced from three hours to just 50 minutes

  • Overall, fewer mistakes and less human error 

  • Just one step to a CD deployment