33
ದຝ๚ 美团点评数据库运维自动化实践与发展 美团点评⾼级DBA 翁宁龙

美团点评数据库运维自动化实践与发展 据库/GIAC 2016 - 全球互联... · PDF file自我介绍- 翁宁龙- 2012年毕业参加⼯作成为⼀名dba - 2015年加⼊美团,负责美团数据库运维自动化系统、数据库⽣态的建设

  • Upload
    buicong

  • View
    292

  • Download
    18

Embed Size (px)

Citation preview

Page 1: 美团点评数据库运维自动化实践与发展 据库/GIAC 2016 - 全球互联... · PDF file自我介绍- 翁宁龙- 2012年毕业参加⼯作成为⼀名dba - 2015年加⼊美团,负责美团数据库运维自动化系统、数据库⽣态的建设

美团点评数据库运维自动化实践与发展美团点评⾼级DBA

翁宁龙

Page 2: 美团点评数据库运维自动化实践与发展 据库/GIAC 2016 - 全球互联... · PDF file自我介绍- 翁宁龙- 2012年毕业参加⼯作成为⼀名dba - 2015年加⼊美团,负责美团数据库运维自动化系统、数据库⽣态的建设

自我介绍

Ø 我是谁?

-  翁宁龙

-  2012年毕业参加⼯作成为⼀名DBA

-  2015年加⼊美团,负责美团数据库运维自动化系统、数据库⽣态的建设⼯作

Ø 联系⽅式

-  邮箱:[email protected]

-  微信:

Page 3: 美团点评数据库运维自动化实践与发展 据库/GIAC 2016 - 全球互联... · PDF file自我介绍- 翁宁龙- 2012年毕业参加⼯作成为⼀名dba - 2015年加⼊美团,负责美团数据库运维自动化系统、数据库⽣态的建设

目 录

Ø  美团点评数据库⽣态系统-  为什么要打造数据库⽣态系统?

-  美团点评数据库⽣态是什么样的?

Ø  案例分享

-  集群初始化

-  在线表变更

-  ⾼可用⽅案

Ø  极简运维

Ø Q & A

-  极简运维理念

-  场景化、定制化、智能化

Page 4: 美团点评数据库运维自动化实践与发展 据库/GIAC 2016 - 全球互联... · PDF file自我介绍- 翁宁龙- 2012年毕业参加⼯作成为⼀名dba - 2015年加⼊美团,负责美团数据库运维自动化系统、数据库⽣态的建设

目 录

Ø  美团点评数据库⽣态系统-  为什么要打造数据库⽣态系统?

-  美团点评数据库⽣态是什么样的?

Ø  案例分享

-  集群初始化

-  在线表变更

-  ⾼可用⽅案

Ø  极简运维

Ø Q & A

-  极简运维理念

-  场景化、定制化、智能化

Page 5: 美团点评数据库运维自动化实践与发展 据库/GIAC 2016 - 全球互联... · PDF file自我介绍- 翁宁龙- 2012年毕业参加⼯作成为⼀名dba - 2015年加⼊美团,负责美团数据库运维自动化系统、数据库⽣态的建设

美团点评数据库⽣态系统 - 为什么要打造数据库⽣态系统?

……

数据库产品&服务

MySQL Redis Mongodb Tair Oracle Postgresql

Page 6: 美团点评数据库运维自动化实践与发展 据库/GIAC 2016 - 全球互联... · PDF file自我介绍- 翁宁龙- 2012年毕业参加⼯作成为⼀名dba - 2015年加⼊美团,负责美团数据库运维自动化系统、数据库⽣态的建设

美团点评数据库⽣态系统 - 美团点评数据库⽣态是什么样的?

DBA

运维

测试

开发

产品

用户

平台

业务管理

业务监控

基础服务

API 工单 客服 公告 任务系统

基础运维服务

HA CMDB 初始化 MGW管理 DNS管理

日志服务

慢日志

Binlog

监控服务

链路监控

Falcon

优化诊断

SQL评审

SQL建议

运营服务

DOM

平台质量

扩容 升级 备份 拆分 表变更

DB创建 账号管理 任务管理 数据归档 机器管理

Processlist

审计日志

深度监控

实时监控

容量管理 DBA周报

报警自动处理

标准化

自助化

自动化

-  接⼝标准-  数据标准-  流程标准

-  操作自助-  问题定位自助

