天天看點

這家線上旅遊企業将 Serverless 和微服務進行了完美結合

客戶介紹

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

業務痛點

随着業務的飛速發展,百富旅行技術團隊通過Spring Cloud 等開源架構搭建了完善的微服務技術架構,并在底層伺服器資源方面全面擁抱阿裡雲ECS,利用雲計算提升工作效率,降低工作成本。将微服務應用上雲之後,不需要再考慮硬體資源購買以及伺服器架設等運維步驟,這樣技術團隊可以将更多的精力投入到業務需求實作中。随着系統疊代次數的增加,原有的微服務架構開始暴露出一些問題:

1、微服務運維難度大

從系統架構的角度,将微服務應用直接部署在雲虛拟機上,跟部署在實體機房相比,并沒有本質的差別,團隊依然需要從底層維護每一個應用執行個體,包括作業系統調整、磁盤容量規劃、JDK等元件安裝等工作,這些工作都每一台雲虛拟機投入使用的過程中,都是必不可以的。

2、測試環境使用率低,閑置資源高

在系統頻繁的疊代過程中,不同的開發小組甚至不同的開發人員都需要單獨的一套測試環境,久而久之整個技術團隊建立了多套測試環境,其中一些測試環境包含了所有的微服務應用,整體資源使用率特别低,造成了大量的資源浪費。而且旅遊業務本身也存在非常明顯的波峰波谷,微服務架構可以很友善地為每一個應用進行水準擴容,但如果用于擴容的虛拟機資源需要預先購買的話,同樣會造成大量的資源閑置。

選型調研

近些年在雲計算領域異軍突起的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使用實踐

由于SAE屬于應用層的Serverless方案,對于之前通過Spring Cloud架構建構的微服務應用,可以非常平滑地逐漸遷移到SAE平台上,不涉及任何代碼和業務邏輯的修改,這一點也是百富旅行全面擁抱SAE方案最重要的原因。

這家線上旅遊企業将 Serverless 和微服務進行了完美結合

部署在SAE上的微服務應用,可以按需申請資源,根據實際使用資源量按分鐘計費,避免業務不活躍時段的費用支出,有效降低成本,并且微服務應用也能充分的發揮彈性伸縮的價值。特别是對于測試環境,SAE可以做到一鍵啟停,避免了資源閑置問題。對于生産環境的任何一個應用,如果有擴容執行個體的需求,也能夠迅速拉起新的執行個體,并自動與SLB以及注冊中心完成綁定。

此外,通過SAE提供的應用生命周期管理能力,百富旅行技術團隊徹底告别了通過編寫腳本進行版本釋出的方式。不論是應用的部署、啟動、停止、與SLB關聯、擴容執行個體、縮容執行個體,都可以通過阿裡雲控制台進行可視化操作。配合SAE的版本管理以及多種灰階釋出機制,進一步降低了版本更新過程中的風險。對于新釋出的版本可以在生産環境先進行小規模驗證,一旦不能滿足要求可以一鍵快速復原。SAE還額外提供了系統監控功能,能從基礎資源、JVM、應用鍊路等多個層面實時、直覺地了解系統運作狀态。

經曆了基于SAE的Serverless化演進之後,百富旅行節省了大量雲資源的成本投入,并且減少一半以上的運維工作,為業務持續發展打下了堅實的基礎。未來,百富旅行将繼續基于自身的技術特點不斷深入探索Serverless架構,在擁抱新技術的同時也能充分享受到雲計算的紅利。

更多解決方案和産品細節,可點選

Serverless 應用引擎 SAE >>