App Modernization, DevOps

Waterco: Moving from Heroku to AWS without adding infrastructure operations

Waterco

About Waterco — Poolware

Established in 1981, Waterco is a global brand reputed for designing and manufacturing filtration and sanitisation systems.  Waterco’s products are widely used in swimming pools, spas, aquacultures, and the water purification industry.  Their products are used for residential, commercial, and industrial applications across over 40 countries.

One of Waterco’s applications is Poolware, a proprietary software which analyses, calculates, and diagnoses both the chemical interactions and current water conditions.

The Business Challenge

After about two decades operating the Poolware in a desktop format, Waterco was ready to improve its user experience offerings, providing users convenient access to Poolware across multiple smart devices.  Instead of purchasing or licensing existing cloud-based solutions, Waterco developed its own independently, uploading it into the cloud in 2018.

From the beginning, Heroku was the go-to solution stemming from their developer experience (DX) and for reducing infrastructure operations overheads.  Having used Heroku for a few years, Waterco believes it is necessitous to improve the efficacy of resource-usage, without increasing infrastructural operations, being able to grow more dynamically, remaining light on infrastructure operations, and having more control in the long-run.  However, Heroku was limiting Waterco’s ability to achieve it.  

DNX Solutions was tasked by Waterco to satisfy and achieve their main business objectives.  One key decision was to transition from Heroku to AWS.  With AWS, Waterco’s primary goals could be easily achieved with an elastic and cost-effective architecture uploaded to the cloud.

The Solution

Prior to starting the project, DNX’s teams ran a thorough evaluation of Waterco’s requirements, and reviewed their incumbent delivery processes through DNX’s DevOps.  This approach provided adequate guidance to the team throughout the DevOps process.  The journey entailed building a robust foundation and the standardization and automation of certain processes.  This combination of technologies enables DNX solutions to produce applications efficiently and reliably.

The project started by deploying our DNX Well-Architected foundation, also called DNX.One.  The platform incorporates a robust and extremely secure cloud environment, is fully automated using Terraform, and handles most of the infrastructure operations leveraging a well-architected AWS implementation, including Docker containers.  

The plan for “Application Modernisation” proposes the movement of applications to ECS cluster in EC2 instances for better resource usage, vis-à-vis the operational model in Heroku titled “Dynos”.

Upon deployment of DNX.One, we modernised Poolware’s deployment design by moving it to Docker containers, bringing together both the existing automated tests and database migration scripts to its CI/CD pipeline.  

AWS Foundations:

Building a strong and solid foundation for Waterco’s applications was a critical first step prior to modernisation.  Using a multi-AZ strategy with ECS nodes running on spot instances, Waterco was able to run a Cluster of Docker Containers across availability zones and EC2 instances, while optimising cost.

Costs savings

Here’s a compute price comparison* of more or less similar instances and the cost per month:

  • AWS: t3.micro (1GiB) — $0.004 per hour ($2.88 per month)

  • Heroku (Dyno): standard-2x (1024MB) ($50.00 per month)

94.24% reduction

  • AWS: c5.2xlarge (16GiB) — $0.1382 per hour ($99.5 per month)

  • Dyno: performance-l (14GB) ($500.00 per month)

80.1% reduction

Application Modernisation

Poolware had previously adopted some of the 12-factor principles.  So, we applied additional cloud-native concepts to it during the modernisation phase, focused especially on building, releasing, and running. 

With better usage of the AWS resources, the developed application was able to benefit from improved operational excellence in AWS, and increased elasticity in the cloud.

Each environment in AWS was made identical to one another, varying only in EC2 instance types in each environment.  Differences include development, QA/Staging and finally production.  The same immutable application image was deployed and tested across these environments.  By adopting this approach, Waterco has improved its operational resilience, greatly reducing production incidents to zero through its self-healing platform.

CI/CD Pipeline

We used AWS EC2 instances to run complex CI/CD pipelines using spot instances, optimising steps such as database migration and automated tests running in parallel steps via Gitlab.  Hundreds of pipelines are triggered daily at minimal operational cost.  Moreover, this reduced the number of production incidents while increasing their current test capacity.

Some of the AWS Services provisioned:

  • AWS ECS
  • AWS Elastic File System (EFS)
  • System Manager
  • CloudTrail
  • Aurora Cluster
  • Cloud Watch
  • Code Deploy

Conclusion

From conception to its conclusion, the migration project of Heroku to AWS was completed in approximately one month.  The new Docker+AWS environment implementation allowed Waterco to achieve twice the performance and efficacy as compared to their previous Heroku environment.  Their production quality, and their ability to release more products frequently have increased.  Furthermore, developer and QA productivity has improved significantly.  Now, Waterco only needs to run half the number of servers, cutting the hosting bill by approximately 25%.

*prices comparison performed in 11/06/2020 sources:

https://www.heroku.com/pricing

https://aws.amazon.com/ec2/spot/pricing/

Na DNX Brasil, trabalhamos para entregar a melhor experiência em nuvem e aplicações para empresas nativas digitais.

Trabalhamos com foco total em soluções AWS, Well-Architected Solutions, Containers, ECS, Kubernetes, Integração Contínua/Entrega Contínua e Malha de Serviços.

Estamos sempre em busca de profissionais experientes em cloud computing para nosso time, focando em conceitos cloud-native.

Confira nossos projetos open-souce em https://github.com/DNXLabs e siga-nos no Twitter, Linkedin or YouTube.

Tenha informações das últimas previsões e atualizações tecnológicas

 

Sem spam - apenas novidades, atualizações e informações técnicas.

Artigos relacionados

close
Start typing to see posts you are looking for.
Sidebar Scroll To Top
Instagram YouTube linkedin