您好,登錄后才能下訂單哦!
杭州數(shù)云 羅興峰
杭州數(shù)云信息技術(shù)有限公司成立于2011年,是國內(nèi)領(lǐng)先的數(shù)據(jù)化營銷軟件產(chǎn)品和服務(wù)提供商,多年來致力于為消費品牌和零售品牌商提供整合軟件產(chǎn)品、數(shù)據(jù)模型和專業(yè)服務(wù)的一站式數(shù)據(jù)化營銷解決方案。隨著業(yè)務(wù)的高速發(fā)展和產(chǎn)品功能越來越復(fù)雜,數(shù)云的運維部門常常要花大量時間來排查業(yè)務(wù)部門反饋過來的問題,為了更效率的解決系統(tǒng)運行時發(fā)現(xiàn)的業(yè)務(wù)問題,數(shù)云開始嘗試APM。經(jīng)過近一年的使用,APM不但幫助數(shù)云實現(xiàn)了基于業(yè)務(wù)流的信息自動采集和自動關(guān)聯(lián),同時改進(jìn)了運維和技術(shù)部門的工作方法,提高了整個團(tuán)隊的工作能力,大家形成了用數(shù)據(jù)說明事情、說明問題的習(xí)慣。
下面是杭州數(shù)云信息技術(shù)有限公司運營總監(jiān)羅興峰以《提升業(yè)務(wù)價值,創(chuàng)見卓越用戶體驗——APM應(yīng)用與整合分享》為主題帶來的APM使用經(jīng)驗分享。
羅興峰:我的分享和前面幾位的出發(fā)點不太一樣,前面大家聊的都是如何實現(xiàn)APM,而我要從APM的用戶的角度談?wù)凙PM的應(yīng)用和整合。
數(shù)云作為一家業(yè)務(wù)型的公司,保證業(yè)務(wù)能夠更好賣是我們選擇新技術(shù)的唯一原因。今天在簽到的時候領(lǐng)到一件很炫的T恤,當(dāng)時非常想穿上這件衣服進(jìn)行分享,但試穿的時候發(fā)現(xiàn)肩膀太窄,于是就換下來了。生產(chǎn)衣服的廠商經(jīng)常會碰到類似的問題,但大部分消費者并不會告訴他這件衣服的問題,換一個角度來說,數(shù)云在軟件行業(yè)里面的位置就像衣服的生產(chǎn)商,如果軟件里某個按紐總是要30秒以后才出來,通常不會有最終用戶為了這種不起眼的“體驗問題”跟企業(yè)溝通,而是默默放棄這個產(chǎn)品。對數(shù)云來說,這種問題雖然非常需要優(yōu)化,但除非客戶的忠誠度非常高,否則沒人會主動告訴我們,這種可能對業(yè)務(wù)造成影響的“小”問題完全值得我們給一大筆獎金, 而APM的價值就體現(xiàn)在這里。
從產(chǎn)品的角度來說,因為數(shù)云提供的是復(fù)雜的企業(yè)級應(yīng)用,放在互聯(lián)網(wǎng)上銷售,這種應(yīng)用的架構(gòu)非常復(fù)雜,體量可以用一個數(shù)量描述就是JVM大小達(dá)到30個G,里面有大量的業(yè)務(wù)數(shù)據(jù)在跑,一個客戶會創(chuàng)建很多任務(wù),假設(shè)并發(fā)的任務(wù)到一百,那么這一個客戶就會有一百個內(nèi)容在系統(tǒng)里面不停運行,而且時時刻刻都不同,到底哪個出問題了根本不知道,有時候甚至連客戶都不知道,因為這些任務(wù)在后臺是自動跑的,無人干擾,一個任務(wù)可能跑兩天,可能跑一天,而這個任務(wù)如果關(guān)系到客戶的營銷,掛掉了就可能會造成幾十萬的虧損。系統(tǒng)出了問題卻沒有主動發(fā)現(xiàn),杭州數(shù)云是不是要承擔(dān)責(zé)任?
作為數(shù)云的運維,我們不可能針對每一個任務(wù)做一個單獨的監(jiān)控和報警,因為大部分故障都是特例。所以最大的問題就是這個故障到底在哪里,有多嚴(yán)重,同時這個故障的發(fā)生是否是偶發(fā)性的,1500家客戶里面可能有一家客戶在一個月發(fā)生一次這種問題,但是這一次到底是什么原因,就需要還原案發(fā)現(xiàn)場,比如說剛才說的全數(shù)據(jù),當(dāng)時那次點擊或者那個作業(yè)的數(shù)據(jù)絕不能丟,如果丟了就看不了案發(fā)現(xiàn)場,就無法知道當(dāng)時的情況到底是什么,也許外部通道掛了,也許數(shù)據(jù)平臺出現(xiàn)問題,甚至是斷網(wǎng)。數(shù)云沒有騰訊淘寶這么強(qiáng)大,容錯那么厲害,不可能做到面面俱到,所以最重要的就是發(fā)現(xiàn)問題并把當(dāng)時的問題記下來,和開發(fā)一起解決問題,這都是運維的工作。
我們有一次遇到了性能方面的問題,當(dāng)時有些客戶反映某個功能很慢,但是我們自己測試的時候很快,于是認(rèn)為是偶發(fā)性的,從應(yīng)用端看確實沒有太大問題,追究之后發(fā)現(xiàn)問題發(fā)生在nginx到app這一層,受到淘寶機(jī)房通訊帶寬不穩(wěn)定的影響。這其實只是個簡單問題,但卻耗費了兩個核心程序員,三四個普通程序員,一個月的時間才找到問題出在哪里。通常最容易定位的問題是服務(wù)整個掛掉,最不容易定位的是不穩(wěn)定,這種時候客戶找來卻無法快速排查當(dāng)時的情況,需要找各個環(huán)節(jié)的日志,每個環(huán)節(jié)的日志都得去看,而且是要關(guān)聯(lián)起來,這一點很難。
所謂關(guān)聯(lián)起來就是把這次點擊從前端到后端到數(shù)據(jù)庫的所有性能數(shù)據(jù)連接起來,如果只有那一次發(fā)生了問題,到底是什么樣的問題,我們當(dāng)時關(guān)聯(lián)的方法就是看時間,根據(jù)時間點判斷日志數(shù)據(jù)是不是關(guān)聯(lián)的,這要求一個工程師把所有日志數(shù)據(jù)從頭到尾全部都看一遍,而真正能做這個事情的工程師很少,于是大家湊在一起搞了一個月,這是數(shù)云在第一年遇到的情況,雖然最后的解決辦法挺簡單的,但真正發(fā)現(xiàn)問題蠻難的。我們還碰到過一次數(shù)據(jù)庫性能的問題,當(dāng)時某一個點擊由于參數(shù)沒有設(shè)置好,讀記錄要進(jìn)行八十次數(shù)據(jù)庫掃描,其中有很多操作都是無效的,但光是檢查數(shù)據(jù)庫是無法發(fā)現(xiàn)問題的。
現(xiàn)在就比較簡單了,通過和云智慧近一年的合作,數(shù)云建立起一條完整的APM鏈路,把前端APP到底層應(yīng)用組件都串接起來,這樣做最大的好處就是可以準(zhǔn)確獲得一次訪問的所有數(shù)據(jù)。前面說的某次點擊是一次事務(wù),從nginx到app,這次作業(yè)里所有環(huán)節(jié)的表現(xiàn)都能得到,這一點很重要。我們首先能找到訪問到底是慢還是快,并且通過閾值設(shè)置報警,這也是后來融合到管理里面的一項重要功能。得到報警以后再看到底是哪里慢,原來需要根據(jù)數(shù)據(jù)庫的日志來看,而應(yīng)用的云服務(wù)RDS日志獲取難度比較大,很多時候拿不到數(shù)據(jù)庫日志,這種情況下通過應(yīng)用得到接口的情況是比較好的辦法。
剛才說了APM是幫我們找問題的一項技術(shù),對一個應(yīng)用方來說,能真正把APM應(yīng)用到企業(yè)里并產(chǎn)生生產(chǎn)力,還需要很多問題。比如用什么樣的方式來管理APM的報警,總不能在APM平臺上建立另外一套監(jiān)控管理平臺或報警平臺,因為沒有人,無法為外部系統(tǒng)建立一個小組,留兩到三個人天天看APM的數(shù)據(jù)。但我們有自己的內(nèi)部監(jiān)控系統(tǒng),云智慧把報警數(shù)據(jù)接入我們的監(jiān)控平臺里,這樣就可以用不變的工作流程來統(tǒng)一APM的監(jiān)控結(jié)果,然后通過統(tǒng)一的API或者是告警短信發(fā)送到監(jiān)控處理人員手上。
得到APM數(shù)據(jù)以后主要有兩個用途,一方面是直接在云智慧的平臺上把APM的性能表現(xiàn)數(shù)據(jù)呈現(xiàn)出來,特別是平臺級應(yīng)用監(jiān)控數(shù)據(jù)和關(guān)聯(lián)性數(shù)據(jù),當(dāng)時碰到了一個問題就是數(shù)云的數(shù)據(jù)量太大,關(guān)聯(lián)性很差,通過關(guān)于APM數(shù)據(jù)如何落地的反復(fù)探討,云智慧加強(qiáng)了產(chǎn)品自定義的能力,我們的APM數(shù)據(jù)逐漸形成一些可定義的報表,整合數(shù)云內(nèi)部運維分析系統(tǒng),每個星期都可以針對性能數(shù)據(jù)做相應(yīng)的分析。就像開始說的T恤的案例,如果通過性能分析發(fā)現(xiàn)提供銷售的所有小尺碼沒有任何人買,就說明我的產(chǎn)品設(shè)計可能有問題,因為用戶需求不應(yīng)該是偏向一端的,從業(yè)務(wù)數(shù)據(jù)的異常發(fā)現(xiàn)產(chǎn)品的問題。數(shù)云也有同樣的例子,線上產(chǎn)品的性能表現(xiàn)是不是能夠通過業(yè)務(wù)分析,發(fā)現(xiàn)哪里是慢的或者總是報錯超時,把數(shù)據(jù)反饋給研發(fā),并且持續(xù)跟進(jìn)這個問題是怎么解決的。
我們和大型企業(yè)有比較大的區(qū)別在于,創(chuàng)業(yè)型公司的運維不僅要對本身的事情負(fù)責(zé),還要對產(chǎn)品的質(zhì)量負(fù)責(zé)、對產(chǎn)品的交付要負(fù)責(zé),你要覆蓋到功能,甚至要比研發(fā)還研發(fā)。我們做的報告不但指出這周哪一個地址是慢的,并且要知道哪個方法慢或者是哪個域慢,這種報告的業(yè)務(wù)價值很高。
APM是一項很炫酷的技術(shù),只要做好了前期的配合,最后落地方式非常簡單,因為借助APM,一個畢業(yè)一年、完全沒有技術(shù)背景的小姑娘都能完成報告。這對于創(chuàng)業(yè)型公司或應(yīng)用APM的廠商是非常重要的,我們這邊做報告的小姑娘經(jīng)常拿著報告去找研發(fā)拍桌子,這個東西什么時候改,研發(fā)都不知道線上有這個問題,但是這個小姑娘知道。通過APM,運維在業(yè)務(wù)發(fā)展過程中承擔(dān)起更重要的責(zé)任,也確實解決了很多問題,而且從發(fā)現(xiàn)業(yè)務(wù)波動到解決問題的速度非???,兩到三天就可以解決掉。
通過這件事,整個運維團(tuán)隊甚至公司的技術(shù)團(tuán)隊發(fā)現(xiàn),我們的定位開始向業(yè)務(wù)運維和運營化運維的方向發(fā)展,這非常適合初創(chuàng)型公司和成長型公司。同時我們幾個工作了兩到三年的運維工程師也在迅速進(jìn)步,現(xiàn)在都成了非常合格的運維架構(gòu)經(jīng)理或者是運營型運維經(jīng)理,他們成長最大的標(biāo)志是懂得了取舍,非常清楚在一個階段我們自己要去做的技術(shù)是哪些,哪些技術(shù)是我們不能做的。
為什么呢?比如在APM方向上我們不會有大量投入,這不是我們自己的業(yè)務(wù)點,所以這塊交給云智慧,而我們要做的是中間的架構(gòu),不會有任何公司幫我們。所以我們需要想辦法接入所有的嚴(yán)控系統(tǒng),包括外部的、自建的、還有產(chǎn)品內(nèi)部的,要把外部資源和自己的資源一樣使用,才能獲得快速發(fā)展。而我們要做的無非就是算帳,我用多少錢自己做,我用多少錢找別人做,找別人做的話用什么樣的標(biāo)準(zhǔn)接入進(jìn)來,這樣的話才能實現(xiàn)統(tǒng)一的方法,這個東西是創(chuàng)業(yè)型公司的運維需要做的。
專業(yè)的人做APM就很厲害,因為我們做不出上面的東西,在最初沒有這些×××的點的時候我們很難用一個技術(shù)或者一種方法把數(shù)據(jù)從前到后都串起來,所以我們花的最多的時間就是把所有案發(fā)現(xiàn)場的線索進(jìn)行關(guān)聯(lián),一個老干警破案都不是依靠單個信息,而是把所有信息匯總起來的能力,APM干的事情很厲害,一方面把所有的信息自動采集,另外一方面把所有的信息自動關(guān)聯(lián),這一點不是一般的企業(yè)能做的,實施過程也花了比較長的時間,但這些時間的花費是非常值得的,因為現(xiàn)在APM已經(jīng)能夠很好的幫助我們發(fā)現(xiàn)問題、解決問題了。
我們所有的產(chǎn)品在上線之前都要進(jìn)行壓力測試,就是用大負(fù)載把應(yīng)用打到崩潰為止的壓力測試,因為在雙十一之類電商大促的時候,產(chǎn)品的壓力是平時的一百倍,壓測就是要保證產(chǎn)品在極限的情況下也能健康運轉(zhuǎn)。壓測時要看哪個系統(tǒng)最先掛掉,哪個位置哪個功能模塊最先掛掉,通過APM來測就會比較容易聚焦,這樣就可以制定雙十一的系統(tǒng)運行方案,如果最后搞不定,零點到四點必須要降級,只要把那個點降下來就可以了,APM可以幫我們發(fā)現(xiàn)這個點。
除此之外,我們對人力的需求變少了,而且門檻更低了,同時所有人的有效工作時間變長了,從原來每天都忙于干不太重要的事情(比如前文提到的定位問題),到現(xiàn)在專注于解決問題。過去的運維對于技術(shù)水平要求非常高,因為底層的系統(tǒng)支撐都是在平臺上跑,所以需要對集團(tuán)的平臺有很深的了解,而現(xiàn)在事情難度降低了很多。原有要被動等到客戶來投訴,客戶說什么功能已經(jīng)掛了以后再找問題、解決問題,而現(xiàn)在只要每周都做性能分析和性能報警,客戶還沒有什么太多的問題,甚至客戶還沒用的時候,我們就發(fā)現(xiàn)新功能哪里有性能瓶頸,哪里報警了,然后告訴產(chǎn)品、研發(fā)、運營這個功能馬上要調(diào)整,這就贏得了很多時間。特別是雙十一這種時候,如果沒有及時推出某個功能,很可能就會被競爭對手搶得先機(jī),商家不能等就會購買對手的產(chǎn)品,這時我們的產(chǎn)品才姍姍來遲,營銷的機(jī)會就沒了,不管說是研發(fā)的責(zé)任還是運維的責(zé)任,對于公司來說都失敗了。
在BAT這種大型的互聯(lián)網(wǎng)公司工作是非常聚焦,比如做網(wǎng)絡(luò)協(xié)議性能測試,只要測多大的包能把這個服務(wù)干掉就好了,而創(chuàng)業(yè)公司的運維部門還要讓公司更好的發(fā)展更好地賺錢,讓團(tuán)隊的員工獲得職業(yè)成就感,職業(yè)成就感是超出解決技術(shù)問題的成就感,因為公司用你的技術(shù)問題賺錢了。同樣APM廠商也很有職業(yè)成就感,因為他們的技術(shù)能夠幫助客戶解決問題,這種成就感也非常強(qiáng)。
數(shù)云從接觸APM到現(xiàn)在大概一年的時間,去年我們沒有這種東西,開始時雙方都只是一個模糊的需求,我們把這個東西落地去實現(xiàn),然后改進(jìn)我們的工作方法,提高整個團(tuán)隊的工作能力,中間克服了很多問題,大家形成了新的習(xí)慣,用數(shù)據(jù)說明事情、說明問題,這就是APM最大的價值。
最后回顧一下今天的分享,對于不同類型的企業(yè),APM帶來的價值不同,幫我們省時間、省人力、加快市場節(jié)奏,提升研發(fā)能力,提升運維能力,讓企業(yè)健康成長,是創(chuàng)業(yè)公司比較重要的。很多大型公司的業(yè)務(wù)特點會更復(fù)雜,甚至將來APM會成為新的業(yè)務(wù)增長點,很可能會自己做APM。但我們也看到了新的方向,APM不僅可以做基于IT的應(yīng)用性能分析,還可以做業(yè)務(wù)性能分析。有一次產(chǎn)品經(jīng)理跑過來和我說,你幫我看看產(chǎn)品里面哪個功能點是客戶最喜歡用的,然后這個用戶用的好或者不好,我們那次做的數(shù)據(jù)就是來自APM采集的數(shù)據(jù)。通過與云智慧的合作,我們對APM的了解也越來越深,知道APM采集了哪些數(shù)據(jù),能做哪些事情不能做哪些事情,我們不斷加深合作,因為APM一定要在系統(tǒng)層面實施,一個業(yè)務(wù)模塊是怎么樣、熱度如何、客戶反應(yīng)如何、哪個區(qū)域點擊最多,都是APM能夠得到的,未來還可以延展出更多價值點。
APM在各個環(huán)節(jié)的傳感器思路,是一種比較容易實現(xiàn)的思路,有很多公司通過侵入式埋點的方式實現(xiàn)監(jiān)測和數(shù)據(jù)獲取,但作為第三方服務(wù)企業(yè)是不適合過度侵入客戶系統(tǒng)的,所以通過發(fā)起探測的思路獲取數(shù)據(jù),效果是一樣的。我們用傳感器的數(shù)據(jù)也干了很多不一樣的事情,比如硬盤的掛載點,因為會碰到不同的機(jī)型,網(wǎng)絡(luò)網(wǎng)卡這些問題,所以可以用一些小的機(jī)器人把數(shù)據(jù)傳過來,這些點不一定決定你使用哪個APM產(chǎn)品,但這個思路一定可以讓你的工作得到改善。謝謝大家!
Q&A
Q:剛剛您分享了很多APM所帶來的積極的東西,我想更多的了解一下現(xiàn)在您采用了什么東西,您現(xiàn)在遇到哪些還沒有能解決的問題,比如說像后臺能不能檢測到。
羅興峰:之前監(jiān)測不到后臺任務(wù),現(xiàn)在可以了,只不過這個事情還沒有在線上大批量的做,因為通過別的手段也能采集到這些數(shù)據(jù),但他們確實已經(jīng)做到了。
Q:在產(chǎn)品發(fā)布初期的問題很多,對APM的依賴會非常強(qiáng),隨著產(chǎn)品的演進(jìn),APM的重要程度有沒有變化?
羅興峰:我們現(xiàn)在不傾向于等產(chǎn)品上線,就直接在灰度的時候跑,等到非常穩(wěn)定了以后我們會把后端APM的探針下掉,因為瀏覽器特征太多了,無法決定客戶是怎么寫的,可能會碰到?jīng)_突的問題,但是沖突只要能識別,把沖突發(fā)現(xiàn)了就是可以調(diào),沒有什么搞不定的,無非就是寫法的問題。數(shù)云的產(chǎn)品有個好處,就是客戶是toB的,他們對瀏覽器端的要求非常低,如果是To C用戶就要做大量的兼容測試,經(jīng)常是發(fā)現(xiàn)性能有問題,找后端程序員定位,定位了很久說所有的數(shù)據(jù)都是好的,結(jié)果發(fā)現(xiàn)前端的JS有問題,只要稍微一改馬上就好了。這就是瀏覽器監(jiān)控的重要性,必須真正從客戶這一端發(fā)起,云智慧這個功能其實還是蠻強(qiáng)的。如果是To C的產(chǎn)品就必須要做這個事情,我們會盡可能往前端走,產(chǎn)品的用戶體驗還是非常重要的。數(shù)云的產(chǎn)品復(fù)雜度太高了,一個客戶對于產(chǎn)品的使用率,可能只有其中30%—40%,但是有些客戶喜歡這30%,有些客戶喜歡另外30%,所以產(chǎn)品必須是能夠靈活自定義的,允許不同的方式使用我們的軟件,怎樣平衡這些產(chǎn)品功能,是我們現(xiàn)在面臨的主要問題。
云智慧是業(yè)務(wù)運維解決方案服務(wù)商,旗下產(chǎn)品監(jiān)控寶(www.jiankongbao.com)、透視寶(www.toushibao.com)、壓測寶(www.yacebao.com),已累計為電商、移動互聯(lián)網(wǎng)、廣告?zhèn)髅健⒃诰€游戲、教育醫(yī)療、金融證券、政企等行業(yè)的幾十萬用戶提供了一站式的應(yīng)用性能監(jiān)控、管理及測試服務(wù)。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。