Back to writing

Platform engineering

How I think about building a cloud platform operating model

A cloud platform is not only a collection of Terraform modules, Kubernetes clusters, CI jobs, dashboards, and IAM policies. Those pieces matter, but the real product is the operating model around them. A good platform gives teams a clear way to build, deploy, observe, secure, and improve services without inventing a new process every time.

Start with ownership

The first question I ask is simple: who owns what when something breaks? If the answer is unclear, the platform will create confusion even when the tooling is modern. Service teams need ownership of their applications. Platform teams need ownership of the paved roads, shared controls, and infrastructure contracts. Security and finance need visibility without becoming manual approval bottlenecks.

Design paved roads, not cages

The best platform path should be the easiest path. That means reusable templates, clear module boundaries, documented environments, standard deployment flows, and observability that works by default. Teams should still be able to solve unusual problems, but the standard path should cover the common 80 percent with high confidence.

Make reliability visible

A platform operating model needs reliability signals. I look for service-level indicators, alert ownership, deployment health, incident review loops, and change failure visibility. Without this, teams often mistake silence for stability.

Include cost from the beginning

FinOps works best when cost is part of architecture, not a surprise at the end of the month. Tagging, budgets, autoscaling, right-sizing, and environment lifecycle rules should be visible in the platform contract.

Keep improving the contract

A platform is never finished. The operating model should include feedback from developers, production incidents, audit findings, cost reviews, and delivery bottlenecks. Every improvement should make the next service easier to launch and easier to operate.