1. 程式人生 > >【TOP100案例專訪】噹噹網工程師林嘉琦談雙11大促經驗及APM實踐

【TOP100案例專訪】噹噹網工程師林嘉琦談雙11大促經驗及APM實踐

導讀:第七屆TOP100全球軟體案例研究峰會將於11月30日-12月3日在北京國家會議中心舉辦,本屆峰會以“釋放AI生產力 讓組織向智慧化演進”為開幕式主題,旨在推動企業在趨勢下擁抱AI、探索和思考AI帶來的力量。十八個主題專場,120個案例為組織形式,意在向參會者解讀2018年軟體研發設計創新案例。

 

會前TOP100組委會專訪案例分享者噹噹網 架構部工程師林嘉琦老師,他將為我們帶來如何快速準確定位複雜系統中的鏈路效能瓶頸:APM在噹噹的實踐的話題 。講述噹噹網往年大促經驗教訓,以及APM在噹噹的實踐,對現有系統進行鏈路效能分析;從技術選型,生產環境落地,使用中踩過的坑以及大促指導綜合壓測的資料分析;此外,還有當當與開源APM產品skywalking的深度合作以及開源貢獻。

 

林嘉琦,噹噹網架構部工作,負責APM呼叫鏈、作業雲等,shardingsphere、skywalking開源貢獻者。

 

TOP100組委會:非常榮幸能採訪到您。林老師現在負責噹噹整體的APM相關工作,是什麼原因讓您在網際網路行業行走這麼多年後,最終選擇深入APM領域?能否為大家介紹下您的從業經歷?

 

 

林嘉琦:我之前一直在亞信工作,長期從事電信行業業務系統的整合工作,積累了較豐富的3A資料業務系統研發實施經驗。長期的碼農工作讓我對技術產生了濃厚的興趣,也希望自己在技術領域能夠不斷探索進步。一個偶然的機會,我有幸加入了當當的架構部,負責參與瞭如作業雲、限流、APM等雲平臺、中介軟體開發。此外,也對一些如Sharding-Sphere、SkyWalking這樣的優秀開源專案做了程式碼貢獻。這使我能夠從技術架構的角度去審視電商業務系統的演進變化,並讓自己的技術視野得到全面拓寬。

 

至於負責APM的工作也是跟噹噹的業務發展息息相關。噹噹的業務系統在微服務化後出現了一些新問題,如效能問題定位困難、業務各團隊間效能資料不一致等。尤其是某年大促時出現了事故,更促進了APM在噹噹的推廣使用,於是我主動承擔了這項有新挑戰的工作。

 

TOP100組委會:在深入理解APM後,您認為APM呼叫鏈的核心關注點在哪裡?其技術難點又有哪些呢?能否依據您在此方面的積累以及噹噹的實戰經驗為大家簡單介紹一下呢?

 

林嘉琦:APM英文為Application Performance Monitor或Application Performance Management,譯文為應用效能監控或應用效能管理系統,通俗稱呼叫鏈追蹤系統。

APM呼叫鏈專注於應用系統的效能和可用性的監控與分析,它能夠監控企業關鍵應用效能、快速定位應用系統性能故障、優化系統性能。大家知道,現在的應用系統正在變得越來越複雜,並向分散式化、微服務化、雲化不斷演進。就拿噹噹這樣的大型電商來講,整體系統鏈路至少有成百上千個服務,沒有人能夠把所有服務的細節情況說清楚。而且每一次使用者的訪問請求會形成一個包含多服務節點的完整請求鏈路,但當這個鏈路出現效能問題時,排查定位會變得非常困難,每個服務的業務團隊拿來的效能資料並不一致,導致效能問題無法定位。這時就需要有一個全域性性的鏈路追蹤系統,能夠在各個服務間將效能瓶頸追蹤到。

 

