详解自动化运维平台的构建过程详解自动化运维平台的构建过程
2013年,我加入了聚美优品,当时成都团队仅有四五个人,负责一些辅助系统的日常运维,比如查查日志等。随着公司规模
逐渐的扩大,一些重要的业务往成都迁移,这对成都团队是一个非常大的挑战。业务部署最开始是手工的,我们逐渐觉得应该
有一个平台来满足我们的工作,所以我们打造了一个运维平台。
本文将围绕平台里有关自动化的东西做一个介绍,当然我们是一个小团队,不足的地方请大家指正。
传统运维带来的坑
说到运维自动化,前两年还是比较炙手可热的话题。先说一下传统运维的痛点和运维自动化的意义。我们日常运维工作是比较
繁琐的,一些研发同学会经常让我们帮他们到服务器上查一下日志、或者是说今天上线一个东西陪他们加一下班部署下环境。
这些琐事的事情充斥在我们的大部分工作,导致整个运维的部门产出不高。
还有一个关于标准的问题,这个问题让我们吃了很大的亏,早期聚美内部因为部署习惯千差万别,导致一些项目不可维护,谁
去动,谁就死。2014年北京那边负责订单的同事离职,把订单系统的运维工作交接到成都这边来,我们当时面临“双十一”的上
线,我们经常两三个通宵的搞,相当痛苦的。传统运维模式还有会带来效率的问题。到服务器上执行命令和部署程序的效率很
低,并且非常容易出错,出错之后也不太好排查问题,浪费很多的时间。效率问题就引申出成本的问题,我们云服务器是从提
供商那里购买的,需要花很多的时间准备运行环境、上下线,这对公司来说是不小的开支。
我们希望按点下班,陪陪家人什么的。我们运维工程师有一个习惯,电脑喜欢用多个显示器,窗口管理器也喜欢使用平铺的,
这样子看上来好象挺牛,但是做的是很杂的一些工作,没什么效益。我们做自动化运维平台的话,就能够把日常遇到的这些个
问题给解决掉。
运维自动化的演进
现在说一下运维自动化的演进过程:一开始并没有专门的工具为我们做这些事情;后来逐渐有了运维自动化的一些工具,比如
说Bcfg2、Puppet、SaltStack等;最后打造出一个运维自动化的平台。
图1 运维自动化的演进过程
说到工具,确实为我们提供一些提高效率的方法,但还给我们带来了一些其他的问题,比如聚美早期时候采用Bcfg2+Fabric
作为服务器部署的工具,由一两个核心的运维负责到主控的机器上采用命令行的方式执行操作,这时效率同样是很低的,而且
随着运维工作量的增多,所有的工作都要丢到一两个人的身上,就很不方便。但如果把权限开放出来,对运维操作的权限没有
任何限制也不利于审计。
还有一个问题,Fabric执行时执行输出刷屏不好定位问题,比如说执行20台,可能有19台在真正执行,有1台没有执行,输出
内容就一闪而过,没有很好的反馈,这时我们将机器上线就会出错。我们需要用平台把这个问题给规避掉。
资产系统是运维自动化的基石