本文說明容器解決方案,可在 Azure 上裝載大型儲存密集型 WordPress 安裝。 此解決方案可最大化延展性和安全性。 主要元件包括 Azure Front Door、 Azure Kubernetes Service (AKS)和 Azure NetApp Files。
架構
下載此架構的 Visio 檔案。
注意
您可以透過實施適用於任何 WordPress 託管方法的提示和建議來擴展此解決方案。 如需如何部署 WordPress 安裝的一般秘訣,請參閱 Azure 上的 WordPress。
資料流程
下列數據流對應至上圖:
使用者透過已啟用 Azure Web 應用程式防火牆 的 Azure Front Door 存取前端網站。
Azure Front Door 會使用 Azure Load Balancer 的內部實例作為來源。 內部負載平衡器是 AKS 的隱藏元件。 Azure Front Door 會擷取任何未快取的數據。
內部負載平衡器會將輸入流量分散到 AKS 內的 Pod。
Azure 金鑰保存庫會儲存秘密,包括私密金鑰,這是 X.509 憑證。
WordPress 應用程式會使用私人端點來存取適用於 MySQL 的 Azure 資料庫的彈性伺服器執行個體。 WordPress 應用程式會從這個受控資料庫服務擷取動態資訊。
所有靜態內容都裝載在 Azure NetApp Files 中。 此解決方案使用 Astra Trident 容器儲存介面( CSI )驅動程式搭配網路檔案系統( NFS )傳輸協定。
元件
AKS 是受控 Kubernetes 服務,可用來部署、管理和調整容器化應用程式。 在此架構中,AKS 會裝載 WordPress 容器,並提供執行容器化 WordPress 應用程式的協調流程平臺,以確保高可用性和延展性。
適用於 Redis 的 Azure 快取 是受控記憶體內資料存放區和快取服務。 在此架構中,適用於 Redis 的 Azure 快取會裝載所有 Pod 共用的索引鍵/值快取。 WordPress效能最佳化外掛程式使用快取來改善回應時間。
適用於 MySQL 的 Azure 資料庫 - 彈性伺服器 是以開放原始碼 MySQL 資料庫引擎為基礎的受控關聯式資料庫服務。 在此架構中,此資料庫會儲存 WordPress 資料。
Azure DDoS 防護 是一項網路安全性服務,可提供增強的分散式阻斷服務 (DDoS) 風險降低功能。 在此架構中,DDoS 防護與應用程式設計最佳實務結合並在周邊網路上啟用時,有助於防禦 DDoS 攻擊。
Azure Front Door 是新式雲端內容傳遞網路和全域負載平衡器。 在此架構中,Azure Front Door 是 WordPress 部署的公用進入點。
Azure NetApp Files 是受管理、效能密集且對延遲敏感的儲存解決方案。 在此架構中、Azure NetApp Files 會裝載 WordPress 內容、讓所有 Pod 都能透過高效能檔案儲存來存取共用資料。
Azure 虛擬網路 是一種網路服務,可讓已部署的資源彼此通訊、網際網路和內部部署網路通訊。 在此架構中,虛擬網路提供隔離和分段。
金鑰保存庫 是一種雲端服務,可儲存和控制對秘密、憑證、金鑰和密碼的存取。 在此架構中,金鑰保存庫會在 Pod 需要時為 AKS 叢集提供秘密。
負載平衡器 是第 4 層負載平衡器,可根據規則和健康情況探查結果分配輸入流量。 在此架構中,負載平衡器會以低延遲和高輸送量將流量從 Azure Front Door 散發至輸入控制器 Pod。
網路安全性群組 (NSG) 是安全性功能,可使用安全性規則,根據來源或目的地 IP 位址、埠和通訊協定,允許或拒絕輸入或輸出網路流量。 在此架構中,NSG 規則會限制子網路中應用程式元件之間的流量。
替代項目
您可以使用 AKS 叢集中的自我裝載 Pod 作為快取,而不是使用 Azure Cache for Redis 受控服務。
您可以使用像是 Rook-Ceph 記憶體的自我裝載解決方案,而不是使用 Azure NetApp Files 之類的 受控記憶體解決方案。 如需詳細資訊,請參閱 在 AKS 上使用 Rook Ceph。
您可以使用 Azure 容器應用程式 來裝載容器化的 WordPress 工作負載,而不是使用 AKS。 Container Apps 是受控無伺服器容器服務,適合更簡單或較小規模的案例。 針對大型、儲存密集且高度可自訂的部署,請使用 AKS。
案例詳細資料
此範例案例最適合大型儲存密集型 WordPress 安裝。 此部署模型可以調整以符合月臺流量尖峰。
潛在使用案例
- 使用 WordPress 作為其內容管理系統的高流量部落格
- 使用 WordPress 的商務或電子商務網站
考量
這些考量能實作 Azure Well-Architected Framework 的支柱,這是一組指導原則,可以用來改善工作負載的品質。 如需詳細資訊,請參閱 Well-Architected Framework。
可靠性
可靠性有助於確保您的應用程式可以符合您對客戶的承諾。 如需詳細資訊,請參閱可靠性的設計檢閱檢查清單。
當您部署此解決方案時,請考慮下列建議:
使用 AKS 中的 Pod 和負載平衡器來散發輸入流量。 即使發生 Pod 故障,此方法也能提供高可用性。
將所有網路元件放在 Azure Front Door 後方。 這種方法使網路資源和應用程式能夠恢復問題,否則可能會中斷流量並影響使用者存取。
使用 Azure Front Door 快取所有回應,以獲得小型可用性優勢。 具體來說,當來源沒有回應時,您仍然可以存取內容。 但快取不提供完整的可用性解決方案。
在配對區域之間複寫 Azure NetApp Files 儲存設備,以提高可用性。 如需詳細資訊,請參閱了解 Azure NetApp 檔案複寫。
遵循符合您需求的 高可用性選項 ,以提高適用於 MySQL 的 Azure 資料庫可用性。
此解決方案支援多個區域、數據復寫和自動調整。 元件會將流量散發至 Pod。 健全狀況探查可確保只有狀況良好的網繭才能接收流量。
Azure Front Door 是一項全域服務,支援部署在另一個區域中的虛擬機器擴展集。
安全性
安全性可提供針對蓄意攻擊和濫用寶貴數據和系統的保證。 如需詳細資訊,請參閱安全性的設計檢閱檢查清單。
當您部署此解決方案時,請考慮下列最佳做法:
使用 Azure Front Door 上的 Web 應用程式防火牆,協助保護流入前端應用層的虛擬網路流量。 如需詳細資訊,請參閱 Azure Front Door 上的 Web 應用程式防火牆。
不允許輸出因特網流量從資料庫層流動。
不允許公用存取私人記憶體,並停用資源的公用存取。 使用私人端點進行 適用於 MySQL 的 Azure 資料庫、Azure Cache for Redis、金鑰保存庫 和 Azure Container Registry。 如需詳細資訊,請參閱 Azure Private Link。
如需詳細資訊,請參閱一般 WordPress 安全性和效能秘訣和 Azure 安全性檔。
成本優化
成本優化著重於減少不必要的費用,並提升營運效率的方式。 如需詳細資訊,請參閱成本最佳化的設計檢閱檢查清單。
當您部署此解決方案時,請檢閱下列成本考慮:
流量預期(GB/月): 您的流量對您的成本影響最大。 您收到的流量量會決定所需的 AKS 節點數目,以及輸出資料傳輸的價格。 流量也與內容傳遞網路提供的資料量直接相關,其中輸出資料傳輸成本更便宜。
託管資料量: 請考慮您裝載的資料量,因為 Azure NetApp Files 定價是以保留容量為基礎。 若要最佳化成本,請保留資料所需的最小容量。
寫入百分比: 考慮您寫入網站的新資料量以及儲存這些資料的成本。 對於多區域部署,您寫入網站的新資料量與跨區域鏡像的資料量相關聯。
靜態內容與動態內容: 監視您的資料庫儲存體效能和容量,以判斷較便宜的 SKU 是否可以支援您的網站。 資料庫會儲存動態內容,而內容傳遞網路會快取靜態內容。
AKS 叢集優化: 請遵循 AKS 的一般秘訣,例如虛擬機器 (VM) 大小和 Azure 保留的指引,以優化 AKS 叢集成本。 如需詳細資訊,請參閱 AKS 成本優化。
效能效率
效能效率是指工作負載能夠有效率地調整以符合使用者需求。 有關詳細資訊,請參閱效能效率的設計審核清單。
此案例會使用 AKS 中的 Pod 來裝載前端。 自動調整功能可讓執行前端應用程式層的網繭數目自動調整,以回應客戶需求。 它們也可以根據定義的排程進行調整。 如需詳細資訊,請參閱 AKS 中應用程式的調整選項。
重要
為了獲得最佳效能、請掛載使用 NFS 通訊協定 4.1 版的持續性磁碟區。 下列 YAML 範例示範如何為此目的設定 PersistentVolume 物件。 請注意欄位的值 mountOptions 。
kind: PersistentVolume
...
accessModes:
- ReadWriteMany
mountOptions:
- vers=4.1
nfs:
server: xx.xx.xx.xx
參與者
本文由 Microsoft 維護。 下列參與者撰寫本文。
主要作者:
- Vaclav Jirovsky | 雲端解決方案架構師
其他參與者:
- Adrian Calinescu | 資深雲端解決方案架構師
若要查看非公開的 LinkedIn 個人檔案,請登入 LinkedIn。
下一步
產品文件:
- Azure Front Door 概觀
- Web 應用程式防火牆概觀
- Azure NetApp Files 概觀
- 建立適用於 Azure NetApp Files 的 NFS 磁碟區
- 設定適用於 AKS 的 Azure NetApp Files
- 適用於 MySQL 的 Azure 資料庫 - 彈性伺服器
- 虛擬網路概觀
- 金鑰保存庫概觀
- 負載平衡器概觀
- DDoS 防護概觀
Microsoft訓練模組: