天天看點

雲原生時代,CNStack 如何解決企業數字化轉型難題?

采訪嘉賓:張軍(遊骥)

随着新技術的不斷湧現,企業在數字化轉型的落地過程中會面臨諸多技術難題,對此,阿裡雲釋出業界首款雲原生技術中台産品——雲原生 Stack(簡稱 CNStack)。與常聽到的業務中台、資料中台等概念相比,雲原生技術中台概念如何了解?它将怎樣具體幫助企業解決企業數字化轉型難題?

11 月 24 日,InfoQ 大咖說欄目邀請到了阿裡雲雲原生 PaaS 團隊負責人、資深技術專家張軍,花名遊骥,來做相關問題分享。遊骥從雲原生技術的發展聊到雲原生技術中台産品的規劃以及它的落地實踐案例。

遊骥主導設計和建設了阿裡集團和阿裡雲衆多高可用技術産品體系,也是雙 11 穩定性保障基礎技術核心締造者,目前負責雲原生 PaaS 平台的建設。以下内容節選自當天的分享,InfoQ 做了不改變原意的編輯:

InfoQ:首先,請遊骥來和大家打個招呼,簡單做個自我介紹。

遊骥:大家好,我叫張軍,花名遊骥。我在 2011 年加入阿裡巴巴,當時是負責阿裡中間件和高可用相關基礎技術,後來也負責過阿裡雲 SRE 團隊,過去十年都在中間件和基礎技術相關領域深耕。我所負責的高可用技術跟雙十一的穩定性是緊密相關的,現在我主要負責雲原生 PaaS 平台的建構,也就是基于雲原生技術去打造雲原生時代的 PaaS 平台。

雲原生技術定義及發展過程

InfoQ:請遊骥來和我們整體介紹下雲原生的定義以及它的發展過程,在您看來目前雲原生處于怎樣的階段呢?

遊骥:雲原生其實是近些年非常火的一個詞,但同時它的含義也非常廣泛。從它的提出到今天,其定義和技術内涵都在不斷變化,我們引用雲原生計算基金會來為它做一個标準定義。

雲原生其實是一套架構方法論和技術的集合,首先它有一個先決條件,我們的應用都是建構于雲上的,然後基于雲去建構易于管理、可彈性擴充、容錯性好、更加松耦合的應用系統。

其實雲原生不僅定義了所建構應用系統的狀态,還提供了相應的技術集合,比如我們非常熟悉的容器、微服務、DevOps 以及 Serverless 、服務網格,包括 聲明式 API 和不可變基礎設施。它不僅提供了一個方法論和理念,同時提供了相應的技術集。在這個技術體制上,雲原生的一個标志性事件是 2015 年 CNCF 的成立。CNCF 對于雲原生做了一個标準化定義,同時它是比較中立的一個組織,承接起雲原生的推廣。CNCF 也提供了剛才提到的一系列技術集,在技術集之上提供了整個雲原生大圖  Landscape,包括相應的技術、工具以及平台,最終去建構營運、管理、可擴充、有更好容錯性的業務應用,同時這些業務應用能運作在公共雲、私有雲以及混合雲等不同環境中,這就是雲原生的定義和目前的發展形态。

從雲原生誕生,到 CNCF 成立之後,整個雲原生技術開始快速發展,目前無論是在社群還是在企業,雲原生都得到了快速的落地。

InfoQ:雲原生技術發展到目前的階段,對于企業來說,帶來了哪些好處?同時又帶來了哪些挑戰?

遊骥:它的好處其實是顯而易見的。

首先,雲原生向下封裝整個基礎設施的複雜性。它基于 K8s 和容器,已經看不到下層基礎設施的複雜性,并且能夠屏蔽底層架構的差異性。今天在雲原生的架構和基礎上,K8s 和容器已經變成了基礎設施的新界面。

