本文转载自蓝绿部署.金丝雀发布(灰度发布).A/B测试的准确定义 概述 蓝绿部署.A/B测试.金丝雀发布,以及灰度发布.流量切分等,经常被混为一谈,影响沟通效率. 根本原因是这些名词经常出现,人们耳熟能详能够熟练地谈起,对这些术语的理解却没有达成一致. 下面是从Blue-green Deployments, A/B Testing, and Canary Releases中整理出来的定义. 蓝绿部署 蓝绿部署的目的是减少发布时的中断时间.能够快速撤回发布. It's basically a te…
前言:  AppStore 发布应用方式除了自动和手动,如今添加了分阶段发布(灰度发布).目的很明确,降低新版本骤然上升的bug率,不能挽回,只能发布新版本的风险.也也是针对禁止使用热修复,推出的相对合理的解决方案吧.来大家一起学习一下. 说明: 好多人觉得分阶段发布会不会影响发布更新周期? 这里,苹果也有很严谨的解释说明: 通过自动更新的分阶段发布,您可以在 7 天内依序向已打开自动更新的用户发布此更新.请注意,所有用户仍可从 App Store 手动更新至此版本.您可最多暂停分阶段发布 30…
Istio为用户提供基于微服务的流量治理能力.Istio允许用户按照标准制定一套流量分发规则,并且无侵入的下发到实例中,平滑稳定的实现灰度发布功能. 基于华为云的Istio服务网格技术,使得灰度发布全流程自动化管理: 灰度版本一键部署,流量切换一键生效 配置式灰度策略,支持流量比例.请求内容(Cookie.OS.浏览器等).源IP 一站式健康.性能.流量监控,实现灰度发布过程量化.智能化.可视化 Istio服务网格为应用治理提供的灰度发布功能,稳定高效地推动企业应用的迭代升级.用户无需使用繁琐的…
Istio为用户提供基于微服务的流量治理能力.Istio允许用户按照标准制定一套流量分发规则,并且无侵入的下发到实例中,平滑稳定的实现灰度发布功能. 基于华为云的Istio服务网格技术,使得灰度发布全流程自动化管理: • 灰度版本一键部署,流量切换一键生效 • 配置式灰度策略,支持流量比例.请求内容(Cookie.OS.浏览器等).源IP • 一站式健康.性能.流量监控,实现灰度发布过程量化.智能化.可视化 Istio服务网格为应用治理提供的灰度发布功能,稳定高效地推动企业应用的迭代升级.用户无…
最近看到Canary发布,一时没有反应过来是什么,一查才发现就是鼎鼎有名的金丝雀发布,发现经常一起出现的还有灰度发布.蓝绿部署.滚动部署.A/B测试,故一起学习一下这几个概念. 1. 蓝绿部署 目的:减少发布时的中断时间.能够快速撤回发布 蓝绿部署中,一共有两套系统:一套正在提供服务的系统,标记为"绿色":另一套是准备发布的系统,标记为"蓝色".两套系统都是功能完善的,并且正在运行的系统,只是系统版本和对外服务情况不同. 蓝色系统作用:用来做发布前测试,测试过程中发…
出处:https://www.baidu.com/link?url=QjboallwNm_jxcL3fHG57wEakiBfAs_3-TChTGu1eBXstlHEsGBc-NDA7AKTqsiroBx9a8OMoITgM5mbKAoiSqwMCLj5LzrjcAew2sBt9zO&wd=&eqid=91b4282c0000c567000000045be3a121 在有关微服务.DevOps.Cloud-native.系统部署等的讨论中,蓝绿部署.A/B 测试.灰度发布.滚动发布.红黑部署…
过去的10多年里,很多大公司都在使用蓝绿部署,安全.可靠是这种部署方式的特点.蓝绿部署虽然算不上”Sliver Bullet“,但确实很实用.在有关于“微服务”.“DevOps”.“Cloud-native”的讨论中,蓝绿部署.A/B测试.灰度发布,这三种部署方式往往同时出镜. 那么问题来了,蓝绿部署.A/B测试.灰度发布,这三者之间究竟有何不同? A/B测试 AB测试是为Web或App界面或流程制作两个(A/B)或多个(A/B/n)版本,在同一时间维度,分别让组成成分相同(相似)的访客群组(目…
蓝绿发布.金丝雀发布(灰度发布).AB测试 首先,了解下这几种发布方式的基础概念. 目前常见的发布策略有蓝绿发布.金丝雀发布(灰度发布).AB测试这几种,在国内的开发者中,对这几个概念有独立的理解.蓝绿发布通常被大家成为热部署:金丝雀发布在国内的名头完全被他的变种发布方式盖过了,主要是灰度发布与AB测试,下面来详细的为大家解释一下他们之间的异同. 蓝绿发布 在发布的过程中用户无感知服务的重启,通常情况下是通过新旧版本并存的方式实现,也就是说在发布的流程中,新的版本和旧的版本是相互热备的,通过切换…
为什么需要灰度发布 灰度发布(又名金丝雀发布)是指在黑与白之间,能够平滑过渡的一种发布方式.在其上可以进行A/B testing,即让一部分用户继续用产品特性A,一部分用户开始用产品特性B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来. 总结下一些应用场景: 微服务依赖很多组件,需要在实际环境验证 部署新功能有风险,然后可以通过导流一小部分用户实际使用,来减小风险 让特定的用户访问新版本,比如部署一个版本,只让测试使用 A/B Testing,部署两个版本,进行版本…
实战场景 - 灰度发布 灰度发布的作用:按照一定的关系区别,分部分的代码进行上线,使代码的发布能平滑过渡上线实现方式: 1.用户的信息cookie等信息区别 2.根据用户的IP地址 安装memcached:yum -y install memcached 准备好两个tomcat,9090代表生产环境,8080代表预发布环境 为避免冲突,修改tomcat9090的端口号 这里分别在同个tomcat/webapp/ROOT/下放了同样内容的jsp文件 把8080下的jsp问价内容改一下区别于9090…
https://www.cnblogs.com/apanly/p/8784096.html 最终,我选择了 GraphQL 作为企业 API 网关 蓝 / 绿部署(Blue/Green) 金丝雀发布(Canary Release) 功能标记(Feature Flagging) https://mp.weixin.qq.com/s?src=11&timestamp=1594306341&ver=2450&signature=-EfaAfz6pEqiCpHQZjTjGnyJatA156…
上篇文章介绍了 Contour 分布式架构的工作原理,顺便简单介绍了下 IngressRoute 的使用方式.本文将探讨 IngressRoute 更高级的用法,其中级联功能是重点. 1. IngressRoute 大入门 上篇文章在 examples/example-workload 目录下创建了一个示例应用,我们来回顾一下它的 IngressRoute 配置: apiVersion: contour.heptio.com/v1beta1 kind: IngressRoute metadata…
渐进式交付是持续交付的下一步, 它将新版本部署到用户的一个子集,并在将其滚动到全部用户之前对其正确性和性能进行评估, 如果不匹配某些关键指标,则进行回滚. 这里有一些有趣的项目,使得渐进式交付在 Kubernetes 中变得更简单. 我将使用一个 Jenkins X 示例项目 对它们之中的三个进行讨论:Shipper.Istio 以及 Flagger. Shipper shipper 是来自 booking.com 的一个项目, 它对 Kubernetes 进行了扩展,添加了复杂的部署策略和多集…
前言 软件世界比以往任何时候都更快.为了保持竞争力,需要尽快推出新的软件版本,而不会中断活跃用户访问,影响用户体验.越来越多企业已将其应用迁移到 Kubernetes. 在 Kubernetes 中有几种不同的方式发布应用,所以为了让应用在升级期间依然平稳提供服务,选择一个正确的发布策略就非常重要了,本篇文章将讲解在 Kubernetes 使用蓝绿更新的方式更新镜像. 原理 蓝绿发布是版本 1 与版本 2 会同时存在,通过控制 Service 来决定使用具体哪一个版本,也称为红黑部署.蓝绿发布与…
内容转自https://blog.csdn.net/jj_tyro/article/details/80136316, 并不断补充,感谢作者. 1.蓝绿部署 蓝绿部署实现的是全流量切换,适合于在测试完部署的服务新版本后,最少时间将流量切换到新的服务版本. 切换路由带来的问题是,如果一个请求尚未完成,能否实现graceful switch 针对服务生成Route oc expose service serviceA --name=service apiVersion: route.openshif…
作者 | 扬少 背景 目前,业界已经总结出了几种常见的服务发布策略来解决版本升级过程中带来的流量有损问题.本文首先会对这些普遍的发布策略进行简单的原理解析,最后结合阿里云的云原生网关对这些发布策略进行实践. 发布策略 被业界广泛采用的服务发布策略包括蓝绿发布.A/B 测试以及金丝雀发布. 1.蓝绿发布 蓝绿发布需要对服务的新版本进行冗余部署,一般新版本的机器规格和数量与旧版本保持一致,相当于该服务有两套完全相同的部署环境,只不过此时只有旧版本在对外提供服务,新版本作为热备.当服务进行版本升级时,…
istio1.0 实现蓝绿发布 环境: 192.168.0.91 master 192.168.0.92 node 第一步:安装k8s集群,参照:https://www.cnblogs.com/effortsing/p/10312081.html 第二步:安装 istio1.0 参照:https://www.cnblogs.com/effortsing/p/10603392.html 第三步:部署同一个应用的两个版本 我们构建了简单的基于Nginx的Docker镜像来作为应用案例:janakir…
概述 如何在腾讯云 Kubernetes 集群实现蓝绿发布和灰度发布?通常要向集群额外部署其它开源工具来实现,比如 Nginx Ingress,Traefik 等,或者让业务上 Service Mesh(服务网格),利用服务网格的能力来实现.这些方案多多少少都是需要一点点门槛的,如果蓝绿发布或灰度发布的需求不复杂,同时不希望让集群引入更多的组件或复杂的用法,可以考虑使用本文的简单方案,利用 Kubernetes 原生的特性以及腾讯云 TKE/EKS 集群自带的 LB 插件实现简单的蓝绿发布和灰度…
蓝绿发布原理 蓝绿发布本质上是希望能优雅无误的迭代应用,以便于使应用平稳提供服务.通常是不停老版本的同时对新版本进行先发布,然后确认无误后进行流量切换,即并行部署. Kubernetes中可以通过deployment来部署一个蓝发布,然后通过控制service,来决定使用的版本.即通过label selector 将流量转发至对应的版本. 蓝绿发布实践 构建环境 基础Kubernetes环境 需要部署一个处于健壮状态的Kubernetes,部署Kubernetes可参考 Kubernetes_v…
文章目录 1. spring-boot-devtools 实现热部署 2. Spring Loaded 实现热部署 3. 模板文件热部署 4. 源代码 Spring Boot 支持页面与类文件的热部署. spring-boot-devtools 实现热部署 spring-boot-devtools 最重要的功能就是热部署.它会监听 classpath 下的文件变动,并且会立即重启应用. <dependency> <groupId>org.springframework.boot&l…
iOS 9应用开发教程之使用开关滑块控件以及滚动部署视图 使用ios9中的开关.滑块控件 开关和滑块也是用于和用户进行交互的控件.本节将主要讲解这两种控件. ios9开关 开关控件常用来控制某个功能的开发状态,如蓝牙.GPS.WiFI信号等.如图2.29所示就是一个在WiFI中的开关.开关控件一般使用UISwitch来实现.   图2.29  开关 [示例2-10]以下将使用开发控件实现手电筒的功能.代码如下: import UIKit class ViewController: UIViewC…
事情起因很简单,代码的改动量很大.而且刚接手服务器,对原有的代码进行了一定程度的重构.虽然在测试服务器上做了较多的测试工作,但是直接将代码送入生产环境还是不放心,万一配置出问题服务直接崩溃怎么解?万一遇到没有测出来的bug怎么解?so······ nginx负载均衡简介 : 负载均衡 建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽.增加吞吐量.加强网络数据处理能力.提高网络的灵活性和可用性. 负载均衡,英文名称为Load Balance,其意思就是分摊到多个操作…
ASP.NET Core 发布的具体操作 下面使用C# 编写的ASP.NET Core Web项目示例说明发布的全过程. 1.创建项目 选择“文件” > “新建” > “项目”. 在“添加新项目”对话框中,在“已安装” “Visaul C#”  “Web” 项目类型窗格中选择“ASP.NET Core Web 应用程序”,在“名称”文本框中输入项目名称如“MmPS”,点击 确定(如下图1),然后在中心窗格中选择“Web应用程序(模型视图控制器)”模板, 然后选择“确定”按钮(如下图2). 图1…
简介 OpenResty 是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库.第三方模块以及大多数的依赖项.用于方便地搭建能够处理超高并发.扩展性极高的动态 Web 应用.Web 服务和动态网关. OpenResty 通过汇聚各种设计精良的 Nginx 模块(主要由 OpenResty 团队自主开发),从而将 Nginx 有效地变成一个强大的通用 Web 应用平台.这样,Web 开发人员和系统工程师可以使用 Lua 脚本语言调动 Nginx 支持的各种…
一.灰度发布 灰度发布是一种发布方式,也叫金丝雀发布,起源是矿工在下井之前会先放一只金丝雀到井里,如果金丝雀不叫了,就代表瓦斯浓度高.原因是金丝雀对瓦斯气体很敏感.灰度发布的做法是:会在现存旧应用的基础上,启动一个新版应用,但是新版应用并不会直接让用户访问.而是先让测试同学去进行测试.如果没有问题,则可以将真正的用户流量慢慢导入到新版,在这中间,持续对新版本运行状态做观察,直到慢慢切换过去,这就是所谓的A/B测试.当然,你也可以招募一些灰度用户,给他们设置独有的灰度标示(Cookie,Heade…
K8s 1.18.6版本基于 ingress-nginx 实现金丝雀发布(灰度发布) 环境 软件 版本 kubernetes v1.18.6 nginx-ingress-controller 0.32.0 Rancher v2.4.5 本次实验基于 Rancher-v2.4.5 部署了1.18.6版本的k8s集群,nginx-ingress 版本为0.32.0,理论上 ingress-nginx >= 0.21.0都是可以的. 介绍 金丝雀发布:又叫灰度发布,控制产品从A版本平滑的过度到B版本…
一.目录及功能 主目录下有bin,conf,lib,logs,temp,webapps,work 7个文件夹 1.1.bin目录[重要] bin目录主要是用来存放tomcat的命令,主要有两大类,一类是以.sh结尾的(linux命令),另一类是以.bat结尾的(windows命令). 很多环境变量的设置都在此处,例如可以设置JDK路径.TOMCAT路径 startup 用来启动tomcat shutdown 用来关闭tomcat 修改catalina可以设置tomcat的内存 1.2.conf目…
如何通过云效Flow完成自动化部署-主机部署,云效流水线Flow是持续交付的载体,通过构建自动化.集成自动化.验证自动化.部署自动化,完成从开发到上线过程的持续交付.通过持续向团队提供及时反馈,让交付过程高效顺畅,Flow 提供了通用的部署能力该篇内容注意讲解如何通过云效Flow完成自动化部署-主机部署 新建部署任务 为了创建部署组,需要先在流水线中添加「主机部署」任务.用户可以通过以下方式添加部署任务. 使用模板新建流水线,选择包含 "部署" 任务的模板 在已有的流水线中,添加新的阶…
CM金丝雀Canary报错 1 HDFS 金丝雀Canary 测试无法为 /tmp/.cloudera_health_monitoring_canary_files 创建父目录. 2 Hive Metastore CanaryHive Metastore canary 创建 hue hdfs 主目录失败. 检查: 1)hdfs是否处于safemode,正常是off # hdfs dfsadmin -safemode getSafe mode is OFF 2)hdfs datanode是否健康,…
参考: https://www.cnblogs.com/barneywill/p/10400788.html CM金丝雀Canary报错 1 HDFS 金丝雀Canary 测试无法为 /tmp/.cloudera_health_monitoring_canary_files 创建父目录. 2 Hive Metastore CanaryHive Metastore canary 创建 hue hdfs 主目录失败. 检查: 1)hdfs是否处于safemode,正常是off # hdfs dfsa…