spinny:~/writing $ less platform-engineering-internal-developer-platform.md
12Ahogy a szoftverrendszerek egyre összetettebbé válnak - mikroszolgáltatások, Kubernetes, multi-cloud, CI/CD pipeline-ok, megfigyel hetőségi veremek - a fejlesztők egyre több időt töltenek az infrastruktúrával és kevesebbet a termékek építésével. A **Platform Engineering** ezt úgy oldja meg, hogy létrehoz egy belső platformot, amely elvonatkoztat a bonyolultságtól, és önkiszolgáló eszközöket biztosít a fejlesztőknek a gyorsabb szállításhoz.34A Gartner azt jósolja, hogy 2027-re a **szoftvermérnöki szervezetek 80%-a** platformcsapatokat hoz létre. Ebben az útmutatóban megvizsgáljuk, mi a Platform Engineering, miért fontos, és hogyan építsünk Internal Developer Platformot a nulláról.56## Mi az a Platform Engineering?78A Platform Engineering az eszközláncok és munkafolyamatok tervezésének és építésének tudományága, amelyek önkiszolgáló képességeket tesznek lehetővé szoftvermérnöki szervezetek számára. Az eredmény egy **Internal Developer Platform (IDP)** - egy réteg, amely a fejlesztők és az infrastruktúra között helyezkedik el.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 DevOps4546A Platform Engineering nem a DevOps helyettesítője - hanem a következő evolúció. A DevOps azt mondta: „te építed, te üzemelteted." A Platform Engineering azt mondja: „az építést és üzemeltetést könnyűvé tesszük."4748| Szempont | DevOps | Platform Engineering |49|----------|--------|---------------------|50| **Fókusz** | Kultúra és gyakorlatok | Termékek és önkiszolgálás |51| **Megközelítés** | Minden csapat kezeli az infrastruktúrát | A platformcsapat elvonatkoztatja az infrastruktúrát |52| **Kognitív terhelés** | Magas (minden csapat mindent megtanul) | Alacsony (arany utak biztosítva) |53| **Eredmény** | CI/CD pipeline-ok, IaC szkriptek | Internal Developer Platform |54| **Felhasználók** | Az összes mérnöki terület | A platformcsapat szolgálja a mérnöki területet |5556## Miért Fontos a Platform Engineering5758### A Kognitív Terhelés Problémája5960Egy tipikus modern szervezetben a fejlesztőnek értenie kell:6162- Git munkafolyamatok és elágazási stratégiák63- CI/CD pipeline konfiguráció64- Konténer építés és registry kezelés65- Kubernetes manifestek és Helm Charts66- Felhőszolgáltató szolgáltatások (AWS/GCP/Azure)67- Hálózat, DNS, TLS tanúsítványok68- Monitorozás, naplózás, riasztás beállítása69- Adatbázis kiépítés és migrációk70- Biztonsági politikák és megfelelőség7172Ez hatalmas kognitív teher, amely elvonja a figyelmet a tényleges termékről.7374### Az Arany Út7576A Platform Engineering bevezeti az **arany utak** fogalmát - véleményes, jól támogatott és dokumentált utak a gyakori feladatokhoz. Az arany út nem kötelező; a fejlesztők *eltérhetnek*, de a platform a helyes dolgot könnyűvé teszi.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**Arany út példa új mikroszolgáltatás létrehozásához:**901. A fejlesztő kiválasztja az „Új Backend Szolgáltatás"-t a portálon912. Nyelvet/keretrendszert választ (Node.js, Go, Python)923. A platform automatikusan létrehozza: Git repository, CI/CD pipeline, Kubernetes namespace, monitorozási dashboard-ok és riasztási szabályok934. A fejlesztő klónozza a repository-t és azonnal elkezd kódolni9495## Internal Developer Platform Építése9697### Réteg 1: Developer Portal9899A portál az egyetlen belépési pont a fejlesztők számára. A legnépszerűbb nyílt forráskódú lehetőség a **Backstage** (a Spotify készítette, most CNCF projekt).100101Kulcsfontosságú funkciók:102- **Szolgáltatáskatalógus**: Minden szolgáltatás, tulajdonosa, dokumentációja és függőségei103- **Szoftversablonok**: Scaffolding új szolgáltatásokhoz beépített legjobb gyakorlatokkal104- **Technikai dokumentáció**: Dokumentáció mint kód, renderelt és kereshető105- **Plugin ökoszisztéma**: Egyéni funkcionalitással bővíthető106107```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### Réteg 2: Infrastruktúra Absztrakció129130A fejlesztőknek nem kellene közvetlenül Terraform-ot vagy Kubernetes YAML-t írniuk. A platformnak absztrakciókat kell biztosítania.131132**Eszközök:**133- **Crossplane**: Kubernetes-natív infrastruktúra kiépítés134- **Terraform modulokkal**: Előre elkészített, tesztelt infrastruktúra modulok135- **Pulumi**: Infrastruktúra mint valódi 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```149150Az RDS paraméterek, VPC alhálózatok, biztonsági csoportok és mentési politikák konfigurálása helyett a fejlesztő egyszerűen megadja: `size: small` és `backup: daily`. A platform intézi a többit.151152### Réteg 3: CI/CD Szabványosítás153154Szabványosítsa a CI/CD-t, hogy a csapatok ne építsék mindegyik a saját pipeline-jukat.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**Kulcsfontosságú gyakorlatok:**174- Megosztott CI/CD sablonok, amelyeket a csapatok beillesztenek (nem másolnak)175- Automatikus biztonsági vizsgálat (SAST, függőség audit)176- Szabványosított telepítési stratégiák (canary, blue/green)177- Automatikus visszaállítás sikertelen health check-ek esetén178179### Réteg 4: Megfigyelhetőség180181Előre konfigurált monitorozás, hogy a fejlesztők azonnal megkapják a dashboard-okat és riasztásokat.182183- **Metrikák**: Prometheus + Grafana szabványos dashboard-okkal szolgáltatásonként184- **Naplózás**: Strukturált naplózás központosított gyűjtéssel (Loki, ELK)185- **Nyomkövetés**: Elosztott nyomkövetés OpenTelemetry-vel186- **Riasztás**: PagerDuty/Opsgenie integráció ésszerű alapértelmezésekkel187188```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## A Siker Mérése201202Honnan tudja, hogy platformja működik? Kövesse ezeket a metrikákat:203204### DORA Metrikák205- **Telepítés gyakorisága**: Milyen gyakran jut el a kód a produkcióba206- **Változtatások átfutási ideje**: Idő a commit-tól a produkcióig207- **Változtatások hibaaránya**: A hibákat okozó telepítések százaléka208- **Átlagos helyreállítási idő**: A szolgáltatás helyreállítási ideje incidens után209210### Platform-specifikus Metrikák211- **Első telepítésig eltelt idő**: Mennyi idő az „új szolgáltatás"-tól az első produkciós telepítésig212- **Fejlesztői elégedettség (NPS)**: Rendszeresen kérdezze meg felhasználóit213- **Önkiszolgálási arány**: Az infrastruktúra kérések %-a jegyek nélkül kezelve214- **Arany út elfogadása**: Az ajánlott utat követő szolgáltatások %-a215216## Gyakori Hibák217218### 1. Túl Sokat Építeni, Túl Korán219Kezdje a legnagyobb fájdalomponttal, ne egy nagy vízióval. Ha a telepítések fájdalmasak, onnan kezdje. Ha a kiépítés hetekig tart, onnan kezdje.220221### 2. A Platformot Nem Termékként Kezelni222A platformcsapatnak szüksége van termékmenedzserre, felhasználói kutatásra és visszacsatolási hurkokra. A fejlesztők az ügyfelek - értse meg szükségleteiket.223224### 3. Előírni Vonzás Helyett225A legjobb platformokat önkéntesen fogadják el, mert könnyebbé teszik a fejlesztők életét. Ha kötelezővé kell tennie a használatot, platformja nem elég jó.226227### 4. A Fejlesztői Élmény Figyelmen Kívül Hagyása228A szörnyű UX-el rendelkező platformot nem fogják használni. Fektessen be világos dokumentációba, hasznos hibaüzenetekbe és gyors visszacsatolási hurkokba.229230## Első Lépések231232Gyakorlati ütemterv első IDP-je felépítéséhez: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álisan Életképes Platform2582591. **Szolgáltatáskatalógus** (Backstage) - tudja, mi létezik és ki a tulajdonos2602. **Egy szolgáltatássablon** - arany út a leggyakoribb szolgáltatástípushoz2613. **Szabványosított CI/CD** - megosztott pipeline, amelyet a csapatok beillesztenek2624. **Alap dokumentáció** - hogyan használja a platformot, hol kérjen segítséget263264Ezt az MVP-t 2-3 hónap alatt felépítheti 2-3 mérnökből álló csapattal.265266## Összefoglalás267268A Platform Engineering nem arról szól, hogy az első naptól tökéletes platformot építünk. Arról szól, hogy fokozatosan csökkentjük a fejlesztők kognitív terhelését, hogy a termékek építésére koncentrálhassanak. Kezdjen kicsiben, mérje a hatást, és iteráljon a fejlesztői visszajelzések alapján.269270A Platform Engineering-be befektető szervezetek jelentős versenyelőnnyel rendelkeznek majd: gyorsabb szállítás, boldogabb fejlesztők és megbízhatóbb rendszerek.271272**Források:**273- [Team Topologies](https://teamtopologies.com/) - a könyv, amely népszerűvé tette a platformcsapatokat274- [Backstage](https://backstage.io/) - a Spotify nyílt forráskódú fejlesztői portálja275- [CNCF Platforms White Paper](https://tag-app-delivery.cncf.io/whitepapers/platforms/) - közösségi definíció és legjobb gyakorlatok276- [platformengineering.org](https://platformengineering.org/) - közösség, események és források277
:Platform Engineering: Hogyan Építsünk Internal Developer Platformotlines 1-277 (END) — press q to close