10 月 23 - 25 日,QCon 上海站即将召开,现在购票,享9折优惠 了解详情
写点什么

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

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

关注

评论

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

2021版最新!字节跳动3面+腾讯6面一次过,谈谈我的大厂面经

Java架构之路

Java 程序员 架构 面试 编程语言

一文读懂开源项目 OpenHarmony2.0

科技热闻

阿里都会问些什么?4面阿里余额宝Java高级技术岗

Java架构师迁哥

揭秘Spring家族之——AOP和IOC

Java架构师迁哥

老同学突然升到了阿里P7,只因偷偷掌握了JVM的奥秘?

Java架构师迁哥

@成都的Coder

蚂蚁集团移动开发平台 mPaaS

flutter 移动开发 mPaaS

java中的NIO和IO到底是什么区别?20个问题告诉你答案

华为云开发者联盟

Java io nio buffer channel

学历不够,技术来凑,8年开发经验,逆袭拿到阿里P7岗

Java架构师迁哥

带你遨游银河系的十种分布式数据库

悟空聊架构

数据库 分布式 分布式数据库 6月日更

【译】JavaScript 代码整洁之道-重构篇

KooFE

JavaScript 大前端 代码重构 6月日更 整洁代码

花了三个小时把一份GitHub上标星115k的《Java超全进阶教程》整理成了PDF文档。

Java架构之路

Java 程序员 架构 面试 编程语言

从零开始学习3D可视化之坐标系

ThingJS数字孪生引擎

物联网 可视化 数字时代 3D模型 3D可视化

代码写的烂才是原罪?字节三面+微信四面+PayPal四面,大厂面经分享

Java 程序员 架构 面试

为什么开发5年的同事,还在学习23种设计模式?是他太菜?

Java架构师迁哥

普通二本,吃透这份阿里高级专家的《Java面试手册21版》成功拿下腾讯offer

Java架构师迁哥

博客

vincentjia

双非本科逆袭记,阿里技术四面+交叉面+HR面,成功拿到offer

Java架构师迁哥

看Kunpeng BoostKit 使能套件如何实现大数据场景倍级性能提升

华为云开发者联盟

大数据 开源 鲲鹏 鲲鹏计算 Kunpeng BoostKit

AI缘起——达特茅斯会议

行者AI

人工智能

Hanoi 塔问题(Java实现)

若尘

数据结构 java编程 6月日更

每日优鲜:AI 技术驱动下的社区新零售

蚂蚁集团移动开发平台 mPaaS

人工智能 算法 图像识别 codehub

Mybatis缓存机制详解

北游学Java

Java mybatis

入职美团定级P7,总结2021年最新180道高级岗面试题及答案

Java架构师迁哥

数仓发生数据倾斜不要慌,教你轻松获取表倾斜率

华为云开发者联盟

GaussDB MPP GaussDB(DWS) 数据倾斜 并行架构

5.7w字?GitHub标星120K的Java面试知识点总结,真就物超所值了

Java 编程 程序员 面试 计算机

网络攻防学习笔记 Day39

穿过生命散发芬芳

网络攻防 6月日更

Linux Shell 自动交互人机交互的 3 种方法

学神来啦

Linux 运维 Shell 虚拟机 linux运维

京东T8Java架构师呕心沥血总结整理的《15w字的Java面试手册》免费开放分享给大家复习。

Java架构之路

Java 程序员 架构 面试 编程语言

解读革命性容器集群CCE Turbo:计算、网络、调度全方位加速

华为云开发者联盟

容器 华为云 CCE Turbo 集群服务器

如何在 Electron 上实现 IM SDK 聊天消息全文检索

网易云信

全文检索 Electron IM

干货:ANR日志分析全面解析

vivo互联网技术

android 堆栈 日志分析 anr

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