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ésAz 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 implementálásA 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. |
|
ÜzenetkezelésA 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 |
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: