適用於此 Azure Well-Architected 架構效能效率檢查清單建議:
| PE:10 | 優化作業工作。 監視和最小化軟體開發生命週期和其他例行作業對工作負載效能的影響。 這些作業包括病毒掃描、秘密輪替、備份、重新編製資料庫索引,以及部署。 |
|---|
本指南說明優化作業工作的建議。 最佳化作業作業是將您在例行工作量作業中執行之作業影響降到最低的程序。 作業活動使用與工作負載本身相同的運算資源。 未考慮作業任務的影響可能會導致工作負載未達到其效能目標。 它也可能會對客戶的工作負載效能造成負面影響。
定義
| 術語 | 定義 |
|---|---|
| 藍綠部署 | 使用兩個相同環境的部署策略,並控制新部署的流量方向(綠色部署)。 |
| 資料庫索引重建 | 刪除並重新建立索引的維護活動。 |
| 資料庫索引重組 | 優化目前資料庫索引的維護活動。 |
| 資料庫結構描述 | 資料庫的一般結構及其與其他數據的關聯性。 |
| 部署位置 | Azure App Service 的一項功能,可讓您使用自己的主機名來部署即時應用程式。 |
| 就地升級 | 升級元件或應用程式的過程,並不需要取代該元件或將其遷移至新的環境。 |
| 基礎結構即程式代碼 (IaC) | 定義和部署基礎結構的描述性模型,包括網路、虛擬機、負載平衡器和聯機拓撲。 |
您必須採取措施,以減少軟體開發生命週期和其他例行作業對工作負載效能的影響。 目標是確保病毒掃描、秘密輪替、備份、索引優化(重組或重建)和部署等例行作業不會大幅降低工作負載的效能。
作業工作的帳戶
設定績效目標時,務必考慮營運相關任務。 藉由將例程、一般和臨機作工作併入效能目標,您可以確保工作負載有效率地運作。 若要考慮效能目標中的作業工作,以下是需要考慮的一些重點:
識別操作任務。 識別並納入效能目標的相關作業工作。 例程工作的範例包括病毒掃描、資料庫索引重組、資料庫索引重建、磁碟或資料庫備份、憑證輪替、修補作系統、輪替密碼、輪替 API 密鑰、滲透測試和生產中的稽核檢閱。
評估效能目標。 評估目前的效能目標,並調整它們以考慮工作負載特有的作業工作。 這樣做可確保效能目標符合工作負載的作需求。
最佳化部署
優化部署是指優化釋放資源和程式碼的過程,以確保無縫的效能和最少的中斷。 它涉及規劃、有效的資源分配,以及完整測試基礎設施即代碼(IaC)和應用程式代碼,然後再將其引入生產環境。 部署不足可能會導致工作負載的速度和效率降低、潛在的資源限制,以及在運作環境中用戶體驗受到影響。 若要優化部署,請考慮下列策略:
評估可接受的停機時間。 如果可以接受停機時間,您可以實作排定速度和效率優先順序的部署策略。 不過,請務必在做出決策之前,先仔細評估停機時間對商務需求的影響。 另一方面,如果無法接受停機時間,您需要實作部署策略,以確保工作負載持續可用性。 請考慮使用藍綠部署或金絲雀部署等技術,在監控可能出現的問題時逐步推出任務的新版本。 這些策略有助於將停機時間的影響降到最低,並確保順暢的用戶體驗。
以目前的實例數量進行部署。 您也應該避免導致立即擴展操作的部署。 您不應該將資源部署到實例數量如此低的正在運行的系統,這會迫使系統立刻執行擴展操作。 例如,基礎結構即程序代碼 (IaC) 範本可能不符合部署時所需的實例數目。 雖然目前的部署環境正在運行八個實例,其實例數量可能只有兩個。 部署會移除六個實例,並對效能造成負面影響。
使用藍綠部署策略。 部署可能會導致服務中斷和停機時間。 若要減輕這些問題,請選取可將效能影響降到最低的部署策略,例如藍綠色部署。 這些方法可讓您在環境之間順暢地轉換,並降低服務中斷的風險。 當您使用藍綠部署方法時,您會有兩個不同的環境:藍色和綠色環境。 如果在綠色環境中偵測到任何問題或效能降低,您可以輕鬆地回復到穩定的藍色環境。 此策略可協助您確保最短的停機時間,並可讓您維護工作負載的高效能。 若要使用藍色-綠色方法進行部署,請遵循下列一般步驟:
部署新的環境。 使用應用程式的更新版本,設定新的環境 (綠色) 與現有的環境 (藍色)。
驗證新的環境。 部署可能會帶來延遲並增加回應時間。 考慮在切換前預熱實例。 前置處理牽涉到藉由模擬類似生產環境的流量和工作負載來準備新的環境,以確保環境已準備好處理預期的負載。 這有助於將延遲和回應時間的影響降到最低。 徹底測試並驗證新的環境,以確保其運作正確且符合效能預期。 測試可協助熱身快取、建立資料庫連線,並確保環境已準備好處理預期的負載。
逐漸轉移流量。 新環境預先驗證后,逐漸將生產流量從舊環境(藍色)轉移到新環境(綠色)。 一開始,將少量的流量導向至綠色環境,並在驗證其穩定性和預期的應用程式健康情況后逐漸增加。 您可以使用全域負載平衡器或流量管理機制。 受控制的流量轉移可讓您儘早找出任何效能問題,並在將工作負載完全轉換至新環境之前採取更正動作。
監視和優化。 部署可能會使用共用計算資源。 在您轉移流量之後,持續監視新環境的效能和健康情況。 進行任何必要的優化或調整,以確保所需的效能和用戶體驗。
拿掉舊環境。 成功將所有流量轉換至綠色環境之後,請從現有的連線中移除藍色環境。 此步驟有助於將維護舊環境的成本優化,並確保新環境沒有設定漂移。
重複此過程。 針對未來的部署,請將藍色和綠色環境的角色進行互換。 將變更部署到新的藍色環境,驗證它們,引導流量轉換,並停用舊的綠色環境。
使用多個版本。 不同類型的組建可協助您優化建置時間,並確保部署品質。 例如,您可以透過每個程式碼提交來觸發持續整合(CI)組建。 您可以讓夜間組建定期執行自動化測試,以及發行用於部署至生產環境的組建。 每種組建類型都應該有特定用途,例如持續整合、自動化測試或生產部署。 在部署前測試及驗證工作負載,有助於識別並解決開發程式中的問題或錯誤。
請考慮功能旗標。 功能旗標用於軟體開發,以控制應用程式中特定功能的可見度和行為。 開發人員可以使用功能旗標來啟用或停用特定功能,而不需要重新部署應用程式。 功能旗標的運作方式是在程式碼中引進條件式邏輯,以判斷是否應該啟用或停用功能。 此邏輯可以根據各種因素,例如使用者角色、用戶喜好設定,或開發小組所定義的特定條件。 開發人員可以使用功能旗標,逐漸向使用者子集推出新功能,或針對特定群組啟用功能進行測試(Canary 測試)。
優化升級
就地升級是升級至現有的資源或應用程式。 就地升級可能會暫時讓工作負載變慢或中斷。 請務必確保升級與工作負載相容。 在套用升級之前,建議您在個別的環境中進行測試,以找出任何潛在的問題。 在升級程式期間發生任何問題時,請提供復原方案。 在套用升級之前,請務必先完整備份重要數據和組態。 在升級之後密切監視升級的系統,以確保一切如預期般運作。 如果您需要,備份可讓您還原到良好的狀態。 您應該在離峰時段排定升級的優先順序,以將使用者和工作負載效能的影響降到最低。 事先通知使用者規劃的升級,包括預期的停機時間,以及他們需要採取的任何必要動作。
取捨:等待在離峰時段執行作業活動可能會影響營運效率。 讓具備適當技能的人員在離峰時段工作可能比較不方便。
優化工具
檔案完整性監視、病毒掃描、入侵檢測和其他作業工作的基本工具可能會影響工作負載效能。 它們會耗用計算資源,並可增加延遲和效能額外負荷。 您必須測試及瞭解工具對工作負載效能的影響。 根據測試結果,您應該微調工具組態、調整掃描頻率,以及重新配置計算資源。 針對病毒掃描,您可以建立相關的排除清單,以將掃描持續時間降到最低。
優化資料庫作業
優化資料庫作業是指精簡和微調資料庫工作的程式,以確保最大效率和最少的資源使用率。 這些作業包括備份、架構變更、效能微調和監視等工作。 有效率的資料庫作業會導致更快的查詢回應、降低系統額外負荷,以及整體更順暢的用戶體驗。
架構變更牽涉到修改資料庫的結構,例如加入或改變數據表、數據行或索引。 這些變更可能在部署過程中需要額外的處理和資源使用,可能會影響工作負載的整體效能。 架構變更可能會中斷作用中查詢、索引或交易的效能,或導致數據無法使用。
若要將這些效果降到最低,您應該在非生產環境中規劃和測試架構變更。 您可以使用各種部署技術來實作架構更新。 您也應該使用可用的架構變更工具來優化程式。 封存數據和數據分割有助於減少架構變更的影響。
優化備份
備份會耗用工作負載資源,例如處理能力、網路頻寬和磁碟 I/O。 您必須測試並選取可將這些效果降到最低的備份策略。 您應在離峰時段進行備份,但要在您方便的時候進行。 您的策略應該包含增量備份,而不是每次進行完整備份。 快照集的資源耗用量可能比備份少。 您應該考慮內建平臺備份和還原功能,而不是建置自定義解決方案。 您需要測試這些選項,並使用可為工作負載提供最佳效能的組合。
優化監視和偵錯
過度或未實作的記錄、遙測、檢測和分散式追蹤擷取和收集可能會影響效能。 同樣地,遠端偵錯等便利性功能也會影響效能。 您需要測量並瞭解其對環境的效能影響。 您不希望這些進程降低效能。 您應該設定或停用其效能影響超過其優點的任何進程。
Azure 支援服務
作業工作的會計: Azure DevOps 是一組開發工具和服務,可讓小組有效率地規劃、開發、測試及提供軟體。 它包含版本控制、持續整合和傳遞、專案管理等功能。
Azure 提供服務對服務整合,可將許多作業工作的影響降到最低。 例如,與 Azure Key Vault 整合的服務通常支援順暢的憑證輪替或秘密輪替,以將效能的影響降到最低。
優化部署:App Service 提供 部署位置。 您可以使用部署位置將程式代碼部署到非生產環境。 您可以在兩個部署位置之間交換應用程式內容和組態元素。 例如,您可以將應用程式內容從非生產位置切換至生產位置。
Azure Front Door 和 Azure 流量管理員可讓您實作 藍綠部署策略。 某些 Azure 計算服務也支援進階部署策略,例如藍綠部署。 您可以將這些服務與您的流量轉移或實例變暖策略結合,以減輕部署的效能影響。
優化資料庫作業: Azure SQL Database 會自動進行完整備份、差異備份和事務歷史記錄備份。 Azure Cosmos DB 會定期自動備份您的數據。 系統會進行自動備份,而不會影響資料庫作業的效能或可用性。 Azure Cosmos DB 會將備份儲存在個別的記憶體服務中。
優化備份:某些 Azure 數據服務支援對時間點復原和編製索引的低to-no 效能影響。 Azure 備份是可靠且可調整的雲端式備份解決方案,可讓您保護數據和應用程式。 它提供增量備份、壓縮和加密等功能,以將備份作業期間的效能影響降到最低。 Azure Site Recovery 可藉由將應用程式復寫至次要位置,協助您保護應用程式。 它提供持續復寫和自動化故障轉移功能,以將備份和災害復原作業期間的停機時間和效能影響降到最低。
管理商務持續性和災害復原:您也可以使用 Azure 商務持續性中心 ,使用統一的 Web 介面簡化備份和災害復原管理,以設定備份、設定保護原則、監視作業,以及檢閱各種環境的設定。
相關連結
效能效益檢查清單
請參閱一組完整的建議。