云端自动化运维(云端自动化运维岗位职责)

本文作者:驻云科技高级云运维工程师,赵灿灿

对于运维工作来说,我们运维工作的本身是可管理,可重复,可预测的,基于这样的理念,我们可以按照一定的规律,在基本运维的过程中实现自动化。

运维自动化基本上可以这样去理解:可以实现在成千上万台服务器上做到批量执行命令,根据不同业务特性进行配置集中化管理、分发文件、采集服务器数据、操作系统基础及软件包管理等,这就是所谓的自动化运维。

闲话不多说,下面笔者就以自己最近的一个项目来谈谈在云端上的自动化运维,以及自动化运维的带来的价值体现。

接手国内某大型旅游网站之前,它的几十台服务是他们自己内部管理,一个字“乱”,两个字“很乱”!具体表象:

系统层面:

1、系统版本不统一。

2、系统目录结构不统一。

3、服务器管理分散。

应用层面:

1、应用名称不规范。

2、环境部署不统一。

3、应用发布流程不规范。

4、人肉发布,工作量大、效率低。

监控层面:

1、没有一个迅速有效的监控平台。

2、业务中断故障排查难度大、耗时。

这个就大大增加后续的监控管理难度,还有对以后应用方面的管理,内容发布,数据的采集都会有很大的影响。最明显就体现发布这一块,在一个应用众多,部署不规范,服务器无章化的管理,发布无疑是一个痛苦的过程,每次的通宵的发布,无数次的上传war包、发布、测试、回滚、再上传、再发布、再测试、再回滚,严重的影响工作效率,消耗大量的人工,而且效率极低,影响用户的体验度。最重要的是经常出现错误,无数个梦中被电话喊起!结合现存的诸多痛点,着手从系统层面、应用层面、监控层面整体规划改造。

1、服务器统一化:

从系统版本的选择、数据盘目录挂载、系统名称、系统加固、系统优化、操作审计、等os层面的统一化,为后期的运维标准化和可集中化管理做准备。

2、应用部署统一化:

应用部署细化到目录位置、权限控制、日志分割、端口规划、代码路径、回滚方式、内存大小、连接数等各项配置做到统一化、根据业务需求做单独的差异化,为后期的应用部署、发布、回滚、检测做铺垫。

3、监控自动化:

Zabbix通过端口的自动发现新部署的应用,使用预定义好的监控规则自动监控,针对一个应用实现了40个items项监控。做到监控覆盖全面无盲区,故障定位准确、及时,给运维排除故障提供有力的参考。

系统按照规范部署完成之后,采用saltstack做集中化管理,通过saltstack可以对后端的服务器做各种的更改和集中化的操作,极大的提高了运维效率。稳定安全的系统加上合理的架构为后期的应用运维做准备。应用的运维采用saltstack加shell脚本一起完成。部署、监控、发布、回滚、重启、检查等脚本供saltstack远程调用,实现saltstack集中管理服务器和应用的各项秒级操作,全面彻底解决前期的关于系统和应用发布的头疼问题。

前期的架构虽然运维方面和应用的发布方面得到了解决,但是还没有实现平台化的持续发布,为此我们再次整改结合jenkins、maven、git、gradle、sonar、rundeck、蒲公英等工具实现:

1)实现 Java 工程的自动化构建、自动化测试、发布;

2)实现 Node.js 工程的自动化构建、自动化测试、发布;

3)实现 IOS 工程的自动化构建、自动化测试、发布;

4)实现 Android 工程的自动化构建、自动化测试、发布渠道包(蒲公英)。


对于这些工具也就不罗嗦介绍了,感兴趣的同学可以查找相关的一些文档,当然也可以关注一下我们“架构云专家频道”的微信,跟我们运维同志深入的探讨一下!

原文链接:,转发请注明来源!