云原生时代,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 產品家族里有三大成員:第一個成員是云原生 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 官網查看更多詳情!
總結
以上是生活随笔為你收集整理的云原生时代,CNStack 如何解决企业数字化转型难题?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Dubbo-Admin 功能展示与实操解
- 下一篇: 开源 Serverless 里程碑:Kn