Case: SaaS Cloud backend automation
Starting point
The client developed hardware devices which came with a customer-facing SaaS management frontend. The backend was located in AWS Cloud. As they they had previously had bad experiences of poorly managed environments they decided to reach out to us for help automating their Cloud backend. The goal was to enable better scalability, quality and proper change management.
Project
When we arrived to the scene the Cloud backend was still in its early stages. As the first step we imported the existing, quite elaborate AWS configurations to Terraform to get them under configuration management. As the backend applications ran on EC2 instances we used Puppet to manage them. We also packaged the Cloud applications and placed them into package repositories.
After the initial Cloud backend setup and identical staging environment was built alongside the original production deployment. This, coupled with CI/CD, enabled developing the Cloud as a whole without affecting production at all. In production, releases were done more carefully with Ansible playbooks.
End result
At the end of the project the SaaS Cloud backend was fully managed by Terraform, Puppet and Ansible and split into production and staging environments. The stability of the Cloud in general has been very high and maintenance overhead very low.
Follow-up
We are constantly developing the Cloud backend further. A lot of emphasis nowadays is put on observability, metrics, alerting and event-driven workflows.
Main technologies
- AWS
- OpenTofu (Terraform)
- Ansible
- Prometheus
- Grafana