要實現這樣一個APM系統有很大的技術挑戰難度。首先是鏈路的複雜度,大家知道在一個典型的網際網路應用裡,一次使用者訪問行為會從使用者終端發出,經過基站並通過運營商網路的傳輸,再通過DNS解析,最終訪問到應用服務。要追蹤這樣的端到端的鏈路效能瓶頸,需要在每一個可能瓶頸的鏈路點都加上監控,這樣的實現成本無疑是十分高昂的。其次是功能的完整度,要實現一個完整APM系統,要做好五個層次的實現,分別是終端使用者體驗、應用架構對映、應用事務的分析、深度應用診斷和資料分析。最後是效能的損耗度,對於應用有侵入性的APM,一定要考慮侵入對應用所帶來的效能影響,尤其是APM的取樣率控制,要在資料採集量與效能損耗間做一個平衡。這些技術點都是具有很大的挑戰難度。

 

TOP100組委會:您說提到,現今業務系統正在向分散式化、微服務化、雲化方向發展。那麼在此趨勢下,為什麼APM呼叫鏈可以解決系統鏈路中的效能瓶頸問題呢?它是如何實現的?

 

林嘉琦:APM本身叫應用效能監控系統,也稱呼叫鏈追蹤系統。顧名思義,它能夠追蹤到每個訪問微服務的請求,並能夠將每個請求經過的所有微服務串聯成一個完整鏈路,清晰直觀的將鏈路展現出來,再通過彙總分析,就能夠定位到系統鏈路中的瓶頸了。

 

拿噹噹網之前使用過的商業版APM來說,它為每個服務裝上特定語言的探針,使用者的訪問行為就會被該服務追蹤下來,追蹤的內容叫做Segment片段。而且,一次使用者訪問行為很可能會經過多個服務,這樣多個Segment片段會串聯成一個完整的Trace呼叫鏈,通過取樣率控制Trace的數量並將它們儲存下來。在每一個Segment片段裡,包含了該Segment片段的事務編號和它所訪問的每一個Span方法資訊,如方法名稱、型別、起止時間、服務地址、結果狀態碼、日誌資訊等等。將所有Trace的內容進行彙總和分析,最終會模擬重現每次使用者的訪問行為的鏈路,在鏈路圖上可以直觀的看到每個服務的耗時與狀態碼,以及服務的整體錯誤率和慢呼叫率的統計。通過以上這些功能、資料就能夠幫助我們最終定位系統鏈路的效能瓶頸。

 

TOP100組委會:噹噹使用過商業版的APM、開源版的APM等。那麼在對這些APM進行技術選型時,您是如何考慮的?為什麼最終選擇了SkyWalking?

 

林嘉琦:起初我對APM並不瞭解,於是根據公司具體需求調研了業界很多款知名產品。SkyWalking這款開源產品的作者吳晟、彭勇升老師曾經是我的同事。後來還有幸請到吳晟老師到公司做過一次APM的深度交流。這使我深受啟發。通過對幾款產品的調研和對比測試,也鑑於對現有系統做最小變更的原則下,SkyWalking在產品易用性、功能多樣性、多語言探針難易度等方面有較好的優勢。同時需要指出的是,選擇SkyWalking也是因為它的社群生態和發展潛力,也算是對國內優秀開源產品的一種支援吧。

 

TOP100組委會:馬上就要臨近雙11了,各大網際網路公司都在緊鑼密鼓籌備中。噹噹在這樣的大促前,會做哪些有關APM、壓測等方面的工作呢?又遇到過什麼樣的坑呢?能否為大家做一些經驗分享。

 

林嘉琦:噹噹每年最大的促銷當屬書香節和雙11了,在大促前壓測是常規操作,尤其是當綜合壓測時,APM的作用就會更明顯。通常在每次大促壓測前,我們會選擇SkyWalking的一個最新穩定版進行升級部署,搭建好生產環境和測試環境,並調通自研的PHP探針,再協調各個業務團隊接入PHP和Java探針,解決接入過程中的所有問題,至此APM的接入工作才算完成。

 

