首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

腾讯 Severless 项目开发和灰度发布实践之路

示例:开发一个 express 应用,最基本的是引入 express 组件,业务中间可能会涉及到其他一些产品(如对象存储 COS),所以整个应用目录如下: image.png Serverless.yaml...一份简单的 serverless.yml 文件如下: # serverless.yml org: xxx-department # 用于记录组织信息,默认为您的腾讯 APPID app: expressDemoApp...image.png 操作场景 本文将以 Tencent-Express 组件部署一个 Express 网站为例,模拟 Serverless Framework 开发项目、管理项目和部署发布上线全流程...发布上线:对于已完成测试的产品功能发布上线。由于新上线的版本可能有不稳定的风险,所以一般会进行灰度发布,通过配置一些规则监控新版本的稳定性,等到版本稳定后,流量全部切换到新版本。...操作步骤 初始化项目 1、创建一个express 项目,修改 yml 文件为以下内容: #serverless.yml org: xxx-department # 用于记录组织信息,默认为您的腾讯

844138
您找到你想要的搜索结果了吗?
是的
没有找到

基于ambassador实现K8S灰度发布

为什么需要灰度发布 灰度发布(又名金丝雀发布)是指在黑与白之间,能够平滑过渡的一种发布方式。...部署新功能有风险,然后可以通过导流一小部分用户实际使用,来减小风险 让特定的用户访问新版本,比如部署一个版本,只让测试使用 A/B Testing,部署两个版本,进行版本对比,比如验证两个推荐服务的推荐效果 灰度发布可以保证整体系统的稳定...,在初始灰度的时候就可以发现、调整问题,以保证其影响度。...ambassador 灰度 ambassador实现灰度可以根据weight权重,或者指定匹配特定的header来实现。...testservice ports: - port: 8080 name: service-gray targetPort: http-api 根据请求头 header 进行灰度

1K30

腾讯 Severless-Express 项目开发和灰度发布最佳实践

一份简单的 serverless.yml 文件如下: # serverless.yml org: xxx-department # 用于记录组织信息,默认为您的腾讯 APPID app: expressDemoApp...发布上线:对于已完成测试的产品功能发布上线。由于新上线的版本可能有不稳定的风险,所以一般会进行灰度发布,通过配置一些规则监控新版本的稳定性,等到版本稳定后,流量全部切换到新版本。...Express.js 应用 文档,创建一个 express 项目,修改 yml 文件为以下内容: #serverless.yml org: xxx-department # 用于记录组织信息,默认为您的腾讯...灰度发布 操作场景 在业务进行版本更新及切换时,为了保证线上业务稳定,建议采取灰度发布的方式。本文以已部署的 express 项目为例,为您介绍灰度发布的操作步骤。 前提条件 已完成 开发项目。...部署并发布函数版本 N+1,切换所有流量到版本 N+1: sls deploy --inputs.publish --inputs.traffic=0 One More Thing 立即体验腾讯 Serverless

95384

灰度发布

灰度发布,对于大厂来说是必不可少的,对于我这种从来没有灰度发布过的,并不是很清楚,估计也有很多人不知道这个东西。以前只是直到灰度发布,这次稍微了解一下。...灰度发布是指新版本或者新功能通过一定策略选取一些用户,让他们先使用,通过使用情况对功能、性能、稳定性等指标评估是否扩大范围直至全面发布灰度发布开始到结束期间的这一段时间,称为灰度期。...其实针对大型的系统,还有蓝绿部署、滚动发布等,还有专门的测试服务提供商。...灰度发布除了代码层面之外,对服务这块要求还是蛮大的,灰度发布不同于预发布灰度发布是直接让线上用户参与,而一般预发布发布到线上,由测试人员进行测试。...当然,会使用灰度发布的,一般来说都是千万级别用户的项目了,虽然很想使用灰度发布,但还是需要考虑实际场景,也希望以后能有机会使用灰度发布。 (完)

1.4K30

灰度发布

