Continuous Deployment je praktika automatického nasazování každé změny kódu do produkce po absolvování všech fází ověření. Na rozdíl od Continuous Delivery, kde vydání vyžaduje ruční potvrzení, tento model eliminuje lidský faktor z procesu nasazování. Podle zprávy Puppet State of DevOps, 2025, týmy s nastaveným CD dosahují 106krát častějších nasazení ve srovnání s tradičními přístupy.
Hlavní body
Continuous Deployment je metoda vývoje, při které je každá změna kódu, která projde všemi automatizovanými kontrolami, automaticky nasazena do produkčního prostředí. Proces nevyžaduje ruční schválení — pokud kód prošel kompilací, testy a analýzou, okamžitě se dostává k uživatelům.
Koncepce CD je úzce spjata s kulturou DevOps a vyžaduje vysoký stupeň automatizace. Tým musí důvěřovat svým testům a mít mechanismy rychlého vrácení pro případ problémů. Bez těchto podmínek se automatické nasazování stává riskantním.
Podle Google Cloud DORA, 2025 špičkoví pracovníci (elite performers) nasazují kód několikrát denně, zatímco týmy s nízkou efektivitou — jednou měsíčně. Tento rozdíl je dosahován právě díky Continuous Deployment a souvisejícím postupům CI/CD.
V tradičním přístupu vycházejí verze jednou za několik týdnů nebo měsíců. Vývojáři hromadí změny, což vede ke složitým slučováním a konfliktům. CD obrací tento model: změny vycházejí jednotlivě, ihned po dokončení. To snižuje složitost každé verze a zjednodušuje vyhledávání problémů.
Pro zavedení CD jsou potřebné přepínače funkcí (feature toggles), které umožňují skrýt nedokončenou funkcionalitu před uživateli. Bez nich vývojáři nemohou bezpečně slučovat nedokončené funkce. Je také vyžadováno komplexní monitorování a alerting — pokud nasazení poškodí prostředí, tým se o tom musí dozvědět během několika minut.
Zajišťování kvality v CD není samostatná fáze, ale nepřetržitý proces. Každý commit prochází stovkami nebo tisíci automatizovanými testy: jednotkovými, integračními, UI testy a testy snímků obrazovky. Pokud byť jeden test selže — nasazení je blokováno do opravy.
Termíny CI, CD a Continuous Delivery jsou často zaměňovány, ačkoli popisují různé fáze automatizace doručování kódu. Porozumění rozdílům je kritické pro vybudování správné pipeline.
| Postup | Co dělá | Výsledek |
|---|---|---|
| CI (Continuous Integration) | Automatická kompilace a testování při každém commitu | Kód je vždy v provozuschopném stavu |
| Continuous Delivery | CI + automatická příprava vydání (ruční spouštěč nasazení) | Verze je připravena k nasazení kdykoli |
| Continuous Deployment | Continuous Delivery + automatické nasazení do produkce | Změny se dostávají k uživatelům bez zpoždění |
Kontinuální integrace (CI) — základ pro oba modely. Bez ní není možné ani Continuous Delivery, ani CD. CI zaručuje, že kód není rozbitý a je připravený pro další fáze.
Continuous Delivery — je situace, kdy tým může kdykoli stisknout tlačítko a vydat verzi. Rozdíl oproti CD spočívá v tom, že Continuous Delivery ponechává konečné rozhodnutí na člověku (Release Managerovi nebo DevOps inženýrovi). CD tuto bránu zcela odstraňuje.
Pro projekty s regulatorními požadavky (fintech, lékařství) nebo tam, kde každé vydání prochází povinnou ruční kontrolou (schválení zainteresovaných stran), je Continuous Delivery bez plné automatizace bezpečnější volbou. CD funguje nejlépe pro produkty SaaS a mobilní aplikace s rychlým cyklem aktualizací.
Plná CD pipeline zahrnuje několik po sobě jdoucích fází. Každá fáze filtruje vady — pokud je fáze úspěšně dokončena, kód postupuje dále. Podívejme se na typický řetězec pro mobilní aplikaci.
Vše začíná pushem do repozitáře. CI server (například GitHub Actions nebo Jenkins) obdrží webhookové oznámení, načte nejnovější verzi kódu a spustí kompilaci. Pro Android to může být `./gradlew assembleRelease`, pro iOS — `xcodebuild -workspace App.xcworkspace -scheme App -configuration Release`.
name: CI Pipeline
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build Android APK
run: ./gradlew assembleRelease
- name: Run Unit Tests
run: ./gradlew test DebugUnitTestCoverage
Po úspěšné kompilaci se spouští testy: jednotkové, integrační, UI a statická analýza kódu. Systém kontroly kvality kontroluje pokrytí kódu, přítomnost zranitelností a dodržování stylu kódování. Pokud nejsou prahy dosaženy — pipeline se zastaví.
Pokud jsou všechny testy úspěšné, artefakt je automaticky nasazen do stagingového prostředí. Tam se provádějí end-to-end testy a výkonnostní testy. V této fázi mohou být připojeny integrační kontroly s externími službami.
Závěrečná fáze — vydání do produkce. Pro snížení rizik se používají canary vydání (canary releases), kdy je nová verze nejprve poskytnuta malému procentu uživatelů. Pokud jsou metriky stabilní — provoz se postupně zvyšuje na 100%.
pipeline {
agent any
stages {
stage('Build') {
steps {
sh './gradlew assembleRelease'
}
}
stage('Test') {
steps {
sh './gradlew test'
}
}
stage('Deploy') {
steps {
sh './deploy.sh --canary 5%'
}
}
}
post {
failure {
notify 'devops-team'
}
}
}
Na trhu existuje mnoho platforem podporujících CD. Výběr závisí na technologickém stacku, velikosti týmu a rozpočtu na infrastrukturu. Podívejme se na hlavní kategorie a jejich zástupce.
GitHub Actions, GitLab CI/CD, CircleCI a Bitbucket Pipelines nabízejí vestavěnou podporu pipeline. Integrují se s cloudovými registry (Docker Hub, GitHub Container Registry) a podporují nasazení na AWS, Google Cloud, Azure a Firebase App Distribution.
Spinnaker, ArgoCD a Flux — nástroje zaměřené výhradně na CD. Nabízejí pokročilé strategie nasazení: blue-green, canary, rolling update. ArgoCD je obzvláště populární v ekosystému Kubernetes díky přístupu GitOps, kde je stav infrastruktury popsán v repozitáři Git.
Fastlane — de facto standard pro automatizaci kompilace a publikování v App Store a Google Play. Integruje se s CI servery a spravuje podepisování kódu, snímky obrazovky, beta distribuci prostřednictvím TestFlight a Internal App Sharing. Bitrise a Codemagic — specializované CI/CD pro mobilní aplikace.
# Fastfile — konfigurace Fastlane
default_platform(:android)
platform :android do
desc "Deploy a new version to Google Play"
lane :deploy do
gradle(task: 'assembleRelease')
upload_to_play_store(
track: 'production',
release_status: 'completed'
)
end
end
Přechod na Continuous Deployment vyžaduje nejen technickou přípravu, ale také změny v kultuře týmu. Bez správných postupů může automatické nasazování vést k častým incidentům a snížení důvěry v proces.
Feature flags umožňují nasadit nedokončený kód do produkce, ale skrýt ho před uživateli. To je základ CD — vývojáři mohou slučovat změny kdykoli, bez čekání na dokončení funkce. LaunchDarkly, Flagsmith a ConfigCat jsou populární platformy pro správu přepínačů funkcí.
Bez metrik nelze úspěšnost nasazení posoudit. Klíčové metriky: doba odezvy (latency), míra chybovosti (error rate), propustnost (throughput). Používejte nástroje jako Datadog, New Relic nebo Grafana pro sledování každé verze v reálném čase.
Kritický postup CD — mechanismus automatického vrácení. Pokud se po nasazení metriky zhorší (error rate překročí práh), systém by měl sám vrátit předchozí verzi. To zkracuje dobu obnovy (MTTR) z hodin na minuty.
CD pipeline je cenný majetek a potenciální cíl pro útoky. Používejte správu tajemství (Vault, AWS Secrets Manager), podepisujte artefakty a kontejnery, skenujte závislosti na zranitelnosti (Dependabot, Snyk). Nikdy neukládejte přístupové klíče v repozitáři.
Často kladené otázky
Continuous Delivery připraví verzi, ale vyžaduje ruční potvrzení pro nasazení do produkce. Continuous Deployment automatizuje i tento krok — kód se dostává k uživatelům bez lidského zásahu po absolvování všech kontrol.
Technicky ano, ale významně to komplikuje proces. Bez přepínačů funkcí nemohou vývojáři slučovat nedokončený kód, což zpomaluje práci a zvyšuje riziko konfliktů při slučování.
Pro malý tým od nuly — 2 až 6 měsíců. Doba závisí na současné úrovni automatizace, složitosti projektu a připravenosti týmu na změny v procesech.
Základní DORA metriky: frekvence nasazení (deploy frequency), doba provedení změn (lead time), průměrná doba obnovy (MTTR) a procento neúspěšných změn (change failure rate).
Ne, pro projekty s přísnými regulatorními požadavky (například lékařské nebo finanční systémy) je často vyžadováno ruční schválení každé verze. V takových případech je vhodnější Continuous Delivery.
Shrnutí
Vyvineme mobilní aplikaci na klíč
IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.
Přečtěte si také