云原生专栏丨基于服务网格的企业级灰度发布技术

灰度发布(又名金丝雀发布)是指在黑与白之间,能够平滑过渡的一种发布方式。在其上可以进行A/B testing,即让一部分用户继续用产品特性A,一部分用户开始用产品特性B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。众所周知,灰度发布是一种非常有效的技术策略,可以帮助企业保证系统的可靠性和稳定性,同时也能够快速迭代和优化功能。在竞争激烈的市场环境下,只有不断创新和优化,才能赢得更多的用户和市场份额。因此,采用灰度发布策略可以帮助企业在竞争中立于不败之地。

下面通过一个示例来说明整个灰度发布使用场景:

某公司的电商平台需要发布一项重要的功能,叫做“秒杀活动”。

这个活动允许用户在特定的时间段内,以很低的价格购买某些商品,可以吸引更多的用户,并且让这个平台在竞争中占据更大的优势。但活动会带来一定的风险:由于用户数量巨大,如果在高峰期不能很好地处理用户请求,那么就会出现系统崩溃的情况,导致大量的用户无法正常购物,带来不好的购物体验,那我们就需要提前做好风险规避,保证活动良好的用户体验感:

1、需要在保证系统可靠性和稳定性的前提下,确保用户的体验不会受到影响;

2、需要时刻关注系统的性能和资源使用情况,及时采取措施解决潜在的问题;

3、 他们需要和其他团队密切合作,确保所有的功能都能顺利协同工作。

这里就就需要用到灰度发布策略,具体步骤如下:首先,一个小范围内部署了“秒杀活动”功能,只接受部分用户的请求,收集性能和稳定性数据。通过分析这些数据,他们发现了一些潜在的问题,并进行了修复;其次,他们继续扩大灰度范围,让更多的用户参与进来;最后,当他们的系统足够稳定时,就将“秒杀活动”功能部署到所有节点上。

在现代软件开发中,灰度发布已经成为了一个非常重要的策略,越来越多的企业开始采用它来优化产品和服务。但灰度发布也有一些挑战和风险,比如需要付出更多的时间和资源来管理和优化,以及需要建立更加复杂的系统架构。因此,企业需要在采用灰度发布前仔细评估自身的情况和需求,确保能够有效地实现这个策略。

浪潮海岳iGIX云原生平台基于服务网格技术,采用集中式的流量控制和监控机制,实现细粒度的灰度发布控制,同时通过可观察性和自动回滚机制,实现了灰度版本的性能和稳定性的实时评估,降低灰度发布的风险。

主要特性:

  1. 支持通用的企业级灰度部署模型:结合多年企业支持经验,对灰度部署模型进行抽象,形成了通用的企业级灰度发布模型,通过少量操作即可完成企业级应用的灰度发布;

  2. 支持多种灰度发布模型:支持蓝绿和金丝雀灰度发布模型,支持支持按照细粒度控制流量百分比(如路由5% 的流量到灰度版本)和路由规则(如url、headers等)的灰度路由策略;

  3. 支持多种灰度用户染色方案:支持管理员配置和用户自主选择的多种灰度染色方案,其中管理员配置是根据用户的角色及其承担的不同任务,配置不同用户访问产品的不同版本,精确地把受影响的流量控制在一定范围内,实现精细的流量控制;用户自主选择是用户根据自身的需求,选择使用不同的产品版本,实现对不同版本的灵活访问;

  4. 支持灰度发布应用的实时监控:通过提供了灰度发布的规则拓扑图和链路跟踪图,对灰度发布应用进行实时监控,帮助用户更加直观的了解已配置的灰度发布的规则,追踪流量具体去向信息,以便对新版本的性能和稳定性进行更好的评估;

  5. 支持灰度发布的全生命周期管理:通过直观友好的图形界面和简单的操作,支持对灰度应用的打包、部署、运维和监控的全生命周期的管理,提升运维人员的效率。


最后插个安利,inBuilder低代码平台开源社区版,可免费下载、免费试用,大家可点击下载体验。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/199046.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

广州华锐互动VRAR:VR教学楼地震模拟体验增强学生防震减灾意识

在当今社会,地震作为一种自然灾害,给人们的生活带来了巨大的威胁。特别是在学校这样的集体场所,一旦发生地震,后果将不堪设想。因此,加强校园安全教育,提高师生的防震减灾意识和能力,已经成为了…

springboot中动态api如何设置

