Enhancing Development and QA Efficiency at Sova using AWS CloudFormation and AWS Fargate

Mysterious Code optimized Sova's development and QA processes by containerizing applications on AWS, achieving significant cost savings and 70% faster deployment times.

Sova Assessment Limited

AWS services used

  • AWS CloudFormation
  • Amazon ECS
  • AWS Fargate
  • AWS Cloud Map
  • Elastic Load Balancing
  • Amazon CloudFront

Sova faced a critical challenge in their development and quality assurance (QA) processes, hindered by limited test environments and escalating costs. Leveraging its expertise in AWS and an intimate understanding of Sova’s infrastructure, Mysterious Code devised a solution to streamline these processes while minimizing expenses. The solution involved containerizing Sova’s application and data layers, deployed via AWS CloudFormation on AWS Fargate. Each QA environment was dynamically provisioned as needed by the QA team, with 70% faster deployment times and achieving 95% cost savings compared to traditional test environments.

About Sova Assessment Limited

Sova is an assessment experience platform that streamlines how your organisation assesses talent. We help you hire and develop the best and most diverse talent, while saving time and cost, so you can deliver more for less.

Challenge

Sova faced a pressing issue: their fast-paced development and QA teams struggled with limited test environments, inhibiting their ability to develop and test multiple features concurrently. Expanding the test environment pool was a viable option but posed significant cost challenges, given the high fidelity required for each environment mirroring production. While crucial for end-to-end testing before release, this complexity was unnecessary for day-to-day development and quality assurance tasks.

Without a cost-effective solution for streamlined task-based development and QA, Sova risked stunted innovation and growth. Ongoing development was hampered by delayed QA results, exacerbating the slow feedback loop.

From a technical standpoint, the solution needed to:

  • Be easily deployable by the QA team, preferably with existing tools.
  • Allow developers access to the data layer for setup and debugging.
  • Enable rapid creation of numerous environments, each based on specific git branches.

Solution

Given Sova’s existing AWS deployment, leveraging the cloud was a natural choice. AWS offered the most cost-effective and robust solution, aligning with both business and development objectives. Mysterious Code’s expertise in Sova’s application and AWS infrastructure uniquely positioned us to tackle this challenge.

The solution involved containerizing Sova’s application along with its data layer, managed by various AWS services in production. By using containers, we were able to leverage AWS CloudFormation to deploy multiple ECS Services, running on AWS Fargate, fronted by an Application Load Balancer.

Architectural diagram - high level

Thanks to ALB listener host-header rules, each QA environment created was given its own subdomain that could be easily accessed by all team members. As environments were deployed dynamically behind a single load balancer, a unique solution was created to dynamically provide load balancer rule priority value. This was resolved by leveraging CloudFormation Custom Resource backed by AWS Lambda which finds the next available priority and returns it to be used by the CloudFormation stack.

For static resources, S3 buckets with CloudFront distributions were utilized. Each environment received its own directory within the bucket, simplifying asset management and deletion upon environment termination.

Architectural diagram - service discovery

For access to the data layer, AWS Cloud Map Private DNS Namespace was leveraged so that each ECS service created could be accessed by using a user-friendly DNS name, resolvable within the dedicated VPC. As developers could already access the AWS environments using a VPN, this meant they could now efficiently access each QA environment’s resources as needed. Cloud Map also allowed for easy communication between the application and data services within ECS.

Utilizing existing CI/CD tools, a streamlined pipeline empowered the QA team to deploy new CloudFormation stacks for QA environments effortlessly. Each environment, contained within a single stack, could be easily deleted when no longer needed.

Benefits

The implemented solution empowered Sova’s teams to test multiple features concurrently, boosting task completion rates. Deployment times were slashed by 70%, and thanks to integration with the team’s task management platform, the environment is automatically deleted when its task is marked as “Ready”, so no stale environments are left running. Each independent QA environment costs less than 5% of what each complete test environment would, which allows the business peace of mind and better control over overall expenses.

About Mysterious Code Ltd

Mysterious Code Ltd is an AWS Select Consulting Partner, specializing in cloud consulting for small and medium-sized businesses, empowering them to harness the capabilities of Amazon Web Services affordably. Our personalized approach prioritizes client needs, eschewing the rigid structures enforced by larger firms. Clients trust our expertise and bespoke support to optimise their cloud operations effectively.