实现云弹性的一种方法—系统和混沌测试

2023-05-16

在当今数字技术时代,停工就意味着停机,构建弹性云结构势在必行。例如,在新冠疫情期间,IT 维护团队不能再在本地重新启动数据中心的任何服务器。如果本地硬件出现故障,这可能会导致访问所有数据或软件的巨大障碍,使得生产率下降,并造成整体业务损失。然而,针对上述问题的解决方案,是将所有 IT 操作传输到云基础架构,通过远程成员提供 24/7 全天候技术支持来确保安全。云在这里本质上是神一样的存在。

最近,一些公司已经充分利用云的潜力,因此,云操作的可观察性和弹性变得势在必行,因为停机现在等同于断开连接和业务损失。 

在当今技术驱动的商业经济中,想象云失败将是灾难性的。任何故障和中断都会导致多米诺骨牌效应,影响公司的系统性能。因此,对于组织和公司来说,通过混乱和系统化的测试将云弹性构建到云结构中变得十分重要。在这篇文章中,我将带您了解弹性和可观察性的含义,以及为什么弹性和混沌测试对于避免停机至关重要。

为避免云故障,企业必须通过连续和混乱的方式对其云架构进行测试,从而在其云架构中构建弹性。

1.可观察性

可观察性可以通过两个方面来理解。一个是通过控制理论, 它将可观察性解释为通过推断系统的外部输出来理解系统状态的过程。另一个方面解释了可观察性的学科和方法,即用来测量不确定性和未知数的学科和方法。

云计算的可观察性是利用跨领域、规模和服务的端到端监控的先决条件。可观察性不应与监控相混淆,因为监控用于了解应用程序中问题和异常的根本原因。 监控会告诉你什么时候出现了问题,而可观察性可帮助你了解出现问题的原因。它们各自服务于不同的目的,但肯定是相辅相成的。

云系统需要具备可观察性和弹性,以确保更少的停机时间、 更快的应用程序速度等。

2.弹性 

每个迁移到云基础设施的企业都应确保并测试其系统的稳定性、可靠性、可用性和弹性,其中弹性位于层次结构的顶部。稳定性是保证系统和服务器不会经常崩溃;可用性通过将应用程序分布在不同的位置以减轻工作量,从而确保系统正常运行时间;可靠性确保云系统的高效运行和可用性。但是,如果企业想要解决不可预见的问题,那么不断测试弹性就变得必不可少

弹性是指预期会出现的问题,并且系统会以某种方式进行测试,以解决和调整该问题。系统的弹性不是自动实现的。弹性的系统承认复杂的系统和问题,并努力逐步采取措施应对错误。它需要不断测试,以减少问题或故障的影响。持续测试可避免云故障,确保更高的性能和效率。

可通过现场弹性设计和利用混沌测试等系统测试方法实现弹性。

常规测试及其不足

传统测试 确保应用程序直接安装和迁移到云系统中,并监控它们的性能和工作效率。足以确保云系统不会根据设计改变应用程序的性能和功能。

常规测试是不够的,因为它在发现潜在的隐藏架构问题和异常方面效率低下,一些故障仅在触发特定条件时才可见。

云的高可用承诺

Scott Guthrie 在谈到云的未来和前景时说,“我们看到数字空间的发展速度逐渐加快。云让我们能够按照摩尔定律的速度进行扩展,也可以使用更少的基础设施快速扩展”。由于疫情人们被迫在家工作,云投资并没有激增。但是,由于这种前所未有的需求,所有超大规模企业都必须引入节流和优先级控制,这违背了公共云的按需弹性原则。

在中断和停机方面,公共云并非不可挑战。例如,谷歌最近的宕机时间导致 Gmail 和 Youtube 等多项谷歌服务停止,这表明公共云也不一定没有系统宕机。因此,我想说,大流行为弹性云系统增加了几个额外的视角:

1.即使在线流量意外激增,系统也必须平稳运行且保持不变

2.系统必须寻找替代方法来管理功能和资源池,以防云提供商拒绝或限制额外的资源分配请求。

