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

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

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









