Building IoT platformPrimustech, 2026 · Case study
One VM to a GKE platform
Moved a live building-operations platform off a single Docker Compose VM and onto Kubernetes.
- before: one Docker Compose host, one failure domain
- 1 VM
- Kafka brokers, beside Cloud SQL, EMQX and Redis
- 3
- restore drill passed before deletion protection went on
- 1
A small working model of the real system. Press the buttons.
One VM, Docker Compose, one in-memory queue
One failure domain, deployed by hand, and a queue that could not be shared.
The problem
The IoT platform behind the company's facility-management product ran on one Docker Compose VM: one failure domain, hand-run deploys and no autoscaling.
What I did
- 1
Split it into GKE microservices: a three-broker Kafka cluster, Cloud SQL PostgreSQL, EMQX MQTT and Redis.
- 2
Provisioned everything with Terraform, behind Cloud Armor WAF and Google-managed TLS, with pod and node autoscaling.
- 3
Migrated the production database, cut the public domain over, then turned on deletion protection and passed a restore drill.
The platform now runs on autoscaling GKE with a WAF in front, and every change goes through code review.
Stack
- GKE
- Terraform
- Kafka
- Cloud SQL
- EMQX
- Redis
- Cloud Armor