美文网首页
如何利用cookie实现灰度发布?

如何利用cookie实现灰度发布?

作者: ankerjian | 来源:发表于2017-03-07 21:51 被阅读772次

生产环境

生产环境是直接面对用户的环境。

灰度概念

灰度是介于在内网环境和线上环境中间的一层服务层。灰度属于生产环境中的测试环境。可以让部分用户,去使用所更新代码的所提供的服务,去进行更加有安全性保证的测试。

解决痛点

1.内网无法测试环境

这里举一个比较典型的例子:
1.微信登陆需要安全域名认证。

2.内网无法完全保证环境与线上一致

灰度除代码外,其他环境完全一致。
在极大的可能性下,排除对线上用户服务造成影响。

代码上线流程

一般代码会经过

内网测试 -> 灰度测试 -> 上线生产

在经过内网和灰度的双重保证,可以超大概率保证生产环境不会产生较为严重的错误。而且能够使灰度使用的域名,数据源等保持一致。

以 NGINX 为例

NGINX 是一个比较著名的反响代理服务器,可以根据相关条件对 http 请求进行转发。这里要做的就是,准备两份代码,一份生产目录,一份灰度目录。检测COOKIE标记,如果有我们所做的灰度标记,就把 http 请求转发到灰度代码的目录。

当然

在处理程序当中要有通过GET方法设置 cookie 灰度标记位的相关处理。

就这么简单

下面开始做
nginx.conf
server {
listen 80;

#首先设置生产代码的目录
set $root_dir   "/product_code_dir";
if ($http_cookie ~* "IS\_GRAY=1")
{
    #这里以IS_GRAY标记为例,如果检测到的话,就设置为灰度代码目录
    set $root_dir  "/gray_code_dir";
}

root $root_dir;
index index.html index.htm index.php;

# 域名配置
server_name www.domain-name.com;

尝试寻找文件配置

location / {
    try_files $uri $uri/ =404;
}

这里是NGINX转发给PHP-FPM的配置,可以忽视

location ~ \.php$ {
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    fastcgi_pass unix:/var/run/php/php5.6-fpm.sock;
    fastcgi_index index.php;
    include fastcgi_params;
}

}

##进入灰度
只要 GET 请求带有IS_GRAY=1,经过代码的set_cookie操作就可以进入灰度了!

相关文章

  • 如何利用cookie实现灰度发布?

    生产环境 生产环境是直接面对用户的环境。 灰度概念 灰度是介于在内网环境和线上环境中间的一层服务层。灰度属于生产环...

  • nginx基于cookie灰度发布

    阅读原文: nginx基于cookie灰度发布灰度发布是指在黑与白之间,能够平滑过渡的一种发布方式。AB test...

  • OpenResty 基于 lua-resty-cookie 实现

    openresty 安装 openresty lua-resty-cookie 实现灰度功能

  • Openshift上使用Nginx Pod作灰度发布

    参考文章:使用 Nginx 实现灰度发布 什么是灰度发布 【百度百科】灰度发布(又名金丝雀发布)是指在黑与白之间,...

  • 前端如何实现灰度发布

    前端进行灰度发布,首先需要为用户打上灰度标签和放量策略。 方案1:不同实例上部署不同的应用版本,根据nginx中的...

  • 灰度发布(三)

    这是灰度发布的最后一篇,主要讲述灰度agent是如何实现的。一、Java Agentjava字节码编程技术,是ja...

  • 使用Nginx实现Web应用灰度发布

    阅读原文: 使用Nginx实现Web应用灰度发布 灰度发布是指在黑与白之间,能够实现应用系统平滑过渡的一种独特的发...

  • 灰度发布(二)

    继续上一篇的灰度发布,本文重点讲述kong网关是如何配置灰度发布规则的。一、Kong网关在灰度发布中的重要作用1、...

  • nginx实现灰度发布

    整体思路: nginx收到session带来的cookies_wltx_version变量,然后在map.conf...

  • (十二)实现灰度发布

    在前面实现的功能中,动态路由其实只是拓展了获取路由数据的途径,那么如何去控制路由规则的转发呢?zuul的ZoneA...

网友评论

      本文标题:如何利用cookie实现灰度发布?

      本文链接:https://www.haomeiwen.com/subject/pzdxwttx.html