CI/CD pipeline
CI/CD pipeline pro cloudové aplikace je základní automatizační systém, který spolehlivě, bezpečně a opakovatelně přenáší změny kódu a infrastruktury do provozu. Ve světě cloud-native (kontejnery, Kubernetes, serverless, spravované služby) pipeline nezahrnuje pouze kompilaci a nasazení, ale také supply-chain security, generování SBOM, policy-as-code, synchronizaci GitOps, správu tajemství a observabilitu napříč prostředími. Tento text shrnuje doporučenou architekturu, postupy a šablony, které vám umožní vybudovat profesionální CI/CD pro veřejný cloud i hybridní topologie.
Principy cloud-native CI/CD
- Pipeline jako kód: definice workflow v YAML (GitHub Actions, GitLab CI, Jenkinsfile) verzované v repozitáři.
- Deklarativní nasazení: Helm/Kustomize, Argo CD/Flux (GitOps) jako zdroj pravdy pro stav prostředí.
- Nezávislé artefakty: OCI image pro aplikaci, chart/kustomization pro deployment, Terraform pro infrastrukturu.
- Bezpečnost by design: SAST/SCA, skenování image, podepisování artefaktů, OIDC-federace bez statických klíčů.
- Rychlá zpětná vazba: paralelní testy, ephemeral prostředí pro PR, canary/blue-green rollout s automatickým vyhodnocováním SLO.
Referenční architektura
- SCM & CI: Git + CI orchestrátor (GitHub Actions/GitLab CI/Jenkins/CircleCI).
- Artefakty: Container Registry (ECR/GCR/ACR/GHCR), Helm repo, sběr SBOM (CycloneDX/Syft).
- CD: GitOps kontroler (Argo CD/Flux) sledující environment repozitář.
- IaC: Terraform (základ + per-app moduly), vzdálený state, schvalovací kroky.
- Secrets: cloudové trezory (AWS Secrets Manager, GCP Secret Manager, Azure Key Vault) + Sealed Secrets/External Secrets pro K8s.
- Observabilita: Prometheus/Grafana, OpenTelemetry, centralizované logy (Loki/ELK), alerting.
Strategie větví a verzování
- Trunk-based development: krátké feature větve, rychlé slučování, minimální odchylky od
main. - Conventional Commits + SemVer: automatické generování tagů, changelogu a release artefaktů.
- Ochrana hlavní větve: povinné revize, status checky (lint/test/scan), zákaz přímých pushů.
Build kontejnerů a supply-chain security
- Deterministický build: lockfile, multi-stage Dockerfile, reprodukovatelné verze.
- Multi-arch image: buildx a qemu pro
linux/amd64alinux/arm64, pokud cílíte i na edge. - SBOM: generujte CycloneDX/SPDX, ukládejte v registru a přikládejte k release.
- Skener zranitelností: Trivy/Grype na image i závislosti (SCA), fail policy pro kritické CVE.
- Podpis artefaktů: Cosign/Sigstore a admission policy v clusteru, která vyžaduje ověřený podpis.
Testovací pyramida a ephemeral prostředí
- Unit & komponentní testy: nejrychlejší vrstva spuštěná při každém commitu.
- Integrační testy: vůči závislostem v kontejnerech (Docker Compose) nebo ve sdíleném testovacím clusteru.
- Kontraktové testy: Pact/Schema validace pro API mezi týmy/mikroslužbami.
- Ephemeral/preview prostředí: pro každý PR vytvořte izolovanou instanci aplikace (namespace), spusťte E2E testy (Playwright/Cypress) a po uzavření PR je odstraňte.
- Výkonnostní smoke: k6 s krátkým profilem během PR; plná zátěž až na stagingu.
Infrastruktura jako kód (Terraform)
- Oddělení vrstev: foundation (VPC, sítě, KMS, registry) vs. aplikační stack (databáze, fronty, buckety).
- Workspaces a moduly: prostředí dev/stage/prod, jednotné moduly pro opakovatelnost.
- Plan → approve → apply: plan jako artefakt, ruční schválení před apply v produkci.
- Remote state + zamykání: S3/GCS/Blob s DynamoDB/lock tabulkou → prevence kolizí.
GitOps a správa prostředí
- Environment repo: samostatný repozitář s Helm values/Kustomize pro dev/stage/prod.
- CD tok: CI po buildu image vytvoří PR do env repozitáře, který mění tag verze; Argo CD/Flux doručí změnu do clusteru.
- Detekce driftu: zákaz manuálních zásahů mimo Git; alerty při odchylce stavu.
Strategie nasazení a návratů
- RollingUpdate: výchozí vyvážená strategie pro běžné releasy.
- Blue/Green: paralelní prostředí a atomický přepínač trafficu (Ingress/Gateway).
- Canary: postupné procentuální navyšování, automatické zastavení při degradaci SLO (Argo Rollouts/Flagger).
- Instant rollback: uchovávejte N posledních tagů a reverzibilní migrace DB.
Datové migrace a kompatibilita
- Expand/contract pattern: nejprve přidat nový sloupec/endpoint, nasadit kompatibilní verzi, poté odstranit staré.
- Řízené migrace: Flyway/Liquibase spouštěné jako samostatný job/helm hook s ochrannými mechanismy.
- Backfill a idempotence: migrační skripty musí být bezpečné při opakovaném spuštění.
Identity, tajemství a přístup
- OIDC federace: CI běh získává krátkodobé tokeny do cloudu; žádné statické klíče v tajemstvích CI.
- External Secrets: synchronizace tajemství z cloudového trezoru do K8s; audit přístupů a rotace.
- Princip minimálních práv: jemnozrnná IAM/RBAC pro nasazování i provoz aplikací.
Observabilita a SRE v pipeline
- SLI/SLO: definujte cíle latence, chyb a saturace; CI/CD vyhodnocuje error budget před produkčním rolloutem.
- Automatizované verification gates: po nasazení na canary/staging spouštějte health check, dotazy metrik a smoke E2E testy; při zhoršení → automatický rollback.
- Release telemetry: každé nasazení zaznamenejte s verzí/tagem v metrikách/logech pro korelaci incidentů.
Security (DevSecOps) end-to-end
- SAST/CodeQL: na každý PR; blokování merge při kritických nálezech.
- SCA + licenční politika: závislosti bez zakázaných licencí; allowlist v CI.
- DAST: lehké testy proti preview/staging (OWASP ZAP) s časovým limitem.
- Podpis a ověření: Cosign + Kyverno/OPA Gatekeeper policy vyžadující platný podpis a SBOM.
Policy as Code a compliance
- OPA/Kyverno: vynucení pravidel (např.
runAsNonRoot, omezení zdrojů) při povolení nasazení do clusteru. - Terraform policy (OPA/Sentinel): zákaz veřejných bucketů, povinné šifrování apod.
- Auditní stopa: uchovávejte plan/apply artefakty, deployment manifesty a schválení.
Náklady a efektivita pipeline
- Smart caching: cache závislostí a Docker vrstev; krátká expirace pro časté knihovny.
- Paralelizace a matice: paralelní běhy pro OS/arch/test shardy s limitem souběžných běhů.
- Self-hosted runneři: pro náročné buildy; auto-scaling přes spot/přejmenované instance.
Multi-cloud a hybrid
- Abstrakce: OCI image, Helm chart a OpenTelemetry udrží přenositelnost.
- Oddělení přihlašování: OIDC role pro každý cloud; žádné sdílené klíče.
- Federované GitOps: více instancí Argo CD per cloud, centrální app-of-apps vzor.
Serverless a event-driven specifika
- Balíčkování: ZIP/OCI pro funkce (AWS Lambda, Cloud Functions) s handler kontrakty.
- Infrastrukturní změny: SAM/Serverless Framework/Terraform; canary alias (AWS Lambda) pro postupné rollouty.
- Contract testy eventů: schema (JSON Schema/Avro) verzování a validace v CI.
Ukázka CI workflow (GitHub Actions)
Minimalistická kostra: build, test, SBOM, scan, podpis, push do registru, PR do environment repozitáře.
name: ci
on: [push, pull_request]
jobs:
build-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with: { node-version: 20 }
- run: npm ci && npm run lint && npm test -- --ci
- name: Build image
run: docker buildx build -t ghcr.io/org/app:${{ github.sha }} .
- name: SBOM
run: syft packages ghcr.io/org/app:${{ github.sha }} -o cyclonedx-json > sbom.json
- name: Scan
run: trivy image --exit-code 1 --severity HIGH,CRITICAL ghcr.io/org/app:${{ github.sha }}
- name: Push image
run: echo $CR_PAT | docker login ghcr.io -u $GITHUB_ACTOR --password-stdin && docker push ghcr.io/org/app:${{ github.sha }}
Ukázka GitOps změny (Helm values)
CI vytvoří PR v environment repozitáři, které změní tag image:
# env/prod/app/values.yaml
image:
repository: ghcr.io/org/app
tag: sha-abcd1234
rollout:
strategy: canary
resources:
limits: { cpu: "500m", memory: "512Mi" }
Kontrolní seznam pro produkční připravenost
- Build je deterministický; image obsahuje SBOM a podpis (Cosign).
- Testy: unit/integrace/kontrakt/E2E, minimální coverage a povinné quality gates.
- Skener závislostí a image blokuje kritické CVE; licenční politika je vynucena.
- Secrets spravovány přes OIDC + trezor; žádné statické klíče v CI.
- GitOps pro prostředí s detekcí driftu; zákaz kubectl apply přímo do produkce.
- Strategie rolloutů (canary/blue-green) s automatickým ověřením SLO a rollbackem.
- Terraform s plan/approve/apply, verzované moduly a auditní stopa.
- Observabilita: metriky/logy/tracing, runbooky, alerty s nízkým šumem.
Nejčastější přešlapy a jak se jim vyhnout
- Nasazení bez verifikace: chybí post-deploy testy/telemetrie → dochází k regresnímu chování.
- Manuální zásahy: změny mimo Git → ztráta auditu, configuration drift.
- Secrets v repozitáři: nahraďte OIDC, skenujte historii tajemství (git-secrets, Gitleaks).
- Neoddělené prostředí: sdílené databáze/testovací data → flakiness testů a riziko úniku dat.
- Nereverzibilní migrace: chybí down skripty a postup expand/contract.
Závěr
Moderní CI/CD pro cloudové aplikace vychází ze standardizovaných artefaktů (OCI image, SBOM), deklarativního nasazení (Helm/Kustomize), GitOps synchronizace a bezpečnostních opatření napříč celým řetězcem – od commitu po produkční traffic. Přidejte automatické ověřování SLO, inteligentní rollouty, správu tajemství přes OIDC a policy-as-code a získáte pipeline, která je rychlá, bezpečná a auditovatelná. Začněte od lehké kostry, iterujte k modulární architektuře a průběžně měřte dopad na lead time, míru selhání změn a spokojenost



























