Microservices with Azure Kubernetes Service(AKS) - Architecture
Azure Kubernetes Service is currently competing with both Amazon Elastic Kubernetes Service (EKS) and Google Kubernetes Engine (GKE). Use AKS to simplify the deployment and management of microservices-predicated architecture. AKS streamlines horizontal scaling, self-healing, load balancing, secret management.
- The developer uses IDE such as Eclipse, Visual Studio, etc... to commit changes to GitHub or any other repository
- GitHub triggers an incipient build on Azure DevOps
- Azure DevOps packages microservices as containers and pushes them to the Azure Container Registry
- Containers are deployed to the AKS cluster
- Users access services via mobile apps and website
- Azure Active Directory is utilized to secure access to the resources
- Microservices use databases to store and retrieve information
- Administrator accesses via a separate admin portal
Components - Quick overview
Azure Container Registry: A container image is engendered from the code in source control and is then pushed to an Azure Container Registry.
Azure Active Directory: Azure Active Directory (Azure AD) is Microsoft’s cloud-predicated identity and access management service, which avails our employees to sign in and access resources.
Azure Kubernetes Service: Azure Kubernetes Service (AKS) offers serverless Kubernetes, an integrated continuous integration and continuous distribution (CI/CD) experience, and enterprise-grade security and governance.
DevOps - Architecture
This scenario covers a DevOps pipeline for a Spring web application and database back end. The data permeates the scenario as follows:
- A developer makes changes to the Spring web application source code.
- The code change is committed to a source control repository, such as BitBucket.
- To commence the continuous integration (CI) process, a BitBucket webhook triggers a Jenkins project build.
- The Jenkins build job utilizes a dynamic build agent in Azure Kubernetes Service to perform a container build process.
- A container image is engendered from the code in source control and is then pushed to an Azure Container Registry.
- Through continuous deployment (CD), Jenkins deploys this updated container image to the Kubernetes cluster.
- The Spring web application uses Azure SQL as its back end. Both Azure SQL DB and Azure Kubernetes Service report metrics to Azure Monitor.
- A Grafana instance provides visual dashboards of the application performance predicated on the data from Azure Monitor.
- Heroku Cloud+Spring Boot - How to deploy your first application on the Heroku cloud?Cloud solution for startups and small businesses.