The easy lazy way to production

Who am I?

Carlos PHP developer

  • 6 year experience in PHP
  • 2 year experience Symfony 3 & Drupal 8
  • 1 year experience Docker & Concourse CI



Where do I work?

Comic Relief is a major charity in the UK.
We've raised over £1 billion since we started 1985 and organize two main campaigns: Red nose day & Sport relief.


Peak visitors per day: 273,117


Lazy Developer

Hire a lazy developer to do a difficult job because he will find an easy way to do it

Bill Gates


  • Scare of deployments to production
  • Spend a whole day deploying
  • Check that production is not broken


In software, when something is painful, the way to reduce the pain is to do it more frequently, not less

David Farley, Continuous Delivery: Reliable Software Releases through build, test and deployment automation.


  • Developers focus only to produce good code/test
  • Fast delivery to production
  • Instant feedback
  • Regular updates of the tool
  • Snapshots/backups, reports, etc.. automatically
  • Newcomers commit to production the first day
  • Do nothing

Jenkins fight!

  • Jenkins servers are extremely resistant to being declaratively configured

  • It has no first class support for pipelines (You need plugins)

  • It needs you to scouring the earth for a still-maintained plugin to accomplish your goals

  • Trying to find the build output log for a failed build in Jenkins are a bit hidden


  • It’s the CLI of concourse CI.
  • This tool allow you to login in your account in order to create teams, create, update or delete your pipelines and more options.

Task - Theory

  • A task is the smallest configurable unit in the pipeline … usually they execute a script and they return if it succeeded or failed.

  • They may have an input, that could be anything and is defined in the resource section. The input is fetched before of the execution of the script.

  • Additionally they may have an output too, this one is similar to input but is executed after the script finish and usually updates a resource.

Tasks - Code

Jobs - Tasks

Tasks - input/output

Jobs - Theory

  • They are the main thing you see in the pipeline.
  • They may have more than one resource but only one task, they can be linked, run in serial or parallel (default).

Jobs - Code

Resources - Theory

  • It is the object that is going to be used by a job.
  • There are several types of resource, some of them are official, others supported by the community and you can create your own custom one.
  • Another important thing is resources can trigger a job, so for instance if there is a new commit in your master branch and your resource is getting that branch it will trigger the job automatically.

Resources - Code

Resource types - Code

Groups / Tabs

Recorded demo

Microservices pipeline

That's all folks!

  • Questions?

Special Thanks:

Clare, Peter and Ayan

The lazy way to production

By Carlos Jimenez (Saphyel)

The lazy way to production

Drupal summer 2017 slides

  • 1,471