Príručky

Čo je CI/CD? Kontinuálna integrácia a doručovanie jednoducho vysvetlené

CI/CD je spôsob vydávania softvéru, pri ktorom sa každá zmena kódu automaticky zostaví, otestuje a – ak prejde – pripraví na vydanie alebo vydá. CI (kontinuálna integrácia) znamená, že zmeny sa zlučujú často a pri každej sa kontrolujú automatizovanými testami. CD (kontinuálne doručovanie alebo nasadzovanie) znamená, že zmeny, ktoré prejdú, sa zabalia a posúvajú smerom k používateľom s malým alebo žiadnym manuálnym zásahom.

Poslanie je jednoduché: zachytiť chyby minúty po ich vzniku, nie týždne neskôr, keď ich nájde zákazník.

Prečo CI/CD záleží, keď stavate s AI

Nástroje na tvorbu aplikácií robia zmeny kódu rýchlo. Jeden prompt môže zasiahnuť desať súborov. Táto rýchlosť je skvelá, dokým zmena stránky pokladne nenenápadne nerozbije prihlasovaciu stránku a nikto si to nevšimne, kým vám niekto nenapíše e-mail.

CI/CD je záchranná sieť práve pre toto. Namiesto dôvery, že každá zmena je v poriadku, pipeline spúšťa pri každej zmene tie isté kontroly:

  • Dá sa aplikácia stále zostaviť bez chýb?
  • Prechádzajú ešte automatizované testy?
  • Dodržiava kód pravidlá projektu (typy, formátovanie, bezpečnostné kontroly)?

Ak zlyhá akákoľvek kontrola, zmena sa zastaví skôr, ako sa dostane k používateľom. Čím rýchlejšie sa váš kód mení, tým cennejšia je kontrola, ktorá sa neunaví a nepreskočí krok.

Každodenná analógia

Predstavte si pekáreň, ktorá každé ráno dodáva chlieb obchodom.

  • Bez CI/CD každý pekár týždeň skúša vlastné úpravy receptu, potom sa vo štvrtok večer všetky spoja a dúfa sa, že chlieb vykysne. Keď nevykysne, nikto nevie, čí zmena za to môže.
  • S CI sa každá malá zmena receptu hneď upečie ako skúšobný bochník a skontroluje – chuť, hmotnosť, tvar. Zlá zmena sa odhalí v ten istý deň a presne viete, ktorá to bola.
  • S CD bochníky, ktoré prejdú kontrolou, idú rovno do dodávky, zabalené a označené vždy rovnako, namiesto toho, aby ich niekto o piatej ráno balil ručne.

Kontrola nerobí pekárov lepšími. Robí ich chyby lacnými.

Ako funguje pipeline CI/CD

Pipeline je zoznam krokov, ktoré služba CI/CD spustí automaticky, keď sa niečo stane – zvyčajne keď niekto nahrá kód do repozitára ako GitHub. Typická pipeline vyzerá takto:

KrokČo sa staneČo zachytí
1. SpúšťačKód sa nahrá alebo sa otvorí pull request—
2. InštaláciaČistý stroj stiahne kód a jeho závislostiChýbajúce alebo pokazené balíky
3. ZostavenieAplikácia sa skompiluje alebo zabalíSyntaktické a typové chyby, pokazené importy
4. TestySpustia sa automatizované testyFunkcie, ktoré už nefungujú
5. KontrolyLintovanie, formátovanie, bezpečnostné skenyProblémy so štýlom, známe zraniteľné balíky, uniknuté kľúče
6. Nasadenie na stagingAplikácia ide na testovaciu kópiu produkcieProblémy, ktoré sa ukážu až v skutočnom prostredí
7. Nasadenie do produkcieAplikácia ide naživo – automaticky alebo po schválení—

Každý krok beží na čistom stroji, nie na niečijom notebooku, takže výhovorka „na mojom počítači to funguje“ prestáva platiť. Ak krok zlyhá, pipeline sa zastaví a oznámi to tomu, kto zmenu urobil.

Kroky sú definované v konfiguračnom súbore, ktorý žije spolu s kódom. V GitHub Actions je to napríklad súbor YAML v priečinku .github/workflows repozitára.

