今天這篇文章為雜談,主要對近期雲原生技術和開源生態的發展做下進一步的整理和分析。對於雲原生技術的基礎類介紹可以先參考我頭條號上的歷史文章。
對於雲原生,不僅僅是公有雲和雲計算技術的發展趨勢,同時也是企業內部IT和信息化建設,業務系統開發,交付和運維模式的轉變。雲原生也將成為企業數位化轉型中的一個關鍵技術支撐,即為企業提供更加敏捷,高效,可持續,低成本的IT支撐能力。
對於雲原生技術和整體市場發展趨勢,可以看到一個關鍵點如下:
雲原生在技術基本成型後,其關鍵點已經從單純的技術過渡到了雲原生生態的構建,這個生態由大公有雲服務商牽頭,對上下遊的資源,中間件,應用服務合作夥伴,進行整合,同時通過開源方式進一步切入到傳統toB市場,以構建一個雲服務,企業,合作夥伴完整生態體系。
對於雲計算生態構建,華為推出的鯤鵬凌雲合作計劃共建鯤鵬雲生態可以講是最近1到2年持續的熱點內容,特別是在受到美國技術制裁後,國產化和自主研發更加成為一個重要國家戰略。
華為雲基於華為鯤鵬處理器打造了鯤鵬雲服務和解決方案,開啟雲上的多元新架構。華為具備從晶片到伺服器到平臺的全棧自主創新能力,軟硬體深度協同使我們的鯤鵬雲服務具備極致性能,更好地幫助客戶實現業務安全可靠和產業智能化升級。
對於鯤鵬晶片可以看到在物聯網領域已經完全能夠勝任,那麼能否逐步替代傳統的X86伺服器?如果該目標能夠達成,那麼將是信息化過程中從硬體+軟體+服務完整閉環的關鍵。
華為雲在19年公布鯤鵬凌雲合作計劃後就提出,計劃首批投入1億元生態資金,為合作夥伴提供培訓、技術、營銷、市場等全面支持,幫助100傢伙伴完成基於鯤鵬雲服務的開發、應用移植,讓夥伴通過華為雲市場實現5億元以上銷售收入。
雲計算領域的生態夥伴積極參與鯤鵬生態,目前已經有超過80傢伙伴的應用在往鯤鵬雲服務移植,其中25家已率先完成華為雲鯤鵬雲服務兼容性測試的認證。
生態合作夥伴包括哪些類型?
第一類是資料庫和中間件廠商,其中包括了資料庫的達夢,人大金倉,南大通用,TiDB,中間件方面的東方通,寶藍德,普元等。當然華為也有自己的開源分布式資料庫openGauss。第二類是應用提供類的,類似用友致遠,超圖軟體,金山辦公軟體等。還有就是提供解決方案和企業雲遷移實施服務的,類似中軟國際。
可以看到整個生態構建相當龐大。
如果談雲計算和服務始終都在關注彈性計算和彈出存儲的IaaS階段的話,那麼實際上仍然停留在雲計算的初級階段,從雲原生技術發展趨勢也可以看到,整體發展一定是從關注資源到關注應用和服務,從IaaS到PaaS不斷演進和發展。
雲原生2.0時代
在今年9月的華為雲峰會,也進一步提出雲原生基礎設施解決方案,正式開啟 Cloud Native 2.0 時代。同時提出了一個概念,即雲原生從ON到IN過程轉變。
對於該內容可以進一步參考:
https://www.infoq.cn/article/2PEL5oMzG87D3FGutgaB
在這裡個人從兩個方面來理解華為雲原生2.0的一些關鍵思想轉變。
1.雲原生的技術能力要下沉到企業和開發者手裡面
簡單來說就是用主流的雲原生技術來開發應用,那麼就能夠享受應用上雲後帶來的便利。對於華為的雲原生技術全棧架構參考如下:
華為云云原生技術平臺Vessel涵蓋以容器引擎、容器網絡、容器存儲為核心的基礎設施技術層,結合華為雲擎天架構軟硬協同的技術優勢,能充分釋放華為雲基礎設施的性能潛力,為業務提供高性能的運行平臺;同時提供開放、易用的雲原生應用技術層,包括應用網格、調度、監控、治理、雲邊協同等組件。
可以看華為在CNCF開源生態裡面貢獻了相當多的開源組件,從ServiceComb微服務開發框架,到華為雲原生技術平臺中兩個核心組件Volcano和KubeEdge開源,,並貢獻給雲原生計算基金會CNCF,成為社區首個容器智能邊緣項目和容器批量計算項目。包括最近華為開源的openGauss資料庫。
2.徹底從資源層的關注轉到應用需求關注
對於該點實際上是整個雲原生解決方案從技術走向服務的一個關鍵內容,如果推出的技術方案客戶最終還需要考慮基於變化的業務或應用場景,如何來配置容器資源,如何規劃調整IT基礎設施環境。那麼整個雲平臺還是停留在IaaS階段。
對於PaaS階段重點就是用戶不用關心基礎設施架構,而只需要明確地描述清楚你的業務場景和應用需求,IT基礎設施架構應該做到動態調度和自適應調整能力。
而要實現上面這個轉變,不僅僅是容器雲平臺本身的動態資源調度能力,更加重要的是需要實現如下三個能力的緊密協同。
而這三點可以看到剛好是用戶的應用和底層的雲原生基礎設施之間的一個關鍵銜接平臺,這個平臺本質仍然是PaaS層平臺能力提供。
3.物聯網雲邊協同和上雲生態
鯤鵬920處理器是華為在2019年1月發布的數據中心高性能處理器,由華為自主研發和設計,旨在滿足數據中心多樣性計算、綠色計算的需求 。鯤鵬920處理器兼容ARM架構,採用7nm工藝製造,可以支持32/48/64個內核,主頻可達2.6GHz,支持8通道DDR4、PCIe 4.0和100G RoCE網絡。鯤鵬晶片當前應用到手機平板,物聯網行業應用領域性能完全能夠滿足。同時華為本身又開源了自己的KubeEdge邊緣計算平臺。
對於華為原來也構建過類似智慧家庭的生態,但是看起來並不是特別成功。因為智慧家庭生態需要更多的面向C端進行構建,同時需要深入地了解智慧家庭的業務場景。
但是對於雲生態更多的是面向開發商和合作夥伴構建,這個當前華為具備明顯的優勢來構建這種物聯網生態,特別是還是自身5G能力加持的情況下更是形成一個完整的技術能力架構體系。
物聯網上雲,重點就是邊緣計算和雲邊協同,包括混合雲的打造,從當前的整體華為雲生態架構圖也可以看到,已經完全覆蓋這些內容。
對於整個容器雲構建,當前主流的技術還是基於Kurbernetes+Docker容器來構建。通過Kurbernetes來實現集群管理,容器資源編排,容器資源的動態調度和伸縮擴展能力。
從整個容器和集群管理平臺來說,Openshift 和 Rancher是容器開源界的標杆。
首先是紅帽的 openshift,大家從 K8S 的代碼貢獻可以得知,紅帽 K8S 代碼貢獻率僅次於 google 排第二,技術能力非常強,產品也非常的完善,並且很早便開始做開源產品了。
另一個是 rancher,今年被 suse 收購,產品體驗非常好。
在前面談到的華為的雲原生技術平臺Vessel,並將這個平臺中的兩個核心組件Volcano和KubeEdge開源。那麼先來看下Volcano。
Volcano是基於Kubernetes的批處理系統,源自於華為雲AI容器,Volcano方便AI、大數據、基因、渲染等諸多行業通用計算框架接入,提供高性能任務調度引擎,高性能異構晶片管理,高性能任務運行管理等能力。
從上面介紹可以看到Volcano主要是基於kurbernetes來實現高性能的集群調度,並發任務管理等工作,而不能算做一個完整的覆蓋kurbernetes能力的上層集群管理平臺。
對於完整的基於kurbernetes的引擎管理平臺可以看到有青雲和騰訊雲。
青雲QKE管理平臺
青雲的KubeSphere也是屬於同類的基於Kurbernetes集群管控治理平臺,同時又進一步基礎了中間件和產品倉庫,基於Jekins的DevOps持續集成能力。KubeSphere當前最新版本3.0,該項目本身完全開源,並且也是入駐CNCF基金會的一個重要開源項目。
其官網介紹如下:
QKE(QingCloud KubeSphere Engine),KubeSphere 是一款基於 Kubernetes 構建的企業級容器平臺,QKE 在 QingCloud 公有雲上交付 KubeSphere 容器平臺全能力,並可統一管理跨雲、跨基礎設施的 Kubernetes 集群,通過極簡的人機互動實現 CI / CD、微服務、以及集群運維管理,幫助用戶更敏捷地構建雲原生應用與統一管理應用的全生命周期。
在今年新推出的3.0版本實現了一次大的升級,新增「多集群管理」功能,可幫助企業實現集群的靈活增減、跨集群的應用部署以及全生命周期管理,僅需 6 分鐘即可完成一個生產級別的集群部署,大幅提升企業 IT 資源利用率和應用管理效率,加快雲原生生產落地和數位化轉型,創造更多商業價值。
也就是說你對Kurbernetes的管理能力絕大部分可以跟進前臺界面進行管理和監控了。同時還擴展了類似多集群管理能力等。
騰訊TKE-Stack管理平臺
對於這類平臺命名當前也很統一,即公司簡稱+KE(KubeSphere Engine),所以大家看到後也很容易理解是一類的平臺或產品。
TKEStack是騰訊開源的一款集強壯性和易用性於一身的企業級容器編排引擎,以極簡的嚮導式界面提供了容器應用的全生命周期管理能力,幫助用戶在私有雲環境中敏捷、高效地構建和發布應用程式。騰訊從2009年開發容器編排平臺,到目前為止已經支撐了公司內外部海量容器業務的平穩運行。
TKEStack採用了Kubernetes on Kubernetes 的設計理念。節點僅運行Kubelet進程,其他組件均Kubernetes容器化部署;在架構上共分為三個部分,分別是:
當前TKEStack也有企業版,具體架構如下:
騰訊TKEStack 企業版的核心能力,比如集群的調度、創建、業務管理比較核心的底層能力是 TKEStack 貢獻,但是在微服務方面以及運維和運營相關的比較強用戶體驗的功能更多的是企業版自己構建的。
簡單來說就是騰訊企業版更多的是增加了類似DevOps持續集成和交付,微服務治理,運維監控等方面的能力整合。而這個在前面介紹青雲QKE的時候也完全具備,而且QKE本身推出和開源的時間也更早。
騰訊在整個雲原生解決方案裡面本身也開源過Tars微服務開發和治理框架,本次在開源TKEStack平臺後基本形成一個完整的雲原生技術解決方案平臺。
在雲原生裡面,除了容器雲外,另外兩個關鍵內容就是微服務和DevOps。
對於微服務在我前面很多文章都有談到,在這裡就不再展開說明。當前對於微服務開發框架大家熟悉的有SpringCloud和阿里的Dubbo和相關組件。對於華為也開源了ServiceComb,騰訊開源了自己的Tars微服務開發和治理框架。
在前面我談雲原生生態構建的時候就強調了一個關鍵點,即:
當前雲原生競爭已經從單純的雲原生技術過渡到雲原生完整生態體系的競爭,而雲原生生態的構建核心就是需要進一步開源相應的技術框架和產品,將關鍵技術能力下沉到企業內部。
微服務開發框架
先說下微服務開發框架,當前主流仍然是SpringCLoud和Dubbo rpc框架為主。而華為和騰訊開源的微服務開發框架要推廣到企業內部使用並不是一件容易的事情。
簡單來說,一個企業選擇一個微服務開發框架,不是簡單的技術性能指標評估。從管理者的視角一定會考慮框架本身的成熟度,用戶使用量,熟悉框架的開發人員數等關鍵指標數據。比如你選擇了Tars開發框架和環境,核心開發人員離職,你發現很難找到熟悉的人員接手,這本身對企業系統的日常運維就是一個災難。
儘管上面這些開發框架也做到足夠的很SpringCloud和Dubbo等主流分布式服務框架的兼容,但是仍然很難做到大範圍的推廣。
當然在基礎的微服務基礎上,你僅僅做一個獨立的服務治理類組件,同時和微服務框架本身之間能夠徹底解耦,那麼得到大面積應用還是可能。
比如我們常說的服務鏈監控Skywalking,限流熔斷Sentinel,Apollo註冊中心,Nacos服務配置和註冊中心等,這些相對來說都能夠得到比較廣泛應用。
Devops關鍵銜接橋梁
公有雲服務廠商的雲原生能力必須下沉到企業內,只是推動雲原生的生態共建的一個關鍵內容。當我們前面談了容器雲開源和能力下沉後,你會看到還需要有一個工具來銜接企業內部容器雲和公有雲服務,實現軟體開發的持續集成和交付,如下圖:
即我們通過DevOps支撐平臺來銜接企業內部私有雲和外部公有雲環境,實現一種可以持續集成和交付的混合雲環境。
而對於微服務開發來說,可以將其分為兩個部分。其一是微服務開發框架,其二是微服務治理框架。同時不再要求微服務開發框架的統一,而是通過微服務治理框架來進行統一的管理和適配。在這種思路下,既實現了企業微服務開發選型的靈活性和自治能力,又實現了雲原生服務能力的集成和協同,形成一個整體。
開源DevOps平臺
當前完整開源的DevOps平臺實際上並不多。
對於公有雲提供的DevOps持續集成能力前面做過分析比較,華為雲的DevOps支撐,騰訊雲在收購Coding後提升了DevOps支撐能力,對於阿里雲本身的DevOps一般。
對於騰訊最早開源過一個藍鯨的DevOps平臺,但是該平臺更多的還是偏運維工作的自動化和流水線編排,很難算做一個完整的DevOps能力支撐平臺。
Jfrog推出過開源的DevOps平臺,但是實際看到商業版本基本都是收費模式。參考該網站的一個圖可以看到DevOps平臺應該包括的主要內容:
對於一個企業來說,如果要實現一個完整的DevOps過程,至少設計到版本庫,構建,集成,部署幾個關鍵的步驟。而這些關鍵能力核心仍然是持續集成。
因此當前大部分企業仍然是圍繞Jekins持續集成來進一步整合各種開源工具構建自己的DevOps持續集成和交付流水線。比如一個簡單的DevOps包括:
既只要完成上面兩個關鍵集成,即基本可以完成一個最簡單的持續集成和交付環境。在這個完成後你再不斷地增加類似自動化測試,代碼檢查等能力。
在前面已經談到類似青雲QKE和騰訊TKEStack開源產品裡面實際上包括了部分DevOps內容,但是具體是否在商業版或企業版本才包含暫時沒有進行驗證。
不論是叫混合雲架構,還是雲邊協同都不重要,關鍵是通過DevOps真正實現了公有雲服務廠商將雲原生的觸手下沉到企業內部,形成公有雲和企業內部私有雲的一體化架構生態。
我們分別拿騰訊和華為開源項目發布的兩段話進行總結。
第一段是騰訊TKE發布的時候談到,未來的雲計算基礎設施一定是處於多維異構的狀態。多維是三維,硬體是異構的、基礎設施是異構的(公有雲和私有雲)、業務也是異構的,不光跑一些非常簡單的無狀態服務也要跑有狀態任務,包括在線業務、離線業務等等。我們希望在多維異構的層面為用戶提供一站式的通用的基礎架構平臺。
第二段是華為在雲原生2.0發布時候談到的,隨著業務的快速發展,企業基礎設施普遍面臨多集群、多區域以及全球化等大規模多雲、跨雲管理的挑戰。華為雲基於雲原生集群聯邦、邊雲協同等技術打造了多雲與邊雲協同管理平臺,能夠幫助企業構建高效、可靠、跨雲的統一業務平臺,提供多雲一致的管理體驗。
我個人簡單總結下即是:
雲原生的競爭已經從最初的技術競爭發展到雲原生生態構建競爭,而生態構建的基礎是技術能力開源化,核心是開源工具或技術能夠真正下沉到企業內部和企業開發過程融合。