内容来源:2017年6月3日,热璞科技咨询交付部总监刘小成在“2017 中华数据库与运维大会”进行《数据库私有云构建之道》演讲分享。IT 大咖说(ID:itdakashuo)作为独家视频合作方,经主办方和讲者审阅授权发布。
阅读字数:2186 | 6分钟阅读
嘉宾演讲视频回放及PPT,请点击:http://t.cn/RDur8PC
摘要
服务化在云计算中是非常重要的部分,所有组件以服务的方式去提供,而很多企业的数据库都还在构建当中。今天聊的就是私有云数据库构建的过程。如果大家有这方面的打算希望能够提供一些参考。
为什么需要DBaaS
公有云和私有云
公有云和私有云就像公交车和企业班车的区别。从汽车的构造核心来说,它们是一样的,但用途是有区别的。公交车面向的是大众用户,企业班车只面向企业职工。我们区分是从成本、安全、控制力以及定制化的角度出发,所以云计算其实不分私有云和公有云,只是一个选择。
问题
资源:利用率低,空闲率高,响应速度慢。
成本:硬件成本,软件成本,人力成本。
管理:重复工作,疲于救火,被动运维。
如何构建DBaaS
Database as a Service
以服务化的方式,以及多租户和动态调整来解决成本和响应问题。从安全角度可以做到备份、容灾、高可用,从平台的角度来说对应用是透明的。
整个数据库的Database as a Service平台支持的比较重要的几个方面有资源池、任务调度、备份恢复、高可用、安全体系、监控体系和交互接口。
资源池-层次化
首先要对机房里的线做层次化,去梳理它的生命周期,要知道每一个设备每一条线的来龙去脉是怎样的,对这些资源的规格做到统一化。
要把数据库进行层次化,分为应用层、数据库层、系统层和硬件层。
硬件层是指服务器和网络;系统层可以理解为数据库运行的地方;数据库层可以通过应用程序看见,比如Instance、Database和Table;应用层可以通过VIP访问、域名访问以及域名所带来的用户。
资源池-生命周期
以上图中一组关系型数据库服务为例,来说说从上线到下线会经历哪些过程。
资源池本身是静态的,一个资源从初始化到运行状态,它需要进行分配部署。在运行过程中可能会经历故障,也可能不经历故障直接走向下线状态,这是非常理想的。
在云平台中,它的维护过程不是人为也不是异常产生的,而是平台本身产生的。也就是说我们平台可能会产生这样的预警或自动调整,采取一系列的维护措施,最终实现一个下线的过程。
资源池-整合密度
数据库中每一组实例的大小都是不一样的。大小分为期望大小和实际大小,运行一段时间后期望大小和实际大小是有区别的。
所以我们就需要分维度去计算当前所面临的这套数据库的实例到底需要哪些资源,从硬件资源、服务资源来计算它到底需要多大的规格。有了这个信息之后,我们就可以把它井然有序地组装到数据库服务池里面。
任务调度
任务调度有三大核心特性必须要做到,就是标准化、自动化和模块化。
备份恢复
真正备份的目的是用于恢复。恢复首先就是从库的问题,要搭建从库,做节点迁移。定点恢复经常会出现两种情况,一种是确实业务上有需求,另一种是真的出现了问题需要去找到某个时间点的数据。误操作恢复比较经典,一般都是开发“背锅”,但其实DBS的误操作更多。80%的企业目前都还没有做恢复测试。脱敏过滤就是将一些敏感信息进行过滤。
只有备份必须满足恢复场景,才能做出有效的备份。
满足恢复场景的一些主要备份工具有lvm、tar、mysqlhotcopy等等。
高可用
所有的高可用都是基于复制,异步复制、半同步复制和主复制都能在上图中展现出来。
监控体系
现在很多监控系统已经非常成熟。监控体系主要是收集运行状态、资源状态、性能状态和任务状态,进行采集、统计、分析,最后形成告警或报表。监控系统需要具备采集模版、监控项和报警规则。
安全体系
安全体系中提到最多的就是隔离,有硬件隔离、软件隔离和用户级别隔离以及服务器资源的隔离。数据安全包括备份、异地的容灾、跨机房或机房内的切换演练,以及很多人都忽略的恢复测试,其实有必要定期去做恢复测试。用户级别有权限控制和白名单功能。审计相关的有SQL审计和SQL拦截功能。
交互接口
刚才提到的资源相关的内容、任务的接口、状态信息以及安全相关的问题,都是走接口化的方式。
如何智能化DBaas
知识提取
在大数据时代,人类是结合过往经验和当前情况形成决策。但要利用计算机来做决策,则需要实体、实体的属性和规则。有了这些就可以根据不同的实体、实体间的联系以及它们的属性去匹配规则。规则要通过数据进行匹配,所以整个平台缺的就是数据和规则。规则有两种产生方式,一种是通过以前的定义得到既定的规则,另一种是通过不断计算和学习得到的相关性规则。
数据采集
在整个平台里首先要采集基础数据,然后进行对比过滤,把这些数据形成有价值的数据。
智能化
从评估开始,我们以百分制的方式给数据库打分。有了评估之后就可以做预警,预警能带来调优和资源整合。还有一个最重要的就是测试。
评估
可以从性能、管理、安全、负载和容量这五个方面来看数据库的状态。
预警
首先要做到主动发现,有了数据之后,可以用规则去主动发现哪些地方有问题。并且可以做全面的分析,对问题分级,进行自动处理或给出优化建议。
调优
调优主要分为配置、设计和SQL。配置就是系统的配置和实例级别的配置。设计是指表单设计以及表结构的设计。SQL可以做改写和索引,分析和表相关的SQL的慢查询有没有增长。
资源整合
最开始计算规格后发现磁盘不够,就需要提升扩容。因为当前服务器容量也不够,要做迁移。然后要把大的核心库做拆分,还会做合并。迁移的情况很多,在这里就不一一细说了。
如何实践DBaaS
资源交付
生命周期里需要用户的参与,最开始管理员会加入资源池的信息,然后用户开始做申请。由页面申请之后,会有服务平台做配置下发、资源分配以及加入平台的托管。
最后用户拿到这些就会配置相关的信息,然后应用程序就能访问整个数据库。
我今天的分享就到这里,谢谢大家!