自动化发布介绍
自动化发布可以更好更快的解决企业在日常发布中手动打包、效率慢、发布失败率搞的问题,值得在所有企业进行推广。
随着互联网的飞速发展,企业业务也在快速扩容,企业内部IT系统如何更好更快的支撑业务的发展,成为当前企业IT部门急需考虑的问题。当前Devops也是非常流行的,也了解了Devops的理念,个人决定其框架比较大,涉及部门比较多,比较适合中大型企业或者IT部门人员较多的公司,以上仅个人的意见。
据相关部门的统计中小企业的数量占据了全国企业50%以上(不准确,只是为了说明基数比较大而已),但中小企业的发布还处于人工阶段,效率较低。
本人所在的公司原来是采用人工发布,系统有4个环境,每次上线人工打包发布到线上后无法运行的问题经常出现。原有发布流程如下:开发手动打包-打包文件放到SVN-运维将文件下载到本地-运维将文件上传到服务器-运维手动关闭原有业务系统-更新文件-启动系统,以上可以看到有大量的人工、重复的工作,效率低下都严重影响上线效率。
通过采用Jenkins及Ansible 发布后,生产环境除外,开发代码提交自动触发jenkins打包及ansible发布,仅需要一杯咖啡的时间,开发就完成了除生产环境的发布。生产环境考虑到安全性,需要在Jenkins手动点击。
考虑到以上几点情况,建议如果大家还是采用人工发布的,可以考虑自动化发布,可以提升发布效率,减少所有人的工作。
自动化发布架构
以下为自动化发布的架构图,各个组件介绍如下:
Gitlab:负责存放应用代码;
Jenkins:负责编译打包
Ansible Tower:负责将编译完成的包进行上传、更新、启动;
邮件系统:负责发送发布成功,由于邮件系统的限制实际并未用邮件系统,发布结果是通过钉钉通知。