在Gopher 大会上,我们做了一个K8s Operator使用情况的小调查,没想到结果竟然是这样!!!...
6月11日,Gopher大会胜利召开,每个开发者都收获满满。云猿生数据作为Gopher China本次大会的合作伙伴,也非常荣幸的参与了本次大会。在会上,云猿生数据联合创始人&CTO,前阿里云数据库研发总监,云数据库架构师,蔡松露针对K8s上的运行数据库的话题进行了题为《KubeBlocks - A domain-driven design operator for stateful wo
6月11日,Gopher大会胜利召开,每个开发者都收获满满。云猿生数据作为Gopher China本次大会的合作伙伴,也非常荣幸的参与了本次大会。
在会上,云猿生数据联合创始人&CTO,前阿里云数据库研发总监,云数据库架构师,蔡松露针对K8s上的运行数据库的话题进行了题为《KubeBlocks - A domain-driven design operator for stateful workloads》的分享。我们还面向Go语言开发者们做了一个小调研,结论很有趣。
在K8s上管理数据的现状与挑战
在K8s上运行数据是一个事实
蔡松露给大家介绍了去年DoKC(Data on Kubernetes Community)组织的一份详细的调查报告(我们本次的调研内容见下文)。报告表明,目前有94%的参与调研的组织部署了K8s,其中90%认为K8s已经准备好运行有状态服务了(stateful workload),而其中70%的公司已经在生产环境中将数据运行在K8s之上。而有状态服务中,以数据库服务是最为典型。
在K8s上运行数据库真正的挑战是什么
蔡松露提到,实际上其实在K8s之上管理数据会有很多问题,诸如:
数据不一致的风险
标准化程度也较低
易用性也不是很好
管理的复杂度高
与现有的平台和工具集成度不够
一般成熟的商业公司往往会使用至少5种以上的数据库产品,比如使用MySQL、Redis、MongoDB支撑在线业务,使用Kafka和Flink、Spark支持离线业务,还有训练大模型需要的向量数据库等等,多种数据库的管理对用户是一种比较大的技术挑战和成本支出。
的确,“在数据领域,K8s Operator解决问题都是比较特化的,解决的问题领域比较窄。” 如MongoDB的Operator只解决MongoDB的问题,也有的产品是没有Operator支持的,即便有也需要花时间维护,大部分只是处理了生命周期,对于备份恢复等功能的支持也不到位,并且也未必好用.
很多开发工程师可能每天花三四个小时去处理数据库的问题,耽误真正产生价值的业务。
KubeBlocks——一个有趣的开源小项目
蔡松露表示,“我们做了一个比较有趣的尝试,开源了一个小项目,叫KubeBlocks。希望基于我们在数据库领域摸爬滚打了十几年的经验,在 K8s上去把这个问题给彻底解决掉,也在 K8s 的生态上填补一个空白。
第一,针对大多数Operator只处理了生命周期,缺少备份、恢复监控,HA,等这些常用的功能的问题。KubeBlocks首先在这些方面把Feature补齐了。
第二,有状态应用是复杂的,包含很多角色,我们对角色也进行了梳理。此外,一个分布式数据库组件都十几个,这时用K8s编排,很难搞起来。通过KubeBlocks,您也不需要担心这个问题。
第三,我们抽象了两种Set,将一个高内聚的主备组,当成一个基本的集合,三节点也可以当成一个集合,一个集合可以当作一个原子来看待,也可以理解为一个个的Block了(也就是KubeBlocks产品名字里的Block的由来啦)。我们对这种依赖关系做了高度的抽象,实现了两类,一类是ReplicationSet,一类是ConsensusSet。这里面做了十几个接口,通过这种抽象,就能把一个复杂的数据库集群的操作内置化。
有了这两个基本的Block之后,就有了更大的抽象。我们可以在KubeBlocks上面的构建一个更大的集群,有的集群很复杂,它在里面既包含了这个MySQL,又包含了 etcd 等,但是在我们这个KubeBlocks里面,你依然可以用一个拓扑就把很复杂形态描述出来。
此外,KubeBlocks还给CRD和Controller方面做了一些设计。支持Grafana监控、水平和垂直扩展,比如说我要把 PG 的实例从一主一备变成一主两备,可以用一条命令就完成操作……
KubeBlocks虽然还是个年轻的平台,但是已经稳定的运行在客户的生产系统了。KubeBlocks已经全面开源了,也希望大家到我们Github的项目中去了解一下。
现场我们还做了一个小调研
在Gopher现场,我们也做了一个简短的小调研。这个简短的问卷调查,一共回收问卷233份。
根据调研结果,我们发现,参与调研者中,有近90%的人对K8s很了解。
K8s的供应商,是云厂商和自建各一半。这个也符合我们的预期。
有很多用户在K8s上使用Operator,占了整体的70%。小猿姐更没想到使用Operator的受访者其中居然有80%多十分了解数据库的Operator,并在数据库管理中包含了Percona,Redis Operator,和MongoDB Operator。
再次感谢参与调研的小伙伴。他们来自以下企业。
对了,上篇公众号,有个说抽到隔壁展台大奖的小哥哥,我们就是“隔壁展台”。
ApeCloud——云猿生数据有限公司
ApeCloud致力于为应用开发者和运维工程师提供经济、高效的云原生数据服务。
KubeBlocks官网:www.kubeblocks.io
GitHub地址:https://github.com/apecloud/kubeblocks
公众号:想要了解Go更多内容,欢迎扫描下方👇关注公众号,回复关键词 [实战群] ,就有机会进群和我们进行交流
分享、在看与点赞Go
更多推荐
所有评论(0)