spinny:~/writing $ less platform-engineering-internal-developer-platform.md
12Naarmate softwaresystemen complexer worden - microservices, Kubernetes, multi-cloud, CI/CD-pipelines, observability-stacks - besteden ontwikkelaars meer tijd aan infrastructuur en minder tijd aan het bouwen van producten. **Platform Engineering** lost dit op door een intern platform te creëren dat complexiteit abstraheert en ontwikkelaars selfservice-tools biedt om sneller te leveren.34Gartner voorspelt dat tegen 2027 **80% van de software-engineeringorganisaties** platformteams zullen oprichten. In deze gids verkennen we wat Platform Engineering is, waarom het ertoe doet en hoe je een Internal Developer Platform vanaf nul bouwt.56## Wat is Platform Engineering?78Platform Engineering is de discipline van het ontwerpen en bouwen van toolchains en workflows die selfservice-mogelijkheden voor software-engineeringorganisaties mogelijk maken. Het resultaat is een **Internal Developer Platform (IDP)** - een laag die tussen ontwikkelaars en infrastructuur zit.910```mermaid11graph TD12 subgraph "Developers"13 D1[Frontend Team]14 D2[Backend Team]15 D3[Data Team]16 end1718 subgraph "Internal Developer Platform"19 Portal[Developer Portal]20 Templates[Service Templates]21 CICD[CI/CD Pipelines]22 Infra[Infrastructure Abstraction]23 end2425 subgraph "Infrastructure"26 K8s[Kubernetes]27 Cloud[Cloud Services]28 DB[Databases]29 Monitor[Monitoring]30 end3132 D1 --> Portal33 D2 --> Portal34 D3 --> Portal35 Portal --> Templates36 Portal --> CICD37 Portal --> Infra38 Infra --> K8s39 Infra --> Cloud40 Infra --> DB41 CICD --> Monitor42```4344### Platform Engineering vs DevOps4546Platform Engineering is geen vervanging voor DevOps - het is de volgende evolutie. DevOps zei "jij bouwt het, jij draait het." Platform Engineering zegt "wij maken bouwen en draaien moeiteloos."4748| Aspect | DevOps | Platform Engineering |49|--------|--------|---------------------|50| **Focus** | Cultuur en praktijken | Producten en selfservice |51| **Aanpak** | Elk team beheert infra | Platformteam abstraheert infra |52| **Cognitieve belasting** | Hoog (elk team leert alles) | Laag (golden paths aangeboden) |53| **Resultaat** | CI/CD-pipelines, IaC-scripts | Internal Developer Platform |54| **Gebruikers** | Alle engineering | Platformteam bedient engineering |5556## Waarom Platform Engineering Ertoe Doet5758### Het Cognitieve Belastingsprobleem5960In een typische moderne organisatie moet een ontwikkelaar begrijpen:6162- Git-workflows en branchstrategieën63- CI/CD-pipeline configuratie64- Container building en registry management65- Kubernetes manifesten en Helm Charts66- Cloud provider diensten (AWS/GCP/Azure)67- Netwerken, DNS, TLS-certificaten68- Monitoring, logging, alerting setup69- Database provisioning en migraties70- Beveiligingsbeleid en compliance7172Dat is een enorme cognitieve last die de aandacht afleidt van het eigenlijke product.7374### Het Golden Path7576Platform Engineering introduceert het concept van **golden paths** - eigenzinnige, goed ondersteunde en gedocumenteerde paden voor veelvoorkomende taken. Een golden path is geen verplichting; ontwikkelaars *kunnen* afwijken, maar het platform maakt het juiste het makkelijke.7778```mermaid79flowchart LR80 Dev[Developer] -- "Create new service" --> Portal[Portal]81 Portal -- "Select template" --> Template[Service Template]82 Template -- "Auto-provision" --> Repo[Git Repository]83 Template --> Pipeline[CI/CD Pipeline]84 Template --> Infra[Kubernetes Namespace]85 Template --> Monitor[Dashboards + Alerts]86 Repo --> Ready[Ready to Code!]87```8889**Voorbeeld golden path voor het aanmaken van een nieuwe microservice:**901. Ontwikkelaar selecteert "Nieuwe Backend Service" in het portaal912. Kiest taal/framework (Node.js, Go, Python)923. Platform maakt automatisch aan: Git-repository, CI/CD-pipeline, Kubernetes namespace, monitoring dashboards en alertregels934. Ontwikkelaar kloont de repository en begint meteen met coderen9495## Een Internal Developer Platform Bouwen9697### Laag 1: Developer Portal9899Het portaal is het enkele toegangspunt voor ontwikkelaars. De meest populaire open source optie is **Backstage** (gemaakt door Spotify, nu een CNCF-project).100101Belangrijkste functies:102- **Servicecatalogus**: Elke service, eigenaar, documentatie en afhankelijkheden103- **Softwaretemplates**: Scaffolding voor nieuwe services met ingebouwde best practices104- **Technische documentatie**: Documentatie als code, gerenderd en doorzoekbaar105- **Plugin-ecosysteem**: Uitbreidbaar met aangepaste functionaliteit106107```yaml108# backstage/catalog-info.yaml109apiVersion: backstage.io/v1alpha1110kind: Component111metadata:112 name: user-service113 description: Manages user accounts and authentication114 annotations:115 github.com/project-slug: myorg/user-service116 backstage.io/techdocs-ref: dir:.117spec:118 type: service119 lifecycle: production120 owner: team-auth121 system: identity-platform122 dependsOn:123 - resource:postgresql-main124 providesApis:125 - user-api126```127128### Laag 2: Infrastructuurabstractie129130Ontwikkelaars zouden niet direct Terraform of Kubernetes YAML moeten schrijven. Het platform moet abstracties bieden.131132**Tools:**133- **Crossplane**: Kubernetes-native infrastructuur provisioning134- **Terraform met modules**: Voorgebouwde, geteste infrastructuurmodules135- **Pulumi**: Infrastructuur als echte code (TypeScript, Python, Go)136137```yaml138# Example: Crossplane composition for a database139apiVersion: database.example.com/v1140kind: PostgreSQLInstance141metadata:142 name: user-db143spec:144 size: small # Abstraction: small = 2 vCPU, 4GB RAM145 version: "16"146 backup: daily147 team: auth-team148```149150In plaats van RDS-parameters, VPC-subnetten, beveiligingsgroepen en back-upbeleid te configureren, specificeert de ontwikkelaar gewoon `size: small` en `backup: daily`. Het platform regelt de rest.151152### Laag 3: CI/CD-standaardisatie153154Standaardiseer CI/CD zodat teams niet elk hun eigen pipelines bouwen.155156```yaml157# .github/workflows/platform-ci.yml158# Teams just include the shared workflow159name: Build and Deploy160on:161 push:162 branches: [main]163164jobs:165 pipeline:166 uses: myorg/platform-workflows/.github/workflows/standard-pipeline.yml@v2167 with:168 language: node169 deploy-target: production170 secrets: inherit171```172173**Kernpraktijken:**174- Gedeelde CI/CD-templates die teams includeren (niet kopiëren)175- Automatische beveiligingsscanning (SAST, dependency audit)176- Gestandaardiseerde deploymentstrategieën (canary, blue/green)177- Automatische rollback bij mislukte health checks178179### Laag 4: Observability180181Vooraf geconfigureerde monitoring zodat ontwikkelaars dashboards en alerts out of the box krijgen.182183- **Metrics**: Prometheus + Grafana met standaard dashboards per service184- **Logging**: Gestructureerde logging met gecentraliseerde collectie (Loki, ELK)185- **Tracing**: Distributed tracing met OpenTelemetry186- **Alerting**: PagerDuty/Opsgenie integratie met verstandige defaults187188```mermaid189graph LR190 Service[Your Service] -- "OpenTelemetry SDK" --> Collector[OTel Collector]191 Collector --> Prometheus[Prometheus]192 Collector --> Loki[Loki]193 Collector --> Tempo[Tempo]194 Prometheus --> Grafana[Grafana Dashboards]195 Loki --> Grafana196 Tempo --> Grafana197 Grafana --> PagerDuty[PagerDuty Alerts]198```199200## Succes Meten201202Hoe weet je of je platform werkt? Volg deze metrics:203204### DORA Metrics205- **Deploymentfrequentie**: Hoe vaak code productie bereikt206- **Doorlooptijd voor wijzigingen**: Tijd van commit tot productie207- **Faalpercentage van wijzigingen**: Percentage deployments dat storingen veroorzaakt208- **Gemiddelde hersteltijd**: Tijd om service te herstellen na een incident209210### Platformspecifieke Metrics211- **Tijd tot eerste deploy**: Hoe lang van "nieuwe service" tot eerste productie-deploy212- **Ontwikkelaarstevredenheid (NPS)**: Enquêteer je gebruikers regelmatig213- **Selfservice-ratio**: % van infrastructuurverzoeken afgehandeld zonder tickets214- **Golden path adoptie**: % van services die het aanbevolen pad volgen215216## Veelvoorkomende Fouten217218### 1. Te Veel Bouwen, Te Snel219Begin met het grootste pijnpunt, niet met een grote visie. Als deployments pijnlijk zijn, begin daar. Als provisioning weken duurt, begin daar.220221### 2. Het Platform Niet als Product Behandelen222Het platformteam heeft een productmanager, gebruikersonderzoek en feedbackloops nodig. Ontwikkelaars zijn je klanten - begrijp hun behoeften.223224### 3. Verplichten in Plaats van Aantrekken225De beste platforms worden vrijwillig geadopteerd omdat ze het leven van ontwikkelaars makkelijker maken. Als je gebruik moet verplichten, is je platform niet goed genoeg.226227### 4. Developer Experience Negeren228Een platform met verschrikkelijke UX wordt niet gebruikt. Investeer in duidelijke documentatie, nuttige foutmeldingen en snelle feedbackloops.229230## Aan de Slag231232Een praktische routekaart voor het bouwen van je eerste IDP:233234```mermaid235flowchart TD236 A[Month 1-2: Discovery] --> B[Month 3-4: MVP]237 B --> C[Month 5-6: Iterate]238 C --> D[Month 7+: Scale]239240 A --> A1[Interview developers]241 A --> A2[Map pain points]242 A --> A3[Choose first golden path]243244 B --> B1[Deploy Backstage]245 B --> B2[First service template]246 B --> B3[Standardized CI/CD]247248 C --> C1[Gather feedback]249 C --> C2[Add infrastructure abstraction]250 C --> C3[Improve docs and onboarding]251252 D --> D1[More templates and golden paths]253 D --> D2[Self-service infrastructure]254 D --> D3[Advanced observability]255```256257### Minimum Viable Platform2582591. **Servicecatalogus** (Backstage) - weet wat er bestaat en wie eigenaar is2602. **Eén servicetemplate** - golden path voor je meest voorkomende servicetype2613. **Gestandaardiseerde CI/CD** - gedeelde pipeline die teams includeren2624. **Basisdocumentatie** - hoe het platform te gebruiken, waar hulp te krijgen263264Je kunt dit MVP in 2-3 maanden bouwen met een team van 2-3 engineers.265266## Conclusie267268Platform Engineering gaat niet over het bouwen van het perfecte platform vanaf dag één. Het gaat over het stapsgewijs verminderen van de cognitieve belasting van ontwikkelaars zodat ze zich kunnen richten op het bouwen van producten. Begin klein, meet de impact en itereer op basis van feedback van ontwikkelaars.269270Organisaties die investeren in Platform Engineering zullen een significant concurrentievoordeel hebben: snellere levering, gelukkigere ontwikkelaars en betrouwbaardere systemen.271272**Bronnen:**273- [Team Topologies](https://teamtopologies.com/) - het boek dat platformteams populair maakte274- [Backstage](https://backstage.io/) - Spotify's open source developer portal275- [CNCF Platforms White Paper](https://tag-app-delivery.cncf.io/whitepapers/platforms/) - community definitie en best practices276- [platformengineering.org](https://platformengineering.org/) - community, evenementen en bronnen277
:Platform Engineering: Hoe Bouw je een Internal Developer Platformlines 1-277 (END) — press q to close