WorkVu.City
Kubernetes the product teams can run
Product teams deploy to Kubernetes without another request to the central backend team.
- Terraform
- Clusters, DNS, databases, monitoring
- Istio
- Service mesh, configured on the clusters
A small backend group owned cloud, PostgreSQL, and the clusters. Every product team had to ask them for infrastructure. The requests were a queue, and a lot of the estate lived in unversioned bash and memory.
The problem
Product teams had little cloud experience, so infrastructure work piled up on a handful of backend engineers.
Changes were manual or scripted without version control. Shared systems drifted into a state nobody could reconstruct.
What we did
Shared infrastructure moved into Terraform: databases, Kubernetes clusters with Istio, DNS, and Datadog. Modules made an environment repeatable.
A module also cuts a namespace, service account, and permissions for each team, and injects connection strings and keys into that team's GitLab CI variables.
What changed
The backend team can see the estate in one place and still change it. Product teams deploy on the cluster with the configuration already in CI.
The backend engineers can support the Terraform themselves. Later work is splitting the config so it stays manageable as teams are added.