A teljesítményhatékonyságot támogató felhőtervezési minták

A számítási feladatok architektúráinak tervezésekor olyan iparági mintákat kell használnia, amelyek megoldják a gyakori kihívásokat. A minták segíthetnek a számítási feladatokon belüli szándékos kompromisszumok elérésében, és optimalizálhatók a kívánt eredményre. Segíthetnek a konkrét problémákból eredő kockázatok csökkentésében is, ami hatással lehet a megbízhatóságra, a biztonságra, a költségekre és a műveletekre. Ha nem enyhítik, a kockázatok végül teljesítménybeli hatékonysági hiányosságokhoz vezetnek. Ezeket a mintákat valós felhasználói élmény támogatja, felhőalapú méretezési és üzemeltetési modellekhez tervezték, és eredendően szállítói agnosztikusak. A jól ismert minták használata a számítási feladatok tervezésének szabványosítására az üzemeltetési kiválóság egyik összetevője.

Számos tervezési minta közvetlenül támogat egy vagy több architektúraoszlopot. A Teljesítményhatékonyság pillért támogató tervezési minták a skálázhatóságra, a teljesítmény finomhangolására, a feladatok rangsorolására és a szűk keresztmetszetek eltávolítására szolgálnak.

Tervezési minták a teljesítményhatékonyság érdekében

Az alábbi táblázat a teljesítményhatékonyság céljait támogató felhőtervezési mintákat foglalja össze.

