Design for scalability

Description 

Systems should perform well, even in the face of rapidly-expanding demand. We can prepare for the future by designing systems to accommodate growth in usage over time - allowing for easy and economical scaling when demand rises. In general, horizontally-scaled solutions are better able to adapt to changes in load and provide better overall performance than vertically-scaled solutions. Similarly, modular solutions can provide more flexibility in scaling than monolithic architectures.

Components

Data

  • Expect the utilization of the data to grow over time

Infrastructure

  • The impact of decisions is multiplied when systems are scaled – be sure that they can be scaled up
  • Design for horizontal scaling

Services

  • Allow for incremental additions of capacity through independent systems
  • Test applications under predicted and exceptional loads

Support

  • Utilize end-to-end system monitoring, as well as resource measurements, to predict and prevent scaling limits