引子 坦白讲,如果一个公司写业务逻辑的工程师在用ansible,很可能说明这个公司的基础设施不够完备。这个工具一般是集成在devops工具中,对小白用户不可见的。 但是一般来说一个快速发展的公司,一段时间内的发展和基础设施关系不大,和业务关系大。比如一个业务发展很好的公司,开始是没有什么自动化运维、人工智能,全靠手工操作。业务发展起来了,一个人操作几千个变更,就看你疼不疼。疼的受不了就不得不去做自动化了。 所以公司在用ansible这样的工具,未必是件坏事。反而说明公司要做的事情很多,这种加速devops的事情还排不上。 而对于工程师来说,用太过智能的工具未必是件好事。比如有人习惯用navicat客户端工具做DDL(建表、删表,改表结构这些)、DML(数据增删改)操作。面试的时候sql写不出来。所以很多大公司很喜欢招聘初创公司背景的人,技术反而更全面,对底层技术了解更深。
概述 运维自动化的应用场景主要有:
Ansible概念 ansible是基于ssh协议的开箱即用运维自动化产品,是一个无主无从架构。 怎么来理解这句话呢?简单理解就是不需要启动任何服务就可以用,只要安装了ansible,就可以跟ssh命令那样的使用,脚本和配置的更改立即生效,因为不是服务所以也没有主从和重启的概念。 Ansible原理 通过 《两个流程链路问题的排查和总结》这篇文章里用到的一个ansible命令来看一下各个模块 ansible -i hosts XX -m shell -a "curl http://XXXX:8080/健康检查接口 --connect-timeout 5" -i Host Inventory是主机清单, 这个选项指定在哪个文件的哪个host或者host分组范围内执行。兼有白名单的作用,增加了安全性。 -m modules 指定模块,除了这里用的shell还有copy、cron 等命令 -a 指定命令的参数。对于shell命令来说整个脚本内容就是参数。 这条命令会通过connections plugins(主要基于ssh协议)向各个主机分发命令,汇总结果。 一个成功的工具产品要经过生存、生长、生态三个阶段。 ansible也不例外,playbooks和plugins模块让用户可以与开发者共建,对产品不断完善和丰富,活跃了社区。 Ansible类配置自动化工具的意义 在网上可以很容易搜索到的使用方法向来不是我写的文档的重点。我们来看一下配置自动化工具的意义。 运维规范的变现步骤: 回到引子部分,我说过如果一个公司写业务逻辑的工程师在用ansible,很可以说明这个公司的基础设施不够完备。因为根据变现步骤,顶多经历了把需求文档化,整理成脚本做工具化。后面还需要做系统化、自动化和智能化来降级人工成本。所以配置自动化是一个基础,请当语文数学来对待。 |
|