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 开源容器平台、QKCP 企业级容器平台、QKE 容器引擎。从大层面看,三者都是容器产品或服务,但在定位和应用场景上还是有一些差别。
相信很多开发者之前都听说过 KubeSphere,这是一个开源的容器项目,最初是由青云捐赠给了 CNCF。随后几年,青云的研发人员又和社区开发者一起共建生态,陆续捐赠了负载均衡器插件 OpenELB(补足 Kubernetes 集群在私有环境下对外服务暴露方面的能力)等项目,并与 Amazon EKS、Azure、DigitalOcean 等达成了深度合作。
KubeSphere 可以部署在任何环境的 K8s 集群,简易、美观的可视化设计让用户可以更方便地管理 K8s 集群,并且 KubeSphere 提供了很多衍生功能,如 CI/CD 工具、微服务治理等。总的来说,KubeSphere 在帮助用户简化集群管理的基础上,还提供了覆盖云原生业务完整生命周期的一站式服务。
QKCP 则是与 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 架构一直在进化。这个过程将持续多久尚未可知,可以预见的是托管版会在未来很长一段时间内充当重要角色。