Terminology

  • High Availability and Scalability concept go hand-in-hand, depending on the context.

  • Application can handle greater loads by adapting.

  • There are two types of scalability.

    • Horizontal (elasticity)

    • Vertical

Vertical scalability

  • Increase the size of resource in a single node.

  • Typically this means increase memory, addition of storage and CPUs.

  • Useful for non-distributed systems.

  • Hardware limitation restricts the amount of scalability.

Horizontal scalability

  • AKA Scale-out/Scale-in depending on increase/decrease in the number of instances.

  • Increase the number of instances/systems for your application.

  • Useful for distributed system.

  • Achieved using Auto Scaling group and load balancer.

  • System that aims to ensure an agreed level of operational performance, usually uptime, for a higher than normal period.

  • This is achieved by having system run at atleast two data centers meaning Availability Zone.

  • Horizontal scaling leads to active high availability.

  • Achieved using Auto Scaling Group and Load balancer with multi-AZ enabled.

  • The process of distributing a set of tasks over a set of resources, with the aim of making their overall processing more efficient.

  • Load balancing can optimize the response time and avoid unevenly overloading some compute nodes while other compute nodes are left idle.

References

Last updated