【技术干货】云端自动化运维

优采云 发布时间: 2020-08-09 19:13

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

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

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

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

  系统层面:

  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工程的自动化建立、自动化测试、发布渠道包(蒲公英)

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线