Mikroszolgáltatások bemutatója: Mi az, Architecture és példa

Mik azok a mikroszolgáltatások?

Mikro szolgáltatások egy szolgáltatás-orientált architektúra-minta, amelyben az alkalmazások különböző legkisebb független szolgáltatási egységek gyűjteményeként épülnek fel. Ez egy szoftverfejlesztés megközelítés, amely egy alkalmazás egyfunkciós modulokra bontására összpontosít, jól definiált interfésszel. Ezeket a modulokat önállóan telepíthetik és működtethetik a szolgáltatás teljes életciklusát birtokló kis csapatok.

A „mikro” kifejezés egy mikroszolgáltatás méretére utal, amelyet egyetlen fejlesztőcsapat (5-10 fejlesztő) kezelhet. Ebben a módszertanban a nagy alkalmazások a legkisebb független egységekre vannak osztva.

Mi az a monolit Architectúra?

Laikus kifejezéssel azt mondhatjuk, hogy a monolitikus architektúra olyan, mint egy nagy konténer, amelyben egy alkalmazás összes szoftverösszetevője egyetlen csomagba van összegyűjtve.

Beszéljünk egy e-kereskedelmi üzlet példájáról egy monolitikus architektúra kontextusában.

Monolitikus Architectúra
Monolitikus ArchiAz e-kereskedelmi alkalmazás felépítése

Bármely e-kereskedelmi alkalmazásban van néhány szabványos funkció, mint például a Keresés, Review & Ratings, and Payments. Ezeket a funkciókat az ügyfelek böngészőjük vagy alkalmazásaik használatával érhetik el. Amikor az e-kereskedelmi webhely fejlesztője telepíti az alkalmazást, az egyetlen monolitikus egység. A különböző funkciók kódja, például a Keresés, RevAz iew & Ratings és a Payments ugyanazon a szerveren találhatók. Az alkalmazás méretezéséhez ezeknek az alkalmazásoknak több példányát (szerverét) kell futtatnia.

Mi az a Microservice Architectúra?

Mikroszolgáltatás Architectúra egy olyan építészeti fejlesztési stílus, amely lehetővé teszi alkalmazások létrehozását kis önálló szolgáltatások gyűjteményeként, amelyeket üzleti tartományra fejlesztettek ki. Ez a szerkezeti stílusú architektúra egy változata, amely segít az alkalmazások lazán összekapcsolt szolgáltatásgyűjteményként való elrendezésében. A mikroszolgáltatás ArchiA tecture finomszemcsés szolgáltatásokat és könnyű protokollokat tartalmaz.

Vegyünk egy példát a mikroszolgáltatási architektúrával fejlesztett e-kereskedelmi alkalmazásra. Ebben a Microservices architektúra példában minden mikroszolgáltatás egyetlen üzleti képességre összpontosít. Keresés, értékelés és RevAz iew-nek és a Payment-nek megvan a maga példánya (szerver), és kommunikálnak egymással.

Mikro szolgáltatások Architectúra
Mikro szolgáltatások Architectúra

A monolitban ArchiAz összes komponens egyetlen modullá egyesül. De a Mikroszolgáltatásokban ArchiEzek az egyes modulok (mikroszolgáltatások) vannak szétosztva, amelyek kommunikálnak egymással, ahogy az a fenti Microservices példában látható.

A mikroszolgáltatások közötti kommunikáció állapot nélküli kommunikáció, ahol minden kérés és válasz pár független. Így a mikroszolgáltatások könnyedén tudnak kommunikálni. A Mikroszolgáltatásban ArchiAz adatok egyesítve vannak. Minden mikroszolgáltatás külön adattárral rendelkezik. Következő ebben Java Microservices oktatóanyag, megtudjuk, mi a különbség a mikroszolgáltatások és a monolitikus architektúra között.

Mikroszolgáltatások kontra monolit Architectúra

