AICon 北京站 Keynote 亮点揭秘,想了解 Agent 智能体来就对了! 了解详情
写点什么

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:003104
用户头像

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

关注

评论

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

这个好用的分布式应用配置中心,我们把它开源了

百度Geek说

分布式 大前端 服务器

如何从一段视频中一次性修整多个片段

奈奈的杂社

视频剪辑 视频后期 视频处理

参照STM32时钟树配置STM32CubeMX Clock Configuration(STM32L011G4U6为例)

不脱发的程序猿

单片机 STM32微控制器 时钟树 STM32CubeMX STM32时钟配置

音视频实战(6)- RTSP媒体协议流的录制方案及其覆盖策略详解

liuzhen007

音视频 5月日更 签约计划第二季

双非渣硕,是如何拿到苏宁、阿里的offer的?(分享学习心得)

Java 程序员 架构 面试

单片机I/O控制方式(UART中断和DMA中断的区别)

不脱发的程序猿

嵌入式 单片机 GPIO的原理、特性 单片机I/O设备的控制方式

Java开发5年,我为什么选择从蚂蚁金服离职?浅谈经历和经验!

Java架构追梦

Java 架构 面试 蚂蚁金服 经历分享

NAT穿透原理详解

IT酷盖

音视频 p2p NAT

XDPool比特兄弟矿场系统开发|XDPool比特兄弟矿场APP软件开发

Golang command source code

escray

学习 极客时间 Go 语言 5月日更

灵魂拷问:后端业务开发要会用 K8s 到什么程度?

阿里巴巴云原生

容器 运维 云原生 k8s 存储

精选Hadoop高频面试题17道,附答案详细解析

五分钟学大数据

大数据 hadoop 5月日更

微服务化转型,拆就行了?这样做很危险...

BoCloud博云

微服务

这是我金三银四收到的第6个Offer:美团+阿里Java研发岗

Java 程序员 架构 面试

【死磕JVM】用Arthas排查JVM内存 真爽!我从小用到大

牧小农

JVM

Flink+Clickhouse构建实时数仓的最佳实践

Wping

大数据 flink 实时数仓 Clickhouse

hive的主流文件存储格式对比实验

大数据技术指南

大数据 hive 5月日更

SecSolar:为代码“捉虫”,让你能更专心写代码

华为云开发者联盟

代码 华为云 CloudIDE 代码安全检测 SecSolar

抱歉,“行业毒瘤”这个锅,低/无代码不背

陈思

低代码 无代码 低代码平台 无代码平台

【实战问题】-- 布隆过滤器的三种实践:手写,Redission以及Guava(2)

秦怀杂货店

Java 布隆过滤器

GitHub开源:狗屁不通文章生成器

不脱发的程序猿

GitHub 开源 狗屁不通文章生成器

51CTO熊平:HarmonyOS是大势所趋

科技汇

🕋【Redis干货领域】彻底走进主从架构的世界(入门篇)

码界西柚

主从同步 Redis 核心技术与实战 5月日更 Redis系列专题 原理篇

兄弟矿场系统开发|兄弟矿场软件APP开发

PyQt5 实现可空值的 QDateTimeEdit

一代咩神

Python PyQt QDateTimeEdit

KubeVela + KEDA:为应用带来“与生俱来”的弹性伸缩能力

阿里巴巴云原生

容器 开发者 云原生 监控 中间件

引荐好友成为推广者还能拿额外奖励?!华为云引荐奖励计划来啦!

华为云开发者联盟

文章 返现奖励 推广计划 返利 团长

交通流量预测,EasyDL带你零代码实战

百度大脑

零代码 EasyDL

雀食蟀!Java Netty实战入门

北游学Java

Java Netty 网络 框架

iOS 面试策略之语言工具-Xcode使用

iOSer

ios xcode 语言 & 开发

NetWebCore实现文件上传功能

happlyfox

学习 .net core 5月日更

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