首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >运维平台中的脚本管理

运维平台中的脚本管理

作者头像
jeanron100
发布2018-03-22 15:32:27
3.4K0
发布2018-03-22 15:32:27
举报

截止目前,元数据的工作完成了一些阶段性的内容,当然还有非常多的需要细化的东西,从优先级层面来说,可以暂时放一放。

现在迫切需要的是一些能用起来的功能,比如结合业务场景的基础操作,类似初始化,备份恢复等等。实在是太基础了,以至于自己都有些没太上心,结果慢慢发现进度拖下来了。所以最近还得多加加班,把这些进度提一提。

基础的工作其实不是空白,想基本的SQL查询,SQL执行计划之类的,功能其实很早就做了。只是还没有铺开来用,另外就是还有一些系统化的东西没到位,比如脚本管理。

比如下面的元数据部分就是平台后面要扩展支持的基础,这个部分花了一些时间做基础构建和实现。

脚本管理的内容之前写过两篇,供参考。

平台设计中的脚本管理

web脚本编辑器ACE Editor 在这个阶段,也收获了一些经验,所以准备把这部分的内容做扎实一些,同时有些内容会延伸一下。

我会从脚本管理和工具管理两个大的维度来说。

脚本管理是基础功能,需要实现的功能就如同任务调度一样,是一个通用的入口

先说一些边界,脚本管理中的脚本是不能直接执行的,所有的任务都是不支持命令,最细粒度就是脚本。

从功能划分上,大体有下面的几个方面:

  1)脚本内容管理:Python,shell,Java,SQL等

  2)执行方式:本地和远程(服务器端执行脚本,客户端,中控端)

  3)参数管理:脚本配置支持多个参数,对参数个数和参数格式需要全面支持。

  4)脚本需要一个基本的介绍和用法说明

5)需要制定脚本的规范和标准,对命名规范和脚本内容做一个基本的审核

6)设定脚本域的概念,即脚本是全局可用,还是只限于特定的需求可用

  7)脚本编辑器:ACE Editor, Monca都是不错的选择,需要简单调研和对比一下,找到一个最适合的方案,从我的角度来看,收到VS code的影响,我更倾向于是Monca了。

工具管理是在脚本管理的基础上的扩展,脚本管理其实就类似于积木的转配和组合,更希望是做成一个工具箱的方式。可以做各种接入和适配,然后根据我们的需求在指定的场景中完成指定的任务。

1.接入层,需要首先考虑接入层的配置和实现,比如我要连接到系统,连接到数据库,这就是两个接入类型,对于每个类型都有不同的实现。

  1)连接系统,对于不同的实现方式,都期望做成一个接入层,类似于工厂模式。

   Paramiko

   Ansible

   websocket

  2)连接到数据库,不同的数据库,只要我输入指定的信息,就返回给我一个数据库连接。

   Pymysql

   Mysqldb

   redis

  2.系统层

   系统的调用,比如查看资源状态,可以使用命令的方式或者第三方库的方式,比如psutil的使用,或者用脚本来实现一些复杂的定制工作等。

  3.数据库层

   数据库层级的调用,比如SQL语句,举一个例子,比如查看数据库的基本信息,那么无论是shell,Python都是接入层的实现,我们在这里关注的是SQL层的逻辑。

   这里主要是一些基本的操作,比如查看数据库的基本信息,得到DDL信息,得到从库的信息等等,都是通过脚本(这里的主要核心就是SQL逻辑)的方式来实现。

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

本文分享自 杨建荣的学习笔记 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档