唐文:挖掘產品生命週期潛藏的商業價值——應用效能管理

weixin_33766168發表於2016-10-07

阿里CTO行癲近期分享提到:通過網路效能優化可以直接增加5.07%的訂單,資料證明了提升效能可以增強使用者的購買意願。百度也曾做過搜尋速度和使用者體驗關係的試驗:在一個較小的區間內,搜尋速度每延遲100ms,無點選比例就會增大1%,隨著區間的增長,這個關係會呈現出指數級的曲線。阿里、百度的案例都印證了高效能網站能夠增加流量、提高使用者體驗,最終為企業增加營收。

\\

2016年12月2-3日,ArchSummit全球架構師峰會將在北京舉行。本屆大會組委會策劃了“應用效能管理最佳實踐”專題,並邀請了高升控股技術VP唐文老師擔任出品人並對該專題進行把控和策劃,我們藉此機會採訪了唐文老師,他為我們分享了應用效能管理(以下簡稱APM)的前沿趨勢以及如何進行效能優化等經驗,希望可以為大家帶來啟發。

\\

受訪嘉賓介紹

\\

唐文,在騰訊、百度工作近十年。曾負責騰訊四大平臺之一騰訊網整體運維、運營規劃,參與將騰訊網速度優化到門戶最快,反超新浪、搜狐等競品,獲得騰訊最高技術獎;曾百度T7架構師、負責百度訪問速度TOPIC,百度UAQ、APM平臺負責人,協助將百度網頁搜尋、移動搜尋、多個商業產品及社群產品速度優化到業界最快。mmTrix創始人,後併入主機板上市公司高升控股,出任技術VP。《海量運維、運營規劃之道》、《大型網站效能監測、分析與優化》作者。

\\

InfoQ: 能否描述您目前作為高升控股技術副總裁的職位角色?能否談談您和APM之間是如何產生淵源的?

\\
\

唐文:高升控股是國內A股主機板上市(000971.SZ,當前市值110億RMB)的雲基本服務提供商,主營IDC、CDN、APM等業務,我負責APM產品線及相關控股公司的基礎平臺研發。

\\

個人與APM的淵源主要來自在騰訊、百度經歷的海量產品效能優化相關工作,效能優化需要資料做支撐,APM工具是效能資料採集和分析的一個第三方渠道。早在2007年資訊門戶時代在騰訊做騰訊網速度優化時已經開始接觸APM,真正體系的自研APM產品是在2011年加入百度後,那時我主要負責百度核心產品的速度優化工作。

\\

當時國內網際網路已經進入“搜尋時代”,而搜尋速度一直是搜尋引擎使用者體驗重要的組成部分,也是技術上挑戰最大的難題之一。由於當時沒有成體系的APM工具,第三方廠商只能滿足很小的一部分需求,而且要支撐公司級效能優化,每年要支付給第三方廠商300多萬元。

\\

最終我們團隊搭建了UAQ(使用者訪問質量)、APM(應用效能管理)平臺,協助百度網頁搜尋、移動搜尋等多個商業產品及社群產品速度優化到業界最快,這些平臺後期通過融入百度商業平臺,直接讓百度的企業客戶受益。

\
\\

InfoQ:您曾在騰訊/百度參與和主導將多個產品速度優化到業界最快,能否從你的角度談談您與其他部門是如何協作推動產品優化的?推動產品優化有哪些基本原則?

\\
\

唐文:多數網際網路產品團隊往往因新產品功能和迭代會忽視應用效能,但當應用效能問題積累到臨界點後,會毫不留情地以影響產品體驗的方式體現在產品的使用過程中,從而對產品的總體價值產生負面影響。所以大的企業會招聘專職效能優化工程師來搭建監測平臺來分析應用效能,從而幫助企業多個產品團隊的可持續優化。

\\

這些效能優化團隊與產品團隊是可平行發展的,甚至可以理解為內部的甲乙方關係。各產品線會以虛擬團隊的組織形式來保障專案的有效進行。

\\

正所謂聞道有先後,術業有專攻。產品線RD\FE\QA\OP團隊主要精力集中在迭代產品上,而效能優化團隊的主要職責在系統化的效能分析與優化上。實際上,效能優化工程師綜合能力和技術等級越高,產品線團隊與效能優化團隊兩者則更能完美互補

\\

在一定時間段內,兩個團隊需要組成一個虛擬團隊並設定一個效能優化目標。例如在騰訊做門戶效能優化時,設定的目標是門戶訪問速度排名第一,我們從排名最尾經過優化後成功反超競爭對手。在百度PC搜尋、移動搜尋也是類似的形式,設定80%的使用者訪問速度\u0026lt;1s做為目標,最後經過虛擬團隊的協作和持續優化,最終全面反超競品。

\\

基本原則:

\\
  1. \

    產品不同生命週期的效能優化側重不同,優先驗證簡單的假設,從簡單到複雜,優先選擇足夠簡單、容易出收益的方案;

    \ \\
  2. \

    先別急著優化,優先規避效能惡化,事實和推測分開,用事實驗證推測,沒有論證預期收益前不做優化,把有限的精力投入到關鍵效能問題上;

    \ \\
  3. \

    從前端到後端,從外到內層層剝離,縮小範圍到模組,模組內部分割單元測試,確定優化目標;

    \ \\
  4. \

    效能優化沒有盡頭,在高速迭代中完成優化的同時,還需要與時俱進,移動時代的當下,不斷投入和提高移動應用效能更具價值;

    \ \\
  5. \

    需要塑造情懷和氛圍,追求高效能的工程師文化,寫快速友好的程式碼。另外效能優化是持久戰,是一個系統工程,需要耐得住寂寞。

    \ \
\\

InfoQ:效能管理體系化目前是一套標準化的過程嗎,能否簡單談談其具體的操作?期間會有怎樣挑戰以及如何應對?

\\
\

唐文:是的。效能問題是實時發生的,並且會像人生病一樣反覆出現,對於網際網路企業或技術負責人,需要持續地關注應用效能,並不斷進行改進。縱觀國內外多個優秀企業效能優化團隊沉澱和自己在騰訊、百度的實踐,個人認為效能優化主要圍繞監測、分析、優化三個核心迴圈。

\\

第一步的監測最關鍵,監測好比掌握應用效能的“眼睛”。所以前期主要精力應該放在監測上,如何監測那些物件、監測資料如何分析、如何定位故障等是效能優化的關鍵。應用效能管理的三部曲如下:

\\
  1. \

    監測,通過監測產品及競爭對手在各終端、各產品形態下的效能,例如PC、手機、平板終端及作業系統、網路、應用等,全面評估自身及競品的表現,並作出迅速定位故障及排錯;

    \ \\
  2. \

    分析,通過標準來評估前端、移動、後端、程式碼、網路(IDC、ISP、CDN)等效能,為優化及資源投入提供依據,為優化效果提供度量,提供效能(以及故障)預警、告警;

    \ \\
  3. \

    優化,通過網路、系統、硬體、前後端、應用等各層進行體系優化,以將產品速度優化提升至達到業界最快為目標,進而提高使用者忠誠度、購買意願、品牌價值等。

    \ \

最大的挑戰是企業產品型別多而且產品生命週期一直在變化,任何網際網路企業都是由多個行業細分、多個產品體現商業價值,有新舊、大小之分。網際網路產品經過產品策劃、設計、研發、運營,然後上線進入市場,它的市場生命週期才算開始。產品、架構、成本都會隨時間推移而改變,呈現一個由少到多由簡單到複雜的過程,就如同人的生命一樣,由誕生、成長到成熟,最終走向衰亡。

\\

往往產品在迭代過程中效能會發生較大變化,比如新版上線,哪怕是一個網頁元素變大都會在原來的效能基礎上增加載入時間,例如伺服器折舊、人員流失也會影響應用效能。特別在之前從事過效能優化的產品,如果在往後的產品迭代中不加以管理,將會使之前優化的勞動成果付之東流,即使及時再優化,也很難保持。

\\

所以非常有必要從流程、規範、平臺、告警等維度融入到產品生命週期中,對當前應用效能進行保持,防止應用效能退化,從而使優秀的應用效能不斷隨產品迭代而保持並良性迴圈。

\
\\

InfoQ:APM行業在國內大熱,您認為是受哪方面的推動?應用程式本身正變得越來越難以管理您認為有哪些原因?

\\
\

唐文:隨著國外排名靠前的APM廠商紛紛上市,國內APM行業在資本推動下也日趨繁榮,加上中國網際網路發展階段性企業需求擴大以及越來越多的廠商投入到APM行業,這些因素都加快了產業化程式。

