Geode minta

Azure Cosmos DB

A Geode-minta magában foglalja a háttérszolgáltatások gyűjteményének üzembe helyezését egy geográfiainodes készletben, amelyek mindegyike bármilyen régióban képes kiszolgálni bármely ügyfélre vonatkozó kéréseket. Ez a minta aktív-aktív stílusban teszi lehetővé a kérések kiszolgálását, javítja a késést és növeli a rendelkezésre állást a kérésfeldolgozás világszerte történő elosztásával.

Geode térkép

Kontextus és probléma

Számos nagy léptékű szolgáltatás sajátos kihívásokkal rendelkezik a földrajzi rendelkezésre állás és a skálázás körül. A klasszikus kialakítások gyakran úgy hozzák az adatokat a számításba , hogy adatokat tárolnak egy távoli SQL-kiszolgálón, amely az adatok számítási szintjeként szolgál, és a növekedés érdekében a vertikális felskálázásra támaszkodik.

A klasszikus megközelítés számos kihívást jelenthet:

  • Hálózati késési problémák a világ másik oldaláról érkező felhasználók számára az üzemeltetési végponthoz való csatlakozáshoz
  • Az igénykitörések forgalomkezelése, amely egy régióban túlterhelheti a szolgáltatásokat
  • Az alkalmazásinfrastruktúra példányainak több régióban történő üzembe helyezésének költséges összetettsége egy 24x7-szolgáltatáshoz

A modern felhőinfrastruktúra úgy alakult ki, hogy lehetővé tegye az előtérbeli szolgáltatások földrajzi terheléselosztását, miközben lehetővé teszi a háttérszolgáltatások földrajzi replikációját. A rendelkezésre állás és a teljesítmény szempontjából jó, ha az adatok közelebb kerülnek a felhasználóhoz. Ha az adatok földrajzilag el vannak osztva egy távoli felhasználói bázison, a földrajzilag elosztott adattárakat az adatokat feldolgozó számítási erőforrásokkal is együtt kell helyezni. A geodéziai minta a számítást az adatokhoz hozza.

Megoldás

Helyezze üzembe a szolgáltatást a világ különböző pontjain található számos műholdas üzembe helyezésben, amelyek mindegyikét geodéziának nevezzük. A geodéziai minta kihasználja az Azure főbb funkcióit, hogy a forgalmat egy közeli geodétához vezető legrövidebb útvonalon keresztül irányíthassa, ami javítja a késést és a teljesítményt. Minden geode egy globális terheléselosztó mögött található, és egy georeplikált olvasási-írási szolgáltatást használ, például az Azure Cosmos DB-t az adatsík üzemeltetéséhez, biztosítva a geodéziai adatkonzisztenciát. Az adatreplikációs szolgáltatások biztosítják, hogy az adattárak azonosak legyenek a geodéziai adatok között, így az összes kérés kiszolgálható az összes földrajzi régióból.

Az üzembehelyezési bélyeg és a geodéta között az a fő különbség, hogy a geodéziák soha nem léteznek elszigetelten. Egy éles platformon mindig több geodétának kell lennie.

A Geode áttekintése

A geodéziák jellemzői a következők:

  • Különböző típusú erőforrások gyűjteménye, amelyek gyakran sablonban definiálhatók.
  • Nincsenek függőségei a geodéziai lábnyomon kívül, és önállóak. Egyetlen geode sem függ a másiktól, és ha az egyik meghal, a többiek továbbra is működnek.
  • A rendszer lazán összekapcsolja a peremhálózatot és a replikációs háttérsíkot. Használhatja például az Azure Traffic Managert vagy az Azure Front Doort a geodéziák előtérbe helyezéséhez, míg az Azure Cosmos DB replikációs háttérsíkként is működhet. A geodéziai adatok nem egyeznek meg a fürtökkel, mivel replikációs háttérsíkjuk van, ezért a platform gondoskodik a kvórumproblémákról.

A geodéziai minta olyan big data-architektúrákban fordul elő, amelyek nyersanyag-hardvert használnak az ugyanazon a gépen tárolt adatok feldolgozására, a MapReduce pedig az eredmények összesítésére a gépek között. Egy másik használat a közel peremhálózati számítás, amely közelebb hozza a számítást a hálózat intelligens peremhálózatához a válaszidő csökkentése érdekében.

A szolgáltatások több tucat vagy több száz geodéta esetén használhatják ezt a mintát. Ezenkívül a teljes megoldás rugalmassága minden hozzáadott geodétával nő, mivel bármely geodézia átveheti a feladatát, ha egy regionális kimaradás egy vagy több geodétát offline állapotba helyez.

