NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

Bloomberg 发布了专用于 Kubernetes 的开源混沌测试工具 PowerfulSeal

  • 2018-01-29
  • 本文字数:1443 字

    阅读完需:约 5 分钟

看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

近期在美国 Austin 市举行的 KubeCon 北美大会上,Bloomberg 展示了它们最新开源的“ PowerfulSeal ”工具。该工具支持在 Kubernetes 集群内使用停用目标 Pods 和底层节点架构的方式开展混沌测试。Kuberneters 是一种在微服务部署中广为使用的容器编排平台。混沌工程实践有助于弹性系统的构建。

PowerfulSeal 遵循“混沌工程原则”,设计灵感来自于著名的 Netflix Chaos Monkey 。该工具支持工程师“故意地破坏系统”,并观察在引入各种故障模式下会发生什么问题。PowerfulSeal 使用 Python 编写,当前专用于 Kubernetes,并提供了“云驱动器”,可用于管理 OpenStack 平台上的架构故障。PowerfulSeal 还给出了一个 Python 的 AbstractDriver 类,鼓励贡献者开发可用于更多云平台的驱动器。

PowerfulSeal 提供交互和自治两种工作模式,:

  • 交互模式支持运行工程师发现集群中的组件,手工生成一些故障情况并探究后果。该模式支持对节点 Pod 部署命名空间的操作。
  • 自治模式会读取一个定义了一定数量 Pod 和节点故障场景的策略文件,并按指定文件设定方式对系统做“破坏”。在每种场景中,定义了一系列在集群上执行的匹配、过滤和动作。下面给出了一个最小化的非操作(no-op)JSON 策略文件的例子。该文件本身并不会生成任何故障,但是可以进一步将故障定义在JSON 文件的“ nodeScenarios”和“podScenarios”节中。
复制代码
config:
minSecondsBetweenRuns: 47
maxSecondsBetweenRuns: 452
nodeScenarios: []
podScenarios: []

每个故障场景是由匹配、过滤和动作组成的。其中,匹配和过滤可定义为目标节点名称、IP 地址、Kubernetes 命名空间和标签、时间和日期等,动作可定义为 start、stop 和 kill 等。策略文件可使用完整的 JSON schema 验证。在项目的“tests”目录中提供了一个策略文件的例子,其中列出了一些主要的可用选项。

PowerfulSeal 可以通过 pip 安装。可以通过如下过程,初始化并配置用于 Kubernetes 集群的命令行工具:

  • 通过指定一个 Kubernetes 配置文件,将 PowerfulSeal 指向目标 Kubernetes 集群。
  • 通过指定适当的云驱动器和证书,将 PowerfulSeal 指向底层云 IaaS 平台。
  • 确保 PowerfulSeal 可以通过 SSH 登录节点并执行命令。
  • 编写所需的策略文件,并将策略文件加载到 PowerfulSeal。

在过去一年中,混沌工程和弹性工程受到了日益广泛的关注。在此领域,已经推出了首个商业工具,即 Gremlin 。但是该领域的一些思想领袖,例如 Adaptive Capacity Labs 的联合创始人 John Alspaw ,已经警告说不应忽视弹性工程中的人为因素。该警告应得到重视,因为人的因素事实上要比相关的工具更加重要。

Gremlin Inc 的 CEO Kolton Andrus 也指出,仅依靠工具是远远不够的。他进而提出,混沌工程需要训练工程师团队和运行“游戏日”,操练工程师明确应如何对失败做出响应(Andrus 在近期 InfoQ podcast 中对此做了详细的介绍)。就如何建立混沌工程实践并使之成熟化,Netflix 的高级混沌工程师 Nora Jones 也在近期的 InfoQ Podcast 中分享了她的一些想法。

在 PowerfulSeal 项目的 GitHub README 中,提供了更多的细节,并给出了交互式演示。在 CNCF YouTube 频道上,可以看到此次 KubeCon 大会演讲“使用 PowerfulSeal 测试运行在 Kubernetes 上的分布式软件( Testing Distributed Software on Kubernetes with PowerfulSeal )”的视频。

