Container CI/CD using Jenkins and Kubernetes on Azure Kubernetes Service (AKS)

Solution Idea

If you'd like to see us expand this article with more information (implementation details, pricing guidance, code examples, etc), let us know with GitHub Feedback!

Containers make it easy for you to continuously build and deploy applications. By orchestrating the deployment of those containers using Azure Kubernetes Service (AKS), you can achieve replicable, manageable clusters of containers.

By setting up a continuous build to produce your container images and orchestration, you can increase the speed and reliability of your deployment.

Architecture

1 2 3 4 5 6 7 7 8

Change application source code.

Commit code to GitHub.

Continuous Integration Trigger to Jenkins.

Jenkins triggers a build job using Azure Kubernetes Service (AKS) for a dynamic build agent.

Jenkins builds and pushes Docker container to Azure Container Registry.

Jenkins deploys your new containerized app to Kubernetes on Azure.

Container Service (AKS), backed by Azure Cosmos DB.

Grafana displays visualization of infrastructure and application metrics via Azure Monitor.

Monitor application and make improvements.

Data Flow

  1. Change application source code.
  2. Commit code to GitHub.
  3. Continuous Integration Trigger to Jenkins.
  4. Jenkins triggers a build job using Azure Kubernetes Service (AKS) for a dynamic build agent.
  5. Jenkins builds and pushes Docker container to Azure Container Registry.
  6. Jenkins deploys your new containerized app to Kubernetes on Azure.
  7. Container Service (AKS), backed by Azure Cosmos DB.
  8. Grafana displays visualization of infrastructure and application metrics via Azure Monitor.
  9. Monitor application and make improvements.

Components

Next Steps

Deploy to Azure