Kontinuálne doručovanie vs kontinuálne nasadzovanie

Pojem „CD“ je nejednoznačný a ľudia ho používajú v oboch významoch:

Kontinuálne doručovanieKontinuálne nasadzovanie
Testy bežia automatickyÁnoÁno
Vydanie sa automaticky zabalíÁnoÁno
Ide automaticky naživoNie – človek klikne na „vydať“Áno – každá zmena, ktorá prejde, sa vydá
Vhodné preVäčšinu malých tímov, aplikácie s platiacimi používateľmiTímy so silným pokrytím testami a monitoringom

Kontinuálne nasadzovanie funguje dobre len vtedy, keď sú testy dobré. Ak vaše testy nepokrývajú pokladňu, kontinuálne nasadzovanie s radosťou nasadí rozbitú pokladňu.

Praktický príklad: aplikácia na rezervácie s pipeline

Predstavte si aplikáciu na rezervácie v salóne s kódom v repozitári GitHub. Požiadate nástroj na tvorbu aplikácií: „Pridaj 10 % zľavu pre zákazníkov, ktorí prichádzajú prvý raz.“

  1. Zmena sa nahrá do novej vetvy a otvorí sa pull request.
  2. Spustí sa pipeline. Nainštaluje balíky a zostaví aplikáciu – prejde to.
  3. Spustia sa testy. Jeden test, „vracajúci sa zákazník platí plnú cenu“, zlyhá: zľava sa uplatňuje na všetkých.
  4. Pull request ukáže červený krížik. Zmenu nemožno zlúčiť.
  5. Požiadate AI o opravu. Pošle korekciu; pipeline sa spustí znova a všetko prejde.
  6. Zmena sa zlúči. Pipeline ju nasadí na staging prostredie, kde vyskúšate testovaciu rezerváciu.
  7. Schválite ju a nasadí sa do produkcie.

Bez pipeline by sa krok 3 odohral v peňaženkách vašich zákazníkov.

Kľúčové pojmy

PojemVýznam
PipelineAutomatizovaná postupnosť krokov, ktorá beží pri každej zmene.
Zostavenie (build)Premena zdrojového kódu na niečo, čo sa dá spustiť.
Automatizovaný testKód, ktorý kontroluje, či iný kód robí to, čo má.
Pull request (PR)Navrhovaná zmena, ktorú pred zlúčením skontrolujú ostatní (a pipeline). Pozrite čo je GitHub.
Vetva (branch)Samostatná línia zmien, aby rozpracovaná práca neovplyvnila hlavný kód.
StagingSúkromná kópia vašej aplikácie, ktorá zrkadlí produkciu, na kontrolu zmien skôr, než ich uvidia používatelia.
ProdukciaŽivá aplikácia, ktorú používajú vaši používatelia.
RollbackNávrat k predchádzajúcej funkčnej verzii, keď vydanie zlyhá.
Zelený / červený buildBeh pipeline, ktorý prešiel / zlyhal.

Bežné omyly

  • „CI/CD znamená, že moja aplikácia je otestovaná.“ Pipeline spúšťa len testy, ktoré máte. Ak žiadne nie sú, CI dokáže len to, že aplikácia sa zostaví – nič viac. Požiadajte AI, aby napísala testy pre najdôležitejšie toky.
  • „CI/CD je len pre veľké firmy.“ Hostované nástroje ako GitHub Actions sa nastavia krátkym konfiguračným súborom a malé tímy ich používajú bežne. Úsilie stoja testy, nie nástroje.
  • „Automatické nasadenie znamená, že nikto nič nekontroluje.“ Dobré pipeline pridávajú kontroly, nie ich odoberajú. Mnohé tímy si pred produkciou ponechávajú krok ľudského schválenia.
  • „Ak je pipeline zelená, aplikácia funguje.“ Znamená to, že automatizované kontroly prešli. Zmenu by ste aj tak mali vyskúšať sami, ideálne v náhľade alebo na stagingu.
  • „CI/CD nahrádza zálohy.“ Nenahrádza. Zlá migrácia databázy, ktorá prejde testami, môže poškodiť skutočné dáta. Udržujte zálohy a spôsob návratu k predchádzajúcej verzii.

