選取正確服務的建議
適用於此 Azure Well-Architected Framework 效能效率檢查清單建議:
PE:03 | 選取正確的服務。 服務、基礎結構和階層選擇必須支援您能夠達到工作負載的效能目標,並容納預期的容量變更。 選取專案也應該考慮使用平臺功能或建置自定義實作的優點。 |
---|
本指南說明為工作負載選取適當服務的建議。 下列建議可協助您選擇最符合工作負載需求的服務。 當您使用設計來處理工作負載需求的服務時,您可以確定您的工作負載符合您的效能目標。 如果您選擇不適當的工作負載服務,服務可能無法處理工作負載的需求。 服務不足可能會導致回應時間變慢、瓶頸或工作負載失敗。
定義
詞彙 | 定義 |
---|---|
可用性區域 | 區域內的數據中心分隔群組。 每個可用性區域彼此無關,具有自己的電源、冷卻和網路基礎結構。 許多區域都支援可用性區域。 |
計算服務 | 服務,提供執行應用程式所需的基礎結構。 |
資料庫服務 | 服務,可為您的應用程式提供關係型和非關係資料庫。 |
基礎結構 | 雲端運算的實體元件,以及元件的地理位置。 |
基礎結構即服務 (IaaS) | 客戶負責操作系統、身分識別、應用程式和網路服務的服務。 |
平台即服務 (PaaS) | 雲端服務提供者負責操作系統的服務。 雲端服務提供者與客戶共用管理身分識別、應用程式和網路的責任。 |
區域 | 包含一組數據中心的地理周邊。 |
資源 | 您可以在雲端服務提供者內建立、設定及利用的單一實體或元件。 |
服務 | 來自雲端服務提供者的產品或供應專案。 |
庫存單位 (SKU) | Azure 服務的服務層級。 |
儲存體服務 | 提供物件、區塊和檔案記憶體的服務。 |
主要設計策略
您選擇的服務應該與工作負載的效能目標一致,並適應未來的容量需求。 隨著工作負載擴展或演進,您使用的服務應該符合您的效能標準,而不需要進行重大調整。 請考慮平臺功能和自定義實作之間的平衡。 平臺功能提供立即的解決方案,但自定義建置的選項提供精確的量身打造。 您的服務選擇應該是順向思考,並針對您的特定需求量身打造,並考慮便利性與自定義之間的取捨。
瞭解工作負載需求
瞭解工作負載需求是指瞭解工作負載的技術與功能需求。 此分析有助於判斷執行工作負載所需的資源、記憶體、計算、網路和其他規格。 讓服務符合工作負載的特定需求,有助於防止過度布建或使用量過低的資源。
評估工作負載的需求和特性,以判斷需求,並將工作負載需求與每個層級的效能目標保持一致。 您必須考慮條件約束或相依性。 當您瞭解工作負載需求時,您可以做出明智的決策。 您可以判斷正確的基礎結構,並實作處理尖峰負載或需求變化的策略。
符合效能目標。 選取可讓您符合工作負載效能目標的服務。 請確定服務可以支援效能需求,而且您可以監視其效能。 收集重要元件的效能數據。
請考慮組織限制。 熟悉貴組織對所部署服務可能具有的限制。 當您設計解決方案時,請考慮這些限制。
請考慮合規性和安全性需求。 合規性和安全性需求可能會影響您選取的服務與組態。 請確定您選擇的服務符合與記憶體、加密、存取控制、稽核記錄和資料位置相關的需求。
請考慮小組技能。 您的小組會建置和維護工作負載。 不同的服務需要不同的技能。 選擇小組知道如何使用的服務,或在選擇服務之前認可訓練服務。 請確定小組成員擁有專業知識和知識,以有效地使用服務並優化其效能。
取捨:特製化服務提供特定功能,但可能會限制自定義。 相較於特製化服務,彈性資源需要更多管理和設定。 受控服務可讓您輕鬆管理,但相較於自我管理的資源,您可能對基礎結構沒有控制權。
瞭解服務
瞭解服務是了解廠商工具和供應專案的功能、限制和功能。 瞭解服務可協助您使用內建功能,減少複雜自定義解決方案的需求,並提升效能效率。
在選擇服務之前,請考慮各種因素並全面瞭解服務。 研究及評估提供者所提供的服務和工具。 判斷哪些服務和工具最符合您的工作負載需求。 請考慮受控服務、無伺服器選項和特製化服務等因素。
瞭解服務限制
服務限制是服務提供者設定的預先定義臨界值或界限。 服務限制會定義該服務內資源或功能的最大使用量。 當您熟悉服務限制時,可以避免資源爭用、效能降低或非預期的服務中斷等問題。 您可以適當地規劃和調整基礎結構。 您的規劃會考慮數據量、處理容量和數據落地需求等因素。
偏好平臺功能
偏好平臺功能是使用提供者所提供的內建功能來處理特定工作,而不需自定義程序代碼。 廠商會設計平臺功能,以大規模有效地處理特定工作,並定期維護這些功能。 平臺功能可讓您更充分運用雲端基礎結構功能。 選擇可讓您將功能卸除至平台的服務,而不是撰寫和維護您自己的自定義程序代碼。 在許多情況下,平臺即服務 (PaaS) 解決方案提供比自定義程式碼更好的效能效率。 自定義程式代碼會增加複雜性,並讓工作負載容易發生效能問題。 只有在服務功能不足時,才開發自定義程序代碼。
取捨:最適合您工作負載的服務可能是您的小組未具備技能、無法承受的技術,或可能需要額外的安全性層級。 例如,公用負載平衡器可能會符合您的效能需求。 但如果您沒有 Web 應用程式防火牆,您可能必須部署防火牆來保護工作負載。
評估基礎結構需求
資源的效能效率會系結至其所在的基礎結構。 它讓選取正確的基礎結構對於服務效能效率至關重要。 評估基礎結構需求表示識別最適合支援工作負載的地理區域和可用性區域。 此決策的重要考慮包括:
了解區域和可用性區域。 每個區域都會對應至不同的地理位置。 可用性區域代表指定區域內的個別實體數據中心。
單一區域與多個區域部署模型。 單一區域部署模型會在單一區域中部署所有資源。 多個區域部署模型會跨多個區域部署資源。 多區域部署可以降低終端用戶的延遲,並降低容量限制。 不過,它也可以增加工作負載的成本和複雜度。 選擇最適合您工作負載需求的部署模型。
瞭解可用的功能。 不同的區域有不同的可用功能,例如服務和可用性區域的數目。 先了解區域中可用的功能,再加以選取。 請確定區域符合您的工作負載效能需求。
請考慮延遲。 延遲,數據從來源到目的地所花費的時間,會增加彼此之間的進一步服務。 跨區域或可用性區域通訊的服務可能會面臨更高的延遲。 建議您識別經常通訊並將其定位在相同區域內的服務。 此外,選取與主要使用者基底相等的區域,可將延遲降到最低,提供更好的用戶體驗。
了解數據中心對應。 可用性區域可能不會一致地對應到不同訂用帳戶的相同數據中心。 例如,「訂用帳戶 A」中的「區域 1」可能與「訂用帳戶 B」中的「區域 1」不同。 使用多個訂用帳戶操作時,您應該知道這些對應,以選取以最佳方式提升效能的區域。
評估網路需求
評估您的網路需要判斷適當的工作負載服務和設定。 請確定網路可以支援您的工作負載。 若要評估網路需求,請考慮:
了解網路流量。 評估工作負載的預期網路流量。 了解數據傳輸需求和網路要求的頻率。
瞭解頻寬需求。 判斷工作負載的頻寬需求。 請考慮透過網路傳輸和接收的數據量。
了解網路等待時間。 評估工作負載所需的延遲。 使用私人虛擬網路和骨幹網路,而不是周遊公用因特網。 這項技術可減少工作負載的延遲。
瞭解輸送量。 請考慮工作負載所需的輸送量。 輸送量是指可在指定時間內透過網路傳輸的數據量。 設定網路路由選項,以利用網路輸送量優點。
取捨:私人虛擬網路會限制公用存取,並難以部署和管理資源。
評估計算需求
評估計算需求牽涉到評估工作負載的特定計算需求,包括實例類型、延展性和容器化等因素。 不同的計算服務有不同的功能和特性,可能會影響工作負載的效能。 選取最佳計算服務,以確保工作負載有效率地執行。 請考慮下列策略:
了解實例類型。 不同的實例類型會針對不同的工作負載進行優化,例如CPU優化、記憶體優化和 GPU 實例。 選擇符合您需求的實例類型。
請考慮自動調整。 如果您的工作負載具有可變需求,請考慮具有自動調整功能的計算服務,以根據需求自動調整計算容量。 自動調整有助於確保您在尖峰時間有足夠的資源,並防止在低需求期間過度布建。
請考慮容器化。 相較於非容器化工作負載,容器可提供效能優勢。 如果容器化符合您的架構需求,請考慮使用容器化。 容器可透過隔離、資源效率、快速啟動時間和可移植性來改善計算效能。
當您使用容器時,請考慮設計因素,例如將所有應用程式元件容器化。 針對輕量型映像使用以Linux為基礎的容器運行時間。 為容器提供簡短生命週期,使其不可變且可取代。 從容器、容器主機和基礎叢集收集相關的記錄和計量。 使用此數據來監視和分析效能。 容器只是整體架構的一個元件。 選擇適當的容器協調器,例如 Kubernetes,以進一步增強效能和延展性。
容器權益 Description 隔離性 容器會為應用程式提供隔離的環境。 容器可確保應用程式資源不會彼此干擾。 此隔離可確保指派給容器的計算資源專用於執行特定應用程式,進而提升效能。 資源效率 容器是輕量型的,並共用主機操作系統的核心,這可讓您有效率的資源使用率。 多個容器可以在相同的虛擬化基礎結構上執行,以最大化計算資源的使用。 快速啟動時間 容器映射已預先建置,並在需要時快速啟動。 這個快速啟動時間可讓您快速延展性。 它可讓應用程式視需要相應增加或減少,並避免效能瓶頸。 可攜性 容器會封裝映像內所有必要的相依性和連結庫。 使用容器時,將應用程式移至不同的操作系統或環境會比較容易。 此可移植性可讓您彈性地部署應用程式,並允許在雲端提供者或內部部署環境之間輕鬆移轉。 選擇適當的層。 在每個計算服務中,您可以設定計算容量、選取功能,以及啟用功能。 根據您的效能目標,為您的計算服務選擇適當的服務層級。
判斷實例計數。 判斷工作負載所需的最小實例計數。 即使負載最少,某些工作負載也需要一個以上的計算資源實例。 據以設定最小實例計數。
評估負載平衡需求
負載平衡可確保網路流量平均散發,並防止任何單一伺服器因要求而造成負擔。 負載平衡有助於防止瓶頸,並減少響應時間。 評估雲端提供者提供的不同負載平衡服務。 檢閱雲端提供者的文件和比較工具,以了解這些功能。 選取最適合您工作負載的服務。 若要選取負載平衡服務,請考慮:
瞭解流量類型:判斷負載平衡服務是否需要處理 Web 流量,例如 HTTP 和 HTTPS 或其他通訊協定,例如傳輸控制通訊協定 (TCP) 或使用者數據報通訊協定 (UDP) 。
瞭解全域或區域路由:判斷您的工作負載是否需要在特定區域內或跨多個區域進行負載平衡。
瞭解服務等級目標 (SLA) :請考慮服務等級協定 (SLA) 。 不同的負載平衡服務提供不同的效能層級。
瞭解功能:請考慮提供網站加速、最佳流量分配和低延遲層 4 負載平衡的負載平衡服務。
評估數據存放區需求
評估數據存放區需求是評估儲存、擷取和管理數據的特定需求和條件。 此評估會考慮數據量、存取速度、一致性和持久性等因素。 根據不同的商務和技術需求,工作負載可能需要多種類型的數據存放區。 識別正確的數據存放區服務和適當的實作有助於防止瓶頸,並確保快速存取數據。
評估資料庫需求
資料庫可能會影響數據儲存和擷取、事務處理、一致性保證,以及處理大型或快速變更數據等因素。 評估資料庫的需求和準則。 選取可符合這些需求的資料庫系統。 選擇資料庫之前,請先評估資料庫需求。 若要評估資料庫需求並選擇適當的資料庫,請遵循下列步驟:
識別工作負載需求。 瞭解工作負載的特定需求,例如數據量、預期的交易速率、並行、數據類型和預期的成長。 根據您的工作負載需求評估不同的資料庫系統。 例如,如果您的工作負載需要高效能的即時數據處理,您可能會選擇針對快速數據擷取和低延遲優化的資料庫系統。
請考慮數據模型。 判斷最適合您工作負載的數據模型。 評估資料庫需求,以確保所選的資料庫支援所需的數據結構、關聯性和完整性條件約束。 例如,如果您的數據具有高度關係結構,您可以選擇使用關係資料庫管理系統, (RDBMS) ,以提供強固的交易和引用完整性支援。 數據模型可能是階層式、網路、關係型、面向物件或 NoSQL。 評估數據模型的複雜性。 請確定所選的資料庫支援必要的數據結構和關聯性。
評估功能。 請考慮讀取/寫入模式、查詢複雜度、延遲需求和延展性需求等因素。 據以評估不同資料庫系統的效能功能。 有些資料庫在大量讀取的工作負載中是 Excel,而其他資料庫則是針對大量寫入或分析工作負載進行優化。
評估負載。 請考慮數據量、交易速率、讀取/寫入比率和預期成長等因素。 選擇可處理預期工作負載的資料庫,以確保順暢的作業,並避免在調整工作負載時發生效能瓶頸。 請考慮工作負載的延展性需求。 這些需求包括預期的數據成長、並行使用者存取,以及水準或垂直調整的需求。 評估不同資料庫系統所提供的延展性選項和可用性功能。
評估記憶體需求
選擇符合數據存取模式、持久性需求和效能需求的記憶體服務。 大部分的雲端工作負載都會使用記憶體技術的組合。 這項技術稱為 polyglot 持續性方法。 為您的工作負載決定適當的記憶體服務組合。 您可能也想要分隔數據以避免發生干擾。 例如,您可能會有個別的記憶體帳戶來監視數據和商務數據。 選擇正確的混合和正確的實作對於優化應用程式效能很重要。
評估快取需求
快取會儲存經常存取的數據。 快取可減少數據存取延遲,並降低數據記憶體元件上的負載。 它可讓工作負載在不調整的情況下處理更多要求。 快取工作負載數據和靜態內容很常見。 Redis 快取可以儲存會話數據、資料庫結果、API 回應和參考數據,例如組態設定。 內容傳遞網路或靜態 Web 應用程式可以快取及提供靜態內容。 請考慮快取數據以改善工作負載效能。 為您的工作負載選擇正確的快取選項,偏好使用平臺快取服務,例如 Azure Redis 快取,而非自定義或自我裝載的服務。
Azure 設施
瞭解需求:使用 Azure 監視器 從您的工作負載收集及分析數據。 監視可讓您識別和疑難解答問題的工作負載效能和健康情況。
瞭解和評估服務:檢閱 Azure 服務和產品 ,以判斷它們是否符合您的效能需求。 Azure 提供數個可完成相同結果的服務。 您可以彈性地將您選擇的服務與效能需求、小組技能集和成本需求保持一致。
如需最常見的 Azure 限制清單,請參閱 Azure 訂閱和服務限制、配額與限制。
查詢限制和配額範例示範如何查詢常用資源的限制和配額。
Azure 有許多服務可以容納任何工作負載。 檢閱每個服務類型的 選取指引 ,以協助您根據需求簡化選取範圍。 請參閱下列指南以選擇:
相關連結
效能效率檢查清單
請參閱一組完整的建議。