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