Gyakorlat – Rétegzett állapotstruktúra létrehozása

Befejeződött

Ebben a gyakorlatban a feladat egy rétegzett állapotmodell megtervezése egy példaalkalmazáshoz. Először tekintse át az alkalmazásarchitektúrát, az alkalmazás által használt legfontosabb Azure-szolgáltatásokat, valamint azt, hogy az Azure-szolgáltatások hogyan járulnak hozzá az általános felhasználói élményhez.

Példaalkalmazás

Erre a gyakorlatra példa a Contoso Shoes által használt webalkalmazás. Az alkalmazás lehetővé teszi az alkalmazottak számára, hogy böngészhessenek egy termékkatalógusban, frissíthessék a katalógus egyes elemeit, és megjegyzéseket hozhatnak létre az alkalmazásban.

A Contoso Shoes üzemeltetési csapata két kritikus üzleti követelményt azonosított az alkalmazáshoz. Az alkalmazottaknak képesnek kell lenniük a következőre:

  • Az elemek listájának megjelenítésével és az elemek böngészésével kezelheti a katalógust.
  • Megjegyzéseket hozhat létre az egyes elemekhez a többi felhasználó számára.

Az állapotmodellnek legalább ezt a két kritikus műveletet tartalmaznia kell.

Architektúra

A Contoso Shoes alkalmazás architektúrájának ábrája.

Összetevők

  • Előtérbeli webalkalmazás: A számítási feladat felhasználói felülete, amely az Azure Web Appsben fut.

    • Forrás: Catalog API, Azure Blob Storage
    • Írás: Catalog API
  • Catalog API: Az előtérbeli webalkalmazás által a katalóguselemeken és megjegyzéseken végzett adatműveletekhez használt API-réteg. Nem ír az adatbázisba. Ehelyett a rendszer üzenetet küld egy eseményközpontnak, amelyet aszinkron módon kell feldolgozni. Ezt az összetevőt az Azure Functions üzemelteti.

    • Olvasás innen: Azure Cosmos DB
    • Írás: Azure Event Hubs
  • Háttérfeldolgozó: Egy összetevő, amely aszinkron módon dolgozza fel az adatbázis-frissítéseket. A processzornak nincs nyilvános végpontja. Ezt az összetevőt az Azure Functions üzemelteti.

    • Olvasás innen: Azure Event Hubs
    • Írás: Azure Cosmos DB
  • Üzenetközvetítő: Az üzenetkezelési processzor az Azure Event Hubs használatával küld üzeneteket a Catalog API és a háttérprocesszor között.

  • Adatbázis: Az adatok megmaradnak az Azure Cosmos DB-ben. A Catalog API közvetlenül az adatbázisból olvas be. A háttérfeldolgozó kezeli az írásokat. A rendszerképeket az Azure Blob Storage tárolja.

  • Titkos kulcsok: A számítási feladat alkalmazásösszetevői titkos kódokkal engedélyezik a hozzáférést. A titkos kulcsokat az Azure Key Vault tárolja. A Catalog API és a háttérfeldolgozó kapcsolati sztring használ az adatbázis és az Azure Event Hubs eléréséhez. Az előtérbeli webalkalmazás egy API-kulccsal hívja meg a Catalog API-t.

  • Figyelés: Az alkalmazásösszetevők minden adatmérést elküldenek az Application Insightsnak, amely egy Log Analytics-munkaterülettel van alátámasztva. Ugyanez a munkaterület a számítási feladathoz tartozó egyéb naplók és metrikák gyűjtésére szolgál.

Az architektúra felosztása rétegekben

Az előző leckében leírtak szerint az állapotmodellnek rétegzett struktúrának kell lennie. Az állapot modellezésének folyamata egy architekturális gyakorlat, amely meghatározza az összes felhasználói folyamatot, leképezi a funkcionális és logikai összetevők közötti függőségeket, valamint az Azure-erőforrások közötti függőségeket.

