練習 - 組建分層健康情況結構
在此練習中,您的工作是設計範例應用程式的分層健康情況模型。 首先檢閱應用程式的結構、應用程式所使用的主要 Azure 服務,以及 Azure 服務對整體使用者體驗有何貢獻。
範例應用程式
本練習的範例是 Contoso Shoes 所使用的 Web 應用程式。 應用程式可讓員工瀏覽產品目錄、更新目錄中的個別項目,以及在應用程式中建立註解來與其他使用者互動。
Contoso Shoes 的營運小組識別出此應用程式的兩個重要商務需求。 員工必須能夠:
- 藉由顯示項目清單和瀏覽項目與目錄互動。
- 為其他使用者建立個別項目的註解。
健康情況模型至少應包含這兩個重要作業。
架構
元件
前端 Web 應用程式: 此工作負載的使用者介面,可在 Azure Web 應用程式上執行。
- 讀取來源: 目錄 API、Azure Blob 儲存體
- 寫入目標: 目錄 API
目錄 API: 前端 Web 應用程式用於目錄項目和註解的資料作業的 API 層。 無法寫入資料庫。 相反地,訊息會傳送至事件中樞,以非同步方式處理。 此元件裝載在 Azure Functions 上。
- 讀取來源: Azure Cosmos DB
- 寫入目標: Azure 事件中樞
背景處理器: 非同步處理資料庫更新的元件。 處理器沒有公用端點。 此元件裝載在 Azure Functions 上。
- 讀取來源: Azure 事件中樞
- 寫入目標: Azure Cosmos DB
訊息代理程式: 訊息處理器會使用 Azure 事件中樞在目錄 API 與背景處理器之間傳遞訊息。
資料庫: 資料會保存在 Azure Cosmos DB中。 目錄 API 會直接從資料庫讀取。 背景處理器會處理寫入。 映像會儲存在 Azure Blob 儲存體中。
秘密: 此工作負載的應用程式元件會使用秘密來授權存取。 祕密儲存在 Azure Key Vault 中。 目錄 API 和背景處理器會使用連接字串來存取資料庫和 Azure 事件中樞。 前端 Web 應用程式會使用 API 金鑰來呼叫目錄 API。
監視: 應用程式元件會受 Log Analytics 工作區支援,將所有資料度量傳送至Application Insights。 相同的工作區可用來收集此工作負載的其他記錄和計量。
將結構分層
如上一個單元所述,健康情況模型應該是分層結構。 模型健全狀況的流程是定義所有使用者流程的結構練習、對應功能與邏輯元件之間的相依性,以及 Azure 資源之間的相依性。
識別使用者流程並建置健康情況模型是這個階段的概念性練習。 使用筆和紙或空白文件來記下個別圖層並繪製結構。
在此練習中,我們的健康情況模型有三層: 使用者流程、應用程式元件和 Azure 資源。
使用者流程
從結構頂端開始,請根據應用程式的預期功能考慮可能的 使用者流程。 嘗試抽象技術詳細資料和 Azure 服務,並從使用者的觀點評估流程。
- 哪些流程很重要?
- 員工如何使用應用程式來達成商務目標?
根據作業小組所識別的需求,您應該在最上層至少有兩個使用者流程: 列出目錄項目 和 新增註解。
如果能想到更多,請在健康情況模型中包含它們。
應用程式元件
向下移一層並評估應用程式元件。 從詢問問題開始,例如:
- 「我的應用程式哪個部分讓此流程正常運作?」
- 「哪些微服務或元件參與此流程?」
- 「如果此部分失敗,此流程仍可正常運作嗎?」
目標是在對每個使用者流程做出貢獻的技術層級識別應用程式元件。 這些元件可以是 API、背景工作角色、微服務等等。
此工作負載至少有三個應用程式元件參與兩個已識別的使用者流程: 前端、 目錄 API和 背景處理器。
Azure 資源
底層包含個別應用程式元件所使用的 Azure 資源。 在本練習中,元件和資源會在 [元件] 章節中說明。
注意
真實世界案例可能會有更多服務,而且它們之間有更複雜的關聯性。 成功建置健康情況模型的關鍵是識別哪些元件很重要,以及每個元件如何對系統的整體健康情況做出貢獻。
繪製最終健康情況模型結構
將您收集的資訊放在健康情況模型結構的圖形表示法中。 看起來應該如此圖表所示:
從上到下,Web 應用程式健康情況模型具有下列層級:
使用者流程
- 列出目錄項目。 取決於前端 Web 應用程式和目錄 API。
- 新增註解。 取決於前端 Web 應用程式、目錄 API 和背景處理器。
應用程式元件
- 前端 Web 應用程式。 取決於 Blob 儲存體和目錄 API。
- 目錄 API。 取決於 Azure Cosmos DB、Azure Key Vault 和事件中樞。
- 背景處理器。 取決於 Azure Cosmos DB、Azure Key Vault 和事件中樞。
Azure 資源
- Blob 儲存體
- Azure Cosmos DB
- 金鑰保存庫
- 事件中樞