Written by

Halkwinds Editorial Team

Halkwinds Research & Editorial

Published June 2, 2026
Blog image
Cloud

Platform Engineering: Building Self-Service Cloud Capabilities

How platform teams build internal developer portals and golden paths that improve engineering velocity without sacrificing reliability.

If your engineering organization has grown past a handful of teams, you have probably felt the friction: developers waiting days for a new environment, tribal knowledge about deployment locked in a single senior engineer's head, and a DevOps team that has quietly become a ticket-processing bottleneck. Platform engineering exists to solve exactly this problem. Instead of every team reinventing infrastructure or waiting on a central ops group, a platform team builds paved, self-service capabilities that let developers ship safely without needing to become Kubernetes experts. This article walks through how to build self-service cloud capabilities—internal developer portals, golden paths, and the automation underneath—in a way that increases velocity without trading away reliability.

  • Background / Why This Matters
  • Core Concepts and Architecture
  • Implementation Strategy
  • Scaling and Operational Considerations
  • Common Mistakes / What to Avoid
  • Frequently Asked Questions
  • Conclusion

Background / Why This Matters

For most of the last decade, the dominant model was "you build it, you run it"—the DevOps ideal where product teams own their infrastructure end to end. In practice, this created a cognitive load problem. Asking a full-stack developer to also master Terraform, Kubernetes networking, IAM policies, observability pipelines, and cost optimization is unrealistic. Research and industry surveys such as the DORA reports repeatedly suggest that developer experience and deployment friction are among the strongest predictors of both velocity and retention.

Platform engineering reframes the problem. The platform team treats internal developers as customers and builds a product—an internal developer platform (IDP)—that abstracts away undifferentiated infrastructure work behind self-service interfaces. The goal is not to take control away from teams, but to give them safe, fast defaults so they only make decisions that genuinely matter to their product.

For an engineering manager, the business case is concrete:

  • Reduced lead time: Provisioning a new service should take minutes, not a sprint.
  • Lower cognitive load: Developers focus on business logic, not YAML archaeology.
  • Consistency and compliance: Security, tagging, and reliability standards are baked into the paved path rather than enforced through code review.
  • Onboarding speed: New hires ship to production in days because the "how" is encoded in the platform.

Actionable takeaway: Before investing, measure your current lead time for a new service and the number of infrastructure tickets your ops team handles per week. These become the baseline metrics that justify—and later prove—the value of your platform.

Core Concepts and Architecture

A self-service cloud platform is built from a few reinforcing layers. Understanding each helps you avoid buying a shiny portal without the substance behind it.

Golden Paths

A golden path is an opinionated, well-supported route to accomplish a common task—creating a new microservice, adding a database, or setting up a CI/CD pipeline. It is not the only path, but it is the one that is documented, automated, and maintained. Golden paths encode your organization's best practices so developers get them for free. A good golden path for a new backend service might scaffold the repository, wire up CI, provision a namespace in Kubernetes, register the service in your catalog, and set up dashboards—all from a single form submission.

The Internal Developer Portal

Backstage, originally built at Spotify and now a CNCF project, has become the de facto open-source foundation for internal developer portals. It provides a software catalog (a single source of truth for services, owners, and dependencies), software templates (the mechanism behind golden paths), and a plugin ecosystem for surfacing CI status, documentation, and cloud resources. The portal is the human-facing entry point; it is where developers discover, create, and manage what they own.

Infrastructure Automation

Behind the portal, Terraform handles declarative provisioning of cloud resources—VPCs, databases, IAM roles, and managed services. Rather than exposing raw Terraform to developers, mature platforms wrap common patterns into reusable modules that the portal invokes. This keeps infrastructure changes reviewable, versioned, and consistent.

Orchestration and Delivery

Kubernetes is the runtime substrate for most modern platforms, providing a consistent deployment target across environments. ArgoCD implements GitOps: the desired state of the cluster lives in Git, and ArgoCD continuously reconciles the cluster to match. This means every change is auditable, rollbacks are a Git revert, and developers never need cluster credentials to deploy.

The mental model that works best: the portal is the front door, Terraform provisions the foundation, and ArgoCD keeps the running state honest. Developers interact with the front door; the rest is invisible.

Actionable takeaway: Diagram your intended architecture across these four layers before writing code. If a proposed feature does not map cleanly to catalog, provisioning, or delivery, it is probably scope creep.

