High Availability of Applications on Azure Cloud with Kubernetes

CloudThat Technologies​

CloudThat is a consulting and training company. CloudThat’s team of experts provide Cloud Engineering, Cloud Training, and Cloud Expert Line services for mid-market and enterprise clients around the world. With expertise in major cloud platforms including Amazon Web Services and Microsoft Azure, CloudThat is uniquely positioned to be the single technology source for organizations looking to utilize the flexibility and power cloud computing provides. CloudThat is an AWS Advanced Consulting Partner, Microsoft Gold Learning Partner, MongoDB Ready Partner, and Red Hat Certified Training Partner. CloudThat team of trainers have trained over 10,000 people on Cloud. CloudThat team has implemented cloud advisory and migration services for Fortune 500 companies to start-ups.

Problem Statement

The monolithic applications were needed to be migrated, containerized, and to be run on Azure cloud with high availability, scalability, security, cost-optimized, monitorable infrastructure with continuous integration and deployment in place by following best DevOps practices. To achieve these facilities, they are needing to focus on fault-tolerant HA (Highly Available) applications hosted on Azure Cloud.

Business Objectives

  1. Highly scalable solution for company portal websites
  2. Aims to simplify access throughout the organization
  3. Highly available website with low latency
  4. Deploying test preparation platform that supports 500 RPM
  5. Security and safety compliances to be achieved through Azure services

Technical Objectives

  1. Applications are needed to be deployed across multiple environments
  2. Network level separation of Infrastructure for each environment
  3. Designing highly available, scalable microservices infrastructure on Azure Kubernetes Service
  4. Designing database clustering system that supports horizontal scaling of MySQL
  5. Leverage DNS routing to resolve internet facing endpoints
  6. Implement CICD which supports hot fixes
  7. Implement Identity and access management, detective controls with incident response in place

Design Factors

  1. Terraform script is designed to perform deployment of the infrastructure for all the services via Azure Pipelines with secrets passed through Azure Key Vault
  2. Highly available, scalable, fault tolerant microservices are deployed on Azure Kubernetes Service (AKS) clusters across environments and Azure Application Gateway in place
  3. AKS cluster is set to autoscale to meet application demands with cluster autoscaler as Virtual Machine Scale Set
  4. Vitess is leveraged for providing database clustering system with horizontal scaling of MySQL for one of the test preparation platforms
  5. CI/CD Pipeline implementation is in place with Azure Pipelines ensuring faster deployments with approvals and security is taken care by Azure Key Vault securely storing and accessing secrets such as API keys, passwords, certificates, or cryptographic keys.
  6. Infrastructure and application monitoring are in place with Prometheus and Grafana. Alerting systems have email, Microsoft Teams channel

Services​

  1. Azure Kubernetes Service
  2. Vitess
  3. Prometheus
  4. Grafana
  5. Azure Database for MySQL
  6. Azure Virtual Network
  7. Azure Container Registry
  8. Azure Application Gateway
  9. Azure Pipelines
  10. Azure Key Vault
  11. Azure Files

Architecture Diagram and Designs

High availability of applications on azure cloud with KubernetesHigh availability of applications on azure cloud with Kubernetes

Outcome

  1. The multi environment set up for the company portal is deployed which satisfies the given organizational SLAs and internal process framework
  2. Best DevOps practices implementation which supports new feature releases seamlessly
  3. Fast, accurate and highly available, scalable test prep website for users
  4. Automated several WordPress stack deployments as microservices running on Azure Kubernetes Service

Lessons Learned​

  1. Successfully incorporated microservices with best DevOps practices in coordination with developer teams
  2. The K8s Migration occurred without any interruptions in the services
  3. The deployment of test preparation platform was a major success as candidates applying for certifications were able to access the library contents without any glitches
  4. Standard security KPIs achieved