Tervezési minták felhőkhöz

Ezek a tervezési minták hasznosak a megbízható, skálázható és biztonságos felhőbeli alkalmazások létrehozásához.

Mindegyik minta ismerteti az általa kezelt problémát, a minta alkalmazásának szempontjait és egy, a Microsoft Azure-on alapuló példát. A legtöbb minta kódmintákat vagy kódrészleteket tartalmaz, amelyek bemutatják, hogyan implementálható a minta az Azure-ban. A legtöbb minta azonban minden elosztott rendszer esetében releváns, függetlenül attól, hogy az Azure-ban vagy más felhőplatformokon üzemel-e.

A felhőalapú fejlesztésben rejlő kihívások

Adatkezelés

Adatkezelés

Az adatkezelés a felhőalkalmazások kulcsfontosságú eleme, és a legtöbb minőségi attribútumot befolyásolja. Az adatok általában különböző helyeken és több kiszolgálón találhatók a teljesítmény, a méretezhetőség vagy a rendelkezésre állás érdekében. Ez számos kihívást jelenthet. Fenn kell tartani például az adatok konzisztenciáját, és az adatokat jellemzően több különböző hely között kell szinkronizálni.

Tervezés és megvalósítás

Tervezés és implementálás

A jó tervezés magában foglalja az összetevők tervezésének és üzembe helyezésének konzisztenciáját és koherenciáját, az adminisztráció és fejlesztés egyszerűsítésének karbantarthatóságát, valamint az összetevők és alrendszerek más alkalmazásokban és forgatókönyvekben való használatát lehetővé tevő újrafelhasználhatóságot. A tervezési és megvalósítási fázisban hozott döntések jelentősen befolyásolják a felhőalapú alkalmazások és szolgáltatások tulajdonjogának minőségét és teljes költségét.

Üzenetküldés ikon

Üzenetkezelés

A felhőalkalmazások elosztott jellege olyan üzenetkezelési infrastruktúrát igényel, amely összekapcsolja az összetevőket és a szolgáltatásokat, ideális esetben lazán összekapcsolva a méretezhetőség maximalizálása érdekében. Az aszinkron üzenetkezelést széles körben használják, és számos előnnyel jár, de olyan kihívásokkal is jár, mint az üzenetek rendezése, a méregüzenetek kezelése, az idempotencia stb.

Mintakatalógus

