回顧十年運維路 深思只為更好的前行
原創(chuàng)本文是WOT2016互聯(lián)網(wǎng)運維與開發(fā)者大會的現(xiàn)場干貨, 新一屆主題為WOT2016企業(yè)安全技術峰會將在2016年6月24日-25日于北京珠三角JW萬豪酒店隆重召開!
趙建春表示,04年加入騰訊至今已是十年的運維老兵,和團隊隨著時間的推移共同成長?;仡欉@十年,如有一次重來的機會,什么才是真正最重要的?什么是團隊優(yōu)先做好的一件事情?進行思考,再去深思,這樣做只為支撐我們更好的前行。
關于趙建春及所處的團隊
趙建春,目前負責社交網(wǎng)絡負責大數(shù)據(jù)和運維工作。04年加入騰訊,加入之后做賀卡開發(fā),05年加入QQ空間開發(fā)團隊,負責留言版模塊。06年底開始隨著公司組織架構變化,開始接觸運維工作,到現(xiàn)在有10年時間。
運維團隊,主要是負責以QQ延伸出來的各種社群的運維和維護,包括QQ空間、QQ音樂、QQ會員、QQ秀等一系列的QQ產(chǎn)品。真實員工89個人,加起來外包同事,維護了10萬家服務器,維護的能力和谷歌比起來還是有差距,但是對很多傳統(tǒng)企業(yè)來講,可算佼佼者。
團隊經(jīng)歷,如紅米空間首發(fā),紅米QQ空間90秒賣出10萬臺設備,獲得1億點贊。天津大爆炸事件,把天津2億多活躍用戶,從天津快速調(diào)到深圳以及上海,在中國互聯(lián)網(wǎng)史算得上是一次非常大規(guī)模的調(diào)動。春節(jié)紅包準備工作,今年比去年的紅包訪問量增加了10倍以上,快速的擴充了5000臺設備,前段統(tǒng)一機構部署,***訪問量達到477萬次每秒。
趙建春表示,作為運維團隊來講,最最重要的事是先保證自己做的系統(tǒng)可靠、不會輕易出錯,不要讓自己變成一個救火隊員??煽恐螅鸵酶鄷r間去解決效率問題,讓工作變得更加高效,***是追求更高的目標。
對我們高效、可靠幫助***的是什么
對團隊工作幫助***的是什么?如上圖,資源管理是要把寫出來的程序和代碼,進行一個清晰劃分和分類,對每個資源有不同形狀,進行搭建。容錯方案是在維護海量服務時,運維過程中出現(xiàn)故障是確保不能影響項目服務,服務器要做到及時處理。 統(tǒng)一架構CMDBA是把一個業(yè)務模塊上所有依賴資源全部登記進去。同時如果做快速決策和調(diào)度,還需要有效的監(jiān)控。DLP是內(nèi)部定義的一個非常關鍵的監(jiān)控,這個點發(fā)生后,可以知道哪里出現(xiàn)故障。入口監(jiān)控是告知出現(xiàn)故障的根源在哪。容錯方案的L5是用來解決容錯、灰度,路由等。
世界上管理服務器最多的系統(tǒng)
L5系統(tǒng)
趙建春表示,運營管理系統(tǒng)管理了上億服務器,脈絡非常清晰,根本不會出現(xiàn)混亂。L5系統(tǒng)(上圖)也類似于DNS系統(tǒng),有一排能提供的服務模塊,從而解決的單點問題。
L5-主機/接口級的容錯原理
L5如何做容錯?如上圖,L5有由L5、DNS和L5、agent兩部分構成。CGI通過給模塊提ID,根據(jù)模塊下設備的成功率和延遲情況,通過IP+PROT給CGI一個反饋,訪問之后,通過成功率和延遲情況,把數(shù)據(jù)上報給了L5agent,然后做統(tǒng)計數(shù)據(jù)。當發(fā)現(xiàn)失敗率特別低的時踢掉。當發(fā)現(xiàn)成功率和失敗率有一定下降,會把訪問權重降低,從而達到容錯和負載均衡的作用。可以注冊一個模塊,加多臺設備,形成容錯效果。如發(fā)現(xiàn)一臺機器失敗率很高,就把它踢掉。它成功率恢復過來,還可以再加回來。
L5的灰度、容錯、路由、負載均衡能力
新加一臺服務器設計它的權重為1,假如之前的是100,可以逐漸上線。還可以給它一個得分,得分下降的時候,快速把它踢掉。L5具有灰度、容錯、路由、負載均衡的能力。
L5對運維團隊有哪些幫助? 減少了80~90%的日常故障、不再需要頻繁的變更ip+port(也是故障源)、同過名字便利的服務上下線、通過權重灰度上線、模塊訪問關系可幫助定位根源故障、接口的延遲和失敗率可用來監(jiān)控、集容錯、負載均衡、路由、灰度、監(jiān)控能力于一身
統(tǒng)一框架和架構
趙建春表示,團隊里有上千號開發(fā)同事,每年會有大量畢業(yè)生加入,也會有社交同事。進來以后,都希望為平臺做更更多的代碼貢獻或展現(xiàn)自己特有的技術實力也或提高自己。
統(tǒng)一框架
那問題來了,在開發(fā)過程中,如上圖,有管道、消息隊列、信息文件鎖、記錄鎖、文件影射內(nèi)存、還有迭代服務器Select poll Io等,這些是用各種各樣技術組合生產(chǎn)出來的代碼,交給團隊維護,數(shù)以萬計不同性格的服務器,要掌握得非常好,能了解它的工作機制和原理,更好的維護它基本上是不可能的事情。
統(tǒng)一框架
那就如上圖,把網(wǎng)絡通訊部分列成一個標準框架,提高它的通訊效率,統(tǒng)一維護。
統(tǒng)一框架:接入和邏輯
業(yè)務邏輯部分用SO動態(tài)庫方式編寫與框架分離部署,類似WEB服務器上的CGI。接入層用QZHTTP,邏輯層是SPP和SF的框架。
統(tǒng)一框架:存儲
作為社區(qū)類服務,雖然用戶的熱點并不是很集中,但數(shù)據(jù)量、訪問量還是很大。大量用CKV存儲,同時針對訪問量非常大的問題,如說用戶沒有開通空間,游戲用戶,會員等標記,之后均做一個定位,形成一個高訪問量的模塊即可。
統(tǒng)一框架:標準架構視圖,管理管理節(jié)點
如上圖,是一個架構體系,接入層是TGW,流量從它進、從它出。對于中間層,利用L5進行調(diào)度。在存儲層,因為每一個存儲模塊要分耗段,故加入Access,從上到下把技術架構進行了統(tǒng)一規(guī)范,同時在組織上也通過接入邏輯運維層,進行標準化的維護。
統(tǒng)一框架對運維有什么幫助? 網(wǎng)絡框架和業(yè)務邏輯SO分離管理、運維人員學習成本大大降低、框架穩(wěn)定性極大提高、可跨業(yè)務統(tǒng)一維護、運維效率提升***可達10倍。
資源打包管理
所有程序統(tǒng)一打包
如上圖,資源打包管理是對開發(fā)出的程序包進行標準打包操作,一個程序開發(fā)出來有不同特征,有需要加銀行參數(shù),有需要依賴目錄,還有需要前面準備工作和后續(xù)善后工作,把它全部放在一個類似于包里面,裝進一個盒子里。之后提供標準的操作接口,如安裝、卸載、啟動、停止操作等這些操作讓它們變成有關聯(lián)的。
資源打包管理對運維有什么幫助?部署規(guī)范統(tǒng)一,再也不擔心找不到、標準化了操作界面,極易學習掌握、支持前后置腳本做準備和善、進程級運轉的所有資源的完整鏡像。
資源登記——CMDB虛擬鏡像
資源登記到二級CMDB形成服務的虛擬鏡像,除了傳統(tǒng)基礎配置信息,把一個模塊依賴的資源,全部記錄進2級CMDB,形成一個模塊的虛擬鏡像。
CMDB+資源=虛擬鏡像
CMDB虛擬鏡像對運維有什么幫助?一個模塊運轉的所有資源的“完整鏡像”、記錄了模塊運轉所依賴的所有資源、不再需要文檔說明。
決策調(diào)度——織云自動化部署平臺
織云自動部署流程23步
趙建春表示,如上圖,在團隊內(nèi)部有織云自動化部署平臺,從申請設備獲取資源、發(fā)布部署、檢測,進行測試,上線。在每個環(huán)節(jié)還有些細節(jié)步驟,如申請設備的時屏蔽告警事件,如發(fā)布時同步傳輸文件、如發(fā)布后檢測程序的包進程是否啟動,啟動之后進行業(yè)務測試。
騰訊織云自動化運維體系
如上圖,是織云內(nèi)部自動化部署的平臺。相當于把這個進程開發(fā)出來以后,依賴的資源全部打包放在盒子里,把盒子里的東西放資源倉庫中,有一些模塊全部登記在CMDB。
織云全自動擴縮容
如果要部署一個模塊A或進行擴容,可是人工觸發(fā)或自動系統(tǒng)觸發(fā),控制人工系統(tǒng)進行操作,把模塊邊上三個資源,由資源倉儲部署在模塊1上,通過L5系統(tǒng)進行一個注冊,這個模塊就可自動上線。之后會把一個模塊登記回來,對它進行自動化操作,每一個方塊是一個步驟,這個步驟執(zhí)行過去之后是綠色的,執(zhí)行失敗是紅色,沒有執(zhí)行是灰色。執(zhí)行成功就可以看到,可以做自動化的擴容,可以做日常演習,還可以回收等工作。
運維規(guī)范的推進歷程
趙建春表示,上圖是運維規(guī)范的推進歷程,看起來還是比較自然而然的過來。但是實際上這個事并沒有這么容易做。
運維最難解決的問題是什么?
趙建春表示,運維***的困難是歷史問題。每個團隊都會遇到自己的歷史問題,解決一個,就又會出現(xiàn)一個。 雖然運維團隊不能重來一次,但現(xiàn)在有很多創(chuàng)業(yè)團隊,有很多新項目,能不能在最初的時候,就有運維和開發(fā)共同參與制訂未來運維工作有預見性的規(guī)范規(guī)則,之后由開發(fā)把它根基打好。如果開發(fā)對用戶的幫助非常大,那一定需要運維和開發(fā)深度配合合作,才能打造高效運維基礎,達到一個高效的效果?;仡欉\維這十年的路程,深思熟慮的思考,只為了在未來可以更好前行。
本文整理自,由51CTO傳媒主辦的WOT2016互聯(lián)網(wǎng)運維與開發(fā)者大會上來自騰訊社交網(wǎng)絡運營部助理總經(jīng)理、技術運營通道會長趙建春主題為如果運維可以重來一次的精彩演講。
演講視頻:http://edu.51cto.com/lesson/id-100765.html
講師簡介:
趙春生,騰訊社交網(wǎng)絡運營部助理總經(jīng)理、技術運營通道會長、專家工程師。04年加入騰訊,先后從事過研發(fā)、運維、數(shù)據(jù)方面的建設和管理工作,在海量技術運營方面積累了豐富的實戰(zhàn)經(jīng)驗。