天天看點

雲原生是一個時代下踐行者們的故事12345

作者 | 禾易

來源 | 淩雲時刻(微信号:linuxpk)

1

這場疫情讓線上教育受到了更大的關注,未來的很長 一段時間裡,線上教育都将成為常态化應用。

“還要擴容嗎?”

“先擴容 10 倍再說”

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

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

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

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

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

熱熱鬧鬧的線上教育市場上,洋蔥學院一直被稱為“一股清流”。李諾說:“比起市場上的聲量,我們更關注如何去提升那些傳統教育下糟糕的學習體驗問題。”李諾曾經是創新工場首個孵化項目“點心 OS”的技術負責人,後來項目被收購後,他開始尋找做更有意義的事業。在創辦洋蔥學院時,因為自身的技術背景,李諾想通過技術的方式去改變教育。“我們的願景是要以學生為本,同時去賦能教師,最終改變教育的本質問題”。李諾相信技術可以給教育帶來無限可能,比如用大資料追蹤每個學生的學習行為,用人工智能帶來個性化的學習體驗。

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

今年 1 月 28 日,洋蔥學院對外公布了針對疫情期間的課程捐贈方案,把過去六年積累制作的 2650 節核心課程全部免費開放,這很大程度上源于這個團隊一直都有的“公益底色”,但流量的威力還是超過了他們的想象。據易觀千帆的公開資料顯示,洋蔥學院 2020 年 2 月的活躍使用者規模達到了 795.92 萬,同比增幅 151%。

面對大流量、高并發通路需求,洋蔥學院為了確定業務穩定性,在阿裡雲技術專家的建議下,采用了阿裡雲容器服務。容器服務可以根據不同子產品的配置所需,資源配置設定更加合理,按照定義規則自動彈性伸縮避免了複雜的排程維護。

阿裡雲容器服務可以在幾分鐘内擴充底層資源,滿足快速部署數千個應用執行個體的需求。為了更加從容地應對十倍擴容,洋蔥學院還進一步優化了整體的 ECS 伺服器配置,将大量的小規格 ECS 伺服器更換成 30 至 50 核大規格 ECS,改造後運維管控也更加便捷。使用雲容器之後,系統在資源使用率上提升了約60%,出現問題後可快速隔離,當面對急劇增長的業務量,也可以在短時間内擴容進行業務支撐。為了及早發現故障并快速做出響應,洋蔥學院也采用了阿裡雲原生監控系列産品,可以覆寫到各類監控報警問題,極大地縮短問題發現時間。

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

2

上雲成為企業持續發展的必然選擇,全面使用開源技 術、雲服務建構軟體服務的時代已經到來。

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

随着虛拟化技術的成熟和分布式架構的普及,在容器技術、可持續傳遞、編排系統等開源社群的推動下,以及微服務等開發理念的帶動下,應用上雲已經是不可逆轉的趨勢。回顧近年來商業世界的發展趨勢,數字化轉型的出現使得企業中越來越多的業務演變成數字化業務,數字化對于業務管道、競争格局、使用者體驗等諸多方面都提出更加嚴苛的要求,這就要求技術具備更快的疊代速度。

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

雲原生是一個時代下踐行者們的故事12345

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

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

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

他們才是真的乘風破浪!