Zero-downtime deployments
Deployment je non-event.
Blue-green, canary releases, feature flags. Váš tým deployuje denně bez stresu — automatizovaně, testovaně, s okamžitým rollbackem.
Proč deployment nesmí být událost¶
Pokud váš tým má „deployment window” a všichni jsou v pohotovosti, systém vám říká něco důležitého: deployment process je broken. Deployment by měl být rutina — jako commit, jako code review. Automatizovaný, otestovaný, s jasným rollback plánem.
Blue-Green Deployment¶
Dvě identické prostředí:
- Blue — aktuální produkce, obsluhuje 100% trafficu
- Green — nová verze, nasazená a otestovaná
- Smoke testy na green ✅ → traffic switch (DNS nebo load balancer)
- Problém? Switch zpět na blue za sekundy
Pro Kubernetes: Argo Rollouts s automatickými health checks. Rollout se zastaví, pokud metriky překročí threshold.
Canary Releases¶
Postupné rollout pro velké systémy:
- Nová verze dostane 5% trafficu
- Automatické metriky: error rate, latence, business KPI
- Metriky OK → 25% → 50% → 100%
- Metriky špatné → automatický rollback
Celý proces: 30-60 minut. Lidský zásah jen při eskalaci. Argo Rollouts nebo Flagger pro Kubernetes.
Feature Flags¶
Oddělení deploye od release:
- Kód v produkci, feature vypnutá — deploy bez rizika
- Postupné zapínání — interní → beta → 10% → 100%
- A/B testing — variant A vs. B, metriky rozhodnou
- Kill switch — okamžité vypnutí problematické feature
- Targeting — feature jen pro konkrétní uživatele/segmenty
Nástroje: LaunchDarkly, Unleash, custom řešení. Integrace s CI/CD — feature flag se automaticky vytvoří při merge PR s feature flag anotací.
Database Migrations¶
Nejrizikovější část deploymentu. Pravidla:
Expand-Contract Pattern: 1. Expand — Přidejte nový sloupec, nechte starý 2. Migrate — Zkopírujte/transformujte data 3. Switch — Aplikace čte z nového sloupce 4. Contract — Odstraňte starý sloupec
Žádné ALTER TABLE s lockem. Žádné DROP COLUMN při deployi. Každá migrace je rollbackovatelná.
CI/CD Pipeline¶
┌─────────┐ ┌──────────┐ ┌──────────┐ ┌─────────┐ ┌──────────┐
│ Commit │──▶│ Build │──▶│ Test │──▶│ Stage │──▶│ Prod │
│ │ │ + Lint │ │ Unit │ │ E2E │ │ Canary │
│ │ │ + SAST │ │ Integ │ │ Smoke │ │ → Full │
└─────────┘ └──────────┘ └──────────┘ └─────────┘ └──────────┘
│
Auto rollback
on threshold
Commit → production za < 15 minut. Automatizovaně. S quality gates na každém kroku.
Časté otázky
Expand-contract pattern. Přidáme nový sloupec (expand), migrujeme data, odstraníme starý (contract). Žádné breaking changes, žádné locky na tabulkách.
Ano. Blue-green deployment funguje pro monolith i microservices. Feature flags oddělují deploy od release bez ohledu na architekturu.
Základní pipeline (build → test → deploy): 2-4 týdny. Plný progressive delivery stack (canary, feature flags, automated rollback): 4-8 týdnů.