此範例案例會逐步引導您使用 Azure 平臺即服務 (PaaS) 工具來實作電子商務前端。
架構
資料流程
此案例涵蓋從電子商務網站購買票證,數據會流經案例,如下所示:
- Azure 流量管理員 將使用者的要求路由傳送至裝載於 Azure App 服務 中的電子商務網站。
- Azure CDN 會為使用者提供靜態映像和內容。
- 用戶透過 Azure Active Directory B2C 租使用者登入應用程式。
- 使用者使用 Azure 搜尋服務搜尋音樂會。
- 網站會從 Azure SQL 資料庫 提取音樂會詳細數據。
- 網站是指 Blob 儲存體 中購買的票證映像。
- 資料庫查詢結果會在 Azure Cache for Redis 中快取,以改善效能。
- 使用者提交票證訂單和音樂會評論,這些評論會放在佇列中。
- Azure Functions 會處理訂單付款和音樂會檢閱。
- 認知服務提供音樂會檢閱的分析,以判斷情感(正面或負面)。
- Application Insights 提供效能計量來監視 Web 應用程式的健康情況。
元件
- Azure CDN 會從靠近使用者的位置傳遞靜態快取的內容,以減少延遲。
- Azure 流量管理員 控制不同 Azure 區域中服務端點的使用者流量分佈。
- App Services - Web Apps 裝載 Web 應用程式,允許自動調整和高可用性,而不需要管理基礎結構。
- Azure Active Directory B2C 是身分識別管理服務,可自定義及控制客戶在應用程式中註冊、登入及管理其配置檔的方式。
- 儲存體 佇列會儲存應用程式可存取的大量佇列訊息。
- 函式 是無伺服器計算選項,可讓應用程式隨選執行,而不需要管理基礎結構。
- 認知服務 - 情感分析 使用機器學習 API,可讓開發人員輕鬆地將情感和視訊偵測、臉部、語音和視覺辨識、語音和語言理解等智慧功能新增至應用程式中。
- Azure 搜尋服務 是一種搜尋即服務雲端解決方案,可透過 Web、行動和企業應用程式中的私人異質內容,提供豐富的搜尋體驗。
- 儲存體 Blob 已優化以儲存大量的非結構化數據,例如文字或二進位數據。
- Azure Cache for Redis 可藉由暫時將經常存取的數據複製到靠近應用程式的快速記憶體,來改善嚴重依賴後端數據存放區的系統效能和延展性。
- Azure SQL 資料庫 是一般用途的關係資料庫受控服務,可支持關係型數據、JSON、空間和 XML 等結構。
- Application Insights 的設計目的是透過內建分析工具自動偵測效能異常,協助您持續改善效能和可用性,以協助瞭解使用者使用應用程式的方式。
替代項目
許多其他技術都可用於建置以大規模電子商務為重點的客戶面向應用程式。 這些技術涵蓋應用程式的前端,以及數據層。
Web 層和函式的其他選項包括:
- Azure Kubernetes Service - 用來建置和部署容器型解決方案的平臺,可用來作為微服務架構的其中一個實作。 平臺提供應用程式不同元件的靈活性,以視需要獨立調整。
- Azure 容器執行個體 - 快速部署和執行容器的方式,其生命週期很短。 此處的容器會部署來執行快速處理作業,例如處理訊息或執行計算,然後在完成時立即取消布建。
- 服務匯流排 可用來取代 儲存體 佇列。
資料層的其他選項包括:
- Azure Cosmos DB:Microsoft 的全域分散式多模型資料庫。 此服務提供平台來執行其他數據模型,例如 MongoDB、Cassandra、Graph 資料或簡單的數據表記憶體。
案例詳細資料
許多電子商務網站會隨著時間而面臨季節性和流量變化。 當產品或服務的需求起飛時,無論是可預測還是不可預知,使用 PaaS 工具可讓您自動處理更多客戶和更多交易。 此外,此案例只會支付您使用的容量,藉此利用雲端經濟。
本檔將協助您了解各種 Azure PaaS 元件和考慮,這些元件和考慮可用來共同部署範例電子商務應用程式 Relecloud Concerts,這是在線音樂會票證平臺。
潛在的使用案例
此解決方案已針對零售產業優化。 其他相關的使用案例包括:
- 建置需要彈性調整的應用程式,以在不同時間處理使用者高載。
- 建置應用程式,其設計目的是在全球不同 Azure 區域中以高可用性運作。
考量
這些考慮會實作 Azure Well-Architected Framework 的支柱,這是一組指導原則,可用來改善工作負載的品質。 如需詳細資訊,請參閱 Microsoft Azure Well-Architected Framework。
可用性
- 請考慮在建置雲端應用程式時,針對可用性使用一般設計模式。
- 檢閱適當的 App Service Web 應用程式參考架構中的可用性考慮
- 如需可用性的其他考慮,請參閱 Azure 架構中心的可用性檢查清單 。
延展性
- 建置雲端應用程式時,請注意 可擴縮性的典型設計模式。
- 檢閱適當 App Service Web 應用程式參考架構中的延展性考慮
- 如需其他延展性主題,請參閱 Azure 架構中心提供的效能效率檢查清單 。
安全性
安全性可提供針對蓄意攻擊和濫用寶貴數據和系統的保證。 如需詳細資訊,請參閱 安全性要素概觀。
- 請考慮在適當的情況下,針對安全性使用一般設計模式。
- 檢閱適當的 App Service Web 應用程式參考架構中的安全性考慮。
- 請考慮遵循 安全的開發生命週期 程式,協助開發人員建置更安全的軟體,並解決安全性合規性需求,同時降低開發成本。
- 檢閱 Azure PCI DSS 合規性的藍圖架構。
復原
- 請考慮使用 斷路器模式 來提供正常錯誤處理,如果應用程式的一部分無法使用。
- 檢閱 復原的典型 設計模式,並考慮在適當時實作這些模式。
- 您可以在 Azure 架構中心找到 App Service 的許多建議做法。
- 請考慮針對映像和佇列使用數據層的作用中 異地復 寫和 異地備援 記憶體。
- 如需復原能力更深入的討論,請參閱 Azure 架構中心的相關文章。
成本最佳化
成本優化是考慮如何減少不必要的費用,並提升營運效率。 如需詳細資訊,請參閱 成本優化要素概觀。
探索執行此案例的成本,所有服務都會在成本計算機中預先設定。 若要查看特定使用案例的定價如何變更,請變更適當的變數,以符合您預期的流量。
我們已根據您預期取得的流量,提供三個範例成本配置檔:
- 小型:此定價範例代表針對最低生產層級實例建置所需的元件。 在此,我們假設少數使用者,每個月只有數千個使用者。 應用程式使用標準 Web 應用程式的單一實例,足以啟用自動調整。 其他元件會分別調整為基本層,以允許最少的成本,但仍確保有 SLA 支援和足夠的容量來處理生產層級工作負載。
- 中型:此定價範例代表指出中等大小的部署的元件。 在此,我們估計一個月內約有100,000位使用者使用系統。 預期的流量會在具有中等標準層的單一 App Service 實例中處理。 此外,認知和搜尋服務的中度層級會新增至計算機。
- 大型:此定價範例代表一個應用程式,以每月數百萬個使用者的順序,移動數 TB 的數據。 此層級的使用量高效能,需要在流量管理員前端的多個區域中部署的進階層 Web 應用程式。 數據包含下列各項:記憶體、資料庫和CDN已針對數TB的數據進行設定。
部署此案例
若要部署此案例,您可以遵循此 逐步教學課程 ,示範如何手動部署每個元件。 本教學課程也提供執行簡單票證購買應用程式的 .NET 範例應用程式。 此外,還有一個 Resource Manager 範本可將大部分 Azure 資源的部署自動化。
參與者
本文由 Microsoft 維護。 原始投稿人如下。
主體作者:
- Chris Mason |軟體工程高級經理