第二,雲原生對上能夠支撐多種工作負載和分布式架構,不論是我們的業務應用也好,還是其他裝置也好,都能用雲原生技術做統一托管。同時它具備天然的分布式能力、微服務能力,能夠最大化利用好雲的能力,比如彈性、容災能力、穩定性能力,能最大限度發揮雲的優勢,這是它的好處。

但是,雲原生對于企業落地來說也存在一些挑戰。第一,我不知道大家有沒有看過 CNCF 的 Landscape,那是一張非常複雜的技術大圖,上面有很多技術元件,這個理念是好的,但其實不太好去把它用起來,這意味着好的理念不一定能夠真正帶來好的價值轉化。因為技術太多之後,反而不知道怎麼去用好它,怎樣的用法是最佳實踐,其實是衆說紛纭,沒有一個标準說法的。

第二,缺乏統一的規劃和一體化方案。現在很多應用雲原生技術的公司,其實都是以元件化的方式在運用,比如用 K8s、容器、微服務、DevOps 或者 Service Mesh,但其實都是以元件化的方式在去用。

以元件化的方式用的話,其實相對來說技術還是比較割裂,沒有一體化的方案,效率也會比較低,同時元件化的應用帶來另外一個問題,就是元件本身也是有複雜性的。雖然在雲原生場景下,屏蔽掉了應用和基礎設施的複雜性,但是把雲原生技術打開,按元件化的方式使用,這本身也有運維成本,并且它的元件生态也非常豐富,在營運成本的壓力下,也會帶來一系列穩定性、可用性的問題,這就是對于雲原生技術來說的一些挑戰。

如何了解雲原生技術中台

InfoQ:在剛剛過去的雲栖大會上,阿裡雲釋出了業界首款雲原生技術中台産品 CNStack,我們常說到資料中台、業務中台,那麼雲原生技術中台怎麼了解?跟之前我們提到的中台有何不同?

遊骥:其實中台是一個鐵三角,往上是資料中台、業務中台,往下最下面是技術中台,隻是技術中台這個概念,它的範圍比較廣,是以很少有對于中台實體的一個定義。

說到中台的話,大家很容易想到一個故事,就是芬蘭的手遊公司 Supercell,這個故事也是我們業界經常講的中台的誕生。當年馬老師去拜訪 Supercell 遊戲公司的時候,他發現這家遊戲公司的遊戲疊代非常快,能很快去做一款新遊戲,然後當發現新遊戲市場不好的時候,又能馬上放棄,很快的去做資訊化。

其實這些都是依托中台所沉澱的後盾以及中台所存在的能力,依托中台的能力讓前端的業務能夠更好、更快的去奔跑,這就是中台。

對于中台來講,其實今天資料中台、業務中台在業界都有一些好的落地,特别是中台産品化的落地做的比較好。但是對于技術中台來說,過往缺乏一些平台型的産品或者沉澱,是以我認為技術中台一定要關注場景,不講場景的話,它的牽涉面太廣。今天看來,雲原生提供了這樣一個場景,我們之前也提到,雲原生定義了其技術範疇,比如說 K8s 、容器、微服務、DevOps、Serverless 、 服務網格等,在雲原生技術範疇之下,技術中台的概念是可以成立的,相對來說,它會比較聚焦。是以 CNStack 其實也是屬于中台的延展,它是技術中台在目前雲原生場景下做的具體平台型實作。

InfoQ:為什麼是現在這個時間點提出雲原生技術中台?背後的契機是什麼?

遊骥:阿裡巴巴其實有兩個屬性,首先它是一家網際網路的業務公司,有天貓、淘寶、支付寶、餓了麼這些業務,從另一個次元來講,它又是一家提供雲計算的公司,是以說它有兩重身份。

從第一個屬性來說,在過去的這十幾年的過程中,作為一家網際網路業務的公司,我們在雲原生領域沉澱了豐富的技術積累,這也是我們能夠做這個事情的前提。

為什麼不是早些年做呢?我覺得有兩個節點很重要。

