持續(xù)監(jiān)視是指在DevOps和IT運營生命周期的每個階段中整合監(jiān)視功能所要采用的流程和技術(shù)。它有助于持續(xù)確保應用程序和基礎(chǔ)結(jié)構(gòu)在從開發(fā)環(huán)境轉(zhuǎn)移到生產(chǎn)環(huán)境時保持正常的運行狀況、性能和可靠性。持續(xù)監(jiān)視構(gòu)建在持續(xù)集成和持續(xù)部署(CI/CD)的概念基礎(chǔ)之上。CI/CD可幫助你更快、更可靠地開發(fā)和交付軟件,為用戶持續(xù)提供價值。
Azure Monitor是Azure中的統(tǒng)一監(jiān)視解決方案,可跨云中和本地的應用程序與基礎(chǔ)結(jié)構(gòu)觀察整個堆棧。它可以在開發(fā)和測試過程中無縫配合Visual Studio和Visual Studio Code,并可以在部署和運營過程中與Azure DevOps相集成,以提供發(fā)布管理和工作項管理。它甚至可跨所選的ITSM和SIEM工具集成,以幫助跟蹤現(xiàn)有IT流程中的問題和事件。
本文介紹使用Azure Monitor在整個工作流中啟用持續(xù)監(jiān)視的具體步驟。其中還包含了詳細介紹如何實施不同功能的其他文檔的鏈接。
為所有應用程序啟用監(jiān)視
若要觀察整個環(huán)境,需在所有Web應用程序和服務中啟用監(jiān)視。這樣,便可以輕松可視化所有組件中的端到端事務和連接。
Azure DevOps Projects提供一種簡化的體驗,在其中可以使用現(xiàn)有的代碼和Git存儲庫,或者選擇一個示例應用程序,來與Azure建立持續(xù)集成(CI)和持續(xù)交付(CD)管道。
使用DevOps發(fā)布管道中的持續(xù)監(jiān)視可以基于監(jiān)視數(shù)據(jù)限制或回滾部署。
使用Status Monitor可以配合Azure Application Insights檢測Windows上的實時.NET應用,而無需修改或重新部署代碼。
如果你有權(quán)訪問應用程序的代碼,則通過安裝適用于.net、.Net Core、Java、Node.js或任何其他編程語言的Azure Monitor Application Insights SDK來啟用對Application Insights的完整監(jiān)視。這樣可以指定與應用程序和業(yè)務相關(guān)的自定義事件、指標或頁面視圖。
為整個基礎(chǔ)結(jié)構(gòu)啟用監(jiān)視
應用程序的可靠性只與其底層基礎(chǔ)結(jié)構(gòu)相當。為整個基礎(chǔ)結(jié)構(gòu)啟用監(jiān)視有助于實現(xiàn)全面的觀察,發(fā)生故障時,還可以更輕松地發(fā)現(xiàn)潛在的根本原因。Azure Monitor可幫助你跟蹤整個混合基礎(chǔ)結(jié)構(gòu)(包括VM、容器、存儲和網(wǎng)絡等資源)的運行狀況與性能。
無需進行任何配置,即可自動從大多數(shù)Azure資源獲取平臺指標、活動日志和診斷日志。
使用用于VM的Azure Monitor為VM啟用更深入的監(jiān)視。
使用用于容器的Azure Monitor為AKS群集啟用更深入的監(jiān)視。
為環(huán)境中的不同應用程序和服務添加監(jiān)視解決方案。
基礎(chǔ)結(jié)構(gòu)即代碼是描述性模型中的基礎(chǔ)結(jié)構(gòu)的管理系統(tǒng),它使用版本控制方式與DevOps團隊用于源代碼管理的方式相同。它提高了環(huán)境的可靠性和可伸縮性,并讓你利用管理應用程序時所用的類似流程。
使用資源管理器模板可以針對大量的資源啟用監(jiān)視和配置警報。
使用Azure Policy可對資源強制實施不同的規(guī)則。這可以確保這些資源始終符合企業(yè)標準和服務級別協(xié)議。
在Azure資源組中合并資源
當今Azure中的典型應用程序包含多個資源,例如,托管在云服務、AKS群集中或Service Fabric中的VM和應用服務或微服務。這些應用程序經(jīng)常利用事件中心、存儲、SQL和服務總線等依賴項。
在Azure資源組中合并資源可以全面洞察構(gòu)成不同應用程序的所有資源。使用用于資源組的Azure Monitor可以方便地跟蹤整個全堆棧應用程序的運行狀況和性能,并可以出于任何調(diào)查或調(diào)試目的深入到相關(guān)組件。
通過持續(xù)部署確保質(zhì)量
使用持續(xù)集成/持續(xù)部署可以根據(jù)自動測試的結(jié)果,將代碼更改自動集成和部署到應用程序。它簡化了部署過程,并確保任何更改在轉(zhuǎn)移到生產(chǎn)環(huán)境之前具有可靠的質(zhì)量。
使用Azure Pipelines可以實現(xiàn)持續(xù)部署,并可以根據(jù)CI/CD測試,自動化將代碼提交到生產(chǎn)環(huán)境的整個流程。
使用質(zhì)量門限可將監(jiān)視功能集成到部署前或部署后的流程。這可以確保應用程序從開發(fā)環(huán)境轉(zhuǎn)移到生產(chǎn)環(huán)境時可以符合關(guān)鍵的運行狀況/性能指標(KPI),并且基礎(chǔ)結(jié)構(gòu)環(huán)境或規(guī)模的任何差異不會對KPI造成負面影響。
在開發(fā)、測試、Canary和生產(chǎn)等不同的部署環(huán)境之間維護獨立的監(jiān)視實例。這可以確保收集的數(shù)據(jù)與關(guān)聯(lián)的應用程序和基礎(chǔ)結(jié)構(gòu)相關(guān)。如果需要跨環(huán)境關(guān)聯(lián)數(shù)據(jù),可以使用指標資源管理器中的多資源圖表,或者在Azure Monitor中創(chuàng)建跨資源查詢。
使用操作創(chuàng)建可操作警報
監(jiān)視的一個重要方面是將任何當前問題和預測到的問題主動通知給管理員。
基于日志和指標在Azure Monitor中創(chuàng)建警報可以識別到可預測的故障狀態(tài)。在使所有警報可操作方面應有一個目標,即,這些警報表示實際的關(guān)鍵狀況,并且應該盡量減少誤報。使用動態(tài)閾值可基于指標數(shù)據(jù)自動計算基線,而無需定義自己的靜態(tài)閾值。
為警報定義操作可以使用最有效的方式來通知管理員??捎玫耐ㄖ僮靼ǘ绦拧㈦娮余]件、推送通知或語音呼叫。
使用更高級的操作可以通過Webhook連接到ITSM工具或其他警報管理系統(tǒng)。
還可以使用Azure自動化Runbook或邏輯應用(可以通過Webhook從警報啟動)來修正警報中識別到的問題。
使用自動縮放可以根據(jù)收集的指標動態(tài)增加和減少計算資源。
準備儀表板和工作簿
確保開發(fā)和運營部門有權(quán)訪問相同的遙測功能和工具可讓他們查看整個環(huán)境中的模式,并最大程度地減小平均檢測時間(MTTD)和平均還原時間(MTTR)。
根據(jù)組織中不同角色的通用指標和日志準備自定義儀表板。儀表板可以合并所有Azure資源的數(shù)據(jù)。
準備工作簿以確保在開發(fā)與運營部門之間分享知識。可將這些工作簿準備為包含指標圖表和日志查詢的動態(tài)報表,甚至可由開發(fā)人員準備為故障排除指南,以幫助客戶支持或運營人員處理基本問題。
持續(xù)優(yōu)化
監(jiān)視是熱門的“構(gòu)建-度量-學習”理念的基本方面,該理念鼓勵持續(xù)跟蹤KPI和用戶行為指標,然后努力通過規(guī)劃迭代對其進行優(yōu)化。Azure Monitor可以幫助收集業(yè)務相關(guān)的指標和日志,并在下一次部署中按需添加新的數(shù)據(jù)點。
使用Application Insights中的工具可以跟蹤最終用戶行為和參與情況。
使用影響分析可以幫助確定優(yōu)先關(guān)注點,以提高重要KPI。