Introduction
Orchestration is the term we use, when we refer to automate lot of things at once. The most preferred orchestration platform seems to be Kubernetes.
Containerization help you to deploy and run application anywhere without requiring an entire Virtual Machine for each app. Application Containerization provides efficiency, consistency and version control.
Developing a containerized application is an ability to bring in the automation via DevOps CI (Build Pipeline) / CD (Release Pipeline) especially those leveraging Cloud Native services.
By leveraging Azure DevOps tools, it will automatically takes your updated code from a repository to the production environment running on AKS cluster with a minimal user intervention.
Azure Eco-System
The over-all setup includes the following Azure Services,
Azure Kubernetes Service, Azure Container Registry, Azure DevOps, Repos & Pipelines
Azure Kubernetes Service (AKS):
Azure Kubernetes Service is a fully managed Kubernetes container orchestration service. It is ideal for simplifying the deployment and management of applications based on microservices. A Kubernetes cluster contains a master node and set of worked nodes.
Azure Container Registry:
Azure container registry is a managed, private docker registry service based on the open source docker registry 2.0. It allows you to build, store and manage images for all type of container deployments.
Azure DevOps:
Azure DevOps provides developer services to support teams to plan work, collaborate on code development, and build and deploy applications. Azure DevOps includes: Azure pipeline, Azure Repo, Azure Artifacts, Azure Boards and Azure Test Plans.
Azure Repo:
It provides Git repositories or Team Foundation Version Control (TFVC) for source control of your code. Git in Azure Repos is standard Git. We can create public and private Git repositories.
Azure Pipeline:
Azure pipeline is a cloud service, that can be used to automatically build and test code projects. It combines continuous integration (CI) and continuous delivery (CD) to constantly and consistently test and build code and send it to any target.
Helm:
It simplifies and automates more of your application deployments in Kubernetes.
CI/CD flow to demonstrate how to deploy a simple application
Benefits of using this Eco-system
- By integrating AKS with other Azure services (i.e) ACR and Azure DevOps a complete DevOps solution can be provided for application development.
- It made easy for developers to apply updates to application, using containers.
- Simplified server management.
- Reduced complexity and self-healing.
- DevOps with containerization controls resources costing.
Key benefits of leveraging Azure AKS, ACR and DevOps
- Azure repo provides private git repositories for developers to use.
- AKS provides a framework to run distributed systems resiliently.
- DevOps tools simplifies and eliminate lot of intervention during application changes and deployments.
What you will gain by following this article
- Knowledge on deploying application on Kubernetes cluster and managing them.
- Orchestrating the entire application deployment by using Azure DevOps tool.
Who should use this?
This will be helpful for developers and operations team to understand how to migrate their application to Azure AKS and rollout the changes in application to deployment environment with minimal intervention using DevOps tools.
Next Steps:
Now that you have an idea on how quick and easy it is to automate the build and deploy application implementation on Azure. The Git repository instructions covers the detailed steps to deploy a simple application on your own.
Repository details:
https://github.com/1CloudHub/AzureTechDay
Conclusion
In this article, we showed how to deploy an application on AKS cluster and automate the deployment with Azure pipelines and Azure container registry.
Written by,
Geetha Pandiyan & Umashankar N
Cloud Solution Architect
1CloudHub