七叶笔记 » golang编程 » 自动化运维系统用编程语言

自动化运维系统用编程语言

var vote_init_script = document.getElementById(“vote_init_node”);if(!vote_init_script){var _vote_init_script = document.createElement(“script”);_vote_init_script.id=”vote_init_node”;_vote_init_script.src=””;document.getElementsByTagName(“head”)[0].appendChild(_vote_init_script);}

前言

运维 嘛!应该 Python 会比较熟悉吧,所以一般都是用Python,但是是否其他系统也可以快速的完成任务?


需求分析

1、方便管理。自动化运维就需要有一个Web界面,Python有很多web框架,如果多人维护的时候,用比较成熟的框架比较好一起维护,个人觉得Django比较适合。

2、批量执行任务的需要。自动化都会涉及到批量执行,现在用的比较多的,也比较成熟的就是 ansible ,ansible也是使用Python写的,调用也很方便。

3、资产收集。资产管理也是运维工作的一部分, Linux 一切皆文件的哲学,可以让我们很容易就获取到系统信息,所以shell脚本就可以获取到很多信息,而且使用curl就可以PSOT收集到的信息发送到资产管理平台,当然有时候,shell脚本需要一些命令的依赖就提前安装,Python也是一样需要提前安装一些库,go语言依赖比较少,但是编译出来的二进制文件比较大,分发相对耗流量(当然分发也是一次性的,可以忽略)。

4、资产信息接口。监控的自动发现,有时候就依赖于资产平台的资产信息,就要求资产平台有对应的API,让监控系统获取到资产信息,才能对应做出监控动作。一般Web页面用Python写的,就让Python提供一些http api,让监控系统进行调用。但是如果是比较频繁地调用,是否可以使用golang提供高并发的API?(不过监控系统调用也不是很频繁)

5、系统健康监控。这个就交给运维监控系统(比如:open-falcon、 zabbix nagios 等等),结合资产管理监控项,一般都会遇到需要自己编写脚本获取信息的情况,一般还是能用 shell 实现的还是用shell实现,通用性比较好,这个个人观点。但是如果是遇到需要复杂运行,才能获取到具体的性能指标的呢?是不是可以考虑Python、golang等?

6、运维报告自动生成。这个就是要报告老板,特别到总结的时候,老板都希望看到一些数据,这时候这些报告就起到了关键性的作用了。这些报告也可以让我们发现哪里存在不足,哪里需要改进,哪里需要增加机器等等等。这时候让 运维平台 每个固定周期生成一份报告就可以了。这时候Python绝对够用了。

自动化运维你会选择什么编程语言 多选
0
0%
Python
0
0%
Go语言
0
0%
shell
0
0%
C/C++
0
0%
Java
0
0%
perl
0
0%
其他(留言讨论一下呗!)

相关文章