A helyi rendelkezésre állási technikák, például a rendelkezésre állási zónák vagy a párosított régiók is bővíthetők a globális rendelkezésre állás geodéziai mintájával. Ez növeli a bonyolultságot, de akkor hasznos, ha az architektúrát egy olyan tárolómotor, például a blobtároló támogatja, amely csak párosított régióba replikálható. A földrajzi helyeket zónán belüli, zónán belüli vagy regionális lábnyomba helyezheti üzembe, figyelembe véve a helyre vonatkozó szabályozási vagy késési korlátozásokat.

Problémák és megfontolandó szempontok

A minta megvalósításához használja az alábbi technikákat és technológiákat:

  • Modern DevOps-eljárások és eszközök az azonos geodéziák nagy számú régióban vagy példányban történő előállításához és gyors üzembe helyezéséhez.
  • Automatikus skálázás a geodén belüli számítási és adatbázis-átviteli sebességpéldányok vertikális felskálázásához. Minden geode egyenként skálázható fel a közös háttérsík-korlátozásokon belül.
  • Egy olyan előtér-szolgáltatás, mint az Azure Front Door, amely dinamikus tartalomgyorsítást, felosztott TCP-t és Anycast-útválasztást végez.
  • Az adatkonzisztenciát olyan replikáló adattár, mint az Azure Cosmos DB.
  • Kiszolgáló nélküli technológiák, ahol lehetséges, a folyamatos üzembehelyezési költségek csökkentése érdekében, különösen akkor, ha a terhelés gyakran újraegyensúlyozódik világszerte. Ez a stratégia lehetővé teszi, hogy számos geodéta üzembe helyezése minimális további befektetéssel járjon. A kiszolgáló nélküli és a fogyasztásalapú számlázási technológiák csökkentik a duplikált geoelosztott üzemelő példányok hulladékait és költségeit.
  • Az API Management nem szükséges a tervezési minta implementálásához, de hozzáadható minden olyan geodéziához, amely a régió Azure-függvényalkalmazása előtt áll, hogy robusztusabb API-réteget biztosítson, lehetővé téve például a további funkciók, például a sebességkorlátozás implementálását.

A minta megvalósítása során az alábbi pontokat vegye figyelembe:

  • Itt adhatja meg, hogy az egyes régiókban helyben dolgozza fel az adatokat, vagy az összesítéseket egyetlen geodéziai helyen szeretné-e elosztani, és replikálja az eredményt a világ minden táján. Az Azure Cosmos DB változáscsatorna-feldolgozója ezt a részletes vezérlést a bérlettároló koncepciójával, valamint a megfelelő Azure Functions-kötésben található leasecollectionprefixtel kínálja. Minden megközelítésnek különböző előnyei és hátrányai vannak.
  • A Geodes az Azure Cosmos DB változáscsatorna és egy valós idejű kommunikációs platform, például a SignalR használatával képes párhuzamosan működni. A geodéziai eszközök a távoli felhasználókkal a hálóminta más geodéziáin keresztül kommunikálhatnak anélkül, hogy tudnák vagy gondoskodnak arról, hogy hol található a távoli felhasználó.
  • Ez a kialakítási minta implicit módon elválaszt mindent, ami ultra-nagy mértékben elosztott és leválasztott architektúrát eredményez. Fontolja meg, hogyan követheti nyomon ugyanazon kérés különböző összetevőit, amelyeket aszinkron módon hajthatnak végre a különböző példányokon. A megfelelő monitorozási stratégia elengedhetetlen. Az Azure Front Door és az Azure Cosmos DB is könnyen integrálható a Log Analyticsszel, és az Azure Functionst az Alkalmazás Elemzések mellett kell üzembe helyezni, hogy az architektúra minden egyes összetevőjéhez robusztus monitorozási rendszert biztosítson.
  • Az elosztott üzemelő példányok nagyobb számú titkos kódtal és bejövő ponttal rendelkeznek, amelyek tulajdonságbiztonsági intézkedéseket igényelnek. A Key Vault biztonságos réteget biztosít a titkos kódok kezeléséhez, és az API-architektúra minden rétegét megfelelően védeni kell, hogy az API egyetlen bemeneti pontja az olyan előtér-szolgáltatás, mint az Azure Front Door. Az Azure Cosmos DB-nek korlátoznia kell az Azure-függvényalkalmazások és az Azure Front Doorba irányuló függvényalkalmazások forgalmát a Microsoft Entra-azonosító vagy az IP-korlátozáshoz hasonló eljárások használatával.
  • A teljesítményt jelentősen befolyásolja az üzembe helyezett geodéziai adatok száma, valamint az egyes geodéziai API-technológiákra alkalmazott App Service-csomagok. A további geodéziák üzembe helyezése vagy a prémium szintek felé irányuló mozgás megnövelt költségekkel jár a további memória és számítás számára, de tranzakciónként nem. Fontolja meg az API-architektúra üzembe helyezését követően végzett terheléstesztelést, és ezzel szemben növelje a geodéziai adatok számát a tarifacsomag növelésével, hogy a legköltségtakarékosabb modellt használhassa az igényeinek megfelelően.
  • Határozza meg az adatok rendelkezésre állási követelményeit. Az Azure Cosmos DB választható jelzőkkel rendelkezik a többrégiós írás, a rendelkezésre állási zónák és egyebek engedélyezéséhez. Ezek növelik az Azure Cosmos DB-példány rendelkezésre állását, és rugalmasabb adatréteget hoznak létre, de további költségekkel járnak.
  • Az Azure számos terheléselosztót kínál, amelyek különböző funkciókat biztosítanak a forgalom elosztásához. A döntési fával kiválaszthatja az API előtérének megfelelő lehetőséget.

