Michał Krzyżanowski

Cognifide/AutomatingGuy | Poland

BIO: An experienced QA Engineer believing in a holistic approach to the software development craft. Test automation specialist, trainer, and evangelist. Enthusiast of Continuous Delivery and DevOps. A QA Lead responsible for quality-related aspects throughout the project lifecycle, now also a consultant helping others with automating their work. He regularly searches how to improve even the good solutions. Embraces his love of discussing things as one of the DebatQA co-hosts. Speaker at various meetups and conferences. Part of the TestWarez 2018 programme committee. Blogger at automatingguy.com.

WORKSHOP: Becoming a plumber – designing and implementing the delivery pipeline as code

Session level: intermediate

Nowadays, various parts of the systems we develop are being described ‘as code’. Let’s learn how to design and implement in the same paradigm the process of developing the apps: the delivery pipeline!

We want to deliver software quickly and in a stable way, thus approaches like Continuous Delivery become more and more popular. A crucial part in this plays the delivery pipeline – the process that describes how we build, release and test our application. Nowadays, almost all parts of the systems we build are defined as code, including the underlying infrastructure and its configuration. The same can be done for our delivery pipelines – we can describe what happens from the moment the developers push their work to the repository, to making it available for our users on production. This way, we end up with a direct and concrete implementation of our process, which in return, like a regular software, can be tested – an activity testers are familiar with. During the workshop, we will take an example application and design and implement all stages of its delivery pipeline using tools like Docker, Jenkins and Jenkins Pipelines… and real pipes! The exercises will help you understand the whole process of delivery from a more technical point of view and in the end give you more insight in the way you do the same within your project/team. Basic knowledge about Docker is recommended.

Takeaways

  • Learn about different stages of a delivery pipeline like building, testing, deploying and releasing
  • Learn how to use one of the most popular CI/CD systems and its pipeline-as-code features: Jenkins and Jenkins Pipelines
  • Learn about potential problems and various aspects to look out for when designing your delivery pipelines.