查看英文原文: Bloomberg Release Open Source “PowerfulSeal” Kubernetes-Specific Chaos Testing Tool

2018-01-29 18:0010720
用户头像

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

关注

评论

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

疫情时代下,线上协同办公成时下热点

Baklib

远程办公 企业 协同办公 在线设计

安利一个比Gitbook更好用的国内帮助文档制作平台

Baklib

最全Java面试攻略,吃透25个技术栈Offer拿到手软

Java-fenn

Java 编程 程序员 java面试 Java面试题

2022年震荡与加速中前行的新消费

易观分析

疫情 消费

Chrome操作指南——入门篇(十二)color picker(颜色选择器)

Augus

Chrome开发者工具 9月月更

通过 Kasten K10 by Veeam 与 SUSE Rancher 实现云原生应用灾备迁移

Java-fenn

Java

前端必读3.0:如何在 Angular 中使用SpreadJS实现导入和导出 Excel 文件

葡萄城技术团队

AI走向何方?我们在GTC 2022看到了这些趋势

脑极体

峰会倒计时1天!九位行业大咖邀您共启极速统一的数据分析新范式

StarRocks

【Jvm】Jvm类加载机制

石臻臻的杂货铺

JVM 9月月更

SelectDB 创始人兼 CEO 连林江荣获 OSCAR 开源产业大会「尖峰开源人物 」奖项

SelectDB

数据库 大数据 数据仓库 企业号九月金秋榜 尖峰开源

金九银十必备!这份java面经让你轻松拿下45kOffer

Java-fenn

Java 程序员 面试 java面试 Java面试题

2021年中国自然语言处理软件及服务市场规模超200亿,市场保持高速增长,竞争格局远未稳定

易观分析

自然语言处理 市场

企业选择局域网即时通讯软件的必要性是什么?

WorkPlus

TiDB Hackathon 2022丨总奖金池超 35 万!邀你唤醒代码世界的更多可能性!

PingCAP

#TiDB

牛客网趋势最热Java八股文,速度赶紧马上打包带走!

Java-fenn

Java 编程 程序员 java面试 Java面试题

Baklib|怎样编写内嵌式的帮助文档?

Baklib

产品 产品经理 企业 帮助文档 在线设计

Chrome操作指南——入门篇(十三)element小技巧

Augus

Chrome开发者工具 9月月更

WorkPlus移动办公系统:打造安全专属、统一业务与运营的企业门户

WorkPlus

FAQ需要有哪些功能?哪些注意事项

Baklib

产品 产品经理 客户服务 FAQ

使用 NVIDIA CloudXR 从 Google Cloud 流式传输 VR 和 AR 内容

3DCAT实时渲染

每日算法刷题Day16-和为S的两个数字、数字排列、二进制中1的个数

timerring

算法题 9月月更

数据湖系列之二 | 打造无限扩展的云存储系统,元数据存储底座的设计和实践

Baidu AICLOUD

数据湖 元数据

《软件开发的201个原则》思考:6. 低可靠性比低效率更糟糕

非晓为骁

个人成长 软件工程能力 高质量

关于 Angular 应用 tsconfig.json 中的 target 属性

Jerry Wang

typescript 前端开发 angular web开发 9月月更

开发者有话说|在内卷中不断成长

timerring

9月月更 开发者有话说

当你 git push 时,极狐GitLab上发生了什么?

极狐GitLab

DevOps gitlab SSH gitops 极狐GitLab

Github最新Java面试1658核心讲,助力百人入大厂!

Java-fenn

Java 编程 程序员 java面试 Java面试题

Chrome操作指南——入门篇(十一)network

Augus

Chrome开发者工具 9月月更

电商黄牛,你被小红书盯上了

小红书技术REDtech

算法 电商风控 黄牛治理

优化帮助中心需要做到以下几点

Baklib

产品 帮助中心 在线设计

Bloomberg发布了专用于Kubernetes的开源混沌测试工具PowerfulSeal_DevOps & 平台工程_Daniel Bryant_InfoQ精选文章