雲端應用程式中的最佳做法
這些最佳做法可協助您在雲端中建置可靠、可調整且安全的應用程式。 它們提供設計和實作有效率且健全的系統、機制和方法的指導方針和秘訣。 許多人也包含您可以搭配 Azure 服務使用的程式碼範例。 不論您的主機是 Azure 或不同的雲端平臺,這些作法都適用於任何分散式系統。
實務目錄
下表列出各種最佳做法。 [相關支柱] 或 [模式] 數據行包含下列連結:
- 練習和相關設計模式可解決的雲端開發挑戰。
- 練習所著重Microsoft Azure 妥善架構架構的支柱。
練習 | 摘要 | 相關的支柱或模式 |
---|---|---|
API 設計 | 使用標準通訊協定和已同意的數據格式,設計 Web API 以支援平台獨立性。 提升服務演進,讓用戶端不需要修改就能探索功能。 藉由支援部分回應並提供篩選和分頁數據的方式,改善回應時間並防止暫時性錯誤。 | 設計和實作、 效能效率、 卓越營運 |
API 實作 | 實作 Web API 以有效率、回應性、可調整且可供使用。 進行動作等冪、支援內容交涉,並遵循 HTTP 規格。 處理例外狀況,並支持資源探索。 提供處理大型要求並最小化網路流量的方法。 | 設計和實作, 卓越營運 |
自動調整 | 設計應用程式以動態方式配置和取消配置資源,以滿足效能需求,並將成本降至最低。 利用 Azure 監視器自動調整 和許多 Azure 元件所提供的內建自動調整。 | 效能效率、 成本優化 |
背景工作 | 將批次作業、處理工作和工作流程實作為背景工作。 使用 Azure 平臺服務來裝載這些工作。 使用事件或排程觸發工作,並將結果傳回呼叫工作。 | 設計和實作, 卓越營運 |
快取 | 將資料複製到接近應用程式的快速記憶體,以改善效能。 快取您經常讀取但很少修改的數據。 管理數據到期和並行。 瞭解如何填入快取並使用 Azure Cache for Redis 服務。 | 數據管理、 效能效率 |
內容傳遞網路 | 使用內容傳遞網路 (CDN) 有效率地將 Web 內容傳遞給使用者,並減少 Web 應用程式的負載。 克服部署、版本控制、安全性和復原挑戰。 | 數據管理、 效能效率 |
資料分割 | 分割數據以改善延展性、可用性和效能,以及降低爭用和數據儲存成本。 以有效率的方式使用水平、垂直和功能性數據分割。 | 數據管理、 效能效率、 成本優化 |
資料分割原則(依服務) | 在 Azure SQL 資料庫 與 Azure 儲存體 服務中分割資料,例如 Azure 資料表記憶體和 Azure Blob 儲存體。 將數據分區,以分散負載、減少延遲,並支援水平調整。 | 數據管理、 效能效率、 成本優化 |
主機名保留 | 了解為何請務必在反向 Proxy 與其後端 Web 應用程式之間保留原始 HTTP 主機名,以及如何為最常見的 Azure 服務實作此建議。 | 設計和實作、 可靠性 |
訊息編碼考慮 | 使用異步訊息在系統元件之間交換資訊。 選擇最適合您數據的承載結構、編碼格式和串行化連結庫。 | 傳訊、安全性 |
監視和診斷 | 使用監視和診斷管線來追蹤系統健康情況、使用量和效能。 將監視數據轉換成警示、報告和觸發程式,以協助各種情況。 範例包括偵測和更正問題、找出潛在問題、符合效能保證,以及滿足稽核需求。 | 卓越營運 |
特定服務的重試指導 | 使用、調整及擴充 Azure 服務和用戶端 SDK 所提供的重試機制。 開發系統且健全的方法,以管理連線、作業和資源暫時性的問題。 | 設計和實作、 可靠性 |
暫時性錯誤處理 | 處理因無法使用的網路或資源所造成的暫時性錯誤。 在開發適當的重試策略時克服挑戰。 避免複製重試程式代碼和其他反模式層。 | 設計和實作、 可靠性 |