DrupalCon Amsterdam 2019: How to utilize Open Source tools to create CI/CD & DevOps workflows

Aleksandr Tolstikov
Smile Open Source Solutions, Paris, France

There are lots of CI/CD tools available at the market and lots of new tools are appearing every day. How to avoid drowning in all these new tools, configurations formats, and technology?

The goal of this session is to share our experience in creating reusable workflows that are not dependable on particular CI/CD engine you use. It can be Jenkins, Gitlab CI, Codefresh, Drone, Github actions or literally any other tool available and you’ll just need to call your pipeline from it. It also can be called from your local PC (very useful to debug the actual workflow) and from Docker (or any other type of) containers.

The big advantage of this approach is the fact that you will be able to quickly switch between the different (and introduce new) CI/CD execution engines very quickly without any changes in the pipelines themselves. It will allow you to avoid the vendor lock-in and create future-proof workflows that could serve you for years.

The following concepts would be discussed:

1. General CI/CD concepts
2. 12-factor applications
3. Infrastructure as Code
4. Pipelines as Code
5. Immutable Infrastructure
6. GitOps
7. DevEx (Developer Experience)
8. Continuous testing

During the session I’ll show you how to create workflows for:

1. Creating Kubernetes clusters with Terraform
2. Install applications inside Kubernetes cluster
3. Executing Lighthouse frontend performance-testing jobs
4. Performing general performance-testing jobs with tools like k6, Taurus + jMeter, Allure, Vegeta, etc.
5. CI/CD processes with artifact build and delivery with Ansistrano
6. Different processes automation

Any other type of workflows (local tasks automation, scheduled jobs, etc) can be created using tools that will be shown during the session.

Everything will be based on the Open Source tools only.