从一个工程师成长看自动化运维的过程
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从一个工程师成长看自动化运维的过程相关的知识,希望对你有一定的参考价值。
自动化虽然涉及的应用领域很多,但其中存在一般的发展过程。下面以云计算领域的自动化运维场景为例,对自动化的一般发展过程进行讲解。
十多年前,M工程师还是一名刚毕业的计算机专业的学生,和其他同学大多选择研发岗位一样,M工程师刚开始从事的是Java编程,后来因为项目需要,M工程师被转岗到运维岗位,从此开始了自己10多年的运维之路。
1、第一阶段:无序阶段
M工程师是初入职场的初级运维工程师,刚开始公司业务规模小,只有几台服务器,每天的工作就是装机及安装各类基础软件,如mysql、Redis、JDK等。由于M工程师没有工作经验,也缺少前辈指导,每次操作时M工程师都是从百度上查一些安装手册,然后一步步照着去做。刚开始虽然磕磕绊绊,但每次完成任务后,M工程师觉得自己又掌握了新的技术,很有成就感。但是时间一长,M工程师觉得每天做的事情都是重复性工作,更头痛的是当初安装的各类软件缺乏一致性,各类问题的出现让M工程师焦头烂额。
2、第二阶段:标准化阶段
有了一些实践经验后,为了避免重复犯错,M工程师开始将安装方法整理成标准化文档,放到公司的文档库,这样既能节省搜索时间,也能保证安装软件的一致性。这些事情虽然简单,但是极大地节省了时间,M工程师遇到的软件安装问题也越来越少。
具体来说,M工程师做了如下几件事,让运维工作进入了标准化阶段。
- 设备选型标准化:什么应用场景选择什么样的服务器。
- 操作系统安装标准化:版本、内核参数、文件目录、用户属主。
- 软件安装标准化:版本、配置参数、目录、端口全部标准化。
3、第三阶段:自动化阶段
M工程师所在的公司业务发展很快,服务器数量很快增长到上千台,每周交付的机器也有几十台,M工程师的团队也有了其他新同事,在交付工作上,也有了标准流程文档(SOP)。
但是,即使有了标准流程文档,大量的重复工作不但耗费人力,而且工作中的误操作仍然时有发生,难以保证完全一致。在执行中的标准化方法遇到了规模性困难,这时开始考虑落实自动化运维。
具体来说,M工程师做了如下事情,使得运维工作由标准化提升到自动化阶段,解决了工作效率和一致性的问题。
- 调研业内开源的自动化工具,如PXE、SaltStack、Kubernetes等。
- 将标准化的内容由文档修改为程序。
- 根据不同的场景使用不同的自动化工具和方案。
4、第四阶段:平台化(智能化)阶段
时间飞快,10年的时间,M工程师从初级运维工程师成长为了公司的运维负责人,所运维的服务器有数千台,业务数十个。相对业内同行,M工程师在运维自动化方面也取得了比较好的成果:业务的增长并没有带来同比例的人员增长,SLA也能达到99.9%。
随着公司的成长,运维也是朝着技术运营的方向前进,更多的接入业务层的支持。在自动化方面,目前运维自动化的场景是针对具体运维问题的,而不是面向业务需要。例如A业务上线,需要部署以下服务,其中:
- 数据库上需要10台服务器部署MySQL,分别是主—从各5台。
- 缓存使用Redis,部署Codis 3.2共4台服务器。
- 应用服务以Docker方式交付,用Kubernetes管理,共8台服务器。
按照目前的做法,每一步都需要运维工程师通过自动化工具实现。如果能交付给一个自动化平台,在Web系统中输入需求,后台资源池自动调度分配,分配完成后输出结果反馈给运维工程师就可以了。同时,随着业务的发展,根据性能监控曲线能自动实施业务的自动扩容缩容。
此时M工程师所思考的,已经是平台化(智能化)的方案了,这是当前运维领域最为前沿的AIOps所考虑的内容之一。
以上是关于从一个工程师成长看自动化运维的过程的主要内容,如果未能解决你的问题,请参考以下文章