Průvodci

Co je CI/CD? Průběžná integrace a doručování srozumitelně

CI/CD je způsob vydávání softwaru, při kterém se každá změna kódu automaticky sestaví, otestuje a — pokud projde — připraví k vydání nebo vydá. CI (průběžná integrace) znamená, že se změny slučují často a pokaždé je kontrolují automatické testy. CD (průběžné doručování nebo nasazování) znamená, že změny, které projdou, se zabalí a posunou směrem k uživatelům s malým nebo žádným ručním zásahem.

Smysl je prostý: chyby odhalit během minut od jejich vzniku, ne týdny později, když je najde zákazník.

Proč na CI/CD záleží, když stavíte s AI

AI nástroje mění kód rychle. Jediný příkaz může zasáhnout deset souborů. Rychlost je skvělá, dokud změna stránky pokladny tiše nerozbije přihlašování a nikdo si toho nevšimne, dokud vám to nenapíše uživatel.

CI/CD je přesně tato pojistka. Místo důvěry, že každá změna je v pořádku, pipeline pokaždé spustí stejné kontroly:

  • Dá se aplikace stále sestavit bez chyb?
  • Procházejí automatické testy?
  • Dodržuje kód pravidla projektu (typy, formátování, bezpečnostní kontroly)?

Pokud některá kontrola selže, změna se zastaví dřív, než se dostane k uživatelům. Čím rychleji se váš kód mění, tím cennější je kontrola, která se neunaví a nevynechá krok.

Každodenní přirovnání

Představte si pekárnu, která každé ráno prodává chleba obchodům.

  • Bez CI/CD každý pekař týden laduje vlastní recept, pak se všechno v pátek večer spojí a doufá se, že chleba ještě vykyne. Když ne, nikdo neví, čí změna za to může.
  • S CI se každá malá změna receptu hned upeče jako zkušební bochník a zkontroluje se — chuť, hmotnost, tvar. Špatná změna se odhalí ještě ten samý den a přesně víte, která to byla.
  • S CD bochníky, které projdou kontrolou, jdou rovnou do dodávky, zabalené a označené pokaždé stejně, místo aby někdo v pět ráno balil krabice ručně.

Kontrola pekaře nezlepší. Jen udělá jeho chyby levnými.

Jak funguje CI/CD pipeline

Pipeline je seznam kroků, které služba CI/CD spustí automaticky, když se něco stane — obvykle když někdo nahraje kód do repozitáře jako GitHub. Typická pipeline vypadá takto:

KrokCo se staneCo odhalí
1. SpuštěníKód je nahrán nebo se otevře pull request—
2. InstalaceČistý stroj stáhne kód a jeho závislostiChybějící nebo rozbité balíčky
3. SestaveníAplikace se zkompiluje nebo zabalíSyntaktické a typové chyby, rozbité importy
4. TestyBěží automatické testyFunkce, které už nefungují
5. KontrolyLintování, formátování, bezpečnostní skenProblémy se stylem, známé zranitelné balíčky, uniklé klíče
6. Nasazení na stagingAplikace jde do testovací kopie produkceProblémy, které se projeví jen v reálném prostředí
7. Nasazení do produkceAplikace jde naživo — automaticky, nebo po schválení—

Každý krok běží na čistém stroji, ne na něčím notebooku, takže výmluva „u mě na počítači to funguje" přestává platit. Když krok selže, pipeline se zastaví a řekne tomu, kdo změnu udělal.

Kroky jsou definované v konfiguračním souboru, který je spolu s kódem. Například v GitHub Actions je to soubor YAML ve složce .github/workflows v repozitáři.

Průběžné doručování vs průběžné nasazování

„CD" je nejednoznačné a lidé ho používají oběma způsoby:

Průběžné doručováníPrůběžné nasazování
Testy běží automatickyAnoAno
Vydání se automaticky zabalíAnoAno
Jde automaticky naživoNe — člověk klikne na „vydat"Ano — každá změna, která projde, se nasadí
Vhodné proVětšinu malých týmů, aplikace s platícími uživateliTýmy se silným pokrytím testy a monitoringem

Průběžné nasazování funguje dobře jen tehdy, když jsou testy kvalitní. Pokud vaše testy nepokrývají pokladnu, průběžné nasazování s radostí nasadí rozbitou pokladnu.

Praktický příklad: rezervační aplikace s pipeline

Představme si aplikaci pro rezervace v salonu, jejíž kód je v repozitáři na GitHubu. Požádáte AI nástroj: „Přidej 10% slevu pro zákazníky, kteří jsou tu poprvé."

  1. Změna se nahraje do nové větve a otevře se pull request.
  2. Spustí se pipeline. Nainstaluje balíčky a sestaví aplikaci — to projde.
  3. Spustí se testy. Jeden test, „vracející se zákazník platí plnou cenu", selže: sleva se uplatňuje všem.
  4. Pull request ukáže červený křížek. Změnu nelze sloučit.
  5. Požádáte AI, aby to opravila. Pošle opravu; pipeline se spustí znovu a vše projde.
  6. Změna se sloučí. Pipeline ji nasadí do stagingového prostředí, kde vyzkoušíte testovací rezervaci.
  7. Schválíte a nasadí se do produkce.

Bez pipeline by se krok 3 odehrál v peněženkách vašich zákazníků.

Klíčové pojmy

