写点什么

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

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

关注

评论

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

架构实战营四期-毕业设计

木几丶

「架构实战营」

在线HTTP/HTTPS协议GET,POST,RESTful接口测试

入门小站

工具

拆分电商平台为微服务

smile

毕业设计

Anlumina

「架构实战营」

模块六作业

Mr小公熊

设计一款照片一键加水印的小工具

DS小龙哥

3月月更

模块六

Geek_28cf33

KCP协议:从TCP到UDP家族QUIC/KCP/ENET

zhoulujun

网络加速 KCP 游戏加速 quick 带宽优化

架构训练营毕业总结

沈益飞

架构训练营 架构师训练营 4 期

kratos 微服务框架商城实战初识 kratos

Aliliin

Go Kratos

电商系统的微服务拆分方案设计

五月雨

架构实战营 「架构实战营」

作业六

Geek_f3e842

架构实战营

【51单片机】矩阵键盘

謓泽

3月月更

电商系统微服务拆分

风中奇缘

#架构实战营 「架构实战营」

Linux之seq命令

入门小站

Linux

架构实战营:模块六业

刘璐

毕业总结:

Anlumina

#架构实战营

模块一作业

Dean.Zhang

架构实战营

Flink对接kafka

云原生

flink kafka 流计算 实时计算

关于DDD的一些思考

meacial

DDD 架构设计 领域模型

PHP session反序列化漏洞原理解析

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 漏洞挖掘

电商系统微服务架构拆分

李大虾

#架构实战营 「架构实战营」

模块6作业:电商系统微服务拆分

炎彬

「架构实战营」

模块九毕业设计

沈益飞

架构训练营 架构训练营4

Centos7安装单机版Redis

云原生

redis Redis 数据结构

到底为什么不建议使用SELECT *?

蝉沐风

MySQL

架构实战营四期-毕业总结

木几丶

「架构实战营」

聊聊 Webpack 插件系统的关键实现 Tapable

蛋先生DX

JavaScript 前端 webpack

我的前端技术思考

PingCode研发中心

架构 Worktile angular dialog PingCode

电商系统微服务拆分

张逃逃

Orbiton JS:用于构建 UI 的 JavaScript 库

devpoint

JavaScript 3月月更 Orbiton JS

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