優化作業工作的建議

適用于此 Azure Well-Architected Framework 效能效率檢查清單建議:

PE:10 優化作業工作。 監視並最小化軟體發展生命週期和其他例行作業對工作負載效能的影響。 這些作業包括病毒掃描、秘密輪替、備份、重新編制資料庫索引,以及部署。

本指南說明優化作業工作的建議。 優化作業工作是將您做為路由工作負載作業一部分執行之工作效果降到最低的程式。 作業活動會使用與工作負載本身相同的計算資源。 如果無法考慮作業工作的影響,可能會導致工作負載遺漏其效能目標。 它也可能會對客戶的工作負載效能造成負面影響。

定義

詞彙 定義
藍綠部署 使用兩個相同環境的部署策略,並控制新部署的流量方向, (綠色部署) 。
資料庫索引重建 卸載並重新建立索引的維護活動。
資料庫索引重新組織 優化目前資料庫索引的維護活動。
資料庫結構描述 資料庫的一般結構及其與其他資料的關聯性。
部署位置 Azure App 服務的功能,可讓您使用自己的主機名稱來部署即時應用程式。
就地升級 升級元件或應用程式的程式,不需要取代元件或將它移轉至新的環境。
基礎結構即程式碼 (IaC) 定義和部署基礎結構的描述性模型,包括網路、虛擬機器、負載平衡器和連線拓撲。

主要設計策略

您必須採取措施,以減少軟體發展生命週期和其他例行作業對工作負載效能的影響。 目標是確保例行作業,例如病毒掃描、秘密輪替、備份、索引優化 (重組或重建) 和部署,不會大幅降低工作負載的效能。

操作工作的帳戶

當您設定效能目標時,請務必考慮操作工作。 藉由將常式、一般和臨機操作工作併入效能目標,您可以確保工作負載有效率地運作。 若要考慮效能目標中的作業工作,以下是需要考慮的一些重點:

  • 識別作業工作。 識別並包含效能目標中相關的作業工作。 常式工作的範例包括病毒掃描、資料庫索引重組、資料庫索引重建、磁片或資料庫備份、憑證輪替、修補作業系統、輪替密碼、輪替 API 金鑰、滲透測試,以及在生產環境中稽核檢閱。

  • 評估效能目標。 評估目前的效能目標,並加以調整,以考慮工作負載特有的作業工作。 這樣做可確保效能目標符合工作負載的作業需求。

最佳化部署

優化部署是指精簡釋放資源和程式碼的程式,以確保順暢的效能和最少的中斷。 它牽涉到規劃、有效的資源散發,以及徹底測試基礎結構即程式碼 (IaC) 和應用程式程式碼,再將其引進即時環境。 部署不足可能會導致工作負載的速度和效率降低、潛在的資源限制,以及作業設定中遭入侵的使用者體驗。 若要優化部署,請考慮下列策略:

評估可接受的停機時間。 如果可接受停機時間,您可以實作優先處理速度和效率的部署策略。 不過,請務必先仔細評估停機對商務需求的影響,再做出該決策。 另一方面,如果無法接受停機時間,您必須實作部署策略,以確保工作負載的持續可用性。 請考慮使用藍綠部署或 Canary 部署等技術,您可以在監視問題時逐漸推出新版本的工作負載。 這些策略有助於將停機時間的影響降到最低,並確保順暢的使用者體驗。

在目前的實例計數部署。 您也應該避免造成立即調整作業的部署。 您不應該將資源部署到具有實例計數的即時系統,因此其會強制系統立即執行調整作業。 例如,基礎結構即程式碼 (IaC) 範本可能不符合部署時所需的實例數目。 它可能會有兩個實例計數,即使目前的已部署環境正在執行八個實例也一樣。 部署會移除六個實例,並對效能造成負面影響。

使用藍綠部署策略。 部署可能會導致服務中斷和停機時間。 若要減輕這些問題,請選取可將效能影響降到最低的部署策略,例如藍綠部署。 這些方法可讓環境之間順暢地轉換,並減少服務中斷的風險。 當您使用藍綠部署方法時,您有兩個不同的環境:藍色和綠色環境。 如果在綠色環境中偵測到任何問題或效能降低,您可以輕鬆地回復到穩定的藍色環境。 此策略可協助您確保最短的停機時間,並可讓您維護工作負載的高階效能。 若要使用藍綠方法來部署,請遵循下列一般步驟:

  • 部署新的環境。 使用應用程式的更新版本,設定新的環境 (綠色) 與現有環境 (藍色) 。

  • 驗證新的環境。 部署可能會造成延遲並增加回應時間。 請考慮在完全移轉之前預先處理實例。 預先處理牽涉到藉由模擬類似生產環境的流量和工作負載來準備新的環境,以確保環境已準備好處理預期的負載。 這有助於將延遲和回應時間的影響降到最低。 徹底測試並驗證新的環境,以確保其運作正確且符合效能期望。 測試有助於準備快取、建立資料庫連結,並確保環境已準備好處理預期的負載。

  • 逐漸轉移流量。 在預先建立並驗證新環境之後,將生產流量從舊環境 (藍色) 逐漸轉移到新的環境, (綠色) 。 一開始,將少量流量導向綠色環境,並在驗證其穩定性和預期的應用程式健康情況之後逐漸增加。 您可以使用全域負載平衡器或流量管理機制。 受控制的流量轉移可讓您提早識別任何效能問題,並在將工作負載完全轉換至新環境之前採取更正動作。

  • 監視和優化。 部署可能會使用共用運算資源。 在您轉移流量之後,持續監視新環境的效能和健康情況。 進行任何必要的優化或調整,以確保所需的效能和使用者體驗。

  • 移除舊環境。 成功將所有流量轉換為綠色環境之後,請從現有的連線中移除藍色環境。 此步驟有助於優化維護舊環境的成本,並確保新環境沒有設定漂移。

  • 重複此程式。 針對未來的部署,請反轉藍色和綠色環境的角色。 將變更部署至新的藍色環境、驗證變更、協調流量轉換,以及解除委任舊的綠色環境。

使用多個組建。 不同類型的組建可協助您優化建置時間,並確保部署的品質。 例如,您可以讓持續整合 (CI) 組建觸發每個程式碼認可。 您可以有夜間組建定期執行自動化測試,以及用來部署至生產環境的發行組建。 每種組建類型都應該有特定用途,例如持續整合、自動化測試或生產部署。 在部署之前測試及驗證工作負載,有助於在開發程式初期找出並解決問題或錯誤。

請考慮功能旗標。 功能旗標用於軟體發展,以控制應用程式中特定功能的可見度和行為。 開發人員可以使用功能旗標來啟用或停用特定功能,而不需要重新部署應用程式。 功能旗標的運作方式是在程式碼中引進條件式邏輯,以判斷是否應該啟用或停用功能。 此邏輯可以根據各種因素,例如使用者角色、使用者喜好設定或開發小組所定義的特定條件。 開發人員可以使用功能旗標,逐漸將新功能推出至使用者子集,或針對特定群組啟用功能,以測試 (Canary 測試) 。

優化升級

就地升級是升級至現有的資源或應用程式。 就地升級可能會暫時讓工作負載變慢或中斷。 請務必確保升級與工作負載相容。 在套用升級之前,我們建議您在個別的環境中進行測試,以找出任何潛在的問題。 在升級程式期間發生任何問題時,請提供復原計畫。 在套用升級之前,請務必先完整備份重要資料和組態。 在升級之後密切監視升級的系統,以確保一切如預期般運作。 如果您需要,備份可讓您還原到良好的狀態。 您應該排定在離峰時段的升級排程優先順序,以將使用者和工作負載效能的影響降到最低。 事先通知使用者計畫升級,包括預期的停機時間,以及他們需要採取的任何必要動作。

取捨:等候在離峰時段執行作業活動可能會影響作業效率。 讓具備適當技能集的人員在離峰期間工作可能較不方便。

優化工具

檔案完整性監視、病毒掃描、入侵偵測和其他作業工作的基本工具可能會影響工作負載效能。 它們會耗用計算資源,並可增加延遲和效能額外負荷。 您必須測試並瞭解工具對工作負載效能的影響。 根據測試結果,您應該微調工具組態、調整掃描頻率,以及重新配置計算資源。 針對病毒掃描,您可以建立相關的排除清單,以將掃描持續時間降到最低。

優化資料庫作業

優化資料庫作業是指精簡和微調資料庫工作的程式,以確保效率上限和資源使用率降到最低。 這些作業包括備份、架構變更、效能微調和監視等工作。 有效率的資料庫作業會導致更快速的查詢回應、降低系統額外負荷,以及整體更順暢的使用者體驗。

架構變更牽涉到修改資料庫的結構,例如新增或改變數據表、資料行或索引。 這些變更可能需要在部署程式期間額外處理和資源使用率,而可能會影響工作負載的整體效能。 架構變更可能會中斷作用中查詢、索引或交易的效能,或造成資料無法使用。

若要將這些效果降到最低,您應該在非生產環境中規劃和測試架構變更。 您可以使用各種部署技術來實作架構更新。 您也應該使用可用的架構變更工具來優化程式。 封存資料和資料分割有助於減少架構變更的影響。

優化備份

備份會耗用工作負載資源,例如處理能力、網路頻寬和磁片 I/O。 您必須測試並選取可最小化這些效果的備份策略。 您應該在離峰時間執行備份, 您的策略應該包含增量備份,而不是每次進行完整備份。 快照集的資源耗用量可能比備份少。 您應該考慮內建平臺備份和還原功能,而不是建置自訂解決方案。 您需要測試這些選項,並使用可為工作負載提供最佳效能的組合。

優化監視和偵錯

過度或未實作的記錄、遙測、檢測和分散式追蹤擷取和收集可能會影響效能。 同樣地,遠端偵錯等便利性功能也會影響效能。 您必須測量並知道其對環境的效能影響。 您不希望這些進程降低效能。 您應該設定或停用效能效果超過其優點的任何進程。

Azure 設施

考慮作業工作Azure DevOps 是一組開發工具和服務,可讓小組有效率地規劃、開發、測試及提供軟體。 其中包含版本控制、持續整合和傳遞、專案管理等功能。

Azure 提供服務對服務整合,可將許多作業工作的效果降到最低。 例如,與 Azure 金鑰保存庫整合的服務通常支援順暢的憑證輪替或秘密輪替,以將效能的影響降到最低。

優化部署:App Service提供部署位置。 您可以使用部署位置將程式碼部署到非生產環境。 您可以在兩個部署位置之間交換應用程式內容和設定元素。 例如,您可以將應用程式內容從非生產位置切換至生產位置。

Azure Front Door 和 Azure 流量管理員可讓您實作 藍綠部署策略。 某些 Azure 計算服務也支援進階部署策略,例如藍綠部署。 您可以將這些服務與流量轉移或實例變動策略結合,以減輕部署的效能影響。

優化資料庫作業Azure SQL資料庫會自動進行完整備份、差異備份和交易記錄備份。 Azure Cosmos DB 會定期自動備份您的資料。 自動備份會進行,而不會影響資料庫作業的效能或可用性。 Azure Cosmos DB 會將備份儲存在不同的儲存體服務中。

優化備份:某些 Azure 資料服務支援對時間點復原和編制索引的低效能影響。 Azure 備份是可靠且可調整的雲端式備份解決方案,可讓您保護資料和應用程式。 它提供累加備份、壓縮和加密等功能,以將備份作業期間的效能影響降到最低。 Azure Site Recovery藉由將應用程式複寫至次要位置,協助您保護應用程式。 它提供連續複寫和自動化容錯移轉功能,以將備份和災害復原作業期間的停機時間和效能影響降到最低。

效能效率檢查清單

請參閱一組完整的建議。