自动化介绍
和大数据、云计算一起热火朝天的就是自动化运维了,然后就有了现在很火的职位DevOps。各个培训机构雨后春笋般,推出了Python自动化运维培训。不知道培训的效果怎样。但是感觉有点误导的意味。
有个朋友参加了某培训机构的Python自动化运维培训,培训完后就给我说他要做自动化运维。当时我就懵圈了,在想他都没做过运维就培训了下Python,然后直接可以实现自动化运维了。仔细聊了以下,原来是他想多了,他所说的只是实现了自动化最后的一步——平台化。
所谓运维自动化就是将日常运维中大量的重复性工作(小到简单的日常检查、配置管理和软件安装,大到整个变更流程的组织调度)由过去的手动执行转化为自动化操作。比如,某个服务需要更改某个配置,在流程中提交,然后经过各个负责人确认,到最后,该服务的所有机器的该配置文件都修改为想要的结果,除了审核不需要人工干预。
从上面可知,并不是朋友所认为的会Python,就意味着会自动化运维了。如果这样认为,那么会PHP、Java、Go等都会运维自动化,市场上就有大量的运维自动化人才可用。
标准化
实现自动化运维,第一个要实现的就是要实现标准化,如果没有实现标准化,实现自动化就是空谈了。以下是要实现标准化的几个方面。
主机名标准化
对于做运维的同学来说,主机名的重要性应该最清楚不过了。通过主机名可以知道这台服务器提供的业务、运行的服务等。
主机名的标准化对于实现自动化非常重要,如果主机名都没实现了标准化,接下来的自动化工作会困难重重。
主机名的标准化,也即主机名的规划化,以某个标准(以所在公司为准)来对主机名进行命名。可以根据机房、业务、服务等来进行命名。
对于大规模的服务器的公司,应该都实现了SOA(面向服务的体系架构),可以这样命名:机房-业务-服务-主应用序号等这样的方式来命名,比如用于对于商品介绍的服务器可以这样命名:bjjxq-item-nginx00x;提供商品介绍服务接口的服务可以这样命名:bjjxq-item-api-nginx00x等等。
对于小规模的服务器的集群,可能没有实现SOA的条件,各个服务之间并没有划分的很细。这样仍可以按照上面的第一个方式来实现主机名的标准化,比如对于提供web服务的服务器:bjjxq-web-nginx00x,对于用MySQL提供数据库服务的服务器:bjjxq-db-mysql00x等。
安装目录标准化
安装目录实现标准化,对于自动化的批量部署,批量修改配置文件等等都有很大的帮助。比如确定源码文件可以临时存放在/softs目录下,安装可以安装在/app目录。
日志存放标准化
日志的存放的标准化可以从存放路径、存放时长、存放名三个方面入手。比如nginx服务,存放路径可以统一存放在/logs的目录下,访问日志可以存放为/logs/nginx/nginx_access.log,错误日志可以存放为/logs/nginx/nginx_error.log。进行日志切割后的日志可以加上时间,比如/logs/nginx/nignx_access_20160717.log,/logs/nginx/nginx_error_20160717.log。对于存放时间,需要根据公司的需求,比如需要在服务器本地存放多久的日志,在日志收集的服务器上要保留多久的日志等等。
对于要实现标准化的地方还有很多,比如服务端口的标准化、脚本存放的标准化等等。无论是哪方面的标准化,对实现自动化都是不可缺少的,因为实现了标准化,实现自动化才成为可能。
以上是笔者的拙见,有不足之处还请斧正。
由于个人技术所限有不足之处还请各位指出。可以通过如下方式联系到笔者:
Linux运维开发群 298324302
北京linux运维求职招聘 153677549
本文出自 “长街听风人” 博客,转载请与作者联系!
原文地址:http://kevinhao.blog.51cto.com/5204735/1827194