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.

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.
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