首页 文章 精选 留言 我的

精选列表

搜索[策略模式],共10009篇文章
优秀的个人博客,低调大师

线上版本灰度发布策略

从接触运维开始,最苦逼的事情就是业务上线,为什么这么说? 就是因为有了很多的大坑队友。不是因为开发的童鞋漏提代码,就是因为测试童鞋线下测试的不到位导致代码扔到线上后出现各种问题,各种404。近期和各位童鞋研究了应对这种现象的解决方案,得到了如下结果: 上线分为如下几种等级:测试发布、预发布、灰度发布、正式发布,下面分来来针对这四种发布介绍下区别。 测试发布:写完程序在线下测试,测试的过程和结果成为测试发布。 预发布:程序经历过测试发布后要把代码在线上部署一套(和生产环境一模一样的环境),使用生产环境的数据库等等应用,测试人员在线上进行测试,测试的过程不影响生产环境使用. 灰度发布:程序经历过预发布后下一步就是灰度发布。使用线上的生产环境进行测试,使用对象是部分客户,这种过程称之为灰度发布。 正式发布:代码经历过上述三种测试后,基本可以确定ok了,就可以进行代码正式发布了。环境使用生产环境,客户是全部客户。 以上讲述了四种发布的区别以及作用,接下来继续说说前几天预发布的过程。 预发布的意思是,我们自己的测试人员使用线上的环境线上的数据进行线上测试,但是还不能影响线上正常用的使用,解决办法如下: 根据公网ip进行反向代理,本部门的公网ip是固定的,那么当客户访问的时候,如果是本部门的公网ip的话,nginx进行方向代理到新代码tomcat上,如果非本部门的公网ip,那么代理到原有tomcat上,拓扑如下: nginx代码:动态请求的规则下面这么写 upstreamjljerp{ server192.168.1.190:8001weight=20max_fails=2fail_timeout=30s; ip_hash; } upstreamjljerp_rc{ server192.168.1.190:8004weight=20max_fails=2fail_timeout=30s; ip_hash; } server{ listen80; server_namejljerp.jinlejia.com; root/var/www/index; indexindex.htmlindex.htm; location/{ proxy_set_headerHOST$host; proxy_set_headerX-Real-IP$remote_addr; proxy_set_headerX-Forwarded-FOR$proxy_add_x_forwarded_for; proxy_connect_timeout600; proxy_read_timeout600; proxy_send_timeout600; #预发布规则,这个地址是部门内部公网地址,当这个地址过来的请求转发到新tomcat上 if($remote_addr~*"202.106.0.20"){ proxy_passhttp://jljerp_rc; } #如果不是本部门ip请求,按照原有规则进行原有生产环境进行转发 proxy_passhttp://jljerp; } error_page500502503504/50x.html; location=/50x.html{ root/usr/share/nginx/html; } } nginx代码:静态请求的规则这么写(换汤不换药) server{ listen80; server_namewww.a.com; root/var/www/a; indexindex.htmlindex.htm; location/{ #预发布规则,如果是本部门的公网的ip,访问这个目录下的地址 if($remote_addr~*"202.106.0.20"){ root/var/www/b; } } #由于字体使用跨域的方式进行的调用,默认浏览器拒绝访问,加上这个location就可以在其他域名下访问这个域名的字体了 location~*\.(eot|ttf|woff|svg|otf|woff2)${ add_headerAccess-Control-Allow-Origin*; } error_page404500502503504/404.html; location=/404.html{ root/usr/share/nginx/html; } } 上述就是整个过程,并非权威,有问题欢迎大家指正

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册