作者:慕扉
應用實時監控服務ARMS(Application Real-Time Monitoring Service)是一款應用性能管理(APM)産品,包含應用監控、Prometheus監控和前端監控三大子産品,涵蓋分布式應用、容器環境、浏覽器、小程式、App 等領域的性能管理,能幫助使用者實作全棧式性能監控和端到端全鍊路追蹤診斷,讓應用運維從未如此輕松高效。
我主要負責阿裡雲ARMS前端監控平台,該業務更偏向于技術類産品。我想聊聊如何在業務中成長,期間也有困惑和迷茫,希望我的經曆或者方式方法能給有類似情況的前端同學有所幫助。
我個人的成長主要分為三個階段,分别是:
(1)監控領域初接觸,建立自身監控知識體系
(2)業務痛點跟進,打造監控平台核心能力
(3)業務場景不斷拓展,建立保障業務穩定體系
監控領域初接觸,建立自身監控知識體系
最初業務面臨的問題:業務上線之後,使用者在實際通路時遇到錯誤,業務方無法快速感覺;發生線上故障後,很多場景無法快速複現和排查原因等。基于業務的這些痛點,團隊決定搭建前端監控平台來解決這些問題。
我是從Retcode2.0正式開始接觸前端監控領域,面對一個新的領域,需要快速從0-1建立自身監控知識體系。這個過程是非常充實且充滿挑戰的,但當你完成這個階段後會非常有成就感。面對未知和挑戰,這裡總結一下我認為比較重要的經驗。
勇于打破自己的邊界,拓展自己的技術棧
前端監控的整個體系簡單總結一下:采集、日志存儲、日志切分&計算、資料分析、告警,也就是工作不再局限于前端業務的開發工作,需要有Nginx服務運維能力、實時/離線分析能力、Node應用開發運維能力等等,是以我邁出了第一步,從前端->全棧的轉變,讓我整體熟悉并能把控前端監控從采集到最後告警診斷整個流程,在這個基礎上讓我後續能Cover整個監控平台。
Owner意識
對于負責的産品需要具備較強的Owner意識,把工作做大做強,服務好客戶。每一個功能的開發、疊代、優化及創新,認真對待,保障每個環節做到最好。在這個過程中,我的角色也發生了改變,從最初的功能實作落地者到産品能力的主導技術方案的選型拍闆者,這段時間的複盤讓我不經意間意識到自己的這些變化。
以我自己的一個經曆為例:最初日志伺服器的部署是運維同學直接在機器上配置好,再提供服務。我接手後就遇到了一個比較大的問題:擴容。正常應用擴容是很簡單的事情,通過PSP送出擴容申請單,可快速完成擴容。但目前Nginx日志服務沒有基線配置,無法直接PSP擴容,隻能手動配置。
對于擴容來說,目前的方案存在2個問題:
(1)手動配置擴容時間成本高
(2)無法有效保證所有機器上各類包的版本号一緻。
為了解決這些問題,就需要了解Nginx日志服務的能力及運維相關的能力,通過與PE、後端同學讨論,最終決定采用Dokcer的形式解決當時擴容的問題,不僅提升了運維效率,也為後續海外業務支援打好了基礎。
是以給到大家的建議是,不要單純的完成産品的一個個功能,而是要有Owner意識,認真審視業務面臨的問題,能夠主動去跟進和改變,慢慢積累後續會産生質變。
業務痛點跟進,打造監控核心能力
平台從0-1搭建完成後,為了服務更多的業務,打磨産品能力,正式上雲更新為阿裡雲ARMS前端監控平台。監控的基礎能力已全部上線,後續如何發展是我需要思考的問題。如果後續在這個基礎上一直做疊代優化,産品和個人都沒有明顯的突破與成長。
針對技術類産品,大部分是技術同學主導,在産品發展到一個階段後,就會面臨如何做後續的突破問題。我有兩點建議:
(1)深入業務面臨的問題,制定技術解決方案。
首先問自己幾個問題:
• 業務方是誰?
• 現在業務在用自己的産品的時候都有哪些問題?
• 業務的訴求是什麼?
• 自己的産品存在哪些問題?
深入挖掘這些問題,列出TOP5的答案,會發現有很多值得去做和突破的事情。
在最初的前端監控領域,産品都集中在針對采集上報的資料做統計展示階段,通過資料名額的波動情況發現異常,然後接下來異常的定位則直接依賴于原始日志,原始日志如果覆寫不到資訊,則隻能靠業務同學自己複現和排查了。更多時候統計的資料無法解釋,直接導緻業務同學對資料的準确性産生質疑。是以監控産品要從最初的資料統計演進為問題定位。在這個階段,主導并補齊相應的問題診斷鍊路。
(2)拓展視野 (技術&業務)
在主導一個産品方案/制定技術方案前,需要提前調研,輔助做出決策。調研的目的是拓展自己的技術&業務視野,其中對應的途徑可以有:
• 競品分析:目前成熟的産品聽雲、dynatrace、oneAPM等;
• 相關聯領域同學輸入/讨論:産品、後端應用監控同學等。
一個線上問題的排查,不是獨立的前端監控或者應用監控就直接給到原因的,拓展自己認知的領域後,與後端中間件同學讨論,最終制定提供全鍊路監控的方案,來滿足業務排查問題的訴求。通過這個案例可以看到,如果不跨出一步,是看不到也無法給出方案的。
業務場景不斷拓展,建立保障業務穩定體系
在産品能力整體趨于穩定後,如何尋找自己的突破口?我也曾經走過誤區,希望自己在技術上能有突破,是以出發點是現在有哪些技術可以在我的産品上展現出深度,直接導緻越考慮越迷茫。其實,正确的出發點仍然是第二部分提到的:從業務痛點出發來制定解決方案。在這一部分不再是單點解決問題,而是體系化的考慮方案。
我有幾點經驗可以分享下:
開放的心态,合作共赢
技術類産品會收到各個業務方的訴求,在人力有限的情況下要支援各類訴求難度很大。這時候擺正心态,可以拉訴求方同學合作共建,更好的滿足業務方訴求,同時讓産品也不斷拓展支援場景。
前端技術發展非常迅速,在最初小程式迅猛發展的時候,小程式的監控訴求也随之而來。但當時團隊對于小程式的技術架構等并不熟悉,在此基礎上做監控成本較大。其中釘釘有較多的通路量級較大的小程式,對于監控有較強的的訴求,在綜合考慮業務訴求和産品拓展後,與釘釘同學合作共建支援各類小程式的監控訴求。在這次合作中,讓我深刻體會到優勢互補、事半功倍的效果。
體系化建設
在前期完成對于整個體系的了解,後續可以從這個體系涉及的各個環節來綜合考慮解決方案。
随着業務的不斷接入,監控所需的計算資源、存儲資源等問題不斷暴露出來,這時候我的工作不僅要保障業務穩定,更要保障平台穩定,是以在采集階段、上報階段、存儲階段、計算階段考量制定保障方案。完成體系化穩定性建設後,不僅可以在大促前1分鐘發現風險,也可以保障平台穩定支援大促中各類站點的監控訴求,并且在大促後沉澱賦能于日常的穩定性運維工作。
結束語
每個人的經曆與負責的工作各不相同,無法直接照搬别人成功的經驗,同時很多總結的點都是知易行難,但可以從優秀同學的經驗及總結中找到自己認可的内容,堅持并不斷在自己身上實踐,隻有不斷實踐才能慢慢轉化為自己的能力。
推薦文檔:
阿裡雲業務實時監控服務ARMS:
https://www.aliyun.com/product/arms阿裡雲業務實時監控服務ARMS前端監控:
https://arms.console.aliyun.com/#/retcode阿裡雲業務實時監控服務ARMS前端監控文檔:
https://help.aliyun.com/document_detail/58652.htmlARMS是阿裡雲原生團隊非常重要的一款産品。目前已經服務了如人人視訊、完美日記、暢捷通等衆多客戶,雲原生中間件的技術和産品體系,如何幫助企業降低業務的運作成本和技術風險?如何提升業務的疊代速度?針對雲原生場景下常見的技術挑戰和痛點,阿裡雲、人人視訊、暢捷通技術專家有哪些技術經驗和思考?我們将在9月18日13:00 雲栖大會「雲原生中間件」全面揭秘!

掃碼或點選閱讀原文預約直播,擷取雲原生中間件的實戰經驗和落地思考。
閱讀原文:
https://yunqi.aliyun.com/2020/session91