Deploying microservices: the path from laptop to production
deployment pipeline deployment testing GitOps kubernetesThis is a talk that I gave at JFokus 2024.
Abstract
Organizations usually adopt the microservice architecture to enable the rapid frequent and reliable delivery of changes to a large, complex application. When microservices are used in conjunction with continuous delivery, a stream of small changes flows from development into production, ideally as often as at least one commit per developer day. To support such rapid a rapid pace of development, it’s essential that each service has an automated deployment pipeline that can quickly build and test the service and then safely deploy it into production.
In this talk, I will describe how to create a modern deployment pipeline that deploys microservices to Kubernetes, using a Spring Boot application as an example. You will learn about how to write fast yet effective tests for microservices including contract tests that enable services to be tested in isolation, and integration test that use the testcontainers library to run infrastructure services. I’ll describe how to deploy services using Flux CD, which is an open-source GitOps tool that ensures that the actual state of a Kubernetes matches the desired state defined in a Git repository. You will also learn about how to minimize the risk of changes by performing canary deployments using Flagger, which is an open-source tool for automated releases.