Technologijoms tobulėjant precedento neturinčiu greičiu, IT srities įmonėms kyla iššūkių susidoroti su sparčiai besikeičiančia tendencija. Didėjant labai keičiamų programų poreikiui, įprasta monolitinė architektūra pasensta ir nebėra naudinga. Po tam tikro taško monolitinių programų mastelį gali būti sunku nustatyti, nes jos yra per didelės ir sudėtingos, kad pakeitimus būtų galima atlikti greitai ir teisingai. Norint įveikti monolitinės architektūros trūkumus, atsirado „Microservices“ architektūra ir į paslaugas orientuota architektūra. Jie greitai įgijo populiarumą kaip pagrindas kurti paskirstytas sistemas.

Tiek mikroservisai, tiek SOA architektūra yra šiek tiek susiję; abu yra pagrįsti paskirstytomis sistemomis, kuriomis siekiama padalinti programas į paslaugas. Abu metodai yra bendri taikymo moduliškumu ir yra nepriklausomi nuo konkrečios technologijos. Terminas „Microservices“ yra palyginti naujas, tačiau jo idėja egzistavo ilgą laiką, net ankstyvą dieną, kai buvo populiarus SOA. Mikro paslaugos yra moduliacijos koncepcija, pagrįsta didelių sistemų padalijimu į mažesnius modulius, siekiant palengvinti programinės įrangos diegimą ir plėtrą. SOA yra dar viena architektūra, pagrįsta programinės įrangos moduliacija ir dalijasi daugiau ar mažiau panašiomis funkcijomis. Tačiau abu turi nemažą skirtumų dalį.

Kas yra „Microservices“?

Mikroservisai yra programinės įrangos architektūrinis modelis, struktūriškai pritaikantis programą kaip mažų, nepriklausomų procesų, naudojamų konkrečioms verslo galimybėms, rinkinį. „Microservices“ - tai metodas modifikuoti programinę įrangą, skirtą specifinėms smulkių verslo funkcijų problemoms spręsti. Jis naudoja modulius, kurie veikia kaip atskiri procesai, tai reiškia, kad jis skatina kurti programinę įrangą kaip nepriklausomų paslaugų rinkinį. Paprastai tariant, „Microservices“ architektūra yra programos ar sistemos padalijimas į mažesnes, nepriklausomas dalis, pagrįstas bendros atsakomybės principu. Viena atsakomybė reiškia, kad kiekviena mikrotikrų paslauga turi apibrėžtų funkcijų rinkinį ir turėtų būti vykdoma atskirame procese kaip paslauga.

Į paslaugas orientuota architektūra

Į paslaugas orientuota architektūra (SOA) - tai programinės įrangos projektavimo modelis arba metodas, skirtas kurti paslaugų pagrindu sukurtą programų architektūrą. Kaip ir mikropaslaugos, SOA programos yra kuriamos remiantis paslaugomis. Tai programinės įrangos architektūrinė koncepcija, apibrėžianti laisvai susietų paslaugų naudojimą programinės įrangos vartotojų reikalavimams palaikyti. Kiekviena paslauga turi unikalų funkcionalumo rinkinį kuriant konkrečią programinės įrangos architektūrą. Į paslaugas orientuotos architektūros dėmesys sutelkiamas į funkcinę infrastruktūrą ir jos verslo paslaugas, o ne į techninę infrastruktūrą ir jos teikiamas paslaugas. SOA puikiai tinka spręsti sudėtingas paskirstytas sistemas. Tai leidžia subjektams, kuriems reikalingos tam tikros paskirstytos galimybės, surasti ir panaudoti šias galimybes. Idėja yra paskirstyti visą įmonės IT infrastruktūrą į atskiras paslaugas.

Skirtumas tarp mikro paslaugų ir SOA

Architektūra

- Nors abu architektūros stiliai grindžiami paskirstytomis sistemomis ir jais siekiama padalyti programas į paslaugas, kiekviena tarnyba turi skirtingą atsakomybę už abu architektūros modelius. „Microservices“ architektūra yra skirta sukurti vieną programą kaip mažų ir nepriklausomų paslaugų rinkinį, kuris yra kuriamas ir diegiamas savarankiškai. Kita vertus, SOA yra platesnė sąvoka, todėl šio stiliaus problemų yra daugiau. Skirtingai nuo mikro paslaugų, SOA apima laisvai sujungtų programų paslaugas, kurios palaiko ryšį per bendrą ryšio mechanizmą.

