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

Több tevékenység vagy művelet összesítése egy számítási egységbe. Ez a minta növelheti a számítási erőforrások kihasználtságát, és csökkentheti a felhőalapú alkalmazások számítási feldolgozásával kapcsolatos költségeket és felügyeleti többletterhelést.

Kontextus és probléma

A felhőalkalmazások gyakran különböző típusú műveleteket implementálnak. Kezdetben ezeket a műveleteket külön számítási egységekbe rendezheti, amelyek egyenként vannak üzemeltetve és üzembe helyezve. Üzembe helyezhet például külön Azure App Service-webalkalmazásokat vagy különálló virtuális gépeket. Ez a stratégia segíthet leegyszerűsíteni a megoldás logikai kialakítását, de ha nagy számú számítási egységet helyez üzembe ugyanazon alkalmazás részeként, ez az üzembe helyezés növelheti a futtatókörnyezet üzemeltetési költségeit, és összetettebbé teheti a rendszerfelügyeletet.

Az alábbi ábra egy több számítási egységet használó felhőalapú megoldás egyszerűsített szerkezetét mutatja be. Mindegyik számítási egység a saját virtuális környezetét futtatja. A megoldás minden függvényt külön feladatként implementál, amely a saját számítási egységében fut.

A felhőalapú környezetben dedikált számítási egységeket használó tevékenységeket bemutató diagram.

Diagram, amely egy nagy felhőalakzatú környezetet, öt különálló számítási egységgel a képen elosztva, mutat be. Minden tevékenység a saját számítási egységében található. A tevékenységek az "A" és az "E" tevékenység között vannak megjelölve. A tevékenységek nem csatlakoznak vagy átfedésben vannak. Az ábrán egy-az-egyhez kapcsolat látható az egyes számítási egységek és az ugyanazon a felhőben üzemeltetett megoldáson belüli tevékenységek között.

Minden számítási egység akkor is felszámolható erőforrásokat használ fel, ha üresjáratban vagy enyhén használják. Ez a megközelítés nem mindig a legköltségtakarékosabb megoldás.

Megoldás

A költségek csökkentése, a kihasználtság növelése, a kommunikációs sebesség javítása és a felügyelet csökkentése érdekében több feladatot vagy műveletet egyesíthet egyetlen számítási egységbe.

A tevékenységeket feltételek szerint csoportosíthatja a környezet jellemzői és a funkciókhoz kapcsolódó költségek alapján. Gyakori, hogy hasonló skálázhatósági, élettartam- és feldolgozási követelményekkel rendelkező feladatokat keres. Ha egységként szeretné skálázni a feladatokat, csoportosíthatja őket. Számos felhőkörnyezet rugalmasságot biztosít, így a számítási egység további példányait elindíthatja és leállíthatja a számítási feladattól függően. Az Azure például az App Service-hez és az Azure-beli virtuálisgép-méretezési csoportokhoz alkalmazható automatikus skálázást biztosít.

A méretezhetőség használatával azt is meghatározhatja, hogy mely műveleteket ne csoportosítsa. Vegye figyelembe a következő példafeladatokat:

  • Az 1. feladat ritkán ismétlődő, időérzékeny üzenetek üzenetsorát kérdezi le.
  • A 2. feladat a hálózati forgalom csúcsterheléseit kezeli.

A 2. feladat nagy számú számítási egység elindításához és leállításához rugalmasságot igényel. Ha ugyanazt a skálázási viselkedést alkalmazza az 1. feladatra, több tevékenység figyeli a ritkán használt üzeneteket ugyanazon az üzenetsoron, ami erőforrás-pazarlás.

Számos felhőkörnyezetben megadhatja a számítási egységek számára elérhető erőforrásokat, például a processzormagok számát, a memóriát és a lemezterületet. Ha több erőforrást ad meg, a megoldás általában drágább lesz. A költségmegtakarítás érdekében a költséges számítási egységnek foglaltnak kell maradnia, és kerülnie kell a hosszabb ideig tartó inaktivitást.

