目录

几种发布的区别

目录

发布分为以下几种:

  • 测试发布:开发完成后在线下进行测试,测试的过程和结果成为测试发布;
  • 预发布:程序经历过测试发布后要把代码在线上部署一套(和生产环境一模一样的环境),使用生产环境的数据库等等应用,测试人员在线上进行测试,测试的过程不影响生产环境使用;
  • 灰度发布:程序经历过预发布后下一步就是灰度发布。使用线上的生产环境进行测试,使用对象是部分客户,这种过程称之为灰度发布;
  • 正式发布:代码经历过上述三种测试后,基本可以确定ok了,就可以进行代码正式发布了。环境使用生产环境,客户是全部客户。

为什么做灰度发布?为了降低风险

  • 可灵活选择用户参与产品测试;
  • 规避一定的发布风险,降低产品迭代升级所影响的范围;
  • 快速获取用户的反馈意见,完善产品功能,提升产品质量;
  • 如有问题,避免停服发布给用户带来不便;
  • 具有容灾能力:降低全量发布引起的服务器崩溃等风险,逐步发布产品,逐步控制服务器压力;

灰度发布的具体实施法一:利用nginx配置负载控制;法二:使用http头信息判断+权重(灰度值)。http请求传输过程中,会自动带上User-Agent,Host,Referer,Cookie等信息,可以得到用户的ip地址,cookie中查询version值;法三:使用灰度发布工具。

什么是服务降级服务降级,当服务器压力剧增的情况下,根据当前业务情况及流量对一些服务和页面有策略的降级,以此释放服务器资源以保证核心任务的正常运行。降级的方式: (1)延迟服务:比如发表了评论,重要服务,比如在文章中显示正常,但是延迟给用户增加积分,只是放到一个缓存中,等服务平稳之后再执行。 (2)在粒度范围内关闭服务(片段降级或服务功能降级):比如关闭相关文章的推荐,直接关闭推荐区 (3)页面异步请求降级:比如商品详情页上有推荐信息/配送至等异步加载的请求,如果这些信息响应慢或者后端服务有问题,可以进行降级; (3)页面跳转(页面降级):比如可以有相关文章推荐,但是更多的页面则直接跳转到某一个地址 (4)写降级:比如秒杀抢购,我们可以只进行Cache的更新,然后异步同步扣减库存到DB,保证最终一致性即可,此时可以将DB降级为Cache。 (5)读降级:比如多级缓存模式,如果后端服务有问题,可以降级为只读缓存,这种方式适用于对读一致性要求不高的场景;