之前我們分析了銀行等金融機構(gòu)的運維組織架構(gòu)現(xiàn)狀,討論運維組織敏捷化轉(zhuǎn)型的背景,最后解釋了什么是敏捷型的運維組織以及如何打造敏捷型的運維組織,本文我們重點來關(guān)注架構(gòu)實施層面:金融業(yè)分布式系統(tǒng)運維實踐。
分布式系統(tǒng),無論在互聯(lián)網(wǎng)行業(yè)亦或是傳統(tǒng)行業(yè),都不再是新興事物,互聯(lián)網(wǎng)公司推行較早,傳統(tǒng)行業(yè)近幾年也開始發(fā)力建設(shè)。對于運維人來說,分布式系統(tǒng)的運維與傳統(tǒng)集群式系統(tǒng)的運維大相徑庭,我們今天就來探討一下分布式運維的建設(shè)。
01. 分布式運維的挑戰(zhàn)
1)分布式系統(tǒng)的定義
分布性:由多臺計算機組成,在地域上是分散的;系統(tǒng)功能分布在各個節(jié)點上,具有數(shù)據(jù)處理的分布性;
自治性:各個節(jié)點都包含自己的處理機和內(nèi)存,具備獨立處理數(shù)據(jù)的功能,通常彼此地位平等,無主次之分;
并行性:一個大的任務(wù)可以劃分為若干個子任務(wù),分別在不同的主機上執(zhí)行;
全局性:存在單一的、全局的進(jìn)程通信機制,使得任何一個進(jìn)程都能與其他進(jìn)程通信,并且不區(qū)分本地通信與遠(yuǎn)程通信,同時還有全局的保護(hù)機制。
① 運維不確定性顯著增加:
系統(tǒng)中有大量的服務(wù)器及設(shè)備,各模塊之間存在錯綜復(fù)雜的依賴關(guān)系,存在更多的不確定性。
② 故障率指數(shù)級增加:
整個系統(tǒng)的故障率會隨設(shè)備的增加而呈指數(shù)級增加,單一節(jié)點問題可能會被無限放大,日常運行過程中一定會伴隨“異?!卑l(fā)生。
③ 運維日常復(fù)雜性大增:
分布式系統(tǒng)節(jié)點分布范圍更加廣,節(jié)點數(shù)量更多,物理位置不統(tǒng)一,非常依賴于網(wǎng)絡(luò),這對日常運維過程中的日志采集、變更升級等都帶來了新的挑戰(zhàn)。
④ 運維架構(gòu)復(fù)雜度:
隨著技術(shù)角色分工越來越細(xì),技術(shù)專業(yè)化程度越來越深,分布式系統(tǒng)穩(wěn)定性落地因其架構(gòu)特性,對架構(gòu)設(shè)計思路、組織設(shè)計等帶來了新的挑戰(zhàn)。
⑤ 運維新模式:
要保障分布式架構(gòu)下的系統(tǒng)穩(wěn)定性,需要系統(tǒng)化地探討穩(wěn)定性建設(shè)新模式。
分布式系統(tǒng)建設(shè)追求穩(wěn)定性,分兩個目標(biāo)、四大模式、四項路徑。
02. 穩(wěn)定性建設(shè)目標(biāo)
1)建設(shè)目標(biāo)主要有兩個:
降發(fā)生:事前的管理,通過建設(shè)“高可用、高性能、高質(zhì)量”的系統(tǒng)來降低故障發(fā)生的概率;
降影響:事后的管理,在故障發(fā)生后,“早感知、快定位、急止損、優(yōu)改進(jìn)”,降低影響范圍。
2)量化評價指標(biāo)三個:
03. 穩(wěn)定性運維建設(shè)模式
分布式運維建設(shè)模式主要分為:架構(gòu)設(shè)計、容量設(shè)計、運維設(shè)計、安全設(shè)計。我們主要看下和運維相關(guān)的要點。
1)架構(gòu)設(shè)計
一般情況下,架構(gòu)設(shè)計主要由研發(fā)部門主導(dǎo),但是運維人員不能只是作為后端被動承接系統(tǒng)的運維,最好在架構(gòu)設(shè)計階段就提出規(guī)范,滿足穩(wěn)定性運維的要求:
① 去除單點
② 依賴設(shè)計
高等級服務(wù)不允許強依賴于低等級的服務(wù)或資源。
③ 數(shù)據(jù)保護(hù)
數(shù)據(jù)保護(hù)的主要目的是提升數(shù)據(jù)安全性,業(yè)界一般通過RPO(恢復(fù)點目標(biāo))與RTO (恢復(fù)時間目標(biāo))兩個指標(biāo)進(jìn)行度量,核心目標(biāo)是盡可能縮短數(shù)據(jù)恢復(fù)時間(降低RTO),避免數(shù)據(jù)丟失(RPO接近于0)。
針對不同的業(yè)務(wù)系統(tǒng)、分布式系統(tǒng)里面不同的服務(wù)模塊,需要有對應(yīng)級別的數(shù)據(jù)保護(hù)考量。
服務(wù)器單點保護(hù):基于本地盤跨機房異步復(fù)制數(shù)據(jù),但服務(wù)器出現(xiàn)不可恢復(fù)故障時將存在數(shù)據(jù)丟失
存儲單點保護(hù):基于單存儲數(shù)據(jù)庫系統(tǒng)跨機房異步復(fù)制,但存儲出現(xiàn)不可恢復(fù)故障時將存在數(shù)據(jù)丟失
同機房內(nèi)多點保護(hù):基于同機房多點保護(hù)的數(shù)據(jù)庫系統(tǒng),同機房多份redo及跨機房異步復(fù)制模式,但機房故障時存在數(shù)據(jù)丟失
同城異機房保護(hù):基于同城異機房保護(hù)的數(shù)據(jù)庫系統(tǒng),采取同城異機房內(nèi)多份redo保護(hù)及跨機房DG,但城市出現(xiàn)災(zāi)備時存在數(shù)據(jù)丟失
異地異機房保護(hù):基于異地多點保護(hù)的數(shù)據(jù)庫系統(tǒng),采取跨城跨機房數(shù)據(jù)保護(hù),但出現(xiàn)人類災(zāi)難時存在數(shù)據(jù)丟失
④ 災(zāi)備設(shè)計
當(dāng)故障或者災(zāi)難發(fā)生時,可通過災(zāi)備技術(shù)保證業(yè)務(wù)不中斷、數(shù)據(jù)不丟失。針對不同的業(yè)務(wù)場景,綜合成本與效果的考量,選擇相應(yīng)的災(zāi)備設(shè)計。
⑤ 彈性設(shè)計
2)容量設(shè)計
系統(tǒng)上線之前,最好能有一個比較嚴(yán)謹(jǐn)?shù)臏y試,比如全鏈路壓測,模擬用戶真實流量,對容量和性能等做測試。
3)運維方案設(shè)計
提前考慮系統(tǒng)上線后的運維訴求,做到變更可控、系統(tǒng)可觀、演練到位。
① 變更設(shè)計
分布式系統(tǒng)發(fā)布頻率較高、顆粒度較小、發(fā)布量較大,變更引起的系統(tǒng)問題一般占大部分比重,所以需要有一套嚴(yán)格的自動化發(fā)布機制。
② 可觀測設(shè)計
可觀測,以前叫監(jiān)控告警,是分布式系統(tǒng)里面提出的一個新概念。應(yīng)用系統(tǒng)觀測需要覆蓋的資源類型如下:
可觀測的核心主要是四個維度:拓?fù)?、Metric指標(biāo)、trcae鏈路、log日志。
橫向看,從業(yè)務(wù)訪問端到端的整個鏈路做數(shù)據(jù)的分析和展示,縱向看,把整個的資源、資源的指標(biāo)和日志拉通;橫向是業(yè)務(wù)層次、縱向是技術(shù)層次,一橫一縱,就構(gòu)成了可觀測。
③ 演練設(shè)計
相較傳統(tǒng)架構(gòu)系統(tǒng),分布式系統(tǒng)發(fā)生故障的概率較高,我們需要提前進(jìn)行演練設(shè)計。
④ 安全設(shè)計
系統(tǒng)安全是系統(tǒng)穩(wěn)定的基礎(chǔ),主要有如下四個方面:
04. 分布式系統(tǒng)運維工具落地建設(shè)
1)一體化綜合管理工具
微服務(wù)化日甚的當(dāng)下,故障影響往往是復(fù)雜多樣的(單一節(jié)點故障可能導(dǎo)致全線業(yè)務(wù)出錯),往往需要多個技術(shù)團(tuán)隊的協(xié)同保障系統(tǒng)穩(wěn)定。需要統(tǒng)一的系統(tǒng)化穩(wěn)定性管理能力作為“連接器”實現(xiàn)多團(tuán)隊協(xié)同“透明化”作戰(zhàn),并進(jìn)一步通過故障應(yīng)急過程及結(jié)果數(shù)據(jù)復(fù)盤,“數(shù)據(jù)化”風(fēng)險趨勢以確定建設(shè)重點,“標(biāo)準(zhǔn)化”故障管理流程以提升故障管理效率,定義業(yè)務(wù)或服務(wù)的SLO ( Service Level Objective,服務(wù)等級目標(biāo))以“結(jié)構(gòu)化”組織穩(wěn)定性保障能力。
2)故障預(yù)防工具
① 可觀測能力
那么比較好的建設(shè)模式甚至是最好的建設(shè)模式,是選一個具備大部分監(jiān)控能力和數(shù)據(jù)處理的產(chǎn)品,同時兼容性較強,其他沒有的能力可以通過對接補足,這樣比較容易落地。
或者也可以選一個兼容性比較強的分析系統(tǒng),本身能夠支持市面上常見的成熟產(chǎn)品,來做集中對接,這種方式也可行但相對難一點。
② 變更管理
變更管理能力建設(shè)中,信息標(biāo)準(zhǔn)化和變更風(fēng)險控制屬于ITIL管理的范疇,全量接入、變更中控和變更環(huán)境控制屬于執(zhí)行的范疇。
我們在實際落地的時候,屬于管理范疇的,建議在ITSM里面建設(shè);屬于執(zhí)行范疇的,在變更工具里面落地。
管理流程和管理工具,可以基于同一個運維管理平臺進(jìn)行對接。
③ 容量管理
容量管理的核心有四個:
④ 全鏈路壓測
通過全國各地CDN 節(jié)點模擬向生產(chǎn)系統(tǒng)施加壓力,模擬路演進(jìn)行整體容量和穩(wěn)定性驗證。全鏈路性能測試能力構(gòu)建主要由以下幾部分構(gòu)成:
⑤ 混沌工程
如下圖所示混沌工程平臺能力,除此之外還需要在面向軟件完整生命周期、面向智能化、面向度量和運營能力體系建設(shè)三個方面進(jìn)一步加強。
3)故障止損工具
① 應(yīng)急平臺
應(yīng)急平臺建設(shè)主要考慮以下方面:
② 容災(zāi)管理
容災(zāi)管理主要分為容災(zāi)揭示、容災(zāi)管控兩部分,其中巡檢中心和流控中心作為容災(zāi)揭示和容災(zāi)管控的基礎(chǔ)工具依賴。
05. 總結(jié)
分布式系統(tǒng)運維與傳統(tǒng)運維的本質(zhì)區(qū)別:
① 分布式系統(tǒng)運維:是面向應(yīng)用可用性穩(wěn)定性的,建設(shè)一體化能力。聚焦于穩(wěn)定性,但建設(shè)圍繞點是從穩(wěn)定性的背面“故障”出發(fā)。
② 傳統(tǒng)運維:主要面向基礎(chǔ)架構(gòu);建設(shè)cmdb\監(jiān)控\自動化的豎井能力。
③ 本質(zhì)上都還是監(jiān)管控,但是需要有兩點:一是要融合并且面向應(yīng)用;二是要升華,如APM、混沌工程、應(yīng)用容量與成本等等。
④ 面向應(yīng)用的混沌工程、應(yīng)用容量、故障定位都需要監(jiān)管控這些能力的融合。
⑤ 所有這些的實現(xiàn)都需要強有力的自動化運維平臺的支撐。
CMDB治理:CMDB消費場景規(guī)劃指南
查看詳細(xì)
CTest測試管理平臺:上新用例結(jié)構(gòu)化設(shè)計
查看詳細(xì)
CCode代碼管理平臺:代碼合并前CI任務(wù)狀態(tài)校驗
查看詳細(xì)
嘉為藍(lán)鯨WeOps:高效監(jiān)控Kubernetes集群的三大關(guān)鍵點
查看詳細(xì)
CFlow價值流管理平臺:從流程線上化到價值可視化,研運黑盒破解之道
查看詳細(xì)
CPack制品庫:制品黑白名單,為軟件供應(yīng)鏈安全護(hù)航
查看詳細(xì)
申請演示