Mikropaslaugų architektūra yra sistema, kurioje didelę taikomąją programą sudaro mažos paslaugos, kurios veikia ir bendrauja viena su kita naudojant API.
Šios paslaugos yra labai nepriklausomos ir laisvai susietos. Tai leidžia juos lengvai išbandyti ir prižiūrėti, o tai savo ruožtu pagreitina kūrimo procesą.
Kaip veikia mikropaslaugos
Iki mikropaslaugų standartinis programų kūrimo būdas buvo monolitinės architektūros naudojimas. Tokios programos buvo pavieniai, nepriklausomi vienetai. Jų komponentai, pvz., vartotojo sąsaja, verslo logika ir duomenų saugykla, buvo parašyti vienoje kodų bazėje.
Nors monolitines programas lengva kurti ir plėtoti, gautą kodą gali būti sunku suprasti, keisti ir prižiūrėti.
Mikropaslaugų architektūroje didelę programą suskaidote į mažesnes autonomines paslaugas. Kiekviena tarnyba yra atsakinga už vieną programos užduotį ir bendrauja su kitais naudodamas API.
Kiekviena paslauga taip pat turi visas būtinas priklausomybes ir jums nereikia jos susieti su išoriniais ištekliais.
Mikropaslaugos puikiai tinka didelių organizacijų kuriamoms programoms. Viena komanda gali dirbti su viena paslauga, o kita komanda – su kita. Tada galite išbandyti ir įdiegti šias paslaugas atskirai.
Mikropaslaugų sistemos pavyzdys yra el. prekybos programa su atskiromis paslaugomis, skirta NS, pirkinių krepšeliui, atsargoms ir užsakymams tvarkyti.
„Microservices“ architektūros pranašumai
Lankstumas ir mastelio keitimas
Kadangi kiekviena mikro paslauga nepriklauso nuo kitų, galite jas kurti ir įdiegti atskirai. Jei tam tikra paslauga sulėtėja, galite ją paleisti naudodami galingesnę aparatinę įrangą arba pridėti daugiau procesorių prie ją naudojančių serverių.
Taip pat galite lygiagrečiai paleisti du mikropaslaugos egzempliorius.
Lengva priežiūra ir atnaujinimai
Jei kuriate programą pagal mikro paslaugų architektūrą, galite ją atnaujinti etapais. Galite keisti paslaugą ir ją atnaujinti nepaveikdami kitų programos dalių.
Greitesnio kūrimo ir diegimo potencialas
Mažos komandos dirba kartu, kad sukurtų kiekvieną mikropaslaugą. Kadangi mikropaslauga atlieka konkrečią užduotį, komandos nariai gali sutelkti dėmesį tik į tą užduotį.
Be to, mažoje komandoje koordinavimas ir sprendimų priėmimas vyksta greičiau nei didelėje komandoje. Tai lemia greitesnį vystymosi ciklą.
Nepriklausomi technologijų pasirinkimai
Galite pasirinkti kurti mikropaslaugą kita programavimo kalba nei kitos mikropaslaugos. Pavyzdžiui, galite naudoti „Python“, kad sukurtumėte vieną mikropaslaugą, o „JavaScript“ – kitai. Kiekvienam taip pat galite naudoti skirtingas duomenų bazių valdymo paslaugas. Galų gale jūs pastatysite paslaugas naudodami tinkamiausią technologiją ar įrankį.
Mikropaslaugų architektūros įgyvendinimo iššūkiai
Įvairių paslaugų koordinavimo sudėtingumas
Programą gali sudaryti daug paslaugų, kurioms reikia bendrauti tarpusavyje. Šie ryšio kanalai turi būti saugūs ir patikimi, kad programa veiktų taip, kaip numatyta.
Derinimo ir testavimo problemos
Klaidas, kurias galite išskirti vienai paslaugai, lengviau išspręsti. Tačiau kai šios klaidos apima kelias paslaugas, derinimas tampa didesniu iššūkiu. Taip pat, integravimo testų rašymas kelioms paslaugoms gali būti sunku.
Galimybė padidinti pridėtines išlaidas
Kaip minėta, kiekviena paslauga yra nepriklausoma nuo kitų ir turi savo išteklius. Tai gali būti brangu, nes kiekvienai paslaugai reikalinga speciali infrastruktūra, kurią sudaro serveriai, nuolatinio integravimo įrankiai ir duomenų bazės.
Kada naudoti „Microservices“ architektūrą
Mikro paslaugų architektūra netinka visoms programoms. Tai gali būti brangu sukurti ir valdyti.
Prieš nuspręsdami naudoti mikropaslaugų architektūrą, apsvarstykite programos dydį ir sudėtingumą. Pamatysite daugiau naudos išskaidę didelę programą į valdomus išteklius nei mažą programą. Esant pakankamai mažam dydžiui, tai gali būti visiškas išteklių švaistymas.
Tačiau jei turite didelę kūrėjų komandą, kuriai reikia greitai suprasti kodo bazę arba norite naudoti skirtingas technologijas, mikropaslaugų architektūra gali būti tinkamas būdas.