To keep software changeable and deliverable in short cycles, more and more companies are breaking down their software systems into small microservices. Once you’ve decomposed your software into microservices, you end up with multiple deployment artifacts, which makes deploying the overall system more complex. To master this complexity, using infrastructure automation tools becomes unavoidable.

That’s why we’ll look at a microservice architecture example to see how deployment pipelines can be built with various Docker-based tools, such as Kubernetes and Vamp, and how a distributed system can be operated highly available and stress-free.

Slides:
slides/11_ljugm/

Source code:
https://github.com/zutherb/AppStash/

Retrospective (2026)

Reading this back now, the core instinct was right even if the tooling aged fast — Vamp never became the industry standard, and Kubernetes swallowed most of what it tried to do. What stuck is the principle: decomposed systems need automated, repeatable deployment pipelines, or the complexity eats you alive. These days I see the same pattern one layer up, orchestrating fleets of AI agents instead of microservices — the hard problem is still how you deploy, version, and roll back many small autonomous units without babysitting each one by hand. If I were redoing this talk today, I’d swap Docker/Kubernetes/Vamp for agent orchestration frameworks, but the slide on “why infrastructure automation is non-negotiable” would stay nearly unchanged.