🟢 Beginner

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:

  1. Source — commit spustí pipeline (webhook)
  2. Build — kompilácia, Docker build
  3. Test — unit testy, integračné testy, linting
  4. Security — SAST/DAST sken, dependency audit
  5. Deploy Staging — nasadenie do testovacieho prostredia
  6. 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.