PraksisPASS

Platform Engineering

Disciplinen der bygger interne udviklerplatforme for at gøre produktteams selvbetjente og accelerere softwarelevering.

Globalt netværk af forbundne noder der symboliserer en intern udviklerplatform
Foto: NASA / Unsplash

Platform Engineering er disciplinen der designer og bygger interne udviklerplatforme (Internal Developer Platforms, IDP'er). Formålet er at give produktteams en selvbetjent vej fra kode til produktion, uden at hvert team selv skal mestre Kubernetes, Terraform, CI/CD og observability-stakken.

Motivationen bag Platform Engineering kommer fra en udbredt erfaring: DevOps-princippet "you build it, you run it" skalerer dårligt. Når hundredvis af udviklere skal konfigurere deres egne pipelines, provisione infrastruktur og opsætte monitoring, opstår der kognitiv overload. Udviklere vil skrive features, ikke YAML. Platform Engineering løser dette ved at abstrahere kompleksiteten bag veldefinerede interfaces.

En Internal Developer Platform består typisk af flere lag. Bunden er infrastruktur-orkestrering (Kubernetes, cloud-ressourcer via Terraform). Derover ligger applikationskonfiguration (miljøvariabler, secrets, networking). Øverst er developer-interfacet: en portal, CLI eller API, hvor udviklere bestiller miljøer, deployer services og inspicerer logs. Backstage fra Spotify er den mest udbredte open-source developer portal.

Golden paths (eller "paved roads") er et centralt koncept. En golden path er den anbefalede, velunderstøttede vej til at løse en opgave. F.eks. en skabelon til en ny microservice, der inkluderer CI/CD-pipeline, Dockerfile, monitoring-setup og Kubernetes-manifester. Udviklere kan afvige fra golden paths, men det kræver mere arbejde. Målet er at det rigtige valg også er det nemme valg.

Platform-teamet fungerer som en intern produktorganisation. Platformen er produktet, og udviklerne er kunderne. Det indebærer brugerresearch (hvilke problemer har udviklerne?), roadmapping, onboarding-dokumentation og feedback-loops. Et platform-team der bygger features ingen bruger, fejler lige så sikkert som et produktteam der ignorerer sine brugere.

Målbare gevinster ved Platform Engineering inkluderer reduceret onboarding-tid (nye udviklere er produktive hurtigere), øget deployment frequency (selvbetjent deployment fjerner flaskehalse), standardiseret compliance (sikkerhedspolicies bagt ind i platformen) og reduceret kognitiv belastning (udviklere fokuserer på forretningslogik).

Teknologistakken for en IDP varierer, men typiske komponenter er: Backstage (developer portal), Argo CD eller Flux (GitOps deployment), Crossplane eller Terraform (infrastruktur-provisionering), Vault (secrets management) og Prometheus/Grafana (observability). Score.dev og Humanitec tilbyder proprietære platforme til organisationer, der ikke vil bygge fra scratch.

Team Topologies-frameworket (af Matthew Skelton og Manuel Pais) giver en model for, hvordan platform-teams interagerer med produktteams. Platform-teamet leverer en "X-as-a-service"-model: selvbetjent, veldokumenteret og med klare SLA'er. Stream-aligned teams (produktteams) konsumerer platformen og giver feedback. Enabling teams hjælper med adoption og videndeling. Denne struktur reducerer koordineringsbyrden og lader begge typer teams arbejde autonomt.

Platform Engineering er ikke en erstatning for DevOps, men en evolution. Hvor DevOps nedbryder siloer mellem Dev og Ops, giver Platform Engineering de værktøjer og abstraktioner der gør DevOps-praksisser skalerbare på tværs af hele organisationen.