提高業務價值 APM應用與整合分享

杭州數雲 羅興峯
杭州數雲信息技術有限公司成立於2011年,是國內領先的數據化營銷軟件產品和服務提供商,多年來致力於爲消費品牌和零售品牌商提供整合軟件產品、數據模型和專業服務的一站式數據化營銷解決方案。隨着業務的高速發展和產品功能愈來愈複雜,數雲的運維部門經常要花大量時間來排查業務部門反饋過來的問題,爲了更效率的解決系統運行時發現的業務問題,數雲開始嘗試APM。通過近一年的使用,APM不但幫助數雲實現了基於業務流的信息自動採集和自動關聯,同時改進了運維和技術部門的工做方法,提升了整個團隊的工做能力,你們造成了用數聽說明事情、說明問題的習慣。前端

1

下面是杭州數雲信息技術有限公司運營總監羅興峯以《提高業務價值,創見卓越用戶體驗——APM應用與整合分享》爲主題帶來的APM使用經驗分享。
羅興峯:個人分享和前面幾位的出發點不太同樣,前面你們聊的都是如何實現APM,而我要從APM的用戶的角度談談APM的應用和整合。
數雲做爲一家業務型的公司,保證業務可以更好賣是咱們選擇新技術的惟一緣由。今天在簽到的時候領到一件很炫的T恤,當時很是想穿上這件衣服進行分享,但試穿的時候發現肩膀太窄,因而就換下來了。生產衣服的廠商常常會碰到相似的問題,但大部分消費者並不會告訴他這件衣服的問題,換一個角度來講,數雲在軟件行業裏面的位置就像衣服的生產商,若是軟件裏某個按紐老是要30秒之後纔出來,一般不會有最終用戶爲了這種不起眼的「體驗問題」跟企業溝通,而是默默放棄這個產品。對數雲來講,這種問題雖然很是須要優化,但除非客戶的忠誠度很是高,不然沒人會主動告訴咱們,這種可能對業務形成影響的「小」問題徹底值得咱們給一大筆獎金, 而APM的價值就體如今這裏。nginx

2

從產品的角度來講,由於數雲提供的是複雜的企業級應用,放在互聯網上銷售,這種應用的架構很是複雜,體量能夠用一個數量描述就是JVM大小達到30個G,裏面有大量的業務數據在跑,一個客戶會建立不少任務,假設併發的任務到一百,那麼這一個客戶就會有一百個內容在系統裏面不停運行,並且時時刻刻都不一樣,到底哪一個出問題了根本不知道,有時候甚至連客戶都不知道,由於這些任務在後臺是自動跑的,無人干擾,一個任務可能跑兩天,可能跑一天,而這個任務若是關係到客戶的營銷,掛掉了就可能會形成幾十萬的虧損。系統出了問題卻沒有主動發現,杭州數雲是否是要承擔責任?
做爲數雲的運維,咱們不可能針對每個任務作一個單獨的監控和報警,由於大部分故障都是特例。因此最大的問題就是這個故障到底在哪裏,有多嚴重,同時這個故障的發生是不是偶發性的,1500家客戶裏面可能有一家客戶在一個月發生一次這種問題,可是這一次究竟是什麼緣由,就須要還原案發現場,好比說剛纔說的全數據,當時那次點擊或者那個做業的數據毫不能丟,若是丟了就看不了案發現場,就沒法知道當時的狀況究竟是什麼,也許外部通道掛了,也許數據平臺出現問題,甚至是斷網。數雲沒有騰訊淘寶這麼強大,容錯那麼厲害,不可能作到面面俱到,因此最重要的就是發現問題並把當時的問題記下來,和開發一塊兒解決問題,這都是運維的工做。
咱們有一次遇到了性能方面的問題,當時有些客戶反映某個功能很慢,可是咱們本身測試的時候很快,因而認爲是偶發性的,從應用端看確實沒有太大問題,追究以後發現問題發生在nginx到app這一層,受到淘寶機房通信帶寬不穩定的影響。這其實只是個簡單問題,但卻耗費了兩個核心程序員,三四個普通程序員,一個月的時間才找到問題出在哪裏。一般最容易定位的問題是服務整個掛掉,最不容易定位的是不穩定,這種時候客戶找來卻沒法快速排查當時的狀況,須要找各個環節的日誌,每一個環節的日誌都得去看,並且是要關聯起來,這一點很難。程序員

