Amikor mikroszolgáltatásokkal dolgozik, az alkalmazásai sok különböző kisméretű szolgáltatásból állnak, amelyeknek kommunikálniuk kell ahhoz, hogy rendszerként működjenek együtt.
A mikroszolgáltatások sok esetben közvetlenül kommunikálnak egymással az egyes szolgáltatások között, ami hatástalanná és meghibásodásra hajlamossá teszi őket, de éppen ezen segíthet a szolgáltatásháló.
Tartalomjegyzék
Mi az a szervizháló?
A szolgáltatásháló kifejezés kezdetben az alkalmazás különböző mikroszolgáltatásai közötti adatcsere szabályozásának módját írja le. Pontosabban olyan szoftver használatáról van szó, amely lehetővé teszi a mikroszolgáltatások közötti kommunikációt:
- Alkalmazás azonosítása
- Terhelés elosztás
- Hitelesítés
- Titkosítás
Az egymáshoz kapcsolódó mikroszolgáltatások mesh hálózatát a proxykon keresztül futó párhuzamos kapcsolatok hozzák létre. Ebből a célból egy hálózatba kötött mikroszolgáltatási hálózatot integrálnak egy magasabb szintű adatközponti hálózatkezelési rendszerbe. Így könnyebb optimalizálni a kommunikációt anélkül, hogy az alkalmazás fejlesztése során leállásnak lenne kitéve. Valójában minden alkalmazásszolgáltatásnak más szolgáltatásokra van szüksége a felhasználói igények kielégítéséhez.
Például egy online értékesítési alkalmazással a felhasználó minden vásárlás előtt megtudja, hogy az érintett cikk valóban elérhető-e. Ehhez létre kell hozni a kommunikációt a szolgáltatás között az adatbázissal és a termék weboldalával kapcsolatban. Ezután az utóbbinak kommunikálnia kell a felhasználó online bevásárlókosarával.
Ezenkívül a viszonteladó beállíthat egy termékajánlat szolgáltatást az alkalmazáson a felhasználók jobb irányításához. Ebben az esetben ennek az új szolgáltatásnak nem csak a termékcímkék adatbázisával kell cserélni az ajánlatok kiadásához, hanem a készletadatbázissal is, amelynek előzetesen kommunikálnia kell a termékoldallal. Valójában újrafelhasználható termékek készlete.
A modern alkalmazások jellemzően szolgáltatási hálózatként vannak beállítva, amelyek célja egy adott üzleti funkció ellátása.
Hogyan működik a szervizháló, és mik az előnyei?
Meg kell jegyezni, hogy a Service Mesh nem hoz létre más funkciókat egy alkalmazás munkakörnyezetében. Az alkalmazásban létrehozott Service Mesh hálózati proxyk csoportja, amely továbbra is ismerős fogalom a vállalati számítástechnikai szektorban.
Valószínűleg minden alkalommal proxyt használ, amikor munkaszámítógéppel meglátogat egy weboldalt. A mikroszolgáltatások infrastrukturális rétegére épülő proxy-k segítik a kérések irányítását közöttük. Innen a szó: „oldalkocsi” a szolgáltatáshálóban található proxykat jelöli, és ez azért van így, mert végrehajtásuk a szolgáltatások mellett, nem pedig azokon belül történik. A különböző szolgáltatások „oldalkocsis” proxyi mesh hálózatot hoznak létre.
Továbbá szolgáltatásháló hiányában a fejlesztőknek úgy találják, hogy minden mikroszolgáltatást kódolniuk kell a szolgáltatások közötti kommunikációs stratégia szerint. Mivel a részlegek közötti kommunikációs logika minden részlegben el van rejtve, a fejlesztők küzdenek a vállalati célok eléréséért.
Ezenkívül nehézségekbe ütköznek a kommunikációs problémák diagnosztizálása során. Végül a szolgáltatások hálója lehetővé teszi, hogy megoldást találjunk a szolgáltatások közötti kommunikáció kezelésével kapcsolatos néhány problémára.
A Service Mesh segítségével automatizálhatja ezt a kommunikációt, mivel a szükséges adatok és információk könnyen elérhetők a mesh hálózat kihelyezett infrastruktúrájában. Ez megkönnyíti a problémák és meghibásodások lokalizálását és kiküszöbölését. Ezenkívül lehetővé teszi a vállalat informatikai részlegeinek tehermentesítését, és más, értéknövelő feladatok elvégzését.
A kommunikációs absztrakció miatt a meghibásodott szolgáltatások is automatikusan megkerülhetők, és nem rontják a működő alkalmazásrészek adatcseréjét. A szervizháló rendszer könnyen hozzáférhető adatai is könnyen elemezhetők, így lehetővé válik az alkalmazás működésének javítása és teljesítménynövelése.
Végigjártuk a szervizháló működését; most nézzünk néhányat a legjobb szolgáltatási hálókezelők közül:
Hálós
Hálós egy mesh-szolgáltatáskezelő, amely lehetővé teszi különböző szolgáltatásháló-megoldások futtatását. Kubernetesen és Dockeren telepíthető. A Mastery felhasználói felületet és CLI-t biztosít az összes főbb mesh-szolgáltatási megoldás, köztük a Linkerd és az Istio viszonyítási alapjának beállításához. A Meshery közvetlenül a fürtön vagy helyileg telepíthető.
Amazon App Mesh
AWS App Mesh egy hálózati mesh szolgáltatás az Amazon Kubernetes platformjához (EKS). Alkalmazásszintű felügyeletet biztosít az envoy oldalkocsis proxyn keresztül a be- és kimenő forgalomhoz, és áramkör-megszakítást használ az AWS X-Ray segítségével megfigyelhetőségi mutatók biztosításához. Az AWS app mesh más szolgáltatásokkal, például az Amazon EC2 és az AWS Fargate mellett is használható.
Linkerd
Linkerd egy nyílt forráskódú hálózati mesh-kezelő, amely Rust-alapú, testre szabott proxyt használ a mikroszolgáltatások kezelésére. Előre telepített Grafana-val érkezik, hogy megfigyelhetőségi mutatókat biztosítson. A Linkerd a többi nyílt forráskódú mesh-kezelővel ellentétben GUI-t kínál, és nem csak a Prometheust támogatja, hanem támogatja az olyan bemeneti vezérlőket is, mint a Traefik, a Kong és a Gloo. A Linkerd támogatja az automatikus telepítési frissítéseket is a fürtök között.
Istio
Istio egy nyílt forráskódú szolgáltatásháló, amely Envoy proxyt használ a mikroszolgáltatások kezelésére. Az Istio számos szolgáltatást kínál, például terheléselosztást, házirend-alkotást, forgalomirányítást, időtúllépéseket, áramkör-megszakítást, forgalomváltást és újrapróbálkozásokat. Az Istio emellett elosztott nyomkövetési funkcionalitást biztosít konténerek vagy gépek között anélkül, hogy további szoftvereket kellene telepítenie.
Kuma
Kuma a Kong által létrehozott szolgáltatásháló, amely a meglévő szolgáltatások működésének kiterjesztésére szolgál Envoy proxy segítségével. A Kuma különféle mikroszolgáltatásokat támogat, és fokozott biztonságot és felügyeletet biztosít a hálózatok számára. Számos előre csomagolt házirendet tartalmaz az útválasztáshoz, az mTLS-hez, a forgalomirányításhoz és különféle biztonsági szolgáltatásokhoz. A Kuma segítségével könnyedén vezérelheti a különböző izolált hálókat egyetlen vezérlő- és adatsíkon keresztül.
Nginx Mesh
Nginx egy szolgáltatásháló a Kubernetes számára, amely az Nginx Plus által működtetett adatsík segítségével titkosítja a konténerek közötti forgalmat. Az Nginx sebességkorlátozást és megszakítókat használ a szolgáltatások közötti forgalom kezelésére, és egy Grafana műszerfallal érkezik a szolgáltatásháló mérőszámainak megfigyelésére.
Konzul
Konzul by HashiCorp egy szervizháló, amely beépített proxyréteget biztosít, és támogatja az Envoy oldalkocsis proxyt is. Útvonal-alapú útválasztást, forgalomeltolódást és terheléselosztást kínál. A Consul integrálva van a HashiCorp Vault-tal, és támogatja az mTLS-t is. Integrálható a Prometheusszal és a Grafanával a megfigyelhetőségi mutatók megtekintéséhez.
Gloo Mesh
Gloo Mesh egy szolgáltatásháló, amely az Istio meshre épül, és Envoy proxyt használ, amely lehetővé teszi a Zero Trust biztonsági modell megvalósítását. A Gloo támogatja a több bérlésű Kubernetes, virtuális gépeket és egyéb mikroszolgáltatásokat. Mind CI/CD, mind GitOps-barát, ami megkönnyíti a telepítést.
Végső szavak
A Service Mesh megoldja a különböző mikroszolgáltatások közötti kommunikációs problémákat, és különféle biztonsági előnyöket biztosít; azonban a piacon elérhető több száz különböző hálós megoldás miatt elengedhetetlenné válik az igényeinek leginkább megfelelő és könnyen kezelhető háló szolgáltatás kiválasztása.