Įsivaizduokime, kad kuriate naują savo veiklos sistemą. Jos svarbiausios funkcijos jau netrukus bus pristatytos naudotojams. Tačiau planuojate iškart taisyti pastebėtas klaidas ir ateityje nuolat sistemą tobulinti, pildyti naujomis funkcijomis, kurios dar geriau atlieps klientų poreikius. Visa tai jau, kai sistemą naudos šimtai naudotojų. Kaip suderinti stabilų sistemos veikimą su nuolatiniu jos keitimu? Juk skaičiuojama, kad iki 80 procentų visų sistemų veikimo sutrikimų įvyksta būtent po atnaujinimų diegimo.

Šią problemą jau daugiau nei dešimtmetį sprendžia DevOps (angl. Development & Operations) praktikų rinkinys. Ši metodika apjungia programų kūrėjų (Development) ir sistemas prižiūrinčių IT specialistų (Operations) tikslus bei padeda abiems pusėms efektyviau dirbti savo darbą. Plačiau apie šią praktiką ir nuo ko pradėti ją įgyvendinti savo įmonėje, pasakoja „Blue Bridge“ IT paslaugų skyriaus vadovas Mindaugas Maraulas.

Svarbiausia DevOps dalis – CI/CD procesas

Įrankiai, padedantys programų kūrėjams ir IT priežiūros specialistams, sukuriami įgyvendinant CI/CD (angl. Continuous integration and continuous delivery) procesą. Šio proceso pilnas pavadinimas, verčiant jį ne pažodžiui, nurodo į „nuolatinę integraciją“ bei „nuolatinį diegimą“, kuris reiškia, kad padaryti atnaujinimai (pavyzdžiui, pataisyta sistema, naujos jos funkcijos) iškart pasiekia galutinį naudotoją.

„Pasitelkus CI/CD procesą, atnaujinimai, kurių per dieną gali būti dešimtys, bus padaryti sistemoje iškart, tą pačią dieną. Vadovaujantis tradiciniu požiūriu, šių atnaujinimų kelias iki galutinio naudotojo kur kas ilgesnis. Iš pradžių visus pakeitimus reikia surinkti, po to – testuoti ir tik tuomet integruoti į sistemą. Dažniausiai tai reiškia, kad pakeitimai bus integruojami kur kas rečiau – pavyzdžiui, kartą per mėnesį, o ne tą pačią dieną, kai yra paruošti“, – pasakoja Mindaugas Maraulas.

Kokie iššūkiai dažniausi kuriant CI/CD procesą?

CI/CD procesas – tai pirmiausia programinė įranga, kuri padeda programuotojams pataisytą ar atnaujintą kodą integruoti į sistemą. Nors teoriškai programuotojai galėtų patys susikurti CI/CD procesą, tačiau tam prireiks papildomo jų laiko ir žinių apie IT infrastruktūrą. CI/CD proceso savarankiškai ir greitai negalėtų susikurti ir sistemų administratoriai ar kiti IT priežiūros specialistai, nes tam reikia gerų programavimo žinių.

„CI/CD proceso kūrimui reikalingos gana naujos – DevOps – kompetencijos. Didžiausias iššūkis yra tai, kad Lietuvoje, kaip ir pasaulyje, tokių specialistų yra nedaug ir ši kompetencija – gana reta ir brangi. Be to, šiam darbui reikia nemažai patirties, kurią sunku sukaupti dėl srities specifiškumo. Viena iš išeičių – pasitelkti išorinius tiekėjus visiems DevOps darbams tokiu būdu taupant programuotojų laiką, išlaidas jų paslaugoms ir užsitikrinant, kad atlikti darbai bus kokybiški. Kita vertus, galima žengti ir eksperimentų keliu – investuoti savo IT komandos laiką į CI/CD proceso kūrimą prieš imantis naujos aplikacijos vystymo“, – pasakoja „Blue Bridge“ IT paslaugų skyriaus vadovas.

Kitas iššūkis – susijęs su CI/CD proceso pritaikymu IT infrastruktūrai, kurioje veiks sistema ar aplikacija. „Pavyzdžiui, su nauja sistema ketinate naudotis didžiųjų debesų tiekėjų – „Amazon Web Services“ (AWS), „Google Cloud Platform“‎ (GCP) ar „Microsoft Azure“ – paslaugomis. Tai reiškia, kad ir pats sprendimas, ir CI/CD procesas turi būti pritaikytas konkrečiam tiekėjui, turinčiam savo gerąsias praktikas bei rekomendacijas. Tiekėjo specifiką atitinkančios ir tuo pat metu IT kaštus padedančios taupyti IT architektūros kūrimas – dar viena specifinė sritis, kurioje reikia ganėtinai gilių išskirtinių žinių ir patirties perkeliant ir pritaikant IT sprendimus viešajam debesiui“, – pastebi M. Maraulas.

Ar prireiks konteinerizacijos ir „Kubernetes“?

Konteineriai – tai virtualizavimo būdas, kai virtualizuojama tik pati aplikacija be operacinės sistemos. Dažnai jie yra dalis CI/CD proceso ir gali būti matomi kaip viena iš jį užtikrinančių priemonių.

„Tačiau CI/CD procesas gali būti įgyvendintas ir be konteinerizacijos. Vis dėlto, konteineriai naudingi, jeigu jums būtina izoliuoti skirtingus kodus vieną nuo kito, nes jie turi atitikti skirtingus reikalavimus, yra parašyti skirtinga programavimo kalba ir t. t.“ ,– pasakoja pašnekovas ir pabrėžia, kad konteineriai ypatingai naudingi, kai kompleksiškas IT paslaugas teikianti svetainė sukurta pasitelkus mikroservisų paradigmą, t. y., kai tokia svetainė realizuojama į dvi ir daugiau mažesnių svetainių, veikiančių kaip vieninga sistema. Kiekviena tokia mažesnė svetainė gali būti kuriama atskirų programuotojų grupių ir „paleidžiama“ konteineryje. Tuo atveju, jeigu konteinerių labai daug ir juos prižiūrėti rankiniu būdu per sudėtinga, padeda konteinerių orchestratoriaus, iš kurių populiariausias – „Kubernetes“.

M. Maraulas atkreipia dėmesį, kad svarbiausias šių bei visų kitų DevOps darbų tikslas – kuo labiau išlaisvinti programuotojus nuo bet kokių IT infrastruktūros klausimų ir tuo pat metu užtikrinti, kad sprendimas būtų sukurtas ir atnaujinamas taip, kad tai netrukdytų jo veikimui bei priežiūrai.

„Trumpiau tariant, ir CI/CD procesas, ir visos jį lydinčios priemonės – nuo IT architektūros sukūrimo iki konteinerizacijos – turi vieną panašumą. Visa tai – įrankiai, leidžiantys automatizuoti labai sudėtingus procesus ir tokiu būdu atpiginti bei suefektyvinti ir aplikacijų kūrimą, ir jų priežiūrą. Labai džiaugiamės, kad nuo šių metų galime padėti įmonėms atlikti svarbiausius DevOps darbus – nuo CI/CD proceso sudarymo iki aplikacijos pritaikymo viešajam debesiui ir konteinerizacijos“, – apibendrina „Blue Bridge“ atstovas.


Sužinokite daugiau apie „Blue Bridge” DevOps paslaugas >>

Arba parašykite mums!