互联网金融时代下,金融产品和服务模式不断创新,金融系统容量需求急剧增长,为进一步满足运维标准提升工作的需求,提升服务连续性水平。中国工商银行(后简称工行)从 2014 年开始分布式架构转型的技术预研工作,通过对开源微服务框架深入调研和技术选型后,确定了基于开源 Dubbo 自主研发建设分布式服务平台,并结合金融场景,工行在 Dubbo 基础上对服务的注册、发现等核心能力进行了三十余项定制,以支持单注册中心超 70 万提供者的超大规模业务场景。分布式服务作为分布式体系的核心能力,助力工行应用架构向分布式、服务化转型,承载未来开放平台核心银行系统。
灰度发布并非是近几年才兴起的概念,诞生有一定的年头了,但至今,绝大多数中小型互联网企业的发布流程中仍然缺少对灰度环境的支持,其主要原因在于大家对灰度的认知及成本等方面的综合考虑。我前段时间曾就职于一家初创型互联网企业,就发布流程而言,用“脏乱差”来形容似乎并不为过,并且,大部分人对环境的认知也仅限于开发(DEV)、测试(FAT),以及生产(PRO),从严谨性和专业性等2个角度来看,这并不合理。互联网企业的一大特点就是服务的功能变动异常频繁,自然发布的节奏也随之变得急促起来,缺少预发布环境和灰度环境的支撑,高频的服务发布往往会伴随着巨大的风险,以及那令人极度失望的服务质量。因此,本文将重点讨论一种平滑的服务发布方式,以便于帮助企业有效降低风险的影响范围。
灰度发布,对于大厂来说是必不可少的,对于我这种从来没有灰度发布过的,并不是很清楚,估计也有很多人不知道这个东西。以前只是直到灰度发布,这次稍微了解一下。
比漫长的上线流程更扎心的,是好不容易上线的功能,错过了最佳窗口期,结果没有达到想要的效果。
最近,栈长又参加了腾讯云小伙伴邀请的Techo Day 技术开放日 2.0的线上活动,这一期又是干货满满,主要是云原生和微服务方面的,比如:云原生网关、容器、安全、云监控、灰度发布等等,这些内容都与我们现有的微服务系统息息相关。
互联网产品需要快速迭代开发上线,又要保证质量,保证刚上线的系统,一旦出现问题可以很快控制影响面,就需要设计一套灰度发布系统。
作者 | 小杨互联网 来源 | https://www.toutiao.com/i6910008843955192323 灰度发布的定义 互联网产品需要快速迭代开发上线,又要保证质量,保证刚上线的系统,一旦出现问题可以很快控制影响面,就需要设计一套灰度发布系统。 灰度发布系统的作用,可以根据配置,将用户的流量导到新上线的系统上,来快速验证新的功能,而一旦出现问题,也可以马上的修复,简单的说,就是一套A/B Test系统。 灰度发布允许带着bug上线,只要bug不是致命的,当然这个bug是不知道的情况下,如
分布式系统架构下,服务发布是一件很麻烦的事情,特别是在构建自动发布流程和灰度测试的策略两个核心方面。通常情况下如果不涉及数据层面的灰度流程,服务可以灰度上线,或者滚动上线,这两种方式很常用;如果涉及到数据灰度,则可能需要中间服务做不同版本数据之间追平,或者停机维护一次性处理好数据和上线问题,不过后面这种方式风险较大。
灰度从字面意思理解就是存在于黑与白之间的一个平滑过渡的区域,所以说对于互联网产品来说,上线和未上线就是黑与白之分,而实现未上线功能平稳过渡的一种方式就叫做灰度发布。
小明家做食品批发生意,供应商向其推荐了一款新产品,并告诉他市场特别好,但是小明做了很多年生意,对于新产品线有自己的想法,他不愿意一下子就进很多新产品,因为有可能市场好大赚一笔,
近几年,随着有赞用户的迅速增长和业务的快速发展,对业务开发人员要求越来越高,一方面要求为用户提供稳定的服务,一方面要求进行快速业务迭代。然而,随着公司业务复杂度和服务化整体规模的增长,单个业务功能涉及的微服务接口数、服务化调用链路长度都在迅速增加,业务的回归测试越来越难以覆盖到所有的调用链路和业务逻辑,通过仅在测试环境进行业务测试的方式来保证系统稳定性的难度越来越高。
灰度发布的意思是:分阶段向一定比例的用户发布新版,用于对比新旧版本的表现、找出新版本中潜在的问题。
灰度发布是指将新版本应用程序推送给一部分用户进行测试和反馈的过程,而小程序容器技术则是将小程序运行在应用程序内部的技术,可以更快速、更安全、更好地发布和优化小程序。 在本文中,我们将探讨在App开发中如何实现灰度发布,以及如何利用小程序容器技术进行更加快速、安全、优化的小程序发布,从而提高用户体验和满意度,促进用户留存和增长。
灰度发布(Gray Release,也称为灰度发布或金丝雀发布)是指在软件或服务发布过程中,将新版本的功能或服务以较小的比例引入到生产环境中,仅向部分用户或节点提供新功能的一种发布策略。
由于工作需要,近期又恶补了一下“灰度发布”的相关知识,也和身边小伙伴探讨了轻量化实现灰度发布的落地方案。借此机会,正好将相关内容跟大家整理分享一下。
在 Kubernetes 上的应用实现灰度发布,最简单的方案是引入官方的 Nginx-ingress 来实现。
随着企业数字化转型进程不断发展,云原生时代的来临,企业应用越来越多,不得不面对应用程序升级的巨大挑战。传统的停机发布方式,新旧版本应用切换少则停机30分钟,多则停机10小时以上,愈发无法满足业务端的需求。
灰度发布(又名金丝雀发布)是指在黑与白之间,能够平滑过渡的一种发布方式。在其上可以进行A/B testing,即让一部分用户继续用产品特性A,一部分用户开始用产品特性B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。
前段时间业务组负责人提出因为合规原因,一个功能模块需要在 App 实现灰度发布,具体来讲就是要在不同的地域和用户等级开展差异化的活动内容展示。利用这个契机恶补了一些“灰度发布”相关的知识,顺势将其中有价值的一些内容梳理与大家进行分享。
要想了解这个问题就要先明白什么是灰度。灰度从字面意思理解就是存在于黑与白之间的一个平滑过渡的区域,所以说对于互联网产品来说,上线和未上线就是黑与白之分,而实现未上线功能平稳过渡的一种方式就叫做灰度发布。
微服务中的灰度发布(又称为金丝雀发布)是一种持续部署策略,它允许在正式环境的小部分用户群体上先部署新版本的应用程序或服务,而不是一次性对所有用户同时发布全新的版本。
灰度发布又叫金丝雀发布,允许将新功能的发布后让部分用户先使用,如果功能正常,再切换为全量用户, 国内目前使用最多的是nepxion这个框架
作者廖红坤,CODING DevOps 产品策划。从事过多年运维开发,云计算、Kubernetes、云原生深度实践者,有丰富的 DevOps 平台设计经验。
全链路灰度目前是一个比较热门的技术栈,几乎是服务治理领域中必备的,所以咱们必须要搞清楚它,这样才能为自己的技术硬实力去添砖加瓦。假如现在让你去做好全链路灰度,你会怎么去做了,如果面试官这样去问你,你该怎么去回答呢?建议大家可以从如下三个方面去回答:
究竟什么才是灰度发布其实并没有一个严格的标准,因为这个东西不是黑的也不是白的是个中间过渡地带,这类的东西定义都会比较麻烦。由于工作的原因看到好多友商所谓的灰度发布产品,有意思的是他们实现的是完全不一样的功能,对外都说自己是灰度发布。我看到的有三种:
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
几个月前部门内容组织了一次系统设计的议题,分到我们头上的题目是设计一套灰度发布系统。嗯,然后我们就精心设计(参考公司现有系统)了一番,不过鉴于滴滴现在大部分的人都是百度来的(误,所以这种系统大概也都是差不多的思路实现而来的。所以感觉应该算是一种通用系统吧~
小亚,互联网金融公司应用运维主管,参与运维工作九年,涉及领域包含航空、金融、广告等。近两年主要负责金融业务运维的线上业务发布、维护等工作。
对应到软件开中,则是指在发布新的产品特性时通过少量的用户试点确认新特性没有问题,确保无误后推广到更大的用户使用群体。
随着软件工程越来越复杂化,如何在 Kubernetes 集群进行灰度发布成为了生产部署的”必修课“,而如何实现安全可控、自动化的灰度发布也成为了持续部署重点关注的问题。CODING DevOps 微服务项目实战系列最后一课:《DevOps 微服务项目实战:基于 Nginx-ingress 的自动化灰度发布》 将由 CODING DevOps 后端开发工程师 王炜老师 向大家介绍 Nginx-ingress 灰度发布的原理,并结合 Demo 深入讲解如何实现自动化的灰度发布。
保证交付效率和质量把控是一项业务长远、稳定发展的必经之路,来自微信支付的张洪晖在第二届小程序云开发技术峰会上就介绍了高速发展的业务团队如何利用小程序云开发搞定持续交付和质量管控。
在 Kubernetes 中针对各种工作负载,提供了多种控制器,其中 Deployment 为官方推荐,被用于管理无状态应用的 API 对象。本文将结合 Deployment 的特性,与常见的发布策略,以及我们在分批发布场景下的实践,做一些分享。
概述 软件开发过程中,应用发布非常频繁,通常情况下,开发或运维人员会将系统里所有服务同时上线,使得所有用户都使用上新版本。这样的操作时常会导致发布失败,或因发布前修改代码,线上出现 Bug。 假设一个在线商城,每天都有大量的用户访问,如果直接在所有用户中部署新版本应用,一旦出现问题,所有用户都可能受到影响。相比之下,通过引入灰度发布策略,先将新版本的应用部署到少量的用户中,检查是否存在问题,如果没有,再逐步扩展到更多的用户中,由此解决全量发布的各种弊端。 灰度发布是一种软件发布策略,它允许你在生产环境中渐进
笔者在持续学习的过程中,得到了红帽淡成、王洪涛、Nico等多位大师的指点,在此表示感谢。 5分钟了解一个容器典型应用场景系列篇 关于容器解决方案的概念、架构、成功案例,笔者已经分享了很多了。为了使读者能够花更短的时间,迅速感性地解容器的典型应用场景。笔者从今天开始,推出“5分钟了解一个容器典型应用场景”系列片。每次分享一个场景,采用文字描述+视频展示的方式。本系列分享内容将分别是:灰度发布、CI/CD、开发自动化、微服务、业务弹性扩展。 概念介绍 灰度发布 灰度发布是指在黑与白之间,能够平滑过渡的一种发布方
“ 关注 前端开发社区 ,回复"1"即可加入 前端技术交流群,回复 "2"即可免费领取 500G前端干货
灰度发布,又被称之为金丝雀发布,是指某次新发布功能特性和旧功能特性之间能够以平滑过渡的方式呈现给用户,就像金丝雀的羽毛一样多种颜色平滑渐变。
在项目研发迭代的过程中,不可避免需要对“应用服务部署上线”。而对于应用程序升级面临最大挑战是新旧业务切换的同时还要保证系统不间断提供服务。特别是微服务盛行的今天,对服务发布的粒度、发布策略控制更佳尤为重要。
该文介绍了后台服务在灰度发布与监控方面的重要性,以及毫秒服务引擎如何帮助初创团队快速获得这两大利器。还谈到了灰度发布和监控的实际应用和背后的哲学。
一个大型的前端项目在发布时,都会采取灰度策略。第一次听同事说灰度的时候,还是停留在疑惑阶段,对这个词不了解,后续做了一些功课,才明白灰度的意义。
导语 在服务实例数量和规模较大的业务场景下,服务路由是系统比较常见的诉求,比如针对业务属性的全链路灰度、测试环境多分支路由、多Region多AZ时的就近路由等。TSF基于标签化能力完成流量染色和标签自动传递,仅通过控制台配置即可实现服务路由、全链路灰度及就近路由功能,快速满足客户的业务分流诉求。服务路由从行为上讲,是将流量进行染色区分,并通过路由规则将流量进行分流,本节将对TSF整体服务路由相关能力进行详细介绍。 作者简介 崔凯
应用程序升级面临最大挑战是新旧业务切换,将软件从测试的最后阶段带到生产环境,同时要保证系统不间断提供服务。
两年前,我在学习K8s的时候有写过一篇基于Nginx Ingress实现灰度发布的博文。这次,我们基于Kong来实践一下。灰度发布的具体实现其实是流量切分,那就让我们先回顾一下流量切分的实现方式。
胡弦,视频号2023年度优秀创作者,互联网大厂P8技术专家,Spring Cloud Alibaba微服务架构实战派(上下册)和RocketMQ消息中间件实战派(上下册)的作者,资深架构师,技术负责人,极客时间训练营讲师,四维口袋KVP最具价值技术专家,技术领域专家团成员,2021电子工业出版社年度优秀作者,获得2023电子工业出版技术成长领路人称号,2024年电子工业出版社博文视点20周年荣誉专家称号。
框架解耦的流量管理能力作为ServiceMesh的看家本事,一直是大多数团队选择ServiceMesh的主要原因。传统的流量管理大多需要在框架层面集成一种中心化的服务发现中心,通过服务发现中心去做流量控制分发。这对服务发现中心的的稳定性要求很高,同时限制了框架选择和扩展性。而ServiceMesh基于 sidecar 形式通信代理,将服务和流量控制解耦,服务不关心流量从哪里来,去往哪个具体ip,sidecar通过流量劫持的形式,对进出服务的流量进行修改,达到控制流量的目的,类似中间人攻击。
蓝绿部署是一种应用发布模式,可将用户流量从先前版本的应用或微服务全量转移到新版本中(两者均保持在生产环境中运行)。
作为一路摸打滚爬过来的互联网人,总结这几年的经历,我发现虽然企业所从事的业务大相径庭,但是研发团队的开发流程几乎相似:
领取专属 10元无门槛券
手把手带您无忧上云