Skip to main content

暑期2021

叶飞

叶飞

ChaosBlade PMC

欢迎参加开源软件供应链点亮计划 - 暑期 2021(以下简称 暑期 2021)是由 中国科学院软件研究所 与 openEuler 社区 共同举办的一项面向高校学生的暑期活动,旨在鼓励在校学生积极参与开源软件的开发维护,促进优秀开源软件社区的蓬勃发展。我们将联合各大开源社区,针对重要开源软件的开发与维护提供项目,并向全球高校学生开放报名。

目录#

任务背景#

将 ChaosBlade 事件导出到 SkyWalking & Prometheus

通常,系统在运行过程中会发生很多事件,如进程异常、重启、混沌实验等。事件的发生可能会影响系统的稳定性。因此,我们需要输出混沌实验的事件,然后我们可以将事件导入到 SkyWalking 和 Prometheus ,用于后续系统分析统计等场景的使用。

chaosblade-box 支持演练工具 chaos-mesh

chaosblade-box 是一个场景丰富的混沌工程平台,chaosblade-box 的出生就包含了工具市场和拓展演练工具的能力,目前包含演练工具 chaosblade 和 litmuschaos,本次任务我们需要拓展对 chaos-mesh 演练工具的支持。

任务清单#

本次“暑期2021”总共有两个任务,分别是:

在上一节已经介绍了任务的背景,下面小节中我们将以“任务一”和“任务二”来区分任务。

任务一#

本次任务主要在 chaosblade 和 chaosblade-operator 项目编码即可,Github 地址:

要求的技能#

  • Golang, Kubernetes

参考资料#

任务内容#

  • 在 chaosblade cli 执行器上下文埋点,将演练创建、演练恢复、Java Agent 挂载等事件导出到 SkyWalking
  • 在 chaosblade cli 执行器上下文埋点,将演练创建、演练恢复、Java Agent 挂载等事件导出到 Prometheus
  • 在 chaosblade-operator 对 crd 监听器埋点,将 crd 状态的变更事件导出到 SkyWalking 和 Prometheus

实现步骤#

  • 在 chaosblade exec 包下面分别包含很多执行器有 os、jvm、docker 等,需要对执行器的添加事件监听,来演练执行、演练恢复等事件
  • 在 chaosblade-operator 项目下监听了 blade 自定义资源状态的变更,需要将 blade 状态的变更事件导出。

工作量#

任务工作量
了解混沌工程和 ChaosBlade,能够使用 ChaosBlade 对主机和 K8S 注入故障5
可以尝试搭建 minikube ,安装 chaosblade-operator,了解 Operator 实现3
了解 SkyWalking 和 Prometheus5
熟悉 Prometheus 的 exporter5
了解 SkyWalking 的事件导入方式,可自行选择一种方案,参考 ISSUE5
熟悉 chaosblade 执行器的模型定义3
在 chaosblade cli 执行器上下文埋点,将演练创建、演练恢复、Java Agent 挂载等事件导出到 SkyWalking5
在 chaosblade cli 执行器上下文埋点,将演练创建、演练恢复、Java Agent 挂载等事件导出到 Prometheus5
在 chaosblade operator 对 crd 监听器埋点,将 crd 状态的变更事件导出到 SkyWalking 和 Prometheus5
单元测试3
集成测试5
PR 交付2

任务二#

本次任务主要在 chaosblade-box 编码即可,Github 地址:https://github.com/chaosblade-io/chaosblade-box ,可以 litmuschaos 是如何接入到 chaosblade-box 的。

要求的技能#

  • java

参考资料#

任务内容#

  • 添加 chaos-mesh 场景解析
  • 添加 chaos-mesh 演练执行器

实现步骤#

  • 在模块 chaosblade-box-scenario下添加一个 chaosblade-box-scenario-chaosmesh 的实现。
  • 在模块 chaosblade-box-invoker 下添加一个 chaosblade-box-invoker-chaosmesh-kubeapi 实现。

工作量#

任务工作量
了解 chaosblade-box,并且能部署和使用5
了解 chaos-mesh,能使用 chaos-mesh 注入故障5
了解 chaosblade-box 的工具市场设计,考虑如何接入 chaos-mesh3
熟悉 chaos-mesh 的混沌实验模型和 CRD 定义5
在 chaosblade-box 解析 chaos-mesh 的混沌实验模型和 CRD5
熟悉 chaos-mesh 的演练创建的流程5
在 chaosblade-box 创建 chaos-mesh 的演练5
单元测试3
集成测试5
PR 交付2

联系方式#