\\
  • \

    一方面,廠商的投入及商業化有利於提高應用效能管理技術水準和豐富方法論,直接降低企業APM落地門檻;

    \ \\
  • \

    另一方面,APM SaaS化,使得每家企業、甚至每一個開發者都可以直接按需使用優秀的APM雲服務幫助改善產品效能,而無需投入額外的人力和資源來搭建應用效能管理平臺。

    \ \

換句話說,第三方廠商的服務能力會一定意義上幫助企業減少應用效能投入和學習成本

\\

應用本身正變得越來越難管理,個人體會是全新雲時代,商業、技術、社會各層面都在深刻變革,網際網路產品越來越多樣和複雜,全球化、移動化、多終端,海量使用者資料和實時性等新特點為改善使用者體驗帶來了更大的挑戰,甚至可以毫不誇張地說今天的網際網路時代比歷史上任何時期都面臨更為嚴峻的挑戰。

\\

幾乎參與產品的人、事務和資源都會產生效能問題,例如移動、前端、後端、網路、系統、應用、硬體、產品邏輯等,而往往這些不同維度的效能問題會疊加並不斷放大。而且以上這些都是企業和廠商的共同挑戰,而廠商則更難跨越。

\
\\

InfoQ:據瞭解APM在國外已經是比較成熟的產品,目前國內這方面技術與生態相比國外有哪些優勢與不足?

\\
\

唐文:國外因整體企業級服務市場成熟,加上起步早、迭代快,商業化程式比國內快很多,而且經過洗牌與重組,整體更產業化、差異化,優秀的廠商有Compuware(Dynatrace)、NewRelic、APPDynamics、AppNeta(TraceView)。

\\

國內廠商最大的優勢是本土化,而且教育使用者多年,抓企業的痛點和持續按客戶的訴求交付,個性化服務較強,也受益於中國式關係型銷售助力。不足是起步晚,在一個相當長的時期停滯不前,而且是重度依賴銷售關係。與國外廠商相比,是被動式跟隨國外廠商和資本驅使的畸形快速發展階段,這些都是由廠商、企業、資本、大環境等當前綜合因素決定的。

\\

另外,國內廠商與企業供需關係不可避免存在脫節現象,這是由雙方天然隔閡決定的。

\\
  • \

    首先每家企業是非常個性、複雜的生產環境和需求,廠商不可能完全理解企業內部具有歷史負擔且不斷演進的架構和環境,也不可能滿足所有企業需求,更不能深度參與企業效能優化(受溝通、技術、理解限制);

    \ \\
  • \

    其次企業也有自研且符合產品迭代特性的效能監測渠道,這些監測渠道完全可控、個性化、安全、無成本、靈活抽樣等優勢;

    \ \\
  • \

    最後無論廠商是侵入和非侵入式監測,對企業產品而言是存在不避免地額外影響(延時、安全)和信任(隱私、使用者資料)問題。

    \ \

綜上所述,廠商做為第三方視角和補充是普遍現象,但肯定不是主導地位,特別是在大型網際網路企業中。

\
\\

InfoQ:結合大資料、雲端計算等方向,APM在哪些領域仍有提升的潛力,APM未來會朝哪些趨勢發展?

\\
\

唐文:潛力與發展趨勢放在一起講,個人體會,未來以下兩個方向將逐漸成為APM重要價值:

\\
  1. \

    機器學習,包括無人蔘與下的自主學習(資料植入與採集),自動發現關聯應用、環境和常規執行狀態,自動動態計算效能事務流和判斷健康度。例如超前感知給出預警,提前分析出事務鏈條中哪一步出現了問題,按當前趨勢發展即將要出現哪些問題等。減少人工參與是一個高度自適應、智慧化的實時服務,智慧發現、理解、判斷、響應及優化效能問題;

    \ \\
  2. \

    大資料分析,提供大規模資料實時整合、計算、儲存、視覺化服務(資料落地與分析),藉助機器學習演算法提供完整(使用者\u0026lt;-\u0026gt;終端\u0026lt;-\u0026gt;網路\u0026lt;-\u0026gt;後端)效能資料全流程分析,將複雜、關聯的應用高度拓撲化和視覺化。

    \ \
\\

InfoQ:持續監測與即時監測這兩方面在業界技術實現上有什麼不同,有哪些使用場景?

\\
\

