Reikalavimai šiuolaikinėms aplikacijoms ir Kubernetes platformos nauda
Donata Marcevičiūtė ir Lina Matusevičienė, „Baltnetos“ produktų vadovės
Šiandien greitai kintantiems verslo poreikiams aptarnauti vis dažniau pasitelkiamos konteinerizuotos aplikacijos. Kaip rodo „Baltnetos“ patirtis, šio tipo aplikacijos geriausiai atitinka keliamus ir verslo, ir jų naudotojų reikalavimus. Tokių aplikacijų valdymui „Baltneta“ yra pritaikiusi Kubernetes platformą, apie kurios pranašumus išsamiau pasakoja bendrovės specialistės Donata Marcevičiūtė ir Lina Matusevičienė.
Vartotojų poreikių evoliucija
„Šiuolaikinės technologijos pakeitė pasaulį, kuriame mes gyvename. Tuo pačiu jos labai stipriai pakeitė ir mus kaip vartotojus. Tai, kas buvo laikoma „norma“ prieš gerą dešimtmetį, šiandien yra gerokai pasikeitę“, – sako D. Marcevičiūtė. Pasak „Baltnetos“ atstovės, vienas tokių pavyzdžių yra prekių ar paslaugų įsigijimo procesas e. parduotuvėse, kuris prieš dešimtmetį atrodė kitaip.
Visų pirma, užsakymo kelionė nuo prekės įsigijimo iki gavimo trukdavo kur kas ilgiau. Dažnu atveju užsakymo procese atsirasdavo papildomas kontaktas su aptarnaujančiu vadybininku tam, kad būtų patikslintos užsakymo detalės, el. paštu pateikiama sąskaita faktūra apmokėjimui ir tik atlikus keletą papildomų veiksmų galiausiai įgyvendinamas užsakymas.
Šiandien vartotojų lūkesčiai apsipirkimui elektroninėje erdvėje kur kas aukštesni. Vartotojas tikisi visus veiksmus, susijusius su prekės ar paslaugos įsigijimu, atlikti savarankiškai ir greitai, o jeigu aplikacija veikia lėtai, stringa ar rodo tam tikras technines klaidas, jis greičiausiai bus linkęs rinktis apsipirkti ten, kur viskas veikia sklandžiau.
„Atsižvelgiant į šiuolaikinius tyrimus, greitas ir sklandus aplikacijos veikimas vartotojams yra ženkliai svarbiau nei kokybiškas klientų aptarnavimas ar jų mylimas prekės ženklas. Kokybiškas aplikacijos veikimas turėtų būti vienas svarbiausių verslo prioritetų“, – pastebi D. Marcevičiūtė.
Visa tai reiškia, kad verslas, kuris kuria ar vysto aplikacijas bei sistemas (tiek išorinio, tiek vidinio naudojimo) ir siekia, kad jos generuotų pajamas bei jomis naudotųsi kuo daugiau vartotojų, privalo atsižvelgti į šių aplikacijų modernumą ir jų technologinę dalį t. y. kūrimą, vystymą bei priežiūrą.
Pagal tai „Baltneta“ išgrynino modernios aplikacijos koncepciją, kurią sudaro 5 komponentai: moduliarumas, išplečiamumas, atsparumas gedimams, saugumas ir automatizuotas valdymas. D. Marcevičiūtė plačiau paaiškina kiekvieną iš šių komponentų.
Modernios aplikacijos ypatybės
- Moduliarumas. Moduliari aplikacija yra paremta mikroservisais. „Mikroservisų pagrindu parašytos aplikacijos kiekviena funkcinė dalis „gyvena“ atskirose kodų bazėse, kai monolitinės aplikacijos atveju visas aplikacijos veikimui reikalingas kodas veikia vienoje kodų bazėje“, – aiškina D. Marcevičiūtė. Pagrindiniai mikroservisų pagrindu veikiančios aplikacijos privalumai, palyginti su monolitine aplikacija, yra lengvas valdymas ir diegimas. Prireikus atlikti tam tikrą atnaujinimą, nereikia ištestuoti ir iš naujo įdiegti visos aplikacijos, užtenka atnaujinti su pakeitimu susijusį mikroservisą.
- Lengvas plečiamumas. Sunkiai plečiama aplikacija gali turėti dvi verslui nepalankias pasekmes – prarastus pardavimus ir neefektyviai išnaudojamus infrastruktūros resursus. „Tarkime, kad klientas valdo e. parduotuvę, kuri susiduria su stipriai išaugusiais vartotojų srautais Kalėdinės prekybos metu. Jei aplikacija negali būti lengvai išplečiama išaugusio srauto metu, tai reiškia, kad piko metu ji sulėtės arba neveiks. Vadinasi, vartotojai negalės būti aptarnauti, o pardavimai bus prarasti“, – pavyzdį pateikia „Baltnetos“ atstovė. Kita vertus, jei tokiems piko momentams verslas galėtų pasiruošti iš anksto ir minėtu šventiniu laikotarpiu naudotų daugiau resursų nei įprastai tam, kad išvengtų aplikacijos neveikimo piko momentais, greičiausiai vis tiek nebūtų pasiektas optimalus sprendimas, kadangi visą laikotarpį aplikacija neveikia maksimaliais pajėgumais, o neišnaudoti resursai lemia papildomas išlaidas.
- Atsparumas gedimams. Aukštas pateikiamumas yra vienas iš prioritetų kalbant apie aplikacijas ar sistemas. „Vystant, kuriant ir prižiūrint aplikacijas reiktų galvoti ir apie jų atsparumą gedimams, kurį padeda užtikrinti mikroservisinė aplikacijų architektūra. Dėl to tam tikro mikroserviso gedimai praktiškai nepaveikia kitų aplikacijos dalių ir jos veikimo“, – sako D. Marcevičiūtė.
- Saugumas. Daugelis ir išorinių, ir vidinių sistemų bei aplikacijų kaupia jautrius vartotojų duomenis, o atsižvelgiant į visus galiojančius vartotojų duomenų saugumo reguliavimus, verslas privalo juos apsaugoti. Tai reiškia, kad apie aplikacijos saugumą reikia galvoti ne tik sukūrus aplikaciją, bet visuose jos kūrimo, vystymo ir priežiūros procesuose.
- Automatizuotas valdymas. Automatizuotas valdymas yra paskutinis modernios aplikacijos koncepto komponentas. Moderni aplikacija turėtų būti valdoma, vystoma ir prižiūrima pasitelkiant automatizacijos įrankius, kurių pagrindinis tikslas atlikti visus pasikartojančius ir pridėtinės vertės nekuriančius darbus, o IT specialistų darbo laiką nukreipti į aplikacijos vystymą ir tobulinimą.
Koncepcijos įgyvendinimas
Modernios aplikacijos koncepcija gali būti įgyvendinta pritaikant DevOps praktikas, t. y. aplikacijos konteinerizaciją, Kubernetes platformą ir CI/CD procesus.
Aplikacijų konteinerizacija – tai aplikacijos ir visų jos veikimui reikalingų komponentų talpinimas vienas nuo kito izoliuotuose konteineriuose. „Technologiškai konteinerį galima palyginti su virtualia mašina, tačiau patys svarbiausi šių dviejų infrastruktūros komponentų skirtumai yra tai, jog konteineris neturi operacinės sistemos ir jo sukūrimas, paleidimas bei diegimas užima gerokai mažiau laiko“, – sako D. Marcevičiūtė.
Pasak jos, turint konteinerizuotą infrastruktūrą galima paprasčiau užtikrinti ir jos priežiūrą, nes šiuo atveju nelieka poreikio prižiūrėti ir atnaujinti didelio kiekio atskirų operacinių sistemų, kurios veikia skirtingose virtualiose mašinose.
Galiausiai, vienas iš pagrindinių konteinerizacijos privalumų yra tai, jog konteinerizavus aplikaciją ją galima lengvai ir greitai paleisti bet kokio tipo infrastruktūroje. Tai ypač aktualu įmonėms, kurioms tenka atlikti pasikartojančius aplikacijos diegimus skirtingose infrastruktūrose arba plečiantis į naujas rinkas, kuomet aplikaciją reikia perkelti arčiau tikslinių klientų.
„Statistiškai išmatuota, kad konteinerizacija yra vis labiau pritaikoma organizacijų infrastruktūroje, o turint didelį kiekį konteinerių atsiranda poreikis juos efektyviai valdyti ir prižiūrėti. Štai čia savo darbą gali atlikti Kubernetes platforma, kurią pasitelkus nebereikia kiekvieno konteinerio valdyti ir prižiūrėti individualiai“, – teigia D. Marcevičiūtė.
Kubernetes platformos pranašumai
Kubernetes yra įrankis efektyviam, automatizuotam ir centralizuotam konteinerių valdymui ir priežiūrai. Kubernetes platforma atneša daugybę privalumų, o vienas iš pagrindinių – tai patikimesnio aplikacijos veikimo užtikrinimas. „Kubernetes stebi konteinerių būsenas, žino, kokius parametrus turi palaikyti, ir, identifikavus nuokrypius ar gedimus automatiškai „pagydo“ neveikiančius konteinerius. Tai padeda aplikacijai išvengti reikšmingų gedimų, kuriuos galėtų pajusti vartotojai“, – sako D. Marcevičiūtė.
Kubernetes sutrumpina aplikacijos atnaujinimų diegimo laiką, nes šioje platformoje galima pritaikyti CI/CD įrankius automatizacijai. Tai padeda diegimo ir testavimo laiką sutrumpinti dešimtimis kartų.
„Pagrindinis CI/CD proceso pranašumas yra greitas naujų funkcijų pateikimas galutiniam naudotojui. Žinoma, CI/CD procesas yra sudaromas atsižvelgiant į kiekvienos aplikacijos specifiką, pasitelkiant tokius įrankius kaip „Jenkins“, „Bitbucket“, „Github“ ar „Gitlab“, – vardija „Baltnetos“ atstovė.
Kitas pranašumas, kurį svarbu akcentuoti kalbant apie Kubernetes, pasak D. Marcevičiūtės, yra „auto-scaling“ galimybės, užtikrinančios, kad aplikacija veiktų net tada, kai ženkliai išauga vartotojų srautai. Tai padeda padauginti konteinerių kiekį tais atvejais, kai srautas išauga, ir jį sumažinti, kai apkrovimas sumažėja. Taip optimaliai išnaudojami resursai ir valdomos sąnaudos.
Dar vienas Kubernetes pranašumas yra hibridinės infrastruktūros palaikymas. Jis leidžia aplikacijai veikti keliuose duomenų centruose modeliuojant lokalaus ir viešo debesies funkcionalumus. Galiausiai, įsidiegus Kubernetes platformą taupomas IT skyriaus darbo laikas ir mažinama žmogiškųjų klaidų rizika.
Galimi iššūkiai
Nepriklausomai nuo to, jog DevOps praktikų taikymas, turi įvairių privalumų tiek IT skyriui, tiek verslui, reikia įvertinti ir iššūkius, su kuriais gali tekti susidurti. „Viena iš pagrindinių problemų yra tai, jog ne kiekviena aplikacija gali būti modernizuojama, nes monolitinės aplikacijos dažniausiai negali būti konteinerizuotos arba tai padaryti yra sunku ir imlu laikui“, – pastebi D. Marcevičiūtė.
Nusprendus taikyti DevOps praktikas, pasak „Baltnetos“ atstovės, pirminiame etape dažnu atveju bus reikalinga atlikti sąlyginai kompleksinį diegimą, kuris neapsiriboja tik konteinerizacija, Kubernetes diegimu ir CI/CD procesais. Jis taip pat apims ir monitoringo, tinklo, saugumo, rezervinio kopijavimo bei kitus sprendimus. Galiausiai, dažnu atveju pritaikius DevOps praktikas nebūtinai bus įmanoma naudoti jau turimus, tradicinius tinklo ar saugumo sprendimus, ypač tais atvejais, kai Kubernetes diegiamos hibridinėje infrastruktūroje.
Kita vertus, įsivertinus galimas grėsmes ir iššūkius, DevOps praktikų taikymas gali padėti perkelti aplikacijų veikimą, jų vystymą ir priežiūrą į kitą lygį, todėl kuriant naujas aplikacijas, kurios susiduria su dideliu vartotojų srautu ar turi poreikį dažniems atnaujinimų diegimams, verta galvoti apie DevOps praktikų pritaikymą.
Kalbant apie praktinį sprendimo įgyvendinimą, „Baltnetos“ atstovės Linos Matusevičienės teigimu, bendrovė yra pasirengusi pasiūlyti tiek infrastruktūrą Kubernetes talpinimui (KaaS), tiek Kubernetes klasterio priežiūros bei įdiegimo paslaugas.
Apie „Baltneta KaaS“ paslaugą
Kubernetes klasteris gali būti patalpintas ir fiziniuose, ir virtualiuose serveriuose. Klasterio diegimas, valdymas ir išplėtimas tampa paprastesnis pasirinkus Kubernetes talpinimo platformą. Jų pasirinkimas platus, įskaitant „Amazon EKS“, „Azure AKS“, „Google GKE“ ir dešimtis kitų servisų.
Iš savo pusės „Baltneta“ gali pasiūlyti Kubernetes talpinimo platformą „Baltneta KaaS“. Pasak L. Matusevičienės, paslauga teikiama aukšto pateikiamumo debesyje naudojant „VMware Tanzu“ platformą. „Mes pasirūpiname resursais, virtualizacija, o pasitelkus „VMware Tanzu“ Kubernetes klasterio diegimui, visą procesą galima užbaigti greičiau nei per valandą. Kubernetes klasterio diegimą klientas gali atlikti savarankiškai arba gali šią užduotį patikėti atlikti ir „Baltnetos“ specialistams“, – teigia L. Matusevičienė.
Apie Baltnetos Kubernetes klasterio priežiūrą ir įdiegimą
„Baltnetos“ teikiama Kubernetes klasterio priežiūros paslauga yra bene viena iš pirmųjų rinkoje, teikiama as a service principu.
„Pagrindinis tokios paslaugos privalumas tas, kad techniniai darbai ir incidentų šalinimas yra susiję su Kubernetes klasteriu ir yra atliekami nuolatos, o ne pagal atskiras užklausas. Mūsų specialistai užtikrina nuolatinį Kubernetes infrastruktūros ir visų klasterio veikimui svarbiausių komponentų stebėjimą, proaktyviai atlieka atnaujinimų diegimus bei saugumo analizę“, – sako „Baltnetos“ produktų vadovė Donata Marcevičiūtė.
Anot jos, kiekvienas Kubernetes klasterio priežiūros paslauga besinaudojantis klientas turi prieigą prie 24/7 režimu veikiančios „Baltnetos“ klientų aptarnavimo tarnybos užklausų ir incidentų registracijai.
Be to, išnaudodama savo platų kompetencijų spektrą, „Baltneta“ gali atlikti ne tik pirminį diegimą, kuris apima aplikacijos konteinerizaciją, Kubernetes platformos diegimą ir CI/CD procesus, bet taip pat ir pritaikyti reikiamus rezervinio kopijavimo ar saugumo sprendimus, atlikti tinklo konfigūraciją ar integraciją bei kitus reikalingus techninius sprendimus.
„Tai leidžia klientui visą jo verslui reikalingą sprendimą gauti „iš vienų rankų“, nesikreipiant į kelis skirtingus tiekėjus ir išvengiant viso proceso administravimo. Galiausiai, taikome fiksuotą mėnesio paslaugos mokestį už Kubernetes platformos priežiūrą, kas verslo klientams leidžia tiksliau prognozuoti pinigų srautus“, – sako D. Marcevičiūtė.