漫谈自动化运维——实现标准化

自动化介绍mysql

和大数据、云计算一块儿热火朝天的就是自动化运维了,而后就有了如今很火的职位DevOps。各个培训机构雨后春笋般,推出了Python自动化运维培训。不知道培训的效果怎样。可是感受有点误导的意味。linux

有个朋友参加了某培训机构的Python自动化运维培训,培训完后就给我说他要作自动化运维。当时我就懵圈了,在想他都没作过运维就培训了下Python,而后直接能够实现自动化运维了。仔细聊了如下,原来是他想多了,他所说的只是实现了自动化最后的一步——平台化。nginx

所谓运维自动化就是将平常运维中大量的重复性工做(小到简单的平常检查、配置管理和软件安装,大到整个变动流程的组织调度)由过去的手动执行转化为自动化操做。好比,某个服务须要更改某个配置,在流程中提交,而后通过各个负责人确认,到最后,该服务的全部机器的该配置文件都修改成想要的结果,除了审核不须要人工干预。web

从上面可知,并非朋友所认为的会Python,就意味着会自动化运维了。若是这样认为,那么会PHP、Java、Go等都会运维自动化,市场上就有大量的运维自动化人才可用。sql

标准化数据库

实现自动化运维,第一个要实现的就是要实现标准化,若是没有实现标准化,实现自动化就是空谈了。如下是要实现标准化的几个方面。api

系统安装标准化安全

我的认为系统的安装是整个运维工做的基础,若是在这个层面没有作到标准化,之后扩容、安装等的批量化管理将遇到各类困难。能够按照下面的步骤来实现标准化,固然也不尽然,能够根据具体实际来进行。服务器

1、使用磁盘的标准化架构

    在安装系统时,要把这项考虑进去,由于这涉及到最基础的磁盘问题。在改项中要考

虑磁盘的大小、系统盘和数据盘是否要分开、是否要使用RAID、使用哪一种RAID方案、

之后磁盘扩容须要什么方案进行扩容等。

2、分区的标准化

    分区要考虑这些问题:怎么去分区、每一个分区的大小是多少。

3、安装包的标准化

   在安装系统的后,首先进行的就是初始化步骤,因此安装包的选择也是须要考虑的。

在生产环境中,使用PXE、cobbler等批量安装系统已不在少数,能够根据业务、应用等制做相应的模版来进行批量安装。

主机名标准化

对于作运维的同窗来讲,主机名的重要性应该最清楚不过了。经过主机名能够知道这台服务器提供的业务、运行的服务等。

主机名的标准化对于实现自动化很是重要,若是主机名都没实现了标准化,接下来的自动化工做会困难重重。

主机名的标准化,也即主机名的规划化,已某个标准(以所在公司为准)来对主机名进行命名。能够根据机房、业务、服务等来进行命名。

对于大规模的服务器的公司,应该都实现了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。对于存放时间,须要根据公司的需求,好比须要在服务器本地存放多久的日志,在日志收集的服务器上要保留多久的日志等等。

  

代码目录标准化

    实现代码目录标准化的目的就是为了实现可以批量上线、批量修改某个代码文件的某个地方等等。若是实现了代码目录的标准化。

文件格式的标准化

文件处理大部分都是在日志文件和应用的配置文件。日志文件种类就比较多了,好比错误日志、访问日志、MySQL或PHP的慢查询日志等等。在生产中,接触比较多的就是修改配置文件,所以配置文件的格式实现统一标准的重要性都比较清楚。日志文件格式化也是很重要的,由于经过日志文件能够获取QPS、访问延迟、PV、IP等等指标。

用户标准化

用户的标准化应该是一个重点。用户的标准化包括两个方面:用户名的标准化和用户权限的标准化。

用户名标准化

用户包括业务用户、OP用户、RD用户、应用等等。将用户名的命名使用统一标准来进行,能够根据业务或应用来进行命名,好比dbrd、pmrd等。应用用户能够和业务用户使用相同的用户,即为某个业务提供服务的全部用户使用统一的业务用户。

用户权限标准化

用户权限是重中之重了。用户权限实现标准化,不管是线上环境仍是测试环境,能够避免某些安全问题。能够设定某些用户的只是为了登陆,想要操做必须使用业务帐户或应用帐户。具体的设置能够根据所在公司的规范标准设置。



对于要实现标准化的地方还有不少,好比服务端口的标准化、脚本存放的标准化等等。不管是哪方面的标准化,对实现自动化都是不可缺乏的,由于实现了标准化,实现自动化才成为可能。

以上是笔者的拙见,有不足之处还请斧正。


 

因为我的技术所限有不足之处还请各位指出。能够经过以下方式联系到笔者:

Linux运维开发群   298324302

北京linux运维求职招聘    153677549

相关文章
相关标签/搜索