Uživatelské nástroje

Nástroje pro tento web


ci_cd

CI/CD (Automatizace vývoje)

CI/CD je kombinace postupů a nástrojů, které umožňují vývojovým týmům dodávat kód častěji, spolehlivěji a s minimem manuálních zásahů. Je to základní pilíř kultury DevOps.

Zkratka se skládá ze dvou (respektive tří) hlavních částí:

1. CI: Continuous Integration (Průběžná integrace)

Cílem CI je zajistit, aby kód od různých vývojářů mohl být pravidelně (i několikrát denně) slučován do centrálního repozitáře (např. Git).

  • Automatické sestavení: Jakmile vývojář nahraje kód, systém jej automaticky zkompiluje.
  • Automatické testy: Ihned po sestavení se spustí testy (Unit testy), které ověří, zda nová změna nerozbila stávající funkcionalitu.

2. CD: Continuous Delivery a Deployment

Zde dochází k automatizaci cesty kódu z repozitáře k uživateli.

  • Continuous Delivery: Proces automaticky připraví balíček (např. Docker image), který je připraven k nasazení. Samotné nasazení do produkce však vyžaduje manuální schválení.
  • Continuous Deployment: Každá změna, která úspěšně projde testy, je automaticky a okamžitě nasazena přímo do produkčního prostředí.

Prvky CI/CD Pipeline

Typická „trubka“ (pipeline) obsahuje tyto kroky:

Fáze Nástroje Činnost
Source Git, GitHub, GitLab Správa verzí zdrojového kódu.
Build Jenkins, GitLab CI, Maven Kompilace kódu a vytvoření artefaktů (binárky, obrazy).
Test JUnit, Selenium, Pytest Ověření kvality a bezpečnosti kódu.
Deploy Ansible, Terraform, ArgoCD Nasazení do testovacího nebo produkčního prostředí.

Výhody zavedení CI/CD

  • Rychlejší Time-to-Market: Nové funkce se dostanou k zákazníkům v řádu minut či hodin, nikoliv měsíců.
  • Méně chyb: Automatické testy zachytí většinu chyb dříve, než se dostanou k uživateli.
  • Snadnější Rollback: Pokud se objeví problém, lze se okamžitě vrátit k předchozí funkční verzi (často jedním kliknutím).

Populární nástroje

  • GitLab CI/CD: Integrované řešení přímo v platformě GitLab pomocí souboru .gitlab-ci.yml.
  • GitHub Actions: Automatizace přímo v GitHubu využívající YAML konfigurace.
  • Jenkins: Tradiční, vysoce přizpůsobitelný open-source nástroj (vyžaduje vlastní správu).
  • ArgoCD: Moderní nástroj pro tzv. GitOps, který synchronizuje stav Kubernetes clusteru s Git repozitářem.
Pravidlo palce: Dobrá pipeline by měla být rychlá. Pokud testy trvají hodiny, vývojáři je přestanou sledovat a ztratí se výhoda rychlé zpětné vazby.

Zpět na DevOps

ci_cd.txt · Poslední úprava: autor: admin