事實上來講,阿裡是目前業界少有的所有的業務都是跑在雲上的,因為很多做雲計算公司也做其他業務,沒有 100% 在雲上。但是,我們也不是在做雲的第一天就是所有的業務都跑在雲上,2019 年,阿裡實作了所有核心業務真正搬到雲上,但是搬到雲上應用雲和今天的 Cloud Native 雲原生化的去使用雲還是不一樣的。

在 2020 年,阿裡真正采取雲原生的方式去使用阿裡雲,這就決定了我們在 2021 年去做雲原生的技術中台。其實在此之前,阿裡的中間件技術也好、新技術也好,也在以元件化的方式提供到阿裡雲上去輸出,但是當阿裡自己都還沒有以阿裡雲的方式去建構雲原生的方式去用好雲的時候,這個平台其實它是不成立的,是以我們希望自己先把這麼複雜的業務以雲原生技術平台的形式去支撐,支撐完成以後,再面向客戶輸出。2020 年,阿裡完成了百分之百雲原生化的上雲之後,我們才開始沉澱對外部客戶的雲原生技術中台産品。

InfoQ:CNStack 是怎樣具體幫助企業解決相關難題的?

遊骥:其實我們在設計 CNStack 的時候沒有想過用一個平台解決所有的産品問題,是以可能事實上它是一個平台型的産品服務。

雲原生時代,CNStack 如何解決企業數字化轉型難題?

目前,CNStack 産品家族裡有三大成員:第一個成員是雲原生 Stack for Application,面向我們所有線上業務應用的開發,比如我們所熟知的交易型應用,主要面向線上應用的生态;

第二個是雲原生 Stack for SaaS,面向獨立化的 SaaS 部署軟體,給大家舉個例子,比如我們在用的騰訊會議、釘釘,包括獨立性的軟體産品,CNStack for SaaS 可以為這些産品提供雲原生技術中台服務;

第三個是雲原生 Stack for Edge,今天邊緣是一個非常快速發展的業務,而雲原生 Stack for Edge 正是基于邊緣場景的一個技術平台。

然後我簡單展開介紹一下這三個場景所提供的能力。

對于雲原生 Stack for Application 來說,它提供了三個重要的能力:

第一,對于基礎架構的抽象,能把基礎架構統一納管和抽象,做到基于 K8s 和容器,包括提供多叢集、資源排程的抽象能力;

第二,整個應用生命周期的建構、管理和運維,這裡包括了應用的開發、微服務、DevOps,包括整個應用生命周期的管理能力;

第三,提供了豐富的分布式的雲原生中間件,包括分布式消息、分布式事務、分布式配置管理,可以了解為線上應用的開發運作建構了整個生命周期裡的技術支撐和它所依賴的這種分布式技術元件,都在雲原生技術中台進行了統一的提供。

對于雲原生 Stack for SaaS 來說,今天的 SaaS 場景輸出其實面臨的一個問題是它怎樣能夠快速傳遞。比如說我們開發一個釘釘的軟體或是騰訊會議的軟體,對于 SaaS 軟體的研發方來講,他希望隻需要關注軟體本身代碼的研發,而不需要關注軟體用到的資料庫或者中間件。

是以除了 SaaS 應用的快速傳遞之外,我們能夠提供 SaaS 應用所依賴的基礎技術全部内嵌到 SaaS 應用本身的雲原生技術中台中去,雲原生 Stack for SaaS 可以了解為一個嵌入式平台,它被 SaaS 軟體所内嵌了,内嵌了之後它提供了一個快速的傳遞和簡易的運維,再加上所依賴的全面的技術元件能力,同時它具備 SaaS 應用傳遞到任意的 IaaS 環境中的 IaaS 适配,且能夠屏蔽掉 IaaS 的差異性。另外,SaaS 軟體是需要私有化輸出的,需要輸出到客戶,對此,雲原生 Stack for SaaS 還提供了線上版本,可以在線上的版本裡去做驗證、測試、POC 打包,然後直接導到離線的環境當中去安裝部署就好了,是以它極大地提升了傳遞和運維效率,能快速的把 SaaS 場景輸出。

