Kuna tehnoloogia areneb enneolematu kiirusega, seab see IT-valdkonna ettevõtetele väljakutseid kiiresti muutuva trendiga toimetulemiseks. Ja suureneva skaala järgi laiendatavate rakenduste nõudluse järele on tavapärane monoliitne arhitektuur aegunud ega ole enam kasulik. Pärast teatud punkti võib monoliitsete rakenduste ulatus olla keeruline, kuna need on liiga suured ja keerulised muudatuste kiireks ja korrektseks tegemiseks. Monoliitsest arhitektuurist tulenevate piirangute ületamiseks on mängu pandud Microservices Architecture ja Service-Oriented Architecture. Peagi said nad populaarsuse hajutatud süsteemide ehitamise alusena.

Mõlemad mikroteenused ja SOA arhitektuur on mõneti seotud; mõlemad põhinevad hajutatud süsteemidel, mille eesmärk on jagada rakendused teenusteks. Mõlemal lähenemisviisil on ühine rakenduste modulaarsus ja nad ei sõltu konkreetsest tehnoloogiast. Mõiste “mikroteenused” on suhteliselt uus, kuid selle kontseptsioon on olnud pikka aega olemas, isegi varasel ajal, kui SOA oli populaarne. Microsoteenused on modulariseerimise kontseptsioon, mis põhineb suurte süsteemide jagamisel väiksemateks mooduliteks, et hõlbustada tarkvara juurutamist ja arendamist. SOA on järjekordne tarkvara modulaarsusel põhinev arhitektuur, millel on enam-vähem sarnased funktsioonid. Kuid mõlemal on erinevuste osas oma õiglane osa.

Mis on Microservices?

Mikrosideteenused on tarkvara arhitektuuriline muster, mis struktureerib rakenduse väikeste sõltumatute protsesside kogumina, mida kasutatakse konkreetsete ärivõimaluste jaoks. Microsoteenused on lähenemisviis tarkvara modulaarsusele, mis on loodud tegelema konkreetsete peeneteraliste ärifunktsioonidega. See kasutab mooduleid, mis töötavad eraldiseisvate protsessidena, st stimuleerib tarkvararakenduse loomist sõltumatute teenuste komplektina. Lihtsamalt öeldes tähendab Microservices arhitektuur rakenduse või süsteemi jagamist väiksemateks sõltumatuteks osadeks, mis põhinevad ühe vastutuse põhimõttel. Üks vastutus tähendab, et igal mikroteenusel on hulk täpselt määratletud funktsioone ja see peaks teenusena toimima eraldi protsessina.

Teenustele orienteeritud arhitektuur

Teenusele orienteeritud arhitektuur (SOA) on tarkvara kujundamise muster või lähenemisviis teenustepõhise rakendusearhitektuuri loomiseks. Nagu mikroteenused, on ka SOA rakendused üles ehitatud teenustele tuginedes. See on tarkvaraarhitektuuriline kontseptsioon, mis määratleb lõdvalt ühendatud teenuste kasutamise tarkvara kasutajate nõuete toetamiseks. Igal teenusel on konkreetse tarkvaraarhitektuuri kujundamisel ainulaadne funktsionaalsus. Teenustele orienteeritud arhitektuuri keskmes on funktsionaalne infrastruktuur ja selle äriteenused, mitte tehniline taristu ja selle teenused. SOA sobib hästi keerukate hajutatud süsteemidega tegelemiseks. See võimaldab üksustel, kes vajaksid teatud hajutatud võimalusi, neid võimalusi üles leida ja neid kasutada. Idee on jagada kogu ettevõtte IT-infrastruktuur eraldi teenusteks.

Erinevus mikroteenuste ja SOA vahel

Arhitektuur

