写点什么

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

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

关注

评论

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

第六周作业

lv

从运维域看 Serverless 真的就是万能银弹吗?

阿里巴巴云原生

阿里云 Serverless 运维 云原生

云原生背景下故障演练体系建设的思考与实践—云原生混沌工程系列之指南篇

阿里巴巴云原生

阿里云 云原生 混沌工程

2021 阿里云容器服务年度盘点:企业级容器应用变化和技术趋势观察

阿里巴巴云原生

阿里云 容器 运维 云原生

[架构实战营] 模块五作业

Geek_0ed632

「架构实战营」

考试数据存储方案

皓月

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

白帽子渗透行为监控方案

明亮安全观

网络安全 信息安全 渗透测试 行为监控

深信服智能边缘计算平台与 OpenYurt 落地方案探索与实践

阿里巴巴云原生

阿里云 云原生 边缘计算 openyurt

模块四作业

whoami

「架构实战营」

来了!「年度最强技术答辩」看这里

阿里巴巴云原生

阿里云 Serverless RocketMQ 云原生 编程挑战赛

ReactNative进阶(九):API学习之注册组件AppRegistry

No Silver Bullet

React Native 1月月更 AppRegistry

08 Prometheus之警报管理

穿过生命散发芬芳

Prometheus 1月月更

也谈谈Python的内存管理

宇宙之一粟

Python 内存管理 1月月更

Elasticsearch核心原理系列:10张图理解Elasticsearch核心概念

慕枫技术笔记

后端 1月月更

一次无脑接口测试导致的无效排查的经历

liuzhen007

1月月更

架构实战营 第 4 期 模块四作业

架构实战营 模块四 「架构实战营」

「架构实战营」模块四《如何设计业务高性能高可用存储架构》作业

DaiChen

作业 模块四 「架构实战营」

架构训练营 -- 模块六

LJK

#架构训练营

常见网络安全专业术语

喀拉峻

黑客 网络安全 信息安全

在线JSON转PHP Array工具

入门小站

工具

关于常见状态码,你了解多少?

坚果

服务器 1月月更

急速学习C#死锁

喵叔

1月月更

模块 4 作业

miliving

什么是 Github 的元数据以及如何备份 github 上的数据

汪子熙

GitHub 1月月更

今年最值得关注的5个云趋势

云原生

云计算 数据分析 云原生 趋势 SaaS

Linux之tar命令

入门小站

Linux

Spring Boot CLI安装(WIN10、macOS系统)

JavaEdge

1月月更

Spring Boot Serverless 实战系列“部署篇” | Mall 应用

阿里巴巴云原生

阿里云 Serverless 云原生 MAll

「程序员35岁被淘汰」已经22岁了

FunTester

程序员 职业发展 FunTester 35岁焦虑 35岁退休

电商系统微服务拆分和系统架构设计

drizzle

「架构实战营」

一文看懂椭圆曲线签名算法

Rayjun

区块链 椭圆曲线

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