ZanDB 开发清单

一 简介 从今年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

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏编程微刊

前端页面实现报警器提示音效果

22920
来自专栏Grace development

RabbitMQ 初体验

RabbitMQ支持多线程处理消息队列,所有你可以开启多个消费者去执行消息队列内的任务。你可以像我这样

11510
来自专栏Java技术栈

稍微有点难度的10道java面试题,你会几道?

1、jvm对频繁调用的方法做了哪些优化? 2、常见的攻击手段有哪些?如何防范? 3、restful api有哪些设计原则? 4、hessian是做什么用的?它的...

341100
来自专栏happyJared

YApi - 高效、易用、功能强大的可视化接口管理平台

  YApi是由去哪儿网移动架构组(简称YMFE,一群由FE、iOS和Android工程师共同组成的最具想象力、创造力和影响力的大前端团队)开源的可视化接口管理...

87310
来自专栏九彩拼盘的叨叨叨

我理想中的前端团队需要具备的

9110
来自专栏CDA数据分析师

简析STATA 的日志(log)功能

本文由 YU家IT服务和数据分析工作室原创并授权「CDA数据分析师」发布,如需转载,请获得授权并注明来源 STATA 是一套强大方便的统计分析软件。 本文介绍 ...

511100
来自专栏架构师之路

php使用tcp长连接的一种优化思路

一、面向人群 如果站点架构满足以下几点,那么本文的优化方案会非常适合: 1)使用php等脚本语言作为开发语言 2)需要连接后端服务,例如RPC服务、memcac...

40260
来自专栏公有云大数据平台弹性 MapReduce

简单了解公平调度器的一些队列设置

在腾讯云EMR的用户日常反馈中,经常会遇到因为YARN的队列配置不合理导致资源利用率不高,任务提交不上的问题,所以有了以下的文章,方便用户在日常按照一定的需求将...

23620
来自专栏CaiRui

Mysql-15-mysql分布式应用

1.分布式应用的概念和优势   分布式数据库是指利用高速网络将物理上分散的多个数据存储单元连接起来组成一个逻辑上统一的数据库。分布式数据库的基本思想是将原来集中...

23980
来自专栏祝威廉

提交PR的git 流程

上次花了点时间让CarbonData集成到StreamingPro中,方便大家更快速的体验到CarbonData的好处,集成完毕后就写了篇文章:让CarbonD...

20120

扫码关注云+社区

领取腾讯云代金券