唐文:簡單理解,持續監測是7*24小時不間斷的監測,即時監測是一次性監測,它們技術原理一樣,以下重點介紹即時監測。

\\

即時監測與體檢類似,體檢已經成為大家保持健康的一種重要手段,人們對自己健康的管理,重點通過體檢對疾病進行早期發現。即時監測達到的目的與日常體檢具有相同的意義,每一次對產品進行一次評測如同對產品做一個全面的“健康體檢”,將表象的效能問題羅列出來,快速解決掉,並且與持續監測互補。

\\

相比持續監測,即時監測更效率、更快、更低門檻,雖然監測維度廣,但深度和可持續性弱於持續監測。無論在產品、研發、測試還是運維都可以在產品迭代或上線時進行效能分析。

\\

通常即時監測具備多檢視、全方位分析在不同地理位置、網路、裝置、瀏覽器、解析度下的產品效能瓶頸,並自動提供行之有效的優化建議,主要覆蓋前端、後端、系統、網路、安全、速度等維度效能。主要分為以下三類:

\\
  1. \

    移動即時監測,一次性在不同移動裝置(不同的iOS和Android作業系統、不同廠商、不同款手機平板電腦、不同運營商、不同螢幕大小等)上監測Web App和Native App載入效能,並將存在的效能問題分析出來;

    \ \\
  2. \

    PC即時監測,主要通過不同螢幕、不同瀏覽器廠商、不同版本及不同運營商等環境下進行真實瀏覽器渲染網頁應用,將問題和瓶頸分析出來;

    \ \\
  3. \

    網路即時監測,主要通過全國不同地理位置、不同運營商的真實使用者來分析應用在全國的IDC、CDN、DNS、ISP等維度的分佈和解析策略,將網路維度的問題體現出來。

    \ \
\\

InfoQ:效能分析是應用效能管理中重要環節,在一套APM方案中資料的收集和分析是怎麼完成的?具體使用了哪些技術?

\\
\

唐文:當前應用效能工具基本劃分為4大模組:

\\
  1. \

    應用效能管理(語言類監測)

    \ \\
  2. \

    終端使用者管理(JS監測,移動監測,真機監測)

    \ \\
  3. \

    基礎設施管理(伺服器監控,資料庫,中介軟體等)

    \ \\
  4. \

    應用分析(事務分析,日誌分析,使用者體驗/分析)

    \ \

資料採集主要以侵入和非侵入的方式通過Agent、SDK、Client(按採集觸發機制又分主動與被動)將效能資料回傳到服務端整合、計算(離線、線上)、儲存、視覺化,以上工作流都是分散式、模組化的叢集。細節如下:

\\
  1. \

    Kafka cluster緩衝各類Agent和SDK實時採集回來的資料。(Kafka Manager監控Kafka叢集,並提供對Kafka的基本操作)

    \ \\
  2. \

    HBase、OpenTSDB儲存各種監控資料及業務資料。(Ganglia監控Hadoop,HBase等情況)

    \ \\
  3. \

    Redis部分資料的快取及秒級業務資料。

    \ \\
  4. \

    Mysql、Hadoop、Spark等離線計算的主要儲存資料庫。

    \ \\
  5. \

    HDFS儲存由Kafka2hdfs落地的原始資料,以及Mapreduce的中間結果。

    \ \\
  6. \

    Hadoop YARN、Mapreduce、Spark離線計算各類監測資料。(Hadoop cluster UI、Hadoop job history監控Hadoop任務情況)

    \ \\
  7. \

    Storm、Spark streaming實時計算各類監測資料。(Storm Monitor UI監控Storm任務情況)

    \ \\
  8. \

    Zookeeper協作Hadoop、Storm、Hbase等分散式開源框架。

    \ \
\\

InfoQ:效能優化有很多方向,從底層協議到前端都有可能需要優化,面對這麼長的優化鏈條,優化思路是怎樣的,在資源有限的情況下優先順序如何選擇?

\\
\

唐文優化思路如下:

\\
  1. \

    整理前端、系統、網路、後端、移動等5大方向效能優化最佳實踐,針對各個技術細節進行深度調研並在產品線中優先前端、系統、網路優化,這三部分最容易出成果;

    \ \\
  2. \

    可持續的研發效能優化的工具、平臺、框架、庫等,並整合到基礎平臺中,提供給產品線使用;

    \ \\
  3. \

    提升工程師在效能優化方面的知識,彙總各個部門的優化成果,積極組織交流、培訓;

    \ \\
  4. \

    推動效能優化方法、工具和效能分析指南在產品線中的推廣,並指導工程師解決效能問題。

    \ \