3

所謂關聯起來就是把此次點擊從前端到後端到數據庫的全部性能數據鏈接起來,若是隻有那一次發生了問題,究竟是什麼樣的問題,咱們當時關聯的方法就是看時間,根據時間點判斷日誌數據是否是關聯的,這要求一個工程師把全部日誌數據從頭至尾所有都看一遍,而真正能作這個事情的工程師不多,因而你們湊在一塊兒搞了一個月,這是數雲在第一年遇到的狀況,雖然最後的解決辦法挺簡單的,但真正發現問題蠻難的。咱們還碰到過一次數據庫性能的問題,當時某一個點擊因爲參數沒有設置好,讀記錄要進行八十次數據庫掃描,其中有不少操做都是無效的,但光是檢查數據庫是沒法發現問題的。
如今就比較簡單了,經過和雲智慧近一年的合做,數雲創建起一條完整的APM鏈路,把前端APP到底層應用組件都串接起來,這樣作最大的好處就是能夠準確得到一次訪問的全部數據。前面說的某次點擊是一次事務,從nginx到app,此次做業裏全部環節的表現都能獲得,這一點很重要。咱們首先能找到訪問究竟是慢仍是快,而且經過閾值設置報警,這也是後來融合到管理裏面的一項重要功能。獲得報警之後再看究竟是哪裏慢,原來須要根據數據庫的日誌來看,而應用的雲服務RDS日誌獲取難度比較大,不少時候拿不到數據庫日誌,這種狀況下經過應用獲得接口的狀況是比較好的辦法。數據庫

4

剛纔說了APM是幫咱們找問題的一項技術,對一個應用方來講,能真正把APM應用到企業裏併產生生產力,還須要不少問題。好比用什麼樣的方式來管理APM的報警,總不能在APM平臺上創建另一套監控管理平臺或報警平臺,由於沒有人,沒法爲外部系統創建一個小組,留兩到三我的每天看APM的數據。但咱們有本身的內部監控系統,雲智慧把報警數據接入咱們的監控平臺裏,這樣就能夠用不變的工做流程來統一APM的監控結果,而後經過統一的API或者是告警短信發送到監控處理人員手上。後端

5

獲得APM數據之後主要有兩個用途,一方面是直接在雲智慧的平臺上把APM的性能表現數據呈現出來,特別是平臺級應用監控數據和關聯性數據,當時碰到了一個問題就是數雲的數據量太大,關聯性不好,經過關於APM數據如何落地的反覆探討,雲智慧增強了產品自定義的能力,咱們的APM數據逐漸造成一些可定義的報表,整合數雲內部運維分析系統,每一個星期均可以針對性能數據作相應的分析。就像開始說的T恤的案例,若是經過性能分析發現提供銷售的全部小尺碼沒有任何人買,就說明個人產品設計可能有問題,由於用戶需求不該該是偏向一端的,從業務數據的異常發現產品的問題。數雲也有一樣的例子,線上產品的性能表現是否是可以經過業務分析,發現哪裏是慢的或者老是報錯超時,把數據反饋給研發,而且持續跟進這個問題是怎麼解決的。
咱們和大型企業有比較大的區別在於,創業型公司的運維不只要對自己的事情負責,還要對產品的質量負責、對產品的交付要負責,你要覆蓋到功能,甚至要比研發還研發。咱們作的報告不但指出這周哪個地址是慢的,而且要知道哪一個方法慢或者是哪一個域慢,這種報告的業務價值很高。
APM是一項很炫酷的技術,只要作好了前期的配合,最後落地方式很是簡單,由於藉助APM,一個畢業一年、徹底沒有技術背景的小姑娘都能完成報告。這對於創業型公司或應用APM的廠商是很是重要的,咱們這邊作報告的小姑娘常常拿着報告去找研發拍桌子,這個東西何時改,研發都不知道線上有這個問題,可是這個小姑娘知道。經過APM,運維在業務發展過程當中承擔起更重要的責任,也確實解決了不少問題,並且從發現業務波動到解決問題的速度很是快,兩到三天就能夠解決掉。
經過這件事,整個運維團隊甚至公司的技術團隊發現,咱們的定位開始向業務運維和運營化運維的方向發展,這很是適合初創型公司和成長型公司。同時咱們幾個工做了兩到三年的運維工程師也在迅速進步,如今都成了很是合格的運維架構經理或者是運營型運維經理,他們成長最大的標誌是懂得了取捨,很是清楚在一個階段咱們本身要去作的技術是哪些,哪些技術是咱們不能作的。瀏覽器

