雲計算

乘風破浪的雲原生

作者:禾易

1、在線教育將成為常態化應用

“還要擴容嗎?”
“先擴容 10 倍再說”

這已經不是李諾(洋蔥學院聯合創始人兼 CTO)第一次提到擴容了。受到疫情影響,今年全國學校普遍延期開學。“停課不停學”,線下教育停擺,教育行業轉戰線上。流量突然暴漲,擴容成了“常態”,而且每次的流量還是遠遠超過預期。

李諾去找楊臨風(洋蔥學院聯合創始人兼 CEO)討論工作的時候,碰巧楊臨風正在寫一封給用戶的公開信。這次疫情讓洋蔥學院受到了極大的關注,但比起流量價值,楊臨風更想以自己的親身經歷告訴用戶:“在家自主地學習,是每個學生都要面對的戰鬥。”

李諾心裡清楚,在超高流量的衝擊下要保持服務器平穩、用戶體驗不受影響,這何嘗不是一場屬於洋蔥學院的戰鬥。

2013 年 12 月,楊臨風、朱若辰和李諾共同創立了洋蔥數學(現已更名為洋蔥學院),這家K12在線教育公司從初中數學課程切入,逐步發展到全學科,主攻人機交互學習的在線教育平臺開發。他們從國家課標和教材著手,開始系統地構建在線課程體系,對課本上每一個知識點進行更加精細的教研和設計,並逐個製作成5-8分鐘的動畫視頻課程,圍繞這些核心課程為學生打造個性化的學習體驗。

人機交互學習的教育模式不要說在當年,即便是現在也很前衛。不僅如此,洋蔥的創始團隊在公司成立之初還做出了一個意識超前的決定:整套業務系統均基於阿里雲搭建。

洋蔥學院的發展速度在互聯網教育公司裡並不算快,李諾說,團隊把大部分的精力都花在了課程的研發和學習體驗的優化上,以初中數學為例,足足花了4年才完成課程的打磨。當然,洋蔥學院對教育的這份堅持,也讓其在業界立下了一席之地。疫情影響下,短時間劇烈增長的市場需求把在線教育推到了“快車道”。以前是在線教育企業自己努力,現在是全社會一起推進他們“質量在線”。

今年 1 月 28 日,洋蔥學院對外公佈了針對疫情期間的課程捐贈方案,把過去六年積累製作的 2650 節核心課程全部免費開放,但流量的威力還是超過了他們的想象。據易觀千帆的公開數據顯示,洋蔥學院 2020 年 2 月的活躍用戶規模達到了 795.92 萬,同比增幅 151%。

面對大流量、高併發訪問需求,洋蔥學院為了確保業務穩定性,在阿里雲技術專家的建議下,採用了阿里雲容器服務。容器服務可以根據不同模塊的配置所需,資源分配更加合理,按照定義規則自動彈性伸縮避免了複雜的調度維護。

阿里雲容器服務可以在幾分鐘內擴充底層資源,滿足快速部署數千個應用實例的需求。為了更加從容地應對十倍擴容,洋蔥學院還進一步優化了整體的 ECS 服務器配置,將大量的小規格 ECS 服務器更換成 30 至 50 核大規格 ECS,改造後運維管控也更加便捷。使用雲容器之後,系統在資源利用率上提升了約60%,出現問題後可快速隔離,當面對急劇增長的業務量,也可以在短

時間內擴容進行業務支撐。為了及早發現故障並快速做出響應,洋蔥學院也採用了阿里雲原生監控系列產品,可以覆蓋到各類監控報警問題,極大地縮短問題發現時間。

從2013年決定全面上雲,到現在擁抱雲原生新趨勢,洋蔥學院以一貫的超前意識,表達著這個時代互聯網公司該有的態度。

2、全面使用開源技術、雲服務構建軟件服務的時代已經到來

雲原生在近幾年的發展用“乘風破浪”來形容一點也不為過。

應用上雲已經是不可逆轉的趨勢。回顧近年來商業世界的發展趨勢,數字化轉型的出現使得企業中越來越多的業務演變成數字化業務,數字化對於業務渠道、競爭格局、用戶體驗等諸多方面都提出更加嚴苛的要求,這就要求技術具備更快的迭代速度。

