“当微服务变得越来越多时,管理就会出问题。就像汽车的轮子,单个轮子肯定不行,需要整装、驱动,但是轮子越来越多时,如何管理这些轮子也很重要。这时候必须有一个管理系统,Kubernetes 已经成为容器平台的标准,所以青云QingCloud 会拥抱 Kubernetes。Kubernetes 不仅仅是容器的调度和编排,它还制订了一套标准和规范,生态非常强大。我们认为 Kubernetes 是容器时代的分布式操作系统内核,我们一定是要基于此再发展上层的功能。”对于企业在云原生时代的业务部署和应用交付趋势,青云QingCloud 应用及容器平台研发总监周小四有着清晰的判断。

青云QingCloud 应用及容器平台研发总监周小四

借助云计算、人工智能、5G、物联网等技术对企业进行流程和模式的升级或再造,已成为科技厂商赋能传统产业的新路径,产业互联网的概念也由此而来。如果说数字经济是推动企业IT化助燃剂,那么要想让数字化转型渗透到业务的每一个环节,就要从 IT 基础做起,而这种转变不仅是理念上的,也是架构上的。

早在 2016 年 11 月,青云QingCloud 就提出了一套架构同时支持虚拟主机和容器主机的技术理念。2017 年,青云QingCloud 的 PaaS 服务通过应用容器技术,将性能至多提升 500%,同年 7 月,Kubernetes on QingCloud 上线。Kubernetes 的可移植性、开发交付快等特性无需多言,但其在部署复杂度、存储、调试等方面的局限性也让不少企业头痛不已。

“Kubernetes 只负责底层,上层的服务都不管,这对企业客户来说肯定是不够的。企业要的是 DevOps、微服务治理等,他们要很多的功能,这些 Kubernetes 都没有。”说到 Kubernetes 的学习成本以及二次开发和管理成本,周小四深有感触。

随着越来越多的企业在部署业务时开始关注云原生环境,以往的交付方式亦在向服务化、应用化的形态转变,如何让产品迭代更快、交付周期更短、服务响应更及时、需求满足更个性化,要从IT底层架构进行适应。

为什么会这样?这还是要从单体应用和微服务的差别说起。

在周小四看来,容器是云原生时代的核心基础设施,应用改造从以前的单体应用、3 Tier、SOA 架构转化到微服务架构,区别在于原有的单体应用一旦出现问题要重新打包和交付,而分布式架构的微服务则是对每个功能独立打包,出问题后各自解决即可。

数字化转型 2.0 到来

4 月 19 日,青云QingCloud 正式推出了 KubeSphere 容器平台高级版,并宣布 KubeSphere 加入 Cloud Native Computing Foundation 云原生计算基金会。“以前是大机、数据中心、云计算,以虚机为基础的云计算、云平台。现在发展到容器平台(KubeSphere),要到这个基础设施上。”周小四说。KubeSphere 的初衷是以“简”之道降低容器复杂度,解决企业微服务架构、DevOps 中遇到的复杂多样挑战,帮助企业轻量级调度全栈云功能。

KubeSphere 容器平台发布会

据了解,KubeSphere 的代码开发始于 2018 年 4 月,当时的想法是要让 KubeSphere 的架构设计和理念更先进、更灵活。首先是让 KubeSphere 可以部署在任何的 Kubernetes 集群上,包括每一个发行版。其次,KubeSphere 要具备可配置、可插拔的功能,也就是让客户能够根据实际需求定制。如果说 KubeSphere 的定位是分布式操作系统,那么 Kubernetes 就是里面的内核。2018 年 6 月,KubeSphere 社区版上线,2019 年 4 月发布 2.0 版本,并将在之后的版本中陆续加入了对 AI、无服务器计算、API 网关的支持。

KubeSphere 发展路径

周小四透露,后续将提供QKS(公有容器云服务)的支持,在价格方面会重新调整,“Kubernetes 之所以能赢得战争,就是因为生态很强大。KubeSphere 也是开源的,我们在上游社区贡献了很多,我们自己也贡献了一些项目,覆盖的面比较广,存储、网络、DevOps、负载均衡器都有,现在我们成为了很多开源社区的重要成员。”

那么,KubeSphere 是解决问题的呢?

存储方面,青云QingCloud 提供了使用天然适合微服务的分布式存储 QingStor NeonSAN,其性能、稳定性、安全性远高于开源产品;网络方面,青云QingCloud 拥有在公有云和私有云经过验证过的 QingCloud SDN,可以有效解决多租户场景中网络强隔离的问题,同样要比开源方案更可靠;实用方面,青云QingCloud 提供了完善的可视化的工具和技术平台,以及微服务治理和应用商店 AppCenter。

进一步看,KubeSphere 提供了多种经过社区众多开发者和厂商验证过的开源插件,支持多款存储插件和存储模式。同时,青云QingCloud 的存储都是基于 CSI(Kubernetes)的标准插件接驳 KubeSphere,一键部署不需要额外的配置,包括块存储、QingStor NeonSAN 等产品均可以提供更低延时、更加弹性、更高性能的特性。

青云QingCloud 云平台块存储在 K8S 容器测试表现

青云QingCloud QingStor NeonSAN 在 K8S 容器测试表现

KubeSphere 容器平台产品经理于爽表示,QingStor NeonSAN 可以提供数百万的 IOPS,时延是亚毫秒级别的。在青云QingCloud 公有云上,NeonSAN(企业级分布式 SAN)也已经上线,很多用户正在使用。从实际测试来看,企业在容器中使用青云QingCloud 的块存储和 QingStor NeonSAN 的时候,与使用虚拟化存储是一样的,没有系统层面的损失。同时,上述两款存储产品进入了 CSI Driver 目录,得到了官方社区的认可。