Mintázat Összefoglalás
Aszinkron kérés-válasz Javítja a rendszerek válaszképességét és méretezhetőségét azáltal, hogy leválasztja az interakciók kérési és válaszfázisait olyan folyamatok esetében, amelyekhez nincs szükség azonnali válaszokra. Aszinkron minta használatával maximalizálhatja az egyidejűséget a kiszolgálóoldalon. Ezzel a mintával úgy ütemezheti a munkát, hogy a kapacitás lehetővé teszi.
Backends for Frontends A számítási feladatok szolgáltatási rétegének személyre szabottsá tétele egy adott előtérbeli felületre kizárólagos különálló szolgáltatások létrehozásával. Ez az elkülönítés lehetővé teszi, hogy olyan módon optimalizáljon, amely megosztott szolgáltatási réteggel esetleg nem lehetséges. Ha az egyes ügyfeleket eltérően kezeli, optimalizálhatja a teljesítményt egy adott ügyfél megkötéseihez és funkcióihoz.
Bulkhead Szegmentálást vezet be az összetevők között, hogy elkülönítse a meghibásodások robbanási sugarát. Ez a kialakítás lehetővé teszi, hogy minden válaszfal külön-külön skálázható legyen a válaszfalba ágyazott feladat igényeinek megfelelően.
Cache-Aside Optimalizálja a gyakran olvasott adatokhoz való hozzáférést egy igény szerint feltöltött gyorsítótár bevezetésével. A gyorsítótárat ezután az ugyanazon adatokra vonatkozó későbbi kérésekhez használja a rendszer. Ez a minta különösen hasznos az olyan írásvédett adatok esetében, amelyek nem változnak gyakran, és bizonyos mértékű elavultságot képesek elviselni. Ennek az implementációnak az a célja, hogy összességében jobb teljesítményt nyújtson a rendszerben azáltal, hogy az ilyen típusú adatokat kiszervezi egy gyorsítótárba ahelyett, hogy azokat az adattárból származtatja.
Koreográfia Decentralizált, eseményvezérelt kommunikációval koordinálja a számítási feladatok autonóm elosztott összetevőinek viselkedését. Ez a minta alternatívát kínálhat, ha egy központi vezénylési topológiában teljesítménybeli szűk keresztmetszetek lépnek fel.
Circuit Breaker Megakadályozza a hibás vagy nem elérhető függőségekre irányuló folyamatos kéréseket. A hiba utáni újrapróbálkozási megközelítés túlzott erőforrás-használathoz vezethet a függőség helyreállítása során, és túlterhelheti a helyreállítást megkísérlő függőség teljesítményét is.
Claim Check Elkülöníti az adatokat az üzenetküldési folyamattól, és lehetővé teszi az üzenetekhez kapcsolódó adatok külön lekérését. Ez a minta javítja az üzenet közzétevőinek, előfizetőinek és magának az üzenetbusznak a hatékonyságát és teljesítményét, amikor a rendszer nagy adattartalmakat kezel. Ez úgy működik, hogy csökkenti az üzenetek méretét, és biztosítja, hogy a felhasználók csak szükség esetén és megfelelő időben kérnek le hasznos adatokat.
Competing Consumers Elosztott és egyidejű feldolgozást alkalmaz az üzenetsor elemeinek hatékony kezelésére. Ez a modell támogatja a terhelés elosztását az összes fogyasztói csomóponton, valamint az üzenetsor mélységén alapuló dinamikus skálázást.
Compute Resource Consolidation Optimalizálja és összesíti a számítási erőforrásokat a sűrűség növelésével. Ez a minta egy megosztott infrastruktúrán lévő számítási feladat több alkalmazását vagy összetevőjét egyesíti. Ez az összevonás maximalizálja a számítási erőforrások kihasználtságát azáltal, hogy tartalék csomópontkapacitást használ a túlépítés csökkentése érdekében. Gyakori példa a tárolóvezénylőkre. Ezekhez az infrastruktúrákhoz gyakran nagy (vertikálisan skálázott) számítási példányokat használnak az erőforráskészletben.
Command and Query Responsibility Segregation (CQRS) Elkülöníti az alkalmazás adatmodelljének olvasási és írási műveleteit. Ez az elkülönítés célzott teljesítményt és skálázási optimalizálásokat tesz lehetővé az egyes műveletek konkrét céljaihoz. Ez a kialakítás azokban az alkalmazásokban hasznos, amelyekben magas az írási-olvasási arány.
Üzembehelyezési bélyegzők Egy alkalmazás adott verziójának és infrastruktúrájának szabályozott üzembe helyezési egységként történő kiadásának megközelítését biztosítja, azzal a feltételezéssel, hogy ugyanazon vagy különböző verziók egyidejűleg lesznek üzembe helyezve. Ez a minta gyakran igazodik a számítási feladatban meghatározott skálázási egységekhez: mivel az egyetlen skálázási egység által biztosított kapacitáson túl további kapacitásra van szükség, a rendszer további üzembe helyezési bélyeget helyez üzembe a horizontális felskálázáshoz.
Event Sourcing Az állapotváltozásokat események sorozataként kezeli, és egy nem módosítható, csak hozzáfűző naplóban rögzíti őket. A számítási feladattól függően ez a minta általában a CQRS-sel, a megfelelő tartománytervezéssel és a stratégiai pillanatkép-készítéssel kombinálva javíthatja a teljesítményt. A teljesítmény javulását az atomi hozzáfűzési műveletek, valamint az írási és olvasási adatbázisok zárolásának elkerülése okozza.
Federated Identity Megbízhatóságot delegál egy olyan identitásszolgáltatónak, amely kívül van a számítási feladaton a felhasználók kezeléséhez és az alkalmazás hitelesítésének biztosításához. A felhasználók felügyeletének és hitelesítésének kiszervezésekor az alkalmazás erőforrásait más prioritásokra fordíthatja.
Gatekeeper A kérésfeldolgozás kiszervezése, amely kifejezetten a biztonsági és hozzáférés-vezérlés kényszerítésére szolgál a kérés háttércsomópontra való továbbítása előtt és után. Ezt a mintát gyakran használják a szabályozás átjárószinten történő implementálásához ahelyett, hogy sebességellenőrzéseket hajtanak végre a csomópont szintjén. A sebességállapot minden csomópont között való koordinálása nem eredendően nagy teljesítményű.
Gateway Aggregation Leegyszerűsíti az ügyfél és a számítási feladat közötti interakciót azáltal, hogy egyetlen kérésben összesíti a több háttérszolgáltatás hívásait. Ez a kialakítás kisebb késést okozhat, mint egy olyan terv, amelyben az ügyfél több kapcsolatot hoz létre. A gyorsítótárazás az aggregációs implementációkban is gyakori, mivel minimálisra csökkenti a háttérrendszerekbe irányuló hívásokat.
Gateway Offloading A kérésfeldolgozás kiszervezése átjáróeszközre a kérés háttércsomópontra való továbbítása előtt és után. Ha kiszervezési átjárót ad hozzá a kérési folyamathoz, az lehetővé teszi, hogy csomópontonként kevesebb erőforrást használjon, mivel a funkciók központosítva lettek az átjárón. A kiszervezett funkciók implementálását az alkalmazáskódtól függetlenül optimalizálhatja. A kiszervezett platform által biztosított funkciók már valószínűleg nagy teljesítményűek.
Gateway Routing A bejövő hálózati kéréseket különböző háttérrendszerekhez irányítja a kérési szándékok, az üzleti logika és a háttérrendszer rendelkezésre állása alapján. Az átjáró-útválasztás lehetővé teszi a forgalom elosztását a rendszer csomópontjai között a terheléselosztás érdekében.
Geodéziai Olyan rendszereket helyez üzembe, amelyek aktív-aktív rendelkezésre állási módban működnek több földrajzi helyen. 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. Segítségével 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 elemet használják.
Health Endpoint Monitoring Lehetővé teszi egy rendszer állapotának vagy állapotának monitorozását egy kifejezetten erre a célra tervezett végpont felfedésével. Ezekkel a végpontokkal javíthatja a terheléselosztást úgy, hogy csak kifogástalan állapotú csomópontokra irányítja a forgalmat. További konfigurációval metrikákat is lekérhet az elérhető csomópontkapacitáshoz.
Index Table Optimalizálja az adatok lekérését az elosztott adattárakban azáltal, hogy lehetővé teszi az ügyfelek számára a metaadatok keresését, hogy az adatok közvetlenül lekérhetők legyenek, így nincs szükség teljes adattárvizsgálatra. Az ügyfelek a szegmensükre, partíciójukra vagy végpontjukra mutatnak, ami lehetővé teszi a dinamikus adatparticionálást a teljesítményoptimalizáláshoz.
Materialized View Előre lefordított adatnézeteket használ az adatlekérés optimalizálásához. A materializált nézetek az összetett számítások vagy lekérdezések eredményeit tárolják anélkül, hogy az adatbázismotornak vagy az ügyfélnek minden kéréshez újra kellene kompatinálnia. Ez a kialakítás csökkenti a teljes erőforrás-felhasználást.
Priority Queue Biztosítja, hogy a magasabb prioritású elemek feldolgozása és befejezése az alacsonyabb prioritású elemek előtt történik. Ha az elemeket üzleti prioritás alapján választja el egymástól, a teljesítményre irányuló erőfeszítéseket a leginkább időérzékeny munkára összpontosíthatja.
Közzétevő/előfizető Az architektúra összetevőit úgy választja el, hogy egy köztes üzenetközvetítőn vagy eseménybuszon keresztüli kommunikációra cseréli a közvetlen ügyfél-szolgáltatás vagy az ügyfél-szolgáltatások közötti kommunikációt. A közzétevők fogyasztóktól való elkülönítése lehetővé teszi, hogy a számítást és a kódot kifejezetten arra a feladatra optimalizálja, amelyet a fogyasztónak el kell végeznie az adott üzenethez.
Queue-Based Load Leveling A bejövő kérések vagy feladatok szintjét úgy szabályozza, hogy puffereli őket egy üzenetsorba, és lehetővé teszi, hogy az üzenetsor feldolgozója szabályozott ütemben kezelje őket. Ez a megközelítés lehetővé teszi az átviteli sebesség szándékos tervezését, mivel a kérések bevitelének nem kell korrelálnia a feldolgozásuk sebességével.
Scheduler Agent Supervisor Hatékonyan osztja el és terjeszti a feladatokat a rendszeren belül megfigyelhető tényezők alapján. Ez a minta teljesítmény- és kapacitásmetrikákat használ az aktuális kihasználtság észleléséhez, és a feladatokat egy kapacitással rendelkező ügynökhöz irányítja. A használatával rangsorolhatja a magasabb prioritású munka végrehajtását az alacsonyabb prioritású munkával szemben.
Sharding A terhelést egy adott logikai célhelyre irányítja egy adott kérés kezeléséhez, lehetővé téve a közös elhelyezést az optimalizáláshoz. Ha horizontális skálázást használ a skálázási stratégiában, az adatok vagy a feldolgozás egy szegmensre van elkülönítve, így csak az adott szegmenshez irányított más kérésekkel versenyez az erőforrásokért. A horizontális skálázást a földrajzi hely alapján is optimalizálhatja.
Sidecar Kiterjeszti egy alkalmazás funkcióit a nem elsődleges vagy keresztvágási feladatok beágyazásával egy olyan társfolyamatba, amely a fő alkalmazás mellett található. A keresztvágási feladatokat egyetlen folyamatba helyezheti át, amely a fő folyamat több példányára is skálázható, ami csökkenti a duplikált funkciók üzembe helyezésének szükségességét az alkalmazás egyes példányai esetében.
Static Content Hosting Optimalizálja a statikus tartalom számításifeladat-ügyfelek számára történő kézbesítését egy erre a célra tervezett üzemeltetési platformmal. A felelősség külső gazdagépre való kiszervezése segít enyhíteni a torlódást, és lehetővé teszi, hogy az alkalmazásplatformot csak üzleti logika megvalósítására használja.
Szabályozás Korlátozza az erőforrásra vagy összetevőre irányuló bejövő kérések sebességét vagy átviteli sebességét. Ha a rendszer nagy terhelés alatt áll, ez a minta segít csökkenteni a torlódást, amely teljesítménybeli szűk keresztmetszetekhez vezethet. A használatával proaktívan elkerülheti a zajos szomszéd forgatókönyveket.
Valet Key Korlátozott biztonsági hozzáférést biztosít egy erőforráshoz anélkül, hogy köztes erőforrást használ a hozzáférés proxyzásához. Ezzel az ügyfél és az erőforrás közötti kizárólagos kapcsolatként végzi el a feldolgozást anélkül, hogy egy nagykövet összetevőre lenne szükség, amely minden ügyfélkérést képes kezelni. A minta használatának előnye akkor a legjelentősebb, ha a proxy nem ad értéket a tranzakcióhoz.

Következő lépések

Tekintse át az Azure Well-Architected Framework többi pillérét támogató felhőtervezési mintákat: