Generate JMX files for load testing on each service.
Test Kubernetes single node cluster locally using Minikube.
Execute test plans on Jetstream Exosphere instances by incrementally increasing load
Verify load balancing for each deployment.
Manually stop specific instances to simulate pod failures and to demonstrate high availability.
Create a report summarizing the results of all performance tests.
Testing Criteria:
Load Testing
Design the load test plan -
Hardware resource usage estimation
Number of users
Expected throughput at each microservice
Estimated usage of resources
Spike Testing
Determine your system’s capacity limits. At what load do you get significant failure rates? Make plots. Can you explain this behavior?
Be dissatisfied with your capacity results. Propose and implement improvements that demonstrate increased capacity.
Increase your service instances from 3 per service to 5 instances per service, and repeat the above two measurements for throughput and for failure rates. What do you observe? Can you explain this behavior?
Load Testing Analysis
Using a tool such as JMeter, test your system under load and demonstrate that the load is balanced across each service instance.
By incrementally increasing load, measure the throughput of your system. How many requests can you process per second? Make plots. Can you explain the behavior that you see? Can you take steps to improve your throughput?
Fault Tolerance Analysis
Replicate your services (in their containers): you should have at least 3 copies of each service (Kubernetes will make this easy_
You should be able to demonstrate that your system continues to work even if specific service instances fail. You can demonstrate this by, for example, manually stopping a specific instance.
Optionally you can explore tools such as KubeMonkey (https://github.com/asobti/kube-monkey (Links to an external site.)) which is based on Netflix’s Simian Army - https://www.gremlin.com/chaos-monkey/the-simian-army/ (Links to an external site.)
Use a tool such as JMeter to demonstrate that your system continues to run even with injected failures.
What is the impact on performance, compared to your previous load tests?
System Performance Report
Generate a final report stating individual efforts and graphs of your system's performance.
Explain all the critical points in the graph.
State key decisions made with respect to scale and how it impacts user experience and client-side performance.
This will be the key document that we will be referring to for grading.
Action Items:
Testing Criteria:
Load Testing Design the load test plan -
Spike Testing Determine your system’s capacity limits. At what load do you get significant failure rates? Make plots. Can you explain this behavior? Be dissatisfied with your capacity results. Propose and implement improvements that demonstrate increased capacity. Increase your service instances from 3 per service to 5 instances per service, and repeat the above two measurements for throughput and for failure rates. What do you observe? Can you explain this behavior?
Load Testing Analysis Using a tool such as JMeter, test your system under load and demonstrate that the load is balanced across each service instance. By incrementally increasing load, measure the throughput of your system. How many requests can you process per second? Make plots. Can you explain the behavior that you see? Can you take steps to improve your throughput?
Fault Tolerance Analysis Replicate your services (in their containers): you should have at least 3 copies of each service (Kubernetes will make this easy_ You should be able to demonstrate that your system continues to work even if specific service instances fail. You can demonstrate this by, for example, manually stopping a specific instance. Optionally you can explore tools such as KubeMonkey (https://github.com/asobti/kube-monkey (Links to an external site.)) which is based on Netflix’s Simian Army - https://www.gremlin.com/chaos-monkey/the-simian-army/ (Links to an external site.) Use a tool such as JMeter to demonstrate that your system continues to run even with injected failures. What is the impact on performance, compared to your previous load tests?
System Performance Report Generate a final report stating individual efforts and graphs of your system's performance. Explain all the critical points in the graph. State key decisions made with respect to scale and how it impacts user experience and client-side performance. This will be the key document that we will be referring to for grading.