云原生与ChaosMeta

本文涉及的产品
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
可观测可视化 Grafana 版,10个用户账号 1个月
可观测监控 Prometheus 版,每月50GB免费额度
简介: ChaosMeta是一款专为云原生环境和自动化演练设计的先进混沌工程平台。它源自蚂蚁集团内部广受认可的混沌工程平台XMonkey,并代表了蚂蚁集团在跨BU级别大规模红蓝攻防演练中多年来积累的丰富经验、技术能力和产品实践。作为XMonkey的开源版本,ChaosMeta凝结了蚂蚁集团稳定性团队在混沌工程领域的方法论以及经过复杂故障场景驱动下的独到见解。ChaosMeta不仅继承了XMonkey在多年混沌工程实践中的成熟技术和方法论,也体现了开放源代码的承诺,通过与全球开发者和专业人士的互动交流,ChaosMeta努力成为连接实际工程问题和前沿技术研究的桥梁。

作者:刘凇杉(chaosmeta-platform发起人)

一.云原生

理解

云原生旨在提供更高效、可扩展和可靠的应用程序交付和管理方式。云原生下的软件开发、构建和运行依托于云计算,通过容器化技术将应用程序拆分为一系列微服务,实现了应用现代化。这种架构提高了应用程序的可维护性、灵活性和可扩展性。

云原生改造步骤

由于金融业对安全性和稳定性有着极高的要求,云原生化改造过程中必须考虑合规性、连续性和功能完整性。为了确保金融业的数字化进程得以顺利推进,首先要保证业务的正常使用,可以针对特定的业务场景,选择一些关键的应用进行云原生改造。第二步再逐渐将现有的系统和应用逐步迁移到云原生环境中。这一步需要先仔细评估现有系统的复杂性和依赖关系,尤其是存在多年的僵尸应用。最后一步是“最终全量改造”,开始前要制定完整的迁移方案,迁移完成后使用混沌工程技术来整体验收系统的韧性、稳定性、可用性。

image.png

二.混沌工程

在蚂蚁集团,由于金融场景的多样性、规模化的服务节点以及复杂的系统架构,内部沉淀了很多故障信息。这些故障信息是混沌工程的最真实的变量,我们的目标是通过混沌工程实验来不断建立对系统的信心。

混沌工程的基本原则

  • 引入故障:混沌工程通过有目的地注入各种故障和异常条件来模拟现实世界中的各种情况。这可以包括网络中断、服务器崩溃、资源耗尽等。通过引入故障,可以评估系统在各种不利环境下的表现。
  • 观察和测量:混沌工程要求在引入故障的同时,对系统的状态和行为进行观察和测量。这可以通过监控系统指标、日志记录和度量系统来实现。观察和测量可以帮助识别系统中的潜在问题和性能瓶颈。
  • 自动化和可控性:混沌工程注重自动化和可控性。这意味着故障注入过程应该是可重复的,并且可以通过自动化工具或脚本进行控制。这样可以确保故障注入的一致性和可靠性,并且可以轻松地进行多次测试和演练。
  • 恢复和恢复能力:混沌工程的目标之一是测试系统的恢复能力。系统应该能够识别和处理故障,并尽快从故障中恢复正常运行。这要求系统具备自愈能力、自动恢复能力和优雅降级的能力。
  • 分布式系统考虑:混沌工程通常应用于分布式系统中。在测试和评估系统鲁棒性时,需要考虑到分布式系统中的不同节点间的网络通信和协调机制。

image.png

三.ChaosMeta

ChaosMeta是一款专为云原生环境和自动化演练设计的先进混沌工程平台。它源自蚂蚁集团内部广受认可的混沌工程平台XMonkey,并代表了蚂蚁集团在跨BU级别大规模红蓝攻防演练中多年来积累的丰富经验、技术能力和产品实践。作为XMonkey的开源版本,ChaosMeta凝结了蚂蚁集团稳定性团队在混沌工程领域的方法论以及经过复杂故障场景驱动下的独到见解。ChaosMeta不仅继承了XMonkey在多年混沌工程实践中的成熟技术和方法论,也体现了开放源代码的承诺,通过与全球开发者和专业人士的互动交流,ChaosMeta努力成为连接实际工程问题和前沿技术研究的桥梁。

image.png

