spinny:~/writing $ vim platform-engineering-internal-developer-platform.md
1~2Da Softwaresysteme immer komplexer werden - Microservices, Kubernetes, Multi-Cloud, CI/CD-Pipelines, Observability-Stacks - verbringen Entwickler mehr Zeit mit Infrastruktur und weniger Zeit mit der Entwicklung von Produkten. **Platform Engineering** löst dieses Problem, indem eine interne Plattform geschaffen wird, die Komplexität abstrahiert und Entwicklern Self-Service-Tools bietet, um schneller zu liefern.3~4Gartner prognostiziert, dass bis 2027 **80 % der Software-Engineering-Organisationen** Plattformteams einrichten werden. In diesem Leitfaden werden wir untersuchen, was Platform Engineering ist, warum es wichtig ist und wie man eine Internal Developer Platform von Grund auf aufbaut.5~6## Was ist Platform Engineering?7~8Platform Engineering ist die Disziplin des Entwerfens und Aufbauens von Toolchains und Workflows, die Self-Service-Fähigkeiten für Software-Engineering-Organisationen ermöglichen. Das Ergebnis ist eine **Internal Developer Platform (IDP)** - eine Schicht, die zwischen Entwicklern und Infrastruktur liegt.9~10```mermaid11graph TD12 subgraph "Developers"13 D1[Frontend Team]14 D2[Backend Team]15 D3[Data Team]16 end17~18 subgraph "Internal Developer Platform"19 Portal[Developer Portal]20 Templates[Service Templates]21 CICD[CI/CD Pipelines]22 Infra[Infrastructure Abstraction]23 end24~25 subgraph "Infrastructure"26 K8s[Kubernetes]27 Cloud[Cloud Services]28 DB[Databases]29 Monitor[Monitoring]30 end31~32 D1 --> Portal33 D2 --> Portal34 D3 --> Portal35 Portal --> Templates36 Portal --> CICD37 Portal --> Infra38 Infra --> K8s39 Infra --> Cloud40 Infra --> DB41 CICD --> Monitor42```43~44### Platform Engineering vs DevOps45~46Platform Engineering ist kein Ersatz für DevOps - es ist die nächste Evolution. DevOps sagte: „Du baust es, du betreibst es." Platform Engineering sagt: „Wir machen das Bauen und Betreiben mühelos."47~48| Aspekt | DevOps | Platform Engineering |49|--------|--------|---------------------|50| **Fokus** | Kultur und Praktiken | Produkte und Self-Service |51| **Ansatz** | Jedes Team verwaltet Infrastruktur | Plattformteam abstrahiert Infrastruktur |52| **Kognitive Belastung** | Hoch (jedes Team lernt alles) | Niedrig (Golden Paths bereitgestellt) |53| **Output** | CI/CD-Pipelines, IaC-Skripte | Internal Developer Platform |54| **Nutzer** | Gesamtes Engineering | Plattformteam dient dem Engineering |55~56## Warum Platform Engineering wichtig ist57~58### Das Problem der kognitiven Belastung59~60In einer typischen modernen Organisation muss ein Entwickler verstehen:61~62- Git-Workflows und Branching-Strategien63- CI/CD-Pipeline-Konfiguration64- Container-Erstellung und Registry-Verwaltung65- Kubernetes-Manifeste und Helm Charts66- Cloud-Provider-Dienste (AWS/GCP/Azure)67- Networking, DNS, TLS-Zertifikate68- Monitoring-, Logging- und Alerting-Einrichtung69- Datenbankbereitstellung und -migrationen70- Sicherheitsrichtlinien und Compliance71~72Das ist eine enorme kognitive Belastung, die den Fokus vom eigentlichen Produkt ablenkt.73~74### Der Golden Path75~76Platform Engineering führt das Konzept der **Golden Paths** ein - meinungsstarke, gut unterstützte und dokumentierte Pfade für gängige Aufgaben. Ein Golden Path ist kein Zwang; Entwickler *können* abweichen, aber die Plattform macht das Richtige zum Einfachen.77~78```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```88~89**Beispiel-Golden-Path für die Erstellung eines neuen Microservices:**901. Der Entwickler wählt „Neuer Backend-Service" im Portal912. Wählt Sprache/Framework (Node.js, Go, Python)923. Die Plattform erstellt automatisch: Git-Repository, CI/CD-Pipeline, Kubernetes-Namespace, Monitoring-Dashboards und Alerting-Regeln934. Der Entwickler klont das Repository und beginnt sofort mit dem Programmieren94~95## Aufbau einer Internal Developer Platform96~97### Schicht 1: Developer Portal98~99Das Portal ist der zentrale Einstiegspunkt für Entwickler. Die beliebteste Open-Source-Option ist **Backstage** (von Spotify entwickelt, jetzt ein CNCF-Projekt).100~101Kernfunktionen:102- **Service-Katalog**: Jeder Service, sein Besitzer, Dokumentation und Abhängigkeiten103- **Software-Templates**: Scaffolding für neue Services mit integrierten Best Practices104- **Technische Dokumentation**: Dokumentation als Code, gerendert und durchsuchbar105- **Plugin-Ökosystem**: Erweiterbar mit individueller Funktionalität106~107```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```127~128### Schicht 2: Infrastruktur-Abstraktion129~130Entwickler sollten Terraform oder Kubernetes-YAML nicht direkt schreiben. Die Plattform sollte Abstraktionen bereitstellen.131~132**Werkzeuge:**133- **Crossplane**: Kubernetes-native Infrastrukturbereitstellung134- **Terraform mit Modulen**: Vorgefertigte, getestete Infrastrukturmodule135- **Pulumi**: Infrastruktur als echter Code (TypeScript, Python, Go)136~137```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```149~150Anstatt RDS-Parameter, VPC-Subnetze, Sicherheitsgruppen und Backup-Richtlinien zu konfigurieren, gibt der Entwickler einfach `size: small` und `backup: daily` an. Die Plattform erledigt den Rest.151~152### Schicht 3: CI/CD-Standardisierung153~154Standardisiere CI/CD, damit Teams nicht jeweils eigene Pipelines bauen.155~156```yaml157# .github/workflows/platform-ci.yml158# Teams just include the shared workflow159name: Build and Deploy160on:161 push:162 branches: [main]163~164jobs:165 pipeline:166 uses: myorg/platform-workflows/.github/workflows/standard-pipeline.yml@v2167 with:168 language: node169 deploy-target: production170 secrets: inherit171```172~173**Wichtige Praktiken:**174- Gemeinsame CI/CD-Templates, die Teams einbinden (nicht kopieren)175- Automatische Sicherheitsscans (SAST, Dependency-Audit)176- Standardisierte Deployment-Strategien (Canary, Blue/Green)177- Automatisches Rollback bei fehlgeschlagenen Health Checks178~179### Schicht 4: Observability180~181Vorkonfiguriertes Monitoring, damit Entwickler Dashboards und Alerts sofort einsatzbereit erhalten.182~183- **Metriken**: Prometheus + Grafana mit Standard-Dashboards pro Service184- **Logging**: Strukturiertes Logging mit zentraler Sammlung (Loki, ELK)185- **Tracing**: Verteiltes Tracing mit OpenTelemetry186- **Alerting**: PagerDuty/Opsgenie-Integration mit sinnvollen Standardeinstellungen187~188```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```199~200## Erfolg messen201~202Woher wissen Sie, ob Ihre Plattform funktioniert? Verfolgen Sie diese Metriken:203~204### DORA-Metriken205- **Deployment-Frequenz**: Wie oft Code die Produktion erreicht206- **Lead Time für Änderungen**: Zeit vom Commit bis zur Produktion207- **Änderungs-Fehlerrate**: Prozentsatz der Deployments, die Ausfälle verursachen208- **Mittlere Wiederherstellungszeit**: Zeit zur Wiederherstellung des Dienstes nach einem Vorfall209~210### Plattformspezifische Metriken211- **Zeit bis zum ersten Deploy**: Wie lange vom „neuen Service" bis zum ersten Produktions-Deploy212- **Entwicklerzufriedenheit (NPS)**: Befragen Sie Ihre Nutzer regelmäßig213- **Self-Service-Quote**: % der Infrastrukturanfragen, die ohne Tickets bearbeitet werden214- **Golden-Path-Adoption**: % der Services, die dem empfohlenen Pfad folgen215~216## Häufige Fehler217~218### 1. Zu viel zu früh bauen219Beginnen Sie mit dem größten Schmerzpunkt, nicht mit einer großen Vision. Wenn Deployments schmerzhaft sind, fangen Sie dort an. Wenn Provisioning Wochen dauert, fangen Sie dort an.220~221### 2. Die Plattform nicht als Produkt behandeln222Das Plattformteam braucht einen Product Manager, Nutzerforschung und Feedback-Schleifen. Entwickler sind Ihre Kunden - verstehen Sie ihre Bedürfnisse.223~224### 3. Vorschreiben statt anziehen225Die besten Plattformen werden freiwillig adoptiert, weil sie das Leben der Entwickler einfacher machen. Wenn Sie die Nutzung vorschreiben müssen, ist Ihre Plattform nicht gut genug.226~227### 4. Developer Experience ignorieren228Eine Plattform mit schlechter UX wird nicht genutzt. Investieren Sie in klare Dokumentation, hilfreiche Fehlermeldungen und schnelle Feedback-Schleifen.229~230## Erste Schritte231~232Eine praktische Roadmap zum Aufbau Ihrer ersten IDP:233~234```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]239~240 A --> A1[Interview developers]241 A --> A2[Map pain points]242 A --> A3[Choose first golden path]243~244 B --> B1[Deploy Backstage]245 B --> B2[First service template]246 B --> B3[Standardized CI/CD]247~248 C --> C1[Gather feedback]249 C --> C2[Add infrastructure abstraction]250 C --> C3[Improve docs and onboarding]251~252 D --> D1[More templates and golden paths]253 D --> D2[Self-service infrastructure]254 D --> D3[Advanced observability]255```256~257### Minimum Viable Platform258~2591. **Service-Katalog** (Backstage) - wissen, was existiert und wem es gehört2602. **Ein Service-Template** - Golden Path für Ihren häufigsten Service-Typ2613. **Standardisierte CI/CD** - gemeinsame Pipeline, die Teams einbinden2624. **Grundlegende Dokumentation** - wie man die Plattform nutzt, wo man Hilfe bekommt263~264Sie können dieses MVP in 2-3 Monaten mit einem Team von 2-3 Ingenieuren aufbauen.265~266## Fazit267~268Platform Engineering bedeutet nicht, am ersten Tag die perfekte Plattform zu bauen. Es geht darum, die kognitive Belastung der Entwickler schrittweise zu reduzieren, damit sie sich auf die Produktentwicklung konzentrieren können. Fangen Sie klein an, messen Sie die Wirkung und iterieren Sie basierend auf dem Feedback der Entwickler.269~270Organisationen, die in Platform Engineering investieren, werden einen erheblichen Wettbewerbsvorteil haben: schnellere Lieferung, zufriedenere Entwickler und zuverlässigere Systeme.271~272**Ressourcen:**273- [Team Topologies](https://teamtopologies.com/) - das Buch, das Plattformteams populär gemacht hat274- [Backstage](https://backstage.io/) - Spotifys Open-Source-Entwicklerportal275- [CNCF Platforms White Paper](https://tag-app-delivery.cncf.io/whitepapers/platforms/) - Community-Definition und Best Practices276- [platformengineering.org](https://platformengineering.org/) - Community, Events und Ressourcen277~
NORMAL · platform-engineering-internal-developer-platform.md [readonly]277 lines · :q to close