Continuous Integration a Continuous Delivery jsou základem moderního software delivery. Praktické best practices pro pipeline design, testovací strategii a bezpečný deployment.
CI/CD jako konkurenční výhoda¶
Schopnost rychle a bezpečně doručovat software do produkce je klíčová konkurenční výhoda. Firmy s mature CI/CD pipeline deployují desítky až stovky krát denně s minimálním rizikem.
CI (Continuous Integration) = automatický build a test při každém commitu. CD (Continuous Delivery) = automatizovaná cesta od commitu do produkce, kde deployment vyžaduje manuální schválení. Continuous Deployment = plně automatický deployment bez lidského zásahu.
Pipeline design¶
Efektivní CI/CD pipeline má jasné stages:
# Příklad Jenkins/GitLab CI pipeline
stages:
- build
- unit-tests
- integration-tests
- security-scan
- deploy-staging
- smoke-tests
- deploy-production
build:
script:
- docker build -t app:${CI_COMMIT_SHA} .
- docker push registry.company.com/app:${CI_COMMIT_SHA}
unit-tests:
script:
- docker run app:${CI_COMMIT_SHA} npm test
deploy-production:
script:
- helm upgrade app ./chart --set image.tag=${CI_COMMIT_SHA}
when: manual # Manuální gate pro produkci
Každý stage je gate — selhání zastaví pipeline. Fast feedback: unit testy běží první (rychlé), integration testy později (pomalé).
Testovací strategie¶
Testovací pyramida definuje poměr testů:
- Unit testy (70%)** — rychlé, izolované, tisíce testů za sekundy
- Integration testy (20%)** — testují spolupráci komponent, databáze, API
- E2E testy (10%)** — celý systém, pomalé ale důležité pro kritické flows
Další vrstvy:
- Static analysis** — linting, type checking (ESLint, TypeScript)
- Security scanning** — dependency vulnerability check (Snyk, npm audit)
- Performance testy** — load testing v staging prostředí
Deployment strategie¶
Bezpečné deployment strategie:
- Rolling update** — postupná výměna instancí, zero-downtime
- Blue/Green** — dva identické prostředí, switch na úrovni load balanceru
- Canary** — nová verze pro malé procento traffic, postupné rozšíření
- Feature flags** — deployment kódu neznamená release funkcionality
Rollback plán je povinný — automatický rollback při selhání health checks. Monitoring a alerting musí být součástí deployment procesu.
Závěr: pipeline je produkt¶
CI/CD pipeline je produkt, který vyžaduje údržbu a iteraci. Investujte do spolehlivé, rychlé pipeline — každá minuta čekání na build stojí vývojáře produktivitu. Měřte deployment frequency, lead time a change failure rate. Cíl: od commitu do produkce za minuty, ne dny.