首页>科技 >内容

Netflix开源内部金丝雀自动化测试工具Google把它变成跨云持续派送的利器

科技2021-03-01 16:04:24
最佳答案

Netflix与Google共同释出开源的自动化金丝雀分析(Automated Canary Analysis,ACA)工具Kayenta,该服务能帮助开发团队降低快速部署可能发生的风险,以应付现今各种规模以及持续交付的工作。

Netflix的资深软体工程师Michael Graff表示,Kayenta集结了多年Netflix产品快速交付的经验与教训,而现在Kayenta是Netflix交付产品的关键部分,能有效降低改变生产环境所带来的风险。 

由于鸟类金丝雀对甲烷以及一氧化碳很敏感,在过去科技较不发达的时代,矿工会带着金丝雀进矿坑,透过金丝雀对空气的反应,判断是否存在危险气体。而对软体工程来说,释出金丝雀版本是一种测试策略,能降低将新版本部署到正式产品环境的风险。

常见做法便是让大部分用户使用稳定正式版,而对小部分用户部署金丝雀版本,并透过分析两个版本产生的资料,来了解新版与旧版的差异。而Kayenta便在其中扮演自动化分析的角色。Netflix与Google合作后,Kayenta被整合到了开源多云持续交付平台Spinnaker中,现在还能跨多云环境执行自动化的金丝雀测试。

为分析金丝雀版本,Kayenta会把金丝雀版本与产品基準(Production Baseline)相比。理论上应该是拿正式环境的产品来比较,但是由于正式产品已运作一段时间,会产生统计偏斜的问题,因此分析团队需要产生新的产品基準来比较,才能确保后续产生的指标没有偏差。

Spinnaker可以同时执行金丝雀版本与一群产品基準丛集,这些丛集通常每个都包含2到3个运算实体,而约1%少数实际用户的服务请求,会被导引至这些丛集上,并根据时间纪录性能以及功能指标,Kayenta能自动将基準从及与金丝雀版本比对判断,让开发团队了解金丝雀版本与正式版本的细节差异。

Kayenta已整合许多监控工具,包括Stackdriver、Prometheus、Datadog和Netflix Atlas等。当然也能与其他工具合併使用,因为Kayenta为可插拔设计,包括指标来源、判断系统以及结果储存都是。而且因为与Spinnaker整合的关係,Kayenta还可用于在AWS、GCP、Azure、Openstack、Kubernetes或混合环境等,支援分析和部署金丝雀版本的平台。

Michael Graff提到,Netflix正将整个金丝雀测试系统转移至Kayenta,所有工作将在数个月内完成,目前Kayenta每天执行200个的判断,占整体负载30%。他指出,由于受高度信任的部署,而大幅提升开发人员的工作效率。

免责声明:本文由用户上传,如有侵权请联系删除!