What is high-load application architecture on AKS?

Imagine we have a popular e-Commerce application that needs to survive Black Friday.

The application architecture should be based on the following components:

  • Azure Kubernetes Services (AKS) with the Kubernetes Cluster Autoscaler is used as the main distributed environment and mechanism to scale compute power under load.

  • Istio’s service mesh improves cluster observability, traffic management, and load balancing.

  • As a central logging system, Azure Log Analytics and Azure Portal Dashboards are used.

E-Commerce Application Architecture Example

The figure above shows that the AKS cluster contains nodes represented as virtual machines under the hood. The Autoscaler is the main component here. It scales up the node count when the cluster is under high load. It also scales the node down to a standard size when the cluster is under normal load.

Istio provides the data plane and control plane, assisting with the following:

  • Load balancing

  • TLS termination

  • Service discovery

  • Health checks

  • Identity and access management

  • Configuration management

  • Monitoring, logs, and traffic control

Please note that the architecture includes the Dev, Test, Staging, and Production stages. The formula for the highly available Kubernetes cluster is having separate clusters per stage. However, for Dev and Test, we can use a single cluster separated by namespaces to reduce infrastructure costs.

We use Azure Log Analytics agents and the Portal to create a dashboard for additional logging reinforcement. Istio contains a lot of existing metrics, including those for performance and options to customize them. We can then integrate it with a Grafana dashboard.

Lastly, you can also set up a load test using Istio.

Please check out the following shots for more information regarding this topic:

Free Resources

Attributions:
  1. undefined by undefined
Copyright ©2024 Educative, Inc. All rights reserved