運維平台中的腳本管理
截止目前,元數據的工作完成了一些階段性的內容,當然還有非常多的需要細化的東西,從優先順序層面來說,可以暫時放一放。
現在迫切需要的是一些能用起來的功能,比如結合業務場景的基礎操作,類似初始化,備份恢復等等。實在是太基礎了,以至於自己都有些沒太上心,結果慢慢發現進度拖下來了。所以最近還得多加加班,把這些進度提一提。
基礎的工作其實不是空白,想基本的SQL查詢,SQL執行計劃之類的,功能其實很早就做了。只是還沒有鋪開來用,另外就是還有一些系統化的東西沒到位,比如腳本管理。
比如下面的元數據部分就是平台後面要擴展支持的基礎,這個部分花了一些時間做基礎構建和實現。
腳本管理的內容之前寫過兩篇,供參考。
在這個階段,也收穫了一些經驗,所以準備把這部分的內容做紮實一些,同時有些內容會延伸一下。
我會從腳本管理和工具管理兩個大的維度來說。
腳本管理是基礎功能,需要實現的功能就如同任務調度一樣,是一個通用的入口
先說一些邊界,腳本管理中的腳本是不能直接執行的,所有的任務都是不支持命令,最細粒度就是腳本。
從功能劃分上,大體有下面的幾個方面:
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邏輯)的方式來實現。
※使用Echarts來實現數據可視化
※從陰陽五行,四書五經到國學的理解
TAG:楊建榮的學習筆記 |