1、什么是灰度发布 以下是百度词条的解释: 灰度发布(又名金丝雀发布)是指在黑与白之间,能够平滑过渡的一种发布方式。...灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。...2、为什么要灰度发布 灰度发布的主要目的是保证系统的可用性。因为每一次线上变更都无法保证系统100%的无bug,所以变更后要在线上小范围验证,等没问题再全面放开。...3、常用的灰度发布方式有哪些 1、按机器灰度 ? 线上有多台机器,先将新功能代码部署到其中的1台或多台机器,然后绑定到这些机器进行测试,测试完没问题再部署到所有机器。...还要考虑的是在新代码机器测试的用户数据是加密的,而线上其他机器没有发布,则这些用户访问其它机器功能是不正常的,所以这个也只能限定进行灰度的用户是内部用户。

2.2K61

灰度发布

什么是灰度发布 介绍灰度发布流程之前我先一句话介绍一下什么是灰度发布灰度发布就是,线上app无需停机就可以保证运行的是经过测试的稳定版本,且我们在冒烟测试时也不会影响到线上App的运行。...为什么我们要搞灰度发布 线上的服务每次都是我来构建,我可以非常负责任的讲,冒烟测试时不重新发布的几率很小,而且很多时候需要我去定位线上问题,这个过程我不知道你们痛不痛苦,反正我是很痛苦。...为了能让用户有更好的体验,也为了我不在那么痛苦所以我们急需要一款灰度发布系统。...灰度发布系统怎么搞 一个很简单的理论,同时准备两份服务,让符合规则的请求路由到灰度接口,不符合规则的路由到之前发布的服务就好了哇~ 图片 代码实现 熟悉SpringCloudGateway的同学对于...让符合规则的请求路由到灰度接口,不符合规则的路由到之前发布的服务就好了哇~,对于这个简单的需求我们只要在path断言不变的前提下在增加一个管理规则的断言不就可以了吗,以指定请求头包含指定value的规则为例

1.7K30

灰度发布

灰度发布浅析 定义 灰度发布就是已一种平滑过渡的方式来发布,通过切换线上新旧版本之间的路由权重,逐步从旧版本切换到新版本;比如要上线新功能,首先只是更新少量的服务节点,通过路由权重,让少部分用户体验新版本...灰度发布 一个系统往往有接入层比如nginx(Openresty),网关层比如zuul,以及服务层比如各种rpc框架;在这几层都有路由功能,也就是说这几层都可以做灰度;接入层可以使用nginx+lua来实现灰度...,网关层zuul可以结合ribbon来实现灰度,rpc框架如dubbo本身提供了路由功能可以直接做灰度处理;下面看看具体如何去实现; 接入层灰度 接入层我们这里使用功能更强大的Openresty,然后使用...具体可以参考官方文档:旧路由规则 测试 启动zookeeper,然后分别启动两台生产者,启动消费者时通过修改tag然后观察路由; 总结 本文分别从接入层,网关层,服务层这三层简要的介绍了通过路由规则来实现灰度发布...;已每层比较典型的中间件来介绍具体如何去实现简单的灰度发布;总体来说就是使用中间件的路由功能,动态加载外部自定义的一些路由策略脚本,以此来达到灰度发布的目的。

1.6K30

基于腾讯微服务引擎(TSE) ,轻松实现上全链路灰度发布

使用腾讯微服务引擎 TSE 提供的网关和服务治理能力,可以在不修改任何业务代码的情况下,可视化配置灰度规则,实现上轻松易用的全链路灰度发布。...图1-1 全链路灰度场景架构 接下来演示原生 API 网关+北极星网格构建的全链路灰度发布能力。...v8.5.0 我们将应用部署在腾讯 TKE 集群中,在实际生产中,全链路灰度对于应用的部署模式没有限制性要求,无论是 CVM 虚拟机,还是自建容器环境,都能应用此方案。...腾讯TSE提供了完整的全链路灰度发布解决方案,适用各种发布流程,无需侵入代码,通过可视化配置灰度规则,有效地解决了微服务全链路灰度发布难实现的问题,让灰度发布更便捷、更顺利。...往期 推荐 《腾讯基于 Apache Pulsar 跨地域复制功能实现租户跨集群迁移》 《原生消息流系统 Apache Pulsar 在腾讯的大规模生产实践》 《迎接2023 | 北极星开源一周年

