“雲+端”一體化 讓前端開發流程“縱享絲滑”

有人說,移動互聯網的下半場,效率就是生命。而對於金融服務領域更是如此,具體而言,該領域的強監管屬性對前端開發人員提出了更高的要求,在政策響應上要足夠快,配套工具要更加健壯、完善。那麼,如何才能多快好省地複用集團的基礎設施或者開源方案?如何才能進一步降低團隊內外的溝通成本,提升研發效率?美團金服大前端團隊在前端工程化方面進行了“雲+端”的嘗試。通常意義上,我們瞭解到的“雲+端”模式主要應用在物聯網領域。與之不同的是,美團金服對“端”的定義不是業界熟知的客戶端與雲服務的協作,而是定義在IDE上,藉助雲(Serverless)+ 端(Electron)兩個方向來規範和標準化前端研發流程。

在前不久舉辦的QCon全球軟件開發大會(上海站)上,美團點評前端技術專家田泱發表了《雲+端一體化:前端工程化探索》的主題演講,以下是InfoQ在會後對田泱進行的採訪。

InfoQ:請您介紹一下,目前在美團點評負責的業務,以及團隊情況。
田泱:我是來自美團點評金融服務平臺的前端工程師田泱,目前負責美團金服內部的工程體系建設,主要是一些研發的工具鏈,包括前端的基礎設施、鏈路監控、壓測平臺、攻防演練、質量保障等等。所有的工具都面向金服各大業務線,甚至集團。

InfoQ:您認爲最近幾年前端工程化經歷了怎樣的變化?美團點評在這方面進行到了什麼程度?
田泱:據我這幾年的觀察,我覺得前端工程化經歷了兩個方向的發展:一是橫向跨端,探討的還是多路複用,一套代碼跑多個地方,比如Rn、Flutter、小程序等,一方面可以提高效率,另一方面也滿足了少寫代碼的訴求。另一個是縱向跨工種,探索前端工程師的邊界,更多的是在研發工具鏈上的深入,比如阿里的egg、basement,我們內部也有相應的解決方案。因爲我們的客戶主要還是後端和QA的一些研發人員,我們的工程化方向主要是幫助大家擴展自己的工作邊界,這是我們近幾年的一個核心。

InfoQ:請您介紹一下,雲+端一體化具體是什麼?與傳統的研發模式相比,它有哪些優勢和不足?
田泱:端上技術的變化比較快,我們更多地還是關注在研發過程中不變的東西,所以一直在打磨整個工具鏈。我們的目標是開發與協作能都在雲上完成,最終的落腳點可能在CloudIDE上。但目前基於一些基本能力的限制,CloudIDE的成熟度和易用性還遠不及本地IDE。所以我們藉助了Electron來輔助做一些IDE的擴展,比如可視化的工程構建工具,同時配合類似於AWS的標準雲服務,來提升研發的體驗與效率。我們也有很多嘗試,但目前更關注的還是基本能力上的建設,比如雲函數,當必要的武器都湊齊後會主攻這個方向。

與以往的研發方式的不同點在於,如果真的實現了雲+端一體化,我們可以在任何地方進行開發。現在因爲開發環境的限制,我們只能在公司或一些特定的場合進行開發,而我們希望整個開發與協作過程可以在任何地方發生,現階段協作可以在雲上做,但開發必須在本地做,我認爲這個限制是不同點。

InfoQ:雲+端的模式已經有很多人討論,美團點評的雲+端有哪些獨特之處?
田泱:其實我們對端的定義不是業界討論的客戶端和雲服務的一些協作,我們的端定義在IDE上,目前還停留在本地IDE配合可視化的CLI進行開發。近期我們都在配合這個方向做服務的標準化,在這個過程中涉及到大量的輪子如何複用的問題。現實是,輪子與輪子之間的差異特別大,導致研發工程師在不同的系統之間跳來跳去,體驗不一致,因此開發者的使用意願很低。我們希望固化一個認知統一的方式,圍繞這個方式去對齊我們的雲服務,讓大家在流程和體驗上都保持一致。

InfoQ:目前,美團點評的哪些業務應用了雲+端的模式,效果怎樣?
田泱:目前金融業務線的大部分前端研發都是基於這個模式管理的,除此之外,美團基礎研發平臺的部分雲產品、餐飲生態的一些業務團隊也是如此。對於公司內和我們場景比較相似的團隊,他們會沿用我們的整體解決方案;對於有解決方案的團隊,我們會向他們提供一些單向的能力,比如雲函數的支持、PWA的工具等等。從整體來看,北京的大部分業務團隊都有在推進進行實踐,上海團隊預計明年上半年開始。

InfoQ:在實踐過程中,遇到的技術難點是什麼?
田泱:在和集團能力對齊的時候,我們要抹平服務提供方和使用方的差異,適配這個體系需要大量服務端開發工作,但是成本居高不下。這也是我們需要雲函數的原因。

