获取代码===>编译java代码===>配置文件放入密码文件修改===>打包====>拷贝到目标服务器===>集群中移除节点===>解压===>放入部署目录===>拷贝差异文件===>重启==>测试 ===>加入集群
第五步:scp服务器上面需要开启对其他服务器的sshkey验证不需要密码
第六步移除目标服务器在集群nginx注释服务器地址,/nginx/sbin/nginx -t reload 一下就可以
haproxy执行socket命令关闭节点,不需要改配置文件
所有的web服务都应该使用普通用户,不能用root启动,入侵后麻烦很大.
所有的web服务除了负载均衡都不监听80端口,除了负载均衡
负载均衡使用suid执行启动80端口,普通用户启动.由于普通用户无法启动80端口,用suid才能启动
4.代码上线
1. 测试环境 2. 固定的上线时间以及次数 3. 上线要做好失败准备 -- 回滚(mv、软连接)
AB分组上线
如果是php,直接备份,推送代码 如果是java,python 直接备份,推送代码,再重启生效 java重启比较慢
灰度发布
灰度发布(又名金丝雀发布)是指在黑与白之间,能够平滑过渡的一种发布方式。在其上可以进行A/B testing,即让一部分用户继续用产品特性A,一部分用户开始用产品特性B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。 灰度期:灰度发布开始到结束期间的这一段时间,称为灰度期。
用户的IP地址判断
智能DNS调度
www.baidu.com
1.1.1.1 老官网
2.2.2.2 新官网
223.5.5.5 www.baidu.com 1.1.1.1 202.106.0.20 www.baidu.com 2.2.2.2
智能DNS 判断DNS的IP给它返回不同结果