Microservices with AKS

Container Registry
Azure DevOps
Kubernetes Service
GitHub

Solution Idea

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

Use AKS to simplify the deployment and management of microservices-based architecture. AKS streamlines horizontal scaling, self-healing, load balancing, and secret management.

Architecture

Architecture Diagram Download an SVG of this architecture.

Data flow

  1. Developer uses an IDE, such as Visual Studio, to commit changes to GitHub.
  2. GitHub triggers a new build on Azure DevOps.
  3. Azure DevOps packages the microservices as containers and pushes them to the Azure Container Registry.
  4. Containers are deployed to the AKS cluster.
  5. Users access services via apps and a website.
  6. Azure Active Directory is used to secure access to the resources.
  7. Microservices use databases to store and retrieve information.
  8. Administrator accesses via a separate admin portal.

Components

  • Azure DevOps packages the microservices as containers.
  • Azure Kubernetes Service offers fully managed Kubernetes clusters for deployment, scaling, and management of containerized applications.
  • Azure Container Registry is a managed, private Docker registry service on Azure. Use Container Registry to store private Docker images, which are deployed to the cluster.
  • GitHub Enterprise provides a code-hosting platform that developers can use for collaborating on both open-source and inner-source projects.
  • Azure Pipelines Pipelines is part of Azure DevOps Services that is used to run automated builds, tests, and deployments. Every time code is changed in the code repository, Azure DevOps pipeline continuously builds container images, pushed to your Azure Container Registry, and the manifests are then deployed to your Azure Kubernetes Service cluster.
  • Azure Active Directory. When AKS is integrated with Azure Active Directory, it allows to use Azure AD users, groups, or service principals as subjects in Kubernetes RBAC to manage AKS resources securely.
  • Azure Database for MySQL is a fully managed MySQL Database service on Azure to store stateful data.
  • Azure SQL Database is a fully managed and intelligent relational database service built for the cloud. With SQL Database, you can create a highly available and high-performance data storage layer for modern cloud applications.
  • Azure Cosmos DB is a fully managed NoSQL database service for building and modernizing scalable, high performance applications.

Next steps

If you need a refresher in Kubernetes, complete the Azure Kubernetes Service Workshop, to deploy a multi-container application to Kubernetes on Azure Kubernetes Service (AKS).