互联网公司开发流程

部署方案

滚动发布

这是最常见的部署模式,一般就是说你一个服务/系统都会部署在多台机器上,部署的时候,要不然是手动依次部署,最low 的比如就是每台服务器上放一个tomcat,每台机器依次停布机 tomcat,然后把新的代码放进去,再重新启动tomcat,各个机器逐渐重启,这就是最low的的滚动发布

手动部署

  1. 备份原来的代码
  2. 将新的代码部署上去

自动化部署

一些自动化工具可以帮助我们自动化部署到机器上,比如Jenkins,它会从你指定的git仓库中拉取相应的代码,然后部署到指定的机器上

无论是手动部署,还是自动化部署,都需要考虑如果部署失败,如何进行版本回退

那么如何来看是否部署成功那?

人工的话,就是去各个机器上看对应的日志就可以

使用jenkins的话,也会有日志打印,部署失败,会有相应提示

灰度发布

灰度发布,指的就是说,不要上线就滚动全部发布到所有机器,一般就是会部署在比如1台机器上,采用新版本,然后切比如10%的流量过去,观察那10%的流量在1台机器上运行-段时间,比如运行个几天时间,观察日志、异常、数据,是否一切正常,如果验证发现全部正常,那么此时就可以全量发布了

全量发布还是采用的滚动发布的模式

蓝绿发布

蓝绿部署的意思是说,你得同时准备两个集群,一个集群放新版本代码,一个集群放老版本版权,然后新版本代码的集群准备好了过后,直接线上流量切到新版本集群上去,跑一段时间来验证,如果发现有问题,回滚就是立马把流量切回老的集群,回滚速度是很快的

总结

在进行一些bug修复,或是改动不大的小版本的话,建议使用灰度发布;

如果是大版本的发版,建议使用蓝绿发布,防止部署失败,大规模服务失效的情况