6

爲何呢?好比在APM方向上咱們不會有大量投入,這不是咱們本身的業務點,因此這塊交給雲智慧,而咱們要作的是中間的架構,不會有任何公司幫咱們。因此咱們須要想辦法接入全部的嚴控系統,包括外部的、自建的、還有產品內部的,要把外部資源和本身的資源同樣使用,才能得到快速發展。而咱們要作的無非就是算賬,我用多少錢本身作,我用多少錢找別人作,找別人作的話用什麼樣的標準接入進來,這樣的話才能實現統一的方法,這個東西是創業型公司的運維須要作的。網絡

7

專業的人作APM就很厲害,由於咱們作不出上面的東西,在最初沒有這些黃色的點的時候咱們很難用一個技術或者一種方法把數據從前到後都串起來,因此咱們花的最多的時間就是把全部案發現場的線索進行關聯,一個老幹警破案都不是依靠單個信息,而是把全部信息彙總起來的能力,APM乾的事情很厲害,一方面把全部的信息自動採集,另一方面把全部的信息自動關聯,這一點不是通常的企業能作的,實施過程也花了比較長的時間,但這些時間的花費是很是值得的,由於如今APM已經可以很好的幫助咱們發現問題、解決問題了。
咱們全部的產品在上線以前都要進行壓力測試,就是用大負載把應用打到崩潰爲止的壓力測試,由於在雙十一之類電商大促的時候,產品的壓力是平時的一百倍,壓測就是要保證產品在極限的狀況下也能健康運轉。壓測時要看哪一個系統最早掛掉,哪一個位置哪一個功能模塊最早掛掉,經過APM來測就會比較容易聚焦,這樣就能夠制定雙十一的系統運行方案,若是最後搞不定,零點到四點必需要降級,只要把那個點降下來就能夠了,APM能夠幫咱們發現這個點。架構

8

除此以外,咱們對人力的需求變少了,並且門檻更低了,同時全部人的有效工做時間變長了,從原來天天都忙於幹不過重要的事情(好比前文提到的定位問題),到如今專一於解決問題。過去的運維對於技術水平要求很是高,由於底層的系統支撐都是在平臺上跑,因此須要對集團的平臺有很深的瞭解,而如今事情難度下降了不少。原有要被動等到客戶來投訴,客戶說什麼功能已經掛了之後再找問題、解決問題,而如今只要每週都作性能分析和性能報警,客戶尚未什麼太多的問題,甚至客戶還沒用的時候,咱們就發現新功能哪裏有性能瓶頸,哪裏報警了,而後告訴產品、研發、運營這個功能立刻要調整,這就贏得了不少時間。特別是雙十一這種時候,若是沒有及時推出某個功能,極可能就會被競爭對手搶得先機,商家不能等就會購買對手的產品,這時咱們的產品才姍姍來遲,營銷的機會就沒了,無論說是研發的責任仍是運維的責任,對於公司來講都失敗了。
在BAT這種大型的互聯網公司工做是很是聚焦,好比作網絡協議性能測試,只要測多大的包能把這個服務幹掉就行了,而創業公司的運維部門還要讓公司更好的發展更好地賺錢,讓團隊的員工得到職業成就感,職業成就感是超出解決技術問題的成就感,由於公司用你的技術問題賺錢了。一樣APM廠商也頗有職業成就感,由於他們的技術可以幫助客戶解決問題,這種成就感也很是強。
數雲從接觸APM到如今大概一年的時間,去年咱們沒有這種東西,開始時雙方都只是一個模糊的需求,咱們把這個東西落地去實現,而後改進咱們的工做方法,提升整個團隊的工做能力,中間克服了不少問題,你們造成了新的習慣,用數聽說明事情、說明問題,這就是APM最大的價值。併發

