Lailio yra patikimas Latvijos IT partneris nuo 2008 metų, padedantis įmonėms modernizuoti jų informacines sistemas. Šiame projekte Lailio IT priežiūros ir aptarnavimo skyrius glaudžiai bendradarbiavo su įmone Rīgas Satiksme, siekdamas sukurti, pristatyti ir įdiegti DevOps procesą, taip pat užtikrinti nepertraukiamą Odoo platformos priežiūrą. Ši sistema kasdien aptarnauja apie 3000 vartotojų. Sukurtas sprendimas remiasi atvirojo kodo (open source) požiūriu, derinant jį su šiuolaikiniu konteinerizavimu ir modernia pristatymo praktika.
Platformos architektūra
Technologinis Odoo platformos pagrindas sukurtas naudojant modernią ir pritaikomą architektūrą, kuri užtikrina sistemos saugumą ir tikslią paslaugų izoliaciją. Infrastruktūra yra logiškai padalinta į tris atskiras aplinkas: kūrimo, testavimo ir gamybinę aplinką. Toks architektūros padalijimas griežtai garantuoja, kad bet kokie programavimo kodo pakeitimai ar sistemos atnaujinimai pirmiausia atidžiai patikrinami kontroliuojamomis sąlygomis. Tik po sėkmingo testavimo jie patenka į gamybinę aplinką pas galutinius vartotojus. Tai efektyviai užkerta kelią netikėtiems sutrikimams gamybinėje aplinkoje. Be to, atvirojo kodo architektūra suteikia reikšmingą technologinę nepriklausomybę, leisdama IT komandai atlikti gilesnes modifikacijas, atitinkančias specifinius Rīgas Satiksme verslo poreikius.
DevOps procesas su Azure DevOps
Pagrindinis sistemos kūrimo ir pristatymo proceso variklis yra Azure DevOps, kuris tarnauja kaip centrinis repozitorijų ir CI/CD konvejerių įrankis. Sukurtas procesas yra visiškai automatizuotas: kai tik kūrėjai įkelia kodo pakeitimus į repozitoriją, nedelsiant prasideda standartizuotas pristatymo ir patikros ciklas. Pirmiausia atliekama kodo peržiūra, kad komanda įsitikintų programinės įrangos kokybe ir atitiktimi vidiniams standartams. Po to automatiškai paleidžiami automatizuoti testai. Naujos versijos į gamybinę aplinką pristatomos per tą patį konvejerį, todėl kiekvienas išleidimas yra atkartojamas ir atsekamas.
Kubernetes ir mastelio keitimas
Siekiant efektyviai valdyti skaičiavimo resursus ir užtikrinti nuosekliai stabilų veikimą net ir esant kintančiai apkrovai, platformos infrastruktūra patalpinta Kubernetes konteinerių platformoje. Kubernetes automatiškai valdo aplikacijos konteinerius ir realiuoju laiku stebi jų būklę. Jei kuris nors iš Odoo sistemos konteinerių nustoja reaguoti arba veikia su vėlavimu, Kubernetes jį automatiškai paleidžia iš naujo, nereikalaudamas rankinio sistemos administratoriaus įsikišimo. Taip pat ši technologija leidžia keisti platformos mastelį: esant didesnei apkrovai galima pridėti papildomus Odoo konteinerius, nekeičiant pačios programinės įrangos.
Autorizacija ir prieiga
Sistemos ir jos duomenų saugumo pagrindas yra centralizuotas vartotojų autentifikavimas ir griežtas prieigos teisių valdymas. Atsižvelgiant į tai, kad platforma kasdien naudojasi apie 3000 vartotojų su skirtingomis rolėmis, padaliniais ir atsakomybės lygiais, modernios autorizacijos įdiegimas buvo kritiškai būtinas. Įdiegta centralizuota sistema griežtai garantuoja, kad kiekvienam darbuotojui po prisijungimo prieinamas tik tas sistemos funkcionalumas, kuris tiesiogiai atitinka jo pareigines atsakomybes. Tai žymiai sumažina vidines saugumo rizikas ir užkerta kelią neteisėtai prieigai prie konfidencialios verslo informacijos.
Odoo našumas esant didelei apkrovai
Standartinė Odoo programinės įrangos architektūra kartais susiduria su rimtais našumo iššūkiais situacijose, kai sistemoje vienu metu aktyviai dirba tūkstančiai vartotojų. Kad ši platforma nepriekaištingai atlaikytų didelio klientų kiekio aptarnavimą intensyviomis sąlygomis, Lailio komanda atliko išsamų inžinerinį darbą. Pradinis Odoo kodas buvo perrašytas ir iš esmės optimizuotas. Šie reikšmingi kodo pakeitimai struktūriškai sutvarkė duomenų apdorojimo procesus ir optimizavo duomenų bazės užklausas, leisdami sistemai labai greitai reaguoti. Dėl to sistema pritaikyta darbui sąlygomis, kai yra daug vienu metu veikiančių vartotojų ir didelis užklausų tankis.
Atsarginės kopijos ir atkūrimas
Infrastruktūroje sukurtas griežtas ir visiškai automatizuotas duomenų atsarginių kopijų darymo bei atkūrimo procesas. Sistema reguliariai kuria visų duomenų bazių bei failų saugyklų atsargines kopijas. Procesas taip pat apima atkūrimo tvarką: kaip ir kokia seka duomenys atkuriami iš atsarginės kopijos, kad gedimo atveju sistemą būtų galima atkurti nuspėjamai ir kontroliuojamai.
Priežiūra ir monitoringas
Vykdant projektą, Lailio IT priežiūros ir aptarnavimo skyrius užtikrina nuolatinę, kasdienę platformos priežiūrą ir techninį palaikymą. Siekiant, kad ši priežiūra būtų tikrai proaktyvi, į infrastruktūrą integruotas visapusiškas monitoringas bei išmanūs įspėjimai. Monitoringo platforma realiuoju laiku nuolat renka svarbius metrikos duomenis apie Kubernetes klasterio, konteinerių resursų ir bendrą Odoo aplikacijos našumą. Kai tik sistema nustato bet kokias klaidas ar neįprastą skaičiavimo resursų vartojimą, IT inžinieriai nedelsiant gauna automatizuotus įspėjimus. Dėl tokio ankstyvo aptikimo incidentų valdymas yra labai efektyvus.
Kokia iš to nauda
Sukurtas DevOps procesas ir kruopščiai parengta techninė bazė žymiai palengvina didelio masto verslo valdymą. Perrašytas ir optimizuotas Odoo kodas, kartu su Kubernetes užtikrinamu lanksčiu mastelio keitimu, leidžia platformai stabiliai ir sklandžiai aptarnauti apie 3000 kasdienių vartotojų. Atvirojo kodo strategija kartu su automatizuotais kodavimo, testavimo ir integracijos procesais Azure DevOps aplinkoje užtikrina kontroliuojamą ir atsekamą naujų funkcionalumų pristatymą. Rezultatas – efektyvus, greitas ir inovatyvus IT sprendimas didelės apimties klientų aptarnavimui, kuris nuolat tobulėja kartu su kliento poreikiais.