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:
At DNX Solutions, we work to bring a better cloud and application experience for digital-native companies in Australia. Our current focus areas are AWS, Well-Architected Solutions, Containers, ECS, Kubernetes, Continuous Integration/Continuous Delivery and Service Mesh. We are always hiring cloud engineers for our Sydney office, focusing on cloud-native concepts. Check our open-source projects at https://github.com/DNXLabs and follow us on Twitter, Linkedin or Facebook.
No spam - just releases, updates, and tech information.
Stay informed on the latest
insights and tech-updates