-  ⾼可用-  报警处理

Page 7: 美团点评数据库运维自动化实践与发展 据库/GIAC 2016 - 全球互联... · PDF file自我介绍- 翁宁龙- 2012年毕业参加⼯作成为⼀名dba - 2015年加⼊美团,负责美团数据库运维自动化系统、数据库⽣态的建设

美团点评数据库⽣态系统 - 任务管理系统的构建

ü RabbitMQ

消息队列(MQ)是⼀种应用程序对应用程序的通信⽅法。应用程序通过读写出⼊队列的消息(针对应用程序的数据)来通信,⽽⽆需专用连接来链接它们。

Page 8: 美团点评数据库运维自动化实践与发展 据库/GIAC 2016 - 全球互联... · PDF file自我介绍- 翁宁龙- 2012年毕业参加⼯作成为⼀名dba - 2015年加⼊美团,负责美团数据库运维自动化系统、数据库⽣态的建设

美团点评数据库⽣态系统 - 任务管理系统的构建

ü CeleryCelery (芹菜)是基于Python开发的分布式任务队列。它支持使用任务队列的⽅式在分布的机器/进程/线程上执⾏任务调度。 Celery的架构由三部分组成,消息中间件(message broker),任务执⾏单元(worker)和任务执⾏结果存储(task result store)组成。

Page 9: 美团点评数据库运维自动化实践与发展 据库/GIAC 2016 - 全球互联... · PDF file自我介绍- 翁宁龙- 2012年毕业参加⼯作成为⼀名dba - 2015年加⼊美团,负责美团数据库运维自动化系统、数据库⽣态的建设

美团点评数据库⽣态系统 - 任务管理系统的构建

CMDB

任务执⾏者

API层

业务模块

任务管理模块

/queue/alter /queue/switch

⽗进程 ⼦进程

用 户

前端Web celery

rabbitmq

TaskControl celery

Page 10: 美团点评数据库运维自动化实践与发展 据库/GIAC 2016 - 全球互联... · PDF file自我介绍- 翁宁龙- 2012年毕业参加⼯作成为⼀名dba - 2015年加⼊美团,负责美团数据库运维自动化系统、数据库⽣态的建设

美团点评数据库⽣态系统 - 任务管理系统的构建

TaskControl

fork⼦进程1 ⼦进程2fork

任务操作信息注册

init

任务执⾏单元exit

Page 11: 美团点评数据库运维自动化实践与发展 据库/GIAC 2016 - 全球互联... · PDF file自我介绍- 翁宁龙- 2012年毕业参加⼯作成为⼀名dba - 2015年加⼊美团,负责美团数据库运维自动化系统、数据库⽣态的建设

美团点评数据库⽣态系统 - 任务管理系统的构建

CMDB

任务执⾏者

API层

业务模块

任务管理模块

/queue/alter /queue/switch

⽗进程 ⼦进程

用 户

前端Web celery

rabbitmq

TaskControl celery

⽗进程 ⼦进程……

Page 12: 美团点评数据库运维自动化实践与发展 据库/GIAC 2016 - 全球互联... · PDF file自我介绍- 翁宁龙- 2012年毕业参加⼯作成为⼀名dba - 2015年加⼊美团,负责美团数据库运维自动化系统、数据库⽣态的建设

美团点评数据库⽣态系统 - 美团点评数据库⽣态是什么样的?- 慢查询

慢查询的产⽣

RD新上线

业务发展

事 前 事 中 事 后

测试环境 生产环境

慢SQL

SQL建议服务

所有SQL

在线表变更

优化表结构

gh-ost

报表服务

不可优化的慢查询

⼿动发起

ATLAS ⿊名单SQL

Page 13: 美团点评数据库运维自动化实践与发展 据库/GIAC 2016 - 全球互联... · PDF file自我介绍- 翁宁龙- 2012年毕业参加⼯作成为⼀名dba - 2015年加⼊美团,负责美团数据库运维自动化系统、数据库⽣态的建设

美团点评数据库⽣态系统 - 美团点评数据库⽣态是什么样的?- 量化运营

Page 14: 美团点评数据库运维自动化实践与发展 据库/GIAC 2016 - 全球互联... · PDF file自我介绍- 翁宁龙- 2012年毕业参加⼯作成为⼀名dba - 2015年加⼊美团,负责美团数据库运维自动化系统、数据库⽣态的建设

