云原生与ChaosMeta

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
可观测可视化 Grafana 版,10个用户账号 1个月
简介: 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

目录
相关文章
|
7月前
|
运维 Cloud Native 持续交付
云原生应用
云原生应用
|
敏捷开发 运维 Kubernetes
云原生到底是什么?
前言 最近老是看到云原生这个概念,闲暇之余也去了解了一下!看了很多文章,对云原生的解释总是迷迷糊糊,看完云里雾里,经过博主的大量查阅,用我的理解总结一下。
1012 0
云原生到底是什么?
|
3月前
|
SQL 存储 Cloud Native
云原生
云原生的大数据处理架构,该架构具有PB级数据秒级分析的能力。 1. "云原生MPP水平扩展架构":云原生(Cloud Native)是一种设计和构建应用程序的方法,它利用云计算的优势,强调可扩展性、弹性、敏捷性和快速迭代。MPP(大规模并行处理)是一种数据库处理技术,它将数据
26 7
|
7月前
|
监控 Cloud Native Devops
云原生应用在那些场景应用广泛
云原生应用在那些场景应用广泛
|
7月前
|
运维 Cloud Native Devops
云原生应用的特点
云原生应用的特点
|
8月前
|
存储 弹性计算 运维
云原生应用有哪些
云原生应用有哪些
143 0
|
8月前
|
运维 监控 Cloud Native
云原生机甲
现在云原生领域已经涌现出大量的云原生中间件,如 istio、envoy、argo 等,但这些产品单个拿来使用的时候往往达不到我们系统的要求,或者配置起来很繁琐。比如我们想使用流量泳道等体系化方案时,单纯的改动一个场景不能支持。每个产品都支持体系化的流量泳道方案还有可能出现不协调的情况。在这样背景下【云原生机甲】的概念应运而生。
451 1
|
8月前
|
存储 运维 Cloud Native
云原生的应用
云原生的应用
53 0
|
8月前
|
Cloud Native Devops 持续交付
都在说云原生,那云原生到底是什么?
技术的变革,一定是思想先行,云原生是一种构建和运行应用程序的方法,是一套技术体系和方法论。伴随云计算的滚滚浪潮,云原生(CloudNative)的概念应运而生,而且还很火。 今天,我给大家讲一讲,我对云原生的理解。
123 2
|
9月前
|
运维 Cloud Native Serverless
什么是云原生
云原生是一类技术的统称,通过云原生技术可以构建出更易于弹性伸缩的应用程序,这些应用程序可以运行在不同环境当中,比如公有云、私有云和混合云。云原生代表的技术包括容器、服务网格、微服务、不可变基础设施和声明式API等。
180 0