對于雲原生 Stack for Edge 來說,邊緣場景包含了邊緣裝置的管理,如何管理需要去考慮,但邊緣應用跟  for SaaS、for Edge,和我們正常的應用不一樣,它是一些非常輕、非常小的應用,對于資源的靈敏性會比較敏感。同時邊緣還有邊緣的一些中間件,其實邊緣的中間件我們需要做一些裁剪,比如說别人的消息,它可能跟通常分布式場景下的消息是不一樣的,它要更加輕量化,對于網絡的敏感性更強。除此之外,還包括邊緣的一些算法,很多時候邊緣依賴一些算法,比如 AI 的能力都統一打包到邊緣場景中。

以上就是 CNStack 的三大産品家族,而且未來我們還會有更多産品加入,值得期待。

雲原生技術中台落地實踐

InfoQ:目前 CNStack 已經落地實踐了嗎?

遊骥:對, CNStack 已經落地了三大産品家族,其中我們已經釋出了雲原生 Stack for Application 和雲原生 Stack for SaaS,雲原生 Stack for Edge 可能會在稍晚一些釋出。

此外,CNStack 社群版将在 12 月底開放下載下傳,歡迎大家來使用。

InfoQ:那麼它的應用情況是怎樣的?可以給大家舉一個相關應用場景案例來介紹一下。

遊骥:好,我相信大家都非常關注這個話題。

我們現在釋出了雲原生 Stack for Application 和雲原生 Stack for SaaS,我各舉一個例子。首先對于雲原生 Stack for Application,我們有一家金融的客戶,這裡就不透露公司名字了,它在用 CNStack 之前,是非常傳統的技術棧,可能用的是 Oracle 資料庫和 Java 程式,并且是比較傳統的用法,也沒有微服務、消息等,基于 CNStack 做數字化轉型之後,它的架構完全基于雲原生化,通過微服務以及一些消息調用,可以明顯感受到整個研發效率提升了很多。

背後的原因在于,原來基于一體化應用做開發,所有人都在研發一個系統,當子產品增多後,不斷疊代會帶來很多問題,整個技術體系相當于一個黑盒,看不到技術屬性的營運狀态,而在 CNStack 雲原生技術場景下,它天然具備一些可觀測能力、高可用能力,并且整個應用開發、部署、運維等生命周期都由純手工變成了純自動化的操作流程。

同時,這個客戶每年和阿裡一樣,也會有類似雙十一這樣的大促活動節點,也會在這個節點有非常大的流量,但此前并沒有成功過,當然,我猜測這也是它采用雲原生改造的初衷。而我們在測試雲原生 Stack for Application 時,已經把阿裡内部多年做雙十一的原生态、高可用保障能力植入了進去,是以它也具備了與阿裡保障雙十一一樣的高可用能力,是以我們這個客戶大促的峰值流量問題也在無形之中解決了,雲原生 Stack for Application 在研發效率、疊代速度、包括機器成本上都帶來了明顯的改觀,同時在彈性擴充、資源排程上,也做到了成本的節約。

第二,對于雲原生 Stack for SaaS 來說,我也舉個例子。截至目前,阿裡所有一方的産品其實都是基于 CNStack 去輸出的,比如剛才提到的釘釘、螞蟻區塊鍊的一些産品、大資料的一些産品和移動端的一些 SaaS 化産品,那麼同樣帶來很明顯的差異就是這些 SaaS 軟體開發不再需要關注底層 IaaS,因為底層 IaaS 都通過 CNStack 屏蔽掉了;同時,CNStack 還提供了類似中間件,釘釘不再需要去考慮所依賴的中間服務,同時又能提供非常快速的傳遞和運維體系。

具體來看,以阿裡自身為例,在面對其他競争對手的時候,正是基于 CNStack 的部署,在競争對手還在搭建環境的過程中,我們已經完成了部署傳遞,傳遞效率提升 5 倍左右,同時它降低了 90% 對基礎中間件的運維成本。

