高效自动化运维工具 Clip | 介绍篇

网友投稿 1103 2022-10-04

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表睿象云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。

高效自动化运维工具 Clip | 介绍篇

编辑

徐凯强@和信(整理)

作者介绍

王冬生腾讯高级工程师,《Puppet权威指南》作者

引子

IP数字不容易记忆,所以聪明的人类发明了DNS。DNS把不容易记忆的数字,改为容易记忆的一串有规则的域名,域名又可以解析相应的IP,基于此思路,我们开发了近似 DNS 工具的名字服务系统。在公司内部希望通过名字服务系统在 CMDB 基础之上把不同的业务(cpu、内存、磁盘和网卡)“夹在一起”,对于上层可以实现资源互补,对于下层可以方便核算业务成本,所以这就是CLIP(夹子)的由来了。

Clip 简介

Clip是一款自动化运维工具,适用于海量服务器的管理场景,可以降低系统误操作风险,提高工作效率。

其将传统的 IP 管理纬度替换为String管理纬度的管理方式,使海量运维变得更加便捷、可靠与高效。

Clip是 C/S 架构,它将IP关系保存在 Server 端,Client 端可以下载 SDK,通过 SDK 遍历 Server 端的 IP 与模块关系等,并在本地对获取的 IP 模块关系进行重新的组织与编排,这就是Clip。

Clip还提供了远程命令、文件拷贝、IP组织树遍历、历史命令查看、IP对应String关系正反解析与导入等功能。为海量服务器运维保驾护航,奠定基础。

下面来详细介绍下Clip这款自动化运维工具,首先从基于String管理的 String 组成说起。

String 的组成方式

String由(idc-product-modules-group) 4段组成,了解 CMDB 的同学会发现它与 CMDB 的结构很像,4级模块定位一个服务。

但是随着业务的发展,笔者觉得4级服务已经无法定位到一个服务,譬如:在一台服务器上混合部署不同的业务模块,这里4级只能定位到服务的IP级别,而无法精确定位到真正的服务。

所以Clip在此基础上增加了一级 — Port (端口号),改完的String格式变成了这样:(idc-product-modules-group-port),通过5段定位一个服务。这也是Clip优势,灵活变换来定位一组服务,满足业务需求。

举一个实际的例子:

上海机房,A 模块使用80端口提供服务,目前有100多个机器,B模块使用8080端口提供服务,目前也有100多个机器,由于业务流量下降,为了节约资源目前想将两个模块200台机器资源合并,但功能不合并。

我们可将两个服务表示到不同的String中,如:

A模块(sh-weixin-friend-a-80)B模块(sh-weixin-friend-b-8080)

通过String就很容易的将两个服务分别开,并部署在相同的服务器上提供服务了。

管理方式对比

相较于传统服务器管理方式,String管理方式有以下优势:

传统为IP管理方式,IP由4组无意义的数字组成,比较难记忆。与传统方式相比String可以见名识意,方便记忆。管理海量服务时,IP相似经常会导致运营故障,譬如A模块(10.131.24.37)和B模块(10.117.24.37),后两位数字一致,惯性的认为两个B模块就是A模块,发送配置导致线上故障。通过String管理方式可以很方便的规避此问题。String 可以解析1个IP,也可以解析一组IP,根据IP也可以反解析String对应关系,这让我们管理一组服务更加的方便。

Clip 的C/S 的架构

刚介绍到 Clip 为 C/S 架构,String 对应的 IP 关系保存在 Server 服务器中,Client 通过 Clip 的 SDK 获取IP。

其优势有3点:

IP与String建立一次关系后,由于关系保存在 Server 端,因此所有的服务器上通过SDK都可以调用到。SDK 可以提供更加丰富的功能,如扫描服务器,远程命令,远程拷贝等。可以方便的进行定制开发,Clip 提供简单清晰的API与SDK代码结构与文档,当Clip不能满足我们需求时,可以通过文档很容易的扩展Clip 满足自己的需求。

Clip SDK

目前 SDK 共有8个子命令,如下所示:

scan: 用于对String对应的IP进行端口存活状态扫描。cstring: 用于解析String和IP的对应关系。ssh: 用于对String对应的IP,远程执行系统命令。scp: 用于对String对应的IP,远程拷贝文件。tree: 遍历String下的子节点。history: 显示历史执行过的命令。import: 导入IP对应String关系。lt: 从本地获取IP关系进行管理。help: 显示Clip当前有多少子命令。

Clip 案例

最后我们再来看一下应用案例 ,来比较一下传统方式和Clip管理方式差异:

传统方式:

在 A 模块的100台服务器上,执行uptime命令,具体的操作步骤如下:

找到要同步的A模块 IP 列表。编写脚本与 IP 列表中的服务器建立连接。连接服务器时输入账号密码。账号密码认证成功后拷贝文件。在每个 IP 重复以上步骤。

Clip 方式:

在 A 模块的100台服务器上,执行uptime命令,具体的操作步骤如下:

建立A模块ip列表与String的对应关系,譬如为tj-qzone-qzoneini-access6。clip ssh -p 密码 root@tj-qzone-qzoneini-access6

执行上述命令后,以下为执行结果。

可以看出相较于传统的管理方式,采用Clip 的方式进行管理,大大简化了工作量。

后记

好消息来啦

全球运维大会·上海站,将于10月31日举行,届时三大运维体系(精益运维、高效运维和白盒运维),将首度同台汇演。本次会议免费,如需报名或了解详情,请猛戳如下链接。

约不?三大运维体系首度同台汇演 | 全球运维大会·上海站

如何一起愉快地发展

提示:目前高效运维新群已经建立,欢迎加入。您可添加萧田国个人微信号xiaotianguo8 为好友(或扫描如下二维码),进行申请,请备注“申请入群”。

上一篇:GOPS运维大会第二天上
下一篇:浅谈运维工程师职业发展
相关文章

 发表评论

暂时没有评论,来抢沙发吧~