Számításierőforrás-konszolidálási minta

Azure App Service
Azure Kubernetes Service (AKS)

Egyetlen számítási egységbe konszolidálhat több feladatot vagy műveletet. Ez megnövelheti a számítási erőforrások kihasználtságát, valamint csökkentheti a felhőben üzemeltetett alkalmazásokban végzett számítási feldolgozások végrehajtásához kapcsolódó költségeket és munkaterhelést.

Kontextus és probléma

A felhőalkalmazások gyakran számos különböző műveletet végeznek. Egyes megoldásokban érdemes követni az aggodalmak elkülönítésének tervezési elvét, és ezeket a műveleteket külön számítási egységekre kell osztani, amelyek egyenként vannak üzemeltetve és üzembe helyezve (például különálló App Service-webalkalmazások vagy különálló virtuális gépek). Bár ez a stratégia segíthet leegyszerűsíteni a megoldás logikai kialakítását, ha több számítási egységet helyez üzembe ugyanannak az alkalmazásnak a részeként, az megnövelheti a futtatókörnyezet üzemeltetési költségeit, illetve a rendszer kezelését bonyolultabbá teheti.

Például az ábrán egy olyan, felhőben üzemeltetett megoldás egyszerűsített struktúrája látható, amely több mint egy számítási egység használatával lett megvalósítva. Mindegyik számítási egység a saját virtuális környezetét futtatja. Mindegyik funkció külön feladatként lett megvalósítva (A–E feladat), amely a saját számítási egységét futtatja.

Feladatok futtatása egy felhőkörnyezetben dedikált számítási egységek készletének használatával

Mindegyik számítási egység felszámítható erőforrásokat használ, akkor is, ha tétlen vagy kisebb terhelésű. Ezért ez nem mindig a legköltséghatékonyabb megoldás.

Ez az Azure-ban az App Servicesre, a Container Appsre és a virtuális gépekre vonatkozik. Ezek az elemek a saját környezetükben futnak. A különböző webhelyek, mikroszolgáltatások vagy virtuális gépek gyűjteményének futtatása, amelyek jól meghatározott műveletek végrehajtására lettek tervezve, de amelyeknek egyetlen megoldás részeként kell kommunikálniuk és együttműködni, az erőforrások nem hatékony felhasználása lehet.

Megoldás

A költségek csökkentése, a kihasználtság optimalizálása, a kommunikációs sebesség javítása és a kezelési szükségletek csökkentése érdekében egyetlen számítási egységbe konszolidálhat több feladatot vagy műveletet.

A feladatokat a környezet által biztosított funkciók és a funkciókhoz kapcsolódó költségek szerint megállapított kritériumok alapján csoportosíthatja. Általánosan használt megközelítés olyan feladatok keresése, amelyek hasonló profillal rendelkeznek a skálázhatóságuk, élettartamuk és feldolgozási követelményeik szempontjából. A csoportosításukkal egy egységként skálázhatja őket. A több felhőkörnyezet által nyújtott rugalmasság lehetővé teszi, hogy a számítási feladattól függően egy számítási egység további példányait indítsa el vagy állítsa le. Az Azure például automatikus skálázást biztosít, amelyet az App Servicesre és a virtuálisgép-méretezési csoportokra alkalmazhat. További információért lásd az automatikus skálázás útmutatóját.

Az alábbi két feladat segítségével ellenpéldaként bemutatjuk, hogyan állapítható meg a skálázhatósággal, hogy mely műveleteket nem érdemes csoportosítanunk:

  • Az 1. feladat az üzenetsorba küldött ritka, nem időérzékeny üzeneteket kérdezi le.
  • A 2. feladat a hálózati forgalom csúcsterheléseit kezeli.

A második feladathoz rugalmasság szükséges, amelyhez hozzátartozik a számítási egység számos példányának elindítása és leállítása is. Amennyiben ugyanezt a skálázást alkalmazná az első feladatra, az egyszerűen azt eredményezné, hogy több feladat figyelne ritka üzenetekre ugyanabban az üzenetsorban, így feleslegesen használna erőforrásokat.

Számos felhőkörnyezetben a számítási egységek számára elérhető erőforrások meghatározhatók a processzormagok számával, a memória és a lemezterület méretével, illetve egyéb értékekkel. Általában minél több erőforrás van meghatározva, annál nagyobb a költség is. Pénz megtakarításához fontos maximalizálni a költséges számítási egységek által végrehajtott munkát, illetve biztosítani, hogy ne legyen hosszabb időre inaktív.

