灰度上线

微服务治理实践 | 金丝雀发布

拟墨画扇 提交于 2020-03-11 17:54:38
前言 阿里巴巴集团内部有不少故障是因为发布直接或间接引起。因此提升发布的质量,减少错误的发生,是有效减少线上故障的一个关键环节。 为什么大部分的故障和发布相关?因为发布是整个功能更新到线上的最后一个环节,一些研发过程中累计的问题,在最后发布环节才会触发。同时发布本身也是一个复杂的过程,在发布过程中,往往容易出现一些错误操作或者遗漏关键操作。 日常发布中,我们常常会有如下一些错误的想法: 这次改动的内容比较小,而且上线要求比较急,就不需要测试直接发布上线好了 发布不需要走灰度流程,快速发布上线即可 灰度发布没有什么用,就是一个流程而已,发布完就直接发布线上,不用等待观察 虽然灰度发布很重要,但是灰度环境很难搭建,耗时耗力优先级并不高 这些想法都可能让我们进行一次错误的发布。 阿里巴巴内部有安全生产三板斧概念: 可灰度、可观测、可回滚。所有研发同学必须要掌握发布系统的灰度、观测和回滚功能如何使用。 今天我们来聊聊灰度发布。 灰度发布策略 灰度发布是发布整个过程中一个非常重要的环境。目前灰度发布策略有这几种: 蓝绿发布(Blue-Green Deployment) 通过部署两套环境来解决新老版本的发布问题。如果新版本(New Version)发生问题要进行回滚的时候,直接通过切流将流量全部切到老版本(Old Version)上。 优点:升级切换和回退比发布回滚迅速 缺点:成本较高

灰度发布

纵然是瞬间 提交于 2019-12-11 10:27:22
灰度发布 中型的互联⽹公司往往有着以百万计的⽤户,⽽⼤型互联⽹公司的系统则可能要服务千万级甚⾄亿级 的⽤户需求。⼤型系统的请求流⼊往往是源源不断的,任何⻛吹草动,都⼀定会有最终⽤户感受得 到。例如你的系统在上线途中会拒绝⼀些上游过来的请求,⽽这时候依赖你的系统没有做任何容错, 那么这个错误就会⼀直向上抛出,直到触达最终⽤户。形成⼀次对⽤户切切实实的伤害。这种伤害可 能是在⽤户的APP上弹出⼀个让⽤户摸不着头脑的诡异字符串,⽤户只要刷新⼀下⻚⾯就可以忘记这 件事。但也可能会让正在⼼急如焚地和⼏万竞争对⼿同时抢夺秒杀商品的⽤户,因为代码上的⼩问 题,丧失掉了先发优势,与⾃⼰蹲了⼏个⽉的⼼仪产品失之交臂。对⽤户的伤害有多⼤,取决于你的 系统对于你的⽤户来说有多重要。 不管怎么说,在⼤型系统中容错是重要的,能够让系统按百分⽐,分批次到达最终⽤户,也是很重要 的。虽然当今的互联⽹公司系统,名义上会说⾃⼰上线前都经过了充分慎重严格的测试,但就算它们 真得做到了,代码的bug总是在所难免的。即使代码没有bug,分布式服务之间的协作也是可能出现“逻 辑”上的⾮技术问题的。 这时候,灰度发布就显得⾮常重要了,灰度发布也称为⾦丝雀发布,传说17世纪的英国矿井⼯⼈发现 ⾦丝雀对瓦斯⽓体⾮常敏感,瓦斯达到⼀定浓度时,⾦丝雀即会死亡,但⾦丝雀的致死量瓦斯对⼈并 不致死,因此⾦丝雀被⽤来当成他们的瓦斯检测⼯具

灰度发布(上线)和AB Test

南笙酒味 提交于 2019-12-10 05:37:51
原文地址: https://blog.csdn.net/maxmao1024/article/details/84305609 一、灰度发布 1. 简介 灰度发布,是指在黑与白之间,能够平滑过渡的一种发布方式。 通过不同策略对用户进行分流,不同的用户组使用不同的应用版本。 2. 优点 互联网服务变动频繁,发布周期短。速度与质量总是难以双全。灰度发布有以下优点: 降低发布风险,减少影响范围 可以灰度测试帐号,降低测试依赖,减少线下自测的数据构造成本 方便回滚 3. 缺点 开发、测试和部署的成本较高 数据存储层需要兼容 二、AB Test 1. 简介 AB test 是一种灰度方式,通常差异度较小,侧重于从多种方案中选择最优方案。 简单来说,就是为同一个目标制定两个方案(比如两个页面),让一部分用户使用 A 方案,另一部分用户使用 B 方案,记录下用户的使用情况,看哪个方案更符。 一般来说,每个设计方案应该大体上是相同的,只是某一个地方有所不同,比如某处排版、文案、图片、颜色等。然后对不同的用户展示不同的方案。 2. 优缺点 优点:避免选择分歧和反复试错,优化决策,最终方案有数据支持 缺点:开发和测试周期增加,多套方案出现问题的可能性更高 3. 核心思想 多方案并行测试 同一个用户(一般通过cookie控制)展现同一版本 以某种规则优胜劣汰。 4. 实现步骤 定义策略:确定分流的目的

常用软件测试题与答案

梦想与她 提交于 2019-11-29 06:34:20
你是如何做测试分析?    主要从功能的实现和性能问题上入手,功能的话以需求和实际使用的流程来分析,性能的话以更新后的可能的性能变化趋势分析。 功能测试在 beta 版本对外的上线标准是什么?    缺陷收敛,基本功能和流程没有缺陷。用户体验佳。 描述下web测试和移动应用测试的相同点和区别?    相同点:都要看界面和功能性能接口 不同点:web功能重点在使用 性能更加着重服务器的性能,app侧重画面感和终端流畅,性能的话对终端的性能测试需求比较高 iOS应用和Android应用测试有什么侧重点?    审核平台,webview的方法,权限设置不同,适配差异。 请讲诉移动应用的灰度是怎么做的?     1.开黑白名单    2.开灰度环境,直接架一套灰度环境,用户请求到ng的时候,如果A服务器上有这个用户,就拉取A这台ng,如果不在,就去B拉取。 请简述移动应用在升级安装时候应该考虑的场景?   不同版本覆盖和下载,灰度开放,旧数据迁移,新数据记录和叠加 如果让你来测试扫码支付,你会考虑哪些场景?    1.支付码和收款码的生成,更新,扫描规则;   2.网络,   3.识别成功和识别失败   4.额度    5.密码 如何测试一个应用的登录场景?    1.数据校验   2.接口校验   3.流程校验   4.安全性 来源: https://www.cnblogs.com