從QQ運(yùn)維的歷史遺留問(wèn)題看公司運(yùn)維的進(jìn)化過(guò)程
主要討論人員
◆提問(wèn): 智錦
◆回答: 梁定安(大梁)
嘉賓介紹
梁定安
10年運(yùn)營(yíng)開(kāi)發(fā)、海量運(yùn)維和架構(gòu)規(guī)劃經(jīng)驗(yàn),任騰訊社交平臺(tái)運(yùn)維團(tuán)隊(duì)、綜合運(yùn)維團(tuán)隊(duì)leader,主要負(fù)責(zé)Qzone、相冊(cè)、音樂(lè)等社交平臺(tái)類(lèi)業(yè)務(wù)的運(yùn)營(yíng)開(kāi)發(fā)和運(yùn)維規(guī)劃工作,精通海量服務(wù)的架構(gòu)設(shè)計(jì)和自動(dòng)化運(yùn)維建設(shè),目前專(zhuān)注于devops、APM、大數(shù)據(jù)的運(yùn)維實(shí)踐探索。infoq高級(jí)運(yùn)維講師,騰訊云布道師。
引言
「坐而論道」是高效運(yùn)維社區(qū)獨(dú)創(chuàng)的一種技術(shù)交流形式,由技術(shù)高手之間互相提問(wèn)并進(jìn)行解答,每周討論一個(gè)話(huà)題,由其中一位發(fā)起提問(wèn)并指定下一位進(jìn)行解答,解答完的人繼續(xù)提出新的問(wèn)題并指定下一位回答者,以此類(lèi)推。
精彩回答
◆運(yùn)維面對(duì)最困難的問(wèn)題,我們統(tǒng)稱(chēng)歷史遺留問(wèn)題。如無(wú)標(biāo)準(zhǔn)化包管理、配置有硬IP、監(jiān)控點(diǎn)覆蓋不全等。
◆織云解決了運(yùn)維持續(xù)部署的難題,實(shí)現(xiàn)服務(wù)的快速自動(dòng)上下線(xiàn),基本上滿(mǎn)足了80%運(yùn)維效率的訴求,目前我們主要做的還是在不斷的打磨讓系統(tǒng)用的更順,標(biāo)準(zhǔn)化流程的適用面更廣。
◆但整個(gè)織云體系的對(duì)外開(kāi)放,目前的計(jì)劃是有所限制的,暫時(shí)只會(huì)對(duì)騰訊系的企業(yè)輸出。
◆QQ和微信,分屬騰訊的SNG和WXG,這兩款產(chǎn)品都算得上是國(guó)內(nèi)IM的巨頭,在IM的運(yùn)維場(chǎng)景下,有著相同的運(yùn)維挑戰(zhàn)。
Q1 :QQ產(chǎn)品線(xiàn)和歷史如此悠久,歷史上的遺留問(wèn)題和遺留工具一定很多,作為用運(yùn)維人員,如何去解決歷史遺留問(wèn)題;作為運(yùn)維開(kāi)發(fā)人員,如何吸納歷史上的工具系統(tǒng),降低重構(gòu)的代價(jià)。這方面有沒(méi)有經(jīng)驗(yàn)和案列可以分享。
答:這個(gè)問(wèn)題真的說(shuō)到運(yùn)維的痛點(diǎn)上了,運(yùn)維面對(duì)最困難的問(wèn)題,我們統(tǒng)稱(chēng)歷史遺留問(wèn)題。我們面對(duì)的歷史遺留問(wèn)題也挺多的,如無(wú)標(biāo)準(zhǔn)化包管理、配置有硬IP、監(jiān)控點(diǎn)覆蓋不全等。
所幸我們從09年就開(kāi)始著手進(jìn)行運(yùn)維的標(biāo)準(zhǔn)化統(tǒng)一,得益于和開(kāi)發(fā)、測(cè)試團(tuán)隊(duì)的良好合作關(guān)系(6年前就可以說(shuō)開(kāi)發(fā)、測(cè)試、運(yùn)維間就已經(jīng)萌芽了devops的文化),運(yùn)維推動(dòng)的包管理系統(tǒng)、配置管理系統(tǒng)、cmdb、質(zhì)量監(jiān)控規(guī)范都被很好的貫徹落地了。
我舉個(gè)簡(jiǎn)單例子:
09年時(shí),我們?yōu)榱送瓢芾硪?guī)范,就一度要求研發(fā)如果上線(xiàn)了非標(biāo)準(zhǔn)化的包,就必須要來(lái)運(yùn)維團(tuán)隊(duì)做1周的打包苦力。通過(guò)這樣的舉措,我們將一個(gè)個(gè)歷史遺留問(wèn)題的山頭攻克,現(xiàn)在我們內(nèi)部的織云自動(dòng)化平臺(tái),也是整合了運(yùn)維團(tuán)隊(duì)一直以來(lái)的建設(shè)成果功,利用流程引擎整合而成的自動(dòng)化系統(tǒng),讓我們的運(yùn)維效率得以提高。
現(xiàn)在游離在運(yùn)維標(biāo)準(zhǔn)化體系外的業(yè)務(wù)還是有的,原因很多,有并購(gòu)的公司、有組織架構(gòu)調(diào)整引入的老架構(gòu)等等,對(duì)這部分的管理,只要還要增長(zhǎng)的服務(wù),運(yùn)維都會(huì)提出可運(yùn)維規(guī)范要求,如打包、接入織云,如穩(wěn)定期,不需要繼續(xù)增長(zhǎng)的服務(wù),我們就不求自動(dòng)化運(yùn)維效率多高,只要求有路由的自動(dòng)容錯(cuò),保障服務(wù)的質(zhì)量,維持現(xiàn)狀即可。
Q2 :作為QQ這樣成熟的產(chǎn)品,“織云”未來(lái)的技術(shù)上的發(fā)展規(guī)劃是怎么樣的,還會(huì)不會(huì)有一些新的設(shè)計(jì)思路。
答: 織云解決了運(yùn)維持續(xù)部署的難題,實(shí)現(xiàn)服務(wù)的快速自動(dòng)上下線(xiàn),基本上滿(mǎn)足了80%運(yùn)維效率的訴求,目前我們主要做的還是在不斷的打磨讓系統(tǒng)用的更順,標(biāo)準(zhǔn)化流程的適用面更廣。提到新的設(shè)計(jì)思路,根據(jù)SNG的業(yè)務(wù)場(chǎng)景和不同時(shí)期運(yùn)維關(guān)注點(diǎn)的不同,我們針對(duì)服務(wù)調(diào)度、跨IDC搬遷、SET復(fù)制、成本管控的場(chǎng)景,都有開(kāi)發(fā)相應(yīng)的工具,但這一切都是基于自動(dòng)上線(xiàn)這個(gè)核心功能的。
Q3 :織云和藍(lán)鯨都是騰訊系的比較成功的運(yùn)維產(chǎn)品,而藍(lán)鯨已經(jīng)從服務(wù)內(nèi)部開(kāi)始走向服務(wù)外部游戲客戶(hù)了,織云有沒(méi)有類(lèi)似的走出去的規(guī)劃?
答:走出去的案例是有的,如織云的核心模塊包管理系統(tǒng),簡(jiǎn)化版tars已經(jīng)在騰訊云的應(yīng)用市場(chǎng)對(duì)外開(kāi)放,大家可以在騰訊云上搜下。在一些騰訊系的企業(yè),如webank、富途、滴滴,都有或多或少的使用織云的一些模塊。
但是整個(gè)織云體系的對(duì)外開(kāi)放,目前的計(jì)劃是有所限制的,暫時(shí)只會(huì)對(duì)騰訊系的企業(yè)輸出,原因有二:
1.在騰訊適用的海量運(yùn)維平臺(tái),對(duì)小企業(yè)未必適用,可能只需要其中的個(gè)別模塊就已經(jīng)足夠;
2.我們團(tuán)隊(duì)的職能還是要聚焦在騰訊內(nèi)部支持,在釋放運(yùn)維效率后,我們還有很多智能監(jiān)控、運(yùn)維大數(shù)據(jù)、APM等方向要繼續(xù)鉆研。
Q4 :QQ的運(yùn)維,和微信的運(yùn)維,你覺(jué)得有差異或者不同的挑戰(zhàn)嗎?
答: QQ和微信,分屬騰訊的SNG和WXG,這兩款產(chǎn)品都算得上是國(guó)內(nèi)IM的巨頭,在IM的運(yùn)維場(chǎng)景下,有著相同的運(yùn)維挑戰(zhàn)。
不同點(diǎn),我列3點(diǎn)我的個(gè)人理解:
◆國(guó)際化的挑戰(zhàn),微信用戶(hù)國(guó)際化程度很高,QQ用戶(hù)相對(duì)集中在國(guó)內(nèi);
◆微信的增值功能相對(duì)少,QQ屬于一個(gè)大平臺(tái),很多應(yīng)用基于QQ生長(zhǎng),這也是運(yùn)維的區(qū)別之一;
◆PC端的管理,微信和QQ的主要差異,QQ正在PC端繼續(xù)發(fā)力突破,如在線(xiàn)教育等領(lǐng)域,這些是微信沒(méi)有的。
Q5 :從QQ的運(yùn)維出發(fā),在“容量管理”和“故障的根源分析和自動(dòng)處置”這個(gè)兩個(gè)運(yùn)維的難點(diǎn)來(lái)看,分享一下你的經(jīng)驗(yàn)。
答: 監(jiān)控相關(guān)的問(wèn)題,涉及的背景比較大,我盡量簡(jiǎn)單的說(shuō):
1.容量管理,運(yùn)維基于容量管理,對(duì)成本管控、業(yè)務(wù)趨勢(shì)預(yù)測(cè)、調(diào)度決策等做了很多自動(dòng)化和分析的事情。首先在成本管控方向,基于容量對(duì)不同業(yè)務(wù)的平均負(fù)載、單機(jī)QPS、容量一致性等緯度進(jìn)行分析,驅(qū)動(dòng)運(yùn)維和開(kāi)發(fā)針對(duì)性的優(yōu)化,2014年給騰訊節(jié)省了3億運(yùn)營(yíng)成本。
業(yè)務(wù)趨勢(shì)預(yù)測(cè)、調(diào)度決策,其實(shí)說(shuō)白了就是基于容量對(duì)單個(gè)模塊做快速上下線(xiàn)的運(yùn)維操作,對(duì)SET服務(wù)做調(diào)度或柔性決策參考。
2.故障的根源分析和自動(dòng)處理,先說(shuō)自動(dòng)處理,對(duì)于基礎(chǔ)告警(死機(jī)、進(jìn)程/端口掛、硬盤(pán)滿(mǎn)/只讀)我們是有自愈策略的,主要是基于我們的標(biāo)準(zhǔn)化運(yùn)維體系,包括:包管理、設(shè)備響應(yīng)級(jí)別、自定義處理邏輯等基礎(chǔ)實(shí)現(xiàn)的??椩频牧鞒滔到y(tǒng),也支持類(lèi)似“藍(lán)鯨”的自定義告警處理邏輯,以應(yīng)對(duì)不同場(chǎng)景的需求,但是SNG內(nèi)部標(biāo)準(zhǔn)化程度很高,基本上一套自愈策略就能cover絕大多數(shù)的業(yè)務(wù)。
3.故障根源分析,我們內(nèi)容有個(gè)ROOT項(xiàng)目(2015年7月的AS大會(huì)上有分享過(guò)《騰訊端到端運(yùn)維監(jiān)控體系》),原理是基于業(yè)務(wù)的訪(fǎng)問(wèn)拓?fù)?,在單位時(shí)間片內(nèi)把各個(gè)監(jiān)控系統(tǒng)的告警信息疊加在鏈路上的各個(gè)模塊中,通過(guò)算法計(jì)算出最有可能的告警點(diǎn),從而從眾多的現(xiàn)象告警和原因告警中,篩選出原因告警,從而實(shí)現(xiàn)故障的根源分析。
還有一個(gè)《智子》的apm項(xiàng)目,主要是針對(duì)移動(dòng)APP運(yùn)維的場(chǎng)景,類(lèi)似聽(tīng)云和oneapm的方案,在app的每個(gè)方法中都注入我們的耗時(shí)計(jì)算邏輯,實(shí)現(xiàn)移動(dòng)端的卡慢、異常分析,是代碼級(jí)的監(jiān)控系統(tǒng)。
如何一起愉快地發(fā)展
“高效運(yùn)維”公眾號(hào)(如下二維碼)值得您的關(guān)注,作為高效運(yùn)維系列微信群的唯一官方公眾號(hào),每周發(fā)表多篇誠(chéng)意滿(mǎn)滿(mǎn)的原創(chuàng)好文:來(lái)自于系列群的討論精華、運(yùn)維講壇線(xiàn)上精彩分享及群友原創(chuàng)。“高效運(yùn)維”也是互聯(lián)網(wǎng)專(zhuān)欄《高效運(yùn)維最佳實(shí)踐》及運(yùn)維2.0官方公眾號(hào)。
提示:目前高效運(yùn)維新群已經(jīng)建立,歡迎加入。您可添加蕭田國(guó)個(gè)人微信號(hào)xiaotianguo8 為好友,進(jìn)行申請(qǐng),請(qǐng)備注“申請(qǐng)入群”。
重要提示:除非事先獲得授權(quán),請(qǐng)?jiān)诒竟娞?hào)發(fā)布2天后,才能轉(zhuǎn)載本文。尊重知識(shí),請(qǐng)必須全文轉(zhuǎn)載,并包括本行。