What now?
The ability to use the code to define the steps of a Continuous Deployment flow gives us more flexibility than we had before with Freestyle jobs. Docker Compose allowed us to run any type of tasks without the need to set up any special infrastructure. Anything can run as long as it is inside a container. Finally, Docker Swarm simplified the Deployment to production-like and production environments considerably. We only scratched the surface of using Jenkins Pipeline to automate our Continuous Deployment flow. There are quite a few improvements we could do. For example, we might use the Pipeline Shared Groovy Libraries Plugin (https://wiki.jenkins-ci.org/display/JENKINS/Pipeline+Shared+Groovy+Libraries+Plugin) and move steps, or even whole stages into functions and reduce code repetition. We could also create a Jenkinsfile (https://jenkins.io/doc/book/pipeline/jenkinsfile/) that would move the Pipeline definition from Jenkins into the service repository thus keeping everything related...