Performance testing is a crucial process in ensuring platform reliability and balancing costs during traffic variability. The article discusses how the SSENSE platform team approached performance-related questions after migrating one of their core services to serverless.
The service subject to re-design was the pubsub communication between microservices, which is a foundational component of the platform supporting the Event-Driven Architecture. The team redesigned the legacy system that had a single point of failure and introduced a new endpoint with a simplified message flow, allowing for flexible infrastructure deployment on multiple accounts.
Before starting the optimization process, the team designed the workload and relied on historical data for design comparison. They created benchmark scripts to compare the system's performance, ensuring that AWS service quotas were aligned, and lambdas were optimized and configured to handle traffic bursts.
For the part of the solution that involved lambdas, the team used AWS Lambda Power Tuning to optimize memory and CPU, focusing on setting effective Horizontal Pod Autoscaling (HPA) policies. They estimated the required quotas for each AWS Service, opened AWS support tickets to increase quotas, and performed multiple performance tests. During the tests, they faced some challenges related to Kinesis throughput, but the performance tests helped them prevent a potential incident.
For the parts of the solution that did not involve lambda functions, the team relied on their traffic expectations and reviewed AWS documentation to determine the required quotas. They deemed that they were not going to exceed the default account quotas and decided not to perform performance testing. However, they emphasized the importance of stress testing the system to uncover potentially overlooked aspects and make sure the application reacts accordingly.
Tip: The team's experience emphasizes the importance of performance testing in ensuring platform reliability and balancing costs during traffic variability.
















