天天看點

“一次編碼、到處運作”,淘寶雲端一體化探索業務研發模式的演進雲端一體輕量級研發模式的核心挑戰GAIA 業務輕量級研發運維模式探索實踐GAIA設計理念總結展望我們的使命

“一次編碼、到處運作”,淘寶雲端一體化探索業務研發模式的演進雲端一體輕量級研發模式的核心挑戰GAIA 業務輕量級研發運維模式探索實踐GAIA設計理念總結展望我們的使命

作者|孫棋(空蒙)

出品|阿裡巴巴新零售淘系技術部

導讀:目前移動網際網路業務研發運維模式,雲與多端互相割裂,有些全棧的探索缺乏成功案例,行業對雲端一體化研發這塊仍是空白,我們要思考:如何能實作 1 個研發支撐雲 + android + iOS 三端的業務快速落地。是否有新的研發運維模式,讓程式員回歸程式,“一次編碼、到處運作”是我們的答案。我們在閑魚項目驗證,原本 60 天的項目時間減少了 20 天,提效 33% 。希望本文的分析也能夠給大家帶來收獲。

業務研發模式的演進

  • 效率是業務研發運維模式演進核心驅動力

PC 網際網路時代,單體應用包含前後端是最初的研發模式(淘寶經曆開發人員寫 velocity 模闆,以及更早的 jsp、asp 頁面)其實質是中心化搭火車的研發模型。

“一次編碼、到處運作”,淘寶雲端一體化探索業務研發模式的演進雲端一體輕量級研發模式的核心挑戰GAIA 業務輕量級研發運維模式探索實踐GAIA設計理念總結展望我們的使命

随着業務發展複雜性快速增加,趕火車的傳遞模式,極大的限制了業務發展,是以誕生了服務化的拆分,淘寶在 09 年的五彩石項目即基于這樣的背景,微服務是一種軟體架構,這背後更是一種研發模式的變革,從中心化研發模式到分布式的研發模式更新。

在業務分布式研發模式更新的同時,前後端分離研發模式也在同步的演進,從 ajax 到專業前端獨立完成業務閉環,職業分工細化提效。但對前端同學而言,服務端的運維始終是其痛苦的技術門檻,以及在阿裡以 Java 語言為基礎的中間件生态内,一直沒有很好解決。

進入移動網際網路時代,用戶端同樣也經曆同樣的演進,阿裡集團以 atlas 實作了端分布式研發模式。但對比 pc 時代的前後端分離,移動時代又回到了 ajax 模式,端的同學隻負責了端,沒有實作業務自閉環。同時移動網際網路帶來了新的挑戰,即跨 android 和 iOS 平台的問題, React Native、weex 等産品即在這個環境下誕生。

雲端一體輕量級研發模式的核心挑戰

如何讓用戶端同學更往後一步,實作業務落地的閉環能力,同時規避 BFF 層對用戶端同學的在研發、運維以及跨語言面臨集團 Java 技術中間件生态,關鍵是:

  • 對業務研發屏蔽代碼運作環境
  • 跨雲、端多平台能力

Java 語言最初的成功,“一次編譯,到處運作”是關鍵,在 JVM 層面屏蔽了部分的運作環境;如何向研發提供語言無關的透明化代碼運作環境是核心挑戰,除了業務代碼以外的事情全部讓技術平台托管。

移動網際網路這麼多年雲和端仍是割裂的各自為戰的研發模式,業界也有全棧的探索,但沒有很成功的案例,問題是技術門檻太高,對開發人員即要還要的太多,業務落地的複雜性而言沒有本質的變化,原來 3 個人做的事情,簡單的讓一個人做而已,缺乏一個有效跨平台能力,尤其是跨雲+端的平台能力。

研發模式演進的本質:降低技術門檻、跨平台能力。

“一次編碼,到處運作”

讓開發人員隻關注業務邏輯編碼,是研發模式的全新的下一個階段,也是研發模式演進的本質展現。這個階段雲原生代表的技術給了我們很多的輸入,通過容器化技術解耦基礎設施,容器化編排降低了運維複雜性;通過服務網格實作了應用與中間件體系的解耦合;不可變基礎設施,支援更高的一緻性和可靠性,降低了複雜性;serverless 的理念,技術的演進為研發模式更新提供了新的契機。

GAIA 業務輕量級研發運維模式探索實踐

基于這樣的背景, GAIA 應孕而生,與閑魚、 aplatform 淘系互動平台兩大業務緊密合作,通過 GAIA 雲端 FaaS 技術能力,重新定義了研發的職責和邊界,讓程式員回歸最初的程式,結合端上的跨平台實作雲端一體的輕量級業務研發運維模式。

閑魚全新的研發模式如下圖:

“一次編碼、到處運作”,淘寶雲端一體化探索業務研發模式的演進雲端一體輕量級研發模式的核心挑戰GAIA 業務輕量級研發運維模式探索實踐GAIA設計理念總結展望我們的使命