PojemVýznam
PipelineAutomatická posloupnost kroků, která se spustí u každé změny.
Sestavení (build)Převod zdrojového kódu na něco, co může běžet.
Automatický testKód, který kontroluje, že jiný kód dělá, co má.
Pull request (PR)Navrhovaná změna, kterou před sloučením zkontrolují ostatní (a pipeline). Viz co je GitHub.
Větev (branch)Oddělená linie změn, aby rozdělaná práce neovlivnila hlavní kód.
StagingSoukromá kopie vaší aplikace, která zrcadlí produkci, pro kontrolu změn dřív, než je uvidí uživatelé.
ProdukceŽivá aplikace, kterou používají uživatelé.
RollbackNávrat k předchozí fungující verzi, když vydání dopadne špatně.
Zelený / červený buildBěh pipeline, který prošel / selhal.

Časté omyly

  • „CI/CD znamená, že moje aplikace je otestovaná." Pipeline spustí jen ty testy, které máte. Pokud žádné nejsou, CI ověří jen to, že se aplikace sestaví — nic víc. Požádejte AI, ať napíše testy pro nejdůležitější postupy.
  • „CI/CD je jen pro velké firmy." Hostované nástroje jako GitHub Actions se nastavují krátkým konfiguračním souborem a malé týmy je používají pořád. Úsilí nedělá nástroj, ale testy.
  • „Automatické nasazení znamená, že nikdo nic nekontroluje." Dobré pipeline přidávají kontroly, neodebírají je. Mnoho týmů před produkcí nechává krok schválení člověkem.
  • „Když je pipeline zelená, aplikace funguje." Znamená to, že automatické kontroly prošly. Změnu byste měli stejně vyzkoušet sami, ideálně v náhledu nebo na stagingu.
  • „CI/CD nahrazuje zálohy." Nenahrazuje. Špatná migrace databáze, která projde testy, může stále poškodit skutečná data. Držte zálohy a způsob, jak se vrátit zpět.

Na co se zeptat svého AI nástroje

  • „Napiš automatické testy pro registraci, přihlášení a pokladnu a ukaž mi, jak je spustit."
  • „Nastav workflow v GitHub Actions, které při každém pull requestu nainstaluje závislosti, sestaví aplikaci a spustí testy."
  • „Přidej do pipeline kontrolu typů a linter a ať selže při chybách."
  • „Vysvětli srozumitelně, co dělá každý krok pipeline."
  • „Co se stane, když nasazení selže v půlce? Jak se vrátím zpět?"
  • „Zkontroluj, že žádné tajné údaje nejsou natvrdo v repozitáři ani nevypisované v logách pipeline."

Pokud vaše aplikace používá API klíče, pipeline je také potřebuje — uložené jako šifrované tajné hodnoty v nástroji CI, nikdy v konfiguračním souboru. Viz proměnné prostředí a tajné hodnoty.

CI/CD v Mythexu

Mythex za vás CI pipeline nespouští, ale několik stejných potřeb řeší po svém:

  • Checkpointy. Po každém úspěšném kroku agenta si Mythex uloží git checkpoint a Vrátit se k tomuto bodu vrátí projekt zpět, pokud se změna nepovedla. Viz Chat.
  • App Testing. Napište /test a agent proklikne vaši živou ukázku jako uživatel a nahlásí rozbité postupy — užitečné před každým publikováním. Viz App Testing.
  • Publikování je záměrný krok. Změny se nejdřív objeví v soukromém náhledu; vaše veřejná aplikace se aktualizuje až při dalším publikování — blíž k průběžnému doručování než k průběžnému nasazování.
  • Synchronizace s GitHubem (Pro). Když projekt synchronizujete s repozitářem na GitHubu, můžete přidat vlastní workflow GitHub Actions, která spouštějí testy při každém nahrání. Viz GitHub a export.

Seznam toho, co ručně otestovat před spuštěním, najdete v jak otestovat aplikaci před spuštěním, a pro práci s verzováním jak používat Git s aplikací postavenou s AI.

Otázky

Co znamená zkratka CI/CD?

CI znamená průběžnou integraci: každá změna kódu se slučuje často a automaticky se sestaví a otestuje. CD znamená průběžné doručování nebo průběžné nasazování: změny, které projdou testy, se automaticky připraví k vydání (doručení) nebo se bez ručního kroku vydají uživatelům (nasazení).

Jaký je rozdíl mezi průběžným doručováním a průběžným nasazováním?

U průběžného doručování je každá změna, která projde pipeline, připravena k vydání, ale o tom, kdy se spustí naživo, stále rozhoduje člověk. U průběžného nasazování jde každá změna, která projde, automaticky naživo, bez schvalovacího kroku od člověka.

Potřebuji CI/CD pro malou aplikaci postavenou s AI?

Ne hned první den. Malá aplikace s hrstkou uživatelů si vystačí s testováním v náhledu a publikováním ručně. CI/CD se vyplatí, až na kódu pracuje více lidí, až na aplikaci spoléhají skuteční zákazníci, nebo až opakovaně rozbíjíte věci, které dříve fungovaly.

Jaké nástroje se pro CI/CD používají?

Mezi běžné patří GitHub Actions, GitLab CI/CD, CircleCI a Jenkins, a také vestavěné nasazovací pipelines hostingových platforem. Všechny dělají stejnou základní práci: automaticky spustí seznam kroků vždy, když se kód změní.

Mythex · Pricing · Vytvořte cokoli s AI · Šablony webů a aplikací · Mythex v porovnání · Slovník tvorby aplikací s AI · Bezplatné nástroje pro tvorbu aplikací s AI · English

English አማርኛ العربية Български বাংলা Bosanski Català Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)