spinny:~/writing $ less platform-engineering-internal-developer-platform.md
12I takt med att mjukvarusystem blir mer komplexa - mikrotjänster, Kubernetes, multi-cloud, CI/CD-pipelines, observability-stackar - spenderar utvecklare mer tid på infrastruktur och mindre tid på att bygga produkter. **Platform Engineering** löser detta genom att skapa en intern plattform som abstraherar komplexitet och ger utvecklare självbetjäningsverktyg för att leverera snabbare.34Gartner förutspår att till 2027 kommer **80% av mjukvaruutvecklingsorganisationer** att etablera plattformsteam. I denna guide utforskar vi vad Platform Engineering är, varför det spelar roll och hur man bygger en Internal Developer Platform från grunden.56## Vad är Platform Engineering?78Platform Engineering är disciplinen att designa och bygga verktygskedjor och arbetsflöden som möjliggör självbetjäning för mjukvaruutvecklingsorganisationer. Resultatet är en **Internal Developer Platform (IDP)** - ett lager som sitter mellan utvecklare och infrastruktur.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 är inte en ersättning för DevOps - det är nästa evolution. DevOps sa "du bygger det, du kör det." Platform Engineering säger "vi gör byggandet och körningen enkel."4748| Aspekt | DevOps | Platform Engineering |49|--------|--------|---------------------|50| **Fokus** | Kultur och praxis | Produkter och självbetjäning |51| **Tillvägagångssätt** | Varje team hanterar infra | Plattformsteamet abstraherar infra |52| **Kognitiv belastning** | Hög (varje team lär sig allt) | Låg (golden paths tillhandahålls) |53| **Resultat** | CI/CD-pipelines, IaC-skript | Internal Developer Platform |54| **Användare** | All engineering | Plattformsteamet betjänar engineering |5556## Varför Platform Engineering Spelar Roll5758### Problemet med Kognitiv Belastning5960I en typisk modern organisation behöver en utvecklare förstå:6162- Git-arbetsflöden och grenstategier63- CI/CD-pipeline-konfiguration64- Containerbygge och registry-hantering65- Kubernetes-manifest och Helm Charts66- Molnleverantörstjänster (AWS/GCP/Azure)67- Nätverk, DNS, TLS-certifikat68- Övervakning, loggning, alerting-uppsättning69- Databasprovisionering och migrationer70- Säkerhetspolicyer och efterlevnad7172Det är en enorm kognitiv börda som tar fokus från den faktiska produkten.7374### Golden Path7576Platform Engineering introducerar konceptet **golden paths** - åsiktsstarka, välstödda och dokumenterade vägar för vanliga uppgifter. En golden path är inte ett mandat; utvecklare *kan* avvika, men plattformen gör det rätta till det enkla.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**Exempel på golden path för att skapa en ny mikrotjänst:**901. Utvecklaren väljer "Ny Backend-tjänst" i portalen912. Väljer språk/ramverk (Node.js, Go, Python)923. Plattformen skapar automatiskt: Git-repository, CI/CD-pipeline, Kubernetes-namespace, övervakningsdashboards och alertregler934. Utvecklaren klonar repositoryt och börjar koda omedelbart9495## Bygga en Internal Developer Platform9697### Lager 1: Developer Portal9899Portalen är den enda ingångspunkten för utvecklare. Det mest populära open source-alternativet är **Backstage** (skapat av Spotify, nu ett CNCF-projekt).100101Nyckelfunktioner:102- **Tjänstekatalog**: Varje tjänst, dess ägare, dokumentation och beroenden103- **Mjukvarumallar**: Scaffolding för nya tjänster med inbyggda bästa praxis104- **Teknisk dokumentation**: Dokumentation som kod, renderad och sökbar105- **Plugin-ekosystem**: Utbyggbart med anpassad funktionalitet106107```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### Lager 2: Infrastrukturabstraktion129130Utvecklare bör inte skriva Terraform eller Kubernetes YAML direkt. Plattformen bör tillhandahålla abstraktioner.131132**Verktyg:**133- **Crossplane**: Kubernetes-nativ infrastrukturprovisionering134- **Terraform med moduler**: Förbyggda, testade infrastrukturmoduler135- **Pulumi**: Infrastruktur som riktig kod (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```149150Istället för att konfigurera RDS-parametrar, VPC-subnät, säkerhetsgrupper och backup-policyer anger utvecklaren helt enkelt `size: small` och `backup: daily`. Plattformen hanterar resten.151152### Lager 3: CI/CD-standardisering153154Standardisera CI/CD så att team inte bygger var sin egen pipeline.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**Nyckelpraxis:**174- Delade CI/CD-mallar som team inkluderar (inte kopierar)175- Automatisk säkerhetsskanning (SAST, beroendeaudit)176- Standardiserade deploymentstrategier (canary, blue/green)177- Automatisk rollback vid misslyckade hälsokontroller178179### Lager 4: Observability180181Förkonfigurerad övervakning så att utvecklare får dashboards och alerts direkt.182183- **Mätvärden**: Prometheus + Grafana med standarddashboards per tjänst184- **Loggning**: Strukturerad loggning med centraliserad insamling (Loki, ELK)185- **Spårning**: Distribuerad spårning med OpenTelemetry186- **Alerting**: PagerDuty/Opsgenie-integration med förnuftiga standardvärden187188```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## Mäta Framgång201202Hur vet du att din plattform fungerar? Följ dessa mätvärden:203204### DORA-mätvärden205- **Deploymentfrekvens**: Hur ofta kod når produktion206- **Ledtid för ändringar**: Tid från commit till produktion207- **Ändringsfelfrekvens**: Andel deployments som orsakar fel208- **Genomsnittlig återställningstid**: Tid att återställa tjänsten efter en incident209210### Plattformsspecifika Mätvärden211- **Tid till första deploy**: Hur lång tid från "ny tjänst" till första produktionsdeploy212- **Utvecklarnöjdhet (NPS)**: Enkäta dina användare regelbundet213- **Självbetjäningskvot**: % av infrastrukturförfrågningar hanterade utan ärenden214- **Golden path-adoption**: % av tjänster som följer den rekommenderade vägen215216## Vanliga Misstag217218### 1. Bygga för Mycket, för Tidigt219Börja med den största smärtpunkten, inte en stor vision. Om deployments är smärtsamma, börja där. Om provisionering tar veckor, börja där.220221### 2. Att Inte Behandla Plattformen som en Produkt222Plattformsteamet behöver en produktchef, användarforskning och feedbackloopar. Utvecklare är dina kunder - förstå deras behov.223224### 3. Påtvinga Istället för att Attrahera225De bästa plattformarna adopteras frivilligt för att de gör utvecklares liv enklare. Om du måste påtvinga användning är din plattform inte tillräckligt bra.226227### 4. Ignorera Utvecklarupplevelsen228En plattform med fruktansvärd UX kommer inte att användas. Investera i tydlig dokumentation, hjälpsamma felmeddelanden och snabba feedbackloopar.229230## Komma Igång231232En praktisk vägkarta för att bygga din första 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. **Tjänstekatalog** (Backstage) - vet vad som finns och vem som äger det2602. **En tjänstemall** - golden path för din vanligaste tjänsttyp2613. **Standardiserad CI/CD** - delad pipeline som team inkluderar2624. **Grundläggande dokumentation** - hur man använder plattformen, var man får hjälp263264Du kan bygga detta MVP på 2-3 månader med ett team på 2-3 ingenjörer.265266## Slutsats267268Platform Engineering handlar inte om att bygga den perfekta plattformen från dag ett. Det handlar om att stegvis minska den kognitiva belastningen på utvecklare så att de kan fokusera på att bygga produkter. Börja smått, mät påverkan och iterera baserat på utvecklarfeedback.269270Organisationer som investerar i Platform Engineering kommer att ha en betydande konkurrensfördel: snabbare leverans, gladare utvecklare och mer pålitliga system.271272**Resurser:**273- [Team Topologies](https://teamtopologies.com/) - boken som populariserade plattformsteam274- [Backstage](https://backstage.io/) - Spotifys open source-utvecklarportal275- [CNCF Platforms White Paper](https://tag-app-delivery.cncf.io/whitepapers/platforms/) - community-definition och bästa praxis276- [platformengineering.org](https://platformengineering.org/) - community, evenemang och resurser277
:Platform Engineering: Hur man bygger en Internal Developer Platformlines 1-277 (END) — press q to close