來(lái)源:InfoQ 作者:趙鈺瑩
隨著技術(shù)的不斷發(fā)展,云的邊界正在被技術(shù)和開源抹平,很多軟件和框架設(shè)計(jì)并不直接與云平臺(tái)綁定,這也是越來(lái)越多開發(fā)者討論“云原生”的原因,而所謂的“云原生”就是最大程度發(fā)揮云平臺(tái)的價(jià)值,容器技術(shù)正是將該理念落地的重要手段之一。
在這之中,Kubernetes 項(xiàng)目正在嘗試將應(yīng)用定義、管理和交付推向新的高度,雖然該項(xiàng)目的現(xiàn)有模型還存在一些問(wèn)題和不足之處,尤其是聲明式 API 如何更好的與用戶體驗(yàn)達(dá)成一致,但 Kubernetes 項(xiàng)目的確是云原生理念落地的核心與關(guān)鍵所在,這一點(diǎn)同樣體現(xiàn)在青云 QingCloud 的云原生實(shí)踐之中。
KubeSphere
根據(jù) Gartner 在 2018 年做出的預(yù)測(cè),到 2020 年,50% 的用戶會(huì)將容器應(yīng)用在生產(chǎn)環(huán)境中,而這一數(shù)字未來(lái)有望更高。單體應(yīng)用時(shí)代,所有功能和服務(wù)綁定交付,一旦出現(xiàn)問(wèn)題,所有都需要重新打包、重新交付,而微服務(wù)是每個(gè)功能單獨(dú)打包,出現(xiàn)問(wèn)題只需要單獨(dú)打包某一部分即可。相應(yīng)的,技術(shù)水平在整個(gè)過(guò)程也發(fā)生了改變,從大機(jī)到云計(jì)算再到容器平臺(tái),Kubernetes 已經(jīng)成為容器時(shí)代的分布式操作系統(tǒng)內(nèi)核,而 KubeSphere 正是青云 QingCloud 在此基礎(chǔ)上開源的獨(dú)立分布式容器管理平臺(tái),并于近日正式交付 QKE(QingCloud Kubernetes Engine,即 KubeSphere on QingCloud)。

2018 年 4 月份,整個(gè)團(tuán)隊(duì)寫下了 KubeSphere 的第一行代碼,當(dāng)然這項(xiàng)工作的前期調(diào)研從 2017 年就開始了。采訪中,青云 QingCloud 容器平臺(tái)產(chǎn)品經(jīng)理于爽表示,青云 QingCloud 云平臺(tái) 2017 年就向用戶交付了原生 Kubernetes PaaS 應(yīng)用,但是原生的 Kubernetes 存在諸多問(wèn)題,比如使用門檻較高等,如果把 Kubernetes 理解為分布式操作系統(tǒng)內(nèi)核,其對(duì)終端用戶的使用難度可想而知。
KubeSphere 未來(lái)還將提供可配置、可插拔的功能,用戶可根據(jù)個(gè)人需要選擇想要的功能進(jìn)行安裝。KubeSphere 的定位是分布式操作系統(tǒng),Kubernetes 是其內(nèi)核,用戶可在這個(gè)操作系統(tǒng)上安裝想要的功能。
綜合來(lái)看,KubeSphere 的產(chǎn)品特性主要可以從三個(gè)方面來(lái)看:
底層基礎(chǔ)設(shè)施支持,KubeSphere 考慮的是從最底層提供穩(wěn)定的網(wǎng)絡(luò)存儲(chǔ)方案;
上層應(yīng)用開發(fā)及管理,提供各種應(yīng)用場(chǎng)景和所需功能;
企業(yè)級(jí)用戶體驗(yàn),從用戶體驗(yàn)層面滿足客戶心理訴求,降低用戶 40% 的操作。
相較而言,KubeSphere 是私有化部署產(chǎn)品,要求用戶提供虛擬主機(jī)或者物理機(jī)資源,通過(guò)安裝包安裝,用戶登錄控制臺(tái)操控整個(gè)集群。實(shí)際上,這還是會(huì)為運(yùn)維人員帶來(lái)一定使用成本,起碼要先了解安裝包配置過(guò)程,雖然比原生 Kubernetes 的安裝簡(jiǎn)單很多,但還是需要花費(fèi)一定時(shí)間成本。實(shí)際上,有些用戶的要求往往更靠上層,希望廠商可以提供輔助開發(fā)、運(yùn)維工作的平臺(tái),而不用了解底層基礎(chǔ)設(shè)施運(yùn)維和主機(jī)資源管理等,這就是青云 QingCloud 開發(fā) QKE 的初衷。
據(jù)介紹,QKE 實(shí)際上對(duì)用戶屏蔽了底層基礎(chǔ)設(shè)施運(yùn)維,用戶不需要關(guān)心這一層,通過(guò)鼠標(biāo)點(diǎn)擊就可以擁有完全高可用、底層使用青云 QingCloud 公有云的穩(wěn)定 Kubernetes 服務(wù)。同時(shí),因?yàn)?QKE 基于 KubeSphere,同樣擁有 KubeSphere 的很多功能,比如 DevOps、微服務(wù)治理、統(tǒng)一監(jiān)控、統(tǒng)一日志管理,都可在 QKE 中交付給用戶,這是一整套打包服務(wù),是一個(gè)公司級(jí)別的平臺(tái),用戶只需點(diǎn)擊鼠標(biāo)即可獲得,這對(duì)用戶來(lái)說(shuō)友好且便利。
開源項(xiàng)目地址: https://github.com/kubesphere
青云 QingCloud 云原生理念
打造專業(yè)平臺(tái),以讓平臺(tái)歸平臺(tái),應(yīng)用歸應(yīng)用。
如上于爽所言,便是青云 QingCloud 的產(chǎn)品理念,這同樣貫穿在整個(gè)云原生實(shí)踐之中。那么,這句話應(yīng)該如何理解呢?早在七年前,青云 QingCloud 便開始構(gòu)建平臺(tái)化和產(chǎn)品化。具體來(lái)說(shuō),要想實(shí)現(xiàn)容器從上到下觸及很多方面,甚至到 Linux 內(nèi)核,而真正的業(yè)務(wù)用戶不需要關(guān)心這些細(xì)節(jié),平臺(tái)提供者會(huì)逐一解決,這就是“平臺(tái)歸平臺(tái)”;在這一基礎(chǔ)上,青云 QingCloud 云平臺(tái)積累了大量經(jīng)驗(yàn)和技術(shù),盡量降低學(xué)習(xí)曲線并將抽象功能簡(jiǎn)單化,用戶只需要關(guān)注業(yè)務(wù)邏輯即可,讓“應(yīng)用歸應(yīng)用”。