9

最後回顧一下今天的分享,對於不一樣類型的企業,APM帶來的價值不一樣,幫咱們省時間、省人力、加快市場節奏,提高研發能力,提高運維能力,讓企業健康成長,是創業公司比較重要的。不少大型公司的業務特色會更復雜,甚至未來APM會成爲新的業務增加點,極可能會本身作APM。但咱們也看到了新的方向,APM不只能夠作基於IT的應用性能分析,還能夠作業務性能分析。有一次產品經理跑過來和我說,你幫我看看產品裏面哪一個功能點是客戶最喜歡用的,而後這個用戶用的好或者很差,咱們那次作的數據就是來自APM採集的數據。經過與雲智慧的合做,咱們對APM的瞭解也愈來愈深,知道APM採集了哪些數據,能作哪些事情不能作哪些事情,咱們不斷加深合做,由於APM必定要在系統層面實施,一個業務模塊是怎麼樣、熱度如何、客戶反應如何、哪一個區域點擊最多,都是APM可以獲得的,將來還能夠延展出更多價值點。
APM在各個環節的傳感器思路,是一種比較容易實現的思路,有不少公司經過侵入式埋點的方式實現監測和數據獲取,但做爲第三方服務企業是不適合過分侵入客戶系統的,因此經過發起探測的思路獲取數據,效果是同樣的。咱們用傳感器的數據也幹了不少不同的事情,好比硬盤的掛載點,由於會碰到不一樣的機型,網絡網卡這些問題,因此能夠用一些小的機器人把數據傳過來,這些點不必定決定你使用哪一個APM產品,但這個思路必定可讓你的工做獲得改善。謝謝你們!
Q&Aapp

Q:剛剛您分享了不少APM所帶來的積極的東西,我想更多的瞭解一下如今您採用了什麼東西,您如今遇到哪些尚未能解決的問題,好比說像後臺能不能檢測到。
羅興峯:以前監測不到後臺任務,如今能夠了,只不過這個事情尚未在線上大批量的作,由於經過別的手段也能採集到這些數據,但他們確實已經作到了。
Q:在產品發佈初期的問題不少,對APM的依賴會很是強,隨着產品的演進,APM的重要程度有沒有變化?

羅興峯:咱們如今不傾向於等產品上線,就直接在灰度的時候跑,等到很是穩定了之後咱們會把後端APM的探針下掉,由於瀏覽器特徵太多了,沒法決定客戶是怎麼寫的,可能會碰到衝突的問題,可是衝突只要能識別,把衝突發現了就是能夠調,沒有什麼搞不定的,無非就是寫法的問題。數雲的產品有個好處,就是客戶是toB的,他們對瀏覽器端的要求很是低,若是是To C用戶就要作大量的兼容測試,常常是發現性能有問題,找後端程序員定位,定位了好久說全部的數據都是好的,結果發現前端的JS有問題,只要稍微一改立刻就行了。這就是瀏覽器監控的重要性,必須真正從客戶這一端發起,雲智慧這個功能其實仍是蠻強的。若是是To C的產品就必需要作這個事情,咱們會盡量往前端走,產品的用戶體驗仍是很是重要的。數雲的產品複雜度過高了,一個客戶對於產品的使用率,可能只有其中30%—40%,可是有些客戶喜歡這30%,有些客戶喜歡另外30%,因此產品必須是可以靈活自定義的,容許不一樣的方式使用咱們的軟件,怎樣平衡這些產品功能,是咱們如今面臨的主要問題。

圖片描述

雲智慧是業務運維解決方案服務商,旗下產品監控寶(www.jiankongbao.com)、透視寶(www.toushibao.com)、壓測寶(www.yacebao.com),已累計爲電商、移動互聯網、廣告傳媒、在線遊戲、教育醫療、金融證券、政企等行業的幾十萬用戶提供了一站式的應用性能監控、管理及測試服務。

相關文章
相關標籤/搜索