Javaslatok az egyszerűség és a hatékonyság kialakításához
Az Azure Well-Architected Framework megbízhatósági ellenőrzőlistájára vonatkozó javaslatra vonatkozik:
RE:01 | Úgy tervezheti meg a számítási feladatot, hogy megfeleljen az üzleti célkitűzéseknek, és elkerülje a szükségtelen bonyolultságot vagy többletterhelést. Gyakorlati és kiegyensúlyozott megközelítéssel olyan tervezési döntéseket hozhat, amelyek a kívánt eredményt hozzák. A hatékonysági hiányosságok és a potenciális problémák csökkentése érdekében adja meg a tervezést. |
---|
Ez az útmutató a szükségtelen összetettség és többletterhelés minimalizálására vonatkozó javaslatokat ismerteti, hogy a számítási feladatok egyszerűek és hatékonyak maradjanak. Válassza ki a legjobb összetevőket a számítási feladat megbízhatóságának optimalizálásához szükséges számítási feladatok elvégzéséhez. A fejlesztési és felügyeleti terhek csökkentése érdekében használja ki a platform által nyújtott szolgáltatások által kínált hatékonyságot. Ezzel a kialakítással rugalmas, megismételhető, méretezhető és kezelhető számításifeladat-architektúrát hozhat létre.
Definíciók
Időszak | Definíció |
---|---|
Számítási feladat | Különálló képesség vagy számítási feladat, amely logikailag elkülöníthető a többi tevékenységtől. |
Kulcsfontosságú tervezési stratégiák
A megbízhatóság tervezésének egyik fő szempontja, hogy a dolgok egyszerűek és hatékonyak legyenek. A számítási feladatok tervezését az üzleti követelményeknek való megfelelésre összpontosítva csökkentheti a szükségtelen összetettség vagy többletterhelés kockázatát. Vegye figyelembe a cikkben található javaslatokat, amelyek segítenek a tervezéssel kapcsolatos döntések meghozatalában egy vékony, hatékony és megbízható számítási feladat létrehozása érdekében. A különböző számítási feladatok különböző követelményekkel rendelkezhetnek a rendelkezésre állás, a méretezhetőség, az adatkonzisztencia és a vészhelyreállítás szempontjából.
Minden tervezési döntést meg kell indokolnia üzleti követelményekkel. Ez a tervezési elv nyilvánvalónak tűnhet, de elengedhetetlen a számítási feladatok tervezéséhez. Az alkalmazás több millió felhasználót vagy néhány ezer felhasználót támogat? Nagy forgalomcsúcsok vagy állandó számítási feladatok vannak? Milyen szintű alkalmazáskimaradás elfogadható? Az üzleti követelmények ezeket a kialakítási szempontokat veszik figyelembe.
Kompromisszum: Egy összetett megoldás több funkciót és rugalmasságot kínálhat, de hatással lehet a számítási feladat megbízhatóságára, mivel nagyobb koordinációt, kommunikációt és az összetevők kezelését igényli. Alternatív megoldásként előfordulhat, hogy egy egyszerűbb megoldás nem felel meg teljes mértékben a felhasználói elvárásoknak, vagy negatív hatással lehet a méretezhetőségre és a bővíthetőségre a számítási feladat fejlődésével.
Együttműködési tervezési gyakorlatok
Az érdekelt felekkel együttműködve:
Kritikussági szint meghatározása és hozzárendelése a számítási feladat felhasználói folyamataihoz és rendszerfolyamataihoz. A tervezést a kritikus folyamatokra összpontosítva meghatározhatja a szükséges összetevőket és a legjobb megközelítést a szükséges rugalmassági szint eléréséhez.
Funkcionális és nem funkcionális követelmények meghatározása. Fontolja meg a funkcionális követelményeket annak meghatározásához, hogy egy alkalmazás végrehajt-e egy feladatot. Fontolja meg a nem funkcionális követelményeket annak meghatározásához, hogy az alkalmazás milyen jól hajt végre egy feladatot. Győződjön meg arról, hogy ismeri a nem funkcionális követelményeket, például a méretezhetőséget, a rendelkezésre állást és a késést. Ezek a követelmények befolyásolják a tervezési döntéseket és a technológiai döntéseket.
Bontsa le a számítási feladatokat összetevőkre. Fontossági sorrendbe helyezi az egyszerűséget, a hatékonyságot és a megbízhatóságot a tervezés során. Határozza meg a folyamatok támogatásához szükséges összetevőket. Egyes összetevők több folyamatot is támogatnak. Azonosítsa, hogy az összetevők melyik kihívással foglalkoznak elméletileg, és fontolja meg egy összetevő eltávolítását az egyes folyamatokból, hogy egyszerűbbé tegye a teljes kialakítást, miközben továbbra is teljes funkcionalitást biztosít. További információ: Javaslatok a hibamód elemzéséhez.
Használjon hibamód-elemzést a meghibásodási pontok és a lehetséges kockázatok azonosításához. Gondolja át, hogy figyelembe kell-e vennie a valószínűtlen helyzeteket, például egy olyan földrajzi területet, amely jelentős természeti katasztrófát tapasztal, amely a régió összes rendelkezésre állási zónáját érinti. Költséges, és jelentős kompromisszumokat igényel a nem gyakori kockázatok mérséklése érdekében. Világosan megismerheti a vállalat kockázattűrését. További információ: Javaslatok a hibamód elemzéséhez.
A folyamatok rendelkezésre állási és helyreállítási céljainak meghatározása a számítási feladat architektúrájának tájékoztatása érdekében. Az üzleti metrikák közé tartoznak a szolgáltatásiszint-célkitűzések (SLO-k), a szolgáltatásiszint-szerződések (SLA-k), a helyreállítás átlagos ideje (MTTR), a hibák közötti átlagos idő (MTBF), a helyreállítási időkorlátok (KPO-k) és a helyreállítási pont célkitűzései (RPO-k). Célértékek meghatározása ezekhez a metrikákhoz. Ez a gyakorlat kompromisszumot és kölcsönös megértést igényelhet a technológia és az üzleti csapatok között annak biztosítása érdekében, hogy az egyes csapatok céljai megfeleljenek az üzleti célkitűzéseknek, és reálisak legyenek. További információ: Javaslatok a megbízhatósági célok meghatározásához.
További tervezési javaslatok
Az alábbi javaslatokat az érdekelt felek bevonása nélkül is végrehajthatja:
Törekedjen az egyszerűségre és a világosságra a tervezésben. Használja az összetevők és szolgáltatások absztrakciójának és részletességének megfelelő szintjét. Kerülje a megoldás túltervezését vagy alultervezését. Ha például több kisebb függvényre bontja a kódot, nehéz megérteni, tesztelni és karbantartani.
Tegyük fel, hogy az összes sikeres alkalmazás idővel megváltozik, akár a hibák kijavítása, új funkciók vagy technológiák implementálása, akár a meglévő rendszerek méretezhetőbbé és rugalmasabbá tétele érdekében.
Ha lehetséges, a szolgáltatásként nyújtott infrastruktúra (IaaS) helyett használja a platformszolgáltatás (PaaS) beállításait. Az IaaS olyan, mintha egy doboznyi alkatrész lenne. Bármit létrehozhat, de saját magának kell összeállítania. A PaaS-beállítások egyszerűbben konfigurálhatók és felügyelhetők. Nem kell virtuális gépeket (VM-eket) vagy virtuális hálózatokat beállítania. Emellett nem kell karbantartási feladatokat, például javításokat és frissítéseket telepítenie.
Az aszinkron üzenetkezeléssel leválaszthatja az üzenetkészítőt a fogyasztótól.
Infrastruktúra elválasztása az üzleti logikától. Győződjön meg arról, hogy a tartományi logika nem zavarja az infrastruktúrával kapcsolatos funkciókat, például az üzenetküldést vagy az adatmegőrzést.
Azonos szerepet betöltő funkciók külön szolgáltatásba foglalása. Minimalizálja a kód különböző függvények közötti duplikálásának szükségességét, és inkább a szolgáltatásokat olyan jól definiált felületekkel használja fel, amelyeket a különböző összetevők könnyen használhatnak. Ha például több szolgáltatásnak is hitelesítenie kell a kéréseket, áthelyezheti ezt a funkciót a saját szolgáltatásába. Ezután továbbfejlesztheti a hitelesítési szolgáltatást. Hozzáadhat például egy új hitelesítési folyamatot anélkül, hogy megérintené az azt használó szolgáltatások bármelyikét.
Értékelje ki az igényeinek megfelelő gyakori minták és eljárások alkalmasságát . Kerülje az olyan trendek vagy javaslatok követését, amelyek nem feltétlenül a legjobbak a környezethez vagy a követelményekhez. A mikroszolgáltatások például nem minden alkalmazás esetében a legjobb megoldás, mert összetettségi, többletterhelési és függőségi problémákat okozhatnak.
Elég kód fejlesztése
Az egyszerűség, a hatékonyság és a megbízhatóság alapelvei a fejlesztési gyakorlatokra is érvényesek. Egy lazán összekapcsolt, összetevővel rendelkező számítási feladatban határozza meg az összetevő által biztosított funkciókat. Fejlessze a folyamatokat, hogy kihasználhassa ezt a funkciót. Vegye figyelembe az alábbi javaslatokat a fejlesztési gyakorlatához:
Az üzleti követelményeknek megfelelő platformfunkciók használata. A fejlesztés és felügyelet kiszervezéséhez például használjon alacsony kódú, kód nélküli vagy kiszolgáló nélküli megoldásokat, amelyeket a felhőszolgáltató kínál.
Kódtárak és keretrendszerek használata.
Fejlesztési gyakorlatként be kell vezetni a párok programozását vagy a dedikált kódvizsgálati munkameneteket.
Implementáljon egy megközelítést a nem elérhető kód azonosításához. Szkeptikusnak kell lennie a kódnak, amelyet az automatizált tesztek nem fednek le.
A legjobb adattár használata az adatokhoz
Korábban számos szervezet nagy relációs SQL-adatbázisokban tárolta az összes adatát. A relációs adatbázisok atomi, konzisztens, izolált és tartós (ACID) garanciákat biztosítanak a relációs adattranzakciókhoz. Ezek az adatbázisok azonban hátrányokkal járnak:
A lekérdezések költséges illesztést igényelhetnek.
Normalizálnia kell az adatokat, és át kell strukturálnia azokat az írási sémához.
A zárolási versengés hatással lehet a teljesítményre.
A relációs adatbázisok alternatívái
Egy nagy megoldásban valószínűleg egyetlen adattár-technológia nem felel meg az összes igényének. A relációs adatbázisok alternatívái a következők:
Kulcs-érték tárolók
Dokumentum-adatbázisok
Keresőmotor-adatbázisok
Idősorozat-adatbázisok
Oszlopcsalád-adatbázisok
Gráfadatbázisok
Minden lehetőségnek vannak előnyei és hátrányai. A különböző adattípusok jobban megfelelnek a különböző adattártípusoknak. Válassza ki azt a tárolási technológiát, amely a legjobban illeszkedik az adataihoz, és hogyan használja azokat.
Tárolhat például egy termékkatalógust egy dokumentum-adatbázisban, például az Azure Cosmos DB-ben, amely támogatja a rugalmas sémát. Minden termékleírás egy önálló dokumentum. A teljes katalógusra vonatkozó lekérdezések esetén indexelheti a katalógust, és tárolhatja az indexet Azure Cognitive Search. Előfordulhat, hogy a termékleltár bekerül egy SQL-adatbázisba, mert ezek az adatok ACID-garanciákat igényelnek.
Javaslatok
Fontolja meg a többi adattárat. A relációs adatbázisok nem mindig megfelelőek. További információ: Az adattármodellek ismertetése.
Ne feledje, hogy az adatok nem csak a tárolt alkalmazásadatokat tartalmazzák. Ide tartoznak az alkalmazásnaplók, események, üzenetek és a gyorsítótárak is.
Használja a többplatformos adatmegőrzést vagy az adattártechnológiák kombinációját használó megoldásokat.
Vegye figyelembe a rendelkezésére álló adattípust. Például tárolja a következőt:
Tranzakciós adatok SQL-adatbázisban.
JSON-dokumentumok egy dokumentum-adatbázisban.
Telemetria egy idősorozat-adatbázisban.
Alkalmazásnaplók Azure Cognitive Search.
Blobok Azure Blob Storage.
Rangsorolja a rendelkezésre állást a konzisztencia alapján. A CAP-tétel azt jelenti, hogy kompromisszumot kell hoznia a rendelkezésre állás és a konzisztencia között egy elosztott rendszerben. Nem kerülheti el teljesen a hálózati partíciókat, ami a CAP-tétel másik összetevője. De egy végleges konzisztenciamodellt is alkalmazhat a magasabb rendelkezésre állás érdekében.
Vegye figyelembe a fejlesztői csapat készségkészletét. Habár a többnyelvű adatmegőrzés használata előnyökkel jár, túlzásokba lehet esni. Új képességkészletekre van szükség egy új adattárolási technológia bevezetéséhez. Ahhoz, hogy a lehető legtöbbet hozhassa ki a technológiából, a fejlesztői csapatnak a következőket kell tennie:
Lekérdezések optimalizálása.
Hangoljon a teljesítményre.
A megfelelő használati mintákkal dolgozhat.
A tárolási technológia kiválasztásakor vegye figyelembe ezeket a tényezőket:
Kompenzáló tranzakciók használata. A poliglot megőrzése esetén egyetlen tranzakció több tárolóba is írhat adatokat. Ha hiba történik, a kompenzáló tranzakciók használatával visszavonhatja a befejezett lépéseket.
Fontolja meg a kötött környezeteket, ami egy tartományalapú tervezési koncepció. A határos környezet egy tartománymodell körüli explicit határ. A kötött környezet határozza meg a tartomány azon részeit, amelyekre a modell vonatkozik. A körülhatárolt kontextus ideális esetben az üzleti szakterület egy részterületét képezi le. Fontolja meg a többglobális adatmegőrzést a rendszer kötött környezeteihez. Előfordulhat például, hogy a termékek megjelennek a termékkatalógus altartományában és a termékleltár altartományában. Ez a két altartomány azonban valószínűleg eltérő követelményeket támaszt a termékek tárolására, frissítésére és lekérdezésére vonatkozóan.
Azure-beli facilitálás
Az Azure a következő szolgáltatásokat kínálja:
Azure Functions egy kiszolgáló nélküli számítási szolgáltatás, amellyel minimális kóddal hozhat létre vezénylést.
Az Azure Logic Apps egy kiszolgáló nélküli munkafolyamat-integrációs platform, amellyel vezénylést hozhat létre grafikus felhasználói felülettel vagy konfigurációs fájl szerkesztésével.
Azure Event Grid egy nagymértékben skálázható, teljes mértékben felügyelt közzétételi-feliratkozási üzenetterjesztési szolgáltatás, amely az MQTT- és HTTP-protokollokat használó rugalmas üzenetfelhasználási mintákat kínál. Az Event Grid használatával adatfolyamatokat hozhat létre eszközadatokkal, eseményvezérelt kiszolgáló nélküli architektúrákat hozhat létre, és integrálhatja az alkalmazásokat.
További információkért lásd:
- Azure-beli számítási szolgáltatás kiválasztása
- Számítási lehetőség kiválasztása mikroszolgáltatásokhoz
- Az adatok beállításainak áttekintése
Példa
Az összetevőket és azok funkcióit a követelmények alapján meghatározó számítási feladatokért lásd: Reliable Web App pattern (Megbízható webalkalmazás-minta).
Kapcsolódó hivatkozások
Megbízhatósági ellenőrzőlista
Tekintse meg a javaslatok teljes készletét.
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: