文字内容
1. P IT B U N . T E
2. T E N . 多云时代的数据库PaaS平台建设实践 B U P IT 北京新数科技有限公司 杨小华 2019.5
3. 前言 B U N . T E 在大型企业将IT基础架构向云计算迁移的过程中,成本、安全、效率等各方面的因素导致大型企 P IT 业选择多云架构,而在多云时代,企业数据库将面临更为复杂的多云IT环境,使用方式也越来越复杂。 在这种背景下很多大型企业开始建设数据库云管平台,数据库云管平台向下可以适配各种计算环 境,向上支持各种关系型和非关系型数据库,同时提供对各种数据库架构的标准化支持。我们将分享 一些大型企业的数据库运管平台的建设经验。
4. 目录 / Contents 01 03 多云时代的企业数据库 大型金融企业数据库PaaS平台实践 02 多云环境下的数据库PaaS平台 04 多云数据库PaaS平台建设总结
5. 01 多云时代的企业数据库 一方面,五大因素导致大型企业在转向云计算的过程中选择多云架构, 从而导致企业面临更为复杂的多云环境;另一方面大型企业在数据库的 使用方面种类越来越多,架构也越来越复杂
6. 1 多云时代的企业数据库 - 五大因素促使企业选择多云架构 差异化服务 存量系统 大量的重要系统运行在传统的软硬件环境上,无 可能抛弃或一步到位云化。 不同的云厂商/技术的功能和服务不一样; 客户希望可以充分利用各种技术的优势以及云服 务商的差异化服务。 安全 数据是企业的核心资产,IT是企业的核心生 产力,必须运行和放置在可靠的环境中。 成本 不同的应用和场景对成本的敏感性不一样; 选择多个供应商或技术架构保证议价能力 风险 不能把蛋都放在一个篮子里,单一供应商或 架构存在较大的风险。
7. 2 多云时代的企业数据库 - 多云环境下的企业数据库管理 数据库种类越来越多 运维需求爆炸式增长 过去主要使用某单一的成熟商业数据库,发 业务向互联网化和智能化转型,数据库数量 现在越来越多的使用开源数据库,新型分布 急剧增长,数据库种类越来越多,应用上线 式数据库,以及图数据库、文档数据库、内 变更操作越来越频繁,促销流量越来越大。 存数据库等针对特定场景的NoSQL数据库。 . 数据库运行环境越来越复杂 数据库架构越来越丰富 过去主要是高性能物理服务器+共享存储, 过去最主要的企业数据库架构是基于共享存 现在各种虚拟化技术,各种公/私有云平台, 储的双机互备高可用架构,现在企业会根据 甚至容器化部署 业务需求选择双活数据中心、两地三中心、 读写分离、分库分表、云端灾备等不同的数 据库架构。
8. 3 多云时代的企业数据库 – 云管平台管理多云环境 多云 接入 统一 管理 自动 化 纳管企业使用的异构 云管平台 公/私有云平台,以及 统一定义和管理异构 减少人工干预,降低 存量资产,包括裸机、 云平台下资源和服务 管理成本,提高响应 虚拟化环境、存储以 的交付模式。 速度,提升运维吞吐 及网络等传统设备。 问题:如何管理多云环境下的数据库? 量。
9. 02 多云环境下的数据库PaaS平台 数据库PaaS平台并不新鲜,公有云厂商或数据库厂商在这方面也持续投 入了很多心血。但多云环境下的企业数据库PaaS平台更专注于解决多云 环境下企业数据库管理面临的挑战。
10. 1 多云环境下的数据库PaaS平台 多云适配 数据库PaaS平台 全数据库支持 标准服务 DevOps 向下支持各种云环境下的 支持企业使用的所有数据 提供支持各种数据库标准 支持应用自动化部署; 计算资源,并可以与云管 库,并且采用开放的可扩 架构的数据库服务供需求 支持应用开发人员自运维。 平台双向集成 展性设计,可以支持更多 方选择和使用. 新的数据库种类。
11. 1 多云适配 多云适配 为运行企业数据库的计算资源定义统一的标准,并提供相应的资源申请 和管理接口。这些计算资源可以是物理主机、虚拟化主机,也可以是支 持弹性伸缩的云端计算资源。 资源适配层及云管平台 资源适配层数据库PaaS平台用来隔离数据库和底层计算资源, 如果企业没有统一的云管平台,则需要针对每种云环境实现相 应的Adapter; 如果企业已经建设有管理所有计算资源的云管平台,则数据库 PaaS平台通过云管平台来接入所有的计算资源是最佳选择。 资源池 通过资源池实现计算资源以及数据库资源的隔离,资源池应该 支持按照用户(部门)、业务类型、环境类型等不同的维度来划 分;通过资源池能实现数据库资源的预分配,实现快速化部署。
12. 2 全数据库支持 传统商业数据库 开源数据库 传统商业数据库仍然是大型企业的主力,目 在新业务系统上,大型企业越来越倾向于学 前大型企业的核心和大部分重要系统仍然运 习和借鉴互联网架构,使用各种开源数据库 行在传统的以Oracle/Db2为代表的商业数 以及新型分布式数据库 据库软件上 新型非关系型数据库 MongoDB、Redis等新型非关系型数据库 在处理他们擅长的场景是有着独到的优势, 在大型企业中的应用也已经日常化。 开放的可扩展性设计 开放的可扩张性设计可以保证快速实现对新 型数据库的支持。
13. 3 标准化服务 数据库PaaS平台将数据库标准架构和资源模式结合起来提供标准化的数据库服务。 标准架构:根据业务类型以及重要程度,确认相关应用的重要级别,再结合数据访问的特点,以及性能要求,确认最终的 数据库架构。然后通过数据库PaaS平台选择相应的的标准化数据库架构,获得相应的数据库服务。 默认 主机高可用 多活集群 读写分离 灾备 多活灾备 两地三中心 Oracle 单库 HACMP Linux-HA RAC GoldenGate DataGuard RAC + DataGuard 同城Rac + 异地 DataGuard Db2 单库 HACMP TSA pureScale CDC HADR pureScale + HADR GDPC + HADR MySQL 单库 Linux-HA N/A 主从复制 N/A N/A N/A 标准架构还包括分库分表,是通过客户端JDBC驱动Sharding还是通过中间件服务器来Sharding,不过从数据库PaaS平台的 角度出发,这两者的区别不大,都是要管理分库分表架构下一批相同逻辑结构的数据库。数据库PaaS平台把分库分表也作为 一种标准架构,提供对DDL执行、统一维护,分区数据偏离度检查,分区一执行检查等特定功能来简化分库分表架构下数据 库的部署及维护 资源模式:独立库独立实例独立主机、独立库独立实例共享主机、独立库共享实例、Schema
14. 4 DevOps 应用自动化部署 提供API,实现数据库的自动化部署,包括 数据库资源申请、参数配置、DDL执行、数 据库初始化等; 自助化运维服务 向应用开发和运维人员开放数据库监控,性 能优化分析,容量管控,用户权限分配等功 能,实现数据库自助化运维。
15. 5 基于微服务架构的数据库PaaS平台 数据传输 `API调用 监控数 据 CMDB 配置数据 后台 服务 监 控 分 析 ` ` 监控 数据 服务 CMDB 服务 交互 服务 集成 服务 监控数 据 监控数 据 监控数 据 问 题 管 理 性 能 容 量 自动 引擎 监控 引擎 分析 引擎 知 识 管 理 报 表 服 务 云 管 平 台 单 点 登 录 ` Dev Ops 任务 调度 自 动 运 维 邮 件 系 统 工 单 系 统 告 警 平 台 操 作 审 计 数据库PaaS平台统一入口 SQL 审 核 配 置 管 理 用 户 管 理
16. 6 数据库PaaS平台功能图 性能容量管理 数据库监控 运维 管理 平台 统一 入口 基础服务 问题和报表 自动化运维 关键可用性指标监控 性能分析与优化 监控告警 数据库服务申请 基本信息监控 容量分析与优化 问题闭环管理 数据库管理 系统信息监控 TOP SQL历史查看和分析 全局报表 用户和权限管理 参数监控 热点数据分析 单库报表 参数配置 备份监控管理 系统瓶颈分析 问题报告 备份管理 实例状态和拓扑结构 多指标分析 性能容量扩容评估 容量管理 性能监控 执行计划管控 SQL审核 高可用管理 用户和配置中心 个人中心 权限管理 数据库配置模板 CMDB服务 自定义监控 监控引擎 分析引擎 监控数据服务 任务调度 自定义告警 知识库 自动化引 擎 API服务
17. 7 CMDB服务 CMDB服务 CMDB是运维管理的核心,包含了所有IT基础架构的配置信息,数据库PaaS平 台中几乎所有其它的服务都依赖CMDB信息; 通过CMDB服务为其它模块、功能或服务提供统一的标准化的CMDB信息查询 服务有利于保持各个系统获取信息的准确性和一致性; 监控 数据 服务 任务 调度 分析 引擎 监控 引擎 可插拔的CMDB服务 CMDB服务是一个适配层,其它模块、功能或服务不需要包含重复代码来访问 CMDB数据库,同时解除了它们和CMDB数据库的直接依赖; CMD B 服务 CMDB ` ` 自动 运维 引擎 CMDB服务确保对数据库PaaS平台提供统一的复合规范的CMDB信息,这样当 替换CMDB时,只需要为新的CMDB开发一个Adapter; CMDB服务提供的功能 监 控 告 警 问 题 管 理 工 具 箱 性 能 容 量 … 所有对外服务通过标准Rest API提供; 提供对CMDB对象的访问API; 可以提供对CMDB对象更新的API;
18. 8 数据库监控数据采集引擎 基于JDBC的数据库监控数据采集引擎 通过数据库提供的管理视图或表函数来采集数据库的运行指标; CMDB 监控数据 监控数据 配置数据 监控数据 监控数据 支持分布式架构和分布式存储,可无限横向扩展; 采集回来的数据支持多路径推送和处理,例如存储、分析、告警、转发等; 支持模板化配置,为不同的数据库采用不同的监控数据采集策略; 防御机制,确保不影响目标数据库的正常运行; 监控 引擎1 监控 引擎2 监控 引擎3 JDBC监控数据库采集引擎的特点 免维护:集中部署,无需在目标数据库上部署和维护Agent; 影响小:对源库资源消耗小,权限需求更低,数据处理全部在监控引擎端完成; 易扩展:在无需修改代码的前提下通过配置即可实现新的监控采集项; 缺点:只适合关系型数据库;只能采集数据库提供了管理视图或表函数的数据。 基于Java API的监控数据采集引擎 主要针对MongoDB、Redis等非关系型数据库; 提供SDK框架,少量代码开发即可支持新的基于API监控的数据库对象;
19. 9 自动化运维服务 自动化运维服务 集成自助化和自动化的数据库管理功能; 支持数据库管理功能的定义、发布和管理; 支持多种自动化运维引擎 实现的自动化运维操作包括数据库服务申请、数据库实例管理、备份管理、参数 自动 运维 引擎 管理、权限管理等等 自动化运维的阶段 一键化:对常见的数据库运维操作,通过自动化运维平台; 任务 调度 引导式:对监控发现的数据库问题,给出引导式的数据库运维操作建议; 自动化:对监控发现的数据库问题,自动命中知识库,并执行相关的运维操作; CMDB 服务 ` 自 动 运 维 审计 开放的自动化运维 开放:自动化运维操作并不是一个可以全预置的操作集合,需要根据运维的实际 情况不断地添加和修正,因此自动化运维必须是开放的,能够方便的接受后期功 能扩展。
20. 1 0 功能可扩展性设计 “平台”的意义在于允许用户可以根据实际需求在上面打造自己的 功能可扩展性设计是数据库PaaS平台核心思想 工具,而不是简单的监控和运维功能的集合。 监控数据采集引擎 • 支持自定义监控数据采集内容 • 支持自定义监控数据预处理(按时间计算增量) • 支持自定义监控数据采集时段和采集频率 • 支持自定义监控数据存储及发布(Kafka等) • 支持自定义监控数据清理和归档周期 告警和问题规则引擎 • 基于规则引擎的告警和问题生成机制 • 用户可以配置产生告警和问题的数据源及字段 • 支持基于状态、表达式及多种告警条件的组合 • 支持自定义告警级别和阈值 • 支持数据库级别的个性化告警项定义和配置 • 支持不同的告警发布渠道和发布规则 工具箱 • 帮助运维人员将自己的运维经验工具化 • 运维人员可以为某一主题或某特定问题构建分析工具 • 运维人员开发的运维分析工具可以发布出去,供企业所 有相关人员使用 • 支持多种丰富展现形式,包括表格、柱状图、趋势图等 自动化运维引擎 • 开放化和标准化的自动化运维引擎,支持用户自定 义运维操作 • 标准化的操作输入和输出参数规范,用户按照规范 开发运维脚本,集成到平台中来 • 支持JDBC运维操作和脚本操作两种方式
21. 03 大型金融企业数据库PaaS平台实践 分享大型金融行业的数据库PaaS平台建设案例,看看他们是如何建设和 使用数据库PaaS平台。
22. 1 数据库全生命周期的自动化运维和管理 性能瓶颈分析 历史故障定位 性能趋势分析 标准架构:选用 标准架构的数据 容量预测分析 库服务 自动化建议 计算资源:根据 问题处理知识库 监控连接失败告警 无监控数据告警 实时分析 需求自动适配底 一键分析 层资源 开发 开发阶段:SQL 语法审核 测试阶段:执行 计划和监控数据 审核 部署确保合规 场景分析 分析 自动部署:自动 监控 告警 部署 动加入监控 CUID探测:监 控数据库可用性 快速 定位 修复 快速指导手册 一键修复 引导式修复 采集引擎:按照 预置标准模板自 攻防演练模拟 故障诊断树 可用性状态告警性 能容量阈值告警 性能容量基线告警 告警平台推送 自动修复 保障 机制
23. 2 4000+套数据库全部纳管 实现全行所有数据库纳管 全行所有的重要应用系统数据库均纳入数据库PaaS平台统一管理,包括级别为 A\B的核心数据库和重要系统; 新建数据库通过CMDB自动纳入数据库PaaS平台; 覆盖所有的Oracle、Db2、MySQL系统; 覆盖基于分库分表的分布式数据库系统;
24. 3 一键生成标准架构的数据库服务 一键申请 用户选择数据库类型,架构,容量等信息, 数据库PaaS平台一键为用户生成需要的数 据库 多云接入 支持独立主机,支持云管平台,支持虚拟化 资源,支持虚拟化主机 标准架构 标准化服务,支持二十多种数据库标准架构, 覆盖Oracle,Db2,MySQL等主流关系型 数据库的常用架构; 反向集成 开放API支持反向集成,用户也可以通过云 管平台或应用段发起数据库服务申请 资源池 快速响应 支持资源池,可以按照用户或业务将数据库 可以设置资源池预置保留资源,确保快速获 资源隔离;可以设置资源池预置保留资源, 取所需数据库资源;
25. 4 全面打通DevOps链路 从应用端发起自动化部署 提供API从应用端发起自动化部署; 自动申请数据库资源; 自动运行初始化脚本; 自动审核并执行SQL语句; 向应用人员开放全部所有功能 自动申请数据库资源; 自动运行初始化脚本; 数据库性能和容量分析及预测; 数据库问题管理及知识库; 数据库用户管理及权限管理; 缩扩容等自动化运维操作;
26. 5 可扩展的数据库监控功能 数据库监控 内置全面丰富的数据库监控功能; 用户可以根据自己的需求实现新的功能,且全程配置,无需修改代码。
27. 6 从宏观到微观的数据库性能容量管理 性能管理 容量管理 提供数据库总体性能评分及趋势:提供全面准确的数据库系统性能 提供数据库总体容量分布及增长趋势,对数据库容量分布情况一目 量化评分报告,实现大规模数据库系统性能量化管理; 了然; 数据库性能瓶颈自动发现:为DBA提供全面和准确的数据库性能瓶 数据库容量关联性分析:提供数据库容量的下钻分析,从数据库整 颈分析 体容量,到数据库,到表空间,到表,逐级发掘数据库容量消耗的 SQL性能全面分析和展现,慢SQL以及SQL瓶颈一目了然;并且提供 根源。 SQL历史执行次数及性能趋势; 自动化性能分析:针对性能问题,系统自动分析瓶颈并给出优化意 见
28. 7 数据库问题全生命周期追踪及知识库管理 问题管理及知识库系统 聚焦问题的生成、追踪、交互和验证; 有效覆盖问题从生成到关闭的完整生命周期; 智能分析、自动生成和关闭问题; 完善的知识库体系及指引体系; 问题统计分析
29. 9 工具化方式自 动辅助开发优 化SQL 串联开发、测试和生产的SQL审核体系 管理功能 SQL智能分析功能 审核规则 关联性能容量系统 审核模板 管理功能 知识库 单 自动生成问题 开发人员将以 DEVOPS的方式管理 SQL语句,对SQL的 开发-测试-生产全 线追踪 DBA制定规则即可 DBA 审核结果报表 邮件 自动发送 生产审核结果 测试审核结果 开发审核结果 DBA依据审核结果 审批上线请求 SQL审核 开发人员 开发 环境 ST 环境 UAT 环境 压测 环境 生产 环境 运行数据反馈 开发,形成闭 环
30. 1 0 深度集成现有IT运维系统 CMDB 集成和关联全行CMDB系统,自动维护CMDB中数据 库资源的状态 单点登录 CMDB 用户直接通过全行唯一ID即可登录,无需再申请数据 库PaaS平台用户 告警平台 工单系统 监控产生的数据库告警和数据库问题直接通过现有告 集成工单系统审批功能,所有的数据库运维操作可以 警系统发出,支持邮件、语音、短信、微信等多种渠 验证工单系统批号; 道; 自动化运维平台 云管平台 集成全行的自动化运维平台,支持通过PaaS平台向自 与云管平台双向集成,可以通过云管平台发起数据库 动化运维平台录入和执行自动化运维操作; 运维操作,包括数据库服务申请;也可以通过PaaS平 台向云管平台发起资源申请操作。
31. 04 多云数据库PaaS平台建设总结 总结大型金融行业的数据库PaaS平台建设案例,讨论成功建设数据库 PaaS平台的关键要素
32. 1 成功建设数据库PaaS平台的关键要素 自主可控 模块化 分阶段 开放和集成 企业需要自主掌控数据库 各功能模块最好能够独立运 Think Big,Start Small 与其它运维工具无缝集成 PaaS平台架构和方案 行,边界清晰
33. 2 自主可控 企业需要自主掌控数据库PaaS平台的架构和方向 每个大型企业都有自己独特的需求和企业文化,适合自己的才是最好 的,自主掌控才能确保数据库PaaS平台符合实际需求,融入企业运维 体系。 好的系统都是演化出来的 多云环境下的数据库PaaS平台功能复杂,很多功能紧密依赖特定的环 境。不存在一个现成的产品能满足企业的所有需求,只有自主掌控, 才能结合自己的需求随时调整,这样才能打造最适合的企业数据库 PaaS平台 多云时代的DBA团队需要有开发和架构能力 多云环境下的DBA团队需要分配更多的精力参与数据库PaaS平台建设, 基于平台打造更好的运维工具,因此DBA团队需要有开发和架构能力
34. 3 模块化 各个功能边界清晰,最好能够独立运行 数据库PaaS平台整理功能过于复杂,因此需要梳理这些功能,按照功 能分成不同的模块,明确模块的边界,这样才不至于陷入混乱; 各个功能模块设置最好能够独立运行,例如CMDB服务,监控数据采 集,自动化运维引擎; 微服务是实现数据库PaaS平台的最佳架构 每个服务独立运行,服务之间通过API交互; 每个服务可以独立开发、部署和升级; 每个服务可以根据实际情况进行扩展; 有些服务可以作为与现有系统集成的适配器层,只要对外保持稳定的 接口,例如CMDB服务,自动化运维服务;
35. 4 分阶段 从建立监控系统入手是一个不错的选择 监控系统的实施能帮助企业数据库运维规范化,这是实现数据库PaaS 平台的一个关键前提 周期短,很快就能见到成效 初期重点关注平台和框架的建设 平台和框架是数据库PaaS平台的基石,例如监控数据采集引擎,任务 调度引擎,自动化运维引擎,告警平台,CMDB等 开放性和功能可扩展性设计很重要,要做到尽量使用配置的方式实现 新功能,例如支持新的数据库,支持新的告警,支持新的运维操作 后期丰富和完善具体的功能 不要先做一个大而全的功能集合然后再去要求用户使用 而是时刻调研用户的实际需求,优先做适用范围广,受益面众的功能
36. 5 开放和集成 与现有系统的集成是成败关键 与现有系统集成的越好,入侵感越小,接受程度越高。典型的需要集 成的系统包括单点登录,CMDB,企业邮箱,告警平台,工单系统, 企业级自动化运维平台等; 避免重复建设,充分发挥已有IT资产,减少数据冗余,提高数据准确度 开放API 界面上所有的功能都应该提供相应的API,用于打造统一的企业全局自 动化运维体系。例如开放给云管平台实现数据库资源在云管平台的服 务话,开放给DevOps打通数据库自动化部署路径,开放给APM打造 完全的从上到下的应用监控 开放用户 系统应该给开放给所有的用户,不仅包括DBA团队,更针对系统运维 团队以及应用开发和运维团队
37. 关于新数科技ShinData 北京新数科技有限公司,英文简称ShinData,成立于2014年, 国家高新技术企业,中关村高新技术企 业,营业范围包含软件咨询 、 服务 、培训 、销售 、解决方案集成和开发等,致力于为客户提供企 业级数据 软件产品和云服务 。 新数拥有专业领域内强大的数据库软件研发和技术服务力量,成立 以来共计开发十多项拥有自主知 识产权软件产品,技术研发能力和深 度均处于行业前列,并为近百家大中型客户提供了专业的数据库 管理 产品和服务,客户覆盖金融 、能源 、医药 、零售等多个领域的头部 企业 。 37
38. THANK YOU 2019 DTCC 北京新数科技