Implementation Strategy

The most common failure mode is trying to build the entire platform up front. Treat this as a product with an MVP, not an infrastructure project with a big-bang launch.

Step 1: Pick One Golden Path

Choose the single most frequent, most painful workflow—usually "create a new service and deploy it." Interview five to ten developers about what currently slows them down. Resist the urge to solve everything; a narrow, excellent golden path builds credibility.

Step 2: Build the Software Template

In Backstage, create a software template that generates a new repository from a scaffold, complete with a working CI pipeline, a Dockerfile, Kubernetes manifests, and an ArgoCD application definition. The template should also register the new component in the Backstage catalog with ownership metadata. The first time a developer fills out a form and gets a running service in production within an hour, you have earned the right to expand.

Step 3: Wrap Infrastructure in Modules

Encapsulate cloud resources in versioned Terraform modules with sensible, secure defaults—encryption on, least-privilege IAM, mandatory cost-allocation tags. Expose only the inputs that matter (instance size, environment) and hide the rest. The portal calls these modules; developers never touch the state file.

Step 4: Establish GitOps Delivery

Configure ArgoCD so that merging to a Git branch triggers a reconciled deployment. Use progressive delivery where it matters—canary or blue/green rollouts for critical services. This is where reliability is preserved: because state lives in Git and reconciliation is automatic, drift and manual hotfixes disappear.

Many organizations lack the internal bandwidth to stand up these layers from scratch while still shipping product. This is where Halkwinds' Cloud engineering services often come in—helping teams build the initial golden path, harden the Terraform module library, and set up GitOps delivery so the internal platform team can own it going forward rather than starting from a blank repository.

Actionable takeaway: Set a target of "one golden path, end to end, adopted by three teams" within the first quarter. Adoption—not feature count—is your success metric.

Scaling and Operational Considerations

Once your first golden path proves out, the challenge shifts from building to sustaining. A platform that developers do not trust becomes shelf-ware.

Treat the Platform as a Product

Assign a product owner. Maintain a public roadmap. Collect satisfaction feedback regularly. The platform team's north-star metrics should be developer-centric: time to first deploy, number of self-service actions per week, and platform NPS.

Balance Standardization and Flexibility

Golden paths must stay paved. If a path breaks after a cloud provider change or a Kubernetes upgrade, developer trust erodes quickly. Budget ongoing maintenance capacity—estimates vary, but a meaningful share of platform team time should go to keeping existing paths healthy rather than only building new ones.

The following comparison illustrates the operational shift platform engineering creates:

Dimension Traditional Ticket-Based Ops Self-Service Platform
New service provisioning Days; manual ticket queue Minutes; portal template
Consistency Varies by who did the work Enforced by modules and templates
Deployment control Ops holds credentials GitOps via ArgoCD, fully audited
Ops team role Bottleneck / order-taker Product team building leverage
Scaling cost Linear with team count Sub-linear; reuse across teams

Reliability Guardrails

Self-service does not mean removing safety. Use policy-as-code tools (such as OPA/Gatekeeper) to reject non-compliant Kubernetes manifests, enforce resource limits, and require security defaults at admission time. Guardrails let you say "yes" to autonomy because the dangerous options are simply unavailable.

Actionable takeaway: Institute a quarterly review where every golden path is tested end to end. If it takes more than a few minutes to fix a broken path, prioritize it above new work.

Common Mistakes / What to Avoid

  • Building the portal before the paths. A Backstage instance with an empty catalog and no working templates is a demo, not a platform. The value is in the automation behind the buttons.
  • Mandating adoption instead of earning it. Forcing teams onto an immature platform generates resentment. Make the golden path so obviously better that teams choose it.
  • Exposing raw infrastructure. Handing developers unabstracted Terraform or cluster access reintroduces the cognitive load you set out to remove.
  • Ignoring the maintenance burden. Golden paths rot. Underfunding upkeep is the fastest way to lose trust.
  • Measuring outputs, not outcomes. Counting plugins installed is vanity. Measure lead time, adoption, and developer satisfaction.
  • Over-engineering the MVP. Supporting five languages and three clouds on day one guarantees you ship nothing useful. Start narrow.

Actionable takeaway: Write down your platform's "definition of done" for a golden path—scaffolded, deployable, observable, compliant—and refuse to launch anything that does not meet it.

Frequently Asked