大企业在区块链医疗数据行业将占有优势,云上数据库的是是非非

原标题:白屏化背后,DBA应有的数据库自动化建设思路

原标题:【AWS社群讨论活动总结三】云上数据库的是是非非

原标题:报告称:大企业在区块链医疗数据行业将占有优势

作者介绍茹作军,曾任职我查查运维工程师、1号店MySQL
DBA,现就职于平安好医生。Lepus开源数据库监控系统作者(www.lepus.cc)。

  9月15日技术沙龙

今日块讯(ChinaZ.com) 9 月 11 日消息 近日,链塔智库BlockData发布了《
2018
区块链医疗数据研究报告》,报告显示,区块链技术在医疗数据方面有四种具体应用的场景,可以实现多方在区块链平台上对数据进行共享,满足获取患者历史数据、将共享数据用于建模和图像检索、辅助医生治疗和健康咨询等。

业务与技术往往是共同前进的,2016年,我加入平安好医生,在业务快速发展的同时,我们的数据库自动化平台也得到了快速的建设和发展。

与东华软件、AWS、京东金融、饿了么四位大咖探讨精准运维!

报告分析称,近两年,已经有一些区块链技术应用在医疗数据的项目中,如阿里健康、MIoT.AI云医链、微信智慧医院3.0、X
CARE、IBM Watson
Health等。这些项目都是大企业布局,从未来发展来看,大企业在区块链医疗数据行业将占有优势。返回搜狐,查看更多

一、背景

【51CTO.com原创稿件】今日话题(262)数据库只有上云才是出路吗?

责任编辑:

两年多的时间里,我们DBA
Team快速完成了数据库自动化、白屏化、闭环化、服务化的建设。完成了JKDB数据库自动化平台(含元数据管理、自动化部署调度系统、监控系统、备份系统、高可用和在线切换、容量趋势分析规划、校验中心等)、数据库自助查询平台、权限申请和审批平台、自助变更执行平台、流程引擎、工单系统、敏感信息探测系统等等。

数据安全无小事,云时代,数据库是自建好还是上云好?欢迎从以下方面进行讨论~

在这期间,除了偶尔故障和特殊支持之外,DBA基本不需要登录服务器去部署和操作数据。从2016年到现在,我们管理的数据库实例大概翻了3倍,但是DBA人数基本没有变化,目前是4个DBA维护了约1000+的MySQL实例、1500+Redis实例,另外还维护着若干PostgreSQL
/ Oracle / MongoDB / Hbase集群。

1、数据库迁移至云端能否帮助您节约成本?

本文就将针对我们DBA
Team完成的数据库自动化平台构建和期间的建设思路做一些简单介绍,主要分享前期标准化构建和自动化模型搭建思路方面的部分。后续如果大家有兴趣,我可以更加深入的介绍一下自动化平台其他方面的内容。

2、如何确保数据受到保护?

关于数据库标准化构建

3、数据库是否始终可访问/可用?

2016年,当我入职公司时,大概经过了两周的熟悉,俨然发现公司数据库自动化的影子。

4、如何确保性能优化?

其一是标准化,标准化是自动化的重要前提。那个时候,我们这边标准化是做得比较好的,从OS的标准化到DB层的标准化都有着统一的标准。比如OS的操作系统版本、文件系统格式、磁盘挂载点、预装软件、内核参数等等,我们所有MySQL服务器基本都是一致的。

5、数据库是否可扩展?

这里我们是怎么做到保持一致的呢?

6、是否该将部分应用/数据保留在内部设施中?

首先是我们DBA对其中一台服务器经过初始化设置和优化,比如按数据库的最优策略调整内核参数,分区和挂在磁盘,预装pt-tool
\ MHA Node \ Xtrbackup \ Innotop \
oak-tool等数据库常用的管理软件,然后交付给运维同学进行打包镜像,之后所有交付给DBA的服务器都是按此镜像进行部署。这样一来,我们的OS服务器就非常标准化了,同时也预装了我们常用的管理工具。

以下内容来自51CTO开发者微信交流群的讨论分享

我们的数据库也有自己的部署标准,比如配置文件标准化,除了部分可调参数是变量,其他参数全部使用标准化模板;另外像MySQL的安装目录、数据目录、二进制日志目录、临时文件目录都有统一的标准,根据不同的实例端口来区分。

何不智:

当然MySQL严格要做到标准化,在未做到自动化部署之前,是比较困难的,困难的不是部署技术,而是规则意识。通常一个公司都有好多个DBA共同管理数据库,由于之前的工作习惯大家喜欢按照自己的方式来部署数据库,或者没有标准部署规则、有规则但是没有严格遵守,都是无法做到标准化的。我们是从一开始就做了标准化规则和自动化部署脚本,所以我们目前线上所有数据库的部署都是标准化的,为后续自动化平台建设打下了非常好的基础。

1.数据库迁移至云端能否帮助您节约成本?

例如,我们在管理机使用如下命令,则会在对应的IP服务器上创建一个innodb_buffer_pool等于10GB的数据库实例,端口为3306,挂载设备为fioa,版本为MySQL-5.6.28-OS7-x86_64,数据库编码为utf8:

主要减少硬件成本和硬件运维成本,但其他成本应该不会明显的减少

#pythonInstall_MySQL_Multi.py –ip=xx.xx.xx.xx –port=3306
–mem=10240
–device=/storage/fioa–mysql-version=MySQL-5.6.28-OS7-x86_64
–character=utf8

2.如何确保数据受到保护?

自动化创建的实例按照端口进行标准化部署,如下所示,某台服务器安装了3306、3307、3308三个端口,则部署目录如下所示:

安全保护:云平台和操作系统防火墙/IP访问策略/操作系统和数据库审计/权限/操作系统和数据库日志/堡垒机

配置文件路径:

数据保护:RAC+DG,DB_ULTRA_SAFE 参数、透明数据加密

/etc/my3306.cnf

3.数据库是否始终可访问/可用?

/etc/my3307.cnf

上云后,云平台自身成为额外的故障点,云平台通常并不能实现其承诺的可用性(
比如 DDOS、光缆割接导致的线路中断或受影响、腾讯云磁盘静默错误、雷暴导致
Azure 云宕机
),也往往将不可用归咎于不可抗力,难以索赔,即使发生问题后云平台提供补偿,补偿额也往往不足以覆盖企业的损失

/etc/my3308.cnf

4.如何确保性能优化?

数据库安装路径:

上系统前:

/storage/fioa/mysql3306:

合理规划硬件配置

binlog

充分的性能基准测试、模拟生产环境压力测试

data

上系统后:

mysql-error.log

持续的 SQL 审核、性能监控和调优

mysql-tmpdir

5.数据库是否可扩展?

/storage/fioa/mysql3307:

Oracle、MySQL家族 目前都支持横向扩展了,其他的不清楚

binlog

6.是否应该将部分应用/数据保留在内部设施中?

data

应该,因为云平台自身就是一个单点故障风险点

mysql-error.log

最好定期将云平台数据备份到本地,或是在本地搭建
DG,异步同步数据和作为备机

mysql-tmpdir

明明:

/storage/fioa/mysql3308:

1、数据库迁移至云端能否帮助您节约成本?

binlog

这个要看公司的量,在一个量以内,能节省,否则。。。

data

2、如何确保数据受到保护?

mysql-error.log

多备份冗余

mysql-tmpdir

3、数据库是否始终可访问/可用?

这样部署的数据库达到了标准化的水平,所以我们DBA只要知道IP和端口,就可以很容易地知道这个实例的所有信息,无疑是自动化的良好基石。

必须的,如有可以,双活分布式

二、自动化任务平台构建

4、如何确保性能优化?

有了好的标准化基础,我们就开始着手构建平台了。

根据监控,高并发等,根据业务调优

既然作为平台,那么WEB管理界面、任务调度、API服务几个核心部分是不可以少的。下面展示一个建设初期的一个基础架构:

5、数据库是否可扩展?

图片 1

这个要考虑,但不一定是必需,因为有些数据可以备份

如上图所示,自上而下,系统核心部分由3层架构组成:

6、是否该将部分应用/数据保留在内部设施中?

  • 第一层为WEB控制层;
  • 第二层为任务管理层和数据采集层,用于任何调度管理和数据的交互处理;
  • 第三层为工作模块层,用于实现各功能的功能,比如安装实例、配置Replication、配置MHA、创建数据库、授权等等,这些都是由不同的底层模块来完成,通常由一系列脚本组成。

这个看公司安全要求,有些数据只能放在内部设施中,在以后,如果量大,云和本地同时部署

同时系统将提供Restful API用于内部数据更新,提供HTTP
API用于外部系统对接,例如和CMDB、发布平台等平时实现数据共享和任务对接,提供消息通知功能用于发送各类报警和服务类的通知功能,提供任务上报功能用于各工作模块和WEB层的信息对接。

成本

当然,后期我们数据库平台和中间件团队、SA团队、配置中心团队完成了很多数据和功能的对接,打造了数据库管理的闭环,例如CDMD创建好DB的资源后会通过我们的API将机器信息推送到元数据中心,我们也会调用DNS平台的服务接口来更改DNS,或者我们的平台自动化部署完数据库后会将域名、端口、授权用户密码自动推送到发布平台实现数据库自动配置,开发在配置中心申请git库时就可以同步申请数据库等等。