優先順序考慮

\\
  1. \

    確保優化方向正確,產品特性和階段決定優化方向,這是優化的首要條件,優化方向決定了優化的效率和收益;

    \ \\
  2. \

    確定優化帶來的收益,無收益不優化,只有明確收益才啟動優化;

    \ \\
  3. \

    在投入和產出上做取捨,合理地設定優化目標和資源投入,做高價效比的效能優化;

    \ \\
  4. \

    功能與效能的平衡,產品功能優化是最低成本、高價效比的優化之一,並且立竿見影;

    \ \\
  5. \

    防止過早和過度優化,過早或過度直接導致人力成本增加以及資源浪費。

    \ \
\\

InfoQ:現在是運維創造價值的時代,您認為被動低效率手工救火的運維角色到優秀的APM開發工程師需要具備哪些能力,有哪些途徑可以幫助成長?

\\
\

唐文:在舉國網際網路+時代,使用者至上已經被多數企業接受,加上網際網路第二個十年中後期,運維在平臺、架構能力甚至整個行業和技術已經經歷了一個很長時間的沉澱,當下已經不是被海量使用者和產品快速迭代雙重夾擊中力求可用、穩定的時代,而是在此之上增加產品和企業商業價值的時代,而應用效能管理就是其中重要工作之一。個人體會,應該具備以下能力:

\\
  1. \

    系統,分析系統執行狀況(作業系統),系統資源使用情況(硬體)。分析應用程式對資源的使用情況及瓶頸,分析應用程式執行效率及相關壓力測試。負責伺服器硬體、軟體、軟體配置效能優化,前沿相關技術調研和落地;

    \ \\
  2. \

    網路,IDC、CDN、硬體效能測試,新硬體調研和落地。IDC外網、內網傳輸及相關QoS保障,IDC、CDN效能優化。負責作業系統母盤、核心、TCP傳輸、協議、網路路由等調優;

    \ \\
  3. \

    應用,分析前端、移動、後端程式執行效率、邏輯和程式碼效能。分析應用模組執行效率、系統架構中的效能瓶頸,設計更好的高效能系統架構和落地,前沿技術調研與應用,例如SPDY、HTTPS、HTTP/2、ESI、SDCH、BigPipe、DNS Prefetch、HHVM等;

    \ \\
  4. \

    平臺,搭建綜合效能監測、分析平臺,提供競品的瓶頸分析、速度優化、評測報告、收益評估。

    \ \

結合個人的體會,企業和團隊應用效能管理的經歷都是由小到大、由淺入深的積累過程,總結幾個主要學習途徑:

\\
  1. \

    公司內部學習,相對大的網際網路企業是多部門多產品線結構,有些產品和團隊肯定走在最前面。從技術發展通道看,前端、後端、移動端等技術方向肯定會涉及到效能優化,因為這些角色負責看得見摸得著的產品構建。在公司內部首先找到這些部門和介面人,安排部門之間技術交流或當面溝通都可以快速學習他們的成功經驗;

    \ \\
  2. \

    參加專業大會,當前是使用者至上的時代,各公司或多或少都有不少效能管理的實踐,在各種大會上都能看到相關的分享,這些都是學習的途徑,InfoQ上也有很多與效能相關的採訪和文章;

    \ \\
  3. \

    多認識牛人,無論是國內或國外公司都有這個方向的牛人。而效能優化本身是網際網路技術體系裡的“上乘武功”,往往這些牛人都可以通過朋友介紹或在微博、微信上找到,也可以通過各種大會上認識,而且這些牛人多數都有在網站寫部落格等,這些都是學習和交流的突破口,如果問題較多可以整理出來集中約時間或郵件交流。

    \ \
\\

InfoQ:感謝唐文老師接受我們的採訪,期待ArchSummit全球架構師峰會上您策劃的應用效能管理最佳實踐專題。

\\

感謝夏雪對本文的審校。

\

給InfoQ中文站投稿或者參與內容翻譯工作,請郵件至editors@cn.infoq.com。也歡迎大家通過新浪微博(@InfoQ@丁曉昀),微信(微訊號:InfoQChina)關注我們。

相關文章