Platform Engineering — Interné vývojárske platformy
Platform engineering je disciplína zameraná na budovanie interných vývojárskych platforiem (IDP), ktoré zjednodušujú a štandardizujú prácu vývojárov. Namiesto toho, aby každý tím riešil infraštruktúru sám, platformový tím poskytuje self-service nástroje a golden paths.
Prečo platform engineering?
DevOps priniesol princíp "you build it, you run it". V praxi to často znamená, že vývojári musia ovládať Kubernetes, Terraform, CI/CD, monitoring — a to ich spomaľuje.
Kognitívna záťaž je hlavný problém:
- Vývojár chce nasadiť službu, ale musí písať Helm charty
- Potrebuje databázu, ale musí konfigurovať Terraform moduly
- Chce monitoring, ale musí nastaviť Prometheus rules
Platform engineering rieši tento problém abstrakciou — vývojár si cez portál klikne "nová služba" a všetko sa vytvorí automaticky.
Internal Developer Platform (IDP)
IDP je súbor nástrojov, workflow a self-service capabilities, ktoré platformový tím buduje a udržiava pre vývojárov.
Komponenty IDP
┌─────────────────────────────────────┐
│ Developer Portal │
│ (Backstage, Port, Cortex) │
├─────────────────────────────────────┤
│ Self-Service Actions │
│ (Create service, Deploy, Scale) │
├─────────────────────────────────────┤
│ Golden Paths & Templates │
│ (Service templates, CI pipelines) │
├─────────────────────────────────────┤
│ Infrastructure Orchestration │
│ (Kubernetes, Terraform, ArgoCD) │
└─────────────────────────────────────┘
Backstage — Open-source developer portal
Backstage je open-source platforma od Spotify, teraz CNCF Incubating projekt. Slúži ako centrálny portál pre vývojárov.
Kľúčové funkcie
- Software Catalog — centrálny register všetkých služieb, knižníc a infraštruktúry
- Software Templates — scaffolding nových projektov podľa štandardov
- TechDocs — dokumentácia ako kód (docs-as-code)
- Plugins — rozšíriteľný ekosystém (Kubernetes, CI/CD, monitoring)
Príklad: catalog-info.yaml
apiVersion: backstage.io/v1alpha1
kind: Component
metadata:
name: payment-service
description: Služba na spracovanie platieb
annotations:
github.com/project-slug: myorg/payment-service
backstage.io/techdocs-ref: dir:.
tags:
- java
- spring-boot
spec:
type: service
lifecycle: production
owner: team-payments
system: checkout
dependsOn:
- component:user-service
- resource:payments-db
providesApis:
- payments-api
Príklad: Software Template
apiVersion: scaffolder.backstage.io/v1beta3
kind: Template
metadata:
name: spring-boot-service
title: Spring Boot Microservice
description: Vytvorí nový Spring Boot microservice s CI/CD
spec:
owner: platform-team
type: service
parameters:
- title: Service Info
properties:
name:
title: Názov služby
type: string
owner:
title: Vlastník
type: string
ui:field: OwnerPicker
- title: Infrastructure
properties:
database:
title: Databáza
type: string
enum: [none, postgresql, mysql]
steps:
- id: fetch
name: Fetch Template
action: fetch:template
input:
url: ./skeleton
values:
name: ${{ parameters.name }}
- id: publish
name: Create Repository
action: publish:github
input:
repoUrl: github.com?owner=myorg&repo=${{ parameters.name }}
- id: register
name: Register in Catalog
action: catalog:register
input:
repoContentsUrl: ${{ steps.publish.output.repoContentsUrl }}
catalogInfoPath: /catalog-info.yaml
Golden Paths
Golden paths sú odporúčané, predpripravené cesty pre bežné úlohy. Nie sú vynútené — vývojári ich môžu obísť, ale nemajú dôvod.
Príklady golden paths
| Úloha | Golden Path |
|---|---|
| Nová služba | Backstage template → repo + CI/CD + monitoring |
| Databáza | Self-service formulár → managed PostgreSQL |
| Deployment | Merge do main → auto-deploy cez ArgoCD |
| Monitoring | Automatický dashboard + základné alerty |
| Dokumentácia | TechDocs v repo → auto-publish do portálu |
Princípy golden paths
- Paved, not enforced — ľahká cesta, nie jediná cesta
- Opiniated defaults — rozumné predvolené nastavenia
- Escape hatch — možnosť customizácie keď treba
- Continuously improved — iterácia na základe feedback-u
Self-Service infraštruktúra
Kľúčový princíp platform engineering je self-service. Vývojári by nemali otvárať tickety pre bežné operácie.
Príklady self-service akcií
# Vývojár chce novú službu:
# 1. Otvorí Backstage
# 2. Vyberie template "Node.js Service"
# 3. Vyplní názov, tím, požiadavky
# 4. Klikne "Create"
# Automaticky sa vytvorí:
# ✅ GitHub repo so štandardnou štruktúrou
# ✅ CI/CD pipeline (GitHub Actions)
# ✅ Kubernetes manifesty (Helm chart)
# ✅ ArgoCD Application
# ✅ Grafana dashboard
# ✅ PagerDuty service
# ✅ Záznam v Software Catalog
Crossplane pre infraštruktúru
Crossplane umožňuje definovať infraštruktúru (databázy, cache, queues) ako Kubernetes objekty:
apiVersion: database.example.org/v1alpha1
kind: PostgreSQLInstance
metadata:
name: payments-db
namespace: payments
spec:
parameters:
storageGB: 20
version: "16"
compositionSelector:
matchLabels:
provider: aws
env: production
Metriky platformy
Ako merať úspech platformy? DORA metriky a developer experience:
| Metrika | Popis | Cieľ |
|---|---|---|
| Lead time | Od commit-u po production | < 1 hodina |
| Deployment frequency | Ako často nasadzujeme | Viackrát denne |
| Time to onboard | Čas na prvý deployment nového vývojára | < 1 deň |
| Self-service ratio | % operácií bez ticketov | > 90 % |
| Developer satisfaction | NPS/survey skóre | > 8/10 |
Nástroje ekosystému
| Kategória | Nástroje |
|---|---|
| Developer Portal | Backstage, Port, Cortex, OpsLevel |
| IaC Orchestration | Crossplane, Terraform Cloud, Pulumi |
| GitOps | ArgoCD, Flux |
| Service Catalog | Backstage, ServiceNow |
| Scaffolding | Cookiecutter, Yeoman, Backstage Templates |
| Score | Score (platform-agnostic workload spec) |
Ako začať s platform engineering
- Zmapujte developer journey — kde sú pain points?
- Začnite malým tímom (2-3 ľudia) — platforma je produkt
- Prvý quick win — automatizujte najčastejší manuálny proces
- Iterujte — zbierajte feedback, merajte, vylepšujte
- Dokumentujte golden paths — aj jednoduchý README pomáha
- Nebudujte všetko — integrujte existujúce nástroje
Best Practices
- Platforma je produkt — má zákazníkov (vývojárov), roadmapu, backlog
- Treat developers as customers — UX je dôležitý
- Abstrahácia, nie skrývanie — vývojári by mali vedieť, čo sa deje pod povrchom
- Opt-in, nie mandate — ak je platforma dobrá, ľudia ju budú používať
- Feedback loops — pravidelné user research s vývojármi
Platform engineering premosťuje priepasť medzi DevOps princípmi a realitou vývojárskych tímov. Namiesto toho, aby každý vývojár bol DevOps expert, platformový tím buduje nástroje, ktoré to umožňujú automaticky.