通过了解阿里云函数计算新功能版本管理在事件驱动模式中的使用,我们看到了别名是如何简化新版本上线的过程的。然而现实是残酷的,直接更改别名指向的版本来升级服务时,往往会出现新版本引入带来的不稳定,有没有更好的方法呢?别名的灰度发布功能该登场了。函数计算提供的别名,可以指向一个主版本和一个灰度版本,并指定灰度版本的权重。这样就可以灵活调整两个版本间的流量分布,很大限度地减少上线新版本引起的不稳定。

如上图所示,假设我们已经有别名Prod指向稳定的版本1,此时版本2也已经发布好准备上线。我们可以采用灰度发布的方式,更改Prod别名将灰度版本设定为2,灰度百分比设置为5%。更新后Prod指向的主版本仍然为版本1,函数计算会转移5%的流量到版本2,剩余95%的流量仍然由版本1来服务。当确定版本2稳定运行后,再更新别名Prod的主版本为版本2,从而完全切换到新版本。

当别名的灰度发布功能被使用时,您可以通过以下三种方式来确定被调用的服务版本:

  1. 如果您为自己的服务配置了日志服务,每次函数调用,都可以查看到相关日志。日志中的“isDarkLaunch”字段表示此次调用命中的是灰度发布的版本,“externalServiceVersion”字段表示此次调用使用的具体服务版本。
  2. 每次函数调用,Context对象的Service信息中会包括版本信息,其中 “qualifier”字段表示调用函数时传入的版本信息,“versionId”表示根据qualifier解析出的具体版本号。

  3. 每次同步函数调用,响应中都包含 “x-fc-invocation-service-version” header以指示调用的服务版本。

通过别名的灰度发布功能,流量可以在不同的版本间轻松切换,让新版本的上线更安全!总结一下:

  1. 使用别名Prod指向稳定的版本1,线上的调用都通过别名来进行。
  2. 当新版本2准备上线时,将Prod的灰度版本设为版本2,权重从5%开始。
  3. 观察版本2在线上表现稳定后,更新别名Prod指向版本2。

版本管理功能文档:

  • 版本管理示例
  • 版本管理简介
  • 使用别名切换流量

你还在生产环境改代码么?函数计算版本管理(三)使用别名进行灰度发布...相关推荐

  1. 生产环境中Oracle常用函数总结

    1>to_char,将日期转换为字符:add_months,在第一个参数的日期上加或者减第二个参数的值: select dkzh,jkhtbh,yhkrq,dkffrq,shqs,dqyqcs, ...

  2. 如何将git服务器同步到本地文件夹,使用git在服务器上部署git仓库并实现提交代码时同步代码到生产环境...

    最近由于需要对正在运行的系统进行新功能添加,本来是可以通过github进行代码维护,但是由于这个项目涉及一些问题,目前还不能开源,所以只能是手动覆盖bug文件,生产环境上的代码反而是最新的了. 之前有 ...

  3. JDK 9 发布仅数月,为何在生产环境中却频遭嫌弃?

    点击上方"CSDN",选择"置顶公众号" 关键时刻,第一时间送达! 千呼万唤始出来,在经历了整整一年的跳票之后,Java 9 终于在 9 月 21 日拨开云雾, ...

  4. 前端工程师生产环境 debugger 技巧

    关注公众号 前端开发博客,领27本电子书 回复加群,自助秒进前端群 导言 开发环境 debug 是每个程序员上岗的必备技能.生产环境呢?虽然生产环境 debug 是一件非常不优雅的行为,但是由于种种原 ...

  5. MyHeritage是如何实现发布到生产环境的

    \ 本文要点 \\ 持续部署对业务.质量.速度和满意度有着重要的影响.\\t 任何巨大的更改都开始于增量小步骤.\\t 任何完全持续部署得以应用之前,都需要一些测量到位,其中最重要的就是测试.\\t ...

  6. java生产问题快速定位_生产环境如何快速跟踪、分析、定位问题-Java

    我相信做技术的都会遇到过这样的问题,生产环境服务遇到宕机的情况下如何去分析问题?比如说JVM内存爆掉.CPU持续高位运行.线程被夯住或线程deadlocks,面对这样的问题,如何在生产环境第一时间跟踪 ...

  7. express-日志、开发环境、生产环境

    express-日志.开发环境.生产环境 为了记录在开发的过程以及项目使用过程中的操作,通常会使用日志记录用户操作 express脚手架搭建看这里 日志的使用 express-日志.开发环境.生产环境 ...

  8. 生产环境的 ServiceMesh 流量劫持怎么搞?百度有新招

     背景 ServiceMesh 社区使用 iptables 实现流量劫持,这个机制在百度生产环境使用会遇到一些问题,因此,我们探索了其他的流量劫持方式,如基于服务发现的流量劫持机制.基于 SDK 的流 ...

  9. 生产环境遇到难题,你是如何解决的?

    文章目录 1. 生产环境 cpu 飙高产生的原因? 2. 生产环境如何排查cpu 飙高问题? 3. 生产环境遇到了报错,你是如何定位解决的呢? 4. 调用接口如果服务器端一直没有响应怎么解决? 5. ...

  10. 写一段代码提高内存占用_记录一次生产环境中Redis内存增长异常排查全流程!...

    点击上方 IT牧场 ,选择 置顶或者星标 技术干货每日送达 最近 DBA 反馈线上的一个 Redis 资源已经超过了预先设计时的容量,并且已经进行了两次扩容,内存增长还在持续中,希望业务方排查一下容量 ...

最新文章

  1. git如何merge github forked repository里的代码更新?
  2. Codeforces 474 C. Captain Marmot
  3. python 面试必问,不会真的要打脸~
  4. 【超参数寻优】遗传算法(GA) 超参数寻优的python实现
  5. php时间测试,PHP 测试程序运行时间
  6. B站【千锋】Linux云计算基础视频教程_650集完全入门 课堂笔记
  7. 无线网卡代理服务器连接失败怎么办,电脑用无线网卡连不上网的解决方法
  8. Win10更新失败的解决办法
  9. 《互联网信贷风险与大数据》读书笔记(四)
  10. 安全测试:听云短信接口安全测试,你的短信接口到底有多危险,可能瞬间损失过万,短信接口防盗刷测试
  11. thymeleaf模板获取markdown数据后,渲染到页面上(showdown.js)
  12. [RK3568 Android11] 教程之制作和替换android开机logo图片
  13. 截止2017年5月19日小虎软考粉丝有798人
  14. 数字图像处理(1)——认识数字图像
  15. Android安卓——实现发短信功能的代码
  16. DVWA的搭建以及文件上传漏洞各个等级测试
  17. 单片机-stm32-使用cdc类实现vcp(虚拟串口)
  18. Filter-url拦截
  19. Python写文件到指定路径以及读取文件内容
  20. win7 简易版升级旗舰版

热门文章

  1. C# 线程间互相通信
  2. 作业 3 应用分支与循环结构解决问题
  3. gdb调试 -带有命令行参数
  4. 【算法学习】Fast burst images denoising
  5. 【VC++类型转换】CString和System::String类型的转换
  6. ENVI学习总结(十五)——遥感影像分类与应用
  7. PHP全文索引 讯搜xunsearch
  8. Java微信消息推送(二)
  9. 统计信号处理知识点总结_统计信号处理-简单看看克拉美罗界
  10. Volley源码解析(一)