前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ZanDB 开发清单

ZanDB 开发清单

作者头像
用户1278550
发布2018-08-09 10:50:08
4900
发布2018-08-09 10:50:08
举报
文章被收录于专栏:idbaidba

一 简介 从今年3月份开始,我和另外一位小伙伴王航威一起开发一套 数据库管理平台-ZanDB ,该平台主要使用Django 作为web 框架,使用 一款go语言的agent 在数据库服务器执行各种功能脚本。和其他大多数DB自动化管理平台一样 ,该平台提供实例申请,备份恢复,上下线(和我们的proxy 中间件耦合) 以及数据质量对比,慢查询分析等功能。本文主要是记录开发ZanDB 这套系统使用哪些功能组件。

图片是测试环境的界面展示

二 基础组件

2.1 Web框架 Django 一款通用的web 框架.

2.2 前端 Bootstrap -Admin-LTE 典型的管理平台UI方案。 JavaScript + Ajax 实现各种web页面逻辑,Form表单功能,异步刷新数据。 2.3 定时任务功能 Django-crontab 执行定时任务。

Celery 分布式任务队列,执行定时的元数据采集,发送慢查询报警。

2.4 agent 以及后台业务逻辑

每套运维平台其实都需要一个agent 我们使用了 基于go语言实现的agent -servant ,内部同事开发的开源工具。

os ,subprocess 模块用于执行shell命令以及各种文件创建,检查,删除操作。 requests 用于调用管理平台的api,解决数据库服务器使用密码和元数据进行交户的问题。当然也可以调用其他相关联的平台获取元数据信息。

configParser ,jinjia2 模块用于解析my.cnf 生成标准的my.cnf 。

psutil 获取服务器空间,内存等信息。

rsync 同步备份集到备份机,同步基础实例配置到本地用于生成实例,当然可以选择使用基于流式复制到hdfs系统。

2.5 日志记录 logging 记录系统的各种任务调度以及核心功能操作记录,和系统异常。如何设计一套合理的日志系统是一个很有意思的技术问题。 2.6 数据库交互 我们没有使用model操作数据库而是自己基于pymysql 定义一个简易的 MySQL orm ,支持查询和事务提交,返回lastinsertid ,影响行数等功能,增强对表设计结构的控制。 2.7 登陆认证 安全性也是我们考虑的一个方面,Django-auth 结合本公司自己的账号系统,有效控制系统权限,开发,运维人员看到的页面功能是不一样的。 三 开发工具 IDE PyCharm CE 版本 代码管理 git SourceTree git 客户端管理工具 (提高效率,但是用多了会导致对git命令的生疏) 四 总结 暂时就写这么多吧,自己还在逐步深入了解其他的Python 的各种模板,以后会随着系统平台功能的完善,以后会用到更多的技术,陆续会更新。也期望本文能够给以后入手写运维平台的朋友一点借鉴。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-11-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库专家服务
数据库专家服务(Database Expert Service,DBexpert)为您提供专业化的数据库服务。仅需提交您的具体问题和需求,即可获得腾讯云数据库专家的专业支持,助您解决各类专业化问题。腾讯云数据库专家服务团队均有10年以上的 DBA 经验,拥有亿级用户产品的数据库管理经验,以及丰富的服务经验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档