如何实现MySQL运维体系建设

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

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

摘要

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

获取嘉宾演讲视频及PPT,扫一扫下方二维码即可。

初识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分钟)视频地址:http://t.cn/EAZ6zVc

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

原文发布于微信公众号 - IT大咖说(itdakashuo)

原文发表时间:2018-11-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java架构师历程

面向项目经理的Java微服务

微服务是一种用于设计复杂软件的架构解决方案,将其分解为可独立部署的小型模块化服务。它通常与传统的单一体系结构形成对比,在这种体系结构中,软件是作为一个单元构建的...

4352
来自专栏Rainbond开源「容器云平台」

微服务架构在Netflix的应用:架构设计的经验教训

1324
来自专栏BestSDK

MobPush发布免费推送SDK,可自定义UI

推送是时下比较主流的SDK,使得开发者可以即时的向其应用程序的用户推送通知或者消息,与用户保持互动,从而有效地提高留存率,提升用户体验。 ? 大家都在说哪家好哪...

4284
来自专栏程序你好

理解现代企业集成系统架构

企业应用程序集成(EAI)是一个需要解决的复杂问题,不同的软件供应商产生了不同类型的软件产品,如ESB、应用服务器、消息代理、API网关、负载均衡器、代理服务器...

1363
来自专栏软件测试经验与教训

自动化测试实施方案

1K6
来自专栏程序员的知识天地

提升 Web 应用的代码质量【干货持续输出】

Web 应用的质量提升,是一个非常有意思的话题。我们明知道有一系列的手段可以提升代码质量,但是限于多种原因,我们并不会去做。在我工作的第一个项目里,由于大家都是...

781
来自专栏晓晨的专栏

微服务的4个设计原则和19个解决方案

3002
来自专栏Golang语言社区

Golang语言社区--游戏服务器开发都要学什么

大家好,我是Golang语言社区(www.golang.ltd)主编彬哥,本篇给大家转载一篇关于游戏服务器开发都要学什么的文章;主要帮助初学者了解下游戏服务器都...

6693
来自专栏社区的朋友们

是的,腾讯投票已经拥抱腾讯云了

小程序腾讯投票最近迁移到腾讯云了,本文记录了为什么做这个迁移,以及前后的工作。

1.4K6
来自专栏云计算D1net

管理混合云和多云:代理或无代理?

导语 混合云在节省更多IT成本方面提供更多的潜力,并将这些成本节约转向改善业务成果,但却带来了一些独特的挑战。人工手动的流程在一个混合的世界变得难以管理,因为云...

35310

扫码关注云+社区

领取腾讯云代金券