自动化运维与Python的关系

一.什么是自动化运维?
运维早期: 服务器体量小, 部署步骤少、操作简单、对运维人员要求较低(掌握基本的Linux命令即可)。运维人员都是通过手工执行命令管理硬件、软件资源。运维人员需要执行大量的重复性命令来完成日常的运维工作互联网行业飞速发展: 服务器体量大、部署步骤多、操作繁琐、对运维人员要求提高(至少掌握一门编程语言)。
二.为什么要自动化运维?
自动化运维势在必行,原因有以下几点:
(1)手工运维缺点多。手工操作易发生操作风险且效率低,运维人力成本变高,体量大(1000+)的服务器难以人工管理。
(2)业务需求的频繁变更。业务需要快速响应市场的需求,需求变更频率也越来越快,只有Devops持续交付实践,才能满足频繁变更的业务需求。
(3)自动化运维的技术已经成熟。云计算、大数据等需求刺激着自动化运维的需求,产生大量优秀的自动化运维开源工具(eg:Ansible、Docker等), 也助力着自动化运维的发展。
三.成熟的自动化运维体系
● 支持混合云的配置管理数据库(CMDB)。CMDB存储与管理企业IT架构中设备的各种配置信息,它与所有服务支持和服务交付流程都紧密相连,支持这些流程的运转、发挥配置信息的价值,同时依赖于相关流程保证数据的准确性。
● 完备的监控和应用性能分析系统。资源监控(如服务器、磁盘、网络)和性能监控(如中间件、数据库)都是较为基础的监控,开源工具有Zabbix、Nagios、OpenFalcon(国产)。
● 批量运维工具。开源的批量运维工具有Ansible、SaltStack、Puppet、Chef,其中Ansible和SaltStack纯由Python编写,代码质量和社区活跃程度都很高,推荐使用。
● 日志分析工具。如何快速地从成百上千台服务中采集日志并分析出问题所在呢?日志采集方面工具有Sentry +日志分析有ELK,两者都是开源的。
● 持续集成和版本控制工具。持续集成是一种软件实践,团队成员经常集成他们的工作,每次集成都通过自动化的构建来验证,从而尽早发现集成错误。持续集成的工具Jenkins+版本控制是软件Git。
● 漏洞扫描工具。借助商业的漏洞扫描工具扫描漏洞,保护服务器资源不受外界的攻击。
四.为什么选择Python来做自动化运维?
● 大部分的开源运维工具都是由纯Python编写的,如Celery、ansible、Paramiko、airflow等,学
习Python后可以更加顺畅地使用这些开源工具提供的API,可以阅读这些开源工具的源代码,甚至可以修改源代码以满足个性化的运维需求;
● Python与其他语言相比,更加优雅、明确和简单。

猜你喜欢

转载自blog.csdn.net/weixin_43215948/article/details/107584113