Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Alkalmazásösszetevők üzembe helyezése a fő alkalmazástól eltérő folyamatba vagy tárolóba az elkülönítés és a beágyazás biztosítása érdekében. Ez a minta lehetővé teszi, hogy különböző összetevőkből és technológiákból hozzon létre alkalmazásokat.
A motorkerékpár oldalkocsihoz hasonlóan ezek az összetevők egy szülőalkalmazáshoz csatlakoznak, és megosztják életciklusukat, így együtt hozhatja létre és távolíthatja el őket. Ezt a mintát Sidekick-mintázatnak is nevezik , és támogatja az alkalmazások felbontását.
Környezet és probléma
Az alkalmazások és szolgáltatások gyakran igényelnek kapcsolódó funkciókat, például monitorozást, naplózást, konfigurációt és hálózati szolgáltatásokat. Ezeket a perifériafeladatokat különálló összetevőkként vagy szolgáltatásokként implementálhatja.
A szorosan integrált összetevők ugyanabban a folyamatban futnak, és hatékonyan használják a megosztott erőforrásokat, de nincs elkülönítésük. Az egyik összetevő kimaradása hatással lehet a teljes alkalmazásra. A szülőalkalmazás nyelvének implementálását is igénylik, ami kölcsönös függőséget teremt.
Ha az alkalmazást szolgáltatásokra bontja, az egyes szolgáltatásokat különböző nyelvek és technológiák használatával hozhatja létre. Ez a megközelítés nagyobb rugalmasságot biztosít. Azonban minden összetevő saját függőségekkel rendelkezik, és nyelvspecifikus kódtárakat igényel a platformhoz és a megosztott erőforrásokhoz való hozzáféréshez. Ha külön szolgáltatásként telepíti ezeket a funkciókat, késést ad meg. A nyelvspecifikus kód és függőségek az üzemeltetés és az üzembe helyezés összetettségét is növelik.
Megoldás
Helyezzen üzembe egy összetartó feladatkészletet az elsődleges alkalmazás mellett egy külön folyamatban vagy tárolóban. Ez a megközelítés egységes felületet biztosít a különböző nyelveken elérhető platformszolgáltatásokhoz.
A sidecar-szolgáltatás anélkül csatlakozik az alkalmazáshoz, hogy annak része lenne, és mellette kerül üzembe helyezésre. Minden alkalmazáspéldány saját sidecar példányt kap, amely megosztja annak életciklusát.
A Sidecar minta a következő előnyöket biztosítja:
Nyelvfüggés: A sidecar az elsődleges alkalmazás futtatókörnyezetétől és programozási nyelvétől függetlenül fut. Egy oldalkocsis implementációt használhat különböző nyelveken írt alkalmazásokban.
Megosztott erőforrás-hozzáférés: Az oldalkocsi ugyanazokat az erőforrásokat érheti el, mint az elsődleges alkalmazás. Az oldalkocsi például figyelheti a mindkét összetevő által használt rendszererőforrásokat.
Kis késés: Az oldalkocsi elsődleges alkalmazáshoz való közelsége minimálisra csökkenti a kommunikációs késést.
Fokozott bővíthetőség: A natív bővíthetőségi mechanizmusokat nem tartalmazó alkalmazásokat úgy terjesztheti ki, hogy egy oldalkocsit külön folyamatként csatol ugyanazon a gazdagépen vagy alkontaineren.
Ennek a mintának a leggyakoribb implementációja tárolókat használ, amelyeket oldalkocsis tárolóknak vagy segéd tárolóknak is neveznek.
Problémák és szempontok
A minta megvalósításakor vegye figyelembe a következő szempontokat:
Fontolja meg az üzembe helyezési és csomagolási formátumot a szolgáltatások, folyamatok vagy tárolók üzembe helyezéséhez. A konténerek jól működnek a Sidecar mintához.
Oldalkocsis szolgáltatás tervezésekor gondosan válassza ki a folyamatközi kommunikációs mechanizmust. Használjon nyelvi vagy keretrendszer-agnosztikus technológiákat, hacsak a teljesítménykövetelmények nem teszik praktikussá ezt a megközelítést.
Mielőtt funkciókat ad egy oldalkocsihoz, értékelje ki, hogy jobban működik-e különálló szolgáltatásként vagy hagyományos démonként.
Fontolja meg, hogy a funkciót kódtárként vagy hagyományos kiterjesztési mechanizmussal valósítja-e meg. A nyelvspecifikus kódtárak mélyebb integrációt és kevesebb hálózati többletterhelést biztosítanak.
Mikor érdemes használni ezt a mintát?
Használja ezt a mintát, ha:
Az elsődleges alkalmazás különböző nyelveket és keretrendszereket használ. Az oldalkocsik egységes felületet biztosítanak, amelyet a különböző alkalmazások a nyelvüktől vagy keretrendszerüktől függetlenül használhatnak.
Egy külön csapat vagy külső partner rendelkezik egy összetevővel.
Egy összetevőt vagy szolgáltatást az alkalmazással megegyező gazdagépen kell üzembe helyeznie.
Olyan szolgáltatásra van szüksége, amely megosztja a fő alkalmazás teljes életciklusát, de függetlenül frissíthet.
Egy adott erőforrás vagy összetevő erőforráskorlátainak részletes szabályozására van szükség. Üzembe helyezhet például egy összetevőt oldalkocsiként, hogy a fő alkalmazástól függetlenül korlátozza és kezelje a memóriahasználatot.
Ez a minta nem feltétlenül megfelelő, ha:
Optimalizálnia kell a folyamatközi kommunikációt. Az oldalkocsik többletterhelést, különösen késést okoznak, ami miatt nem alkalmasak az összetevők közötti gyakori kommunikációval rendelkező alkalmazásokra.
Az alkalmazás kicsi. Az egyes példányokhoz társított oldalkocsi üzembe helyezésének erőforrásköltsége meghaladhatja az elkülönítés nyújtotta előnyöket.
Az összetevőt önállóan kell méreteznie. Ha az összetevőt a fő alkalmazástól eltérően kell skáláznia, helyezze üzembe külön szolgáltatásként.
A platform egyenértékű funkciókat biztosít. Ha az alkalmazásplatform natív módon biztosítja a szükséges képességeket, az oldalkocsik szükségtelen összetettséget biztosítanak.
Munkaterhelés tervezés
Értékelje ki, hogyan használhatja a Sidecar-mintát a számítási feladatok tervezésében az Azure Well-Architected-keretrendszer pilléreiben foglalt célok és alapelvek kezelésére. Az alábbi táblázat útmutatást nyújt arról, hogy ez a minta hogyan támogatja az egyes pillérek céljait.
| Pillér | Hogyan támogatja ez a minta a pillércélokat? |
|---|---|
| A biztonsági tervezési döntések segítenek biztosítani a számítási feladatok adatainak és rendszereinek titkosságát, integritását és rendelkezésre állását. | Ha ezeket a feladatokat külön folyamatokban helyezi üzembe, a támadási felületet csak a szükséges kódra csökkenti. Az oldalkocsikkal többirányú biztonsági vezérlőket is hozzáadhat olyan alkalmazás-összetevőkhöz, amelyek nem támogatják natívan ezeket a funkciókat. - SE:04 Szegmentálás - SE:07 Titkosítás |
| Az operatív kiválóságszabványosított folyamatok és a csapat kohéziója révén segít a számítási feladatok minőségének biztosításában. | Ez a minta lehetővé teszi a megfigyelhető eszközök rugalmas integrálását anélkül, hogy függőségeket ad az alkalmazás kódjához. Az oldalkocsit az alkalmazástól függetlenül frissítheti és karbantarthatja. - OE:04 Eszközök és folyamatok - OE:07 Monitorozási rendszer |
| A teljesítményhatékonyság a skálázás, az adatok és a kód optimalizálásával segíti a számítási feladatok hatékony kielégítését . | Ezzel a mintával központosíthatja a több alkalmazáspéldányra skálázható oldalkocsikon végzett keresztmetszeti feladatokat. Nem kell duplikált funkciókat üzembe helyeznie az egyes alkalmazáspéldányokhoz. - PE:07 Kód és infrastruktúra |
Ha ez a minta kompromisszumokat vezet be egy pilléren belül, vegye figyelembe őket a többi pillér céljaival szemben.
Example
A Sidecar-mintát számos forgatókönyvre alkalmazhatja. Vegye figyelembe a következő példákat:
Függőség absztrakciója: Helyezzen üzembe egy egyéni szolgáltatást az egyes alkalmazások mellett, hogy egy konzisztens API-val hozzáférést biztosítson a megosztott függőségi képességekhez. Ez a megközelítés a nyelvspecifikus ügyfélkódtárakat egy oldalkocsira cseréli, amely kezeli az olyan problémákat, mint a naplózás, a konfiguráció, a szolgáltatásfelderítés, az állapotkezelés és az állapotellenőrzés.
Az Elosztott alkalmazás futtatókörnyezet (Dapr) oldalkocsija példázza ezt a használati esetet.
Szolgáltatásháló adatsíkja: Helyezzen üzembe egy oldalkocsi-proxyt az egyes szolgáltatáspéldányok mellett, hogy kezelje az olyan horizontális hálózatkezelési problémákat, mint a forgalomirányítás, az újrapróbálkozás, a kölcsönös átviteli rétegbiztonság (mTLS), a szabályzatkényszerítés és a telemetria.
Az Istio-hoz hasonló szolgáltatáshálók oldalkocsi-proxyk használatával implementálják ezeket a képességeket anélkül, hogy módosítani kellene az alkalmazás kódját.
Ambassador sidecar: Az Ambassador szolgáltatás oldalkocsiként történő üzembe helyezése. Az alkalmazás a hívásokat a nagyköveten keresztül irányítja át, amely kezeli a kérések naplózását, az útválasztást, a kapcsolatcsoport megszakadását és egyéb csatlakozási funkciókat.
Protokolladapterek: Helyezzen üzembe egy oldalkocsit a nem kompatibilis protokollok vagy adatformátumok közötti fordításhoz vagy az üzenetkezelési rendszerek áthidalásához. Ez a megközelítés lehetővé teszi, hogy az alkalmazás egyszerűbb vagy örökölt interfészeket használjon.
Telemetriai bővítés: Helyezzen üzembe egy oldalkocsit a telemetriai adatok (például metrikák, naplók és nyomkövetések) előfeldolgozásához vagy bővítéséhez, mielőtt az adatokat külső figyelési rendszerekre továbbítja. Az olyan összetevők, mint az OpenTelemetry Collector , futtathatók oldalkocsiként, hogy az alkalmazástól elkülönítve normalizálják, bővítsék vagy irányítják a telemetriát.
Következő lépések
A Dapr-t használó mikroszolgáltatási API-k: Megtudhatja, hogy az Azure Container Apps hogyan használja a Dapr oldalkocsikat az egyszerű, hordozható, rugalmas és biztonságos mikroszolgáltatások létrehozásához.
Natív oldalkocsi mód az Istio-alapú service mesh szolgáltatáshoz az Azure Kubernetes Service-ben (AKS): Megtudhatja, hogy az AKS Istio szolgáltatásháló funkciója hogyan használja a Sidecar-mintát az elosztott architektúra kihívásainak kezelésére.