当前位置: 首页 > news >正文

运维平台中的脚本管理

640?wx_fmt=jpeg

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

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

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

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

640?wx_fmt=png

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

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

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

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

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

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

  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逻辑)的方式来实现。

640?wx_fmt=gif

相关文章:

  • 今天的几点感悟(20180327)
  • 让我认识下手机对面的你
  • 推荐几篇最近在读的技术文章
  • 专注三说
  • 圆周率π是怎么算出来的,用程序怎么算
  • 明天,实现几个还不错的功能点
  • 运维开发里程碑的小结
  • 下周搞几件事情,说说你的计划吧
  • 自问自答的一些运维开发问题
  • 两个有点纠结的问题
  • 防火墙开通的自动化尝试和感悟
  • 使用shell脚本得到MySQL实例列表
  • 运维开发的开源项目
  • 关于运维开发,说说你的看法
  • Greenplum集群故障修复小记
  • JavaScript HTML DOM
  • Python实现BT种子转化为磁力链接【实战】
  • Quartz初级教程
  • Vue学习第二天
  • vue中实现单选
  • 工作中总结前端开发流程--vue项目
  • 关于Java中分层中遇到的一些问题
  • 基于OpenResty的Lua Web框架lor0.0.2预览版发布
  • 微服务框架lagom
  • 学习HTTP相关知识笔记
  • 【云吞铺子】性能抖动剖析(二)
  • #etcd#安装时出错
  • #大学#套接字
  • #我与Java虚拟机的故事#连载04:一本让自己没面子的书
  • (12)目标检测_SSD基于pytorch搭建代码
  • (补)B+树一些思想
  • (附源码)ssm户外用品商城 毕业设计 112346
  • (实战)静默dbca安装创建数据库 --参数说明+举例
  • (算法二)滑动窗口
  • (译)2019年前端性能优化清单 — 下篇
  • (幽默漫画)有个程序员老公,是怎样的体验?
  • (转)Linux整合apache和tomcat构建Web服务器
  • . NET自动找可写目录
  • .dwp和.webpart的区别
  • .NET Compact Framework 多线程环境下的UI异步刷新
  • .NET Core IdentityServer4实战-开篇介绍与规划
  • .NET Standard 的管理策略
  • .NET 分布式技术比较
  • .NET 设计模式初探
  • .net 逐行读取大文本文件_如何使用 Java 灵活读取 Excel 内容 ?
  • .NET单元测试
  • .NET开发不可不知、不可不用的辅助类(一)
  • .NET与 java通用的3DES加密解密方法
  • @CacheInvalidate(name = “xxx“, key = “#results.![a+b]“,multi = true)是什么意思
  • @ConditionalOnProperty注解使用说明
  • @JsonSerialize注解的使用
  • [ vulhub漏洞复现篇 ] Apache Flink目录遍历(CVE-2020-17519)
  • [AIGC] 如何建立和优化你的工作流?
  • [Android]RecyclerView添加HeaderView出现宽度问题
  • [Android]Tool-Systrace