自從 2012 年,Serverless 這個詞被 Ken Form 帶到大眾面前,Serverless 架構就一直在以一種“實現云計算最初夢想”的姿態不斷更新和迭代。時至今日,我們尚未實現 Serverless 的終極形態,但已經出現了不少成果,托管版作為其中重要的一種形態,具體代表什么含義?從青云QingCloud推出的QKE容器引擎托管版中,我們看到了一些答案。
Serverless 架構開始成為云計算前進過程中的重要角色
從虛擬化發展到容器,業務架構從單體式演變到微服務化,各行業近幾年都在忙著上云和業務遷移。短短幾年,我們已經從云計算 1.0、2.0 走到了現在 3.0 的云原生時代。而我們不斷變革,想要追求的就是提升資源利用率,降低成本,簡化工作流程。
云原生時代,容器、Kubernetes、DevOps、微服務等一系列技術和理念得到快速發展和應用,使底層資源的利用率和性能都有了很大的提升。底層的部分變得更加簡單,而業務層的內容變得更加具體和分明,這也表明隨著技術的發展,底層架構的簡化,開發者關注的重心逐漸轉移到了實際業務層面,這是技術發展的趨勢,也是用戶的期望。
然而,這種模式下的開發者還是在圍繞著服務器轉,直到 Serverless 的出現,云應用開始朝著無服務器的方向發展,開發者再也不用過多考慮服務器的問題,可以更專注在產品代碼上,計算資源也開始作為服務出現,而不是作為服務器的概念出現。
從 2019 年 UC Berkeley 最新的文章《Cloud Programming Simplified: A Berkeley View on Serverless Computing》發布開始,Serverless 進入到了一個真正意義上的生產應用,最佳實踐快速發展階段,這一年對 Serverless 而言是具有里程碑式意義的,被很多人定義為 “Serverless 正式發展的元年”。
2021 年,Forrester 所發布的 《The Forrester Wave™: Function-As-A-Service Platforms, Q1 2021》 中表示,Serverless 架構的興起,讓 FaaS (Function As A Service) 成為繼 IaaS、PaaS、SaaS 之后一種新的云計算能力提供方式。預計 2021 年,將會有大量主流企業的核心應用,從原來的主機架構遷移到 Serverless 架構。
然而,目前很多用戶仍處于云原生轉型初期,受限于團隊規模,缺少運維人員或運維團隊,在使用 Kubernetes 過程中需要分心運維,難以專注開發,并且正式的生產環境通常是需要高可用的。因而,使用成本、部署門檻、工具集繁多無法選擇等問題,使得將容器服務托管版作為向 Serverless 終極形態的過渡成為一個比較理想的解決辦法。而這,也符合逐漸屏蔽底層,由云服務商負責底層的運維管理,解放用戶運維壓力的市場大趨勢。
基于以上種種原因,青云 QKE 容器引擎托管版應運而生。
QKE 托管版:向 Serverless 終極形態的過渡
在搞清楚 QKE 托管版是什么之前,我們先來了解下青云在云原生研發層面的技術積累情況。青云自 2016 年開始進行容器研發,最為核心的三大項目是 KubeSphere 開源容器平臺、KubeSphere 企業版容器平臺、QKE 容器引擎。從大層面看,三者都是容器產品或服務,但在定位和應用場景上還是有一些差別。
相信很多開發者之前都聽說過 KubeSphere,這是一個開源的容器項目,最初是由青云捐贈給了 CNCF。隨后幾年,青云的研發人員又和社區開發者一起共建生態,陸續捐贈了負載均衡器插件 OpenELB(補足 Kubernetes 集群在私有環境下對外服務暴露方面的能力)等項目,并與 Amazon EKS、Azure、DigitalOcean 等達成了深度合作。
KubeSphere 可以部署在任何環境的 K8s 集群,簡易、美觀的可視化設計讓用戶可以更方便地管理 K8s 集群,并且 KubeSphere 提供了很多衍生功能,如 CI/CD 工具、微服務治理等。總的來說,KubeSphere 在幫助用戶簡化集群管理的基礎上,還提供了覆蓋云原生業務完整生命周期的一站式服務。
KubeSphere 企業版容器平臺則是與 KubeSphere 開源版相伴相生,除提供產品支持服務外,還增加了更多企業級服務,能更好地應對云原生的業務場景。
這兩款產品均不限制底層環境,可以安裝在 IDC 或者任何云平臺之上。與這兩者不同,QKE 基于 QingCloud 云平臺為用戶提供云原生業務底座,不僅可以對接、集成青云各類產品和服務,還可對接第三方服務,為用戶提供更成熟、全面的支持,比如對 KubeSphere 的集成,可以更方便地管理 K8s 集群,并簡化 KubeSphere 的安裝;對云平臺自動伸縮服務的對接可為用戶提供節點級別的自動增減;與 Prometheus 的對接能讓用戶已有的服務不用再做遷移,降低成本的同時,節省大量運維工作。
青云 QKE 托管版架構圖
如上是 QKE 的架構邏輯圖,其基礎功能包括了集群管理和應用管理。在底層,QKE 集成了 QingCloud 云平臺的計算、存儲、網絡等資源,并以 Kubernetes 原生集群為核心,保證了集群的一致性,便于其它集群業務的遷移部署和兼容性。在業務層,QKE 可以提供可視化界面、自動伸縮、微服務治理等擴展能力,為用戶提供一站式、高可用的云原生能力。
為了給不同規模、有不同團隊分工的用戶更好地提供容器服務,QKE 提供了三種形態的集群:自管版集群,由用戶全權管理 Kubernetes 集群,包括 Master 和 Worker 節點,這要求使用者有專業的 Kubernetes 運維能力,才能更好地保障集群的穩定運行;托管版集群,Master 節點由 QKE 管理,創建集群僅需支付 Worker 節點的費用,在降低使用成本的同時解放用戶的運維工作,這對集群規模較小,處于云原生轉型前期階段的用戶相對友好;未來 QKE 還會提供 Serverless 版本的集群,完全屏蔽底層,可做到集群免運維,資源按需使用,有批量計算和突發業務需求的用戶可以關注該版本形態。
QKE 的眾多形態讓其可滿足用戶五大云原生業務場景的需要:一是 CI/CD 實踐。容器和微服務化有助于敏捷實踐的落地,QKE 提供內置的 DevOps 插件,可實現可視化流水線配置,省去很多人工操作,以便提升開發和部署環節的效率;二是混合多云多集群管理。QKE 多集群管理功能,將不同環境的 Kubernetes 集群進行統一管理,并通過應用多集群部署實現多活、容災的需求;三是構建業務中臺。QKE 提供可一鍵安裝的應用管理插件,能夠實現容器化應用完整生命周期的管理,用戶可借助此功能建設一個云原生業務中臺,對容器化應用進行發布、版本控制、擴容和計費等操作;四是核心應用微服務化。在應用部署、運維環節,用戶可通過微服務治理功能進行流量治理與鏈路追蹤,也可執行金絲雀發布、藍綠部署等動作;構建 AI 應用。QKE 集群不僅支持常見的虛擬機,還可使用 GPU 類型的機器作為計算節點,增強云原生 AI 場景下的使用體驗。
托管版適用人群
具體到托管版適合哪些用戶呢?企業需要結合自身的集群規模和團隊分工來考慮,如果集群規模較大,有一定數量的專業集群運維人員,并且希望針對集群進行深度自定義配置,那么可以使用自管版集群。其余大部分中小型企業完全可以把控制節點的運維工作交給青云,使用 QKE 托管版,節省成本并減輕運維壓力。
與市場上其他云廠商的容器服務托管版相比,QKE 在對托管版 Etcd 服務和外置 Etcd 集群的支持上也無差別,保證了存儲的高可用。同時,QKE 托管版不收取控制節點的資源費用,也不收取集群管理費用,這在一定程度上降低了用戶的使用成本。此外,QKE 托管版提供 SLA 保障,承諾 99.95%的服務可用性,并支持賠付,以便用戶更放心地使用。對成本敏感、追求運維更省心的用戶可以考慮該版本。
讓底層逐漸“不可見”
事實上,容器相對于第一代虛擬機而言,最大的優勢和改進是去掉了 Hyper 層,讓物理服務器的利用率有了更多提升,也讓管理和配置更加簡單,這是容器技術能夠替代虛擬機成為新一代底座的重要原因。
未來,我們可能終會走向 Serverless 的時代,底層會更加簡化,用戶會更加聚焦業務開發。越來越多的云廠商將接手底層資源的配置、運維等工作。正如 Gartner 報告中所預測的:到 2025 年,全球一半的企業將采用 FaaS 部署;或許,時至今日的 Serverless 架構依舊不是最終形態的的 Serverless 架構。但不可否定的是,Serverless 架構一直在進化。這個過程將持續多久尚未可知,可以預見的是托管版會在未來很長一段時間內充當重要角色。