- O spoločnosti
- BENEFITY
- NAHLIADNI K NÁM
- NAŠE PRODUKTY
- Práve hľadáme
- Všetky pracovné pozície
- Podľa pracovnej oblasti
- Podľa lokality
- Práve hľadáme
- Všetky pracovné pozície
- msg IT KOMUNITA
- ČLÁNKY
- SLOVNÍK
- Práve hľadáme
- Všetky pracovné pozície
CI/CD je moderný prístup k vývoju softvéru, ktorý spája automatizovanú integráciu kódu, priebežné testovanie a rýchle nasadenie do produkcie. Vývojári tak doručujú nové funkcionality rýchlejšie, bezpečnejšie a s menším rizikom chýb. CI/CD automatizuje všetky kroky od momentu, keď vývojár odošle zmenu do repozitára, až po jej nasadenie do produkčného prostredia. Tímy vďaka tomu reagujú na potreby zákazníkov flexibilne a efektívne.

CI/CD predstavuje skratku pre dve anglické slovné spojenia. CI znamená Continuous Integration, CD označuje Continuous Delivery. Ide o súbor praktík, ktorých cieľom je automatizovať vývoj softvéru a uľahčiť aj urýchliť celý pracovný proces.
CI/CD je súčasťou DevOps kultúry, pretože prepája vývojárov, testerov a ďalších odborníkov, čím im umožňuje spolupracovať rýchlejšie a spoľahlivejšie. Vďaka CI/CD sa každá zmena v kóde automaticky integruje, testuje a pripravuje na nasadenie. To výrazne skracuje čas medzi vývojom novej funkcionality a jej dodaním používateľom.
Dôvodov, prečo je CI/CD dôležité, je hneď niekoľko. Medzi tie hlavné patria:
Pýtaš sa, čo znamená continuous integration a ako funguje tento typ integrácie? Celý proces je pomerne jednoduchý na vysvetlenie a pochopí ho aj začiatočník, ktorý nemá s IT oblasťou veľa skúseností.
Continuous integration (CI) do slovenčiny prekladáme ako kontinuálna integrácia. Už samotný názov naznačuje, že ide o spôsob práce, pri ktorom vývojári pravidelne integrujú nové alebo opravené časti kódu do spoločného Git repozitára, kde sa následne aj testujú. Jednotlivé zmeny sú vďaka tomu menšie, rovnako ako prípadné chyby či komplikácie. Tie sa potom opravujú oveľa jednoduchšie, než keby sa celý kód napísal naraz a testoval až na konci.
CI je základným pilierom CI/CD a jeho cieľom je udržiavať kód stabilný, kvalitný a neustále pripravený na ďalší krok. Zároveň pomáha minimalizovať riziko vzniku chýb, ktoré by sa inak mohli prejaviť až v neskorších fázach vývoja.
V praxi CI funguje tak, že vývojári integrujú zmeny v kóde do repozitára niekoľkokrát denne. Nečakajú pritom na koniec dňa, týždňa ani iného časového obdobia. Po tom, ako sa zmena objaví na serveri, sa automaticky spúšťa testovanie, analýza kvality kódu a ďalšie kontroly. Tie zabezpečujú, že je všetko v poriadku a tím môže bez problémov pokračovať v práci.
Ak sa objavia chyby, vývojár na nich môže začať pracovať okamžite. Vďaka tomu sa proces zbytočne nekomplikuje, skracuje sa čas dodania a šetria sa náklady.
Po CI nasleduje CD, teda continuous delivery (priebežné dodávanie). Niektorí si ho mýlia s continuous deployment, ktoré označuje priebežné nasadzovanie. Hoci tieto dva pojmy znejú veľmi podobne, existuje medzi nimi niekoľko rozdielov. Rozdiel medzi continuous delivery a deployment je najmä z pohľadu toho, kto (alebo čo) rozhoduje o finálnom nasadení kódu do produkcie.
Continuous delivery znamená, že po tom, ako sa do repozitára dostane zmena, sa okamžite otestuje a pripraví na nasadenie do produkcie. Všetky kroky sú automatizované, okrem posledného, ktorým je finálne nasadenie. To musí vývojár alebo release manager vykonať manuálne.
Výhodou continuous delivery je, že uľahčuje celý proces práce a skracuje čas doručenia softvéru alebo aplikácie. Zároveň ti však ponecháva kontrolu nad tým, kedy kód prejde do produkcie. Tento prístup je vhodný najmä pre tímy, ktoré pracujú v regulovaných odvetviach alebo potrebujú manuálnu kontrolu pred každým vydaním.
Ako už možno tušíš, continuous deployment posúva automatizáciu o krok ďalej. Okrem testovania a prípravy nového kódu ho automaticky nasadzuje priamo do produkcie, a to bez nutnosti manuálneho zásahu. Aplikácia alebo iný softvér tak môže byť pravidelne aktualizovaný, pričom si to ani nemusíš všimnúť.
Pre continuous deployment by sa mali rozhodnúť tímy, ktoré potrebujú ušetriť čo najviac času a energie a usilujú sa o maximálnu produktivitu. Je však dobré nespoliehať sa na automatizáciu stopercentne. Softvér je potrebné z času na čas skontrolovať, aby bolo isté, že všetko funguje správne. Mnohé tímy kombinujú continuous deployment s feature flagmi, ktoré umožňujú aktivovať novú funkciu pre používateľov až v správnom čase.
Moderná CI/CD pipeline pozostáva z viacerých navzájom prepojených krokov. Každá zmena v kóde tak prejde kontrolovaným, automatizovaným a opakovateľným procesom. Celá pipeline slúži ako štandardizovaná „diaľnica“ pre kód od vývojára k používateľovi.
Pozri sa detailnejšie na jednotlivé kroky.
Tento krok iniciuje celý proces CI/CD. V praxi ide o uloženie nového kódu alebo opravu existujúceho. Inými slovami, ide o vykonanie a zaznamenanie zmeny v Git repozitári. Niektorí vývojári ešte pred samotným commitom alebo počas neho používajú takzvané pre-commit kontroly, ktoré automaticky validujú časť kódu. Ich úlohou je najmä:
Pre-commit kontroly fungujú ako filter, ktorý zabraňuje odoslaniu commitu s chybami. Tie by mohli viesť k rôznym problémom. Vďaka nim získaš rýchlejšiu spätnú väzbu a v CI/CD pipeline sa objaví menej chýb.
Vráťme sa však späť ku commitu. Ten by mal byť dobre premyslený a štruktúrovaný, aby boli zmeny v kóde jasne zdokumentované a ľahko sledovateľné. Vďaka tomu môžeš viesť presnú históriu aktualizácií, čo je dôležité nielen pre teba ako autora zmien, ale aj pre ostatných členov tímu.
Po prvom kroku nasleduje načítanie zdrojového kódu z repozitára a jeho príprava na spracovanie. Systém overuje, či je konfigurácia projektu kompletná a či má k dispozícii všetky potrebné súbory, aby sa mohol pripraviť na ďalšie kroky procesu.
V tejto fáze sa rieši aj to, v ktorej vetve sa tvoja zmena nachádza. Môže ísť o produkčný alebo integračný kód, nový vývoj alebo rýchlu opravu. Zároveň platí, že čím menej vetiev projekt používa, tým rýchlejšie je možné ich integrovať do hlavnej vetvy. To automaticky znamená plynulejší proces práce bez zbytočných komplikácií.
Pre lepšiu predstavu: ak vývojári pracujú s dlhodobými alebo početnými vetvami, kód sa vyvíja izolovane. Pri spájaní vznikajú konflikty a integrácia zmien je celkovo náročnejšia a komplikovanejšia.
Viaceré výskumy, napríklad DORA reporty, ukazujú, že najlepšie IT tímy:
DORA metriky ako deployment frequency a mean time to recovery (MTTR) sú dnes priemyselným štandardom na meranie kvality CI/CD procesu.
V tomto kroku sa kód zostavuje do nasaditeľných artefaktov. Môžu nimi byť knižnice, kontajnery alebo binárne súbory. Softvér a aplikácie zároveň potrebujú rôzne knižnice alebo balíčky, ktoré build fáza automaticky stiahne a zahrnie. Pre JavaScript sa najčastejšie používajú nástroje npm, pnpm alebo yarn, pre Javu zas Maven alebo Gradle.
Pri modernom vývoji sa kód často balí do takzvaného Docker image, ktorý spravidla obsahuje aplikáciu, potrebné knižnice, konfiguráciu, runtime aj základ operačného systému. Docker image je zároveň základom aj pre orchestráciu cez Kubernetes, ktorý v moderných CI/CD pipeline spravuje nasadzovanie kontajnerov do produkcie.
Súčasťou tohto kroku bývajú aj rýchle kontroly, ktorých cieľom je odhaliť prípadné chyby v syntaxi, formátovaní a podobne. Ak tieto kontroly neodhalia žiadne problémy, kód je pripravený na ďalší krok pipeline.
Artifact repository je úložisko, do ktorého sa ukladajú všetky výsledky buildu. Ide o hotové artefakty, ktoré vzniknú zo zdrojového kódu. Artefaktmi môžu byť napríklad:
Ukladanie artefaktov do repozitára je dôležité najmä preto, aby boli všetky výstupy z buildu na jednom mieste, ku ktorému má prístup celý tím. Zároveň umožňuje ukladať jednotlivé verzie buildu, ku ktorým sa môžeš kedykoľvek vrátiť. Táto funkcia rollbacku je v poisťovníckom prostredí kritická, lebo umožňuje rýchly návrat k predchádzajúcej verzii, ak sa v produkcii objaví neočakávaný problém.
Netreba zabúdať ani na to, že ak sú všetky buildy uložené na jednom mieste, deploy fáza ich dokáže jednoducho získať a nasadiť do rôznych prostredí.
Aj napriek tomu, že v predchádzajúcich krokoch prebiehajú menšie kontroly a testy, je potrebné vykonať hĺbkovú kontrolu, ktorá potvrdí, že je všetko v poriadku a kód je správny, stabilný a bezpečný.
Testy prebiehajú automaticky, takže do procesu nemusíš manuálne zasahovať. Systém zvyčajne spúšťa viacero typov testov, medzi ktoré patria:
Po klasickom testovaní nasleduje akceptačné testovanie, pri ktorom sa overuje, či aplikácia:
V tomto kroku sa využívajú najmä tieto typy testov:
Deploy je finálny krok, v ktorom sa aplikácia presúva do cieľového prostredia. Spôsob nasadenia závisí od nastavenia tímu a zvoleného prístupu. Vývojári majú na výber dve možnosti, ktoré sme spomínali už vyššie:
Pokročilé tímy využívajú aj stratégie ako blue-green deployment alebo canary release, ktoré umožňujú postupné nasadenie novej verzie len pre časť používateľov a minimalizujú riziko širokého výpadku.
CI/CD má množstvo výhod pre firmy aj vývojárov. Medzi tie hlavné patria:
Firmy, ktoré adoptovali CI/CD, často reportujú skrátenie release cyklov z týždňov na dni alebo dokonca hodiny. Spolu s tým klesá aj počet kritických chýb v produkcii, čo priamo ovplyvňuje spokojnosť zákazníkov aj náklady na podporu.
Na to, aby si mohol CI/CD efektívne využívať, potrebuješ spoľahlivé a overené nástroje, ktoré budeš používať na pravidelnej báze. Niektoré z nich sú určené priamo na CI alebo CD, iné sa zameriavajú na špecifické úlohy, ako je riadenie vývoja či priebežné testovanie.
Mnohé z týchto nástrojov sú open-source, čo znamená, že ich môžeš používať bezplatne. Vďaka tomu si ich môžeš vyskúšať a zistiť, ktoré ti vyhovujú najviac. K dispozícii sú však aj platené riešenia, ktoré zvyčajne ponúkajú niekoľkodňové skúšobné verzie. Niektoré z nich fungujú ako SaaS služby v cloude, čo znamená, že nemusíš nič inštalovať ani udržiavať lokálne.
Medzi najpopulárnejšie CI/CD nástroje patria:
Okrem vymenovaných riešení sa v moderných pipeline často stretneš aj s Azure DevOps, TeamCity či Bitbucket Pipelines. Výber nástroja závisí od toho, kde máš kód uložený, aký veľký je tím a aké integrácie potrebuješ.
V poisťovníctve zohráva CI/CD kľúčovú úlohu. Ide o sektor s mimoriadne komplexnými systémami, prísnymi legislatívnymi požiadavkami a neustálym tlakom na rýchle reagovanie na zmeny trhu. Poisťovne pracujú s veľkým objemom dát, zložitými procesmi a produktmi, ktoré je potrebné pravidelne aktualizovať, či už kvôli reguláciám, konkurencii alebo interným inováciám. CI/CD prináša do tohto prostredia stabilitu, rýchlosť a automatizáciu, ktoré sú pri rozsiahlych systémových zmenách nevyhnutné.
Digitalizácia poisťovníctva kladie na IT tímy čoraz vyššie nároky. Zákazníci očakávajú rýchle uzatváranie zmlúv online, transparentné spracovanie škodových udalostí a moderné mobilné aplikácie. Bez CI/CD by bolo takmer nemožné dodávať tieto zmeny v takej rýchlosti a kvalite, akú dnešný trh vyžaduje. Data-driven rozhodovanie sa navyše opiera o spoľahlivé dátové pipeline, ktoré data science tímy potrebujú na kontinuálnu analýzu a modelovanie.
V msg life využívame CI/CD na priebežnú integráciu a dodávanie zmien v rámci msg.Insurance Suite. Ide o komplexné softvérové riešenie pre správu poistných produktov. Keďže poisťovacie procesy zahŕňajú výpočty poistného, správu zmlúv, spracovanie poistných udalostí či generovanie regulovaných dokumentov, je nevyhnutné, aby bola každá zmena v systéme dôkladne otestovaná vo všetkých fázach CI/CD pipeline. Automatizované testy overujú logiku, legislatívne pravidlá aj správnosť procesov, zatiaľ čo continuous delivery umožňuje rýchle a spoľahlivé nasadzovanie aktualizácií pre klientov.
Agilný vývoj softvéru má v msg life vysokú prioritu. Preto je samozrejmosťou využívanie continuous integration a continuous delivery pri vývoji a dodávaní softvérových verzií. Softvérová aplikácia je rozdelená do viacerých menších zavádzacích jednotiek, napríklad Docker containerov, z ktorých každý predstavuje samostatnú odbornú funkciu a môže byť nasadený nezávisle.
Použitie Docker containerov umožňuje elegantne implementovať stratégiu immutable deployment (stratégia nemeniteľného nasadenia), ktorej cieľom je používať rovnaké nasadenie vo všetkých fázach vývoja a už vopred eliminovať možné problémy.
Nasadzovací systém (deployment pipeline), ktorý zahŕňa všetky fázy spracovania a overovania softvéru až po jeho vydanie, je plne automatizovaný. Zabezpečuje, aby sa zmeny vykonané vývojármi dostali ku koncovým používateľom presne podľa plánu: čo najrýchlejšie a vo vysokej kvalite. Každá zmena je pritom priamo integrovaná do celého systému.
CI (continuous integration) sa zameriava na automatickú integráciu zmien kódu do spoločného repozitára a ich okamžité testovanie. CD (continuous delivery) nadväzuje a automatizuje prípravu kódu na nasadenie. Kým CI rieši fázu „kód je integrovaný a otestovaný“, CD zabezpečuje, že „kód je pripravený na produkciu“.
Áno. CI/CD je užitočné aj pre dvoj- alebo trojčlenné tímy. Moderné cloudové nástroje ako GitHub Actions či GitLab CI/CD sú zadarmo pre menšie projekty. Nastavenie jednoduchej pipeline zaberie pár hodín a návratnosť prichádza takmer okamžite cez menej manuálnych chýb a rýchlejšie iterácie.
Pri open-source nástrojoch ako Jenkins je licencia zadarmo. Hlavné náklady tvoria hosting runnerov, čas vývojára na nastavenie (2 až 10 dní) a priebežná údržba. Cloudové služby (CircleCI, GitHub Actions) majú free tier a platené plány typicky od 10 do 30 eur mesačne za používateľa.
Continuous delivery pripraví kód na nasadenie automaticky, ale finálne nasadenie do produkcie spúšťa človek manuálne. Continuous deployment posúva automatizáciu o krok ďalej a nasadzuje každý otestovaný kód do produkcie bez manuálneho zásahu.
Pre začiatočníkov odporúčame GitHub Actions (ak už projekt máš na GitHube) alebo GitLab CI/CD (integrované priamo v GitLabe). Oba nástroje majú jednoduchú YAML konfiguráciu, veľkú komunitu a veľa hotových šablón.
CI/CD mení vývoj softvéru zo série manuálnych krokov na plynulý, automatizovaný proces. Najväčšou výhodou je rýchlosť: namiesto mesiacov medzi verziami nasadzuješ zmeny v hodinách a reaguješ na potreby zákazníkov takmer v reálnom čase. Budúcnosť patrí tímom, ktoré vedia kombinovať CI/CD s AI asistentmi, automatizovaným bezpečnostným testovaním a inteligentnou orchestráciou cez Kubernetes. Všetky výhody najlepšie pochopíš priamo v praxi. Ak ťa táto oblasť zaujíma, pozri si naše voľné pozície. Možno práve u nás nájdeš zaujímavé kariérne príležitosti, ktoré ti otvoria dvere do sveta IT.
Zdroje:
https://www.redhat.com/en/topics/devops/what-is-ci-cd
https://about.gitlab.com/topics/ci-cd/
V msg life Slovakia sa starám o firemnú kultúru, eventy a som súčasťou marketingového tímu. Mám rada prácu, kde môžem byť kreatívna a prispieť k tomu, aby sa kolegovia v msg cítili dobre. Pravidelne pre teba pripravujem
nielen novinky a zaujímavosti zo sveta informačných technológií a poisťovníctva, ale aj zo zákulisného diania v spoločnosti msg life Slovakia.
Pozri sa, na čom spoločne pracujeme, kto sú ľudia za naším kódom a ako sme rástli. Zistíš, ako vyzerá naša práca zblízka a čo nás spája aj mimo kancelárie.
Naozaj sa chceš odhlásiť z msg IT komunity?
Mrzí nás, že uvažuješ o odchode. Ak však chceš pokračovať, zadaj svoj e-mail, ktorým si sa do komunity prihlásil, aby sme dokončili tvoje odhlásenie. Následne si skontroluj e-mailovú schránku a svoju voľbu potvrď.Ak máš aj naďalej technické problémy, neváhaj nás kontaktovať na e-mailovej adrese: info.sk@msg.group
Tvoja žiadosť o odhlásenie bola odoslaná
Do e-mailu sme ti poslali odkaz s potvrdením odhlásenia. Ak ti e-mail neprišiel, skontroluj aj sekciu spamu. Ak máš aj naďalej technické problémy, neváhaj nás kontaktovať na e-mailovej adrese: info.sk@msg.group
Bol si odhlásený z msg IT komunity
Je nám ľúto, že si sa rozhodol odísť. Údaje, ktoré si nám poskytol pri registrácii boli automaticky odstránené. Ak si svoje rozhodnutie rozmyslíš, môžeš sa k nám kedykolvek vrátiť. Ak máš akékolvek otázky alebo potrebuješ pomoc, neváhaj nás kontaktovať na e-mailovej adrese: info.sk@msg.group
Odkaz je už neplatný
Tento odkaz bol už použitý a si odhlásený z msg IT komunity.Naozaj sa chceš odhlásiť z odoberania IT noviniek?
Nebudeš dostávať žiadne IT novinky, výber IT podujatí, info o našich nových podcastoch a súťažiach.
Nastala chyba pri odhlasovaní z newsletteru
Ak máš aj naďalej technické problémy, neváhaj nás kontaktovať na e-mailovej adrese: info.sk@msg.group
Odhlásenie z odoberania IT noviniek bolo úspešné
Mrzí nás že odchádzate