spinny:~/writing $ less platform-engineering-internal-developer-platform.md
12Jak se softwarové systémy stávají složitějšími - mikroslužby, Kubernetes, multi-cloud, pipeline CI/CD, observability stacky - vývojáři tráví více času infrastrukturou a méně času budováním produktů. **Platform Engineering** to řeší vytvořením interní platformy, která abstrahuje složitost a poskytuje vývojářům samoobslužné nástroje pro rychlejší dodávání.34Gartner předpovídá, že do roku 2027 **80 % organizací softwarového inženýrství** zřídí platformové týmy. V tomto průvodci prozkoumáme, co je Platform Engineering, proč je důležitý a jak vybudovat Internal Developer Platform od nuly.56## Co je Platform Engineering?78Platform Engineering je disciplína navrhování a budování řetězců nástrojů a pracovních postupů, které umožňují samoobslužné schopnosti pro organizace softwarového inženýrství. Výstupem je **Internal Developer Platform (IDP)** - vrstva, která se nachází mezi vývojáři a infrastrukturou.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 není náhradou DevOps - je to další evoluce. DevOps řekl „ty to stavíš, ty to provozuješ." Platform Engineering říká „stavění a provoz uděláme snadným."4748| Aspekt | DevOps | Platform Engineering |49|--------|--------|---------------------|50| **Zaměření** | Kultura a praktiky | Produkty a samoobsluha |51| **Přístup** | Každý tým spravuje infra | Platformový tým abstrahuje infra |52| **Kognitivní zátěž** | Vysoká (každý tým se učí vše) | Nízká (zlaté cesty poskytnuty) |53| **Výstup** | Pipeline CI/CD, IaC skripty | Internal Developer Platform |54| **Uživatelé** | Celé inženýrství | Platformový tým slouží inženýrství |5556## Proč je Platform Engineering důležitý5758### Problém kognitivní zátěže5960V typické moderní organizaci musí vývojář rozumět:6162- Git workflow a strategie větvení63- Konfigurace pipeline CI/CD64- Sestavování kontejnerů a správa registrů65- Manifesty Kubernetes a Helm Charts66- Služby poskytovatele cloudu (AWS/GCP/Azure)67- Sítě, DNS, TLS certifikáty68- Nastavení monitoringu, logování, alertingu69- Provisioning a migrace databází70- Bezpečnostní politiky a compliance7172To je obrovská kognitivní zátěž, která odvádí pozornost od skutečného produktu.7374### Zlatá cesta7576Platform Engineering zavádí koncept **zlatých cest** - názorových, dobře podporovaných a zdokumentovaných cest pro běžné úkoly. Zlatá cesta není příkaz; vývojáři se *mohou* odchýlit, ale platforma dělá správnou věc snadnou.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**Příklad zlaté cesty pro vytvoření nové mikroslužby:**901. Vývojář vybere „Nová Backend služba" na portálu912. Zvolí jazyk/framework (Node.js, Go, Python)923. Platforma automaticky vytvoří: Git repozitář, pipeline CI/CD, Kubernetes namespace, monitorovací dashboardy a pravidla alertů934. Vývojář naklonuje repozitář a okamžitě začne kódovat9495## Budování Internal Developer Platform9697### Vrstva 1: Developer Portal9899Portál je jednotný vstupní bod pro vývojáře. Nejpopulárnější open-source možností je **Backstage** (vytvořen Spotify, nyní CNCF projekt).100101Klíčové funkce:102- **Katalog služeb**: Každá služba, její vlastník, dokumentace a závislosti103- **Softwarové šablony**: Scaffolding pro nové služby s vestavěnými best practices104- **Technická dokumentace**: Dokumentace jako kód, vyrenderovaná a prohledávatelná105- **Ekosystém pluginů**: Rozšiřitelný o vlastní funkcionalitu106107```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### Vrstva 2: Abstrakce infrastruktury129130Vývojáři by neměli psát přímo Terraform nebo Kubernetes YAML. Platforma by měla poskytovat abstrakce.131132**Nástroje:**133- **Crossplane**: Kubernetes-nativní provisioning infrastruktury134- **Terraform s moduly**: Předpřipravené, otestované moduly infrastruktury135- **Pulumi**: Infrastruktura jako skutečný kód (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```149150Místo konfigurace RDS parametrů, VPC subnetů, bezpečnostních skupin a zálohovacích politik vývojář jednoduše zadá `size: small` a `backup: daily`. Platforma se postará o zbytek.151152### Vrstva 3: Standardizace CI/CD153154Standardizujte CI/CD, aby si týmy nestavěly každý vlastní 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**Klíčové praktiky:**174- Sdílené CI/CD šablony, které týmy includují (nekopírují)175- Automatické bezpečnostní skenování (SAST, audit závislostí)176- Standardizované strategie nasazení (canary, blue/green)177- Automatický rollback při selhání health checků178179### Vrstva 4: Observabilita180181Předkonfigurovaný monitoring, aby vývojáři dostali dashboardy a alerty ihned k dispozici.182183- **Metriky**: Prometheus + Grafana se standardními dashboardy na službu184- **Logování**: Strukturované logování s centralizovaným sběrem (Loki, ELK)185- **Tracing**: Distribuovaný tracing s OpenTelemetry186- **Alerting**: Integrace PagerDuty/Opsgenie s rozumnými výchozími hodnotami187188```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ěření úspěchu201202Jak poznáte, že vaše platforma funguje? Sledujte tyto metriky:203204### Metriky DORA205- **Frekvence nasazení**: Jak často se kód dostane do produkce206- **Doba dodání změn**: Čas od commitu do produkce207- **Míra selhání změn**: Procento nasazení způsobujících výpadky208- **Střední doba obnovy**: Čas na obnovení služby po incidentu209210### Metriky specifické pro platformu211- **Čas do prvního nasazení**: Jak dlouho od „nové služby" do prvního produkčního nasazení212- **Spokojenost vývojářů (NPS)**: Pravidelně dotazujte uživatele213- **Poměr samoobsluhy**: % požadavků na infrastrukturu vyřízených bez ticketů214- **Adopce zlaté cesty**: % služeb následujících doporučenou cestu215216## Časté chyby217218### 1. Budovat příliš mnoho, příliš brzy219Začněte s největším bolestivým bodem, ne s velkou vizí. Pokud jsou nasazení bolestivá, začněte tam. Pokud provisioning trvá týdny, začněte tam.220221### 2. Nepřistupovat k platformě jako k produktu222Platformový tým potřebuje produktového manažera, výzkum uživatelů a smyčky zpětné vazby. Vývojáři jsou vaši zákazníci - pochopte jejich potřeby.223224### 3. Nařizovat místo přitahovat225Nejlepší platformy jsou přijímány dobrovolně, protože usnadňují život vývojářům. Pokud musíte nařizovat používání, vaše platforma není dostatečně dobrá.226227### 4. Ignorovat vývojářský zážitek228Platforma s hrozným UX nebude používána. Investujte do jasné dokumentace, užitečných chybových zpráv a rychlých smyček zpětné vazby.229230## Jak začít231232Praktický plán pro budování vaší první 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### Minimální životaschopná platforma2582591. **Katalog služeb** (Backstage) - vědět, co existuje a kdo to vlastní2602. **Jedna šablona služby** - zlatá cesta pro váš nejběžnější typ služby2613. **Standardizovaný CI/CD** - sdílený pipeline, který týmy includují2624. **Základní dokumentace** - jak platformu používat, kde získat pomoc263264Toto MVP můžete vybudovat za 2-3 měsíce s týmem 2-3 inženýrů.265266## Závěr267268Platform Engineering není o budování dokonalé platformy od prvního dne. Je to o postupném snižování kognitivní zátěže vývojářů, aby se mohli soustředit na budování produktů. Začněte v malém, měřte dopad a iterujte na základě zpětné vazby vývojářů.269270Organizace, které investují do Platform Engineering, budou mít významnou konkurenční výhodu: rychlejší dodávání, šťastnější vývojáři a spolehlivější systémy.271272**Zdroje:**273- [Team Topologies](https://teamtopologies.com/) - kniha, která zpopularizovala platformové týmy274- [Backstage](https://backstage.io/) - open-source vývojářský portál od Spotify275- [CNCF Platforms White Paper](https://tag-app-delivery.cncf.io/whitepapers/platforms/) - komunitní definice a best practices276- [platformengineering.org](https://platformengineering.org/) - komunita, akce a zdroje277
:Platform Engineering: Jak vybudovat Internal Developer Platformlines 1-277 (END) — press q to close