Search for Well Architected Advice
< All Topics
Print

Test scaling and performance requirements

Validating the resilience of your workload is crucial to ensure it meets designed scaling and performance requirements. Load testing serves as a primary method to evaluate your system under stress, safeguarding against potential failure points during high-demand scenarios.

Best Practices

  • Load Testing: Conduct load testing to simulate expected peak traffic to assess how your system performs under load. Utilize tools like AWS Performance Testing or Apache JMeter to execute these tests, ensuring you can handle various traffic spikes and adjustments.
  • Monitor Resource Utilization: During load testing, monitor CPU, memory, and disk I/O to identify bottlenecks. Use AWS CloudWatch to visualize metrics in real-time, enabling you to optimize resource allocation and scalability before deploying to production.

Supporting Questions

  • Does your workload perform optimally under expected peak loads?
  • Have you tested your workload under simulated unexpected traffic spikes?

Roles and Responsibilities

  • DevOps Engineer: Responsible for implementing and managing load testing processes, ensuring the infrastructure can scale seamlessly during peak times.
  • Quality Assurance Engineer: Tasked with executing test cases that validate performance scaling metrics and documenting results to identify areas needing improvement.

Artifacts

  • Load Testing Report: Document detailing the results of load tests, including performance metrics, identified bottlenecks, and recommendations for improvements.
  • Performance Benchmarking: A baseline performance measurement that serves as a reference point for future load testing and should be updated regularly.

Cloud Services

AWS

  • AWS CloudWatch: Provides monitoring and observability of your AWS resources and applications. Utilize AWS CloudWatch to set alarms and visualize performance metrics during load tests.
  • AWS Lambda: Can be used to create load testing scripts that execute in a serverless manner, allowing you to test workloads flexibly without worrying about server management.

Question: How do you test reliability?
Pillar: Reliability (Code: REL)

Table of Contents