1、在線教育將成為常態(tài)化應用
“還要擴容嗎?”
“先擴容10倍再說”
這已經(jīng)不是李諾(洋蔥學院聯(lián)合創(chuàng)始人兼CTO)第一次提到擴容了。受到疫情影響,今年全國學校普遍延期開學?!巴Un不停學”,線下教育停擺,教育行業(yè)轉(zhuǎn)戰(zhàn)線上。流量突然暴漲,擴容成了“常態(tài)”,而且每次的流量還是遠遠超過預期。
李諾去找楊臨風(洋蔥學院聯(lián)合創(chuàng)始人兼CEO)討論工作的時候,碰巧楊臨風正在寫一封給用戶的公開信。這次疫情讓洋蔥學院受到了極大的關注,但比起流量價值,楊臨風更想以自己的親身經(jīng)歷告訴用戶:“在家自主地學習,是每個學生都要面對的戰(zhàn)斗?!?/span>
李諾心里清楚,在超高流量的沖擊下要保持服務器平穩(wěn)、用戶體驗不受影響,這何嘗不是一場屬于洋蔥學院的戰(zhàn)斗。
2013年12月,楊臨風、朱若辰和李諾共同創(chuàng)立了洋蔥數(shù)學(現(xiàn)已更名為洋蔥學院),這家K12在線教育公司從初中數(shù)學課程切入,逐步發(fā)展到全學科,主攻人機交互學習的在線教育平臺開發(fā)。他們從國家課標和教材著手,開始系統(tǒng)地構建在線課程體系,對課本上每一個知識點進行更加精細的教研和設計,并逐個制作成5-8分鐘的動畫視頻課程,圍繞這些核心課程為學生打造個性化的學習體驗。
人機交互學習的教育模式不要說在當年,即便是現(xiàn)在也很前衛(wèi)。不僅如此,洋蔥的創(chuàng)始團隊在公司成立之初還做出了一個意識超前的決定:整套業(yè)務系統(tǒng)均基于阿里云搭建。
洋蔥學院的發(fā)展速度在互聯(lián)網(wǎng)教育公司里并不算快,李諾說,團隊把大部分的精力都花在了課程的研發(fā)和學習體驗的優(yōu)化上,以初中數(shù)學為例,足足花了4年才完成課程的打磨。當然,洋蔥學院對教育的這份堅持,也讓其在業(yè)界立下了一席之地。疫情影響下,短時間劇烈增長的市場需求把在線教育推到了“快車道”。以前是在線教育企業(yè)自己努力,現(xiàn)在是全社會一起推進他們“質(zhì)量在線”。
今年1月28日,洋蔥學院對外公布了針對疫情期間的課程捐贈方案,把過去六年積累制作的2650節(jié)核心課程全部免費開放,但流量的威力還是超過了他們的想象。據(jù)易觀千帆的公開數(shù)據(jù)顯示,洋蔥學院2020年2月的活躍用戶規(guī)模達到了795.92萬,同比增幅151%。
面對大流量、高并發(fā)訪問需求,洋蔥學院為了確保業(yè)務穩(wěn)定性,在阿里云技術專家的建議下,采用了阿里云容器服務。容器服務可以根據(jù)不同模塊的配置所需,資源分配更加合理,按照定義規(guī)則自動彈性伸縮避免了復雜的調(diào)度維護。
阿里云容器服務可以在幾分鐘內(nèi)擴充底層資源,滿足快速部署數(shù)千個應用實例的需求。為了更加從容地應對十倍擴容,洋蔥學院還進一步優(yōu)化了整體的ECS服務器配置,將大量的小規(guī)格ECS服務器更換成30至50核大規(guī)格ECS,改造后運維管控也更加便捷。使用云容器之后,系統(tǒng)在資源利用率上提升了約60%,出現(xiàn)問題后可快速隔離,當面對急劇增長的業(yè)務量,也可以在短
時間內(nèi)擴容進行業(yè)務支撐。為了及早發(fā)現(xiàn)故障并快速做出響應,洋蔥學院也采用了阿里云原生監(jiān)控系列產(chǎn)品,可以覆蓋到各類監(jiān)控報警問題,極大地縮短問題發(fā)現(xiàn)時間。
從2013年決定全面上云,到現(xiàn)在擁抱云原生新趨勢,洋蔥學院以一貫的超前意識,表達著這個時代互聯(lián)網(wǎng)公司該有的態(tài)度。
2、全面使用開源技術、云服務構建軟件服務的時代已經(jīng)到來
云原生在近幾年的發(fā)展用“乘風破浪”來形容一點也不為過。
應用上云已經(jīng)是不可逆轉(zhuǎn)的趨勢?;仡櫧陙砩虡I(yè)世界的發(fā)展趨勢,數(shù)字化轉(zhuǎn)型的出現(xiàn)使得企業(yè)中越來越多的業(yè)務演變成數(shù)字化業(yè)務,數(shù)字化對于業(yè)務渠道、競爭格局、用戶體驗等諸多方面都提出更加嚴苛的要求,這就要求技術具備更快的迭代速度。
為了實現(xiàn)這樣的速度,就需要充分利用云的強大能力,從云技術中獲得更高的可用性與可擴展能力,利用云來提升發(fā)布和運維的效率。而要做到這些,不僅僅是基礎設施和平臺的變化,應用也需要做出改變,擯棄傳統(tǒng)的土方法,在架構設計、開發(fā)方式、部署維護等各個階段和方面都基于云的特點來重新設計,從而建設全新的云化應用,即云原生應用。
2019年,Gartner曾經(jīng)發(fā)布報告表示云原生時代已經(jīng)到來,在未來三年中將有75%的全球化企業(yè)將在生產(chǎn)中使用容器化的應用。云原生相關技術不僅僅能用于云計算,即便是和云計算既對立又協(xié)同的邊緣計算,微服務、容器、Kubernetes依然是事實上的殺手應用和標準。
2019年,Gartner曾經(jīng)發(fā)布報告表示云原生時代已經(jīng)到來,在未來三年中將有75%的全球化企業(yè)將在生產(chǎn)中使用容器化的應用。云原生相關技術不僅僅能用于云計算,即便是和云計算既對立又協(xié)同的邊緣計算,微服務、容器、Kubernetes依然是事實上的殺手應用和標準。
以前一家企業(yè)想使用云原生的技術或產(chǎn)品,需要花費大量的精力研究一些開源項目,自己做運維和管理,還需要考慮集成、穩(wěn)定性保障等問題,這樣才能建立一個云原生平臺。今天,為了方便企業(yè)和開發(fā)者更容易地使用云原生的技術和產(chǎn)品,更好地接受云原生的理念,并解決企業(yè)擔憂的可靠性、性能、連續(xù)性等問題,阿里云為大家提供了一整套云原生產(chǎn)品家族,提供了非常強的SLA保障。
阿里云在幫助國內(nèi)企業(yè)了解云原生、使用云原生上做了很多工作。一方面是在內(nèi)部嘗試去使用這些技術,阿里巴巴內(nèi)部有非常豐富的、大規(guī)模的使用場景,通過這些場景可以充分打磨云原生技術。在技術成熟以后,將這些技術回饋到社區(qū),幫助云原生社區(qū)提高技術質(zhì)量和發(fā)展水平。
3、因為相信,所以看見
著云計算的普及與云原生的廣泛應用,越來越多的從業(yè)者、決策者清晰地認識到「云原生化將成為企業(yè)技術創(chuàng)新的關鍵要素,也是完成企業(yè)數(shù)字化轉(zhuǎn)型的最短路徑」。因此,具有前瞻思維的互聯(lián)網(wǎng)企業(yè)從應用誕生之初就扎根于云端,謹慎的新零售、政府、金融、醫(yī)療等領域的企業(yè)與機構也逐漸將業(yè)務應用遷移上云,深度使用云原生技術與云原生架構。
暢捷通是中國領先的小型微型企業(yè)管理云服務與軟件提供商,為400多萬小微企業(yè)提供智能云管理服務。隨著業(yè)務的快速發(fā)展,為了適應互聯(lián)網(wǎng)大型應用快速迭代以及頻繁發(fā)布的需求,暢捷通IT團隊對原有的IT系統(tǒng)進行了大量的微服務化改造,這是暢捷通進行云原生實踐邁出的第一步。
緊接著,暢捷通開始迎接下一步挑戰(zhàn):SaaS化企業(yè)管理云服務,具有用戶量大、業(yè)務復雜、調(diào)用鏈路長、與第三方應用系統(tǒng)深度集成等特點,給微服務化改造工作帶來了非常大的挑戰(zhàn)。特別是在新版本的發(fā)布過程中,如果不能保證整個流程平滑、可控,就很容易因為單個應用的更新而造成整個系統(tǒng)的崩潰。
為了快速解決這個痛點,暢捷通IT團隊找到阿里云技術專家,選擇阿里,不僅因為阿里的業(yè)務場景復雜度和對技術打磨的細致,還有阿里一直以來在云原生領域的深耕。最終,暢捷通決定將整個微服務架構逐步部署到阿里云提供的企業(yè)級分布式應用服務(EDAS)上。通過Spring Cloud技術體系建立的微服務應用,可以在不涉及任何代碼改動情況下,直接部署在EDAS上,整個遷移的過程也非常平滑,對于暢捷通的用戶而言沒有任何感知。部署之后,在面對復雜業(yè)務下的頻繁迭代時,暢捷通成功經(jīng)受住了考驗。
在進一步適應云原生的技術和產(chǎn)品以后,暢捷通的IT團隊也通過方案背后融入的方法論,掌握了一套適合自己的微服務治理機制,并開始實踐全鏈路灰度等全新的微服務治理思路。
4、還能再極致一點嗎?能!
和大部分計算模式不同,Serverless將“部署”這個動作從運維中“收走”,使開發(fā)者不用關心應用在哪里運行,更不用關心裝什么OS、怎么配置網(wǎng)絡、需要多少CPU……從架構抽象上看,當業(yè)務流量到來/業(yè)務事件發(fā)生時,云會啟動或調(diào)度一個已啟動的業(yè)務進程進行處理,處理完成后云自動會關閉/調(diào)度業(yè)務進程,等待下一次觸發(fā),也就是把應用的整個運行時都委托給云。
Serverless非常適合于事件驅(qū)動的數(shù)據(jù)計算任務、計算時間短的請求/響應應用、沒有復雜相互調(diào)用的長周期任務。
百富旅行是全球領先的在線旅游同業(yè)交易平臺,基于云計算和大數(shù)據(jù)決策為全球旅游從業(yè)者提供一站式智能整體解決方案。截至目前,百富旅行已經(jīng)與600多家航空公司、國內(nèi)所有火車線路、2500個汽車站,以及60多家郵輪集團進行了業(yè)務整合,網(wǎng)絡覆蓋全球100多個國家和地區(qū)。
隨著業(yè)務的飛速發(fā)展,百富旅行技術團隊通過Spring Cloud等開源框架搭建了完善的微服務技術架構,將微服務應用上云之后,不需要再考慮硬件資源購買以及服務器架設等運維步驟,這樣技術團隊可以將更多的精力投入到業(yè)務需求實現(xiàn)中。但是隨著系統(tǒng)迭代次數(shù)的增加,問題出現(xiàn)了:
從系統(tǒng)架構的角度,將微服務應用直接部署在云虛擬機上,跟部署在物理機房相比,并沒有本質(zhì)的區(qū)別,團隊依然需要從底層維護每一個應用實例,包括操作系統(tǒng)調(diào)整、磁盤容量規(guī)劃、JDK等組件安裝等工作,這些工作都每一臺云虛擬機投入使用的過程中,都是必不可少的。
在系統(tǒng)頻繁的迭代過程中,不同的開發(fā)小組甚至不同的開發(fā)人員都需要單獨的一套測試環(huán)境,久而久之,整個技術團隊創(chuàng)建了多套測試環(huán)境,其中一些測試環(huán)境包含了所有的微服務應用,整體資源利用率特別低,造成了大量的資源浪費。而且旅游業(yè)務本身也存在非常明顯的波峰波谷,微服務架構可以很方便地為每一個應用進行水平擴容,但如果用于擴容的虛擬機資源需要預先購買的話,同樣會造成大量的資源閑置。
擺在百富技術團隊面前的核心難題就是怎么解決資源的閑置與浪費問題。而這恰恰是Serverless最擅長的事情。由于不需要為Serverlesss應用購買底層服務器資源,直接按需申請,可以免去容量規(guī)劃、操作系統(tǒng)調(diào)優(yōu)等復雜的運維工作,Serverless架構的彈性伸縮機制正好切斷了資源浪費問題的源頭。
但是Serverless架構要怎么選,百富旅行技術團隊開始對市場上常見的實現(xiàn)方式和產(chǎn)品做調(diào)研:
Serverless架構有兩種常見的實現(xiàn)方式:第一種是把每個微服務應用進行容器化改造后,統(tǒng)一使用Kubernetes進行編排,并利用云廠商提供的彈性容器實例實現(xiàn)容器層的按需調(diào)用。這種方式的門檻很高,需要有精通Kubernetes技術的運維小組加入,并且需要團隊投入比較大的精力對應用進行容器化改造,暫時不適用于百富旅行這樣小規(guī)模高效率的技術團隊。
另一種方式是使用類似于AWS Lambda或阿里云FC函數(shù)計算引擎,將所有業(yè)務邏輯進行函數(shù)化重構。這種方式基本上需要將之前寫的代碼推倒重來,而且在一些擁有復雜調(diào)用鏈路的業(yè)余環(huán)節(jié)并不能發(fā)揮Serverless的優(yōu)勢,最終排除在考慮范圍內(nèi)。
經(jīng)過多輪技術調(diào)研以及與阿里云技術專家深入交流后,百富旅行技術團隊選擇了阿里云Serverless應用引擎(SAE)方案。區(qū)別于其它Serverless產(chǎn)品,SAE直接支持Spring Cloud、Dubbo等開發(fā)框架,實現(xiàn)了全面的Serverless化。開發(fā)者可以通過WAR、JAR、鏡像三種方式部署Serverless應用,不需要學習Kubernetes以及容器技術。部署在SAE上的微服務應用,可以按需申請資源,根據(jù)實際使用資源量按分鐘計費,避免業(yè)務不活躍時段的費用支出。特別是對于測試環(huán)境,SAE可以做到一鍵啟停,避免了資源閑置問題。選擇SAE為百富旅行節(jié)省了大量云資源的成本投入,并且減少一半以上的運維工作,為后續(xù)創(chuàng)新業(yè)務的發(fā)展打下了基礎。
5、云原生是一個時代下踐行者們“前赴后繼”的故事
一項新技術或者一套新的技術理念,之所以能被廣泛接受和快速發(fā)展,是因為有愿意相信并真正去落地實踐的公司,是他們在為整個時代探索著云計算更大的技術價值。當五年、十年以后我們再來看洋蔥學院、暢捷通、百富旅行等企業(yè)的實踐歷程,正是因為這些創(chuàng)新者們愿意接納一些新的改變,并以此去撬動更大的想象空間,我們才經(jīng)歷了一個如此蓬勃和充滿可能的時代。
他們才是真的乘風破浪!