Azure 架構良好的架構檢閱 - Azure Service Fabric
Azure Service Fabric 是分散式系統平臺,可讓您輕鬆地封裝、部署及管理可調整且可靠的微服務和容器。 這些資源會部署到一組網路連線的虛擬或實體機器,稱為 叢集。
Azure Service Fabric 中有兩個叢集模型: 標準叢集 和 受控叢集。
標準叢集會要求您定義叢集 資源,以及一些支持的資源。 這些資源必須在部署時正確設定,並在整個叢集生命週期內正確維護。 否則,叢集和您的服務將無法正常運作。
受控叢集可 簡化部署和管理作業。 受控叢集模型是由單一 Service Fabric 受控叢集資源所組成,可封裝和抽象化基礎資源。
本文主要討論 受控叢集 模型,以求簡單。 不過,針對套用至 標準叢集 模型的任何特殊考慮,會發出圖說文字。
在本文中,您將瞭解 Azure Service Fabric 的架構最佳做法。 本指南以架構卓越五大要素為基礎:
- 可靠性
- 安全性
- 成本最佳化
- 卓越營運
- 效能效益
必要條件
了解架構完善的架構支柱有助於產生高品質、穩定且有效率的雲端架構。 請參閱 Azure 架構完善的架構概觀頁面 ,以檢閱卓越架構的五大要素。
檢 閱 Azure Service Fabric 和 微服務架構 的核心概念,可協助您瞭解本文所提供的最佳做法內容。
可靠性
下列各節涵蓋 Azure Service Fabric 和可靠性特有的設計考慮和組態建議。
使用 Azure Service Fabric 討論可靠性時,請務必區分叢集可靠性和工作負載可靠性。 叢集可靠性是 Service Fabric 叢集管理員與其資源提供者之間的共同責任,而工作負載可靠性是開發人員的網域。 Azure Service Fabric 對於這兩個角色都有考慮和建議。
在 下列設計檢查清單 和建議 清單中 ,會發出圖說文字來指出每個選擇是否適用於叢集架構、工作負載架構或兩者。
如需 Azure Service Fabric 叢集可靠性的詳細資訊,請參閱 容量規劃檔。
如需 Azure Service Fabric 工作負載可靠性的詳細資訊,請參閱 Service Fabric 架構中包含的可靠性子系統 。
設計檢查清單
當您為 Azure Service Fabric 做出設計選擇時,請檢閱 將可靠性新增至架構的設計原則 。
- 叢集架構: 針對生產案例使用 標準 SKU 。 標準叢集: 針對生產案例使用 持久性層級 Silver (5 個 VM) 或更新版本。
- 叢集架構:針對重要的工作負載,請考慮針對 Service Fabric 叢集使用 可用性區域。
- 叢集架構: 針對生產案例,請使用標準層負載平衡器。 受控叢集會為主要和次要節點類型,建立具有靜態公用 IP 的 Azure 公用 Standard Load Balancer 和完整網域名稱。 您也可以 自備負載平衡器,其同時支援基本和標準 SKU 負載平衡器。
- 叢集架構: 為您的工作負載建立其他次要節點類型。
建議
探索下列建議表格,以優化 Azure Service Fabric 設定以達到服務可靠性:
Azure Service Fabric 建議 | 優點 |
---|---|
叢集架構: 針對生產案例使用標準 SKU。 | 此層級可確保資源提供者維護叢集可靠性。 標準叢集: 標準 SKU 受控叢集提供對等的持久性層級 Silver。 若要使用標準叢集模型達成此目的,您必須使用 5 部 VM(或更多 VM)。 |
叢集架構:請考慮針對 Service Fabric 叢集使用 可用性區域。 | Service Fabric 受控叢集支援跨多個可用性區域進行部署,以提供區域復原能力。 此設定可確保重要系統服務和應用程式的高可用性,以防止單一失敗點。 |
叢集架構:請考慮使用 Azure API 管理 來公開和卸載裝載在叢集上之 API 的跨領域功能。 | API 管理 可以直接與 Service Fabric 整合。 |
工作負載架構: 針對具狀態工作負載案例,請考慮使用 Reliable Services。 | Reliable Services 模型可讓您的服務即使在計算機失敗或遇到網路問題或服務本身發生錯誤和當機或失敗的不可靠環境中也能保持運作。 對於具狀態服務,即使發生網路或其他失敗,也會保留您的狀態。 |
如需更多建議,請參閱 可靠性要素的原則。
安全性
下列各節涵蓋 Azure Service Fabric 和安全性特有的設計考慮和組態建議。
使用 Azure Service Fabric 討論安全性時,請務必區分叢集安全性和工作負載安全性。 叢集安全性是 Service Fabric 叢集管理員與其資源提供者之間的共同責任,而工作負載安全性是開發人員的網域。 Azure Service Fabric 對於這兩個角色都有考慮和建議。
在 下列設計檢查清單 和建議 清單中 ,會發出圖說文字來指出每個選擇是否適用於叢集架構、工作負載架構或兩者。
如需 Azure Service Fabric 叢集安全性的詳細資訊,請參閱 Service Fabric 叢集安全性案例。
如需 Azure Service Fabric 工作負載安全性的詳細資訊,請參閱 Service Fabric 應用程式和服務安全性。
設計檢查清單
當您為 Azure Service Fabric 做出設計選擇時,請檢閱 將安全性新增至架構的設計原則 。
- 叢集架構: 確定網路安全組 (NSG) 已設定為限制子網與節點類型之間的流量流量。 請確定 已針對應用程式部署和工作負載開啟正確的埠 。
- 叢集架構: 使用 Service Fabric 秘密存放區來散發秘密時,請使用個別的數據加密憑證來加密值。
- 叢集架構:將客戶端憑證新增至 Azure 金鑰保存庫 並參考部署中的 URI,以部署用戶端憑證。
- 叢集架構: 為您的叢集啟用Microsoft Entra 整合,以確保使用者可以使用其Microsoft Entra 認證存取 Service Fabric Explorer。 請勿將叢集用戶端憑證散發給使用者以存取 Explorer。
- 叢集架構: 針對客戶端驗證,請使用系統管理員和唯讀用戶端憑證和/或Microsoft Entra 驗證。
- 叢集和工作負載架構: 建立監視用戶端憑證到期日的程式。
- 叢集和工作負載架構: 針對開發、預備和生產環境維護個別的叢集。
建議
請考慮下列建議,將您的 Azure Service Fabric 組態優化以達到安全性:
Azure Service Fabric 建議 | 優點 |
---|---|
叢集架構: 確定網路安全組 (NSG) 已設定為限制子網與節點類型之間的流量流量。 | 例如,您可能有一個 API 管理 實例(一個子網)、前端子網(直接公開網站),以及後端子網(只能存取前端)。 |
叢集架構:將 金鑰保存庫 憑證部署至 Service Fabric 叢集虛擬機擴展集。 | 在 Azure Key Vault 中集中儲存應用程式祕密,可讓您控制其散發。 Key Vault 可大幅降低不小心洩露祕密的風險。 |
叢集架構:將 存取控制 清單 (ACL) 套用至 Service Fabric 叢集的用戶端憑證。 | 使用 ACL 可提供額外的驗證層級。 |
叢集架構: 使用 資源要求和限制 來管理叢集中節點的資源使用量。 | 強制執行資源限制有助於確保一個服務不會耗用太多資源並耗盡其他服務。 |
工作負載架構: 加密Service Fabric 套件秘密值。 | 秘密值的加密可提供額外的安全性層級。 |
工作負載架構: 在 Service Fabric 應用程式中包含用戶端憑證。 | 讓應用程式使用用戶端憑證進行驗證,可提供叢集和工作負載層級的安全性機會。 |
工作負載架構: 使用 受控識別向 Azure 資源驗證 Service Fabric 應用程式。 | 使用受控識別可讓您安全地管理程式碼中的認證,以便驗證各種服務,而不需在開發人員工作站或原始檔控制中本機儲存認證。 |
叢集和工作負載架構: 在裝載不受信任的應用程式時,請遵循 Service Fabric 最佳做法 。 | 遵循最佳做法提供要遵循的安全性標準。 |
如需詳細資訊,請參閱 安全性要素的原則。
Azure Advisor 可協助您確保並改善 Azure Service Fabric 的安全性。 您可以在本文的 Azure Advisor 區段中檢閱建議。
原則定義
Azure 原則 可協助維護組織標準,並評估資源之間的合規性。 當您設定 Azure Service Fabric 時,請記住下列內建原則:
- Service Fabric 叢集應該將 ClusterProtectionLevel 屬性設定為
EncryptAndSign
。 這是受控叢集的預設值,無法變更。 標準叢集: 確定您已將 ClusterProtectionLevel 設定為EncryptAndSign
。 - Service Fabric 叢集應該只使用Microsoft Entra ID 進行客戶端驗證。
所有與 Azure Service Fabric 相關的內建原則定義都會列在內建原則 - Service Fabric 中。
成本最佳化
下列各節涵蓋 Azure Service Fabric 和成本優化特有的設計考慮和組態建議。
使用 Azure Service Fabric 討論成本優化時,請務必區分 叢集資源 的成本和 工作負載資源的成本。 叢集資源是 Service Fabric 叢集管理員與其資源提供者之間的共同責任,而工作負載資源則是開發人員的網域。 Azure Service Fabric 對於這兩個角色都有考慮和建議。
在 下列設計檢查清單 和建議 清單中 ,會發出圖說文字來指出每個選擇是否適用於叢集架構、工作負載架構或兩者。
如需叢集成本優化,請移至 Azure 定價計算機 ,然後從可用的產品中選取 [Azure Service Fabric ]。 您可以在計算機中測試不同的組態和付款方案。
如需 Azure Service Fabric 工作負載定價的詳細資訊,請參閱 應用程式規劃的範例成本計算程式。
設計檢查清單
當您為 Azure Service Fabric 做出設計選擇時,請檢閱 優化架構成本的設計原則 。
- 叢集架構: 選取適當的 VM SKU。
- 叢集架構: 使用適當的節點類型和大小。
- 叢集和工作負載架構: 使用適當的受控磁碟階層和大小。
建議
探索下列建議表格,以將 Azure Service Fabric 設定優化,以節省成本:
Azure Service Fabric 建議 | 優點 |
---|---|
叢集架構: 避免使用暫存磁碟供應專案的 VM SKU。 | Service Fabric 預設會使用受控磁碟,因此避免暫存磁碟供應項目可確保您不支付不必要的資源費用。 |
叢集架構: 如果您需要針對容量原因選取特定 VM SKU,並碰巧提供暫存磁碟,請考慮針對無狀態工作負載使用 暫存磁碟支援 。 | 充分利用您支付的資源。 使用暫存磁碟,而不是受控磁碟,可以降低成本的無狀態工作負載。 |
叢集和工作負載架構: 讓 SKU 選取範圍和受控磁碟大小與工作負載需求保持一致。 | 比對您的選擇與您的工作負載需求,可確保您不支付不必要的資源費用。 |
如需更多建議,請參閱 成本優化要素的原則。
卓越營運
下列各節涵蓋 Azure Service Fabric 和卓越營運特有的設計考慮和組態建議。
使用 Azure Service Fabric 討論安全性時,請務必區分叢集作業和工作負載作業。 叢集作業是 Service Fabric 叢集管理員與其資源提供者之間的共同責任,而工作負載作業是開發人員的網域。 Azure Service Fabric 對於這兩個角色都有考慮和建議。
在 下列設計檢查清單 和建議 清單中 ,會發出圖說文字來指出每個選擇是否適用於叢集架構、工作負載架構或兩者。
設計檢查清單
當您為 Azure Service Fabric 做出設計選擇時,請檢閱 卓越營運的設計原則 。
- 叢集架構: 準備 叢集監視解決方案。
- 叢集架構: 檢閱 Service Fabric 健全狀況模型中的叢集健康 情況原則。
- 工作負載架構: 準備 應用程式監視解決方案。
- 工作負載架構: 檢閱 Service Fabric 健康情況模型中的應用程式和服務類型健康 情況原則。
- 叢集和工作負載架構: 準備 基礎結構監視解決方案。
- 叢集和工作負載架構: 使用建置和發行管線設計叢集,以進行持續整合和部署。
建議
探索下列建議表格,以優化您的 Azure Service Fabric 設定,以達到卓越營運:
Azure Service Fabric 建議 | 優點 |
---|---|
工作負載架構: 使用 Application Insights來監視您的工作負載。 | Application Insights 與 Azure 平臺整合,包括 Service Fabric。 |
叢集和工作負載架構: 建立監視用戶端憑證到期日的程式。 | 例如,金鑰保存庫 提供一項功能,可在憑證的存續期過後x% 傳送電子郵件。 |
叢集和工作負載架構: 針對生產階段前叢集,請使用 Azure Chaos Studio 在虛擬機擴展集實例失敗時鑽研服務中斷。 | 練習服務中斷案例可協助您了解基礎結構中有哪些風險,以及如何在發生時最好地減輕問題。 |
叢集和工作負載架構: 使用 Azure 監視器來監視叢集和容器基礎結構事件。 | Azure 監視器與 Azure 平臺整合良好,包括 Service Fabric。 |
叢集和工作負載架構:針對持續整合和部署解決方案使用 Azure Pipelines。 | Azure Pipelines 與 Azure 平台整合良好,包括 Service Fabric。 |
如需更多建議,請參閱 卓越營運支柱的原則。
效能效益
下一節涵蓋 Azure Service Fabric 和效能效率特有的設定建議。
使用 Azure Service Fabric 討論安全性時,請務必區分叢集作業和工作負載作業。 叢集效能是 Service Fabric 叢集管理員與其資源提供者之間的共同責任,而工作負載效能是開發人員的網域。 Azure Service Fabric 對於這兩個角色都有考慮和建議。
在 下列設計檢查清單 和建議 清單中 ,會發出圖說文字來指出每個選擇是否適用於叢集架構、工作負載架構或兩者。
如需如何使用 Service Fabric 性能計數器減少工作負載效能問題的詳細資訊,請參閱 Azure Service Fabric 的監視和診斷最佳做法。
設計檢查清單
- 叢集架構:從 Windows Defender 排除 Service Fabric 程式以改善效能。
- 叢集架構: 選取適當的 VM SKU。
- 工作負載架構: 決定您將用於服務的程序 設計模型 。
- 叢集和工作負載架構: 使用適當的受控磁碟階層和大小。
建議
請考慮下列建議,將您的 Azure Service Fabric 設定優化,以達到效能效率:
Azure Service Fabric 建議 | 優點 |
---|---|
叢集架構: 從 Windows Defender 排除 Service Fabric 程式以改善效能。 | 根據預設,Windows Server 2016 和 2019 上會安裝 Windows Defender 防病毒軟體。 若要降低 Windows Defender 所產生的任何效能影響和資源耗用量額外負荷,而且如果您的安全策略可讓您排除開放原始碼軟體的進程和路徑,則可以 排除。 |
叢集架構: 請考慮為您的叢集使用 自動調整 。 | 自動調整提供了絕佳的彈性,並且可讓您在次要節點類型上依需求增加或減少節點。 這種自動化和彈性的行為可藉由監視和優化服務工作負載的節點數量,來降低管理額外負荷和潛在的業務影響。 |
叢集架構: 請考慮使用 加速網路。 | 加速網路可讓高效能路徑略過來自數據路徑的主機,以降低最需求網路工作負載的延遲、抖動和 CPU 使用率。 |
叢集架構:考慮在主機上使用加密,而不是使用 Azure 磁碟加密 (ADE)。 | 此加密方法可藉由支援 VM 的所有 OS 類型和映像,包括自定義映像,藉由加密 Azure 儲存體 服務中的數據,來改善 ADE。 |
工作負載架構: 檢閱 Service Fabric 程式設計模型 ,以決定最適合您服務的模型。 | Service Fabric 支援數種程序設計模型。 每一個都有他們自己的優勢和缺點。 瞭解可用的程序設計模型,可協助您為設計服務做出最佳選擇。 |
工作負載架構: 適當地為您的工作負載運用鬆散結合 的微服務 。 | 使用微服務可讓您充分利用 Service Fabric 的功能。 |
工作負載架構: 適當地為您的工作負載運用 事件驅動架構 。 | 使用事件驅動架構可讓您充分利用 Service Fabric 的功能。 |
工作負載架構:適當地運用工作負載的背景處理。 | 使用背景處理可讓您充分利用 Service Fabric 的功能。 |
叢集和工作負載架構: 檢閱 您可以在 Service Fabric 中調整解決方案的不同方式。 | 您可以使用調整來啟用解決方案的資源使用率上限。 |
如需更多建議,請參閱 效能效率要素的原則。
Azure Advisor 建議
Azure Advisor 是個人化的雲端顧問,可協助您遵循最佳做法來將 Azure 部署最佳化。 以下是一些建議,可協助您在使用 Azure Service Fabric 時改善可靠性、安全性、成本效益、效能和營運卓越。
安全性
- Service Fabric 叢集應該將 ClusterProtectionLevel 屬性設定為
EncryptAndSign
。 這是受控叢集的預設值,無法變更。 標準叢集: 確定您已將 ClusterProtectionLevel 設定為EncryptAndSign
。 - Service Fabric 叢集應該只使用Microsoft Entra ID 進行客戶端驗證。
其他資源
如需 建立和維護叢集時所擁有的所有選項清單,請參閱 Azure Service Fabric 受控叢集組態選項一文 。
如需如何開發工作負載的指引,請檢閱 Azure 應用程式架構基本概念。 雖然 Service Fabric 只能作為容器裝載平臺使用,但使用架構完善的工作負載會利用 Service Fabric 的完整功能。
下一步
當您使用 ARM 範本或透過 Azure 入口網站 建立 Service Fabric 受控叢集時,請使用這些建議: