CTO推出了灰度发布系统,请不要惊慌!

CTO推出了灰度发布系统,请不要惊慌!

灰度发布Internet产品的定义需要快速迭代地开发和启动,并且必须保证质量,以确保新启动的系统一旦出现问题就可以快速控制影响。

因此,有必要设计一种灰度释放系统。

灰色发布系统的作用是根据配置将用户流量定向到新启动的系统,以快速验证新功能,一旦出现问题,可以立即对其进行修复。

简而言之,它是一套A / B测试系统。

只要错误不是致命的,就允许灰度版本与错误一起联机,当然,如果该错误是未知的,如果您知道它,您将快速更改简单的灰度发布系统的设计。

上图显示了简单灰度发布系统的简单灰度体系结构。

必要的组件如下:策略的配置平台,存储灰度策略灰度功能的执行程序的注册中心,注册的服务带有上述三个组成部分的ip / Port / name / version ,它可以视为完整的灰度。

平台的灰度策略必须具有灰度策略。

灰度策略的常用方法有:基于请求头的流量分段,基于Cookie的流量分段,基于请求参数的流量分段示例:根据所携带的请求如果用户的uid为模,则为灰度范围是百分之一,则uid取模范围是100,模数是0以访问新版本的服务,模数是1到99以访问旧版本的服务。

灰色释放策略分为两类,单一策略和组合策略。

单一策略:例如,基于用户的uid,令牌和ip。

组合策略:多个服务同时显示为灰色。

例如,我有三个A / B / C服务。

,A和C需要同时变灰,而B则不必变灰。

此时,需要一个标签字段。

具体实现如下。

在上述简单的灰度发布系统体系结构中描述了灰度发布的具体执行控制。

可以理解,灰度发布服务分为上游和下游服务。

上游服务是执行灰度策略的特定程序。

该服务可以是nginx或微服务体系结构中的网关层/业务逻辑层。

让我们分析不同的上游服务以及如何登陆Nginx。

如果上游服务是nginx,则nginx需要通过Lua扩展nginx来实现灰度策略的配置和转发,因为nginx本身没有通过lua扩展实现灰度策略的实现。

实施了灰度策略,但是问题又来了,nginx本身没有灰度策略来接收配置管理平台,这时我该怎么办?解决方案:在本地部署代理(您需要自己开发),接收服务配置管理平台发布的灰度策略,更新nginx配置,并正常重启Nginx服务网关层/业务逻辑层/数据访问层。

仅需要集成配置管理平台客户端SDK会接收服务配置管理平台发布的灰度策略。

可以通过集成的SDK执行灰度策略,以发布复杂的灰度场景。

这是两个稍微更复杂的灰度发布方案的两个示例。

灰阶策略假设基于uid模数为灰阶的百分之一的用户,让我们看看如何实现它。

场景1:在呼叫链上同时升级多个服务的功能涉及多个服务更改。

网关层和数据访问层为灰色,业务逻辑层保持不变。

此时应如何执行灰度?解决方案:在请求新版本的网关层之后,所有这些都被标记为T,并在业务逻辑层中根据标记T进行转发。

所有对标签T的请求都转发到新版本的数据访问层服务,而所有没有标签T的请求都转发到旧的版本数据访问层。

方案2:涉及数据的灰度服务涉及数据的灰度服务。

该数据库一定会使用。

使用数据库时,使用数据库前后的表字段不一致。

我的旧版本是三个A / B / C字段,新版本是A / B / C / D四个字段。

目前,不能将新版本的灰度级修改为数据库的旧版本。

这时,您需要将数据复制到d

深圳市相信过程科技有限公司❤舒先生❤欢迎您的咨询