青云 QingCloud 云原生實踐:基于 KubeSphere 的 QKE 正式交付

2019-08-09 10:33:19

來源:InfoQ  作者:趙鈺瑩

隨著技術的不斷發展,云的邊界正在被技術和開源抹平,很多軟件和框架設計并不直接與云平臺綁定,這也是越來越多開發者討論“云原生”的原因,而所謂的“云原生”就是最大程度發揮云平臺的價值,容器技術正是將該理念落地的重要手段之一。

在這之中,Kubernetes 項目正在嘗試將應用定義、管理和交付推向新的高度,雖然該項目的現有模型還存在一些問題和不足之處,尤其是聲明式 API 如何更好的與用戶體驗達成一致,但 Kubernetes 項目的確是云原生理念落地的核心與關鍵所在,這一點同樣體現在青云 QingCloud 的云原生實踐之中。

KubeSphere

根據 Gartner 在 2018 年做出的預測,到 2020 年,50% 的用戶會將容器應用在生產環境中,而這一數字未來有望更高。單體應用時代,所有功能和服務綁定交付,一旦出現問題,所有都需要重新打包、重新交付,而微服務是每個功能單獨打包,出現問題只需要單獨打包某一部分即可。相應的,技術水平在整個過程也發生了改變,從大機到云計算再到容器平臺,Kubernetes 已經成為容器時代的分布式操作系統內核,而 KubeSphere 正是青云 QingCloud 在此基礎上開源的獨立分布式容器管理平臺,并于近日正式交付 QKE(QingCloud Kubernetes Engine,即 KubeSphere on QingCloud)。

2018 年 4 月份,整個團隊寫下了 KubeSphere 的第一行代碼,當然這項工作的前期調研從 2017 年就開始了。采訪中,青云 QingCloud 容器平臺產品經理于爽表示,青云 QingCloud 云平臺 2017 年就向用戶交付了原生 Kubernetes PaaS 應用,但是原生的 Kubernetes 存在諸多問題,比如使用門檻較高等,如果把 Kubernetes 理解為分布式操作系統內核,其對終端用戶的使用難度可想而知。

KubeSphere 未來還將提供可配置、可插拔的功能,用戶可根據個人需要選擇想要的功能進行安裝。KubeSphere 的定位是分布式操作系統,Kubernetes 是其內核,用戶可在這個操作系統上安裝想要的功能。

綜合來看,KubeSphere 的產品特性主要可以從三個方面來看:

底層基礎設施支持,KubeSphere 考慮的是從最底層提供穩定的網絡存儲方案;

上層應用開發及管理,提供各種應用場景和所需功能;

企業級用戶體驗,從用戶體驗層面滿足客戶心理訴求,降低用戶 40% 的操作。

相較而言,KubeSphere 是私有化部署產品,要求用戶提供虛擬主機或者物理機資源,通過安裝包安裝,用戶登錄控制臺操控整個集群。實際上,這還是會為運維人員帶來一定使用成本,起碼要先了解安裝包配置過程,雖然比原生 Kubernetes 的安裝簡單很多,但還是需要花費一定時間成本。實際上,有些用戶的要求往往更靠上層,希望廠商可以提供輔助開發、運維工作的平臺,而不用了解底層基礎設施運維和主機資源管理等,這就是青云 QingCloud 開發 QKE 的初衷。

據介紹,QKE 實際上對用戶屏蔽了底層基礎設施運維,用戶不需要關心這一層,通過鼠標點擊就可以擁有完全高可用、底層使用青云 QingCloud 公有云的穩定 Kubernetes 服務。同時,因為 QKE 基于 KubeSphere,同樣擁有 KubeSphere 的很多功能,比如 DevOps、微服務治理、統一監控、統一日志管理,都可在 QKE 中交付給用戶,這是一整套打包服務,是一個公司級別的平臺,用戶只需點擊鼠標即可獲得,這對用戶來說友好且便利。

開源項目地址: https://github.com/kubesphere

青云 QingCloud 云原生理念

打造專業平臺,以讓平臺歸平臺,應用歸應用。

如上于爽所言,便是青云 QingCloud 的產品理念,這同樣貫穿在整個云原生實踐之中。那么,這句話應該如何理解呢?早在七年前,青云 QingCloud 便開始構建平臺化和產品化。具體來說,要想實現容器從上到下觸及很多方面,甚至到 Linux 內核,而真正的業務用戶不需要關心這些細節,平臺提供者會逐一解決,這就是“平臺歸平臺”;在這一基礎上,青云 QingCloud 云平臺積累了大量經驗和技術,盡量降低學習曲線并將抽象功能簡單化,用戶只需要關注業務邏輯即可,讓“應用歸應用”。

在容器實踐層面,谷歌開源的 Kubernetes 對開發者而言非常友好,但對非開發者而言并非如此,青云 QingCloud 在操作界面會盡量降低用戶復雜度,用更直觀的方式把功能交付給用戶,比如灰度發布。KubeSphere 提供了一種灰度策略,用戶可以先將新版本在部分區域上線,穩定后再將其余流量切換到新版本。在 KubeSphere 上,整個過程只需要鼠標拖拽進度條就可以實現,用戶不需要了解灰度發布的復雜度。

對于微服務治理,青云 QingCloud 目前擁抱 Istio,因為其架構更為先進,但也沒有忽視 Spring Cloud 的需求。因此,青云 QingCloud 在微服務治理上同樣做了可配置、可插拔的功能,用戶可以選擇 Istio 框架,也可以選擇 Spring Cloud。周小四認為,長遠來看,由于 Istio 沒有綁定任何編程語言(Spring Cloud 必須基于 Java),可能更加適合企業用戶,不存在后續收費或其他風險,如果企業用戶需要,青云 QingCloud 可以幫助逐漸遷移到新的微服務治理平臺。

在整個過程中,青云 QingCloud 團隊一直在思考如何降低開發者的學習曲線。在原生 Kubernetes 中有很多抽象的資源概念,開發者的學習曲線非常復雜。KubeSphere 盡可能多地屏蔽掉抽象概念,通過界面語言讓企業用戶更加易于理解,降低其學習成本。

此外,在青云 QingCloud 的云原生實踐過程中,開源社區和生態同樣扮演著重要角色。自正式加入 CNCF 社區之后,KubeSphere 與社區組件進行了不同程度的集成,比如監控領域的 Prometheus 項目等。為了符合 CNCF 的相應規則,青云 QingCloud 整個團隊做了很多完善工作,包括文檔、界面、用戶體驗等,同時將平時遇到的問題通過 issue 的方式提交,并將改進過的代碼反饋給開源社區。于爽認為,這個過程對開發者個人、社區和企業而言是一個共同成長的過程。

結束語

采訪最后,于爽表示,青云 QingCloud 會在今年交付 QKS(QingCloud Kubernetes Service),這是一個比 QKE 更加簡單易用的產品。QKE 畢竟還要面對 K8s 集群并關注基礎資源。QKS 會更加簡單,用戶只需要面對應用即可。不管是基于 FaaS 還是容器化開發方式,用戶只需要把代碼包、代碼倉庫、暴露方式告知青云 QingCloud 云平臺,QKS 將自動完成后續所需事宜,這可能更適用于極度敏捷的公司,比如快速上線業務訴求的創業公司。此外,KubeSphere 容器一體機也在規劃中,其在現有開箱即用的基礎上,提供更便捷、更強大、更安全和更穩定的云原生服務平臺,并適合 IoT 的場景,可以用其構建邊緣節點。