Angie.Z:

通过DB平台和公司其他部门的平台相互打通,减少了很多人为操作环节,实现了数据库管理闭环。

如果不考虑成本,自建数据库在安全方面、性能方面、自主可控性上都会高于云服务。

如下图所示为我们平台更加详细的架构图:

何星:

图片 2

但是企业要生存,都会看成本的呀,尤其中小企业

系统的核心是任务调度管理层,我们任务管理的界面如下所示,可以看到每个任务都有一个任务模块名称,并实时记录任务执行状态和执行日志:

云数据库是趋势

图片 3

归真返璞:

三、关于模块化设计构建

但是云数据库影响因素太多,尤其是高响应,对系统反应时间要求高的系统。

在上面我们简单介绍了系统的基础架构,里面提到了底层任务模块,比如安装实例、创建主从模块等等,那么这些模块底层如何优雅地设计呢?

那就要看性能优化了

我们平台从开始设计时后端代码层就遵循高内聚、低耦合的设计思想进了模块化开发,这是我们后端设计的核心思想。

可能影响数据库性能的因素包括配置、数据库扩展、数据库设计、编码质量以及数据与用户量等。。

很多人在想,代码实现功能不就好了吗?还需要什么设计思想?这可能也就是开发与运维同学的思维差别。

Joshua Zheng:

我们知道运维同学常常忙于很多琐碎的事情,效率优先,也习惯于脚本化开发,可能分分钟就写一个脚本实现某个功能。但是在平台建设中,这种方式是不可取的。如果代码没有规范的思想指导,当多人协同开发的过程中,很难进行项目的管理和跟进。

低成本,小公司可以考慮雲數據,但是大企業一般的內部信息都自建內網訪問

我们在设计时,在遵照模块化开发思想的同时,根据任务情况,设计出了任务三层调度模式,类似堆积木方式,可以很快地完成不同需求的底层任务模块,同时可维护性可非常高。另外就是复用和解耦,模块不允许同级模块相互调用和依赖,只允许高级模块调用低级模块。

狂暴小钢炮:

如下面所示:

小企业来说云数据库AZ 多Region
的的方案是可以有效节省成本以及数据保护的。大企业来说还是自建对成本节省比较多吧.

图片 4

为什么自建节省成本呢?

上面这幅图可以很好的解释底层的三级模块调用流程:

LrMissing:

图片 5

这个要看就设备的服役年限,年限越长,投入均摊的情况下,单位成本越低

  • Level
    1为底层支持模块:
    例如SSH操作模块、MySQL连接和操作模块、消息模块(短信,邮件,内部信息)、日志模块、外部接口模块(DNS变更,CDMD同步等)、元数据维护模块(meatdata)等。
  • Level
    2为基础单元模块:
    比如安装MySQL节点、配置主从、配置MHA、创建数据库、DB授权等等,这些都是二级模块,基本就是完成某一个特定功能。注意Level
    2里代码除了业务逻辑部分,其余只需要调用Level
    1的模块即可。例如下面是一个安装MySQL实例的截图,属于二级模块:

兔子 酋长:

得了吧,主要是安全,电算不算,地皮算不算

  • Level 3则为服务模块:真正经常使用的模块,都是调用Level
    2模块来进行封装的。例如在一般业务方使用数据库中,DBA至少需要安装2个实例,配置个主从复制,也需要配置MHA,当然备份和监控配置也不能少。这些工作一个DBA来完成通常大半天时间过去了。那么如果需要部署10套呢?会花费更多的时间。所以这种情况下就需要一键部署,一键通通搞定。说到这里,还有一个问题——大家大概也注意到了安装实例、创建数据库等这些单一模块在Level
    2模块都有,那么Level 3干嘛呢?其实就是调用Level
    2就可以了。如下是一键部署页面截图,DBA填写好提交任务即可,剩下的时候就可以处理其他工作了:

云数据库的话是按需收费

图片 6

@虚拟化—兔子 酋长—北京 没有数据计算之前,不要说的太绝对

然后我们监控上报的任务日志可以看到底层执行过程,大家可以看到任务会创建2个实例,然后配置了主从,最后配置了MHA,当然这里面还有一些元数据维护,备份和监控开关设置等等,其实在后台已经完成了。大概6分钟,完成了一个DBA半天的工作,并且保证了部署的数据库都是标准化的,不同DBA部署没有任何差异。

我只是陈述合理的成本计算方式,没有把本地和云进行成本对比。你要是想反驳,建议还是以数据和事实说话,

发表评论

电子邮件地址不会被公开。 必填项已用*标注