关于数据库:混沌工程实践

4次阅读

共计 1702 个字符,预计需要花费 5 分钟才能阅读完成。

一、混沌工程简介

1、什么是混沌工程?

混沌工程的概念很早就存在,然而直到 2012 年 Netflix 公司才让外界更多搭档通晓“混沌”一词。为了更好地推广混沌工程,Netflix 公司引入了“一只猴子(Chaos Monkey)”。试想如下场景:一只猴子素日里安安静静,忽然某天开始在零碎里肆意捣鬼,作为工程师要做的一件事件就是逮住这只猴子,阻止它持续捣鬼。这大略就是混沌工程想要表白的意思。

简略来说混沌工程是一个工程学科,这就意味着须要做试验。通过设计并进行混沌试验,察看系统对各类故障的实在反馈,以此来欠缺保证系统的稳定性。混沌工程是一种进步技术架构弹性能力的简单技术手段,是一种可试验的、基于零碎的办法,用于解决大规模分布式系统中的凌乱问题。

2、混沌工程能够达成什么样的目标?

混沌工程被形容为在分布式系统上进行试验的学科,目标是在生产环境中测试分布式系统在面对失控条件时是否具备较强的“可观测性”和故障恢复能力,建设对系统接受生产环境中极其条件能力的信念。

3、混沌工程能够带来哪些价值与意义?

混沌工程通过被动制作故障,测试零碎在各种压力下的行为,辨认并修复故障问题,防止造成严重后果,进步零碎健壮性。此外混沌工程能让简单零碎中积重难返的凌乱和不稳定性浮出水面,让咱们更全面理解零碎中固有的景象并进行及时修复加固,防患于未然,打造出强壮的分布式系统。

二、混沌工程施行准则

  • 建设一个围绕稳固状态行为的假如
  • 多样化真实世界的事件
  • 在生产环境中运行试验
  • 继续自动化运行试验
  • 最小化爆炸半径

三、混沌工程利用场景

  • 晋升零碎的容错能力,进步稳定性
  • 评估零碎容灾红线
  • 验证云服务、云资源的动静扩容能力
  • 验证监控、告警的有效性和问题解决流程是否欠缺
  • 故障突袭,晋升相干人员定位、复原问题的能力

四、混沌工程工具比照

五、混沌工程实际

1、模仿 Pod 故障

PodChaos 是 Chaos Mesh 中的一种故障类型。通过创立 PodChaos 试验,能够模仿指定 Pod 或容器的故障场景。目前,PodChaos 反对以下故障类型:

  • Pod Failure:将故障注入到指定的 Pod 中,使该 Pod 在一段时间内不可用
  • Pod Kill:杀死指定的 Pod。为了保障 Pod 可能胜利重启,须要配置 ReplicaSet 或相似的机制
  • Container Kill:杀死指标 Pod 中的指定容器。从下图 znbase 的 pod 变动能够看出,在退出扰动后,pod 从 running 状态变为 pending 状态,而后又复原为 running 状态

2、模仿网络故障

NetworkChaos 是 Chaos Mesh 中的一种故障类型。通过创立 NetworkChaos 试验,能够模仿集群的网络故障场景。目前,NetworkChaos 反对以下故障类型:

  • 分区:网络断开和分区
  • 网络仿真:网络条件差,如高提早、高丢包率、数据包重排序等
  • 带宽:限度节点之间的通信带宽。在注入网络丢包的扰动后,当丢包率较低时,pod 状态维持在 running 状态;当丢包率较高时,pod 处于异样状态。

3、模仿压力场景

Chaos Mesh 提供了 StressChaos 试验来模仿容器内的压力场景,分为内存压力试验和 cpu 内存试验。能够调整压力参数测试数据库的健壮性。

4、模仿 DNS 故障

DNSChaos 用于模仿谬误的 DNS 响应。例如,DNSChaos 能够在接管 DNS 申请时返回谬误或返回随机 IP 地址。

5、模仿 HTTP 谬误

HTTPChaos 是 Chaos Mesh 提供的一种故障类型。通过创立 HTTPChaos 试验,能够模仿 HTTP 申请和响应处理过程中的故障场景。目前,HTTPChaos 反对模仿以下故障类型:

  • abort: 中断连贯 delay: 在申请或响应中注入提早
  • replace: 替换 HTTP 申请或响应音讯中的局部内容
  • patch:向 HTTP 申请或响应音讯增加附加内容

6、模仿文件 I / O 故障

IOChaos 是 Chaos Mesh 中的一种故障。通过创立 IOChaos 试验,能够模仿文件系统故障的场景。目前,IOChaos 反对以下故障类型:

  • latency: 提早文件系统调用
  • fault: 返回文件系统调用的谬误
  • attrOverride: 批改文件属性
  • mistake: 使文件读或写谬误的值
正文完
 0