Mikro szolgáltatások Monolitikus Architectúra
A teljes alkalmazás minden egységének a legkisebbnek kell lennie, és képesnek kell lennie egy konkrét üzleti cél megvalósítására. Egyetlen kódbázis minden üzleti célhoz
A szolgáltatás indítása viszonylag gyors A szolgáltatás elindítása több időt vesz igénybe
A hibaelhárítás egyszerű. Még ha az egyik szolgáltatás megszűnik, a másik továbbra is működhet. A hiba elkülönítése nehéz. Ha valamelyik funkció nem működik, a teljes rendszer leáll. A probléma kezeléséhez az alkalmazást újra kell építeni, újra kell tesztelni és újra kell telepíteni.
Minden mikroszolgáltatást lazán össze kell kapcsolni, hogy az egyikben végrehajtott változtatások ne érintsék a másikat. A monolitikus építészet szorosan összekapcsolódik. Az egyik kódmodul változásai hatással vannak a másikra is
A vállalkozások több erőforrást telepíthetnek olyan szolgáltatásokra, amelyek magasabb megtérülést eredményeznek Mivel a szolgáltatások nem elszigeteltek, az egyéni erőforrás-allokáció nem lehetséges
A gyakran használt szolgáltatáshoz több hardvererőforrás rendelhető. A fenti e-kereskedelmi példában több felhasználó ellenőrzi a terméklistát és keres, mint a fizetéseknél. Így több erőforrást lehetne a keresési és terméklistás mikroszolgáltatáshoz rendelni. Az alkalmazások méretezése kihívást jelent, és pazarló is.
A mikroszolgáltatások mindig konzisztensek és folyamatosan elérhetőek maradnak. A fejlesztési eszközök túlterheltek, mivel a folyamatot a nulláról kell kezdeni.
Az adatok egyesítve vannak. Ez lehetővé teszi az egyes Microservice számára, hogy az igényeinek leginkább megfelelő adatmodellt alkalmazzon. Az adatok központosítva vannak.
Kis fókuszált csapatok. Párhuzamos és gyorsabb fejlődés Nagy csapatra és jelentős csapatvezetési erőfeszítésre van szükség
Az egyik Mikroszolgáltatás adatmodelljének változása nem érinti a többi Mikroszolgáltatást. Az adatmodell változása a teljes adatbázist érinti
Jól definiált interfészek használatával kölcsönhatásba lép más mikroszolgáltatásokkal Nem alkalmazható
A mikroszolgáltatások azon az elven működnek, hogy a termékekre összpontosítanak, nem a projektekre Helyezzen hangsúlyt az egész projektre
Nincsenek keresztfüggőségek a kódalapok között. A különböző mikroszolgáltatásokhoz különböző technológiákat használhat. Egy funkció vagy program másoktól függ.

Mikroszolgáltatási kihívások

  • A MicroServices egymásra támaszkodik, és kommunikálniuk kell egymással.
  • A monolitikus rendszerekhez képest több olyan szolgáltatást kell felügyelni, amelyeket különböző módon fejlesztettek ki programozási nyelvek.
  • Mivel elosztott rendszerről van szó, eleve összetett modellről van szó.
  • A különböző szolgáltatásoknak külön mechanizmusa lesz, ami nagy mennyiségű memóriát eredményez a strukturálatlan adatok számára.
  • Hatékony irányítás és csapatmunka szükséges a lépcsőzetes problémák elkerüléséhez
  • Egy probléma reprodukálása nehéz feladat lesz, ha az egyik verzióban eltűnik, és a legújabb verzióban visszatér.
  • A független telepítés bonyolult a Microservices-szel.
  • A mikroszolgáltatási architektúra rengeteg műveletet jelent.
  • Nehéz kezelni az alkalmazásokat, ha új szolgáltatások kerülnek a rendszerbe
  • A heterogén elosztású mikroszolgáltatások támogatásához szakképzett szakemberek széles körére van szükség
  • A mikroszolgáltatás költséges, mivel a különböző üzleti feladatokhoz különböző szerverterületet kell fenntartani.

SOA kontra mikroszolgáltatások

A SOA-szolgáltatásokat a szervezetben egy nyilvántartás tartja karban, amely címtárlistaként működik. Az alkalmazásoknak meg kell keresniük a szolgáltatásokat a beállításjegyzékben, és meg kell hívniuk a szolgáltatást.

Egy másik világban, SOA olyan, mint egy zenekar, ahol minden művész a saját hangszerével lép fel, miközben a zeneigazgató utasításokat ad mindenkinek.

Másrészt a Microservices a szolgáltatás-orientált architektúra stílusának egyik formája, ahol az alkalmazások különböző kisebb szolgáltatások gyűjteményeként épülnek fel egyetlen szoftver vagy alkalmazás helyett.

A Microservices olyan, mint egy társulat, ahol minden táncos független, és tudja, mit kell tennie. Tehát, ha kihagynak néhány lépést, tudják, hogyan térjenek vissza a helyes sorrendhez. Most ebben a Microservices architektúra oktatóanyagban tanuljuk meg a SOA és a Microservices közötti különbséget.

Itt van egy részletes összehasonlítás a SOA és a Microservices között

