云原生时代下的数据库服务

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

云原生时代下的数据库服务

媒体|InfoQ

采编|张婵

在国内公有云都在提供“容器+Kubernetes"的服务来帮助企业上云的背景下,数据库服务应该如何借助云原生理念来助力企业解决上云过程中重要的数据存储和安全问题?

随着云计算和容器技术的发展,云原生(Cloud Native)理念应运而生,中国市场也在积极拥抱云原生理念,成为云原生领域相关技术的生力军。在国内公有云都在提供“容器+Kubernetes"的服务来帮助企业上云的背景下,数据库服务应该如何借助云原生理念来助力企业解决上云过程中重要的数据存储和安全问题?对此,我们采访了沃趣科技,来了解企业级数据库云产品是什么样的。

沃趣的产品体系

沃趣已经成立6 年,其产品体系是在不断讨论中逐步完善的。

初期, 沃趣通过整合开源领域的软硬件技术为客户提供高性能一体机也即是QData, 提供高性能, 高可用, 易扩展的数据库产品及整体解决方案。

随后, 沃趣在想如果把QData 集群节点之间距离拉的更长一点, 譬如60 公里, 是否

可以满足用户跨IDC 构建双活系统的需求, 于是有了QData Infinite。同时,为了满足用户数据备份、恢复、冗余的需求,以及如何更好地将备份系统适用到更多场景(譬如:误操作之后的数据恢复,应用预发布,指定时间点恢复等),沃趣又推出了QBackup 备份容灾云平台。

当然,沃趣最终目的还是希望帮助用户更高效地交付数据库,并利用好最新的Oracle 特性。所以在以上的软硬件基础上,沃趣又率先在业内推出了全面支持Oracle 12C 的QData Cloud。

除此之外, 沃趣的产品也开始覆盖MySQL,期望通过借助容器、编排等技术提供更好的MySQL 私有RDS (relation data system),以Oracle 和MySQL 为主,产品覆盖数据库的整个生命周期,包括数据库集群创建,分库分表集群,读写分离集群,集群水平扩展,数据库实例高可用,实例的备份、容灾,以及日志分析、SQL 审计等等。

如何理解云原生?

云原生是一种构建和运行应用程序的方法,可以利用云计算模式的优势——弹性和按需计算的能力。云原生应用程序以云计算平台的快速响应为基础构建和部署,为企业提供跨云更高的灵活性、弹性和可移植性。

沃趣产品及研发负责人熊中哲说,很多大神对“Cloud Native”有各自的解释,概念上可简单归纳为:可扩展,无单点故障,自治,自动化,与底层平台解耦。从沃趣实践的角度看,使用云原生架构意味着:

⚫通过容器技术构建数据库实例运行态, 提供单机多实例的资源隔离以及硬件资源的穿透等;

⚫利用容器的编排技术以及扩展机制实现RDS 相关业务;

⚫利用分布式存储构建弹性的数据库集群,简化实例高可用,扩容,备份,恢复等操作;

⚫借用云原生架构实现数据库运行指标的采集和日志采集, 并在此基础之上提供标准的API 以构建数据和日志分析的平台。

熊中哲介绍到,目前开源的云原生应用程序很多,但是持久化方面,特别是数据库方面的项目就更少了,最为大家所了解的是Vitess。Vitess 是一个基于MySQL sharding 机制的数据库集群项目,可以非常方便的做到水平扩展。Vitess 从2011 年开始,就作为YouTube 的一个核心系统组件,在Google Cloud 上运行,现在规模已经达到上万个数据库实例节点了。相比这些开源项目,沃趣还在学习之中,正在不断摸索来完善技术和产品。

云原生架构下的数据库研发

熊中哲说,从需求的角度看,云原生架构下的数据库和传统的数据库没有任何不同。不管使用何种技术,业务对数据库的要求本质上没有什么变化。但是从技术实现上看,采用云

原生架构会遇到一些很具体的问题:

⚫如何统一保管数据库密码;

⚫如何动态发现数据库实例;

⚫如何统一管理数据库实例配置;

⚫监控数据的增长和查询效率不再成反比;

⚫是否可以采集每一条日志, 并提供标准接口查询;

⚫如何更好的进行实例资源的隔离,而不是依赖接口化程度不够的CGroup;

⚫建立Zone 和Region 的概念,并以此隔离租户、实例、存储资源等;

⚫如何跟底层的IaaS 解耦,"Run once, run anywhere"。

类似的问题还有很多。原来的方法是做到哪里是哪里,但是使用Cloud Native 架构,沃趣可以找到很好的架构和解决方案,更专注在具体业务的实现,不再从零开始, 比如:

⚫重构监控数据存储,把监控数据从关系型数据库迁移到时序数据库,解决随着数据量的增长查询效率明显下降的问题;

⚫重构日志采集模块,将基于SSH 的方式重构,不仅可以存储数据库产生的每一条日志,还可以提供标准的Rest API,提供标准的查询接口;

⚫引入高性能队列为客户建立数据Bus,解决之前peer-to-peer 的问题;

此外,为了更好地运用云原生架构,沃趣团队进行了大量学习,做了很多改进。首先是掌握了新的语言和新的编程方式:从Python 转到Golang,从熟悉的多进程,多线程并发架构转换到Golang 基于协程的并发架构;从基于事件驱动的祈使式(Imperative),到基于observe--diff--reconcile 的声明式(Declarative),团队也花了不少精力在写出Kubernetes-Native Code。其次是提升工程能力,改进原有的代码提交流程,提升Code Review 的质量,并加如E2E 测试。为此沃趣升级了GitLab 平台,集成了CI/CD 流程。

当然Kubernetes 不能解决所有问题, 了解其边界是真正落地的开始, 泛泛而谈并不是严谨的态度, 在特定的场景和领域, 很多问题还需要我们自己解决. 借用Google 工程师Kelsey Hightower 的一句话:

“We very receptive this Kubernetes can’t be everything to

everyone.”

相关文档
最新文档