Ha a tevékenységek rövid idő alatt nagy processzorteljesítményt igényelnek, ezeket a feladatokat egyetlen számítási egységbe összesítheti, amely biztosítja a szükséges teljesítményt. Azonban egyensúlyoznia kell ezt azzal az igénnyel, hogy a drága erőforrások aktívan legyenek foglalkoztatva, szemben azzal az ütközéssel, ami a túlterheltség esetén fordulhat elő. A hosszú ideig futó, nagy számítási igényű tevékenységeknek például nem szabad ugyanazt a számítási egységet használniuk.

Problémák és szempontok

Vegye figyelembe a következő szempontokat, amikor úgy dönt, hogy hogyan valósítja meg ezt a mintát:

  • Méretezhetőség és rugalmasság: Számos felhőalapú megoldás implementálja a számítási egységek méretezhetőségét és rugalmasságát az egységek példányainak elindításával és leállításával. Ne csoportosítsa azokat a tevékenységeket, amelyek skálázhatósági követelményei ütköznek ugyanabban a számítási egységben.

  • Élettartam: A felhőinfrastruktúra rendszeresen újracseréli a számítási egységeket üzemeltető virtuális környezetet. Ha sok hosszú ideig futó feladat van egy számítási egységben, előfordulhat, hogy meg kell akadályoznia, hogy az egység újrainduljon, amíg ezek a tevékenységek be nem fejeződnek. Másik lehetőségként használjon ellenőrzőpontozási módszert, hogy a feladatok tisztán le tudjanak állni, és onnan folytathassák, ahol a számítási egység újraindulásakor megszakadtak.

  • Kiadási ütem: Ha egy feladat megvalósítása vagy konfigurálása gyakran változik, előfordulhat, hogy le kell állítania a frissített kódot üzemeltető számítási egységet, újra kell konfigurálnia és újra üzembe helyeznie az egységet, majd újra kell indítania. Ehhez a folyamathoz le kell állítania, újra kell üzembe helyeznie és újra kell indítania az összes többi feladatot ugyanazon a számítási egységen belül.

  • Biztonsági: Az ugyanabban a számítási egységben lévő tevékenységek azonos biztonsági környezettel rendelkezhetnek, és elérhetik ugyanazokat az erőforrásokat. Ehhez a beállításhoz magas szintű megbízhatóságra van szükség a tevékenységek között, és meg kell bizonyosodni arról, hogy az egyik tevékenység nem sérülhet meg vagy nem befolyásolhatja hátrányosan a másikat. Emellett, ha növeli a számítási egységben futtatott feladatok számát, az egység támadási felülete is nő. Minden tevékenység csak olyan biztonságos, mint a legtöbb biztonsági rést tartalmazó tevékenység.

  • Hibatűrés: Ha egy számítási egység egyik tevékenysége meghibásodik vagy rendellenesen viselkedik, az hatással lehet az ugyanabban az egységben lévő többi tevékenységre. Ha például egy tevékenység nem indul el megfelelően, az a számítási egység teljes indítási logikájának meghiúsulását okozhatja, és megakadályozhatja, hogy ugyanabban a leckében más tevékenységek fussanak.

  • Ütközés: Kerülje az erőforrásokért ugyanabban a számítási egységben versengő feladatok közötti ütközést. Az ugyanazon számítási egységen osztozó tevékenységeknek eltérő erőforrás-kihasználtsági jellemzőkkel kell rendelkeznie. Két nagy számítási igényű tevékenységnek például nem szabad ugyanabban a számítási egységben lennie, és két olyan tevékenységnek sem, amely nagy mennyiségű memóriát használ fel. A nagy számítási igényű feladatokat azonban kombinálhatja olyan feladatokkal, amelyek nagy mennyiségű memóriát igényelnek.

    Megjegyzés:

    Fontolja meg a számítási erőforrások összevonását csak olyan rendszerek esetében, amelyek elég hosszú ideig üzemelnek, hogy az operátorok és a fejlesztők monitorozzák a rendszert, és létrehozhassák a hőtérképet , amely azonosítja, hogy az egyes tevékenységek hogyan használják az erőforrásokat. Ez a térkép segít meghatározni, hogy mely tevékenységek alkalmasak a számítási erőforrások megosztására.

  • Összetettsége: Egyetlen számítási egység több feladata összetettebbé teszi az egység kódját, ami megnehezítheti a tesztelést, a hibakeresést és a karbantartást.

  • Stabil logikai architektúra: A kódot minden tevékenységben megtervezheti és implementálhatja, hogy ne kelljen módosítania, még akkor sem, ha a tevékenység által futtatott fizikai környezet módosul.

  • Egyéb stratégiák: A számítási erőforrások összevonása csak egy módszer a több tevékenység egyidejű futtatásával járó költségek csökkentésére. Csak gondos tervezéssel és monitorozással biztosítható, hogy hatékony megközelítés maradjon. Más stratégiák a munka jellegétől és a feladatok felhasználóinak tartózkodási helyeitől függően megfelelőbbek lehetnek.

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