1.不需要编写controller 等mvc层,通过接口动态生成api。 这个问题,其实很好解决,以前编写接口,是要写controller,需要有 RestController RequestMapping("/test1") public class xxxController{ ApiOperat…

Zotero在word中插入带超链接的参考文献/交叉引用/跳转参考文献

Zotero以其丰富的插件而闻名,使用起来十分的带劲,最重要的是它是免费的、不卡顿,不像某专业软件。 然而Zotero在word插入参考文献时,无法为参考文献添加超链接,这是一个不得不提的遗憾。 不过,有大佬已经…

asp.net健身会所管理系统sqlserver

asp.net健身会所管理系统sqlserver说明文档 运行前附加数据库.mdf(或sql生成数据库) 主要技术: 基于asp.net架构和sql server数据库 功能模块: 首页 会员注册 教练预约 系统公告 健身课程 在线办卡 用户中心[修改个人信息 修…

设计模式-行为型模式-模板方法模式

一、什么是模板模式 模板方法模式(Template Method Pattern)是一种行为型设计模式,它定义了一个算法骨架,允许子类在不改变算法整体结构的情况下重新定义算法的某些步骤。 主要组成部分: 1、模板方法(Templ…

如何在面试中胜出?接口自动化面试题安排上

📢专注于分享软件测试干货内容,欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!📢交流讨论:欢迎加入我们一起学习!📢资源分享:耗时200小时精选的「软件测试」资…

AIGC 技术在淘淘秀场景的探索与实践

本文介绍了AIGC相关领域的爆发式增长,并探讨了淘宝秀秀(AI买家秀)的设计思路和技术方案。文章涵盖了图像生成、仿真形象生成和换背景方案,以及模型流程串联等关键技术。 文章还介绍了淘淘秀的使用流程和遇到的问题及处理方法。最后,文章展望…

从一到无穷大 #19 TagTree,倒排索引入手是否是优化时序数据库查询的通用方案?

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。 本作品 (李兆龙 博文, 由 李兆龙 创作),由 李兆龙 确认,转载请注明版权。 文章目录 文章主旨时序数据库查询的一般流程扫描维度聚合时间聚合管控语句 TagTree整体结构索引…

ArkTS - HarmonyOS服务卡片(创建)

可以参考官网文档 其中我们在已有的文件中File > New > Service Widget创建你想要的小卡片 本文章发布时目前可使用的模板就三种 有卡片后的new 最终效果

「Verilog学习笔记」实现3-8译码器①

专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点,刷题网站用的是牛客网 分析 ① 本题要求根据38译码器的功能表实现该电路,同时要求采用基础逻辑门实现,那么就需要将功能表转换为逻辑表达式。 timescale 1ns/1nsmodule d…

K8S基础笔记

1、namespace 名称空间用来对集群资源进行隔离划分,默认只隔离资源,不隔离网络k8s默认的名称空间为default 查看k8s的所有命名空间 kubectl get namespace 或者 kubectl get ns 创建名称空间 kubectl create ns 名称 或使用yaml方式 编写yamlkub…

竞赛 题目:基于大数据的用户画像分析系统 数据分析 开题

文章目录 1 前言2 用户画像分析概述2.1 用户画像构建的相关技术2.2 标签体系2.3 标签优先级 3 实站 - 百货商场用户画像描述与价值分析3.1 数据格式3.2 数据预处理3.3 会员年龄构成3.4 订单占比 消费画像3.5 季度偏好画像3.6 会员用户画像与特征3.6.1 构建会员用户业务特征标签…

应试教育导致学生迷信标准答案惯性导致思维僵化-移动机器人

移动机器人课程群实践创新的困境与突围 一、引言 随着科技的快速发展,工程教育变得越来越重要。然而,传统的应试教育模式往往侧重于理论知识的传授,忽视了学生的实践能力和创新精神的培养。这在移动机器人课程群的教学中表现得尤为明显。本文…

05-Spring Boot工程中简化开发的方式Lombok和dev-tools

简化开发的方式Lombok和dev-tools Lombok常用注解 Lombok用标签方式代替构造器、getter/setter、toString()等重复代码, 在程序编译的时候自动生成这些代码 注解名功能NoArgsConstructor生成无参构造方法AllArgsConstructor生产含所有属性的有参构造方法,如果不希望含所有属…

树莓派通过网线连接电脑(校园网也能连接),实现SSH连接

前言 之前通过串口登入树莓派,太麻烦,通过网络登入树莓派,学校校园网又连接不了,想起来可以使用网线连接树莓派和电脑。 目录 树莓派通过网线连接电脑思路分析 树莓派通过网线连接电脑实现 1.硬件需求 2.打开Windows的网络 …

【高级程序设计】Week2-4Week3-1 JavaScript

一、Javascript 1. What is JS 定义A scripting language used for client-side web development.作用 an implementation of the ECMAScript standard defines the syntax/characteristics of the language and a basic set of commonly used objects such as Number, Date …

Kotlin学习之函数

原文链接 Understanding Kotlin Functions 函数对于编程语言来说是极其重要的一个组成部分,函数可以视为是程序的执行,是真正活的代码,为啥呢?因为运行的时候你必须要执行一个函数,一般从主函数入口,开始一…

ES6中实现继承

本篇文章主要说明在ES6中如何实现继承,学过java的小伙伴,对class这个关键字应该不陌生,ES6中也提供了class这个关键字作为实现类的语法糖,咱们一起实现下ES6中的继承。 实现思路 首先直接通过class来声明一个Teacther类&#xff…

Docker中的RabbitMQ已经启动运行,但是管理界面打不开

文章目录 前言一、解决方法方法一方法二 总结 前言 肯定有好多小伙伴在学习RabbitMQ的过程中,发现镜像运行,但是我的管理界面怎么进不去,或者说我第一天可以进去,怎么第二天进不去了,为什么每次重新打开虚拟机都进不去…

笔记55:长短期记忆网络 LSTM

本地笔记地址:D:\work_file\DeepLearning_Learning\03_个人笔记\3.循环神经网络\第9章:动手学深度学习~现代循环神经网络 a a a a a a a a a