回歸一線應用運維的底線——先做好最基本的事
節(jié)回來梳理工作,有向好的地方,也有面臨困難的地方。好的地方,是一體化運維的建設工作己步入正軌,團隊里同學都很棒,都能以做產品的心態(tài)去拼。困難的地方,是應用一線生產保障的團隊還是面臨”被動、計劃性不夠”的現(xiàn)狀,尤其是看到GitLab誤刪數(shù)據(jù),5份備份全部無效的故障事件,更有種不踏實,自己也不敢肯定團隊里的備份策略是否完整,永久備份內容是否可用,再進一步想想應用可用性的監(jiān)控是否100%覆蓋,基本的應急手冊是否都完整可用、備機與災備環(huán)境是否隨時可用狀態(tài)、操作是否100%合規(guī)也都可能成為一顆定時炸彈。
為何會對這些看起來是基本共識的工作還有疑慮呢?總結起來,主要是還是因為對運維人員的工作引導不夠,主因是意識上的問題。從專業(yè)條線角度看,運維保障可以分為系統(tǒng)、網(wǎng)絡、應用運維,其中系統(tǒng)、網(wǎng)絡兩方面的運維對象往往來自大廠商、比較穩(wěn)定、行業(yè)標準化程度高等特點,而應用運維的標準化則更困難,整體的工作更加被動,缺乏計劃性,所以不少一線應用運維眼中的主要工作內容可能如下:
- 故障應急——業(yè)務恢復了就算結束
- 各種業(yè)務咨詢——反饋業(yè)務了就算結束
- 各種業(yè)務工單——工單關閉了就算結束
- 監(jiān)控——盡可能多配監(jiān)控指標,反正就是覆蓋面越全越好
- 變更——按時把版本投上生產、技術與業(yè)務檢查通過就算結束
- ……當然,還有安全管理、配合監(jiān)管、配合業(yè)務分析等工作
注:這里的一線應用運維主要指一線生產系統(tǒng)保障的團隊,不包括計劃性項目的團隊。
對于上面的主要工作內容與結束標志看起來也屬正常,但是進一步分析會發(fā)現(xiàn)這種工作導向會引發(fā)風險。比如:
- 故障應急——業(yè)務恢復了就算結束——沒有引導運維人員如何做好故障快速恢復的事前準備工作,造成被動,比如應急手冊不完善導致的延誤故障處理時間。
- 監(jiān)控——盡可能多配監(jiān)控指標,反正就是覆蓋面越全越好——一個應用涉及的監(jiān)控面很廣,不可能把將所有點都監(jiān)控上,上述對監(jiān)控的認識沒有引導運維人員重點確保應用可用性監(jiān)控覆蓋情況,有可能配置了上百條監(jiān)控指標,但是最為關鍵的開業(yè)、服務可用性的監(jiān)控遺漏帶來的重大生產問題。
那么問題來了,什么才是一線應用運維最基本的工作,或稱為一線應用運維的及格線呢?這里,不提兩地三中心、自動化、數(shù)據(jù)運營、智能運維這些思路,也不談合規(guī)操作這些基本的行為準則,只站在一線應用運維角度先歸納幾項運維最基本的運維工作,需要確保落實到位的工作職責(不同條線的運維人員會有不同的理解):
1、備份:
“數(shù)據(jù)不丟”是運維的第一道生命線,對于數(shù)據(jù)不丟的目標,僅僅是做好架構的高可用是不夠,還要對關鍵數(shù)據(jù)進行備份。備份機制從備份對象與備份手段兩方面來看。首先是備份對象,運維人員需要確保備份策略里包括完整的應用程序、數(shù)據(jù)庫、數(shù)據(jù)庫日志、業(yè)務數(shù)據(jù)、配置數(shù)據(jù)等關鍵數(shù)據(jù);其次才是對備份手段的保證,數(shù)據(jù)備份管理員一方面需要為備份介質、備份工具對備份策略執(zhí)行的可靠性,另一方面需要牽頭核實永久備份介質的可用性。
2、主備、災備、同城環(huán)境:
負載均衡的部署架構的運行環(huán)境的正確性往往是有保證的,因為這些環(huán)境一直都在對外提供服務。但是對于備份機、災備環(huán)境、同城應急環(huán)境,可能會出現(xiàn)環(huán)境不一致的情況,解決這種不一致的問題,需從以下幾個維度:
– 意識:需要確保運維人員是否意識到備機是用來救命用的環(huán)境,是運維保障的底線。
– 技術:生產環(huán)境是在不斷變化的,有些變化是計劃中的,有些是非計劃或未通知的,給備份、災備系統(tǒng)和生產系統(tǒng)的一致性帶來隱患。主備環(huán)境為何會出現(xiàn)不一致的情況,主要原因是兩個環(huán)境之間采用人肉方式同步,這種完全靠責任心維系的方式很容易出問題,比如某一天應用運維人員實施應用變更部署到生產環(huán)境到凌晨,疲憊的他很容易忘了同步災備的環(huán)境。所以備份機、災備、同城應急環(huán)境需要采用技術方式同步,自動化實現(xiàn)監(jiān)測,人工的同步只能作為一個臨時應急的過渡方案。
– 管控:采用自動化同步、自動化監(jiān)測一致性還不夠,因為備份應急環(huán)境的啟用是流程、機制、技術等一系列組成的工作,所以,對備份環(huán)境的驗證也不是一次性的工作,需要進行實戰(zhàn)演練,以確保環(huán)境在需要啟用時能夠馬上就位。
3、應急手冊:
運維手冊是運維標準化最基本的工作項之一,但由于運維涉及的問題很多,運維文檔也演變成一個越來越復雜的文檔,當文檔復雜到一定程度時就會變成一個負擔,很難保文檔的及時更新。所以我讓團隊先保證應急三把斧的手冊:重啟、切換、回切涉及的應用手冊的完整(涉及的動作、協(xié)作方式等需完整)、可用(涉及的內容需保持最新)、好用(能簡則簡),且這個應急手冊建議獨立分開。
另外,應急手冊可以通過自動化手段進行簡化,比如原來采用命令行方式進行重啟服務,在采用工具集中重啟服務后,手冊也可相應簡化。
4、監(jiān)控:
很難想象,哪一天我們的監(jiān)控體系(由不同層次的監(jiān)控工具組成)全部停業(yè)半天,哪怕是一小時,我們的運維團隊該如何去做運維保障。監(jiān)控己經深入到我們運維的方方面面,相信在過幾年監(jiān)控全面實現(xiàn)自愈、無人值守后,監(jiān)控將變?yōu)闊o形角色貫穿在整個一體化運維體系。
但在當前,監(jiān)控主要實現(xiàn)“監(jiān)”的背景下,則需要運維人員把握“監(jiān)”的覆蓋程度。雖然我們針對生產系統(tǒng)的各層次都部署了監(jiān)控工具,但還是有監(jiān)控點不是標準化默認即插即用的指標,需要有管理員去配置??抗芾韱T主觀能動性去讓監(jiān)控實現(xiàn)對某個生產系統(tǒng)所有運行狀態(tài)進行實時監(jiān)控還比較困難,所以我們需要讓運維人員明確知道監(jiān)控覆蓋面的及格線,我歸納為可用性監(jiān)控覆蓋面為及格線,以應用系統(tǒng)管理員為例,他需要保證一個對客交易應用系統(tǒng)的所有服務可用性、端口監(jiān)聽、開業(yè)狀態(tài)可用、重要批量按時完成、應用基本交易可用、重要業(yè)務交易可用、某個服務節(jié)點整體性能大幅度下降、上下游文件傳輸成功狀態(tài)指標必須覆蓋監(jiān)控(資源類、網(wǎng)絡等屬于默認標準的監(jiān)控覆蓋)。
注:從監(jiān)控平臺建設角度,監(jiān)控平臺要盡可能讓需要覆蓋的監(jiān)控指標從技術上落地,減少對運維人員主動性上的依靠,要快速從技術上響應新的監(jiān)控指標的落地。這里最低要求是針對在面有實現(xiàn)完全自動化配置的情況下的要求。
5、容量:
有些人可能認為生產系統(tǒng)的容量問題是開發(fā)程序不夠好導致的,我的認識是突發(fā)性的變更BUG導致的性能容量問題運維人員的確很難提前發(fā)現(xiàn),但是對于非突發(fā)性的性能容量問題第一負責人應該是運維人員,因運維人員手上掌握著生產系統(tǒng)運行的所有數(shù)據(jù)卻未發(fā)現(xiàn)容量不足,那是運維容量評估沒做到位。所以,我們需要讓運維人員對生產系統(tǒng)的主要運行指標進行數(shù)據(jù)分析,通過趨勢分析、基線比對,發(fā)現(xiàn)系統(tǒng)的健康狀況。
注:由于一線管理關注運行狀態(tài),所以這里的容量評估不涉及資源的成本控制;
7、演練:
運維過程中,針對可能出現(xiàn)的問題和風險點,會制定對應的應對措施、啟用流程、操作方案,針對這些措施是否可用,需要預先進行演練。在實際的演練工作開展過程中,一是要梳理現(xiàn)有系統(tǒng)的問題、風險點;二是針對問題、風險點的應急措施;三是組織演練;四是通過演練將風險的解決方案進行沉淀與更新。演練的場景包括重啟的應急、回切的應急、重要業(yè)務運營活動前的壓測等;演練的方式包括實戰(zhàn)、桌面;演練的目標包括操作、流程、方案等。
8、風險跟進及架構優(yōu)化:
有應急、演練、故障跟進等基本工作,就會發(fā)現(xiàn)運行風險(這里不提合規(guī)操作風險,合規(guī)操作風險屬基本操作準則),運行風險則往往會有架構上的優(yōu)化。我一直覺得一個好的應用運維人員至少需要是一個合格的架構師,運維人員并不要求要對每一個組件的實現(xiàn)方式很了解,但是需要對何時用、如何用這個技術組件要有準確的判斷。所以,應用架構的優(yōu)化,什么時候優(yōu)化、如何優(yōu)化、如何推動也是應用運維人員的基本工作。
9、業(yè)務工單、業(yè)務咨詢:
業(yè)務工單(差錯、參數(shù)、數(shù)據(jù)提取等)、業(yè)務咨詢(服務臺、電話、微信、郵件等渠道過來的問題咨詢)屬于應用運維過程中被動的工作,這方面的工作對于一線應用管理員直接的要求是及時反饋,保證服務滿意度;深入一點要求是應用運維人員的主要負責人需要走進業(yè)務、了解業(yè)務對生產應用的具體期望,并作到反饋。
上面是針對應用一線運維人員的基本工作及格線要求的一些歸納,后續(xù)還會在實踐過程中持續(xù)的優(yōu)化,調整。近期,在團隊中持續(xù)推動及格線思路的同時,對于每一項工作安排了專人橫向管理,制定方案,持續(xù)推廣落實,一方面是通過集眾人力量將工作及格線落實到位;另一方面也可以讓運維人員逐步減少重復被動的操作工作比例,做更多的事前工作。