InfoQ:您認為雲原生技術中台的提出對于整個中台以及企業數字化轉型有何重要意義?

遊骥:回到我們做技術中台的出發點來看,希望基于雲原生技術中台之後,真正做業務研發的、做商城業務構造的,能夠更聚焦于業務本身。從業務層面來講,能夠讓業務需求更快速地被響應,能夠讓業務研發的團隊能夠有更多的時間和精力投入到業務疊代和業務創新本身,這是技術中台從業務層面給企業帶來的價值。

展開來講,它是從幾個方面實作的:

第一,雲原生技術中台提升了整個應用建構生命周期的效率。雲原生技術中台提供了完備的分布式架構,是以研發需要的中間件技術等基礎設施都不需要去考慮了。同時在運維層面,它支援高效運維,提供了從基礎設施到容器、業務應用、缺陷、智能告警等整個可觀測和監控告警體系,同時内嵌了高可用能力,包括對于應急場景預案、開關預案、流量排程等一系列高可用能力,是以,整個研發效率得到了極大的提升;

第二,雲原生技術中台節省了成本。成本方面除了人力成本之外,還包含機器成本,雲今天有一個很核心的思想,彈性和按需使用,在雲原生技術中台裡面,它具備一個很好的彈性擴充能力,不需要一次就鎖定很多資源,能彈性的按需去鎖定資源,同時做資源的排程和優化,是以總體上來說,技術中台可以大幅節約成本;

第三,雲原生技術中台具備天然的高可用能力。高可用能力其實是目前網際網路業務快速發展下一個非常大的挑戰,因為業務疊代變快、技術元件變複雜、技術環節增多,引入的穩定性風險會越來越多,在雲原生技術中台裡,它内嵌了高可用的能力,企業無需為高可用去做太多額外工作。

以上就是雲原生技術中台帶來的價值。

InfoQ:雲原生技術中台這個理念在被企業接受的過程中有沒有面臨挑戰呢?

遊骥:其實還是有蠻多挑戰的。第一,雲原生技術中台是面向企業的,在此之前,企業都是有自己的異構 IaaS 裝置的,這意味着硬體設施和硬體環境不一樣,是以怎樣去比對好企業異構場景,這是面臨的第一個挑戰;

第二,阿裡的最佳實踐,能否在其他企業裡去複制,這也是需要打磨。在阿裡内部用的好,輸出之後,面對不同産品又該怎樣更好地發揮它的價值,這是面臨的第二個挑戰;

第三,開發性和相容性。外部企業基本都會用到自己的技術體系,雲原生技術中台怎樣以開放的方式相容現有的技術體系,這是面臨的第三個挑戰;

第四,對于雲原生技術中台來說,如何以一體化方式解決問題,真正圍繞應用的全生命周期,保障業務穩定性。

InfoQ:面對這些挑戰,阿裡将從哪些方面着手去解決?

遊骥:其實這些挑戰我們在第一天開始做雲原生技術中台的時候就在同步想解決方案。首先,CNStack 是把阿裡當成一家外部客戶來看待的,是以整個技術體系的落地,阿裡可謂是第一家吃螃蟹的,作為公司和子公司之間的一個技術平台去支撐,來解決我們一些常見問題;

第二,我們從産品設計的第一天,就是圍繞支撐異構包括支撐國産化裝置、IaaS 裝置去設計的,是以它具備對于異構 IaaS 的适配能力;

第三,CNStack 不僅能無縫相容阿裡自己的開源技術,還能相容業界的開源技術;

第四,我們重點去關注怎樣一體化解決問題。我們不希望 CNStack 提供的能力仍是元件化形态,而是希望能夠真正圍繞應用建構、運作、管理、運維整個生命周期裡,能真正打通端到端的技術環節,提供可觀測能力、監控告警能力,同時具備高可用和安全生産的能力,能保障整個業務的穩定性。

InfoQ:阿裡雲對于雲原生技術中台的總體規劃是怎樣的?

