【AICon】AI 基础设施、LLM运维、大模型训练与推理,一场会议,全方位涵盖! >>> 了解详情
写点什么

微服务的混沌测试

  • 2016-03-18
  • 本文字数:995 字

    阅读完需:约 3 分钟

在近日举行的 QCon 伦敦大会上, Rachel Reese 声称,世界天生就是混乱的,我们应该有计划并测试我们的系统,确保它能够处理这种混乱。他描述了 Jet 这家于 2015 年 7 月成立的电子商务公司是如何使用微服务和混沌工程的。

Reese 强调,测试微服务在环境中的交互极其重要,即使所有组件都经过了测试,但这并不意味着他们之间的交互是可靠的,也不意味着它们可以一起用于生产环境,所有这些都必须经过测试。她将 Jet 称为一家“为正确的工作选择正确的工具”的公司,对她而言,混沌测试就是其中一个正确的工具。

Reese 将微服务定义为符合单一职责原则(SRP)的应用程序,但是在服务层,由于他们以函数的方式看待微服务,所以它有一个输入,并产生一个输出。她认为,使用微服务的好处包括简化扩展性、独立发布、均匀分布的复杂性。Jet 在10 到15 个团队中运行着大约400 到1000 个微服务,主要是用 F#(一种函数优先的编程语言)编写的。

Reese 指出,混沌工程不是为了有趣而破坏代码,相反,她将其定义为:

在分布式系统上做对照实验,帮助建立对系统承受不可避免的故障的能力的信心。

参照混沌原则,Reese 定义了混沌工程的四个步骤:

  1. 定义“正常”(系统的正常状态);
  2. 假定“正常”会在对照组和实验组中持续;
  3. 引入混沌:服务器崩溃、硬盘异常、网络连接中断等;
  4. 查找对照组和实验组行为上的差别。

更准确地讲,这意味着:

  • 建立假设,定义系统的正常行为和状态,如吞吐量、延迟等;
  • 真实世界的不同事件、流量峰值以及其他可以导致混沌的东西;
  • 在生产环境中运行实验,确保测试的真实性;
  • 自动化实验,让其连续运行。

Reese 发现,混沌工程有许多好处,包括:

  • 白天测试导致系统中断,就不用在凌晨 3 点修复问题;
  • 工程师在设计过程中开始考虑故障;
  • 防止系统后续出现中断,让系统更健康。

根据他们的经验,Reese 指出,他们尚还没有在生产环境进行测试。作为一家初创企业,他们的主要目标是推出正确的东西。现在,他们白天所有时段都会进行随机的 QA 测试。

其中一场对他们而言最“有趣的”的灾难发生在数月之前,他们的手动测试人员发现,他们的搜索引擎宕掉了,导致了下游的一连串问题。这次故障的原因是混沌测试错误地重启了搜索引擎。就靠这么一个故障,他们发现了五六个不同的问题。

Reese 总结到:

如果可靠性很重要,那么你就应该为此开展测试。

Reese 的讲稿已经提供给 QCon 的参会者,稍后将提供给 InfoQ 的读者。

查看英文原文: Chaos Testing of Microservices

2016-03-18 19:004460
用户头像

发布了 1008 篇内容, 共 374.9 次阅读, 收获喜欢 341 次。

关注

评论

发布
暂无评论
发现更多内容

想参加培训学习web前端不知道靠不靠谱

@零度

web前端开发

【阿里云大咖说】填问卷送好礼正式上线,快来参与吧!

大咖说

大咖说 问卷 礼品

手把手推导Ring All-reduce的数学性质

OneFlow

深度学习 reduce-scatter all-gather 环状算法

netty系列之:netty对marshalling的支持

程序那些事

Java Netty 程序那些事 4月月更

开拓新领域 OpenHarmony多行业软件发行版逐步落地

科技汇

宣布 Databricks 支持 Amazon Graviton2,性价比提高 3 倍

亚马逊云科技 (Amazon Web Services)

Tech 专栏

跨域处理

源字节1号

软件开发 后端开发 租房小程序

Windows服务器运维用什么软件好?不想加班了!

行云管家

运维 IT运维 行云管家 服务器运维 Windows服务器

《数字经济全景白皮书》Z世代用户洞察篇(3)重磅发布!

易观分析

用户分析 Z世代

丁未篇 「元宇宙超次元 」 《「內元宇宙」聯載》

因田木

命書 我富網

Hoo虎符研究院|Cradle调研报告

区块链前沿News

虎符 Hoo 虎符研究院

「Substrate Evangelist Program」顺利开幕,期待各位布道者共建 Substrate 生态!

One Block Community

Substrate 区块链资讯 波卡生态 Parity

龙蜥开发者说:从零开始的创造,是动力也是挑战 | 第5期

OpenAnolis小助手

操作系统 开发者故事 龙蜥开发者说 桌面DDE

Kylin、Druid、ClickHouse该如何选择?

五分钟学大数据

4月月更

从社会学角度解读机器学习

Taylor

机器学习 深度学习 学习方法 损失函数 梯度下降

一文详解Java日志框架JUL

华为云开发者联盟

Java 日志 框架 日志框架 JUL

linux监控软件有哪些?用什么软件好?

行云管家

Linux 运维 监控软件

在MAUI中使用Masa Blazor

MASA技术团队

C# .net 微软 组件 组件库

云仿真平台有哪些特点

3DCAT实时渲染

云仿真

如何构建产品帮助中心

小炮

帮助中心

企评家,助力创业板企业成长性评价

企评家

企业评价 企业大数据 创业板 评价维度 成长性

全面解读OpenHarmony 3.1 Release版本,夯实技术底座 打造繁荣生态

科技汇

观察者模式 vs 发布订阅模式,千万不要再混淆了

战场小包

前端 设计模式 4月月更

巧用PostgreSQL高可用中间件,99999业务服务持续性不再是DBA的天花板

博文视点Broadview

BIGO 的数据管理与应用实践

NebulaGraph

数据库 图数据库 数据管理

OpenHarmony 技术日直播回顾丨共建新技术,开拓新领域

OpenHarmony开发者

OpenHarmony 技术日

EasyCV开源|开箱即用的视觉自监督+Transformer算法库

阿里云大数据AI技术

算法 计算机视觉 开源技术

新零售SaaS架构:组织管理的底层逻辑与架构设计

架构师汤师爷

系统架构 SaaS 架构设计 组织架构

即时通讯软件建设,聚焦数据安全

a13823115807

化繁为简!阿里新产亿级流量系统设计核心原理高级笔记(终极版)

Java全栈架构师

Java 程序员 架构 面试 架构师

阿里云视频云互动虚拟技术,打造虚拟直播最佳沉浸式体验

阿里云视频云

直播

微服务的混沌测试_DevOps & 平台工程_Jan Stenberg_InfoQ精选文章