ci_cd
Obsah
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.
ci_cd.txt · Poslední úprava: autor: admin