A felhasználói folyamatok azonosítása és az állapotmodell létrehozása jelenleg elméleti gyakorlat. Toll és papír vagy üres dokumentum használatával jegyezze fel az egyes rétegeket, és rajzolja meg a struktúrát.

Ebben a gyakorlatban az állapotmodell három rétegből áll: felhasználói folyamatokból, alkalmazásösszetevőkből és Azure-erőforrásokból.

Felhasználói folyamatok

Az architektúra tetejétől kezdve gondolja át a lehetséges felhasználói folyamatokat az alkalmazás várt funkciói alapján. Próbálja absztrakcióra a technikai részleteket és az Azure-szolgáltatásokat, és értékelje ki a folyamatokat egy felhasználó szemszögéből.

  • Milyen folyamatok kritikusak?
  • Hogyan használják az alkalmazottak az alkalmazást az üzleti célok eléréséhez?

Az operatív csapat által meghatározott követelmények alapján legalább két felhasználói folyamatnak kell lennie a felső rétegben: Katalóguselemek listázása és Megjegyzés hozzáadása.

Ha többre is gondol, vegye fel őket az állapotmodellbe.

Alkalmazásösszetevők

Lépjen le egy rétegre, és értékelje ki az alkalmazás összetevőit. Először tegyen fel kérdéseket, például:

  • "Az alkalmazásom melyik része teszi működőképessé ezt a folyamatot?"
  • "Mely mikroszolgáltatások vagy összetevők vesznek részt ebben a folyamatban?"
  • "Ez a folyamat továbbra is működik, ha ez a rész meghibásodik?"

A cél az alkalmazás-összetevők olyan technikai szinten történő azonosítása, amely hozzájárul az egyes felhasználói folyamatokhoz. Ezek az összetevők lehetnek API-k, háttérmunkások, mikroszolgáltatások stb.

Ez a számítási feladat legalább három alkalmazásösszetevővel rendelkezik, amelyek részt vesznek a két azonosított felhasználói folyamatban: előtérbeli, Katalógus API és háttérfeldolgozó.

Azure-erőforrások

Az alsó réteg tartalmazza az egyes alkalmazásösszetevők által használt Azure-erőforrásokat. Ebben a gyakorlatban az összetevőket és az erőforrásokat az Összetevők szakaszban ismertetjük.

Feljegyzés

Egy valós forgatókönyv valószínűleg több szolgáltatással rendelkezik, és összetettebb kapcsolatokkal rendelkezik közöttük. A sikeres állapotmodell létrehozásának egyik kulcsa annak azonosítása, hogy mely részek kritikusak, és hogy az egyes összetevők hogyan járulnak hozzá a rendszer általános állapotához.

A végső állapotmodell szerkezetének rajzolása

Az összegyűjtött információkat az állapotmodell struktúrájának grafikus ábrázolásaként helyezheti el. Ennek a diagramhoz hasonlóan kell kinéznie:

A rétegzett állapotmodell architektúrájának ábrázolása.

A webalkalmazás állapotmodellje felülről lefelé a következő rétegekkel rendelkezik:

Felhasználói folyamatok
  • Katalóguselemek listázása. Az előtérbeli webalkalmazástól és a Catalog API-tól függ.
  • Megjegyzés hozzáadása. Az előtérbeli webalkalmazástól, a Catalog API-tól és a háttérprocesszortól függ.
Alkalmazásösszetevők
  • Előtérbeli webalkalmazás. A Blob Storage-tól és a catalog API-tól függ.
  • Katalógus API. Az Azure Cosmos DB-től, a Key Vaulttól és az Event Hubstól függ.
  • Háttérprocesszor. Az Azure Cosmos DB-től, a Key Vaulttól és az Event Hubstól függ.
Azure-erőforrások
  • Blob Storage
  • Azure Cosmos DB
  • Key Vault
  • Event Hubs