作者 | 叔同
來源 | 阿裡技術公衆号
雲原生是近幾年最火爆的技術熱詞之一,幾乎所有的雲計算産品都會或多或少跟雲原生發生關聯,雲原生正在重塑整個軟體的生命周期。但到底什麼是雲原生?雲原生帶來的最大的技術創新和未來機會是什麼?以及,圍繞雲原生,是否可以建構出一套雲上的開發和運維體系,打造新一代研發平台,實作研發效率的最大化?
以下内容整理自阿裡雲雲原生應用平台負責人丁宇(叔同)在阿裡内部的技術分享,希望幫助技術同學更好地了解雲原生。

丁宇(叔同)
我經常在電梯裡聽見一些同學在讨論雲原生,大家會問雲原生為什麼這麼火。我們将時間線倒推20年,當時最流行的是企業軟體架構,企業使用ERP、CRM做資訊化改革。十年前,消費網際網路開始崛起,那個年代最流行的是網際網路技術;而今天是産業網際網路盛行的時代,在雲計算快速發展的背景下,企業需要加速數字化創新,打造數字韌性能力,雲原生應運而生。
一 因雲而生的雲原生
什麼是雲原生?這是很多同學都關心的問題。雲原生的代表技術包括容器、服務網格、微服務、不可變基礎設施和聲明式API。這些技術能夠建構容錯性好、易于管理和便于觀察的松耦合系統。結合可靠的自動化手段,雲原生技術使工程師能夠輕松地對系統做出頻繁和可預測的重大變更。
雲原生是一種新的計算方式,讓應用能夠充分使用雲的計算優勢。隻有結合雲原生所提供的雲服務,改造應用的架構,才能夠更好地使用雲原生技術,以及更好地建構彈性、穩定、松耦合的分布式應用,解決分布式複雜性問題。此外,對架構的改造還意味着相關的開發模式、傳遞方式、運維方式等都要随之改變,比如,采用微服務架構重寫應用、用聲明式 API和自動化工具更新運維方式等。簡單來說,雲原生使得整個軟體的生産流水線都發生了巨大的變化,而具體的變化程度又取決于企業對雲原生的使用程度。
那麼,雲原生和雲計算的差別是什麼?我們認為,雲原生是雲計算的再更新。雲計算的優勢是資源、計算、存儲、網絡的池化,這種池化帶來的好處是大規模的集約性管理,彈性、分布式無處不在,它可以用一種API進行運維管理,進而實作管理的自動化。今天,雲原生技術隻有跟雲結合起來才能實作它的使命,去建構那些具備高彈性、可擴充、松耦合、容錯性好等特性的系統。
雲原生和雲計算結合在一起是什麼?就是雲原生産品。今天,阿裡雲對于雲原生有一個定義,叫生于雲、長于雲,因雲而生的産品、技術、軟體、硬體、架構,我們認為它都是雲原生。以阿裡雲為例,我們提供了大資料、中間件、資料庫、安全、音視訊,以及雲原生網絡、彈性裸金屬伺服器、存儲等,這些都是雲原生産品。從這個次元來看,雲原生的内涵被極大地豐富了。而從企業客戶的角度,雲原生就是企業建構了新一代的軟體架構,也就是雲原生架構。
二 阿裡巴巴15年雲原生實踐
2006年,我們開始探索網際網路分布式架構,這也是阿裡巴巴雲原生實踐的起點。之是以要做網際網路分布式架構,是因為當時淘寶在快速發展過程中遇到了一些困難,比如300人開發3個系統,這會帶來一些沖突問題,如代碼釋出、代碼合并等,這些沖突導緻研發團隊的效率大幅下降,業務推進不夠靈活。因為這些痛點,我們提出要做服務化的拆分,也就是分布式系統。在2008年淘寶完成了服務化拆分,形成了三大核心中間件,并對行業進行了開源。
2011年,我們開始推進容器化的落地。為什麼要做容器化?要知道,在2011年全球做容器化改造的公司都屈指可數。要做容器化主要是因為我們開始重點關注資源使用率的問題,從資源的供給層面,過去有幾種形态,比如用純粹的實體機,這就意味着部署密度比較粗,是以使用率不高。如果用虛拟化進行隔離,就會産生一定的資源消耗。在2011年,阿裡巴巴開始做容器化技術改造——T4項目。容器解決了三個核心問題,一是部署密度,二是運維效率,三是資源隔離。随着Docker的出現,其容器鏡像的标準化能力對自動運維産生了非常強的推動,保證容器可以實作标準化的傳遞。基于此,阿裡巴巴将Docker內建,推進更标準化的雲原生技術。
2015年,當我們的技術和産品成熟之後,就開始推進産品技術的商業化,并擁抱雲原生标準。在這段過程裡,阿裡巴巴自身的業務發展也開始全面享受雲計算紅利。比如雙11、雙12這樣峰值型業務,如何通過雲平台去解決資源池化後帶來的極緻彈性能力?從2015年開始,阿裡雲開始支撐阿裡巴巴雙11,與此同時,我們開始落地容器的統一排程以及底層資源池的統一。除此之外,我們也開展了多種工作,比如混合部署,實作技術棧的統一、資料的統一,進而大幅降低了資源成本,提升了運維效率,更好地推進業務的智能化。
可以設想一下,一家公司有1萬名工程師,如果可以提升10%的研發效率,就能節約1000名工程師,這極大地釋放了我們的生産力。進一步,如果我們能有一些更高效的平台,更先進的方法和流程,并融入到技術體系中,就會給技術人員的産能帶來巨大的提升。
2019年,對于阿裡雲而言意義重大。在這一年,阿裡雲支撐了阿裡巴巴雙11核心系統100%上雲,線上業務容器規模近200萬、100%采用神龍裸金屬伺服器、計算成本效益提升20%。緊接着在2020年,我們又完成了核心系統100%雲原生化,雲原生産品開始全面支撐集團大促,并成為全球最大規模雲原生實踐的新底座。這背後的原動力,就是利用雲原生的平台、産品、工具,實作應用雲上生、雲上長。
事實上,基于伺服器的雲服務并不是雲時代的終态。試想一下,如果伺服器的概念被進一步抽象,那麼與伺服器有關的維護工作都會變成由雲來承擔,這就是我們常說的 Serverless。過去十年,雲正在逐漸向 Serverless 演進。2016 年,阿裡雲釋出的函數計算提供了函數級抽象,2019 年釋出的 SAE 提供了應用級抽象,這些産品都抹去了伺服器的概念,讓用雲方式得到極大的簡化,并逐漸成為趨勢。
三 阿裡雲對雲原生的斷言
在企業上雲的趨勢下,我們看到越來越多的企業和開發者開始把業務與技術向雲原生演進。在雲原生時代,雲産品的核心競争力是什麼?在我看來,雲産品的立身之本就是持續要做先進生産力的代表,這就要求雲産品具備硬核的技術能力,并能實作快速疊代。對于任何一家企業而言,自身的系統是很難具備如此頑強的生命力和競争力。是以,阿裡巴巴在2020年全面切換為雲原生産品支撐大促,一是認準了雲原生技術趨勢,二是雲産品給阿裡巴巴内部的研發效能、資源使用率帶來極大的提升。
基于此,阿裡雲對雲原生提出了三個斷言:
首先,容器+K8s将成為雲計算的新界面。容器徹底改變了雲的使用方式,它解決了許多問題的同時,還創造了新的架構可能性。容器化是搭建雲原生的關鍵,如果說雲原生是一棟高樓大廈,那麼容器化便是這座大樓的底座。容器向上支撐多種工作負載和分布式架構,向下封裝基礎設施,屏蔽底層架構和異構環境的差異性,并能夠形成應用的打包鏡像分發傳遞标準。阿裡雲容器服務 ACK 向下封裝了30款雲産品,對于整個自動化運維和雲平台的互動形成了一個新的界面,進而提升了系統的彈性能力和自動化運維能力。同時,容器也推動了軟硬一體化的更新,如神龍裸金屬伺服器。
其次,對于開發者而言,雲原生正在重塑整個軟體生命周期。我們看到雲原生向下延伸推動軟硬一體化,向上延伸推動架構現代化,水準延伸解決研發運維全生命周期的挑戰,包括代碼開發、DevOps、CICD流程、運維監控、可觀測等。雲原生與開發者的整個開發流程息息相關,是開發者不可忽視的重要助力。
最後,對于企業而言,雲原生是企業數字創新的最短路徑。雲原生對于企業技術演進的價值在于:首先是基礎設施的雲化,以容器為代表,将基礎設施非常平滑地搬到雲上,幫助企業完成基礎設施的雲化。二是核心技術網際網路化,雲原生将網際網路技術以标準化的方式傳遞給傳統線下企業,網際網路的技術、思路、理念、組織形态可助力傳統企業能力更新,實作低耦合、可擴充、小步快跑、快速疊代、靈活開發、業務快速上線等。三是雲原生驅動應用架構向現代化演進。我們常說“一雲多芯”“雲邊一體”等理念,就是為了解決企業資料化、智能化、移動化問題。在雲原生技術體系下,雲原生可以更好地推動企業 IT 體系變革。四是多中台。雲原生幫助企業建構業務中台、資料中台、AI中台等,因為數字化轉型的關鍵就是用資料将業務進行數字化和智能化更新,進而更好地驅動業務疊代和創新。
阿裡雲擁有國内最豐富的雲原生産品家族,有超過100款雲原生産品,近千個技術解決方案,包括雲原生DevOps、aPaaS&微服務、消息和事件驅動、應用工具、Serverless架構等,以及雲原生資料庫、大資料/AI、應用傳遞和安全能力等。可以說,一家企業誕生于雲原生時代,可以把自己的 IT 體系基于雲去建構,阿裡雲在其中可以提供最完整的技術方案和産品體系。
雲原生不是壟斷的技術,阿裡雲也不是通過壟斷的方式赢得客戶,必須要靠先進的技術理念和硬核的技術實力。阿裡雲容器服務已經連續三年入選Gartner公共雲容器競争格局,産品豐富度與成熟度持續保持全球領先水準;阿裡雲入選Forrester FaaS上司者象限,函數計算産品能力全球領先;阿裡雲入選Gartner APM 魔力象限,國内唯一雲廠商,産品能力和戰略願景獲得分析師高度認可。
四 雲原生驅動全雲開發時代的到來
在雲原生快速發展過程中,也看到了一些趨勢:比如容器+K8s成為技術基礎設施。容器讓應用運作時與環境解耦,K8s讓資源管理和基礎設施解耦,向下封裝基礎設施層,屏蔽底層架構差異性,連接配接異構算力,雲邊端一體化,建構分布式雲;向上支撐多種異構工作負載,分布式、彈性可擴充、Mesh化解耦,推動應用架構現代化演進。可以說,容器和K8s已經變成了雲計算時代的分布式作業系統。
我們也看到雲原生帶來開發模式的革新。一份來自全球開發者的調研顯示,傳統開發模式和雲原生開發模式形成了鮮明的對比。雲原生開發模式采用子產品化架構,通過标準接口和協定進行通信。在擴充性上,可以按需自動彈性擴充,并且具備良好的可移植性。這些特性已經颠覆了傳統開發模式。
除了在開發模式上的改變,我們也看到,在雲原生的驅動下,一個新的開發時代正在到來。
2021年底,68%的機構會在生産環境中使用容器,比去年增長39%,比兩年前增長240%。阿裡在2016年實作了100%容器化,而在2021年,68%的企業将在生産環境中使用容器,可以确定的是,容器已經成為一個絕對的趨勢。
開發者雲上開發意願度達到68%。大量開發者已經感覺到雲上開發所帶來的變化,包括前端/後端,網頁、移動端、小程式,邏輯、模型、元件等,雲上開發帶來了生産力的改進,效率的大幅提升等。
到2021年底,25%的開發者将使用Serverless産品。今天,我們已經開始大力投入Serverless産品,包括函數計算FC、Serverless應用引擎SAE、Serverless容器服務ASK、無伺服器基礎設施ASI、彈性容器執行個體ECI等。阿裡雲與淘系、高德、閑魚也在探索Serverless的更多合作,大家也許沒有感覺到Serverless,但實際上很多技術已經Serverless化了。
五 布局開源生态,推動全雲開發與實踐
阿裡雲擁有國内最全面的雲原生開源貢獻。今天,阿裡雲在 GitHub上開源項目總數超過2600+,涵蓋了大資料、雲計算、AI、中間件、容器、Serverless等領域,擁有超過 30000+ Contributor,超百萬 GitHub Star,位列中國企業開源社群 GitHub 貢獻榜首。這其中,一些開源項目也成為了該領域的事實标準。比如 Dubbo 已經成為國内影響力最大、使用最廣泛的開源微服務架構;RocketMQ 是國内首個網際網路中間件的 Apache 頂級項目,也是常年霸榜國内第一的開源中間件項目。此外,我們還有應用管理引擎 KubeVela,去年剛開源的阿裡巴巴第一個邊緣計算項目OpenYurt,分布式高可用領域的混沌工程工具 ChaosBlade 、服務注冊發現 Nacos 以及首個 Serverless 開發者平台 Serverless Devs等。
面向整個技術社群,阿裡雲把研發多年的技術成果回饋給全球頂級基金會,如開放原子開源基金會、 Apache 基金會等,阿裡雲緻力于打造一個開放的、标準的、健康良性的技術生态。可以說,一位開發者想要基于雲原生技術建構一套開源架構,完全可以在阿裡雲生态裡找到自己的解決方案。阿裡雲已經服務了大量企業級頭部的使用者,如愛奇藝、虎牙直播、南方航空、平安科技等,同時正在建構一套開放标準的技術體系,服務于全球開發者。
雲原生最開始提出來的時候,是以資源叢集管理與運維為切入點,但是今天如果要把所有的工作負載運作在一套基礎設施之上,還缺乏對應用的管理。是以我們提出,以應用為中心,關注點分離,把開發運維基礎設施、合作邊界、協定、方法全部定義出來,也就是一站式應用管理與傳遞平台KubeVela。今年6月,KubeVela進入CNCF Sandbox,目前鏡像下載下傳量突破30萬次,擁有20多家全球企業客戶。今年也非常榮幸被信通院立項作為行業标準OAM。
企業上雲是趨勢。阿裡雲在國内率先開源了自研RocketMQ,成為 Apache 頂級開源項目。RocketMQ為使用者提供了高性能、高可靠、低延遲的消息服務,成為業内流行的金融級業務消息首選方案。
伴随着雲原生技術的發展以及全面雲化成為大勢所趨,我們看到衆多企業客戶對消息中間件的演進有着更深層次的訴求。接下來,我們将在社群和商業同期釋出 RocketMQ 5.0,全新定義“消息、事件、流”一體化融合處理的新理念。RocketMQ 5.0将在基礎架構雲原生化、消息流式處理以及事件驅動三個方面帶來變化。
首先,基于阿裡雲大規模生産實踐的背景,RocketMQ5.0 将提供面向多種場景可調整的極簡彈性架構,幫助企業客戶在資源彈性、運維複雜度、業務生态創新等方面做好平衡;其次,RocketMQ5.0 将圍繞高價值消息資料提供全新輕量化設計的流式處理架構,友善企業開發者就近處理消息計算和分析;最後,面向未來,RocketMQ 5.0 會基于開放的标準,連接配接雲服務和開源生态,并配合 Serverless 開發模式,為使用者提供低代碼、無伺服器的下一代事件驅動架構服務。
阿裡雲通過大量的投入開源,建立更多的技術标準,幫助百萬開發者使用更先進的雲原生技術,讓社群生态和雲之間建立起非常好的連接配接,助力企業和雲的協同發展。
去年雙11,阿裡落地了全球最大規模雲原生實踐。在2016-2019年,我們用了将近4年時間,讓雙十一的萬筆交易成本下降80%,今年雙11有望實作新的突破。其背後依靠的是統一排程,混合部署,分時複用,高彈性能力,進而大幅提升應用或叢集的資源使用率。
2021年第二屆雲原生程式設計挑戰賽
2021年第二屆雲原生程式設計挑戰賽正式拉開帷幕,本屆大賽将深度探索RocketMQ、Dubbo3、Serverless三大熱門技術領域,為熱愛技術的年輕人提供一個挑戰世界級技術問題的舞台。大家趕快
點選這裡報名參賽吧!