Cloud Application Architecture Design: Scaling the application

Cloud Application Architecture Design: Scaling the application

One of the primary advantage of applications running on cloud is elastic scaling. It is the ability of application to determine, create events or generate metrics that indicate requirement of additional capacity and the ability of infrastructure provider or cloud underneath to understand & provide additional capacity as required. To fulfil this requirement, the application design should support horizontal or vertical scaling. Following are some of recommendations of designing applications to scale out horizontally.

  • Stickiness or session affinity is one of the primary limitations to scaling out applications horizontally, so this is one of the first things that application design needs to incorporate for stateful applications.
  • Identify bottlenecks in the application lifecycle. Scaling out is not magical bullet to solve all application performance problems.
  • Decomposing applications into microservices or individually managed workloads helps organize requirement, administration and scalability based on predictable load.
  • Using managed services for asynchronous tasks or performance intensive tasks can offload some of the background or less immediate tasks administration and scalability is often managed by the service provider.
  • Using managed services also help using the built-in autoscaling features in applications that rely on them.
  • Aggressive scaling of critical workloads often helps to keep ahead of demand. Identifying these components and having different scaling policies generally helps in such scenarios.
  • The application design needs to gracefully handle both scale out and scale in requirements, as scale in generally removes operational resources and might lead to losing dependent data, performance impact and sometimes dangling resources.

Similar to horizontal scaling, some applications may need support for vertical scaling. This is also supported in most cloud providers. It almost works transparently for managed services but for compute instances such as virtual machines the downtime or unavailability of application need to documented.

For more updates to subscribe to the?Cloud Native Hero! Newsletter

LinkedIn?|?Twitter?|?GitHub?|?Blog?|?Medium

要查看或添加评论,请登录

社区洞察

其他会员也浏览了