Preskočiť na obsah
DevOps

CI/CD

CI/CD (Continuous Integration / Continuous Delivery) je prax automatického overovania a nasadzovania kódu po každej zmene — CI zabezpečí, že nový kód nerozbíja existujúcu funkcionalitu, CD ho automaticky dostane do produkcie bez manuálneho zásahu.

Ako to funguje

Pred CI/CD bol deployment rituál: vývojár si ručne skopíroval súbory na server, spustil niekoľko príkazov v termináli, a dúfal, že nič nezabudol. Tento prístup fungoval pri malých projektoch s jedným vývojárom, ale narazil na limity akonáhle tím rástol alebo sa nasadzovalo viackrát za deň. CI/CD tento rituál automatizuje — každý push do repozitára spustí rovnaký, opakovateľný sled krokov.

Continuous Integration (CI) je prvá polovica: pri každom pushu sa automaticky spustia testy, typová kontrola (TypeScript), formátovač kódu (Biome alebo ESLint) a build. Ak niečo zlyhá, vývojár dostane okamžitú spätnú väzbu a kód sa nenasadí. Tím tak vždy pracuje nad základňou, o ktorej vie, že aspoň základné kontroly prešla. Continuous Delivery (CD) pridáva automatické nasadenie: overený kód sa nasadí na staging prostredie, kde ho možno manuálne otestovať, a po schválení alebo automaticky do produkcie.

Typický pipeline pre Next.js projekt vyzerá takto: push do feature vetvy spustí CI — build, lint, testy. Merge do main vetvy spustí nasadenie na staging. Tag alebo merge do production vetvy spustí produkčný deployment s notifikáciou do Slacku. Vercel toto robí automaticky pre frontend — každá vetva dostane vlastnú preview URL. Pre backend na DigitalOcean používame GitHub Actions, ktoré po úspešnom CI spustia SSH príkazy na serveri, aktualizujú Docker image a reštartujú kontajnery.

Menej zjavná výhoda CI/CD je psychologická: keď nasadenie stojí jedno kliknutie a trvá tri minúty, tím nasadzuje častejšie. Menšie, časté zmeny sú bezpečnejšie ako veľké mesačné releasy s desiatkami zmien naraz. A keď sa niečo pokazí, rollback na predchádzajúcu verziu je rovnako jednoduchý ako nasadenie novej.

Z našej praxe

V Strange Loops CI/CD nie je voliteľný doplnok — je štandardnou súčasťou každého projektu od prvého dňa. Pre Vercel frontendy je CI/CD zabudovaný: každý pull request dostane preview deployment, merge do main ide automaticky do produkcie. Pre Fastify backendy na DigitalOcean máme GitHub Actions workflow, ktorý spustí TypeScript kompiláciu, Biome lint, testy, a pri úspechu nasadí nový Docker image cez SSH. V projektoch ako QualiTravel (kde sa nasadzuje niekoľkokrát denne) alebo Ovulogy (kde sú kritické transakcie so Stripe) je automatické overenie pred každým nasadením nevyhnutné. Pipeline tiež obsahuje dependency audit — automaticky upozorní na bezpečnostné zraniteľnosti v npm balíčkoch.

Kedy to potrebujete

  • Pracujete v tíme a chcete zabrániť tomu, aby jeden vývojár rozbil produkciu mergom neotestovaného kódu
  • Nasadzujete viackrát za deň a manuálne nasadenie cez SSH vám berie čas, ktorý by ste mohli venovať vývoju
  • Máte staging prostredie, kde chce klient pred každým releasom schváliť zmeny — pipeline to zariadí automaticky
  • Potrebujete auditovateľnú históriu nasadení — kto, čo, kedy nasadil a aký bol výsledok

Najčastejšie otázky

Aký je rozdiel medzi Continuous Delivery a Continuous Deployment?

Continuous Delivery znamená, že kód je vždy pripravený na nasadenie — ale samotné nasadenie do produkcie spustí človek manuálnym krokom (kliknutím alebo schválením). Continuous Deployment ide o krok ďalej: každý overený commit sa automaticky nasadí do produkcie bez ľudského zásahu. Pre väčšinu klientov odporúčame Continuous Delivery — dáva istotu automatického overovania pri zachovaní kontroly nad tým, kedy presne zmena ide do produkcie.

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

Najpopulárnejšie sú GitHub Actions (integrovaný priamo do GitHub, bezplatný pre open-source), GitLab CI (súčasť GitLab ekosystému) a Jenkins (self-hosted, maximálna flexibilita). Pre frontendové projekty na Vercel alebo Netlify je CI/CD zabudovaný priamo v platforme. V Strange Loops štandardne používame GitHub Actions pre backend a Vercel pre frontend.

Potrebujem CI/CD aj pre malý projekt?

Áno, aj pre malé projekty. Základný CI pipeline (build + lint + testy) nastavíte za pár hodín a okamžite začne chrániť pred najčastejšími chybami — zabudnuté TypeScript chyby, rozbité importy, neprešlé testy. Časová investícia do nastavenia sa vráti pri prvom predídenom incidente v produkcii.

Potrebujete s tým pomôcť?

Ak riešite niečo z toho, čo tu opisujeme, ozvite sa. Povieme vám, či a ako vieme pomôcť.