87720

K8S基于ingress-nginx实现灰度发布

注解说明 通过给 Ingress 资源指定 Nginx Ingress 所支持的 annotation 可实现金丝雀发布。...可以把以上的四个 annotation 分为三类: 基于Request Header的流量切分,适用于灰度发布以及AB测试场景 基于Cookie的流量切分,适用于灰度发布以及AB测试场景 基于服务权重的流量切分...backend: serviceName: production servicePort: 80 应用以上 yaml 文件,创建完成后在 k8s...注意:要开启灰度发布机制,首先需设置 nginx.ingress.kubernetes.io/canary: "true" 启用 Canary,以下 Ingress 示例的 Canary 版本使用了基于权重进行流量切分的...基于用户请求的 Canary 规则测试 基于 Resquest Header 基于 Request Header 进行流量切分的典型应用场景即灰度发布或 A/B 测试场景。

2.4K20

游戏灰度发布

,蓝绿部署、滚动部署、灰度发布、金丝雀发布。。。...整个游戏的链条上,似乎大家都已经习惯,开发习惯,玩家也习惯 习惯麻痹了一切,没有提出更好的策略,大家都这么玩啊,无所谓啦~ 方案 细思极恐,我们应该,也需要做得更好 灰度发布/金丝雀发布 灰度发布是在原有版本可用的情况下...灰度发布/金丝雀发布由以下几个步骤组成: 准备好部署各个阶段的工件,包括:构建工件,测试脚本,配置文件和部署清单文件。 从负载均衡列表中移除掉“金丝雀”服务器。...在之前的架构图中,稍作修改,在玩家与Gameserver之间增加一层ha-proxy,这样就有了灰度发布的基础 玩家不再直接与game-server直连,而是与ha-proxy 透明性 对玩家来说,发版本就是透明的...,发版本时,不再需要停机,入口也不需要关闭,7*24玩耍 流量灵活切换 灰度百分比,可以灵活控制,这里面又涉及到路由规则,复杂了,可以先百分百切换 快速迭代 玩家无感,出现bug,可以快速修复,快速上线

1K30

一、灰度发布

一、灰度发布   灰度发布是一种发布方式,也叫金丝雀发布,起源是矿工在下井之前会先放一只金丝雀到井里,如果金丝雀不叫了,就代表瓦斯浓度高。原因是金丝雀对瓦斯气体很敏感。...灰度发布的做法是:会在现存旧应用的基础上,启动一个新版应用,但是新版应用并不会直接让用户访问。而是先让测试同学去进行测试。...代表是否开启灰度功能 nginx.ingress.kubernetes.io/canary-by-cookie:灰度发布 cookie 的 key。当 key 值等于 always 时,灰度触发生效。...二、滚动发布   滚动发布,则是我们一般所说的无宕机发布。其发布方式如同名称一样,一次取出一台/多台服务器(看策略配置)进行新版本更新。...如果没有设置的话,k8s会认为容器启动成功后就可以用了。

1.5K20

关于灰度发布

所以感觉应该算是一种通用系统吧~ 为什么要有灰度发布系统?...这样说的话可能有些人会提出异议,我们在做代码发布的时候先发布一台机器,然后再发布十台,然后一百台这样的,似乎是叫小流量上线,这个和灰度发布有区别么?...两者还是有一些区别的,小流量上线一般做的是系统的彻底升级,和灰度发布不一样。也即是前面提到的,灰度发布期间,线上的系统两套代码在同一台新发布的机器上也同时存在。...灰度发布一般人都比较熟悉的案例可能是微软的操作系统升级吧,其实腾讯qq或者微信发布也差不多。不过说到操作系统升级,灰度发布感觉还有另外的一层意思。可以控制用户流量对网络或者系统的负载的影响。...继续来说互联网公司的灰度发布系统。 一般的灰度发布都会有一些策略,其实就是分类/桶策略。

2.1K30

灰度发布方案