KubeSphere 容器平台产品经理于爽

再来看网络,这是青云QingCloud 多年以来重点投入的技术领域,其也将 SDN 的能力无缝迁移到了 KubeSphere 中,不仅可以为客户提供三层 SDN 租户硬隔离方案,也可以提供 Region 架构,实现跨集群网络访问的对接。通过 KubeSphere,能够对接 calico、flannel 等主流网络插件。

而对于那些已经将业务迁移到 Kubernetes 环境的企业,KubeSphere 则提供了负载均衡器插件,该插件曾在 Kubernetes PaaS 服务中出现过,同样也可以直接用到青云QingCloud 的 SDN 服务。要知道,以互联网为代表的企业希望获得高性能的解决方案,会直接将 Kubernetes 部署在物理机上,不会再在中间隔一层虚拟化平台。

针对这种部署方式,周小四也对笔者做出了解释:在生产环境直接用物理机一定是趋势。在虚机上有虚拟化的性能损耗和网络的性能损耗。在 IaaS 上用的是 SDN,网络性能会有损耗,在物理机上可以解决这个问题。

“这就谈到另一个话题:企业如何使用 K8S,到底放在虚机还是物理机,这就要思考一个问题——客户想要什么?刚刚谈到的是生产环境,要的是性能,放在物理机是没问题的。对于开发测试,放在 IaaS 云平台是很好的。IaaS 可以提供资源层面的弹性,计算、存储和软件定义网络。这时候你在上面有弹性、敏捷性。如果要三个节点,在物理机上弄挺麻烦的,但在虚拟机上可以立马启三个节点。在开发测试环境上,放在虚机是更好的选择,它没有性能的要求。”周小四说。

无论是放在物理机还是虚拟机,青云QingCloud 都有较好的支持。以部署在物理机为例,毕竟在裸金属的平台上并没有云平台 SDN 的负载均衡,对此,青云QingCloud 提供了开源插件 Porter(在 GitHub 开源),允许客户可以自行采购物理交换机。

有了坚实的基础设施支撑,接下来就是向上层拓展场景功能。DevOps 就是很好的例子,企业可以通过 DevOps 可以快速迭代,实现功能的快速发布。“我们的 DevOps 提供了各种功能,基于 Jenkins 的可视化流水线控制台,用户通过鼠标拖拽、点击就可以构建自己的自动化流水线,不需要了解后台复杂的服务器配置。”于爽介绍称,“用户要做容器镜像的发布,部署在 K8S 环境里,也不需要在里面配置各种复杂的 K8S 命令,只需通过一个界面,填写发布对象的 K8S 的地址,平台就会自动帮你做这件事。”

内置模板可实现代码拉取、代码编译、代码静态扫描(扫描代码里的漏洞)、制作容器镜像、推送、发布等端到端流程的自动化

用户可自行编辑流水线支持的串行和并行任务

代码直达容器镜像功能

微服务治理是另一个用户较为关注的特性,KubeSphere 的做法是追随社区主流,这样做的好处是更加便于开发者接受,也降低了使用门槛,KubeSphere 可以原生对接 Service Mesh 框架 Istio。于爽认为,Istio 是未来的趋势。随着功能即服务(FaaS,Function as a Service)对原有开发模式的革新,不受 Java 语言栈绑定的 Istio 将发挥更大的影响力。

提供 Spring Cloud 兼容解决方案

借助微服务治理平台,青云QingCloud 可以实现金丝雀发布、蓝绿部署、熔断和链路追踪。“这些功能在 Istio 里是通过很多复杂的配置、复杂的操作实现的功能。我们帮助企业屏蔽了后端所有乱七八糟的东西,客户只需要在界面简单点几下就可以实现想要的功能,他不需要对 Istio 有太多的了解,用户甚至不需要知道 Istio 这个词。”于爽说。把简单留给客户,把困难留给自己,一直是青云QingCloud的理念。

当然,未来可能用户并不需要知道底层的基础资源由哪一方提供,只会关心应用的效果和体验。青云QingCloud 在 GitHub 上开源的 OpenPitrix,可以实现跨云、跨平台的应用管理和一键部署,其底层后端无缝迁移至 KubeSphere 之后,延续了跨平台应用全生命周期管理的能力,开发者的应用开发、发布、版本管控、运维、监控等流程均可得到满足。

“大道至简,举重若轻”,这是青云QingCloud KubeSphere容器平台发布会的主题,而极简的减法理念也是 KubeSphere 自开发之初所秉承的。为此,青云QingCloud 利用一系列的 UI 设计让 KubeSphere 开启了“上帝视角”,通过研发时比对每一个功能点相较同类产品操作步骤进行逐一简化,让用户用尽可能少的操作实现同样的功能。其结果是,KubeSphere 在服务发布流程方面降低了用户 40% 的操作负担。

服务发布功能


一键发布业务应用

可以看到,KubeSphere 之于 Kubernetes 的再造是全方面的,而这也与青云QingCloud 对于云化、容器化、应用化的未来 IT 论断一致。就像周小四所说的,容器对于企业来说不仅仅是技术,更多的是对企业文化的改造,需要企业在业务理念、流程等进行全方位的改造,“企业如何切分业务才能做到微服务化,流程从以前的方式改成 DevOps 的方式,这是不容易的,要耗费资金和精力培训员工做思想上、技术上的整体改造,只有这样才有可能推动数字化转型取得成功。”