Share via


Mikroszolgáltatások architektúrája

Tipp.

Ez a tartalom egy részlet a .NET-alkalmazásokhoz készült .NET-alkalmazásokhoz készült eBook, .NET Microservices Architecture című eBookból, amely elérhető a .NET Docs-on vagy egy ingyenesen letölthető PDF-fájlként, amely offline módban is olvasható.

.NET Microservices Architecture for Containerized .NET Applications eBook cover thumbnail.

Ahogy a neve is mutatja, a mikroszolgáltatás-architektúra a kiszolgálóalkalmazások kis szolgáltatások készleteként történő létrehozásának egyik megközelítése. Ez azt jelenti, hogy a mikroszolgáltatás-architektúra elsősorban a háttérrendszerre irányul, bár a megközelítést az előtérben is használják. Minden szolgáltatás a saját folyamatában fut, és más folyamatokkal kommunikál olyan protokollokkal, mint a HTTP/HTTPS, a WebSockets vagy az AMQP. Minden mikroszolgáltatás egy adott végpontok közötti tartományt vagy üzleti képességet valósít meg egy adott kontextushatáron belül, és mindegyiknek önállóan kell fejlesztenie, és egymástól függetlenül kell üzembe helyeznie. Végül minden mikroszolgáltatásnak rendelkeznie kell a kapcsolódó tartományi adatmodellel és tartománylogikával (szuverenitás és decentralizált adatkezelés), és különböző adattárolási technológiákon (SQL, NoSQL) és különböző programozási nyelveken alapulhat.

Milyen méretű legyen egy mikroszolgáltatás? Mikroszolgáltatás fejlesztésekor a méret nem lehet a fontos szempont. Ehelyett a lényeg az, hogy lazán összekapcsolt szolgáltatásokat hozzon létre, hogy minden egyes szolgáltatáshoz külön fejlesztési, üzembe helyezési és skálázási autonómiát biztosíthasson. A mikroszolgáltatások azonosításakor és tervezésekor természetesen meg kell próbálnia a lehető legkisebbre tenni őket, amíg nem rendelkezik túl sok közvetlen függőséggel más mikroszolgáltatásokkal. A mikroszolgáltatás méreténél fontosabb a belső kohézió, és a más szolgáltatásoktól való függetlensége.

Miért érdemes mikroszolgáltatás-architektúrát létrehozni? Röviden, hosszú távú rugalmasságot biztosít. A mikroszolgáltatások lehetővé teszik az összetett, nagy és nagy mértékben méretezhető rendszerek jobb karbantarthatóságát azáltal, hogy számos egymástól függetlenül üzembe helyezhető szolgáltatáson alapuló alkalmazásokat hozhat létre, amelyek mindegyike részletes és autonóm életciklussal rendelkezik.

További előny, hogy a mikroszolgáltatások egymástól függetlenül méretezhetők fel. Ahelyett, hogy egyetlen monolitikus alkalmazással rendelkezne, amelyet egységként kell felskáláznia, ehelyett skálázhat ki bizonyos mikroszolgáltatásokat. Így csak azt a funkcionális területet méretezheti, amely nagyobb feldolgozási teljesítményt vagy hálózati sávszélességet igényel a kereslet támogatásához, ahelyett, hogy az alkalmazás más olyan területeit skálázhatja, amelyeket nem kell skálázni. Ez költségmegtakarítást jelent, mert kevesebb hardverre van szüksége.

Diagram of the differences between the two deployment methods.

4-6. ábra. Monolitikus üzembe helyezés a mikroszolgáltatás-megközelítéssel szemben

A 4–6. ábrán látható, hogy a hagyományos monolitikus megközelítésben az alkalmazás úgy skálázható, hogy a teljes alkalmazást több kiszolgálón/virtuális gépen klónozza. A mikroszolgáltatás-megközelítésben a funkciók kisebb szolgáltatásokban különülnek el, így az egyes szolgáltatások egymástól függetlenül méretezhetők. A mikroszolgáltatás-megközelítés lehetővé teszi az egyes mikroszolgáltatások agilis változásait és gyors iterációját, mivel az összetett, nagy és méretezhető alkalmazások meghatározott, kis területeit módosíthatja.

A finomszemcsés mikroszolgáltatás-alapú alkalmazások megtervezése lehetővé teszi a folyamatos integrációt és a folyamatos teljesítést. Emellett felgyorsítja az új függvények alkalmazásba való továbbítását. Az alkalmazások részletes összetétele lehetővé teszi a mikroszolgáltatások külön-külön történő futtatását és tesztelését, valamint önállóan történő továbbfejlesztését, miközben egyértelmű szerződéseket tart fenn közöttük. Mindaddig, amíg nem módosítja az interfészeket vagy a szerződéseket, módosíthatja a mikroszolgáltatások belső megvalósítását, vagy új funkciókat adhat hozzá más mikroszolgáltatások feltörése nélkül.

Az alábbiak fontos szempontok ahhoz, hogy a mikroszolgáltatás-alapú rendszerekkel sikeres legyen az éles környezet:

  • A szolgáltatások és az infrastruktúra monitorozása és állapotellenőrzése.

  • Skálázható infrastruktúra a szolgáltatásokhoz (azaz a felhőhöz és a vezénylőkhöz).

  • Biztonsági tervezés és megvalósítás több szinten: hitelesítés, engedélyezés, titkos kódok kezelése, biztonságos kommunikáció stb.

  • Gyors alkalmazáskézbesítés, általában különböző csapatok különböző mikroszolgáltatásokra összpontosítva.

  • DevOps és CI/CD-eljárások és infrastruktúra.

Ezek közül csak az első három szerepel vagy jelenik meg ebben az útmutatóban. Az utolsó két pont, amelyek az alkalmazás életciklusával kapcsolatosak, a Microsoft Platform and Tools e-book további tárolóalapú Docker-alkalmazás életciklusával foglalkozik.

További erőforrások