Čo sa opýtať nástroja na tvorbu aplikácií

  • „Napíš automatizované testy pre registráciu, prihlásenie a pokladňu a ukáž mi, ako ich spustiť.“
  • „Nastav workflow GitHub Actions, ktorý pri každom pull requeste nainštaluje závislosti, zostaví aplikáciu a spustí testy.“
  • „Pridaj do pipeline kontrolu typov a linter a nech zlyhá pri chybách.“
  • „Jednoducho vysvetli, čo robí každý krok pipeline.“
  • „Čo sa stane, ak nasadenie zlyhá napoly? Ako sa vrátim späť?“
  • „Skontroluj, že tajné kľúče nie sú napevno zapísané v repozitári ani vypísané v logoch pipeline.“

Ak vaša aplikácia používa API kľúče, potrebuje ich aj pipeline – uložené ako šifrované tajomstvá v nástroji CI, nikdy v konfiguračnom súbore. Pozrite premenné prostredia a tajomstvá.

CI/CD a Mythex

Mythex nespúšťa za vás CI pipeline, ale pokrýva niekoľko rovnakých potrieb po svojom:

  • Checkpointy. Po každom úspešnom kroku agenta Mythex uloží git checkpoint a Revert to this point vráti projekt späť, ak sa zmena pokazila. Pozrite Chat.
  • App Testing. Napíšte /test a agent prejde vašu živú náhľadovú verziu ako používateľ a nahlási pokazené toky – užitočné pred každým publikovaním. Pozrite App Testing.
  • Publikovanie je zámerný krok. Zmeny sa najprv objavia v súkromnom náhľade; vaša verejná aplikácia sa aktualizuje, až keď znova publikujete – bližšie ku kontinuálnemu doručovaniu než k nasadzovaniu.
  • Synchronizácia s GitHub (Pro). Ak projekt synchronizujete s repozitárom GitHub, môžete pridať vlastné workflow GitHub Actions, ktoré spúšťajú testy pri každom nahratí. Pozrite GitHub a export.

Kontrolný zoznam toho, čo otestovať ručne pred spustením, nájdete v ako otestovať aplikáciu pred spustením a o práci s verziovaním v ako používať Git s aplikáciou vytvorenou AI.

Otázky

Čo znamená CI/CD?

CI znamená kontinuálnu integráciu: každá zmena kódu sa často zlučuje a automaticky zostavuje a testuje. CD znamená kontinuálne doručovanie alebo kontinuálne nasadzovanie: zmeny, ktoré prejdú testami, sa automaticky pripravia na vydanie (doručovanie) alebo sa vydajú používateľom bez manuálneho kroku (nasadzovanie).

Aký je rozdiel medzi kontinuálnym doručovaním a kontinuálnym nasadzovaním?

Pri kontinuálnom doručovaní je každá zmena, ktorá prejde pipeline, pripravená na vydanie, ale človek stále rozhoduje, kedy ju spustí. Pri kontinuálnom nasadzovaní sa každá zmena, ktorá prejde, automaticky dostane do ostrej prevádzky bez schvaľovacieho kroku.

Potrebujem CI/CD pre malú aplikáciu vytvorenú s AI?

Nie hneď na začiatku. Malá aplikácia s hŕstkou používateľov si vystačí s testovaním v náhľade a publikovaním ručne. CI/CD sa vyplatí, keď na kóde pracuje viac ľudí, keď na aplikácii závisia skutoční zákazníci alebo keď stále rozbíjate veci, ktoré kedysi fungovali.

Aké nástroje sa používajú pre CI/CD?

Bežné sú GitHub Actions, GitLab CI/CD, CircleCI a Jenkins, plus vstavané nasadzovacie pipeline hostingových platforiem. Všetky robia rovnakú základnú prácu: automaticky spustia zoznam krokov vždy, keď sa kód zmení.

Mythex · Pricing · Vytvorte čokoľvek s AI · Šablóny webov a aplikácií · Mythex v porovnaní · Slovník pojmov tvorby aplikácií s AI · Bezplatné nástroje na tvorbu aplikácií s AI · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština 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 Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)