在容器實(shí)踐層面,谷歌開源的 Kubernetes 對(duì)開發(fā)者而言非常友好,但對(duì)非開發(fā)者而言并非如此,青云 QingCloud 在操作界面會(huì)盡量降低用戶復(fù)雜度,用更直觀的方式把功能交付給用戶,比如灰度發(fā)布。KubeSphere 提供了一種灰度策略,用戶可以先將新版本在部分區(qū)域上線,穩(wěn)定后再將其余流量切換到新版本。在 KubeSphere 上,整個(gè)過(guò)程只需要鼠標(biāo)拖拽進(jìn)度條就可以實(shí)現(xiàn),用戶不需要了解灰度發(fā)布的復(fù)雜度。
對(duì)于微服務(wù)治理,青云 QingCloud 目前擁抱 Istio,因?yàn)槠浼軜?gòu)更為先進(jìn),但也沒(méi)有忽視 Spring Cloud 的需求。因此,青云 QingCloud 在微服務(wù)治理上同樣做了可配置、可插拔的功能,用戶可以選擇 Istio 框架,也可以選擇 Spring Cloud。周小四認(rèn)為,長(zhǎng)遠(yuǎn)來(lái)看,由于 Istio 沒(méi)有綁定任何編程語(yǔ)言(Spring Cloud 必須基于 Java),可能更加適合企業(yè)用戶,不存在后續(xù)收費(fèi)或其他風(fēng)險(xiǎn),如果企業(yè)用戶需要,青云 QingCloud 可以幫助逐漸遷移到新的微服務(wù)治理平臺(tái)。
在整個(gè)過(guò)程中,青云 QingCloud 團(tuán)隊(duì)一直在思考如何降低開發(fā)者的學(xué)習(xí)曲線。在原生 Kubernetes 中有很多抽象的資源概念,開發(fā)者的學(xué)習(xí)曲線非常復(fù)雜。KubeSphere 盡可能多地屏蔽掉抽象概念,通過(guò)界面語(yǔ)言讓企業(yè)用戶更加易于理解,降低其學(xué)習(xí)成本。
此外,在青云 QingCloud 的云原生實(shí)踐過(guò)程中,開源社區(qū)和生態(tài)同樣扮演著重要角色。自正式加入 CNCF 社區(qū)之后,KubeSphere 與社區(qū)組件進(jìn)行了不同程度的集成,比如監(jiān)控領(lǐng)域的 Prometheus 項(xiàng)目等。為了符合 CNCF 的相應(yīng)規(guī)則,青云 QingCloud 整個(gè)團(tuán)隊(duì)做了很多完善工作,包括文檔、界面、用戶體驗(yàn)等,同時(shí)將平時(shí)遇到的問(wèn)題通過(guò) issue 的方式提交,并將改進(jìn)過(guò)的代碼反饋給開源社區(qū)。于爽認(rèn)為,這個(gè)過(guò)程對(duì)開發(fā)者個(gè)人、社區(qū)和企業(yè)而言是一個(gè)共同成長(zhǎng)的過(guò)程。
結(jié)束語(yǔ)
采訪最后,于爽表示,青云 QingCloud 會(huì)在今年交付 QKS(QingCloud Kubernetes Service),這是一個(gè)比 QKE 更加簡(jiǎn)單易用的產(chǎn)品。QKE 畢竟還要面對(duì) K8s 集群并關(guān)注基礎(chǔ)資源。QKS 會(huì)更加簡(jiǎn)單,用戶只需要面對(duì)應(yīng)用即可。不管是基于 FaaS 還是容器化開發(fā)方式,用戶只需要把代碼包、代碼倉(cāng)庫(kù)、暴露方式告知青云 QingCloud 云平臺(tái),QKS 將自動(dòng)完成后續(xù)所需事宜,這可能更適用于極度敏捷的公司,比如快速上線業(yè)務(wù)訴求的創(chuàng)業(yè)公司。此外,KubeSphere 容器一體機(jī)也在規(guī)劃中,其在現(xiàn)有開箱即用的基礎(chǔ)上,提供更便捷、更強(qiáng)大、更安全和更穩(wěn)定的云原生服務(wù)平臺(tái),并適合 IoT 的場(chǎng)景,可以用其構(gòu)建邊緣節(jié)點(diǎn)。