Használja ezt a mintát a következő esetekben:

  • A tevékenységek nem költséghatékonyak, ha saját számítási egységekben futnak.
  • Egy feladat gyakran tétlen.
  • Költséges lenne egy feladatot egy dedikált egységben futtatni.

Ez a minta nem feltétlenül megfelelő, ha:

  • A feladatok kritikus hibatűrő műveleteket hajtanak végre.
  • A feladatok rendkívül bizalmas vagy privát adatokat dolgoznak fel, és saját biztonsági környezetet igényelnek.
  • A feladatoknak külön számítási egységben kell futniuk a saját elkülönített környezetükben.

Munkaterhelés tervezése

Értékelje ki, hogyan használhatja a számítási erőforrások konszolidációs mintáját a számítási feladatok tervezésében az Azure Well-Architected-keretrendszer pilléreiben foglalt célok és alapelvek kezelésére. Az alábbi táblázat útmutatást nyújt arról, hogy ez a minta hogyan támogatja az egyes pillérek céljait.

Alappillé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énekfenntartá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 nem használt 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ágszabvá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 . Az összevoná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ést. Ezek az infrastruktúrák gyakran nagy, vertikálisan skálázott számítási példányokat használnak az erőforráskészletben.

- PE:02 Kapacitástervezés
- PE:03 Szolgáltatások kiválasztása

Ha ez a minta kompromisszumokat vezet be egy pilléren belül, vegye figyelembe őket a többi pillér céljaival szemben.

Example

Ezt a mintát a számítási szolgáltatástól függően különböző módokon helyezheti üzembe. Például:

  • App Service és Azure Functions: Az üzemeltetési kiszolgáló infrastruktúráját képviselő megosztott App Service-csomagok üzembe helyezése. Beállíthatja, hogy egy vagy több alkalmazás ugyanazon számítási erőforrásokon vagy ugyanabban az App Service-csomagban fusson.

  • Azure Container Apps: Helyezzen üzembe tárolóalkalmazásokat ugyanazon megosztott környezetekben, különösen akkor, ha 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ást vagy alkalmazásösszetevőt is beállíthat, hogy ugyanazon számítási erőforrásokon (csomópontokon) együtt fusson. A számítási erőforrásokat számítási követelmények, például processzor- vagy memóriaigények (csomópontkészletek) szerint csoportosíthatja.

  • Virtuális gépek: Helyezzen üzembe egyetlen virtuális gépet az összes bérlő számára, hogy a felügyeleti költségek meg legyenek osztva a bérlők között. A virtuálisgép-méretezési csoportok támogatják a virtuális gépek megosztott erőforrás-kezelését, terheléselosztását és horizontális skálázását.

  • Használatalapú számítás (kiszolgáló nélküli): Használjon teljes mértékben felügyelt, végrehajtásonkénti fizetéses számítási modelleket, amelyek nullára skálázhatók, például a Functions Consumption csomag és a Container Apps. Ezek a szolgáltatások több független számítási feladatot futtatnak a számítási erőforrások megosztott globális készletén. Ezek a platformok automatikusan lefoglalják és felszabadítják a számítást, hogy több alkalmazás is kihasználhassa a rugalmas skálázást és a költséghatékonyságot dedikált infrastruktúra nélkül.

Következő lépések