写点什么

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

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

关注

评论

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

开源一夏 | 打工人的第25天-曾经的考研人

Amazing_eve

#开源

2021年数据泄露成本报告解读

SEAL安全

DevSecOps 数据安全 混合云 零信任 软件供应链

高效的组织信息共享知识库是一种宝贵的资源

Geek_da0866

秀到飞起!Alibaba全新出品JDK源码学习指南(终极版)限时开源

Java全栈架构师

程序员 程序人生 jdk源码 Java 面试 架构师

ModelWhale 云端运行 WRF 中尺度数值气象模式,随时随地即开即用的一体化工作流

ModelWhale

数据科学 气象 全流程一体化 WRF 大气科学

技术干货|如何将 Pulsar 数据快速且无缝接入 Apache Doris

SelectDB

数据库 Doris pulsar 数据导入 kafaka

出海季,互联网出海锦囊之本地化

融云 RongCloud

元宇宙 IT业界

带你了解什么是 Web3.0

liuzhen007

Web 3.0

详谈RDMA技术原理和三种实现方式

C++后台开发

网络协议 C/C++后台开发 C/C++开发 RDMA技术 以太网

生物统计师与临床医生协同研究使用的低代码洞察平台丨数据科学 x 临床医学

ModelWhale

团队协作 Jupyter Notebook 数据科学 低代码开发 临床医学

中小微企业如何简单便捷、低成本实现数字化?360视觉云有妙招

ToB行业头条

基于Java的插件化集成项目实践

阿提说说

微服务 插件化

面试不再被吊打!这才是Redis分布式锁的七种方案的正确打开方式

程序员小毕

Java 架构 面试 分布式 分布式锁

ICDAR比赛技术分享

之家技术

算法 人工只能 竞赛 ICDAR

利用java实现视频人像分割及视频背景替换

夏夜许游

Java 图像分割 视频人像分割 背景替换

不可忽略!户外LED显示屏的特点及优势

Dylan

LED显示屏 户外LED显示屏 led显示屏厂家

基于DMS的数仓智能运维服务,知多少?

华为云开发者联盟

数据库 后端 监控 智能运维

绝无此例!用实例演示如何使用Spring搭建微服务框架

Java永远的神

spring 面试 微服务 springboot SpringCloud

浅谈Service Mesh对业务系统的价值

HelloGeek

微服务 云原生 server mesh 微服务治理

「一篇终结JVM」:Java面试必问十个JVM核心知识点梳理

Java全栈架构师

Java 程序员 面试 程序人生 JVM

一次做数据报表的踩坑经历,让我领略了数据同步增量和全量的区别

百思不得小赵

数据同步 增量同步 全量同步 签约计划第三季 8月月更

开源一夏 | 阿里云物联网平台之极速体验

六月的雨在InfoQ

阿里云 开源 物联网 8月月更

破解数字化转型困局,企业分析协同场景案例解析

ModelWhale

数据分析 数字化转型 构建模型 成功案例 协同软件

为何微博又双叒叕崩溃了?

华仔

视频人脸识别和图片人脸识别的关系

夏夜许游

人脸识别 视频人脸识别

国内首发可视化智能调优平台,小龙带你玩转KeenTune UI

OpenAnolis小助手

开源 龙蜥社区 sig KeenTune 一键式性能调优

开源一夏 |我在滴滴做开源

石臻臻的杂货铺

开源 8月月更

豆瓣评分9.0,“Linux命令行”经典巨著升级版上市了!

图灵教育

可复现、开放科研、跨学科合作:数据驱动下的科研趋势及应用方案

ModelWhale

数据分析 代码复现 开放生态 协同软件 科研成果

从零开始搭建MySQL主从复制架构

杨杰灵

Java MySQL 主从复制

融云「音视频架构实践」技术专场【内含完整PPT】

融云 RongCloud

音视频技术

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