Skip to content
Li ZhenXi, home page
Building IoT platform

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

Core APIMessage queueCoordinationMQTT brokerPostgreSQL

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. 1

    Split it into GKE microservices: a three-broker Kafka cluster, Cloud SQL PostgreSQL, EMQX MQTT and Redis.

  2. 2

    Provisioned everything with Terraform, behind Cloud Armor WAF and Google-managed TLS, with pod and node autoscaling.

  3. 3

    Migrated the production database, cut the public domain over, then turned on deletion protection and passed a restore drill.

The result

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

Go deeper