Vizsgált paraméter SOA Mikro szolgáltatások
Tervezési típus A SOA-ban a szoftverösszetevők ki vannak téve a külvilágnak, hogy szolgáltatás formájában használják őket. A Micro Service a SOA része. Ez a SOA megvalósítása.
Függőség Az üzleti egységek függőek. Függetlenek egymástól.
A szoftver mérete A szoftver mérete nagyobb, mint bármely hagyományos szoftveré A Szoftver mérete mindig kicsi a Microservices-ben
Technológiai verem A technológiai stack alacsonyabb a Microservice-hez képest. A mikroszolgáltatási technológiai halom nagyon nagy lehet
Az alkalmazás jellege Monolit jellegű Teljes készlet a természetben
Független és fókusz A SOA-alkalmazások több üzleti feladat elvégzésére készültek. Egyetlen üzleti feladat elvégzésére készültek.
bevetés A telepítési folyamat időigényes. A telepítés egyszerű és kevésbé időigényes.
Költséghatékonyság Költséghatékonyabb. Less költséghatékony.
skálázhatóság Less a Mikroszolgáltatásokhoz képest. Nagyon skálázható.
Üzleti logika Az üzleti logikai összetevők egyetlen szolgáltatási tartományon belül vannak tárolva. Egyszerű vezetékes protokollok (HTTP XML JSON-nal) Az API-t SDK-k/kliensek vezérlik Az üzleti logika a tartományok között élhet a vállalati szolgáltatásbuszon, mint a szolgáltatások közti rétegek között

Mikroszolgáltatások Eszközök

1) Wiremock: Mikroszolgáltatások tesztelése

WireMock egy rugalmas könyvtár a webszolgáltatások megsemmisítésére és gúnyolására. Beállíthatja a HTTP API által visszaadott választ, amikor egy adott kérést kap. Mikroszolgáltatások tesztelésére is használják.

Download link:http://wiremock.org/

2) Docker

A Docker egy nyílt forráskódú projekt, amely lehetővé teszi alkalmazások létrehozását, üzembe helyezését és futtatását tárolók használatával. E tárolók használatával a fejlesztők egyetlen csomagként futtathatnak egy alkalmazást. Lehetővé teszi a könyvtárak és egyéb függőségek egy csomagban történő szállítását.

Download link:https://www.docker.com/

3) Hystrix

A Hystrix egy hibatűrő java könyvtár. Ez az eszköz a távoli szolgáltatások, rendszerek és harmadik féltől származó könyvtárak hozzáférési pontjainak elkülönítésére szolgál egy elosztott környezetben, például a Microservices-ben. Javítja az egész rendszert azáltal, hogy elkülöníti a hibás szolgáltatásokat, és megakadályozza a hibák lépcsőzetes hatását.

Letöltés Link:https://github.com/Netflix/Hystrix

A mikroszolgáltatások legjobb gyakorlatai Architectúra

  • Külön adattár minden mikroszolgáltatáshoz
  • Tartsa meg a hasonló érettségi szintű kódot.
  • Minden Micro szolgáltatáshoz külön build.
  • Mindig kezelje – súlyos hontalanként.

Összegzésként

  • A Microservices egy szolgáltatás-orientált architektúra, amelyben az alkalmazások különböző legkisebb független szolgáltatási egységek gyűjteményeként épülnek fel.
  • Mikroszolgáltatás ArchiA tecture egy olyan építészeti fejlesztési stílus, amely lehetővé teszi egy alkalmazás létrehozását kis önálló szolgáltatások gyűjteményeként, amelyeket egy üzleti tartomány számára fejlesztettek ki.
  • A monolitikus architektúra olyan, mint egy nagy konténer, amelyben az alkalmazás összes szoftverösszetevője egyetlen csomagba van összegyűjtve
  • A mikroszolgáltatásban a teljes alkalmazás minden egységének a legkisebbnek kell lennie, és képesnek kell lennie egy konkrét üzleti cél megvalósítására.
  • A monolitikus architektúrában a nagy kódbázis lelassíthatja a teljes fejlesztési folyamatot. Az új kiadások hónapokig is eltarthatnak. A kód karbantartása nehézkes
  • A mikroszolgáltatások két típusa: 1) Állapotmentes 2) Állapottartó
  • Mikroszolgáltatások be Java támaszkodnak egymásra, és kommunikálniuk kell egymással. Segít kiemelni egy adott funkciót és az üzleti igényeket
  • A szolgáltatás-orientált architektúra, röviden SOA néven ismert, az elosztott számítástechnika evolúciója, amely a szinkron és aszinkron alkalmazások kérés vagy válasz tervezési modelljén alapul.
  • A SOA-ban a szoftverkomponensek ki vannak téve a külvilág felé szolgáltatás formájában történő felhasználás céljából, míg a Micro Service a SOA része. Ez a SOA megvalósítása
  • A Wiremock, a Docker és a Hystrix néhány népszerű Microservices eszköz