Mintázat Összefoglalás Kategória
Ambassador Olyan segítő szolgáltatásokat hozhat létre, amelyek egy otthoni használatra szánt szolgáltatás vagy alkalmazás nevében küldenek hálózati kéréseket. Tervezés és implementálás,
Működésbeli kiválóság
Anti-Corruption Layer Egy előtér- vagy adapterréteget implementálhat egy korszerű alkalmazás és egy korábbi rendszer között. Tervezés és implementálás,
Működésbeli kiválóság
Aszinkron kérés-válasz Leválaszthatja a háttérbeli feldolgozást az előtérbeli gazdagépről, ha a háttérbeli feldolgozásnak aszinkronnak kell lennie, de az előtér egyértelmű választ igényel. Üzenetkezelés
Backends for Frontends Elkülönített, adott előtérbeli alkalmazások vagy felületek által használt háttérszolgáltatásokat hozhat létre. Tervezés és implementálás
Bulkhead Készletekbe választja szét egy alkalmazás elemeit, hogy ha az egyik meghibásodna, a többi tovább üzemeljen. Megbízhatóság
Cache-Aside Igény szerint tölthet be adatokat egy gyorsítótárba egy adattárolóból Adatkezelés,
Teljesítménybeli hatékonyság
Koreográfia Központi vezénylő használata helyett hagyja, hogy az egyes szolgáltatások döntsenek az üzleti műveletek feldolgozásának idejéről és módjáról. Üzenetkezelés,
Teljesítménybeli hatékonyság
Circuit Breaker Ha távoli szolgáltatáshoz vagy erőforráshoz csatlakozik, kezelheti azokat a hibákat, amelyek javítása esetleg sok időt venne igénybe. Megbízhatóság
Claim Check A nagy méretű üzeneteket jogcímellenőrzésre és hasznos adatra oszthatja fel, hogy elkerülje az üzenetbusz túlterhelését. Üzenetkezelés
Compensating Transaction Visszavonhat egy sorozatnyi, együttesen végül konzisztens műveletet meghatározó lépés által végrehajtott munkát. Megbízhatóság
Competing Consumers Lehetővé teheti több párhuzamos felhasználó számára, hogy feldolgozzák az ugyanazon az üzenetkezelési csatornán fogadott üzeneteket. Üzenetkezelés
Compute Resource Consolidation Egyetlen számítási egységbe konszolidálhat több feladatot vagy műveletet Tervezés és implementálás
CQRS Különböző felületek használatával elkülönítheti az adatolvasó műveleteket az adatfrissítő műveletektől. Adatkezelés,
Tervezés és implementálás,
Teljesítménybeli hatékonyság
Üzembehelyezési bélyegzők Üzembe helyezheti az alkalmazás-összetevők (többek között az adattárak) több, egymástól független másolatát. Megbízhatóság,
Teljesítménybeli hatékonyság
Peremhálózati számítási feladatok konfigurálása A bolti rendszerek és eszközök széles választéka megnehezítheti a számítási feladatok konfigurálását. Tervezés és implementálás
Event Sourcing Használhat egy csak hozzáfűzéssel bővíthető tárat az egy tartomány adatain elvégzett műveleteket leíró események teljes sorozatának rögzítésére. Adatkezelés,
Teljesítménybeli hatékonyság
External Configuration Store A konfigurációs adatokat áthelyezheti az alkalmazás üzembehelyezési csomagjából egy központi helyre. Tervezés és implementálás,
Működésbeli kiválóság
Federated Identity A hitelesítést delegálhatja egy külső identitásszolgáltatónak. Biztonság
Gatekeeper Védheti az alkalmazásokat és szolgáltatásokat egy dedikált üzemeltető példány segítségével, amely közvetítőként szolgál az ügyfelek és az alkalmazás vagy szolgáltatás között, érvényesíti és vírusmentesíti a kéréseket, valamint közvetíti a kéréseket és az adatokat közöttük. Biztonság
Gateway Aggregation Több egyéni kérést összesíthet egyetlen kérésbe egy átjáró segítségével. Tervezés és implementálás,
Működésbeli kiválóság
Gateway Offloading A megosztott vagy specializált szolgáltatásműködést kiszervezheti egy átjáró proxyra. Tervezés és implementálás,
Működésbeli kiválóság
Gateway Routing Átirányíthatja a kéréseket több szolgáltatásra egyetlen végpont használatával. Tervezés és implementálás,
Működésbeli kiválóság
Geodes Földrajzi csomópontok készletébe helyezhet üzembe háttérszolgáltatásokat, amelyek mindegyike bármely régióban bármely ügyfélkérelmet képes kiszolgálni. Megbízhatóság,
Működésbeli kiválóság
Health Endpoint Monitoring Rendszeres időközönként működés-ellenőrzéseket implementálhat egy alkalmazásban, amelyhez az elérhetővé tett végpontokon keresztül hozzáférhetnek külső eszközök. Megbízhatóság,
Működésbeli kiválóság
Index Table Indexeket hozhat létre a lekérdezések által gyakran hivatkozott adattárbeli mezőkről. Adatkezelés,
Teljesítménybeli hatékonyság
Leader Election Koordinálhat egy elosztott alkalmazásban az együttműködő feladatpéldányokból álló gyűjtemény által végrehajtott műveleteket, ha vezetőnek választ meg egy példányt, amely vállalja a többi példány kezelésével járó felelősséget. Tervezés és implementálás,
Megbízhatóság
Materialized View Létrehozhat előre kitöltött nézeteket egy vagy több adattár adataiból, ha az adatok formázása nem ideális a szükséges lekérdezési műveletekhez. Adatkezelés,
Működési kiválóság,
Teljesítménybeli hatékonyság
Pipes and Filters Egy összetett feldolgozást végrehajtó feladatot lebonthat különálló, újrahasznosítható elemek sorává. Tervezés és implementálás,
Üzenetkezelés
Priority Queue Priorizálhatja a szolgáltatásoknak küldött kéréseket úgy, hogy a magasabb prioritású kéréseket a rendszer gyorsabban fogadja és dolgozza fel, mint az alacsonyabb prioritásúakat. Üzenetkezelés,
Teljesítménybeli hatékonyság
Közzétevő/előfizető Engedélyezheti egy alkalmazás számára, hogy több érdeklődő fogyasztó számára aszinkron módon, a küldők és a fogadók összekapcsolása nélkül jelentsen be eseményeket. Üzenetkezelés
Queue-Based Load Leveling Használhat egy pufferként szolgáló üzenetsort egy feladat és az általa meghívott szolgáltatás között, hogy kiegyenlítse az időszakos nagy terheléseket. Megbízhatóság,
Üzenetkezelés,
Rugalmasság,
Teljesítménybeli hatékonyság
Sebességkorlát mintázata A korlátozási minta segítségével elkerülheti vagy minimalizálhatja a szabályozási korlátokhoz kapcsolódó szabályozási hibákat, és pontosabban előrejelezheti az átviteli sebességet. Megbízhatóság
Retry Engedélyezheti egy alkalmazás számára a szolgáltatásokhoz vagy hálózati erőforrásokhoz való csatlakozáskor jelentkező előre jelzett, átmeneti meghibásodások kezelését egy korábban meghiúsult művelet transzparens módon való ismételt megkísérlésével. Megbízhatóság
Saga A mikroszolgáltatások adatkonzisztenciájának kezelése elosztott tranzakciós forgatókönyvekben. A saga tranzakciók sorozata, amely frissíti az egyes szolgáltatásokat, és közzétesz egy üzenetet vagy eseményt a következő tranzakciós lépés aktiválásához. Üzenetkezelés
Scheduler Agent Supervisor Koordinálhat egy műveletkészletet egy elosztott szolgáltatáskészleten és más távoli erőforrásokon. Üzenetkezelés,
Megbízhatóság
Sequential Convoy A kapcsolódó üzeneteket meghatározott sorrendben dolgozhatja fel, más üzenetcsoportok feldolgozásának akadályozása nélkül. Üzenetkezelés
Sharding Egy adattárat horizontális partíció- vagy szilánkkészletté oszthat fel. Adatkezelés,
Teljesítménybeli hatékonyság
Sidecar Egy alkalmazás összetevőit külön folyamatban vagy tárolóban helyezheti üzembe, így elkülönítést és beágyazást biztosíthat. Tervezés és implementálás,
Működésbeli kiválóság
Static Content Hosting A statikus tartalmakat egy felhőalapú társzolgáltatásban helyezheti üzembe, amely közvetlenül az ügyfélnek közvetíti azt. Tervezés és implementálás,
Adatkezelés,
Teljesítménybeli hatékonyság
Strangler Fig Növekményesen migrálhat egy korábbi rendszert oly módon, hogy egyes funkciódarabokat fokozatosan új alkalmazásokra és szolgáltatásokra cserél. Tervezés és implementálás,
Működésbeli kiválóság
Szabályozás Szabályozhatja egy alkalmazáspéldány, egyéni bérlő vagy teljes szolgáltatás által használt erőforrások felhasználását. Megbízhatóság,
Teljesítménybeli hatékonyság
Valet Key Jogkivonatot vagy kulcsot használhat, amely korlátozott közvetlen hozzáférést biztosít az ügyfelek számára egy adott erőforráshoz vagy szolgáltatáshoz. Adatkezelés,
Biztonság