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

移動 API 網關概念闡述

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

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

研發效率演進

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

統一編程模型

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

統一基礎服務

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

大規模平臺研發

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

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

客戶端在開發過程中,往往需要依賴服務端的服務,測試也是一樣,如果服務還沒開發好的話,就要等到功能開發差不多,才能進行測試。服務端因爲任務比較重,就有可能成爲項目開發的一個瓶頸。

API 契約先行解決了這個問題,創建一個 API,根據不同場景,預先設置一些數據,讓整個項目能夠進行並行開發。整個研發效率就能夠大大提高,服務靈活變更,快速生效,能夠支撐上百團隊並行開發。

高可用演進

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

安全與限流

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

容災與異地多活

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

運維體系演進

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

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

EMAS 頂層模型

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

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

出處:https://yq.aliyun.com/articles/596913?utm_content=m_51019

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/-Q25pTcO1vwPWtZMQlM9mg