Mikor érdemes ezt a mintát használni?

Használja a következő mintát a következő helyzetekben:

  • Nagy léptékű platform implementálása, amely a felhasználókat széles körben terjeszti.
  • Minden olyan szolgáltatás esetében, amely rendkívül rendelkezésre állási és rugalmassági jellemzőket igényel, mivel a geodéziai mintán alapuló szolgáltatások egyszerre több szolgáltatási régió elvesztését is túlélhetik.

Lehet, hogy ez a minta nem alkalmas

  • Olyan architektúrák, amelyek kényszerekkel rendelkeznek, így az összes geodéta nem lehet egyenlő az adattárolással. Lehetnek például adattárolási követelmények, egy alkalmazás, amely egy adott munkamenet ideiglenes állapotát szeretné fenntartani, vagy a kérések nagy súlyozása egyetlen régió felé. Ebben az esetben fontolja meg az üzembehelyezési bélyegek használatát egy globális útválasztási síkkal kombinálva, amely tisztában van a felhasználó adatainak helyére, például az üzembehelyezési bélyegek mintájában leírt forgalomirányítási összetevővel.
  • Olyan helyzetek, amikor nincs szükség földrajzi eloszlásra. Ehelyett fontolja meg a rendelkezésre állási zónákat és a párosított régiókat a fürtözéshez.
  • Olyan helyzetek, amikor egy örökölt platformot utólag kell átalakítani. Ez a minta csak a natív felhőbeli fejlesztéshez működik, és nehéz lehet utólag is átalakítani.
  • Egyszerű architektúrák és követelmények, ahol a georedundancia és a geoterjesztés nem szükséges vagy előnyös.

Számítási feladatok tervezése

Az építészeknek értékelniük kell, hogyan használható a Geode-minta a számítási feladat kialakításában az Azure Well-Architected Framework pilléreiben foglalt célok és alapelvek kezelésére. Példa:

Pillér Hogyan támogatja ez a minta a pillércélokat?
A megbízhatósági tervezési döntések segítenek a számítási feladatnak ellenállóvá válni a hibás működéssel szemben, és biztosítani, hogy a hiba bekövetkezése után teljesen működőképes állapotba kerüljön. Ez a minta adatreplikálással támogatja azt az ideális megoldást, amelyet bármely ügyfél bármely földrajzi példányhoz csatlakoztathat, és így segít a számítási feladatnak ellenállni egy vagy több regionális kimaradásnak.

- RE:05 Magas rendelkezésre állású többrégiós kialakítás
- RE:05 Régiók és rendelkezésre állási zónák
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 az alkalmazást az elosztott felhasználói bázishoz legközelebb eső régióból is kiszolgálhatja. Ez csökkenti a késést azáltal, hogy megszünteti a távolsági forgalmat, és mivel az infrastruktúrát csak olyan felhasználók között osztja meg, amelyek jelenleg ugyanazt a földrajzi régiót használják.

- PE:03 Szolgáltatások kiválasztása

Mint minden tervezési döntésnél, fontolja meg az ezzel a mintával bevezethető többi pillér céljaival szembeni kompromisszumokat.

Példák

  • A Windows Active Directory ennek a mintának egy korai változatát implementálja. A több elsődleges replikáció azt jelenti, hogy elméletileg az összes frissítés és kérés kiszolgálható az összes szervizelhető csomópontról, de a rugalmas egy főkiszolgálós (FSMO) szerepkörök azt jelentik, hogy az összes geodéta nem egyenlő.
  • A GitHub geodéziai mintagyorsítója a gyakorlatban mutatja be ezt a tervezési mintát, és úgy lett kialakítva, hogy a fejlesztők valós API-kkal implementálják.
  • A GitHubon egy QnA-mintaalkalmazás a gyakorlatban mutatja be ezt a tervezési mintát.