阿里千億級流量移動API網關的演進之路

在2018年雲棲大會·武漢峯會的企業研發雲專場中,來自阿里巴巴淘寶技術部基礎平臺部的移動中間件基礎服務技術專家高志恆(魯少千)爲現場的聽衆帶來了題爲《阿里千億級流量移動API網關的演進》的精彩分享。在本次分享中,他重點闡述了移動API網關的概念,研發效率演進,高可用演進以及運維體系演進。
數十款阿里雲產品限時折扣中趕快點擊這裏領券開始雲上實踐吧!
如下爲精彩視頻內容整理:html

移動API網關概念闡述

 

_11


網關是不一樣的網絡之間協議的一個協議適配。顧名思義,移動API網關是針對於移動APP開發,在不一樣的服務之間創建的一個系統。它主要是爲不一樣的服務領域提供的不一樣的服務入口,簡化其中的複雜性。編程

_12


不一樣的公司對移動API網關的定義是不同的。在阿里,移動API網關更多的是承載阿里全部無線業務的一個核心技術設施。同時也是承載着每年雙十一雙十二這種超大規模流量的一個高性能高穩定的系統。同時,它也是阿里無線全部業務高效研發的一個發動機,它爲業務方法提供快速高效套取移動能力的技術解決方案。它包括端到雲整套的網絡的深度優化,服務端的API的管理以及安全管控運維等。後端

研發效率演進

在移動互聯網的發展初期,使用的服務的業務不是特別多,當時爲了業務的快速上線,每一個人分散的獨立去開發,快速去作各自的業務。
隨着移動互聯網業務的快速發展,這種開發模式暴露的問題愈來愈多,管理上很是混亂,缺失統一研發模型和標準化,基礎能力重複研發,效率低下。
爲了解決這樣的問題,作出瞭如下一些改變:安全

統一編程模型

 

_13


將編程模型進行了標準化,同時將以前分散在各個地區的服務集中式收靠起來,在網關上進行開發,經過網關統一去對客戶端提供服務。服務器

統一基礎服務

 

_14


咱們把客戶端端到服務端交互的技術細節體系進行一個很好的封裝,最終行成一個網關SDK,來提供給上層業務去使用,經過這種方式就能夠經過標準SDK去作不少事情。
就是把原來分散在各個地方須要建設的公共服務能力下沉。經過在服務端和客戶端兩方面去把公共的一些設施下沉下來之後,對研發效率效率會有一個很大的改變,由於全部的業務只須要關注於業務邏輯自己的開發。服務的開發模式也不會像之前同樣亂。
隨着互聯網的慢慢成熟,淘寶有愈來愈多的業務,從而慢慢的轉向了無限化。因爲業務大量涌入進來,致使開發分支衝突嚴重;高頻發佈;穩定性沒法保障。
爲了解決這個問題,咱們把整個網關的技術體系進行一個大的改造升級,將整個網關係統推向了一個嶄新的網絡時代,一個平臺架構的時代。網絡

大規模平臺研發

 

_15


經過網關的升級,能夠實現大規模的平臺化研發。
第一,把業務跟網關以服務化的形式拆分到子系統裏面去,將整個系統網關和後端業務進行解耦;
第二,引伸出一個叫API的概念,將整個服務以API契約這種形式去暴露出來;
第三,建立一個開發測試的平臺,經過這個平臺,能夠將APP進行很好的測試。架構

_16


咱們研究出一種新的技術叫動態發佈,原來服務暴露須要通過網關發佈。經過這種技術能夠實現服務的動態部署,不須要再去進行原來系統級別的發佈。解決了網關穩定性的問題。運維

_17


客戶端在開發過程當中,每每須要依賴服務端的服務,測試也是同樣,若是服務還沒開發好的話,就要等到功能開發差很少,才能進行測試。服務端由於任務比較重,就有可能成爲項目開發的一個瓶頸。
API契約先行解決了這個問題,建立一個API,根據不一樣場景,預先設置一些數據,讓整個項目可以進行並行開發。整個研發效率就可以大大提升,服務靈活變動,快速生效,可以支撐上百團隊並行開發。組件化

高可用演進

高可用是指,咱們提供的產品與服務可以高度持續可以使用。另一層含義是指讓用戶可以更加安全,更好體驗的高度使用。因爲會出現APP被反編譯,紅包被刷,流量暴增應用被打垮等問題,沒法作到高可用,用戶體驗很糟糕,從而對產品是去信心,對整個業務傷害很是大。另外一方面,系統出現問題可否快速恢復,也是急需解決的問題。
產品的高可用能夠經過如下手段保障:性能

安全與限流

 

_18


針對以上出現的問題,網關首先對安全進行加固,而後進行限流。對於安全加固,在端上使用安全保鏢去加固程序,讓別人沒辦法打包或反編譯代碼。在服務端增強防刷等手段。經過這些措施,就能夠保證用戶的安全。
而對於限流部分,當一波大流量過來時,系統仍然可以正常的提供服務,很好的保證了系統的穩定。
當光纖斷掉的時候,整個系統網絡就斷掉了。即便產品作很是好,也沒辦法使用了。那麼就須要用到快速解決故障的系統。在光纖斷掉的時候,把用戶調到其餘部分去使用正常的機房,這樣用戶的體驗纔會更好。

容災與異地多活

 

_19


咱們首先會根據用戶的維度把用戶分配到不一樣的機房。在服務端有一個流量調度服務可以快速的把用戶從有問題的機房調到可以正常使用的機房。從而使故障快速恢復,分鐘級生效,用戶的體驗也會很是好。
經過這幾方面的保障,即便是在大流量的環境下,用戶的體驗也會更好。

運維體系演進

產品在線上可以穩定的運行,這是最基本的,同時,咱們也要了解產品運行時的情況。網關要承載大規模的系統,須要一個完善的運維體系支撐。
在運維體系還不完善的階段,在交易下跌的狀況下,因爲不知道是哪一個服務器出了問題,須要人工到線下依次進行排查,所以排除故障所需的時間會很是長,速度也很是慢。 

_20


而完善以後的運維體系,可以把全部線上的數據統計出來,作多維度報表。而後結合大數據人工智能對線上的數據進行實時監控告警,快速精確地定位問題,並進行故障分析。

EMAS頂層模型

 

_21


EMAS頂層模型提供了移動端開發的整套技術體系,可以快速打造一個相似於手機淘寶級別的APP。例如,天貓、支付寶等等。咱們經過產品的形式將EMAS頂層模型共享出來。

_22


上圖爲針對企業移動研發問題的解決方案,包括持續交付解決方案,組件化解決方案,跨平臺解決方案,泛質量管理解決方案以及網關統一接入解決方案。

_23


若是對EMAS感興趣,上圖爲交流羣的二維碼,你們能夠在裏面進行移動研發平臺的學習和交流。
本文由雲棲志願者小組毛鶴整理編輯。

相關文章
相關標籤/搜索