03.2022 - 04.2023
Sumdog is an educational platform that provides online learning games for primary school children. With over 7,500 schools in the UK using their platform, Sumdog is committed to providing the best possible experience for its users. To achieve this goal, the company decided to refactor its Terraform code, migrate its data to Amazon RDS using the latest Graviton processors, and move its infrastructure to the European AWS region for compliance reasons. The project’s objective was to improve platform performance, ensure compliance with EU data protection regulations, enhance data security, reliability, and reduce costs.
Sumdog faced several challenges during the project. Firstly, the company had to upgrade its Terraform code to the latest version. This required significant changes to the existing code, which could potentially introduce errors and affect platform stability. Secondly, migrating data from EC2 to RDS was a complex task that necessitated careful planning and execution to ensure secure and lossless data transfer. Lastly, moving infrastructure to an EU region required coordination with multiple teams and a thorough understanding of European data protection regulations.
When Sumdog decided to collaborate with Devopsity (after our partner’s recommendation), our team began by creating a detailed project plan, including a schedule and a list of milestones. We also conducted a thorough analysis of the existing infrastructure to identify any potential issues.
The first and most challenging step was upgrading the Terraform code to the latest version. The challenges came mostly from the fact that a) it was attempted by various engineers and multiple times before, b) code base was showing a significant combination of Terraform versions and side tools like CloudFormation, Ansible and Packer being used. The Sumdog team didn’t have a specific plan for this process, but Devopsity worked closely with the developers to identify necessary code changes. Extensive testing was also conducted to ensure that the new code was stable and did not impact platform performance.
The next step was migrating data from EC2 to RDS using AWS DMS ( Data Migration Service). The team optimized the database settings to take advantage of the latest Graviton processors, which improved platform performance and reduced its cost.To ensure data security, AWS Database Migration Service (AWS DMS), a managed migration and replication service, was utilized for a homogeneous migration of data between the EC2 and RDS systems. This service facilitated a swift, secure transfer with minimal downtime and zero data loss.
The final step was moving the infrastructure to an EU account. This required coordination with multiple teams and a thorough understanding of EU data protection regulations. The team developed already existing Terraform and Dockerized applications to adapt it to be run within AWS native Elastic Container Service cluster. In the process we took special care to meet the goal of creating a fully automated deployment process with complete infrastructure-as-code coverage.
Ultimately, Devopsity established a custom automated backup solution allowing the client to take and restore both full and partial copies of the data. Created backup solution together with a complete IaC coverage would allow for a swift recovery from most of common Disaster Recovery scenarios without investing into more expensive multi-region solutions.
Through regular weekly meetings with key stakeholders from Devopsity and task planning, the project was completed on time. Sumdog achieved its goals while staying within the set deadline and budget. The most significant and measurable outcome of these efforts was the improvement in platform performance and faster delivery for the development team. In the process the team managed to significantly cut technical debt by mostly removing obsolete tools and technologies like Ansible and Packer and moving critical databases into managed and easily maintainable AWS RDS service. While doing so, a secondary goal of reducing overall hosting spending has been achieved with significant results. The use of Terraform and Docker to create infrastructure as code streamlined the deployment process, minimized human errors, and ensured consistency across environments. Leveraging Terraform, Docker, and AWS services such as ECS, RDS, DMS, Lambda, Batch, and S3 simplified the migration process, automated tasks, and improved overall platform reliability. This approach also facilitated infrastructure management for Sumdog, while the backup system configuration provided a sense of security.