為了實現這樣的速度,就需要充分利用雲的強大能力,從雲技術中獲得更高的可用性與可擴展能力,利用雲來提升發佈和運維的效率。而要做到這些,不僅僅是基礎設施和平臺的變化,應用也需要做出改變,擯棄傳統的土方法,在架構設計、開發方式、部署維護等各個階段和方面都基於雲的特點來重新設計,從而建設全新的雲化應用,即雲原生應用。

image.png

2019 年,Gartner 曾經發布報告表示雲原生時代已經到來,在未來三年中將有 75%的全球化企業將在生產中使用容器化的應用。雲原生相關技術不僅僅能用於雲計算,即便是和雲計算既對立又協同的邊緣計算,微服務、容器、Kubernetes 依然是事實上的殺手應用和標準。

2019 年,Gartner 曾經發布報告表示雲原生時代已經到來,在未來三年中將有 75%的全球化企業將在生產中使用容器化的應用。雲原生相關技術不僅僅能用於雲計算,即便是和雲計算既對立又協同的邊緣計算,微服務、容器、Kubernetes 依然是事實上的殺手應用和標準。

以前一家企業想使用雲原生的技術或產品,需要花費大量的精力研究一些開源項目,自己做運維和管理,還需要考慮集成、穩定性保障等問題,這樣才能建立一個雲原生平臺。今天,為了方便企業和開發者更容易地使用雲原生的技術和產品,更好地接受雲原生的理念,並解決企業擔憂的可靠性、性能、連續性等問題,阿里云為大家提供了一整套雲原生產品家族,提供了非常強的 SLA 保障。

阿里雲在幫助國內企業瞭解雲原生、使用雲原生上做了很多工作。一方面是在內部嘗試去使用這些技術,阿里巴巴內部有非常豐富的、大規模的使用場景,通過這些場景可以充分打磨雲原生技術。在技術成熟以後,將這些技術回饋到社區,幫助雲原生社區提高技術質量和發展水平。

3、因為相信,所以看見

著雲計算的普及與雲原生的廣泛應用,越來越多的從業者、決策者清晰地認識到「雲原生化將成為企業技術創新的關鍵要素,也是完成企業數字化轉型的最短路徑」。因此,具有前瞻思維的互聯網企業從應用誕生之初就紮根於雲端,謹慎的新零售、政府、金融、醫療等領域的企業與機構也逐漸將業務應用遷移上雲,深度使用雲原生技術與雲原生架構。

暢捷通是中國領先的小型微型企業管理雲服務與軟件提供商,為400多萬小微企業提供智能雲管理服務。隨著業務的快速發展,為了適應互聯網大型應用快速迭代以及頻繁發佈的需求,暢捷通IT團隊對原有的IT系統進行了大量的微服務化改造,這是暢捷通進行雲原生實踐邁出的第一步。

緊接著,暢捷通開始迎接下一步挑戰:SaaS化企業管理雲服務,具有用戶量大、業務複雜、調用鏈路長、與第三方應用系統深度集成等特點,給微服務化改造工作帶來了非常大的挑戰。特別是在新版本的發佈過程中,如果不能保證整個流程平滑、可控,就很容易因為單個應用的更新而造成整個系統的崩潰。

為了快速解決這個痛點,暢捷通IT團隊找到阿里雲技術專家,選擇阿里,不僅因為阿里的業務場景複雜度和對技術打磨的細緻,還有阿里一直以來在雲原生領域的深耕。最終,暢捷通決定將整個微服務架構逐步部署到阿里雲提供的企業級分佈式應用服務(EDAS)上。通過Spring Cloud技術體系建立的微服務應用,可以在不涉及任何代碼改動情況下,直接部署在EDAS上,整個遷移的過程也非常平滑,對於暢捷通的用戶而言沒有任何感知。部署之後,在面對複雜業務下的頻繁迭代時,暢捷通成功經受住了考驗。

在進一步適應雲原生的技術和產品以後,暢捷通的IT團隊也通過方案背後融入的方法論,掌握了一套適合自己的微服務治理機制,並開始實踐全鏈路灰度等全新的微服務治理思路。

