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

时间:2018-07-13    来源:linux运维菜

前言

运维嘛!应该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绝对够用了。

热门文章推荐

阅读TOP10