首页 存档 技术 查看内容

微店MySQL自动化运维体系的构建之路

2018-3-30 13:00 |来自: 互联网 326 0

摘要: 前言 互联网时代,数据库如何满足敏捷开发、敏捷交付的要求?传统靠DBA人肉执行的方式,但在面对大量业务需求时,DBA手速再快,记忆力再好估计也不能提供好的数据库服务。在介绍自动化运维之前,我们先来了解下如何 ...



前言


互联网时代,数据库如何满足敏捷开发、敏捷交付的要求?传统靠DBA人肉执行的方式,但在面对大量业务需求时,DBA手速再快,记忆力再好估计也不能提供好的数据库服务。在介绍自动化运维之前,我们先来了解下如何使用数据库。


数据库的使用方式主要有两种:


应用混合部署(实例):有新数据库需求时,很多人都会选择找个实例,建个数据库和帐号提供给业务。


好处是能快速提供数据库服务,这种方式在数据库运维的过程中会出现一些问题:

  • 第一,相互影响,个别应用有问题会影响所有数据库;

  • 第二, 应用DB的性能指标(QPS,TPS,RT...)不能获取;

  • 第三,定位问题源困难;

  • 第四,资源使用不合理。


为了解决以上问题,最终会有拆库的过程,拆过库的同学都知道,一个拆库动作需要确认很多东西,所花费的时间是非常多的,过程中容易产生故障。


应用独享(实例):在虚拟化,微服务深入人心的今天,应用独享实例是数据库给出的解决办法。我们做到的是所有应用独享实例(分库分表的应用如:分成32个库的应用,业务初期阶段会分布在几个实例中,业务确实需要更多资源时再进行自动化拆库扩容)。这种方式需要大量的实例,传统单机单实例的运维体系就需要演变成单机多实例的方式。


由此引出会有一系列问题需要解决:

  • 如何快速提供数据库服务?

  • 如何避免数据库资源合理分配?

  • 数据库监控怎么做?

  • 多实例数据库HA怎么做?


MySQL的标准化与自动化


我们实现的MySQL自动化运维体系能够解决规模化的痛点,主要包括实例创建、部署、监控、备份、HA切换、迁移、扩容等方面的自动化,所有模块的主发点是要能“自动化”的方式运作,尽量少的人为参与。


一、标准化


数据库上了一定规模后,数据库的各方面都需要标准规范起来,才能接下去做自动化。实例上的标准化我们主要做了以下几点:


1、应用独享实例


2、数据库M

声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部