ChaosMeta-Platform的设计理念在于通过对不同类型的ChaosMeta-Operator 下发CR(Custom Resource)来注入故障,结合Argo实现复杂的工作流程管理。平台使用有向无环图(DAG)来定义任务流,并制定 Dependencies来确保在一项特定任务启动前,依赖的其他任务已经结束。整个攻击流程设计上既直观又易于理解。用户在创建故障实验后,可以立即发起实验并生成实验结果。在实验结果中,用户可以清晰地查看每个节点的运行状况和相关的云原生日志。得益于ChaosMeta-Platform的实践完全基于云原生技术,它极大地简化了在K8S集群中进行元数据管理的过程。通过这种方式,许多参数可以通过下拉菜单选项来选择,大大降低了用户的操作难度和理解成本。下面概述了整体的使用流程:

  • 用户创建故障实验。
  • 用户发起实验,平台生成实验结果。
  • 用户在实验结果界面监控每个节点的运行情况及查看云原生日志。
  • 通过平台提供的用户界面和工具集,用户可以轻松地查看K8S集群的元数据。

image.png

ChaosMeta-Platform通过这些集成的功能,不仅提升了故障实验的效率,还保证了用户能够在复杂的云环境中轻松开展测试任务。


image.png


ChaosMeta混沌工程-公众号:

image.png

Github-Star:

https://github.com/traas-stack/chaosmeta

目录
打赏
0
0
0
0
1
分享
相关文章
自动化混沌工程 ChaosMeta V0.6 版本发布
混沌工程 ChaosMeta 的全新版本 V0.6.0 现已正式发布!新增了DNS异常、日志注入等故障能力,并且在可视化编排界面中提供了对流量注入、度量等各类节点的支持,提供自动化混沌工程的支撑能力。
502 0
自动化混沌工程 ChaosMeta V0.6 版本发布
阿里巴巴在混沌工程领域的实践和思考
APM 文章摘自知乎专栏 知乎-应用高可用 https://zhuanlan.zhihu.com/p/52505917导读: 混沌工程(Chaos Engineering):是在分布式系统上进行实验的学科, 目的是建立对系统抵御生产环境中失控条件的能力以及信心。
3598 0
ChaosMeta V0.7.0 版本发布 & 进入CNCF混沌工程全景图
混沌工程 ChaosMeta 的全新版本 V0.7.0 现已正式发布!该版本包含了许多新特性和增强功能,在编排界面提供了多集群管理,在代码层面支持多命令下发通道的选择。另外由蚂蚁集团发起的ChaosMeta于北京时间2024年1月10日正式进入CNCF混沌工程全景图。
152 0
ChaosBlade详细介绍
ChaosBlade 是阿里巴巴 2019 年开源的混沌工程项目,包含混沌工程实验工具 chaosblade 和混沌工程平台 chaosblade-box,旨在通过混沌工程帮助企业解决云原生过程中高可用问题。【2月更文挑战第11天】
1105 12
【alibaba/jvm-sandbox#03】JavaAgent 修改字节码的机制
开发者一般采用建立一个 Agent 的方式来使用 JVMTI,使用 JVMTI 一个基本的方式就是设置回调函数,在回调函数体内,可以 获取各种各样的VM级信息,甚至控制VM行为,如类加载时修改类
427 0
Redis核心开发者的新征程:阿里云与Valkey社区的技术融合与创新
阿里云瑶池数据库团队后续将持续参与Valkey社区,如过往在Redis社区一样耕耘,为开源社区作出持续贡献。
Redis核心开发者的新征程:阿里云与Valkey社区的技术融合与创新
Jvm-Sandbox源码分析--增强目标类
在前两篇文章Jvm-Sandbox源码分析--启动简析和Jvm-Sandbox源码分析--启动时加载模块中我们分析了jvm-sandbox启动及启动时加载模块的过程,这一篇我们来看一下如何使用模块增强目标类的流程。
4615 0
起底:“问题终结者”GOC的真实战力
在阿里巴巴隐藏着很多神秘的部门,GOC就是其中之一,你在互联网甚至搜不到关于它的一丁点儿信息。但就是这么一个“名不见经传”的部门,却“指挥”着阿里巴巴旗下几乎所有业务的运行情况。
7781 0
大数据入门系列 3:全网最全,Ubuntu 安装 VMware Tools 完整步骤及需要注意的问题
大数据入门系列 3:全网最全,Ubuntu 安装 VMware Tools 完整步骤及需要注意的问题
266 0
大数据入门系列 3:全网最全,Ubuntu 安装 VMware Tools 完整步骤及需要注意的问题

云原生

+关注