Duomenų saugykla

 - „Mikroservisai“ turi nepriklausomą duomenų saugyklą, tai reiškia, kad kiekviena „mikrotikrų“ paslauga bus nepriklausoma paslauga ir tarpusavyje nedalys jokios bendros duomenų saugyklos. Duomenų saugykla turi savo privalumų ir trūkumų rinkinį. Ryšys tarp mikro paslaugų turėtų būti atliekamas tik naudojant bendrą protokolų rinkinį, pvz., HTTP. SOA modelyje paslaugos turi tą patį duomenų saugojimo sluoksnį programoje. Paslaugos yra laisvai sujungtos į SOA ir savarankiškos. Vartotojams rūpi tik paslaugų sąsaja ir jiems nerūpi jos įgyvendinimas.

Lankstumas

- Kadangi mikro paslaugos yra savarankiškos, bet kokius mikro paslaugų pakeitimus galima išbandyti ir įdiegti atskirai. Tai leidžia jums susikoncentruoti ties vienos mikro paslaugų teikimo galimybėmis, o ne galvoti apie visą programą. Taigi pakeitimai, reikalingi naujoms funkcijoms, apsiriboja atskiromis mikropaslaugomis. Kita vertus, SOA turi didesnį organizacinį lankstumą, o diegimai yra būdingi aplinkai, kad jie galėtų veiksmingai reaguoti į besikeičiančią verslo aplinką. SOA platina logiką portalui ir atskiroms paslaugoms.

Gedimų tolerancija

 - SOA suteikia galimybę greičiau integruoti esamus programinės įrangos komponentus iš skirtingų šaltinių, kad būtų galima toleruoti gedimus. Gedimų toleravimas yra raktas į dideles paskirstytas sistemas. Tai sumažina modifikacijų ir gedimų poveikį visai sistemos aplinkai. Kita vertus, mikroservisai yra labiau linkę į nesėkmes, atsirandančias dėl paslaugų ir jų tarptinklinio tinklo ryšių plitimo. Tam tikra mikro paslaugų programa yra nepriklausomų, autonominių paslaugų rinkinys, o vienos ar daugiau paslaugų sugedimas neturėtų sumažinti visos programos.

Mikro paslaugos palyginti su SOA: palyginimo diagrama

Mikro paslaugų palyginimas su SOA

Trumpai tariant, mikroservisai daugiausia dėmesio skiria izoliacijai, ty paslaugų paslaugos yra nepriklausomos viena nuo kitos, o naujoms funkcijoms atlikti reikalingi pakeitimai apsiriboja atskiromis mikropaslaugomis. Trumpai tariant, mikroservisai atspindi atskiros sistemos architektūrą. Kita vertus, SOA nusako, kaip daugybė sistemų sąveikauja įmonės IT srityje. Skirtingai nuo mikro paslaugų, į paslaugas orientuotos architektūros dėmesys sutelkiamas į funkcinę infrastruktūrą ir jos verslo paslaugas, o ne į techninę infrastruktūrą ir jos teikiamas paslaugas.

Nuorodos

  • Wolffas, Eberhardas. Mikro paslaugos: lanksti programinės įrangos architektūra. Bostonas, Masačusetsas: Addison-Wesley, 2016. Spausdinti
  • Indrasiri, Kasun ir Prabath Siriwardena. Mikroservisai įmonei: Projektavimas, kūrimas ir diegimas. Niujorkas: „Apress“, 2018. Spausdinti
  • Mitra, Ronnie ir kt. „Microservice Architecture“: principų, praktikos ir kultūros suderinimas. Sebastopolis, Kalifornija: „O'Reilly Media“, 2016. Spausdinti
  • Josuttis, Nicolai M. SOA praktikoje: paskirstytos sistemos projektavimo menas. Sebastopolis, Kalifornija: „O'Reilly Media“, 2007. Spausdinti
  • Vaizdo kreditas: https://commons.wikimedia.org/wiki/File:SOA_Detailed_Diagram.png
  • Vaizdo kreditas: https://commons.wikimedia.org/wiki/File:JLupin_wiki_fig3.png