4、還能再極致一點嗎?能!

和大部分計算模式不同,Serverless 將“部署”這個動作從運維中“收走”,使開發者不用關心應用在哪裡運行,更不用關心裝什麼 OS、怎麼配置網絡、需要多少 CPU …… 從架構抽象上看,當業務流量到來 / 業務事件發生時,雲會啟動或調度一個已啟動的業務進程進行處理,處理完成後雲自動會關閉/ 調度業務進程,等待下一次觸發,也就是把應用的整個運行時都委託給雲。

Serverless 非常適合於事件驅動的數據計算任務、計算時間短的請求 / 響應應用、沒有複雜相互調用的長週期任務。

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

隨著業務的飛速發展,百富旅行技術團隊通過Spring Cloud 等開源框架搭建了完善的微服務技術架構,將微服務應用上雲之後,不需要再考慮硬件資源購買以及服務器架設等運維步驟,這樣技術團隊可以將更多的精力投入到業務需求實現中。但是隨著系統迭代次數的增加,問題出現了:

從系統架構的角度,將微服務應用直接部署在雲虛擬機上,跟部署在物理機房相比,並沒有本質的區別,團隊依然需要從底層維護每一個應用實例,包括操作系統調整、磁盤容量規劃、JDK等組件安裝等工作,這些工作都每一臺雲虛擬機投入使用的過程中,都是必不可少的。

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

擺在百富技術團隊面前的核心難題就是怎麼解決資源的閒置與浪費問題。而這恰恰是Serverless最擅長的事情。由於不需要為Serverlesss應用購買底層服務器資源,直接按需申請,可以免去容量規劃、操作系統調優等複雜的運維工作,Serverless架構的彈性伸縮機制正好切斷了資源浪費問題的源頭。

但是Serverless架構要怎麼選,百富旅行技術團隊開始對市場上常見的實現方式和產品做調研:

Serverless架構有兩種常見的實現方式:第一種是把每個微服務應用進行容器化改造後,統一使用Kubernetes進行編排,並利用雲廠商提供的彈性容器實例實現容器層的按需調用。這種方式的門檻很高,需要有精通Kubernetes技術的運維小組加入,並且需要團隊投入比較大的精力對應用進行容器化改造,暫時不適用於百富旅行這樣小規模高效率的技術團隊。

另一種方式是使用類似於AWS Lambda或阿里雲FC函數計算引擎,將所有業務邏輯進行函數化重構。這種方式基本上需要將之前寫的代碼推倒重來,而且在一些擁有複雜調用鏈路的業餘環節並不能發揮Serverless的優勢,最終排除在考慮範圍內。

經過多輪技術調研以及與阿里雲技術專家深入交流後,百富旅行技術團隊選擇了阿里雲Serverless應用引擎(SAE)方案。區別於其它 Serverless 產品,SAE 直接支持 Spring Cloud、Dubbo 等開發框架,實現了全面的Serverless化。開發者可以通過WAR、JAR、鏡像三種方式部署Serverless應用,不需要學習Kubernetes以及容器技術。部署在SAE上的微服務應用,可以按需申請資源,根據實際使用資源量按分鐘計費,避免業務不活躍時段的費用支出。特別是對於測試環境,SAE可以做到一鍵啟停,避免了資源閒置問題。選擇SAE為百富旅行節省了大量雲資源的成本投入,並且減少一半以上的運維工作,為後續創新業務的發展打下了基礎。

5、雲原生是一個時代下踐行者們“前赴後繼”的故事

一項新技術或者一套新的技術理念,之所以能被廣泛接受和快速發展,是因為有願意相信並真正去落地實踐的公司,是他們在為整個時代探索著雲計算更大的技術價值。當五年、十年以後我們再來看洋蔥學院、暢捷通、百富旅行等企業的實踐歷程,正是因為這些創新者們願意接納一些新的改變,並以此去撬動更大的想象空間,我們才經歷了一個如此蓬勃和充滿可能的時代。

他們才是真的乘風破浪!

Leave a Reply

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