自动化运维是指将日常运维中大量的重复性工作,小到简单的日常检查、配置变更和软件安装,大到整个变更流程的组织调度,由过去的手工执行转为自动化操作,从而减少乃至消除运维中的延迟,实现“零延时”的运维。在上百台服务器及多种业务架构中,自动化运维尤为重要,成为运维岗位主要核心竞争力。
维护几十台云主机,部署几套SpringCloud微服务项目,目前发布还处于半自动化状态,开发自己出包,运维去上线,每次升级都需要花费好几个小时。平时的工作60%是项目部署、上线及技术支持,40%是处理问题及其他琐碎的事。面对这么多问题,如何在低成本情况下实现自动化运维?
实施大致分为以下步骤:使用Ansible批量管理机器、配置、部署等,一切运维工作尽可能自动化完成;使用Gitlab作为项目代码版本管理系统;使用Jenkins Pipline构建微服务发布平台,实现自动编译打包、结合Ansible实现项目升级,流水线式管理应用生命周期;监控的重要性不言而喻,也是第一时间要做的,采用主流监控系统Prometheus+Grafana;最后将所有微服务日志采集,分析出有用的数据,并且有利于故障排查及问题追溯。
随着公司规模的增长,业务越来越复杂,运维的场景越来越多,对运维自动化的要求也越来越高。想要有能力完成这套运维自动化体系,需要掌握涉及技术的核心知识,并且能够高效的将他们集成在一起,才能发挥其最大作用。