一、灰度发布定义 灰度发布(又名金丝雀发布)是指在黑与白之间,能够平滑过渡的一种发布方式。...灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。 ? 二、实现思路方向 1、在代码中做。...第三是dubbo的灰度,项目中如果使用dubbo,有可能会需要dubbo服务的灰度实现。.../intro.html 新浪微博开源项目 git地址:https://github.com/CNSRE/ABTestingGateway ABTestingGateway是一个可以动态设置分流策略的灰度发布系统...demo逻辑:目标服务的端口和灰度服务端口的一致,并且请求方法的第一个参数类型是Long(userId)并且是灰度用户,则判断为灰度服务,否则按照默认随机调用其余非灰度服务 ?

10.6K41

StatefulSet灰度发布

灰度发布(Gray Release)是一种流行的发布策略,可以使我们在不中断整个生产环境的情况下逐步将新版本的应用程序发布给一小部分用户,以确保它们能够正常运行。...因此,在灰度发布中,我们可以使用不同的副本集来分别部署新版本和旧版本的应用程序,并逐步增加新版本的副本集,以确保它们能够正确运行。...下面是一个基于StatefulSet的灰度发布示例:假设我们有一个名为web的StatefulSet,它有3个副本,使用的是RollingUpdate更新策略,版本号为v1,现在我们想要发布新版本的应用程序...,并使用灰度发布策略。...当我们想要进行灰度发布时,我们可以通过 StatefulSet 的 RollingUpdate 更新策略来实现。

67410

基于 Spinnaker 的 K8S 灰度发布,看看这篇

k8s中的容器一般是通过deployment管理的,那么一次滚动升级理论上会更新所有pod,这由deployment资源特性保证的,但在实际的工作场景下,需要灰度发布进行服务验证,即只发布部分节点,这似乎与...k8s的deployment原理相违背,但是灰度发布的必要性,运维同学都非常清楚,如何解决这一问题?...灰度发布该怎么做呢?...: 灰度发布完成后,可以登陆pod查看日志,并观察相关的grafana监控,查看TPS2XX和TPS5XX的变化情况,再决定是否继续发布fop-gate,实现灰度发布的目的 ➜ dora git:(daixuan...总结:k8s灰度发布最好方法就是定义两个不同的deployment管理相同类型的服务,创建不同的pipeline进行发布管理,避免干扰,同时在正常发布过程中,也可以利用spinnaker的pause,

1.1K10

原生时代的灰度发布有几种“姿势”?

随着企业数字化转型进程不断发展,原生时代的来临,企业应用越来越多,不得不面对应用程序升级的巨大挑战。...场景五:K8s集群版本灰度升级的场景K8s不支持跨大版本进行升级,如果考虑一个个小版本的升级会非常麻烦,每次小版本升级对应用运维人员来说都是非常大的挑战。...因此一个自动化、业务无感知的K8s集群版本灰度升级是非常关键的。业务端通过APISIX或者Istio控制业务流量。...首先自动化部署v1.24版本的K8s集群,然后在v1.24版本集群中部署容器应用,通过APISIX灰度迁移少部分业务流量,验证业务的可用性和稳定性,慢慢将所有应用灰度迁移到新版本集群。...所有应用迁移完成后,将v1.16版本K8s集群下线资源回收。

88620

灰度发布实现及蓝绿发布

1.0 简介 随着公司业务的不断发展壮大,需要一套稳妥的发布方案,如果发布的新版本服务有问题能及时撤回,不至于造成太大范围的影响; 2.0 现状 手动部署代码 Scp、Rsync上传代码; 登陆,Git...image.png 3.0 方案 3.1 灰度发布 灰度发布是一种常见的服务滚动升级或A/B测试策略。...原理图 image.png 发布过程 1 ....修改 Ingress 流量规则:根据发布配置调整 Ingress 配置,开始执行灰度。 4 . 人工验证:通过 cookie 或者 header 对灰度版本进行验证,根据结果选择完成发布或者回滚。...通过header实现灰度发布验证 image.png 待改进 1 . 2 . 3 . 3.2 蓝绿发布 不停老版本,部署新版本然后进行测试,确认ok,将流量切换到新版本,然后老版本升级到新版本

1.3K21
领券