NineData 亮相 GOPS 大会:揭秘新时代企业级数据库 DevOps 最佳实践
2024 年 4 月 25-26 日,第二十二届 GOPS 全球运维大会暨 XOps 技术创新峰会在深圳圆满举办。GOPS 全球运维大会暨 XOps 技术创新峰会由高效运维社区(GreatOPS)和 DevOps 时代社区联合主办,指导单位为 DAOPS 基金会、开放运维联盟(OOPSA)。
在本次大会上,NineData 创始人兼 CEO 叶正盛在 GOPS 全球运维大会的主论坛上分享了题为《新时代企业级数据库 DevOps 最佳实践》的演讲。此次是 NineData 数据库 DevOps 正式升级后的首次亮相。通过现场解读产品最新核心亮点,NineData 不仅收到了银行、证券、电信、汽车等行业的深度合作需求,同时,也吸引了运维和研发技术爱好者的广泛关注。
本文来自于叶正盛在 GOPS 全球运维大会的公开分享整理:
大家好,我是 NineData 的创始人兼 CEO 叶正盛,今天我将围绕“新时代企业级数据库 DevOps 的最佳实践”这一主题展开分享。在我超过 20 年的职业生涯中,我一直专注于数据库领域,曾在阿里巴巴集团深度参与数据库 DevOps 的发展,亲身经历了去 IOE 架构,到应对双十一高峰以及实现异地多活,再到推动云数据库的演进。
借此机会,我希望能通过我的经验,深入浅出地探讨数据库 DevOps 的相关内容,以及介绍 NineData 在这方面的创新和实践,一起探索数据库 DevOps 如何为企业带来价值和效率的提升。
我将首先介绍数据库与 DevOps 的基本概念。在长期专注于数据库领域后,我意识到其多样性和复杂性,特别是在当今市场,国内有大约 300 种不同的数据库类型,全球更是超过 1000 种。为了便于理解和分类,通过处理的数据量和 SQL 能力二维划分——横轴根据数据处理规模从小到大,纵轴衡量 SQL 能力的强弱,我们能更直观地理解数据库系统的基本架构和功能特性。横轴与纵轴相交形成了 4 个象限,于是便可以看见常见的四个主要数据库类别:
事务处理(TP):包括常见的关系型数据库,如 MySQL、Oracle 和 SQL Server,这些适用于在线事务处理(OLTP)场景。
分析处理(AP):这部分涵盖了数据仓库,如 Teradata、Doris 和 Amazon Redshift,它们专为大数据分析而设计。
NoSQL:位于左下角,这类数据库是非关系型的,如 Redis,它们强调高性能的键值存储和缓存能力,而非复杂的 SQL 查询。
大数据:位于图的右下角,如传统的 Hadoop 体系,HBase、Elasticsearch 等等,它们在处理大规模数据时表现出色,但是 SQL 表达能力不如 OLAP 产品。
通过这个分类图,大家将能更好地理解数据库领域的全貌特性。
在构建高效数据库生态系统中,关键在于全面的产品支持。数据库生态产品划分为四个主要类别:
DevOps、数据流(复制与集成)、数据库运维(DBPaaS)和数据分析(BI)。DevOps 涵盖 SQL 客户端、SQL 审核与发布(CI/CD)、性能优化和数据安全。例如,NineData 专注于数据库 DevOps 和数据复制,而 DBPaaS 则提供云上数据库托管运维服务,包括备份、高可用性等,最常见的产品形态是 RDS,BI 领域主要是报表等数据分析产品,如 PowerBI、帆软等。
数据库 DevOps 面临的挑战源于开发和 DBA 角色的不同视角。开发人员追求快速迭代,而 DBA 则注重安全稳定,这可能导致两者之间的沟通摩擦。解决这个问题的企业通常采用工具如 SQL IDE 客户端,但在生产环境中,由于严格的权限管理和标准化流程,传统工具往往无法满足需求。企业常常采用自建堡垒机和定制化客户端解决方案,尽管表面上看似增加了安全性,但实际上操作复杂且存在潜在漏洞。
在探讨数据库 DevOps 实践时,我们必须面对一系列显著的挑战,源于开发和数据库管理员(DBA)之间的视角差异。作为一名拥有十五六年开发经验及两年 DBA 背景的创业者,我深知两者间的思维方式存在显著区别。开发团队追求快速响应客户需求,优化开发效率,以迅速实现产品上线,而 DBA 则将确保系统的安全稳定作为核心指标,这就可能导致他们在追求速度与保证质量之间产生冲突。
在企业环境中,开发与 DBA 的角色经常存在潜在的对立,由于对数据安全的重视和严格的流程规范,开发团队有时会觉得 DBA 的介入阻碍了他们的工作效率。例如,在阿里巴巴的经历中,我曾察觉到早期开发团队对于繁琐的生产变更审批流程感到不满,这导致了发布节奏的拖沓,影响了整体协作效率。
因此,数据库 DevOps 的成功实施需要平衡这两者的利益,通过建立有效的沟通机制,制定清晰的安全策略和标准化流程,以降低沟通成本并提高发布效率。只有当开发团队理解和尊重 DBA 的角色,双方才能协同工作,共同推动项目的顺利进行。
在我们的观察中,许多企业已经开发了多样化的客户端工具,例如堡垒机,通常会在上面搭建 Windows 环境,以支持 MySQL 和 Oracle 等数据库的客户端访问。然而,这样的架构往往存在混乱,尽管堡垒机的存在理论上增加了安全防护,但实际操作中,开发人员和运维人员仍倾向于直接使用数据和账号密码,这显得过于原始且不够安全。业界充斥着各种工具,比如 CI/CD 流程管理、SQL 变更发布系统(如 Flyway 和 Liquidbase),以及针对特定数据库的在线变更工具,这些工具各自独立,缺乏统一的标准和管理。
这种碎片化的解决方案组合起来,虽然功能丰富,但在实践中却可能导致系统的复杂性和安全性隐患。在我们的调研中,发现许多企业的数据库管理实践并不理想,存在着自行拼凑、缺乏整体性和标准化的问题,这无疑增加了潜在的风险。因此,提升数据库管理的统一性和安全性已经成为现代企业亟待解决的关键挑战。
在 2010 年,我以 DBA 的身份加入阿里巴巴,面对日常的 SQL 变更管理工作,常常需处理因数据错误引发的现场修复需求。由于只有 DBA 具备权限并能评估 SQL 变更的影响,这在 DevOps 流程中显得尤为繁重。为了简化这些问题,我们开发了一款名为 iDB 的产品,灵感来源于当时的流行趋势——iPhone,旨在整合研发和 DBA 的需求到一个统一平台上。
iDB 的诞生在阿里巴巴集团产生了深远影响,随着从单一的 Oracle 数据库转向多元化的数据库环境,如 MySQL、OceanBase 和 MongoDB 等,我们需要一个集中的管理系统来统一操控。特别是双十一活动以及数据库的异地多活和云化过程中,iDB 成为了核心工具,开发人员只需使用单一平台就能便捷地切换和管理不同的数据库,极大地提高了效率。
这套解决方案不仅在阿里巴巴内部广泛应用,包括支付宝和高德等业务部门,内部定位为企业级数据库 DevOps 平台,实现了数据库管理的标准化和高效化。
接下来,我将详细介绍我们公司所研发的产品——NineData。依托过去我在阿里巴巴多年技术理念的延伸,我们致力于将其转化为一款通用的市场解决方案。NineData 自三年前成立以来,通过持续创新,坚持以提升安全与效率为核心设计理念。在数据库领域的 DevOps,数据安全至关重要,它与应用需求有所不同,因此我们在 NineData 产品设计中格外关注这一平衡。
NineData 的能力主要体现在以下几个方面:首先,我们提供一个安全强化的 SQL IDE,确保开发过程中的数据保护。其次,我们的 CI/CD 模块专注于 SQL 的审核与自动化发布流程。此外,我们还具备强大的数据库性能诊断和优化工具,帮助用户监控和提升系统效能。最后,数据安全始终是我们产品的基石,我们致力于提供全方位的数据安全保障服务。
首先,我们的 SQL IDE 整合了大模型技术,实现了智能提示和高级功能。通过集成 ChatDBA,一个基于 AI 大模型技术的数据库智能助手,开发人员能够获得即时的问题解答,无论是关于函数使用、语法优化还是国产数据库知识查询。对于资深开发者,是很好的辅助;而对于 SQL 新手,它更具价值。我们还在 SQL 优化、数据库结构转换、代码自动生成、SQL 审核等方面广泛应用 AI 技术,提升了整体工作效率。
我们的安全 IDE 是一个创新设计,区别于传统的数据库堡垒机,它不依赖于单独的账号密码输入。我们采用集中式账号管理,使得操作人员无需直接处理敏感信息,从而提高了安全性。IDE 内置严格的审计功能和操作约束,支持超过 60 种数据库的脱敏处理,有效保障数据隐私。在这款 IDE 中,用户可以享受到全面且安全的数据库操作环境。
在数据库管理中,传统的持续集成/持续部署 (CI/CD) 过程通常转变为更专业且智能的 SQL 变更管理和审核。传统流程中,开发人员需提交 SQL 脚本,通过人工工作流传递至 DBA 进行执行。然而,这种模式存在诸多挑战,如人为错误、理解差异、SQL 编写规范不易自动化控制,可能导致数据丢失、锁表或缺乏备份等问题。
NineData 的新解决方案是基于智能 SQL 审核与发布流程,它能够自动检测代码中的安全风险,评估其对数据库的影响,并在设定的时间内执行,无需 DBA 实时监控。相较于过去,DBA 的日常任务负担显著减轻,例如在阿里巴巴集团的实际应用中,数据库发布的工作效率提升了至少 5 倍。使用此智能系统后,开发人员可以独立完成 SQL 发布,低风险操作无需 DBA 额外介入。
在 SQL 审核与优化功能上,我们的系统充分考虑到了专业性,主要面向 DBA 的专业需求。如今,我们已将基于 AI 大模型内置于 NineData 平台中。开发人员在编写 SQL 时,无需专业知识,即可利用我们的强大工具进行操作。首先,集成的大模型技术能够实时检测 SQL 的问题,并提供针对性的改进建议,帮助提升代码质量。
此外,我们还引入了先进的 CBO(Cost-Based Optimization)理念,即数据库优化引擎,它具备智能诊断能力,能自动分析 SQL 的执行效率,为潜在的优化点提供建议。这样,我们就提供了一套基于 CBO 技术的智能慢 SQL 诊断与优化解决方案,简化了开发过程,提高了代码性能。
另一个关键功能是数据归档和清理。随着数据量的增长,以往这类任务往往需 DBA 手动处理,将历史数据移至特定存储库。在我们的平台上,我们实现了这一过程的自动化。用户只需简单配置,规定满足特定条件(如数据过期日期)的数据,系统便会自动将其归档并迁移到预设的位置。这样的设计旨在提升效率,减少人工干预,使得数据管理更为便捷和高效。
在 DevOps 实践中,安全被视为基础,没有有效的数据库安全,项目的推进将面临严重挑战。鉴于此,我们着重于强化安全性,以提升整体效率。首先,我们关注敏感数据的保护,尽管市面上存在不少开源解决方案,但其保护机制往往不够严谨。通过亲身体验,我们发现许多开源工具在面对复杂 SQL 查询时,无法有效防止敏感数据泄露,这对于专业数据保护人员来说是不可接受的。理想的解决方案应整合数据库解析引擎,确保在代码层面上全面防护敏感数据。
因此,在我们的系统中,我们自主研发了 SQL Parse 组件,支持 Oracle、SQL Server、PostgreSQL 等多种数据库,这是一项艰巨且技术密集型的工作。我们的重点不仅在于检测,更在于防止代码通过不当方式暴露敏感数据,这是我们视为核心安全技术的关键部分。通过这样的设计,我们致力于提供更为安全可靠的数据库环境,以适应 DevOps 项目的需求。
为了实现高效且精细的数据库访问控制,我们构建了一套面向数据库的 RBAC(Role-Based Access Control)权限管理系统。在过去,为每位开发者在数据库中创建单独账户的做法可能在规模较小的团队中可行,但在现代企业环境中,面对数百乃至上千的开发者,这样的做法显然不再适用。因此,我们通过抽象出数据库的环境(如环境类型)、实例(如库和表)、以及字段层次的元数据,设计了一个面向数据库的细粒度权限管理架构。
我们的系统允许企业开发者和技术人员通过 SSO(Single Sign-On)或其他身份验证方式,灵活地分配数据源权限。这使得权限控制得以细化到极致,例如,当外部供应商需临时访问数据时,我们可以精确设定他们仅在特定运维阶段、对特定表和字段的操作权限。这种级别的控制在传统 RBAC 模型中难以实现,但我们通过精细的设计,确保所有操作都记录在案,便于审计。
没有完善的权限管理体系,DevOps 在数据库管理中的价值将大打折扣。根据实践经验,数据安全是任何组织不可忽视的核心要素,因此,我们的 RBAC 系统对于保障数据安全至关重要。
在我们的系统中,我们实现了 Single Sign-On (SSO) 的全面集成,兼容飞书、Azure 和钉钉等主流的 LDAP 服务,尽管在此处未能详述所有功能,但请理解这是为了适应众多场景的需求。
在 NineData 的 DevOps 体系中,我们展示了强大的一站式能力概览。我们的系统旨在兼容各类数据库,鉴于当今市场繁多的选择,特别是国产数据库的兴起,我们了解到许多企业可能需要同时管理十几个不同的数据库,这在现今环境中已相当常见。为此,我们深度整合了 60 种主流数据库,确保覆盖了市场的广泛需求。
我们深化了与阿里云、腾讯云、华为云和 AWS 等顶级云平台的集成,包括它们的 API 接口和网络资源。这种深度融合确保了无论用户是采用云端服务(如阿里云、腾讯云)还是选择使用 IDC,都能无缝地利用 NineData,享受到高效便捷的数据库管理体验。
接下来,让我们分享一个实践案例,来自知名汽车制造商沃尔沃。作为一家大型车企,他们广泛应用云计算,包括阿里云和华为云和 IDC。由于庞大的研发团队和众多数据库的管理,确保安全性与效率成为关键挑战。之前,他们使用了数据库 DevOps 产品,但发现其在多云和混合云环境下的支持不足,无法满足日益增长的需求。
因此,沃尔沃选择转向 NineData。该平台的优势在于其全面支持多云和混合云环境,显著提升了数据库管理的效率。据统计,他们每天有数百次的变更和发布任务,都在 NineData 上自动化执行,这使得仅有的几位 DBA 能更专注于高价值的工作,显著提高了开发团队的生产力。通过引入 NineData 智能数据库管理平台,他们成功解决了因 DBA 资源紧张而产生的困扰。
第二个案例是绿城的房地产企业,其 IT 需求与沃尔沃有所不同。绿城主要依赖外部供应商提供软件,供应商需要定期进行软件升级和发布,这往往涉及到数据库管理。过去的流程存在一些问题:要么 DBA 需要陪同供应商进行操作,要么直接将账号密码临时给到供应商,这两种方式都不够安全和高效。为了改善这种情况,绿城采用了 NineData。
通过整合到 DevOps 工作流中,NineData 帮助绿城建立了完整的数据库权限管理体系。现在,所有供应商都通过这个平台进行操作,DBA 团队工作效率可以有效提升。这样,所有的操作不仅安全,而且平台还提供了全面的审计功能,确保了操作的透明性和合规性。通过这种方式,绿城实现了数据库管理的标准化和自动化,极大地提高了效率。
第三个案例涉及中国移动。除了使用 NineData 的 DevOps 工具外,中国移动云重点是使用了 NineData 的数据复制功能。由于其移动云服务涵盖约 30 多个区域,这些区域的数据库需要相互连接。此外,客户在使用云服务时也需要数据复制功能。因此,中国移动也是通过我们的 NineData 为其提供数据复制解决方案,支持他们在多区域环境中实现无缝的数据同步,同时协助客户顺利进行云迁移,提升整体数据管理效率。
最后,这个案例也是近期迅速崛起的 AI 大模型独角兽企业——MiniMax。这家公司在短短两年内便跻身行业顶尖行列,其业务扩展迅速,拥有众多数据库分布在国内外的云服务中,且面临跨越数千公里的数据同步挑战,数据库类型繁多。面对如此快速的增长,他们仅用一周时间就推广 NineData 系统,并在随后的一个月内实现了公司范围内的全面推广,将所有数据库统一纳入了 NineData 的管理。
MiniMax 的故事对创业公司具有启示意义,尤其是对于初期资源有限的企业,可能难以一开始就配备完善的 DBA 团队。选择像 NineData 的 DevOps 平台,能够有效提升研发效能,帮助企业在快速扩张的同时,保持数据库管理的稳定性和效率,这对于初创公司的成长极为关键。
今天的内容就到这里,NineData 的核心使命是让每个人用好数据和云。NineData 的产品设计简洁易用,用户可以直接通过我们公司的官方网站进行注册,无需繁琐的下载或安装步骤,操作极其便捷。感谢大家的关注和支持。
评论