The problem

In a large cloud migration, a central platform team can easily become the bottleneck. Application teams need infrastructure. The platform team needs that infrastructure to follow standards. If every request needs a manual conversation, both teams slow down.

The architecture

Application team (needs Azure) → Self-service platform (templates, versioning) → Terraform modules (standard patterns) → GitHub Actions (CI/CD) → Azure resources (standards built in). Azure resources loops back to Application team: monitoring insights.

What I built

I created reusable Terraform modules and standardized Azure infrastructure patterns that application teams could use themselves.

I built a self-service cloud platform that let development teams provision Azure resources on their own, with the platform standards built in.

Around it: standardized development templates, CI/CD workflows with GitHub Actions, monitoring insights and automated versioning.

The real goal

The goal was not just to automate Terraform.

It was to turn the platform team from “We provision Azure for you” into “We give you a safe way to provision Azure yourself.”

The result

Application teams deploy Azure resources on their own, consistently, without waiting on the central cloud team.

Related articles