浩鯨云計算科技股份有限公司 版權所有 2003-2023
News
News
什么是SRE
SRE(Site Reliability Engineering)即站點可靠性工程,最初由Google公司提出,通過將開發、運維等多方面進行整合,協同推進系統可靠性,從而確保業務服務能夠持久運行。
這是一種新的模式,與傳統的運維相比,更加強調服務于目標的多維因素整合,通過開發自動化、智能化工具、實時監測等手段,從根本上解決系統穩定性和可靠性問題。
為什么需要SRE
數字經濟的發展日新月異,云計算已經成為企轉數改的重要支撐和推動力量。云計算的優勢無須多講,隨之而至的管理問題亦令人酸爽,本文以云計算平臺管理為目標進展案例性分析。
環境復雜:從云主機、存儲、數據庫、中間件等主要類型向大數據、人工智能、容器、超算、智算等服務及云原生類產品衍生;其分散多樣性以及規模都在不斷增長。
可靠性要求高:作為應用系統的基礎設施,承載了大量的業務;運維的目標就是保障業務安全運行的連續性,杜絕系統崩潰或者服務不可用。
維護成本高:不斷演進的不僅僅是應用,各種云平臺版本和服務類型也需要相應提升。運維團隊及系統的知識、能力和經驗需要快速更迭,才能滿足運維目標要求。
運維協同難:平臺服務日益復雜的應用環境,支撐工作日益繁雜的知識領域,運維團隊日益壯大,運維協同日趨艱難。
SRE的核心原則
《SRE Google運維解密》一書中給出了SRE的經典核心原則,就不再贅述,本文以其為基礎,抽象了幾個核心關鍵點。
可靠性:可靠性應該被賦予與安全等同的重要性,對于每一個服務的設計都是以可靠性為首要目標。
自動化:通過自動化工具和流程來替代手動操作,提高效率和準確性,降低人為錯誤和重復性工作的發生。
監控和告警:對系統進行全面、實時的監控,通過監測關鍵指標輔助SRE團隊快速發現問題,降低故障的影響。
故障演練和容量規劃:通過分析歷史數據,預測系統的資源需求,并進行容量規劃;避免系統出現資源瓶頸。
借鑒行業優秀實踐,并結合云計算業務場景與特性,可以進一步提煉為以下4個核心原則,來組織日常運維工作。
可監控:通過采集業務指標、日志、性能、告警等數據,快速分析與定位問題;準確識別故障,并及時采取措施解決問題。
可預測:通過故障預測來提高系統的可靠性和穩定性。預測故障可以幫助SRE團隊比較早的了解到潛在的問題并及時采取措施。SRE通常會通過數據分析、模擬測試來預測故障。
可協同:將運維操作手冊化、流程化,以便確保運維作業的一致性;提供線上協同工具,當出現問題時能夠快速召集運維專家協同處理問題。
自動化:自動化是SRE方法論的核心,SRE強調盡可能的自動化來提高服務可靠性和生產率。自動化可以減少人為錯誤,提高一致性和重復性,并釋放人力資源進行更有價值的工作。
SRE的核心原則不僅是構建高可靠性、可擴展性和彈性的系統關鍵能力要素,也是塑造運維工作方式的重要基礎。通過遵循SRE的核心原則,能夠快速發現、定位、響應和協同處理問題,同時也能夠主動預防性維護和持續優化,提升系統的運行質量和穩定性。
基于SRE的工具鏈實踐
SRE 的方法固然重要,但沒有強有力的工具鏈來作為支撐,在執行面將面臨步步維艱,因此,建設一套適合自身業務服務場景的SRE工具鏈,是讓SRE實踐得以高效運轉的關鍵。
本文基于SRE 的核心原則,即在“事前”發現潛在問題,“事中”快速定位、處理問題,“事后”持續優化來規避問題。通過實時監控和分析數據,并采用自動化工具套件來減少手動操作,從而縮短故障處理時間,排除潛在故障點,并持續優化服務穩定性。
01
發現問題:準確、實時、全面的運行監測
在云計算環境中,算力服務的運行監控至關重要。開發/運維人員時常面臨以下典型的問題:
監控指標無體系,監控指標覆蓋不全,可配置化程度低。
告警風暴導致預警混亂,分不清需要處理的預警,甚至忽視重要預警。
告警被動響應,無法及時、可信地推送關鍵告警和故障信息,導致故障處理不及時。
預警能力弱,無法提前對潛在的風險或異常行為進行識別和報警。
SRE穩定性治理很重要的一部分就是預警治理,通過監控分層、統一預警配置、統一預警優化配置策略等措施來實現主動預警。從規則驅動向內生智能驅動轉變,提升監控準確性,及時發現隱患。
指標有體系
建立一套全面覆蓋的運維指標體系,通過指標分級的方式,提供豐富的業務監控指標,保障能夠及時的發現問題。
根據對大量指標的分析,定義一套全面覆蓋的指標度量體系。并根據指標的權重、關系以及對應運維人員的權責進行劃定。設計指標時采取場景分類的方法:
脫管、中斷類,定義為核心指標;如設備或者云服務宕機、網絡不可達等。就是關鍵業務及服務指標異常代表業務不可用。通過抓主要矛盾的方法,關注核心路由器、IDC出口、資源池出入口等。
資源過載類,定義為關鍵指標;關鍵指標代表業務運行狀態的健康度,如受到網絡攻擊,對應的網絡流量、資源會發生指標的變化、產生告警,通過這類指標快速發現問題。
運行質量類,定義為重要指標;重要指標代表業務運行質量狀態,如端口抖動、時延造成業務質量不達標等,關注事件的關聯及變化。
信息有關聯
告警的內容過于簡單,會讓處理告警的過程變成一個猜迷游戲,往往需要運維人員重新通過多種手段驗證與推測后,才能確定問題所在。這也是處理告警耗時最多的地方。
影響資源:單機、集群、資源池、相關依賴;
影響業務:核心業務、旁路業務、非核心業;
關聯trace:給出預警問題的一條trace鏈路,相當于把現場還原;
關聯日志:詳細的錯誤日志link能定位到具體代碼和當時的堆棧信息;
關聯告警:關聯的預警信息,方便快速判斷是否由其它關聯問題引起;
異常檢測:通過從推理速度、準確性和參數調整的變異性等多個維度驗證,Matrix Profile算法能夠極大的提高告警的準確度;
智能基線:兼顧多個指標波動變化,預測動態安全區間,準確發現異常。
核心上大屏
從底層物理機到云主機、到中間件、到客戶業務的全鏈路端到端打通。實現業務指標全景監測,確保重大事件及時發現。
通信保障屏,對各類重要保障、風險操作、云主機接入操作、IDC機房入場事件進行過程追蹤發現隱患,提供及時預警手段。
指揮調度屏,當發生重大故障、應急事件時,指揮調度屏可以一鍵發起聯合作戰。
態勢感知屏,對資源池運行質量進行數據分析,提前預測趨勢避免故障發生。
輿情屏,快速識別火災、交通事故、自然災害等熱點事件對資源池、業務、客戶的影響度,跟蹤隱患和提前預案處理。
核心指標屏,核心業務監測指標上屏,發現突發事件、重大故障、網絡攻擊、宕機、運維人員非法操作時;能夠快速的通過大屏做出聲光電告警。
02
定位問題:智能診斷與根因分析
SRE倡導通過預測來提高系統的可靠性和穩定性。預警診斷就是把運維專家腦海中的經驗轉化成規則+多種數據間的潛在關聯性,通過一些智能化的分析手段變成結果輸出。
1) 多維度數據分布鉆取,輔助問題定位
將整個全鏈路的監控數據進行匯聚并統一呈現,出問題時能夠及時發現;同時通過多維度數據分布鉆取,還能輔助問題定位。
2) 基于專家經驗構建因果圖,結合算法根因推斷
結合專家經驗和算法模型,通過構建因果圖實現根因分析,從而識別故障的根本原因。以ECS為例,實例與云服務器的網絡配置、端口通信、防火墻配置、安全組配置等多個環節相關聯。任意一個環節出現問題,都會導致ECS運行實例無法訪問。
ECS訪問異常關聯因素及可能導致的癥狀;從客戶端到服務端的整個鏈路上,可能引發訪問異常的關聯因素如下:
收集其專家經驗和知識,建立因果圖。這些因果關系可能是定性的或定量的,以及直接或間接的。ECS相關聯因素可能導致的癥狀如下:
目標ECS服務器內部環境可能因目標服務器欠費停機、CPU利用率過高、目標服務器內部配置等因素導致訪問異常。對于ECS訪問異常問題,建立故障因果排查圖:
從異常點出發,綜合時間序列相關性分析、剪技操作,并結合故障排查圖的因果推斷等算法,輸出根因分析topr排序結果。
根據異常排障因果圖,并結合算法模型以及專家經驗和實際數據,逐步深入推斷和識別問題的根本原因。需要注意的是,該過程中需要對算法模型和異常變量進行精細調整,以提高根本原因診斷的準確性和有效性。
03
解決問題:高效協同
當面對重大故障、風險操作、應急事件時,SRE團隊是否能快速協作處理問題是至關重要的。傳統的處理方法是召開網絡會議,拉取相關專家人員參與討論和解決問題。但這種方式存在很多弊端,如任務調度不清晰、無法進行實時跟蹤和反饋、操作步驟難以留存等等,這些將會影響處理問題的效率。
協同作戰的主要思路是將底層數據匯總,通過指揮調度快速解決問題,同時利用投屏可視化和機器人入駐作戰室提醒等方式提高執行效率。
04
規避問題:風險控制
扁鵲見蔡桓公的故事家喻戶曉,名醫扁鵲的高超醫術讓我們驚嘆。然而,從運維的角度思考這個故事,會發現提前預防,總比治療好!最好的措施不是在你生病后采取治療行動,而是在你身體健康的時候、根據你的日常生活習慣和體貌特征、體驗報告,幫你未病先防,保護你免受病痛困擾。
健康檢查項
評估規則與算法
健康度指標評分計算
初始根據提供的指標評分模型,每天定時計算當天的均值、峰值和標準差,進行分數測算。
健康度日志評分計算
通過定時任務每天收集日志,提取日志文件大小,日志數量,異常日志大小,異常日志數量指標,并通過設定預設的閾值來計算得分;同時,會對異常日志進行采樣,并進行聚類分析,收集聚類結果。
除了設定閾值計算得分之外,還可以對指標進行多維度分析,如均值、峰值、標準差(波動性)等,以挖掘更多異常情況。對于每個指標,系統會使用相應的算法計算得分,異常的概率越大得分越低。
健康度告警評分計算
定期收集設備的存量告警,對于每個設備的告警,會根據告警等級和數量進行扣分,并根據設備告警維度得分計算規則進行計算。配置設備的告警維度得分計算規則可以設置不同告警等級的權重值、數量閾值等參數,從而得出每個設備告警得分。
健康度視圖與呈現
提供健康度監測、性能監測、健康報告,通過展示各類資源的得分情況,幫助用戶全面了解運行狀況和健康情況。