3.该系统应该是可访问且安全的,以处理未知位置并转移到混合工作环境(可能是网络防火墙之外的许多端点)。

疫情突出了对弹性云系统进行连续测试和混乱测试的价值。一个有弹性且经过全面测试的系统将能够以安全、无缝和稳定的方式管理额外拥塞的流量。 为了检测未知数,需要弹性测试 和弹性工程

单独的云原生应用程序设计无法实现弹性

在公共云世界中,由于云提供商提供的基础能力、多层/多种技术基础架构以及云系统的分布式特性存在差距,因此 应用程序弹性 架构的构建更为关键。 即使云提供商提供了底层基础架构的可用性和弹性,这也可能导致云应用程序以不可预测的方式失败。

为建立良好的应用弹性基础, 在设计过程中,云工程师应采用以下策略来测试、评估和描述应用程序层弹性:

1.利用架构良好的框架实现总体解决方案架构,并采用云本机功能实现可用性和灾难恢复。

2.与云架构师和技术架构师协作,定义可用性目标,并派生应用程序和数据库层弹性属性。 

A.与威胁建模一起,根据预期或观察到的使用模式定义假设的故障模型,并根据业务影响为这些故障模式建立测试计划。

通过采用架构驱动的测试方法,组织可以在上线之前深入了解云应用程序弹性的基本级别, 并为性能修复活动分配足够的时间。但是仍然需要测试应用程序是否存在未知故障以及 云原生应用程序设计中多个故障点。

混乱测试与工程

混乱测试是一种有意将压力和异常引入云结构的方法,以系统地测试系统的弹性。

首先,混乱测试不能替代实际的测试系统。 这只是衡量错误的另一种方式。通过向系统引入降级,IT 团队可以看到发生了什么以及它是如何反应的。重要的是,测试可以帮助测试人员衡量系统的可观察性和弹性方面的差距,这些是最初被忽略的事情。

Netflix 在 2011 年迁移到云系统期间首先效仿了这种测试方法,此后,它有效地建立了这种方法。混乱测试揭示了低效率,并引导开发团队改变、衡量和提高弹性,并帮助云架构师更好地理解和改变他们的设计。

持续、系统和混乱的测试增加了云基础设施的弹性,从而有效地增强了系统的弹性,并最终增强了管理和运营团队对他们正在构建的系统的信心。

弹性企业必须部分或全部在云 基础架构上创建弹性 IT 系统。

使用混沌和站点可靠性工程可帮助企业在以下方面保持弹性:

•云和基础架构弹性

•通过持续监控实现数据弹性。

•通过确保用户界面在高压力条件下保持稳定,实现用户和客户体验弹性

•通过将安全性与治理和控制机制相结合来增强网络安全性

•对基础架构、应用程序和数据的弹性支持

为了建立完整的应用程序弹性,除了前面提到的云应用程序设计方面,解决方案架构师还需要采用架构模式,允许注入特定故障以触发内部错误,从而在开发和测试阶段模拟故障。

故障触发器的一些常见示例包括响应延迟、资源占用、网络中断、瞬态条件、用户的极端行为等等。

1.针对常见的已识别场景,制定持续监控、管理和自动化事件响应计划

2.建立混沌测试框架和环境

3.注入具有不同严重性和组合的故障,并监控应用层行为

4.识别异常行为并重复上述步骤以确认关键性

如何进行混沌测试

混沌测试可以通过在云结构的任何七层中引入异常来完成,这有助于评估对恢复力的影响。

当 Netflix 在 2011 年成功宣布其弹性工具 Chaos Monkey 时,许多开发团队将其用于混沌工程测试系统。还有另一个由软件工程师开发的工具测试系统 Gremlin, 基本上也在做同样的事情。但是,如果在 COVID-19 的环境中执行混沌测试,可以使用 GameDay 来实现。这会引发异常情况,其中流量突然增加;例如,客户同时访问移动应用程序。GameDay 的目标不仅是测试弹性,还要提高系统的可靠性。

确保成功进行混沌测试所需采取的步骤如下:

1.识别: 识别系统中的关键弱点,并创建一个假设和预期结果。工程师需要识别和评估在假设框架内注入什么样的故障。

2.模拟: 根据真实事件在生产过程中注入异常。这样可以确保将系统中可能发生的情况包括在内。这可能导致应用程序或网络中断或节点故障。

3.自动化:自动化这些实验,可能是每小时/每周等。这确保了连续性,这是混沌工程中的一个不利因素。

4.持续反馈和改进: 实验有两种结果。可以确保弹性或发现需要解决的问题。这两种方法都是很好的结果,你可以从中获取反馈来完善您的系统。

在系统上引发错误攻击和序列的其他具体方法可能是:

1.增加网络延迟

2.切断计划任务

3.切断微服务

4.断开系统与数据中心的连接

总结

在当今的数字时代,增强云弹性以提高应用程序的有效性能变得势在必行。在项目的生命周期中,持续和系统的测试是必不可少的,但同时也要确保在公共云负担过重的时候云弹性。 通过防止长时间的中断和未来的中断,企业可以节省大量成本,此外还可以确保为客户提供服务的持久性。因此,混沌工程成为大规模分布式系统的一种必然

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

实现云弹性的一种方法—系统和混沌测试 的相关文章

  • 【论文笔记】Spatial Temporal Graph Convolutional Networks for Skeleton-Based Action Recognition...

    Spatial Temporal Graph Convolutional Networks for Skeleton Based Action Recognition 2018 01 28 15 45 13 研究背景和动机 xff1a 行人
  • Windows下GCC编译环境中文乱码解决方案

    转载声明 xff1a 来自https blog csdn net MyLibs article details 27913281 在编译参数中增加以下两条指令 xff1a fexec charset 61 gbk finput charse
  • C++ 读入优化与输出优化 模板

    来自 xff1a https blog csdn net liyizhixl article details 54412459 简介 C 43 43 是一种神奇的编程语言 自然 xff0c 读入和输出也有着许多种形式 xff1a 如 xff
  • RMQ(range minimum/maximum query)即查询区间最大最小值。

    转载来自 https www cnblogs com yyxayz p 4109390 html 对于求区间最大最小值 xff0c 我们自然而然就想到了一个O xff08 n xff09 时间复杂度的算法 xff0c 但是如果询问有很多呢
  • 数论小知识点总结

    m i 61 1 g c d m i 61 d m d m d i 61 1 m g
  • 牛客国庆集训派对Day1(A C E L)

    链接 xff1a https www nowcoder com acm contest 201 question 牛客国庆集训派对Day1 A Tobaku Mokushiroku Kaiji xff08 水题 xff09 C Utawar
  • 牛客国庆集训派对Day2(A F H)

    链接 xff1a https www nowcoder com acm contest 202 question 牛客国庆集训派对Day2 A 矩阵乘法 xff08 分块 xff09 F 平衡二叉树 xff08 数据结构 xff09 H 卡
  • Git learn

    分布式版本控制系统 Git https git scm com 一 初始化 init xff0c 添加 add 到暂存区 stage xff0c 提交 commit 到版本库 master 二 工作区 xff0c 版本库 状态 status
  • 牛客国庆集训派对Day4(A D I J)

    链接 xff1a https www nowcoder com acm contest 204 question 牛客国庆集训派对Day4 A 深度学习 xff08 思维水题 xff09 D 最小生成树 xff08 思维 xff09 I 连
  • Codeforces Round #513 by Barcelona Bootcamp (rated, Div. 1 + Div. 2) (A B C)

    链接 xff1a http codeforces com contest 1060 Codeforces Round 513 A Phone Numbers xff08 水题 xff09 B Maximum Sum of Digits xf
  • 计算几何 (POJ1127 、 )

    计算几何 1 判断线段是否相交 1 判断线段是否相交 在不需求出交点 xff0c 只需判断两条线段是否相交 xff0c 可以使用 1 快 速 排 斥 实
  • oled显示乱码解决方法

    有时候oled偶尔发生乱码 xff0c xff08 大多数时候正常 xff0c 偶尔乱码 原因分析 xff0c 由于显示oled时使用的i2c连线较长 xff0c 会出现更大的电感 进而出现振铃现象 解决办法 在时钟线和数据线中串联100欧
  • 次短路

    次短路 概念 xff1a 次短路是相对于最短路的 xff0c 简单来说就是第二短的路径 方法 xff1a d i j k s t r
  • 2017icpc沈阳站_M_HDU-6229_(思维)

    链接 xff1a http acm hdu edu cn showproblem php pid 61 6229 题意 xff1a 给一个矩阵上面有一些坏点 xff0c 坏点不能走 xff0c 起点是 0 0
  • CSP认证 201803-3 URL映射

    CSP认证 201803 3 URL映射 链接 xff1a http 118 190 20 162 view page gpid 61 T71 题意 xff1a 从简条件下的 U R L 映 射 URL映射
  • 2017icpc沈阳站_M_HDU-6229_(思维)

    链接 xff1a http acm hdu edu cn showproblem php pid 61 6229 题意 xff1a 给一个矩阵上面有一些坏点 xff0c 坏点不能走 xff0c 起点是 0 0
  • 【Java】程序设计竞赛(Java 方向)

    目录 1 头文件2 输入3 输出4 大数计算5 进制转换6 字符串7 排序8 优先队列9 二分10 Map11 Set 1 头文件 span class token keyword import span java span class t
  • HDU_3089_约瑟夫环快速递推

    HDU 3089 约瑟夫环快速递推 链接 xff1a http acm hdu edu cn showproblem php pid 61 3089 题意 xff1a 约瑟夫环问题 给出 n n n 个人 xff0c 从 1
  • 【ACM】编程笔记

    1 编译错误1 Windows下GCC编译环境中文乱码2 Java中编译错误 编码GBK的不可映射字符 2 JavaJava中 String 和 Integer 的相互转换 3 C C 43 43 C 43 43 中 int 和 strin
  • RSA 算法流程及证明

    RSA 算法流程及证明 需要的前置知识 xff1a 欧拉函数 xff0c 欧拉定理 xff0c 费马小定理 xff0c 同余式乘法性质 xff0c 互质数判断 算法描述算法流程RSA 算法证明RSA 算法 C 43 43 实现参考资料 算法

