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