InfoQ:由於金融服務的前端存在多變性、隱蔽性的風險,在開發過程中,要注意哪些問題?
田泱:金融是一個強監管的領域,在風險規避上有特殊要求,所以在技術動作的響應上需要足夠多的工具來支撐。比如央行下發一個文件,如果有一些流程不符合要求,就要把它下掉,那就需要配套大量的工具去保證流程下掉又不影響其他環節。所以金融服務平臺會有大量的工具建設的要求,甚至是領先於整個美團點評基礎技術設施的。對於前端來說,端上能力的監控降級、CDN的管理、資源防劫持等也都是需要注意的方面。

InfoQ:在實踐過程中,美團金服是否有向其他團隊借鑑經驗?
田泱:我們參考了螞蟻金服比較多,因爲螞蟻金服的一些技術方案在提升效率方面有很多先進理念,比如Antdesign、egg等設計理念。我們也在觀察他們在Serverless、SSR上的一些投入,會和他們溝通,因爲他們的整個體系比我們更成熟一些,在引入Serverless的環節比我們效率更高,螞蟻金服已經是商業的雲函數了,我們還處在自己探索的階段。

InfoQ:雲+端技術適合哪一類企業應用?
田泱:我覺得雲函數的開發模式比較適合中小型創業團隊去嘗試,因爲他們的人力並不是特別充分,可能招聘一個前端,會適當地往全棧方向培養。第一,能充分利用工程師的精力。第二,從我們的實踐來看,中小型企業的大部分流量,前端工程師是有能力承載的。如果公司現在不具備提供雲函數的能力,又沒有足夠的經費去使用商用FaaS,比如阿里雲、騰訊雲的函數計算,前端工程師是有能力去承擔這部分工作的。有了雲函數的能力,前端工程師可以做的工作,遠遠不止前端工程化這件事。對一些中小型企業來說,不管是人力成本,還是運維成本,都會有很大的縮減。

InfoQ:經過多年的發展,前端工程化似乎以Webpack大獲全勝告一段落,它的優勢是什麼?未來,前端工程化還會有怎樣的突破?
田泱:Webpack確實是最近幾年大家非常推崇的一個構建工具。它的核心理念是everything is plugin,所有的工作都可以用插件完成,這也是我們在工程化設計時的重要參考。plugin意味着開放,意味着有更多的想象空間。未來工程化還是要按這個方式,抽取不變的東西,在這個方向上堅持,不斷地完善插件。

InfoQ:有人認爲Serverless還處在概念化階段,很難落地,您認爲原因是什麼?
田泱:因爲它需要更精細粒度地去做服務上的一些編排。當前來說,可能一些服務基礎、容器能力都不足以讓它做這樣精細化的操作,這需要整個公司研發最底層能力的升級。所有上層應用的需求都是建立在底層應用的升級之上的,可能需要三到五年的規劃才能完成。所以落地難,因爲它是一個從底向上的升級。但是對於需求方來說,前端工程師是最迫切需要這種能力的。這也是我們鼓勵前端工程師跨邊界嘗試的一個重要原因,你既然認可一個方向比較好,就大膽地去嘗試。用自己的行動力去磨平能力升級期間的沉默成本,解決當前的問題同時兼顧整個公司服務能力升級的規劃。

InfoQ:您所在的前端團隊接下來的工作重點是什麼?還會關注哪些前沿技術?
田泱:我們工作的關注點還是在CloudIDE上,但目前可能會先做一些代碼物料的拼裝,第一是我們要有足夠的物料,組建這樣的東西;第二是它們的標準和規範是要對齊的,現在美團內部也在做相應的對齊工作。當這些工作都具備了之後,我們希望具備一種拼裝能力,把它輸出成完整的頁面,我們認爲這個方向是前端工程化離AI最近的一個方向。如果拼裝能力實現,我們完全可以通過AI去分析設計稿,然後對應輸出相應的物料,通過物料再重新拼裝成另外一個設計稿,或直接輸出頁面。我覺得,怎樣增強對代碼能力的控制,以及怎樣更好地抽象組織代碼,是我們後續的主要工作。

InfoQ:您還有什麼想和InfoQ的前端讀者分享嗎?
田泱:其實,我們團隊的一些理念和當前的技術觀點是有些衝突的,我們的觀點是在變化中找不變,但實際上熱點都是變化的東西,這是有衝突的。結合我前面說到的一個問題,前端工程化,一個方向是跨端,另一個方向是跨工種,大家可以選擇適合自己職業發展規劃的路徑。如果大家希望後續成爲技術團隊的負責人甚至CTO,可能需要更多跨工種的專業領域能力的支持,就可以做一些縱向的輸入,這是我想分享給大家的。前端的變化真的太快了,大家還是要抓住不變的東西。我們團隊有一句話是,把時間拉長,我們能剩下的東西就不多了。我希望大家能找到把時間拉長後剩下的那個東西,然後抓住這些東西,再做深入的學習。

專家介紹:
田泱,美團點評前端技術專家,2015 年加入美團。從 0 到 1 參與了美團線下收單千萬級訂單的前端建設工作。現負責美團金融服務平臺前端基礎服務研發團隊,致力於前端工程化建設,探索 Serverless 在業務中落地的場景。

更多國內外一線技術大咖分享請持續關注QCon全球軟件開發大會,訪問官網與技術大咖面對面交流實踐心得。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章