OtherInfrastructure
Cloud migration and production DevOps support
We migrated three client products from fragile single-server setups to Terraform-managed AWS environments with CI/CD, autoscaling and alerting, cutting over with DNS switches so production traffic was never touched until tested. The team continues as on-call escalation, handling outages, cost tuning and security incidents.
Problem
All three products ran on fragile single-server deployments that crashed under load, could not be changed without downtime, and in one case had to move to a Canadian cloud region for data residency.
Solution
Working with a subcontracted DevOps partner under NDA, the team built new Terraform-managed environments on ECS behind load balancers with host-based routing, CI/CD pipelines to ECR, central configuration in SSM Parameter Store, managed certificates, autoscaling and Slack-integrated alerting, then cut production over with DNS switches. It also right-sized resources for cost, load-tested with k6, and handled security incidents and outages.
Key features
- Terraform-managed ECS services behind an ALB with host-based routing per subdomain
- GitHub Actions pipelines pushing images to ECR for back end, front end and portal
- Environment configuration centralised in SSM Parameter Store
- Production API migrated from Docker-on-EC2 to ECS Fargate with database migration
- Migration of a Django and React stack to a Canadian AWS region for data residency
- CloudWatch alarms routed to a Slack alerts channel
- k6 load testing and database bottleneck diagnosis
- Cost right-sizing and a documented pause and reactivation plan
- MQTT broker scaling design with a network load balancer
- Security response: firewall lockdown, SSH key cleanup, malware removal and blacklist recovery
Tech stack
- ACM
- ALB
- AWS
- Alertmanager
- Certbot
- CloudWatch
- Cloudflare
- Cloudflare Zero Trust
- DigitalOcean
- Django
- Docker
- DynamoDB
- EC2
- ECR
- ECS
- ElastiCache
- Fargate
- GitHub Actions
- GoDaddy
- Grafana
- Hetzner
- Let's Encrypt
- Loki
- MQTT
- MongoDB
- Mosquitto
- NLB
- Nginx
- Node.js
- PostgreSQL
- Prometheus
- RDS
- React
- Redis
- Route 53
- S3
- SNS
- SSM Parameter Store
- Secrets Manager
- Terraform
- TypeScript
- Vue
- WordPress
- cPanel
- k6
Services behind this project
Read more
- 22SEP
Cloud migration checklist for growing businesses
A practical cloud migration checklist for growing businesses: inventory, infrastructure as code, data moves, safe DNS cutover and monitoring before launch.
Engineering6 min read
- 18AUG
How we staff an engagement: engagement lead, project manager, technical lead
The people on a project matter as much as the stack. Here's how we size a team from a shared bench, with a named engagement lead, project manager and technical lead on every engagement.
Process3 min read