mysql灰度更新_灰度发布策略

前景

近期使用了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数量等,如果发现灰度环境的问题,可以及时把用户剔除灰度名单,尽可能减少用户的损失

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
灰度发布引擎的系统架构可以包括以下组件: 1. 负载均衡器:负责将流量分发到不同的灰度版本或环境中,可以使用开源的负载均衡器如Nginx、HAProxy等。 2. 灰度规则管理组件:负责定义和管理灰度规则,包括版本划分、流量比例控制、用户群体识别等。可以使用开源的规则引擎如Drools、Easy Rules等。 3. 监控组件:负责监控系统的运行状态和性能指标,以便及时处理问题和优化系统。可以使用开源的监控工具如Prometheus、Grafana等。 4. 日志记录组件:负责记录系统的操作日志和异常日志,以便追踪和排查问题。可以使用开源的日志管理工具如Logstash、Elasticsearch等。 5. 数据库组件:负责存储灰度规则和版本信息等数据。可以使用开源的关系型数据库如MySQL、PostgreSQL等。 6. 部署组件:负责将不同版本的应用程序部署到不同的环境中,可以使用开源的自动化部署工具如Jenkins、Ansible等。 7. 灰度测试组件:负责对灰度版本进行测试和验证,以确保其稳定性和可用性。可以使用开源的测试工具如JUnit、Selenium等。 8. 安全组件:负责保障系统的安全性,包括身份认证、授权管理、数据加密等。可以使用开源的安全框架如Spring Security、Apache Shiro等。 以上是灰度发布引擎的系统架构主要组件,具体实现需要根据具体业务需求和技术选型进行选择和配置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值