- Kuigi mõlemad arhitektuuristiilid põhinevad hajutatud süsteemidel ja nende eesmärk on jagada rakendused teenusteks, on mõlemal teenusel mõlemal arhitektuurimustril erinev vastutus. Microsoteenuste arhitektuur seisneb ühe rakenduse väljatöötamises väikeste ja sõltumatute teenuste komplektina, mis on välja töötatud ja juurutatud iseseisvalt. SOA on seevastu laiem mõiste, seega on selle stiiliga seotud probleemide ulatus suurem. Erinevalt mikroteenustest hõlmab SOA lõdvalt ühendatud rakendusteenuseid, mis suhtlevad ühise kommunikatsioonimehhanismi kaudu.

Andmekogu

 - mikroteenustel on iseseisev salvestusruum, mis tähendab, et iga mikroteenus on iseseisev teenus ega jaga omavahel omavahel ühist andmesalvestust. Andmesalvestus toob endaga kaasa plusse ja miinuseid. Mikrosideteenuste vaheline suhtlus peaks toimuma ainult ühiste protokollide, näiteks HTTP kaudu. SOA mudelis jagavad teenused rakenduses sama andmesalvestuskihti. Teenused on SOA-s lõdvalt ühendatud ja iseseisvad. Tarbijad tunnevad muret ainult teenuse liidese pärast ega hooli selle rakendamisest.

Paindlikkus

- Kuna mikroteenused on iseseisvad, saab kõiki mikroteenuste muudatusi iseseisvalt testida ja kasutusele võtta. See teeb teile hõlpsaks keskendumise ühe mikroteenuse ärivõimele, selle asemel et mõelda kogu rakendusele. Niisiis on uute funktsioonide jaoks vajalikud muudatused piiratud üksikute mikroteenustega. Teisest küljest on SOA-l suurem organisatsiooniline paindlikkus ja rakendused on keskkonnaspetsiifilised, et nad saaksid muutuvale ärikeskkonnale tõhusalt reageerida. SOA levitab loogikat portaalile ja üksikutele teenustele.

Veataluvus

 - SOA võimaldab olemasolevate tarkvarakomponentide integreerimist erinevatest allikatest kiiremini muutes rikke taluvuse. Vigade taluvus on suurte hajutatud süsteemide võti. See minimeerib muudatuste ja rikete mõju süsteemimaastikule tervikuna. Seevastu mikroteenused on rikete suhtes, mis tulenevad teenuste ja nende teenindustevahelise võrguside levikust. Antud mikroteenuse rakendus on sõltumatute, autonoomsete teenuste kogum ja ühe või mitme teenuse rike ei tohiks kogu rakendust alla viia.

Mikroteenused vs. SOA: võrdlusdiagramm

Microsofti ja SOA versiooni kokkuvõte

Lühidalt - mikroteenused keskenduvad isolatsioonile, st tähendusteenused on üksteisest sõltumatud ja uute funktsioonide jaoks vajalikud muudatused piirduvad üksikute mikroteenustega. Lühidalt öeldes tähistavad mikroteenused konkreetse süsteemi arhitektuuri. SOA seevastu määratleb, kuidas paljud süsteemid ettevõtte IT-s toimivad. Erinevalt mikroteenustest keskendub teenustele orienteeritud arhitektuur funktsionaalsele infrastruktuurile ja selle äriteenustele, mitte tehnilisele infrastruktuurile ja selle teenustele.

Viited

  • Wolff, Eberhard. Mikrosideteenused: paindlik tarkvaraarhitektuur. Boston, Massachusetts: Addison-Wesley, 2016. Trükk
  • Indrasiri, Kasun ja Prabath Siriwardena. Microsofti mikroteenused: projekteerimine, arendamine ja juurutamine. New York: Apress, 2018. Trükk
  • Mitra, Ronnie jt. Microservice Architecture: põhimõtete, tavade ja kultuuri vastavusse viimine. Sebastopol, California: O'Reilly Media, 2016. Trükk
  • Josuttis, Nicolai M. SOA praktikas: hajutatud süsteemi kujundamise kunst. Sebastopol, California: O'Reilly Media, 2007. Trükk
  • Kujutise krediit: https://commons.wikimedia.org/wiki/File:SOA_Detailed_Diagram.png
  • Kujutise krediit: https://commons.wikimedia.org/wiki/File:JLupin_wiki_fig3.png