Building a Software Delivery Pipeline

During this lab we will synthesise all the knowledge from the previous labs to build a unified and reactive software delivery pipeline and a monitoring suite. We will be focusing on the big picture of architecting and running your system in a Cloud-native way.

Full agenda:

Components of a software delivery pipeline

We’ll start by covering the basic components of a modern CI/CD system and how they communicate with each other to automate your processes.

Implementing a CI/CD system

Once we’re familiar with the concepts, we’ll be automating the delivery of our ecommerce system, going through the process of containerising your application, using image registries and delivery of the software upon updates.

Triggering events

Kubernetes supports several mechanisms to trigger actions deliberately. These mechanisms are useful for things like database migrations, regular backups etc. We’ll be implementing them in our reference system to continue automation of our pipeline.

Building a monitoring pipeline

After our system is deployed, we’ll be implementing a real monitoring suite that aggregates all the logs of the system and allows real-time inspection of various metrics, to ensure visibility into our cluster.

Automatic software updates and rollbacks

Finally, we’ll introduce gradual updates of our system through a technique called blue/green deployments. This allows us to test new features out in a controlled manner, without impacting the whole system.