灰度发布系统的实现

标签: 架构 | 发表时间:2016-02-28 18:01 | 作者:那谁
出处:http://www.codedump.info

灰度发布,已经不是一个很新的概念了.一个产品,如果需要快速迭代开发上线,又要保证质量,保证刚上线的系统,一旦出现问题那么可以很快的控制影响面,就需要设计一套灰度发布系统.

灰度发布系统的作用在于,可以根据自己的配置,来将用户的流量导到新上线的系统上,来快速验证新的功能修改,而一旦出问题,也可以马上的恢复,简单的说,就是一套A/BTest系统.

它大抵的架构,应该是类似这样的:

其中分为几个部分:

  1. 接入层,接入客户端请求,根据下发的配置将符合条件的请求转发到新旧系统上.
  2. 配置管理后台,这个后台可以配置不同的转发策略给接入层.
  3. 新旧两种处理客户端请求的业务服务器.

关于接入策略的设计上,从协议层来说,需要从一开始就设计是根据哪些参数来进行转发的,而且这些参数最好跟具体的协议体内容分开,这样减少接入层对协议的解析.举个例子,如果客户端的请求是走HTTP协议的,那么将这些参数放在HEADER部分就好了,接入层不需要去具体解析body部分的数据就拿到了转发策略需要的参数.当然,放在HEADER中的数据,因为没有了加密性,又是需要考虑的另一个问题.

当然,最简单粗暴的转发策略,可以根据客户端ip地址来做,这是比较粗略的一个划分策略.

同样的,新旧服务器要对新旧客户端的协议兼容,也是能做到灰度发布的根本,如何设计一个扩展性好的应用协议,这一点就不在这里考虑了.

接下来,还需要满足如果管理后台下发了新的转发策略,接入层应该是可以马上感知到然后切换到这个新的策略来的.有好些不同的做法.假如接入层是Nginx这样的服务器,使用者只是在上面写了自己的Nginx模块来实现策略的转发,那么可能还需要在每台接入服务器上部署一个Agent的服务,主要用于:

  1. 接收管理后台下发的策略,更新Nginx配置,然后优雅重启Nginx服务.
  2. 定时检查本台机器的Nginx服务的状态,进行上报.

如果接入层不是Nginx这样的服务,那么也可以做一个pub-sub模型的订阅者,用ZK或者Redis都可以,订阅管理后台下发的服务进行处理即可.

相关 [灰度 系统] 推荐:

灰度发布系统的实现

- - codedump
灰度发布,已经不是一个很新的概念了.一个产品,如果需要快速迭代开发上线,又要保证质量,保证刚上线的系统,一旦出现问题那么可以很快的控制影响面,就需要设计一套灰度发布系统.. 灰度发布系统的作用在于,可以根据自己的配置,来将用户的流量导到新上线的系统上,来快速验证新的功能修改,而一旦出问题,也可以马上的恢复,简单的说,就是一套A/BTest系统..

Nginx+KV db进行AB灰度测试

- - IT技术博客大学习
周6参加华东运维大会,听了人家淘宝用nginx的一些场景,其中AB的灰度测试可能适用场景会比较普遍,当然大会上,并没有详细讨论实现. 大概需求是: 网站类业务在更新new feature时,并不想让全量用户看到,可以针对地区性用户开放此feature. 大概构思了一个方式,使用 nginx+redis/memcache+IP库实现,简单的流程图如下:.

nginx+lua+memcache实现灰度发布

- - 开源软件 - ITeye博客
灰度发布在百度百科中解释:. 灰度发布是指在黑与白之间,能够平滑过渡的一种发布方式. AB test就是一种灰度发布方式,让一部分用户继续用A,一部分用户开始用B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面 来. 灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度.

中国互联网走在“灰度”上

- - 互联网 - ITeye博客
中国互联网走在“灰度”上(转). 第一次听说灰度这个词,是任正非说新型管理者所需要的素质. 似乎其他人包括马云也用不同的语言说过类似的意思. 灰度这个词所包含的意义和视野是广远的. 要理解这个词,可能同样要用“灰度”的心态. 灰度的反面,是规规矩矩,清清楚楚,泾渭分明,严谨条理,是决不妥协,不转弯,认死理.

用HTML5创建超酷图像灰度渐变效果

- Allen - 译言-电脑/网络/数码科技
来源HTML5 Grayscale Image Hover. 曾几何时,网站上显示的灰度图像必须手动进行转换. 现在使用HTML5画布,图像可以被巧妙的转换为灰色,而不必使用图像编辑软件. 我下面有一个示例,展示如何使用HTML5和jQuery动态的将彩色图像转换为灰色. 贡献者:感谢达西·克拉克(我在Themify的合伙人)贡献jQuery和Javascript代码.

马化腾:灰度法则的七个维度

- - 产品市场 - UCD大社区
从去年合作伙伴大会到现在,已经过去了一年. 这一年里,我们大家一起向一个开放的、没有疆界的互联网新生态迈出了第一步. 大量的创业伙伴在腾讯开放平台上涌现出来,其中不少团队还取得了初步成功. 看到这些新的现象,我既感到高兴,也体会到责任重大. 如果说以前腾讯做得好不好只关系到自己员工和股东,现在则关系到大家,腾讯还必须要促进平台繁荣、与广大合作伙伴一起成功.

玩玩图形图像——第一篇:图片灰度化

- - 博客园_首页
    去年买了本数字图像处理算法,一直都没有看,前几个星期都一直忙着工作上的活,趁这阶段悠闲点,玩一玩图片处理,这玩意.    以前我们在做Web上的用户注册时,通常都会做一个验证码,大家都知道用来防止暴力注册的,当然提到验证码大家都知道C#里. 面有一个Bitmap类专门用来处理图片的,好吧,这一篇我们从最简单的“图片灰度化”说起.

壳系统

- Vernsu - It Talks-魏武挥的blog
经常有人被我问到“你用什么浏览器”时的答案是:傲游啦360啦,但事实上,这些都不是真正的浏览器,从技术角度讲,充其量只是在IE浏览器上加一个壳罢了. 在国外,壳浏览器是以“皮肤”的形式存在,纯属为了美化浏览器而用. 但在中国,壳浏览器成了一门生意. 奇虎的主要收入来源并非来自那个由于一场商战而赫赫有名的安全卫士,而是来自于360浏览器(它有两个版本,分别以IE和Chrome为内核).

秒杀系统

- - 开源软件 - ITeye博客
秒杀系统架构分析与实战. (反馈非常好的文章,推荐). (1)查询商品;(2)创建订单;(3)扣减库存;(4)更新订单;(5)付款;(6)卖家发货. (1)低廉价格;(2)大幅推广;(3)瞬时售空;(4)一般是定时上架;(5)时间短、瞬时并发量高;. 假设某网站秒杀活动只推出一件商品,预计会吸引1万人参加活动,也就说最大并发请求数是10000,秒杀系统需要面对的技术挑战有:.

Ext文件系统

- Haides - 博客园-首页原创精华区
  虽然从Ext2到Ext4,找数据的方式发生了变化,但是,磁盘的布局还是非常相似的. 其实这个东西也不需要变化,因为现在也没什么特别巧妙的方式,而且磁盘的吞吐量、效率的瓶颈也不在这里. 当然,这里排除那些根据自身文件特点设计的数据库,毕竟还是为了支持通用文件.   Boot在第一个块,放的应该是引导程序,超级块就放在了第二个块上,如果不是可以在mount的时候通过参数sb来设置.