Solution ideas
This article is a solution idea. If you'd like us to expand the content with more information, such as potential use cases, alternative services, implementation considerations, or pricing guidance, let us know by providing GitHub feedback.
DevOps and Kubernetes are better together. By implementing secure DevOps together with Kubernetes on Azure, you can achieve the balance between speed and security and deliver code faster, at scale.
Potential use cases
Put guardrails around the development processes, by using CI/CD with dynamic policy controls, and then accelerate your feedback loop with constant monitoring. Use Azure Pipelines to deliver fast, while ensuring the enforcement of critical policies, with Azure Policy. Azure provides you real-time observability for your build and release pipelines, and the ability to apply a compliance audit and reconfigurations easily.
Architecture
Download a Visio file of this architecture.
Dataflow
- Developers rapidly iterate, test, and debug different parts of an application together, in the same Kubernetes cluster.
- Code is merged into a GitHub repository, after which automated builds and tests are run by Azure Pipelines.
- Release pipeline automatically executes a pre-defined deployment strategy, with each code change.
- Kubernetes clusters are provisioned, by using tools like Helm charts that define the desired state of app resources and configurations.
- Container image is pushed to Azure Container Registry.
- Cluster operators define policies in Azure Policy, to govern deployments to the AKS cluster.
- Azure Policy audits requests from the pipeline, at the AKS control-plane level.
- App telemetry, container health monitoring, and real-time log analytics are obtained using Azure Monitor.
- Insights are used to address issues and are fed into next sprint plans.
Components
- GitHub Enterprise hosts the source code, where developers can collaborate within your organization and the open-source communities. GitHub Enterprise offers advanced security features to identify vulnerabilities in the code you write and in open-source dependencies
- Azure Pipelines is a service that provides Continuous Integration and Continuous Delivery jobs, to build and release your application automatically.
- Azure Container Registry hosts your Docker container images. This service includes container image scanning with the integration with Microsoft Defender for Cloud.
- Azure Kubernetes Service offers a Kubernetes cluster that is fully managed by Azure, to ensure availability and security of your infrastructure.
- Azure Policy lets you create, assign, and manage policies. These policies enforce different rules and effects over your resources, so those resources stay compliant with your corporate standards and service level agreements. It integrates with Azure Kubernetes Service too.
- Azure Monitor lets you get insights on the availability and performance of your application and infrastructure. It also gives you access to signals to monitor your solution's health and spot abnormal activity early.
Contributors
This article is maintained by Microsoft. It was originally written by the following contributors.
Principal author:
- Uthappa Kattera Chengappa | Principal Cloud Solution Architect
Next steps
- To learn about hosting Microservices on AKS, see Microservices architecture on Azure Kubernetes Service (AKS).
- To see the AKS product roadmap, see Azure Kubernetes Service Roadmap on GitHub.
Related resources
- If you need a refresher in Kubernetes, complete the Introduction to Kubernetes on Azure learning path.
- See Build and deploy to Azure Kubernetes Service.
See the related architectures: