Goals
Build, tests, package and deploy applications with build servers.
Application’s components are built and deploy thanks to a dedicated pipeline :
-
Continuous integration pipeline
It is responsible to quickly validate developments commits by building and executing the first level of unit tests.
-
Continuous deployment pipeline
It is responsible to deploy application component to its execution platform
Delivery an application to its execution environment has also to tackle some concerns that developers don’t have on their own development environment :
- Apply different configuration according the execution environment
- Manage secrets
- Host services behind a reverse proxy
Prerequisites
- ✅ ACR deployed
- ✅ AKS deployed
- ✅ Azure Devops Services account
Requirements
Development team requirements
- Git Repository : one mono repository for all services
- Branching strategy : Microsoft release flow
- Build : each service has its own build and delivery process
- Container image : container image can be updated without rebuild servie
Sources
- https://learn.microsoft.com/en-us/azure/architecture/microservices/ci-cd-kubernetes
- https://learn.microsoft.com/en-us/azure/architecture/solution-ideas/articles/dev-test-microservice
- https://learn.microsoft.com/en-us/devops/develop/how-microsoft-develops-devops?source=recommendations
https://learn.microsoft.com/en-us/azure/devops/pipelines/build/variables?view=azure-devops&tabs=yaml#system-variables-devops-services
https://andrewlock.net/deploying-asp-net-core-applications-to-kubernetes-part-8-running-database-migrations-using-jobs-and-init-containers/
https://github.com/GitTools/actions/blob/main/docs/examples/azure/gitversion/execute/usage-examples.md https://gitversion.net/docs/usage/cli/installation dotnet tool install –global GitVersion.Tool –version 5.*
https://github.com/gbaeke/go-template/tree/main/azdo
https://github.com/twendt/release-flow-version