python在系统运维中都有哪些应用
发布网友
发布时间:2022-04-21 20:51
我来回答
共1个回答
热心网友
时间:2022-04-18 10:06
我更喜欢用“系统管理”来形容“运维”这项工作。运维听起来是偏执行的一项工作。python在系统管理上的优势在与强大的开发能力和完整的工具链。python的工程开发能力强大,远强于各种shell和perl。易读易写,兼具面向对象和函数式风格,还有不错元编程能力。通过系统化的将各种管理工具结合,对上述的各类工具进行二次开发,形成统一的服务器管理系统。
和python类似的ruby也很适合编写系统管理软件,但是在相关库和工具上,比python差太多。
举个栗子: 某牛人,精通 bash,python,perl,ruby ,在工作中写了数百个单一功能的脚本(任何语言)来进行日常操作,涵盖了监控,部署,网络配置,日志分析,安全检测 等等许许多多的方面,无所不包。他所作的,只是操作,并没有把系统管理这项工作做好。再多的脚本,也只是把“操作”这个行为做到极致。写再多的脚本,也不能转化为公司在系统管理上的宝贵资产。
让系统易于管理,是一个工程。只有像puppet(ruby),saltstack(python) 这样的自动化管理工具,才能完整的描述整个系统,并且让系统管理的方方面面纳入统一的体系,而不是一堆脚本。
python在服务器管理工具上非常丰富,配置管理(saltstack) 批量执行( fabric, saltstack) 监控(Zenoss, nagios 插件) 虚拟化管理( python-libvirt) 进程管理 (supervisor) 云计算(openstack) ...... 还有大部分系统C库都有python绑定。
对于流程确定的事情,最终一定是纳入系统管理的体系,写成程序,成为系统的一部分。而不是无法复用游离与整体的各种脚本。
随着云计算时代的来临,中小型公司,不需要运维了。大型公司,没有工程开发能力的运维,是没有竞争力的。