目 录

Ø  美团点评数据库⽣态系统-  为什么要打造数据库⽣态系统?

-  美团点评数据库⽣态是什么样的?

Ø  案例分享

-  集群初始化

-  在线表变更

-  ⾼可用⽅案

Ø  极简运维

Ø Q & A

-  极简运维理念

-  场景化、定制化、智能化

Page 15: 美团点评数据库运维自动化实践与发展 据库/GIAC 2016 - 全球互联... · PDF file自我介绍- 翁宁龙- 2012年毕业参加⼯作成为⼀名dba - 2015年加⼊美团,负责美团数据库运维自动化系统、数据库⽣态的建设

案例分享 - 集群搭建

业务层

数据库⼊⼝

虚IP层

中间层

数据库层

DNS

IP:PORT IP:PORT

ATLAS ATLAS

Master

Slave Slave

Page 16: 美团点评数据库运维自动化实践与发展 据库/GIAC 2016 - 全球互联... · PDF file自我介绍- 翁宁龙- 2012年毕业参加⼯作成为⼀名dba - 2015年加⼊美团,负责美团数据库运维自动化系统、数据库⽣态的建设

案例分享 - 集群搭建

Page 17: 美团点评数据库运维自动化实践与发展 据库/GIAC 2016 - 全球互联... · PDF file自我介绍- 翁宁龙- 2012年毕业参加⼯作成为⼀名dba - 2015年加⼊美团,负责美团数据库运维自动化系统、数据库⽣态的建设

案例分享 - 集群搭建

Page 18: 美团点评数据库运维自动化实践与发展 据库/GIAC 2016 - 全球互联... · PDF file自我介绍- 翁宁龙- 2012年毕业参加⼯作成为⼀名dba - 2015年加⼊美团,负责美团数据库运维自动化系统、数据库⽣态的建设

案例分享 - 集群搭建

Page 19: 美团点评数据库运维自动化实践与发展 据库/GIAC 2016 - 全球互联... · PDF file自我介绍- 翁宁龙- 2012年毕业参加⼯作成为⼀名dba - 2015年加⼊美团,负责美团数据库运维自动化系统、数据库⽣态的建设

案例分享 - 集群搭建

Page 20: 美团点评数据库运维自动化实践与发展 据库/GIAC 2016 - 全球互联... · PDF file自我介绍- 翁宁龙- 2012年毕业参加⼯作成为⼀名dba - 2015年加⼊美团,负责美团数据库运维自动化系统、数据库⽣态的建设

案例分享 - 集群搭建

Page 21: 美团点评数据库运维自动化实践与发展 据库/GIAC 2016 - 全球互联... · PDF file自我介绍- 翁宁龙- 2012年毕业参加⼯作成为⼀名dba - 2015年加⼊美团,负责美团数据库运维自动化系统、数据库⽣态的建设

案例分享 - 集群搭建

Page 22: 美团点评数据库运维自动化实践与发展 据库/GIAC 2016 - 全球互联... · PDF file自我介绍- 翁宁龙- 2012年毕业参加⼯作成为⼀名dba - 2015年加⼊美团,负责美团数据库运维自动化系统、数据库⽣态的建设

案例分享 - 集群搭建

Page 23: 美团点评数据库运维自动化实践与发展 据库/GIAC 2016 - 全球互联... · PDF file自我介绍- 翁宁龙- 2012年毕业参加⼯作成为⼀名dba - 2015年加⼊美团,负责美团数据库运维自动化系统、数据库⽣态的建设

案例分享 - 在线表变更

批量的DDL或者DML语句

(1)测试库(2)sqlparser

(1)命名规范(2)字符集(3)引擎(4)索引(5)执⾏计划……

pt-online-schema-changegh-ost

API层

语法检查

语义检查

提交任务

任务提交者

Page 24: 美团点评数据库运维自动化实践与发展 据库/GIAC 2016 - 全球互联... · PDF file自我介绍- 翁宁龙- 2012年毕业参加⼯作成为⼀名dba - 2015年加⼊美团,负责美团数据库运维自动化系统、数据库⽣态的建设

案例分享 - 在线表变更之pt-online-schema-change⼯具介绍

如上图所示,pt-osc的执⾏步骤:

# 步骤 1:创建⼀个新表,跟需要更改的表的结构保持⼀致