在每次大促壓測時,我們會密切監控SkyWalking服務以及接入探針的業務系統的可用性與穩定性,必要時要做一些緊急處理。在每次大促壓測後,我們還要及時整理壓測報告,分析系統鏈路的瓶頸問題。至於在壓測過程中遇到的坑就很多了,比如系統取樣率設定問題、接入探針後發生Full GC問題、探針不支援部分元件問題等等。總之,坑是一定會有的,不要僥倖,認真踩坑,方為正路。

 

TOP100組委會:聽聞林老師是多個優秀開源專案的貢獻者,例如Elastic job、Sharding-Sphere、SkyWaking等。您覺得做這些開源專案的動力是什麼?又在其中收穫了什麼呢? 

 

林嘉琦:這有些過獎了,我確實參與了開源Sharding-Sphere、SkyWalking的程式碼貢獻,Elastic job也在維護中。參與這些開源專案離不開優秀的開源前輩引路,尤其是架構部前總監張亮老師。我切身感受到他對開源的極致追求與超凡境界,以及他對開源圈的技術影響力,確實是深受觸動且受益良多。像Sharding-Sphere、Elastic job這樣的優秀開源專案,也都是張亮老師在架構部時主導負責的,在開源圈有很廣泛的知名度與使用度。此外參與SkyWalking的貢獻,也要感謝吳晟老師、彭勇升老師的支援,可以說噹噹既是SkyWalking的使用者與受益者,也是貢獻者與回饋者。坦率講,對於開源我還是個學生,能夠參與到這些優秀的開源產品,認識到優秀的開源人,已使我受益良多,促使我不斷提升自己。

 

TOP100組委會:林老師一路經歷很多、成長很多。在當今高速發展的網際網路行業裡,哪些領域可以讓我們站在風口,快速發展呢?能否為大家介紹一些林老師今後的規劃、發展讓讀者朋友借鑑下?

 

林嘉琦:正因為每個人的發展都是獨特的、個性化的,這個世界才會變得豐富多彩,談規劃也只能算個人觀點,很可能會一葉障目,對大家來講也僅供參考而已。在我看來,目前技術正在向雲端計算化、物聯網化、人工智慧化變革,這也正是目前行業發展的一個大趨勢,每一種技術都可以成為你潛心研究的方向。此外在開源界,國內優秀的開源產品越來越多,這也代表了對國內技術的認可,這也可以成為你發展的方向。

 

而我,可能想去傳道解惑當老師。對於教師和醫生職業,我有特殊的認同感,一個是人類靈魂的工程師,一個是拯救生命的白衣天使。考慮到實際情況,我去當老師可行性更大一些。通過自己的知識積累和經歷經驗去影響別人,如果能給別人開一扇窗,我會覺得人生更有價值和意義。

 

TOP100組委會:最後,恭喜林老師入選由msup主辦的第七屆TOP100全球軟體案例研究峰會!作為講師,您對本屆TOP100大會有什麼期望或建議嗎?

 

林嘉琦:很榮幸我提交的案例能夠入選TOP100全球軟體案例研究峰會。通過主辦方徵集當年度優秀的企業案例,並經由行業資深技術專家組成的出品人團隊篩選,最終甄選出最具分享價值的100個代表性案例。我相信這些案例一定頗具啟迪性和價值。他山之石,可以攻玉,期望能夠與大家交流共享,共同學習業內的優秀實踐成果,才會不虛此行。也祝願TOP100能夠再接再厲,為我們提供更有價值的案例分享!

 

以上內容來自林嘉琦老師的分享,也祝願他在TOP100大會能夠有精彩的表現,TOP100大會9折倒計時優惠報名中!爆款架構/架構演進/工程實踐專場部分精彩議題如下:

 

爆款架構/架構演進/工程實踐

除以上精彩案例外,我們還邀請了百度、騰訊、阿里、京東、美團、華為等一流公司精英人士參與。

購票諮詢:趙丹丹 158-0221-7295

贊助合作:sissi 130-4321-8801

志願者招募:沙樂樂 186-2276-6683