CI/CD — Kontinuálna integrácia a nasadenie
CI/CD je súbor praktík, ktoré automatizujú proces zostavenia, testovania a nasadenia softvéru. Je to chrbtová kosť moderného DevOps.
CI — Continuous Integration
Vývojári častým mergovaním kódu do hlavnej vetvy spúšťajú automatizované buildy a testy. Cieľ: odhaliť chyby čo najskôr.
Princípy CI:
- Commitujte často (minimálne raz denne)
- Každý commit spustí automatický build
- Testy bežia pri každom builde
- Oprava buildov má najvyššiu prioritu
CD — Continuous Delivery / Deployment
Continuous Delivery — kód je vždy v nasaditeľnom stave, ale nasadenie do produkcie vyžaduje manuálne schválenie.
Continuous Deployment — každá zmena, ktorá prejde testami, sa automaticky nasadí do produkcie.
Pipeline
Typická CI/CD pipeline:
- Source — commit spustí pipeline (webhook)
- Build — kompilácia, Docker build
- Test — unit testy, integračné testy, linting
- Security — SAST/DAST sken, dependency audit
- Deploy Staging — nasadenie do testovacieho prostredia
- Deploy Production — nasadenie do produkcie
Nástroje
| Nástroj | Typ |
|---|---|
| GitHub Actions | Cloud CI/CD |
| GitLab CI | Integrovaný CI/CD |
| Jenkins | Self-hosted |
| CircleCI | Cloud CI/CD |
| ArgoCD | GitOps pre K8s |
| Tekton | Cloud-native pipelines |
GitHub Actions — príklad
name: CI/CD
on:
push:
branches: [main]
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npm ci
- run: npm test
- run: docker build -t app .
- run: docker push registry/app:latest
Best Practices
- Pipeline by mala trvať pod 10 minút
- Paralelizujte testy
- Používajte caching (dependencies, Docker layers)
- Implementujte rollback stratégiu
- Monitorujte nasadenia po deploy
CI/CD výrazne skracuje čas medzi napísaním kódu a jeho doručením používateľom.