zoukankan      html  css  js  c++  java
  • 灰度发布策略

    前景

    近期使用了k8s,目的主要是为了配置灰度环境,其次是降低服务器运维成本,下面简单介绍下灰度的策略

    解决方案

    1、接口以及网页,最简单粗暴的方法就是直接请求灰度相关的域名

    2、在不更换接口域名的前提下,在请求原有生产环境的接口上带上一个灰度的标记,例如Cookie,通过k8s的路由机制,对请求的数据进行处理,如果遇到带有灰度标记的Cookie,就把这个请求转发到灰度的k8s服务里面

    3、在不更换网页域名的前提下,在正常网页里面,每当用户刷新或者打开网页的时候,先判断此用户是否在灰度环境中,若在灰度环境中,强制加上灰度的标志(即Cookie),然后借由网页的机制进行301重定向,接着重复第2步的流程

    4、定时任务处理的时候加上用户灰度环境的判断,只对当前环境的数据进行处理

    5、消息队列,在发送消息队列的时候也需要对灰度环境进行判断,若是灰度环境的消息,则发送到灰度的队列里面,处理消息也同理

    6、Mysql的binlog日志处理,由于灰度环境跟生产环境是公用一个数据库,此时这个日志信息处理只能跑一个,不能灰度跟生产环境同时跑,可以在代码中加上一个版本号,只有当灰度环境的版本号大于生产环境的,才在灰度环境中开启进程处理binlog日志

    7、app升级(这里只讨论安卓版本的app,iOS比较复杂这里不展开讨论),app端请求版本接口的时候无需带上Cookie,只需要带上用户的ID,接口这边判断用户是否在灰度环境中,是的话则返回灰度环境下最新的版本号

    8、小程序升级,由于小程序升级是在网页段进行升级的,这里类似第3点,判断用户是否在灰度环境中,是的话用灰度环境的小程序模板ID等信息提交小程序审核

    9、做一套可以随时将用户拉入以及剔除灰度名单的功能(可结合redis处理)

    小结

    其实灰度环境的好处挺多的,其中最明显的就是观察用户反馈,即时调整产品的方向,避免因为直接上线导致用户一时半会儿适应不了新系统,导致用户流失。此外还有助于降低上线的成本,如人力成本(一般大版本上线是深更半夜,开发比较疲惫)、降低bug数量等,如果发现灰度环境的问题,可以及时把用户剔除灰度名单,尽可能减少用户的损失

  • 相关阅读:
    selenium学习笔记05-selenium操作from表单
    selenium学习笔记04-webdriver核心方法的属性和使用
    selenium学习笔记03-selenium webdriver工作原理
    selenium学习笔记02-selenium定位的八大方法
    selenium学习笔记01
    微服务质量保证学习笔记(一)
    pytest,setup和teardown
    pytest用例编写规则、执行测试
    速耀达账套备份与恢复(速达二次开发)
    速耀达系统权限设置(速达二次开发)
  • 原文地址:https://www.cnblogs.com/lyc94620/p/11483736.html
Copyright © 2011-2022 走看看