Ha előfordulnak olyan feladatok, amelyeknek jelentős processzorteljesítményre van szükségük rövidebb időintervallumokban, fontolja meg ezek konszolidálását egy számítási egységbe, amely biztosítja a szükséges teljesítményt. Fontos azonban megtalálni az egyensúlyt a költséges erőforrások folyamatos működtetése és a túlterhelés által előidézett versengés között. A hosszan futó, nagy számítási igényű feladatok például ne osztozzanak ugyanazon a számítási egységen.

Problémák és megfontolandó szempontok

Vegye figyelembe az alábbi pontokat a minta megvalósításakor:

Méretezhetőség és rugalmasság. Számos felhőalapú megoldás a számítási egység szintjén a skálázhatóságot és a rugalmasságot az egységek példányainak elindításával és leállításával valósítja meg. Ne csoportosítsa azokat a feladatokat egy számítási egységbe, amelyek skálázási követelményei ütköznek.

Élettartam. A felhőalapú infrastruktúra rendszeres időközönként újraindítja a számítási egységeket üzemeltető virtuális környezeteket. Ha számos hosszú lefutású feladat található egy számítási egységben, szükséges lehet úgy konfigurálni az egységet, hogy megakadályozza az újraindítását, míg ezek a feladatok be nem fejeződnek. Másik megoldásként a feladatokat ellenőrzőpontos megközelítéssel is megtervezheti, amely lehetővé teszi, hogy megfelelően leálljanak, majd arról a pontról folytatódjanak, ahol az adott folyamat megszakadt a számítási egység újraindításakor.

Kiadási ütem. Ha egy feladat megvalósítása vagy konfigurációja gyakran változik, szükséges lehet a frissített kódot üzemeltető számítási egység leállítása, az egység újrakonfigurálása és újbóli üzembe helyezése, majd újraindítása. Ehhez a folyamathoz a számítási egységben futtatott összes egyéb feladatot is le kell állítani, újból üzembe kell helyezni, majd újra kell indítani.

Biztonság. Az azonos számítási egységekben futtatott feladatok közös biztonsági környezettel rendelkezhetnek, illetve ugyanazokhoz az erőforrásokhoz férhetnek hozzá. A feladatoknak magas szintű megbízhatósági kapcsolatban kell lenniük, valamint meg kell bizonyosodniuk arról, hogy az egyik feladat nem fogja károsítani vagy negatívan befolyásolni a másikat. Emellett egy adott számítási egységben futtatott feladatok számának emelése megnöveli az egység támadható felületét. Ha egy feladat nem biztonságos, az a többi feladat biztonságát is rontja.

Hibatűrés. Ha egy feladat a számítási egységben meghibásodik vagy rendellenesen viselkedik, az befolyásolhatja az azonos egységen futtatott egyéb feladatokat is. Ha például egy feladat képtelen megfelelően elindulni, az a számítási egység teljes indítási logikájának meghibásodásához vezethet, megakadályozva az egységen a többi feladat futtatását is.

Versengés. Ne idézzen elő versengést olyan feladatok létrehozásával, amelyek egy adott számítási egységben osztoznak az erőforrásokon. Ideális esetben az egy számítási egységben futtatott feladatok különböző erőforrás-felhasználási jellemzőkkel rendelkeznek. Ne futtasson például két nagy számítási igényű feladatot ugyanabban a számítási egységben, valamint két sok memóriát felhasználó feladatot se. A nagy mennyiségű memóriát igénylő feladatokkal azonban egy számítási igényű tevékenység kombinálása megvalósítható kombináció.

Feljegyzés

Fontolja meg a számítási erőforrások összevonását csak egy olyan rendszer esetében, amely már egy ideje éles környezetben van, így az operátorok és a fejlesztők figyelhetik a rendszert, és létrehozhatnak egy hőtérképet , amely azonosítja, hogy az egyes tevékenységek hogyan használják a különböző erőforrásokat. A térkép segítségével megállapíthatja, hogy mely feladatok között érdemes megosztani a számítási egységeket.

Összetettség. Amennyiben több feladatot kombinál egy számítási egységben, az megnöveli a kód összetettségét, ami esetleg megnehezítheti a tesztelést, a hibakeresést és a karbantartást.

Stabil logikai architektúra. A kódot úgy tervezze és valósítsa meg az egyes feladatokban, hogy akkor se kelljen módosítani, ha a feladatot futtató fizikai környezet megváltozik.

Egyéb stratégiák. A számítási erőforrások konszolidálása csak egy módja a több feladat egyidejű futtatásával járó költségek csökkentésének. Csak gondos tervezéssel és monitorozással biztosítható, hogy hatékony megközelítés maradjon. A munka természetétől és a feladatokat futtató felhasználók tartózkodási helyétől függően egyéb stratégiák megfelelőbbek lehetnek. A számítási feladatok funkcionális felbontása (a Compute-particionálási útmutatónak megfelelően) például jobb megoldás lehet.

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