随机推荐

  • ftp上传不成功,提示 200 227 501 错误

    solve xff1a 检查文件名是不是中文字符 xff0c 若是 xff0c 请换成英文文件名 origin xff1a https www cnblogs com mubin p 3528353 html
  • 【WIN10】添加全局快捷键

    WIN10 添加全局快捷键 打开控制面板 点击管理工具 将 设置好快捷键 的 快捷方式 复制 移动 进 管理工具文件夹 重启 xff0c 一定要重启 xff0c 加张图片告诉你 重启
  • 如何解析DICOM文件中的Pixel Data ?

    DICOM文件可以大致分为两部分 xff1a 一部分 xff1a 与图像相关的元信息 xff0c 包括患者信息 xff0c 检查信息 xff0c 序列信息 xff0c 图像信息等等 另一部分 xff1a 图像的像素数据 在解析DICOM文件
  • 【ARM】ADS1.2 破解版安装后无法运行

    ADS1 2 安装文件 https pan baidu com s 1g0AU kxxs pqsn Lgs8evA 提取码 xff1a 5c6h WIN10 安装 ADS1 2 可能会遇到一堆兼容性bug 我的解决方法如下 xff08 不完
  • 【ARM】微处理器工作模式

    收获 SPACE 和 DCD 的区别在于 xff1a SPACE 申请一片内存空间 以字节为单位申请 xff0c 但不赋初值 DCD 申请一个字 32bit 的内存空间 xff0c 并赋初值 对于 32 位的 ARM xff0c 一个字为
  • 【MAC】添加软连接 将 sublime 放入命令行中

    软链接 类似于 Windows 的快捷方式加环境变量 将 Sublime Text 以 subl 作为新的名字进行全局软连接 span class token function sudo span span class token func
  • 【ARM】 《C 语言调用汇编子程序》 与 《汇编调用 C 语言程序》

    题目 xff1a 实现计算 1 43 2 43 3 43 43
  • 【MAC】启动 ssh 服务 及 ssh 长时间不用自动断开解决

    一 启动 ssh 服务 mac本身安装了ssh服务 xff0c 默认情况下不会开机自启 启动sshd服务 xff1a span class token function sudo span launchctl load w System L
  • 【Linux】ssh 链接服务器 并 安装宝塔面板

    一 ssh 链接服务器 xx 是连接 ssh 的端口号 xx xx xx xx 是 IP 号 span class token function ssh span p xx root 64 xx xx xx xx 二 安装宝塔面板 yum
  • 【Linux】解决 SS 在安装宝塔面板后无法连接服务器问题

    问题 xff1a 在安装宝塔面板后 ss 无法使用 xff0c 但是 ssh 可以连接服务器 原因 xff1a 因为宝塔面板的安全设置默认会禁止除 ssh 端口外的所有端口 解决 xff1a 找到宝塔面板里的安全将 ss 的 server
  • 【SSH】解决 WIN10 通过 ssh 连接 Mac 中文乱码

    问题 xff1a MacOSX 下默认的是 utf 8 字符集 xff0c WIN10 通过 ssh 连接后显示是 utf 8 xff0c 但是中文乱码 原因 xff1a 这种情况一般是终端和服务器的字符集不匹配 在 Mac 终端中输入 l
  • 【python】Notebook

    CONTENT 1 小Tips三元运算符平均数 np mean range 与 np arange 求最大 小值及索引值合并 list 为字符串剪切板模块 pyperclip将秒数转化为小时分钟秒 2 数学随机数 3 文件相关按分隔文件路径
  • 【Mac】Mac 系统读写 NTFS 格式硬盘

    查看磁盘 typename diskutil list 更新 etc fstab文件 sudo vim etc fstab 写入如下内容 xff1a LABEL 61 GRMCULXFRER none ntfs rw auto nobrow
  • 小米路由器青春版刷入其他固件

    小米路由器青春版搭载的是基于OpenWRT深度定制的智能路由器操作系统MiWiFi ROM xff0c 实质即嵌入式linux系统 小米路由器青春版自带的miwifi r1cl all 59371 2 1 26 bin及其以下版本中存在通过
  • 【数据结构】排序算法

    不稳定的排序算法 xff1a 快排 堆排 选择 希尔 排序算法时间复杂度空间复杂度稳定性冒泡 xff08 Bubble Sort xff09 O n 2 O 1 稳定快排 xff08 Quick Sort xff09 O n logn O
  • 【数据结构】POJ 1985 Cow Marathon(树的直径)

    链接 xff1a http poj org problem id 61 1985 题意 xff1a 有 n n n 个农场和 m m m 条路 xff0c 以及每条
  • 【C#】接口的基本概念

    目录 基本 什么是接口接口与抽象类的区别 抽象类接口实例 设计接口 基本 什么是接口 C 接口 interface 是 xff1a 用来定义一种程序的协定 实现接口的类或者结构要与接口的定义严格一致 有了这个协定 xff0c 就可以抛开编程
  • 部署Sonic编译服务器

    编译Sonic环境 部署Sonic编译环境编译准备开机自动挂载硬盘创建用户安装 Docker开始编译 部署Sonic编译环境 先给服务器安装 Ubuntu20 04 02 系统 xff0c Sonic编译 Github 链接 sonic b
  • 【闲聊STP/RSTP】

    闲聊STP RSTP xff08 Spanning Tree Protocol xff09 STP xff08 Spanning Tree Protocol xff09 xff0c 1998年IEEE提出的802 1D协议 xff0c 它是
  • 实现云弹性的一种方法—系统和混沌测试

    在当今数字技术时代 xff0c 停工就意味着停机 xff0c 构建弹性云结构势在必行 例如 xff0c 在新冠疫情期间 xff0c IT 维护团队不能再在本地重新启动数据中心的任何服务器 如果本地硬件出现故障 xff0c 这可能会导致访问所