# 步骤 2:将alter语句作用于新建的表,那么新建表的结构跟最终需要的表结构保持⼀致

# 步骤 3:创建触发器来捕捉原始表的改表(insert -> replace; update -> replace; delete -> delete);保证原表

的更新能够作用到新表

# 步骤 4:分chunk复制数据,将原来中的数据分成若⼲个chunk并复制到新表

# 步骤 5:复制完成之后,将新表rename成原始表名;原始表rename成其他名称

# 步骤 6:更新外键,如果是⼦表# 步骤 7:删除原始表和触发器

Page 25: 美团点评数据库运维自动化实践与发展 据库/GIAC 2016 - 全球互联... · PDF file自我介绍- 翁宁龙- 2012年毕业参加⼯作成为⼀名dba - 2015年加⼊美团,负责美团数据库运维自动化系统、数据库⽣态的建设

案例分享 - 在线表变更之gh-ost⼯具介绍

Page 26: 美团点评数据库运维自动化实践与发展 据库/GIAC 2016 - 全球互联... · PDF file自我介绍- 翁宁龙- 2012年毕业参加⼯作成为⼀名dba - 2015年加⼊美团,负责美团数据库运维自动化系统、数据库⽣态的建设

案例分享 - 在线表变更

Page 27: 美团点评数据库运维自动化实践与发展 据库/GIAC 2016 - 全球互联... · PDF file自我介绍- 翁宁龙- 2012年毕业参加⼯作成为⼀名dba - 2015年加⼊美团,负责美团数据库运维自动化系统、数据库⽣态的建设

案例分享 - 在线表变更

Page 28: 美团点评数据库运维自动化实践与发展 据库/GIAC 2016 - 全球互联... · PDF file自我介绍- 翁宁龙- 2012年毕业参加⼯作成为⼀名dba - 2015年加⼊美团,负责美团数据库运维自动化系统、数据库⽣态的建设

案例分享 - 在线表变更

Page 29: 美团点评数据库运维自动化实践与发展 据库/GIAC 2016 - 全球互联... · PDF file自我介绍- 翁宁龙- 2012年毕业参加⼯作成为⼀名dba - 2015年加⼊美团,负责美团数据库运维自动化系统、数据库⽣态的建设

案例分享 - ⾼可用⽅案

数据库⼊⼝

DNS

IP:PORT IP:PORT

ATLAS ATLAS

Master

Slave Slave

CMDB

API

hookscheckerwrapper

1

1.21.3

2

3.1

3

3.2 4

5

6

Page 30: 美团点评数据库运维自动化实践与发展 据库/GIAC 2016 - 全球互联... · PDF file自我介绍- 翁宁龙- 2012年毕业参加⼯作成为⼀名dba - 2015年加⼊美团,负责美团数据库运维自动化系统、数据库⽣态的建设

目 录

Ø  美团点评数据库⽣态系统-  为什么要打造数据库⽣态系统?

-  美团点评数据库⽣态是什么样的?

Ø  案例分享

-  集群初始化

-  在线表变更

-  ⾼可用⽅案

Ø  极简运维

Ø Q & A

-  极简运维理念

-  场景化、定制化、智能化

Page 31: 美团点评数据库运维自动化实践与发展 据库/GIAC 2016 - 全球互联... · PDF file自我介绍- 翁宁龙- 2012年毕业参加⼯作成为⼀名dba - 2015年加⼊美团,负责美团数据库运维自动化系统、数据库⽣态的建设

极简运维 - 极简运维理念

•  以最简单的⽅式达到目标,满⾜业务需求•  是⼀个由简到繁,再由繁到简的过程

Page 32: 美团点评数据库运维自动化实践与发展 据库/GIAC 2016 - 全球互联... · PDF file自我介绍- 翁宁龙- 2012年毕业参加⼯作成为⼀名dba - 2015年加⼊美团,负责美团数据库运维自动化系统、数据库⽣态的建设

极简运维 - 场景化、定制化、智能化

需求场景化

定制化 智能化

报警自动处理

表结构自动优化

服务自动扩缩容

Page 33: 美团点评数据库运维自动化实践与发展 据库/GIAC 2016 - 全球互联... · PDF file自我介绍- 翁宁龙- 2012年毕业参加⼯作成为⼀名dba - 2015年加⼊美团,负责美团数据库运维自动化系统、数据库⽣态的建设

Thank you