Ezt a mintát olyan feladatok esetében alkalmazza, amelyek nem költséghatékonyak, ha a saját számítási egységeikben futnak. Ha egy feladat az idő nagy részében tétlen, a feladat futtatása egy dedikált egységen költséges lehet.

Ez a minta lehet, hogy nem megfelelő olyan feladatokhoz, amelyek kritikus hibatűrő műveleteket hajtanak végre, illetve rendkívül bizalmas vagy személyes adatokat dolgoznak fel, és saját biztonsági környezetre van szükségük. Ezeket a feladatokat a saját elkülönített környezetükben érdemes futtatni, különálló számítási egységben.

Számítási feladatok tervezése

Az tervezőknek értékelniük kell, hogyan használható a számítási erőforrás-konszolidációs minta a számítási feladatok tervezésében 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 költségoptimalizálás a számítási feladatok megtérülésének fenntartására és javítására összpontosít. Ez a minta maximalizálja a számítási erőforrások kihasználtságát azáltal, hogy elkerüli a kihasználatlan kiosztott kapacitást az összetevők vagy akár a teljes számítási feladatok összesítésével egy készletezett infrastruktúrán.

- CO:14 Konszolidáció
Az operatív kiválóság szabvá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. Az összevonás homogénebb számítási platformhoz vezethet, amely leegyszerűsítheti a felügyeletet és a megfigyelhetőséget, csökkentheti az üzemeltetési feladatok eltérő megközelítéseit, és csökkentheti a szükséges eszközök mennyiségét.

- OE:07 Monitorozási rendszer
- OE:10 Automation-tervezés
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 . A konszolidálás maximalizálja a számítási erőforrások kihasználtságát a tartalék csomópontkapacitás használatával, és csökkenti a túlterjedés szükségességét. A nagyméretű (vertikálisan skálázott) számítási példányokat gyakran használják az erőforráskészletben ezekhez az infrastruktúrákhoz.

- PE:02 Kapacitástervezés
- 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.

Alkalmazásplatform-lehetőségek

Ez a minta a használt számítási szolgáltatástól függően különböző módokon érhető el. Tekintse meg a következő példaszolgáltatásokat:

  • Azure-alkalmazás Service és Azure Functions: Az üzemeltetési kiszolgáló infrastruktúráját képviselő megosztott App Service-csomagok üzembe helyezése. Egy vagy több alkalmazás konfigurálható úgy, hogy ugyanazon a számítási erőforráson fusson (vagy ugyanabban az App Service-csomagban).
  • Azure Container Apps: Tárolóalkalmazások üzembe helyezése ugyanazon megosztott környezetekben, különösen olyan helyzetekben, amikor kapcsolódó szolgáltatásokat kell kezelnie, vagy különböző alkalmazásokat kell üzembe helyeznie ugyanazon a virtuális hálózaton.
  • Azure Kubernetes Service (AKS): Az AKS egy tárolóalapú üzemeltetési infrastruktúra, amelyben több alkalmazás vagy alkalmazásösszetevő konfigurálható úgy, hogy ugyanazon számítási erőforrásokon (csomópontokon) közösen fusson, olyan számítási követelmények szerint csoportosítva, mint például a CPU vagy a memóriaigények (csomópontkészletek).
  • Virtuális gépek: Egyetlen virtuális gépcsoport üzembe helyezése minden bérlő számára, így a felügyeleti költségek meg vannak osztva a bérlők között. A virtuálisgép-méretezési csoportok olyan funkciók, amelyek támogatják a virtuális gépek megosztott erőforrás-kezelését, terheléselosztását és horizontális méretezését.

Az alábbi minták és útmutatók szintén hasznosak lehetnek a minta megvalósításakor:

  • Útmutató az automatikus skálázáshoz. Az automatikus skálázás használatával szolgáltatásokat üzemeltető számítási erőforrásokat indíthat el vagy állíthat le a várható feldolgozási igényektől függően.

  • Compute-particionálási útmutató Bemutatja, hogyan foglalhat le szolgáltatásokat és összetevőket egy felhőszolgáltatásban olyan módon, hogy az segítsen minimalizálni a futtatási költségeket a szolgáltatás skálázhatóságának, teljesítményének, rendelkezésre állásának és biztonságának megőrzése mellett.

  • Architekturális megközelítések a több-bérlős megoldásokban történő számításhoz. Útmutatást nyújt a megoldástervezők számára alapvető szempontokhoz és követelményekhez, amikor több-bérlős megoldás számítási szolgáltatásait tervezik.