人工部署
现在企业的部署方式主要分为,人工手动部署、蓝绿部署和专业的持续发布和持续集成。其中人工部署最为原始,该部署主要是由人工主导,在系统使用不高的时候进行停机部署。工作的第一家公司用的是这种方式进行系统的部署。这种部署没什么优点,就是有点费人,每当项目上线的时候,开发人员、测试人员都得熬到12点,等系统没人用的时候进行停机部署。有时候部署不那么顺利的时候通常会折腾到2-3点,当然也会出现搞了一夜也没有上线成功的,这种就比较难受了,遇到这种 情况整天熬着能不秃么
蓝绿部署
相较于人工部署,蓝绿部署就好很多了。目前的公司是采用这种方式,终于摆脱了熬夜发版上线的魔咒。这种部署也确实 比较方便省事呢,全天二十四小时,想什么时候上线都可以,压根不用考虑用户的体验问题,因为系统把用户的请求管理的非常有序,不会因为你的部署而受到影响。
系统环境
阿里云SLB+2台nginx转发+2组系统
1.当发版上线的时候,会通过阿里云提供的api接口,会将负载均衡的全部请求只转发到其中的一台nginx服务器上。此时就把2组系统中的其中一套给剥离出来,后续的请求也都不会被接收
2.通过zabbix去获取iis的访问连接数,当连接数大于0的时候就等待重试,直到没有用户连接时就部署该组下边对应的站点(不会干扰用户的正常使用,不用等到半夜12点再发布)
3.当第一组部署完之后,再通过接口将负载均衡的全部请求转发到已经上线的这台nginx上,这时候用户访问到的就是新上线的代码。
4.通过同样的方式去发布第二组系统
5.最后将负载均衡还原到原来的配置