進展結果:

  • 閑魚業務落地執行個體,通過雲端一體化研發模式,使原本 60 天的項目時間,減少了 20 天,提效 33% 。
  • 88 VIP 互動 aplatform ,幾十萬 QPS 業務流量平穩可靠運作,輕量級複合多容器設計模式的集團首次規模化驗證。

GAIA設計理念

  • 通過容器化設計模式,把基礎設施下沉與業務解耦,代碼運作環境對業務透明化

輕量級複合多容器設計模式

“一次編碼、到處運作”,淘寶雲端一體化探索業務研發模式的演進雲端一體輕量級研發模式的核心挑戰GAIA 業務輕量級研發運維模式探索實踐GAIA設計理念總結展望我們的使命

我們的應用目前都仍是富容器模式,重要的問題是容器職責不單一,造成隔離性以及業務與基礎設施緊密耦合的問題。

容器做為 GAIA 的關鍵,其設計模式進行了革命性的更新,也是集團首次大規模的嘗試。

  • 基于 K8s 的 pod 輕量級複合多容器能力,重新定義了業務與基礎設施的邊界,通過 sidecar 承載基礎設施
  • 通過容器化的編排排程,實作資源、流量與容器生命周期統一,為按需使用奠定基礎架構
  • 基于 configmap ,實作配置與環境解耦,實作容器鏡像的不可變性,日常、預發、生産鏡像的統一,降低複雜性
  • 基于 Init Container 技術,實作 function 業務與基礎設施徹底解耦,通過容器生命周期初始化機制組合 function+ 基礎設施建構運作态,為業務 function 與基礎設施各自獨立運維提供支撐
  • API 服務注冊發現等基礎設施能力下沉到 K8s 技術體系

通過這些容器的設計能力,業務研發隻需要編寫業務邏輯代碼即可,同時通過聲明式的 API 透出,快速完成了雲端業務的落地能力在移動端,小程式等容器也封裝隔離業務的運作環境, flutter 亦是如此,研發人員進入面向容器程式設計,通過容器來隔離基礎設施,屏蔽運作環境平台的差異性。

“一次編碼、到處運作”,淘寶雲端一體化探索業務研發模式的演進雲端一體輕量級研發模式的核心挑戰GAIA 業務輕量級研發運維模式探索實踐GAIA設計理念總結展望我們的使命

GAIA 是開放性的平台,按其容器設計規範,閑魚對dart語言按規範應實作了function容器, aplatform 的引擎與 GAIA 的 Java 容器對接的成功,解決了平台型應用以及任何應用基于 GAIA 實作 serverless 化的解決路徑(集團存量萬+級别的應用)。

總結展望

目前 GAIA 和閑魚以及 aplatform 淘系互動進行的實踐是一次意義重大的定義探索, “一次編碼,到處運作” ,讓程式員回歸程式,目前雲端技術上是初步的結合,未來還待深度的體系挖掘建設未來的展望:

  • 業務輕量級研發運維模式是不可阻擋的未來

天下大事,分久必合合久必分,5G 萬物互聯即将到來,多種終端裝置,需要輕量級研發運維模式的支援,從驅動研發模式演進的“降低技術門檻、跨平台能力”本質出發,高效的業務落地能力是王道,目前分雲 +iOS+android 的多端多人協作模式必将逐漸淘汰。

  • 面向容器化、統一 API 服務程式設計

雲和端運作環境容器化,是業務與基礎設施解耦的必經之路,通過容器化封裝隔離運作環境,通過容器提供的統一的 API 服務接口互動;雲與端容器技術會趨同,兩端容器會緊密的互動,雲端在技術體系上更深度的結合,實作雲端技術體系閉環。

  • 工程體系歸一,用戶端、服務端統一版本化釋出更新

目前割裂的研發模式,典型的表現是多端各自代碼分支;業務雲端一體化輕量級研發模式,業務的工程體系将會雲端歸一,在一個工程項目裡面,定義服務接口,在雲端容器實作服務透出,在用戶端容器實作服務調用;同時雲和端會統一化的版本化釋出運維體系,這裡需要對整個研發模式體系的再定義。

  • 技術部門組織架構的變革

人的要求變化,支援業務的組織生産關系将更新。

我們的使命

“革新研發模式、重構研發生态”

“一次編碼、到處運作” - 業務雲端一體化輕量級研發運維模式,等待我們一起建設。

One More Thing

淘寶基礎平台部-基礎服務團隊,歡迎在容器、K8s、serverless、service mesh上感興趣的同學,一起探索技術、創新突破,為阿裡乃至業界創造新價值,履歷投遞 [email protected]

更多技術幹貨,關注「淘系技術」微信公衆号~

“一次編碼、到處運作”,淘寶雲端一體化探索業務研發模式的演進雲端一體輕量級研發模式的核心挑戰GAIA 業務輕量級研發運維模式探索實踐GAIA設計理念總結展望我們的使命