本文來自twt企業(yè)IT社區(qū),作者/王旭叢。
一、概述
在現(xiàn)今云計算、大數(shù)據(jù)等新型技術(shù)推動下,業(yè)界主流的應(yīng)用架構(gòu),正由松耦合、集中式的SOA架構(gòu)向解耦合、分布式的微服務(wù)架構(gòu)發(fā)展,運維人員的工作方式也正在由煙囪式運維、人工運維向自動化、流程化、平臺化、智能化運維轉(zhuǎn)變。在“去IOE”、“自主可控”的技術(shù)和政策雙重背景下,傳統(tǒng)金融行業(yè)的業(yè)務(wù)系統(tǒng)所采用的數(shù)據(jù)庫,正在從老牌廠商的DB2、Oracle等逐漸過渡至開源數(shù)據(jù)庫或國產(chǎn)新興的分布式數(shù)據(jù)庫。技術(shù)路線的變化同時也帶來了工作方式的轉(zhuǎn)變,傳統(tǒng)數(shù)據(jù)庫運維人員在這一輪發(fā)展浪潮中會遇到哪些挑戰(zhàn),以及應(yīng)該如何應(yīng)對這些挑戰(zhàn),這些問題成為各位管理員們首先要思考的問題。筆者結(jié)合自身工作經(jīng)歷整理了點滴感悟與各位分享。
二、新形勢下的挑戰(zhàn)
1、運維成本大幅提升
傳統(tǒng)數(shù)據(jù)庫運維人員面對的數(shù)據(jù)庫往往是各自獨立的。業(yè)務(wù)系統(tǒng)仍然是縱向隔離的狀態(tài),在煙囪式系統(tǒng)架構(gòu)中,每個業(yè)務(wù)系統(tǒng)都有自己獨立的數(shù)據(jù)庫,我們在管理這些數(shù)據(jù)庫的過程中,往往需要串行化操作。然而,我們的數(shù)據(jù)庫運維團隊規(guī)模還比較小,卻已經(jīng)承擔了幾百套數(shù)據(jù)庫的運維,隨著業(yè)務(wù)系統(tǒng)數(shù)量越來越多、數(shù)據(jù)規(guī)模越來越大、交易復雜度不斷提升,如果仍按照傳統(tǒng)的數(shù)據(jù)庫單點運維方式,勢必導致運維時間成本和人力成本大幅攀升。
2、缺乏統(tǒng)一的“運維大腦”
作為一家傳統(tǒng)金融行業(yè),業(yè)務(wù)系統(tǒng)都有各自獨立的數(shù)據(jù)庫,每個數(shù)據(jù)庫會被分派給指定的數(shù)據(jù)庫管理員運維,這就導致每個人之間存在信息壁壘,無法對全部數(shù)據(jù)庫的運行狀況形成全局視圖,缺乏統(tǒng)一的“運維大腦”,無法進行統(tǒng)一的數(shù)據(jù)庫分析和輔助決策,出現(xiàn)問題時往往各自為政,大家各自查看自己負責的那些數(shù)據(jù)庫,然后靠現(xiàn)場溝通互通有無,運維時效性難以保障。
3、運維手段亟需豐富
在目前的煙囪式運維時代,我們數(shù)據(jù)庫管理員有時間、有精力直接敲命令進行運維,例如安裝、巡檢、備份、升級、調(diào)參等基本工作,此時是“純?nèi)斯r代”;隨著數(shù)據(jù)庫數(shù)量的增加,再通過手工敲命令方式逐一操作各個數(shù)據(jù)庫已經(jīng)不再現(xiàn)實,因此,我們開始寫腳本,放到服務(wù)器上自動執(zhí)行,由操作系統(tǒng)完成腳本執(zhí)行,管理員只需讀取針對各個數(shù)據(jù)庫的腳本執(zhí)行結(jié)果即可,此時是“腳本時代”;然而,數(shù)據(jù)庫數(shù)量日益增長,即使逐一讀取腳本執(zhí)行結(jié)果也要消耗相當大的精力,此時管理員們開始借助ansible這類自動化運維工具批量管理數(shù)據(jù)庫,只需讀取一次批量執(zhí)行結(jié)果即可,此時是“初級自動化運維時代”。然而,即使到了“初級自動化運維時代”,信息的終點還是“人”,需要由我們管理員做最終判斷,當出現(xiàn)問題時登陸數(shù)據(jù)庫讀取各項指標進行人工分析,在當今這個分布式技術(shù)蓬勃發(fā)展、數(shù)據(jù)海量井噴的時代里,只靠我們這些“人”來判斷處理如此之多的信息流,已經(jīng)出現(xiàn)力不從心的情況。這種形勢下,必須引入其他運維手段,幫助把我們管理員從繁瑣高壓的工作環(huán)境中解放出來。
4、缺乏新技術(shù)運維經(jīng)驗
在“去IOE”、“自主可控”的技術(shù)和政策雙重背景下,傳統(tǒng)金融行業(yè)的業(yè)務(wù)系統(tǒng)所采用的數(shù)據(jù)庫,正在從老牌廠商的DB2、Oracle等逐漸過渡至開源數(shù)據(jù)庫或國產(chǎn)新興的分布式數(shù)據(jù)庫,我們也在進行分布式數(shù)據(jù)庫的轉(zhuǎn)型探索。然而,并非所有數(shù)據(jù)庫管理員都具備新數(shù)據(jù)庫技術(shù)理論和操作能力,有的管理員已經(jīng)成為傳統(tǒng)數(shù)據(jù)庫領(lǐng)域的專家,可能已經(jīng)運維了十年甚至二十年之久。面對新型數(shù)據(jù)庫技術(shù),傳統(tǒng)技術(shù)經(jīng)驗并不能完全適用,甚至可能是顛覆性的。
三、運維人員如何應(yīng)對新挑戰(zhàn)
1、制定規(guī)范和標準,降低運維風險
作為傳統(tǒng)金融機構(gòu),我們有一套完整的運維規(guī)章制度,如運維操作流程、應(yīng)急處置規(guī)范和預(yù)案、完善的變更與回退流程等等,保障各項運維工作有條不紊開展,而這些規(guī)章制度的有效執(zhí)行往往需要依靠各崗位的細化落實,數(shù)據(jù)庫運維崗位也不例外。數(shù)據(jù)庫運維團隊正在按照這些規(guī)范指引,結(jié)合崗位各方面的具體工作,制定出屬于數(shù)據(jù)庫管理的規(guī)范和標準。例如把升級、上線、備份、遷數(shù)等工作整理成標準模板文檔,形成運維資產(chǎn)隨時調(diào)用;或更進一步地,把數(shù)據(jù)建模和數(shù)據(jù)庫設(shè)計、容量規(guī)劃、SQL開發(fā)、高可用架構(gòu)設(shè)計等工作整理成規(guī)范文檔,面向所有數(shù)據(jù)庫開發(fā)人員提供咨詢指導。通過標準、規(guī)范化的管理,使得數(shù)據(jù)庫運維工作有據(jù)可依、遇事不慌,從而降低運維風險。
2、借助運維工具,發(fā)展自動化、平臺化運維
大數(shù)據(jù)背景下運維工作已經(jīng)不能單純依靠人力來解決,而要借助工具、平臺來完成。目前開源的和商用的運維工具和平臺豐富多樣,很多傳統(tǒng)的手工運維工作都可以交給這些工具或者建設(shè)相應(yīng)平臺來做。常規(guī)序列化操作如安裝、巡檢、升級、備份等,我們已經(jīng)開始借助自動化運維平臺;以往通過手工更新的數(shù)據(jù)庫配置信息表交給ITSM或CMDB來管理;數(shù)據(jù)庫的監(jiān)控告警可以利用近幾年大熱的Prometheus+grafana技術(shù)進行配置,或者引入商用產(chǎn)品建設(shè)數(shù)據(jù)庫監(jiān)控平臺或數(shù)據(jù)庫性能分析系統(tǒng);等等。作為一名數(shù)據(jù)庫管理員一定要經(jīng)常思考哪些工作可以交給“機器”去做,學會借助運維工具和平臺,輔助運維人員保障業(yè)務(wù)穩(wěn)定性及連續(xù)性。
3、探索智能運維,建設(shè)決策中心
隨著越來越多的運維工具投入使用,運維管理員似乎又“忙”了起來,因為需要在不同的工具和平臺之間進行切換,并在大腦中將各種指標關(guān)聯(lián)起來綜合進行判斷,以實現(xiàn)故障分析、關(guān)系維護等操作難題,這對于運維人員來說也形成了不小的壓力。深入思考后發(fā)現(xiàn),所有這些運維工具、平臺、系統(tǒng),歸根結(jié)底,都在采集“數(shù)據(jù)”并向外輸出“信息”。數(shù)據(jù)在當代已經(jīng)成為企業(yè)生存的根本,如果能夠整合這些“信息”并產(chǎn)生更大的“價值”,那么對于運維人員來說必然又多了一項利器。如何實現(xiàn)運維資產(chǎn)數(shù)據(jù)有效、精確、精細化管理,利用大數(shù)據(jù)技術(shù)形成決策中心,運維數(shù)據(jù)消費效率,成為目前不得不思考的問題,而數(shù)據(jù)中臺、運維數(shù)據(jù)中臺、智能運維平臺等技術(shù)正是為了解決此類問題應(yīng)運而生。數(shù)據(jù)庫運維員作為智能運維的直接收益者,我們也正在朝這個方向探索。
4、主動擁抱新技術(shù)
自主搭建一套測試環(huán)境進行學習實踐是轉(zhuǎn)型的開端。如果已經(jīng)有DB2或者Oracle的實踐基礎(chǔ),可以通過對比的方式來進行新數(shù)據(jù)庫技術(shù)的學習。MySQL是當今使用最廣泛的開源數(shù)據(jù)庫,搭建簡單,網(wǎng)絡(luò)上學習教程非常多,如果能夠先把MySQL原理理清楚,再去對比學習其他分布式數(shù)據(jù)庫便會簡單許多。目前市面上分布式數(shù)據(jù)庫技術(shù)有兩種實現(xiàn)方式,一類靠MySQL+中間件實現(xiàn),一類靠研發(fā)新型分布式數(shù)據(jù)庫實現(xiàn)。Mysql+中間件有開源版本,也有諸多數(shù)據(jù)庫廠商基于中間件做了商業(yè)版的分布式增強,而數(shù)據(jù)庫仍沿用開源MySQL;自研分布式數(shù)據(jù)庫也有很多,比較知名的大廠商和中小公司推出了很多。如果企業(yè)已經(jīng)有了向分布式數(shù)據(jù)庫轉(zhuǎn)型的思路,那么數(shù)據(jù)庫運維人員不妨借此機會開始參與到項目前期調(diào)研中,一定會收獲良多。
5、懂技術(shù),也要懂業(yè)務(wù)和管理
大型金融機構(gòu)內(nèi)部的分工往往比較細,很多情況下技術(shù)人員、項目管理人員是不同的團隊,然而對于個人發(fā)展來說,還是應(yīng)該把重點從技術(shù)領(lǐng)域擴展到復合型領(lǐng)域。正如前文所說,如果企業(yè)已經(jīng)有了向分布式數(shù)據(jù)庫轉(zhuǎn)型的思路,那么數(shù)據(jù)庫運維人員一定要從項目前期調(diào)研就開始參與,因為項目前期所進行的調(diào)研、需求、poc測試是了解新技術(shù)的第一步,可以最快速地了解市場主流技術(shù)和應(yīng)用現(xiàn)狀。到了項目建設(shè)期,就更需要技術(shù)和管理的復合型人才了,數(shù)據(jù)庫運維人員自身已經(jīng)有了技術(shù)實力,更能方便地把業(yè)務(wù)需求與實踐相結(jié)合,利于項目成功落地。項目建成后進行新技術(shù)推廣時,技術(shù)人員的優(yōu)勢又能進一步凸顯,因為無論是何種新技術(shù)的推廣實施,一定要先制定完善的技術(shù)升級規(guī)范,提前做好測試,獲取遷移改造量和改造難度,制定出切實可行的切換計劃,在這一點上技術(shù)人員可謂具有得天獨厚的優(yōu)勢。
6、引進新技術(shù)人才,注入新鮮血液
如果企業(yè)有人才招聘計劃,不妨適當引入新型數(shù)據(jù)庫的技術(shù)人才,一方面使得團隊整體對外服務(wù)能力得到提升,另一方面也為團隊引入了內(nèi)部講師有利于全體成員的進步。
7、開展廠商合作,引入專業(yè)技術(shù)支持
大型金融機構(gòu)的技術(shù)團隊規(guī)模可能比不上互聯(lián)網(wǎng)技術(shù)公司,但更多時候金融機構(gòu)以甲方的身份出現(xiàn),有更多的機會與技術(shù)公司開展合作。數(shù)據(jù)庫運維人員可以借助這些合作機會,向?qū)I(yè)技術(shù)公司學習。
四、總結(jié)
以上是筆者結(jié)合自身工作經(jīng)歷整理的些許感悟。在傳統(tǒng)數(shù)據(jù)庫轉(zhuǎn)型的過程中,運維人員一定要運用新時代運維理念及時調(diào)整自身發(fā)展方向,全面提升技術(shù)與管理技能,順應(yīng)新技術(shù)潮流,以精細化、自動化、智能化的管理思維勤加思考,在變革的浪潮中砥礪前行。