開發與維運

百富旅行:阿里雲SAE助力下實現Serverless+微服務完美結合

百富旅行是全球領先的在線旅遊同業交易平臺,覆蓋機票、火車票、酒店、郵輪、汽車票、門票、旅遊、商城等版塊,通過整合全球的優勢資源,基於雲計算和大數據決策為全球旅遊從業者提供一站式智能整體解決方案。截至目前,百富旅行已經與600多家航空公司、國內所有火車線路、2500個汽車站,以及60多家郵輪集團進行了業務整合,網絡覆蓋全球100多個國家和地區。

隨著業務的飛速發展,百富旅行技術團隊通過Spring Cloud 等開源框架搭建了完善的微服務技術架構,並在底層服務器資源方面全面擁抱阿里雲ECS,利用雲計算提升工作效率,降低工作成本。將微服務應用上雲之後,不需要再考慮硬件資源購買以及服務器架設等運維步驟,這樣技術團隊可以將更多的精力投入到業務需求實現中。隨著系統迭代次數的增加,原有的微服務架構開始暴露出一些問題:
從系統架構的角度,將微服務應用直接部署在雲虛擬機上,跟部署在物理機房相比,並沒有本質的區別,團隊依然需要從底層維護每一個應用實例,包括操作系統調整、磁盤容量規劃、JDK等組件安裝等工作,這些工作都每一臺雲虛擬機投入使用的過程中,都是必不可以的。
另外,在系統頻繁的迭代過程中,不同的開發小組甚至不同的開發人員都需要單獨的一套測試環境,久而久之整個技術團隊創建了多套測試環境,其中一些測試環境包含了所有的微服務應用,整體資源利用率特別低,造成了大量的資源浪費。而且旅遊業務本身也存在非常明顯的波峰波谷,微服務架構可以很方便地為每一個應用進行水平擴容,但如果用於擴容的虛擬機資源需要預先購買的話,同樣會造成大量的資源閒置。

近些年在雲計算領域異軍突起的Serverless架構正好能解決上述這兩個問題。由於不需要為Serverlesss應用購買底層服務器資源,直接按需申請,可以免去容量規劃、操作系統調優等複雜的運維工作,Serverless架構的彈性伸縮機制也徹底解決了資源的閒置與浪費問題。因此,百富旅行技術團隊開始對Serverless架構進行技術預研。
Serverless架構有兩種常見的實現方式:第一種是把每個微服務應用進行容器化改造後,統一使用Kubernetes進行編排,並利用雲廠商提供的彈性容器實例實現容器層的按需調用。這種方式的門檻很高,需要有精通Kubernetes技術的運維小組加入,並且需要團隊投入比較大的精力對應用進行容器化改造,暫時不適用於百富旅行這樣小規模高效率的技術團隊。
另一種方式是使用類似於AWS Lambda或阿里雲FC函數計算引擎,將所有業務邏輯進行函數化重構。這種方式基本上需要將之前寫的代碼推倒重來,而且在一些擁有複雜調用鏈路的業餘環節並不能發揮Serverless的優勢,對百富旅行而言更加不合適。
經過多輪技術調研以及與阿里雲技術專家深入交流後,百富旅行技術團隊認為,阿里雲提供的Serverless應用引擎(SAE)方案最適合他們的Serverless平臺。區別於其它 Serverless 產品,SAE 直接支持 Spring Cloud、Dubbo 等開發框架,真正實現了 Serverless 架構 + 微服務架構的完美結合。開發者可以通過WAR、JAR、鏡像三種方式部署Serverless應用,不需要學習Kubernetes以及容器技術,也能享受Kubernetes和雲上彈性容器的技術紅利

由於SAE屬於應用層的Serverless方案,對於之前通過Spring Cloud框架構建的微服務應用,可以非常平滑地逐步遷移到SAE平臺上,不涉及任何代碼和業務邏輯的修改,這一點也是百富旅行全面擁抱SAE方案最重要的原因。
image.png
部署在SAE上的微服務應用,可以按需申請資源,根據實際使用資源量按分鐘計費,避免業務不活躍時段的費用支出,有效降低成本,並且微服務應用也能充分的發揮彈性伸縮的價值。特別是對於測試環境,SAE可以做到一鍵啟停,避免了資源閒置問題。對於生產環境的任何一個應用,如果有擴容實例的需求,也能夠迅速拉起新的實例,並自動與SLB以及註冊中心完成綁定。
此外,通過SAE提供的應用生命週期管理能力,百富旅行技術團隊徹底告別了通過編寫腳本進行版本發佈的方式。不論是應用的部署、啟動、停止、與SLB關聯、擴容實例、縮容實例,都可以通過阿里雲控制檯進行可視化操作。配合SAE的版本管理以及多種灰度發佈機制,進一步降低了版本更新過程中的風險。對於新發布的版本可以在生產環境先進行小規模驗證,一旦不能滿足要求可以一鍵快速回滾。SAE還額外提供了系統監控功能,能從基礎資源、JVM、應用鏈路等多個層面實時、直觀地瞭解系統運行狀態。
經歷了基於SAE的Serverless化演進之後,百富旅行節省了大量雲資源的成本投入,並且減少一半以上的運維工作,為業務持續發展打下了堅實的基礎。未來,百富旅行將繼續基於自身的技術特點不斷深入探索Serverless架構,在擁抱新技術的同時也能充分享受到雲計算的紅利。

更多解決方案和產品細節,可點擊Serverless 應用引擎 SAE。

Leave a Reply

Your email address will not be published. Required fields are marked *