写点什么

Kayenta:来自 Netflix 和 Google 的开源金丝雀分析工具

  • 2018-04-18
  • 本文字数:1067 字

    阅读完需:约 4 分钟

看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

Kayenta 是一种开源的自动金丝雀分析工具,用于评估新版本软件产品的准备良好程度。作为一种 Netflix 内部开发的工具,Kayenta 在 Google 的帮助下已集成到 Spinnaker ,实现了跨多个云执行自动金丝雀发布。要分析新软件版本是否就绪,其中可以包含代码更改和(或)配置调整。

金丝雀发布是一种用于降低新版本软件部署到生产环境中风险的技术。其中,新版本软件被称为“金丝雀”,面向一个小范围的用户子集部署,并与稳定运行版本一并运行。用户流量将分别分割给这两个版本,使得部分用户输入请求转向金丝雀。

在对一个金丝雀版本进行分析时,Kayenta 需要试探该版本,并将试探结果与生产基线给出的结果相对比。理论上讲,Kayenta 可以将金丝雀与实际生产系统做对比。但是由于生产系统已经运行了一段时期,这种做法会给出一个在统计上存在偏向性的结果。在分析中创建一个全新的基线集群,这确保了所生成的度量免受任何长期运行过程的影响。

Spinnaker 在供用户访问的生产系统之外,同时运行一个金丝雀集群和一个新的基线集群。通常每个集群会包括三个实例,但这并非一个固定不变的设置。随后,来自于一小部分(大约 1%)实际客户的请求将被导向给这些集群,系统将收集一系列的性能和功能度量并做日志,存储到一个时序数据库,之后做自动对比,进而查看金丝雀与基线的对比情况。该称作“判定”(judgement)的过程给出一个介于 0 到 100 之间的整体分值。判定步骤可多次执行,而非仅做一次。

Netflix 的金丝雀发布过程(图片来自 Netflix 技术博客)判定的分数划分为三等,即成功(金丝雀可被提升为部署)、临界(可能需要人为介入去确定需要对版本做什么),以及失败(停止整个流水线并回滚,进入其中的流量被导向回生产系统)。

Kayenta 已集成了 Stackdriver、Prometheus、Datadog 和 Netflix Atlas 等多种监控工具。因为整个系统采用了插件式设计,Kayenta 也支持使用其它一些工具,包括度量源、判定系统和结果存储。

与 Spinnaker 的集成,使得 Kayenta 可在 AWS、GCP、Azure、Openstack、Kubernetes 等受支持平台以及一些混合系统上分析并部署金丝雀。

Netflix 正在将其整个金丝雀部署系统迁移到 Kayenta。按Netflix 的说法,迁移有望在未来数月内完成。Kayenta 当前每日约运行200 次判定,涉及约全部负载的30%。Netflix 补充介绍,“通过在部署中为工程人员提供更高度的信任,Kayenta 增加了开发人员的生产力。”

查看英文原文: Kayenta: An Open Source Canary Analysis Tool from Netflix and Google

2018-04-18 19:003327
用户头像

发布了 391 篇内容, 共 155.7 次阅读, 收获喜欢 257 次。

关注

评论

发布
暂无评论
发现更多内容

Android原生系统真的那么好用吗?安卓原生系统吊打其他系统,因为有Google-Play

android 程序员 移动开发

Android基础之Binder分析,flutter环境变量配置

android 程序员 移动开发

Android妹子深夜和我视频,哭的像个泪人,我该怎么安慰

android 程序员 移动开发

Android干货---丢掉你老旧的参数传递方式,投入Bracer的怀抱吧。

android 程序员 移动开发

Android应用Context详解及源码解析,Android大厂技术面试题汇总

android 程序员 移动开发

Android刘海屏、水滴屏全面屏适配详解,996页阿里Android面试真题解析火爆全网

android 程序员 移动开发

Android大牛是如何炼成的:郭霖的成长之路专访,flutter游戏引擎

android 程序员 移动开发

Android学习别“走弯路”,django实战项目源码

android 程序员 移动开发

Android屏幕适配前先了解这些,在阿里工作5年了

android 程序员 移动开发

Android岗常见40道面试题,面试前必须了解的知识点!,android开发工程师企业所在区域

android 程序员 移动开发

Android应用启动流程分析(1),android应用开发实战项目

android 程序员 移动开发

Android入门项目(八)Android流式筛选弹框,android应用程序开发的流程

android 程序员 移动开发

Android动画之属性动画,移动智能终端开发技术题库

android 程序员 移动开发

Android基础系列(3)编译时注解处理器APT,android订餐系统源码

android 程序员 移动开发

Android应用保活实践,字节跳动Android研发岗这些知识点内部泄露出来了

android 程序员 移动开发

Android基础进阶 - 消息机制 之Native层分析,统统给你解决

android 程序员 移动开发

Android小白在两年时间成为一个大牛,我究竟做了什么?

android 程序员 移动开发

Android布局优化:include-、merge,android开发入门与实战作者

android 程序员 移动开发

Android学习趋势:讲一下音视频热点知识,移动设备开发图书

android 程序员 移动开发

Android布局优化技巧大盘点,最新BAT大厂面试者整理的Android面试题目

android 程序员 移动开发

Android全面解析之Handler机制:常见问题汇总,kotlin静态类

android 程序员 移动开发

Android关于Canvas你所知道的和不知道的一切,银行软件开发面试题

android 程序员 移动开发

Android启动优化、布局优化必经之路—如何精准获取页面绘制时间

android 程序员 移动开发

Android四大组件之一(broadcast receiver),全网首发

android 程序员 移动开发

Android在开发初期之后应该何如学习?怎样才算精通?方向在哪儿

android 程序员 移动开发

Android刘海屏、水滴屏全面屏适配方案,80后程序员感慨中年危机

android 程序员 移动开发

模块二作业

Geek_1d37ea

架构实战营

Android复习资料——常见面试算法题汇总,2021年最新Android大厂面试笔试题分享

android 程序员 移动开发

Android四大组件之一(broadcast receiver)(1),kotlin版权

android 程序员 移动开发

学习总结(第二周)

Geek_1d37ea

架构实战营

Android大牛近期大厂面试详解(附解答),hashmap底层原理

android 程序员 移动开发

Kayenta:来自Netflix和Google的开源金丝雀分析工具_Google_Abel Avram_InfoQ精选文章