社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  DATABASE

如何实现MySQL运维体系建设

IT大咖说 • 6 年前 • 740 次点击  
阅读 46

如何实现MySQL运维体系建设

内容来源:2018 年 10 月 20 日,源数据库论坛(ODF)发起人周彦伟在“ODF走进名企之贝壳技术沙龙-数据库存储技术的多元应用”进行《使用ArkControl实现MySQL运维体系建设》的演讲分享。IT 大咖说作为独家视频合作方,经主办方和讲者审阅授权发布。

阅读字数:2384 | 6分钟阅读

获取嘉宾演讲视频及PPT,请点击:t.cn/E2a1mwQ

摘要

本次分享的是如何使用ARkcontrol来搭建mysql的运维体系,从功能、架构以及安装内容上来详细介绍ARkcontrol。

初识MySQL

数据库特别是mySQL这样不是很成熟化的商业数据库,使用起来其实并不方便,这也是为什么很多互联网公司,像腾讯或者美团都有专门的团队DBA去支持最后的运维工作。

MySQL运维首先要搞定的是安装部署这块,对于一般开发者来说如果不专门抽时间学几个小时或者学几天的话一般很难完善的部署mysql的相关服务。接着在实例或者集群增多之后,需要对它进行管理,包括整个的集群拓扑关系,切换关系。剩下的是所有的做数据库都很关注的高频切换,能够在数据库出问题的时候及时切走这点也很重要。最后是一些辅助的东西,包括监控告警,备份恢复,数据迁移,性能优化,审核和审计,常规的系统巡检。对于涉及到金融或者对数据比较敏感的公司,审核和审计是重中之重。

ArkControl

我在创业的时候就在想我们要做些什么样的东西才能满足大多数人的需求,给大家带来一些实惠。让数据库在更广的范围推广开来,能够被很轻松的去使用。最终我们做了一款叫ArkControl的产品,他是一个云管平台,社区版可以免费下载使用,可以一键实现一个比较全面的mysql运维体系,不用花费太多成本就能实现一些数据库运维的基本功能,至少不用再通过命令发去安装mysql或者mysql集群。

这个产品的目标用户不是像美团这样的大企业,而是那些用到了mysql,但是没有DBA或者DBA资源不是很丰富的公司。

根据后续的发展,我们还会支持更多的NewSQL、NoSQL以及大数据体系,比方马上要支持的Redis,在数据层面,Redis和mysql是使用者和需求最多的,一个是缓存,一个是数据库。

另外在管理数据库的过程中,又出现了2个需求,一个是数据的异构同步,一般的企业都会同时使用多种数据库,比如用Redis做缓存,用大数据系统存数据分析,正常情况下会以OLTP的mysql数据库作为数据的基准,以供缓存使用或者大数据分析。类似这种异构实时同步,目前实际上没有特别好的工具或者是产品来支持这样的功能。第二个需求是混合云数据库的管理,这块我们也已经支持。

AkeControl架构体系

上图是整个AkeControl在管理数据库层面需要了解和支持的功能,以及要处理的处理的需求点。可能看起来比较复杂,但是解析出来其实还蛮简单,核心在于数据库集群。

要想用好一个mysql集群,首先要有一个mysql的中间件作为接入层访问到不同的集群,以业务访问和系统的架构分离,这样的话就可以在底层更轻松的管理数据库。线上数据库的监控方面,我们做了一个分布式的类似于Redis的哨兵,然后用投票的机制来解决数据库判断是否存活的问题,更准确更高效。

最左侧从主机管理到下面的审核审计这部分展示的是AkrContro能提供的功能,这些都是为了满主开发者对数据库运维的需求。

其中就又刚才提到的数据异构传输,我们有一个专门的数据传输服务用来做mysql到其他数据库的异构操作,由此实现底层数据的全线打通,轻松将热点或者是热数据传输到不同的系统中,做实时的分析。

还有很重要的一块,也是今后我们发展的重点——智能运维,包括数据库的智能优化,智能的诊断和巡检。实现逐步的从人工的运维转化为智能运维,类似最优化接口或最优化配置等功能。

AkrControl安装了什么

接下来简单介绍一些AkrControl都安装了些什么,这里面包含了几个部分,首先是一个基本的web页面,用来做前端展示以及一些操作的输入输出。还有一个用GO写的Akr-service,用于数据的调度,相当于web的control层。然后是Akr-agent,它被装所有需要管理的服务器上,负责去收集数据库的信息,主机的信息,包括接受中控传输过来的安装命令卸载命令等,相当于一个远程的操作的代理。

再接下来是存储,一个mysql,另外两个是ElasticSearch和Grafana,它们是为了存储监控数据的,我们会用ES收集监控的信息,然后用Grafana展示,目前是这么计划的,后续可能会将Grafana替换成我们自己的web层。

最后还装了Arkit-Service和Arkgate-Service,Arkit-Service用来做审核的,Arkgate-Service做数据传输。

上图展示的是部署AkrControl所需的配置,最小配置只用两台机器,一个配置库和一个备份数据存放。下方是推荐配置,更安全一些。

过一段时间,最小配置可能只需一台就够了,实现最小安装,在笔记本上也能体验到。现在还在优化中,不过应该是很快就会发布。

(后续为相关部署界面介绍,请观看是视频最后5分钟)视频地址:t.cn/EAZ6zVc

以上为今天的分享内容,谢谢大家!

编者:IT大咖说,转载请标明版权和出处



今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/qw7Je0xGxg
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/26728
 
740 次点击