遊骥:前邊提到,我們已經釋出了雲原生 Stack for Application 和雲原生 Stack for SaaS 。接下來,我們會持續做産品家族的完善,包括去擴充 AI 智能化等更多場景。為了能讓企業更好地用雲原生技術中台,我們也将上線雲原生 Stack for Edge 以及 CNStack 社群版。社群版能夠免費下載下傳,還能夠和企業版做相容和遷移,讓大家以更低的成本去體驗雲原生技術中台的能力,這也是産品家族的一個完善;

第二,産品能力的更新。從應用的架構設計階段,除了為企業提供有代碼的研發以外,能拓展低代碼,甚至無代碼的研發體系;

第三,更加體系化。這也是需要持續去做的事情,我們希望能更加體系化、端到端的解決問題,真正把問題解決在中台裡面;

第四,中台本身需要更加精簡、具備更好的穩定性,需要在傳遞和部署過程中,能更輕更快,這些都是我們的未來規劃。

Q&A 環節

InfoQ:在開發這款産品過程中,有沒有遇見印象深刻的技術難點或者“坑”,和大家分享一下?

遊骥:其實做中台真的非常不容易,做中台也會有很多技術難點。第一,需要去做适配。我們的産品會輸出在阿裡雲不同的硬體設施上,也會輸出到國産化裝置上,這其中會有很多适配工作;

第二,我們在雲原生技術中台産品釋出之前,也有一些元件化單産品形态,如果要以一個中台化、一體化 PaaS 平台輸出的時候,一定與之前的元件化單産品形态有交集,這裡面就有如何取舍的問題,如何能讓元件化單産品形成好的一體化體驗。同時,這其中又會涉及頂層設計問題,怎樣能把不同元件化單産品的重複能力相融合或做更好的銜接,解決這個問題也花費了我們很多的時間和精力。

InfoQ:技術中台落地過程中肯定也會有不順利,其中的酸甜苦辣能和大家分享一下嗎?

遊骥:因為我們也是前段時間才釋出,是以最早階段使用的使用者,還是非常不容易的。在最早期階段,我們的傳遞部署還沒有非常理想化,整個傳遞需要我們投入很多研發能力,把前期的坑打通。雖然我們已經在“家”裡面做了無數次測試和演練,但實際過程中還是會遇到網絡、存儲或硬體設施等問題,是以在早期,我們還是在傳遞和運維上投入了很多精力。

當然,今天我們可以做到幾個小時甚至不用到現場就能進行傳遞,這是非常不容易的,其實我們在背後付出了很多。

InfoQ:中台目前是有一些争議的,那麼對于 CNStack 來說,您認為會有影響嗎?

遊骥:我知道中台有些争議,有的公司在拆中台,包括阿裡自己也在講中台要做薄,但我并不覺得中台本身的定義有問題,問題在于我們怎樣建構和搭建中台。

中台的理念并沒有錯,什麼樣的東西要放到中台,什麼樣東西不放到中台,我覺得要在設計中台的第一天就考慮好,當中台設計好,它一定能提升效率,能讓前台的業務更快,相反,如果設計不清楚,就會阻礙中台的運作。

是以,對于業務中台來說,我們一定要拆分的足夠清晰,什麼樣的能力由中台來提供,什麼樣的能力由前端的靈活性去自由拓展,很多時候,我發現大家在用中台的時候并沒有合理的拿捏這個界限問題。

包括我認為今天比較大的争議其實聚焦在業務中台上,因為在業務層上,很難區分到底什麼樣的業務應該內建到平台裡面的,到底什麼樣的技術應該放在前台。

但是雲原生技術中台,它的邊界還是非常清楚的,在業務應用這一層,它隻提供基礎開發能力和運維能力,并不接觸技術開發本身和業務本身,隻是提供一些技術能力、技術中間件、技術監控能力等。總的來說,對于中台的一些争議,我認為還是在業務中台上比較多,對于資料中台和技術中台來說并沒有太大的影響。

點選

此處

,前往 CNStack 官網檢視更多詳情!