写点什么

微服务故障测试

2016 年 3 月 03 日

微服务从业者峰会上, Kolton Andrus 演讲中指出,故障测试是运行微服务的一个关键部分。你应该确定微服务的行为同预期一样,以避免停机。

前Netflix 软件工程师Andrus 将故障测试比作疫苗,为了产生免疫力,向体内注射少量有害的东西。在Andrus 看来,这非常符合微服务领域。为了查看微服务的行为,我们向其中注入少量对微服务有害的东西,然后设法建立免疫。

故障测试的缺点是它可能造成影响。它会带来破坏或者造成一些客户影响,但是,如果最终的结果是最坏的事情没有那么坏,而最好的事情相当好,比如,阻止了停机,那么他认为,这种缺点是可控的。

做故障测试,Andrus 更喜欢结合故障场景,考虑什么会出错,系统怎么会出错。他认为,提出类似“我们担心什么?”或“会出什么错?”这样的问题,多少会有助于更好地做准备。考虑故障发生的可能性,就可以发现基础设施中应该投入时间的常见事件。不过,他指出,我们不可能什么都准备好,故障总会出现,我们无法看到它们到来,但是,我们要相信,做好准备会让我们更有能力缓解问题。

另一个Andrus 认为有助于优先级排序和风险评估的问题是“出错成本是什么?”。然后,可以执行一个成本- 收益分析,不仅要考虑会出什么错,而且还要考虑什么可能出错,这有助于决定在哪里投入时间和金钱以获得最好的回报。

Andrus 还强调了在生产环境中进行测试的重要性。如果只在测试环境中测试,那么生产环境的配置、网络和硬件都没有测试过,他援引了 Amazon Web Services(AWS)著名工程师 James Hamilton 的一段话:

那些不愿意在生产环境中进行测试的人对他们的服务能够在故障情况下继续运行没有信心。不做生产环境测试,会在需要恢复的时候发现恢复失效了。

如果你做了大量的工作,并创建了缓解问题的方案,但未能在生产环境中进行测试,那么你稍后可能会发现它们在生产环境中无效或者导致故障更糟糕,那可不是一个让人身在其中倍感愉快的境地。

查看英文原文: Failure Testing of Microservices

2016 年 3 月 03 日 18:001860
用户头像

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

关注

评论

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

如何设计Go语言中的channel

soolaugust

go channel goroutines

架构师训练营第 1 期第 2周作业

du tiezheng

极客大学架构师训练营

使用Grafana + simpod-json-datasource快速搭建数据看板

诸葛小猿

Grafana 数据可视化 simpod-json-datasource

关于Java Servlet找不到自定义包或者第三方包

谷鱼

classes

自己动手写SQL执行引擎

无毁的湖光

Java MySQL 数据库 Linux 算法

收藏+下载!Flink 社区最全学习渠道汇总

Apache Flink

flink

缓存解决方案-技术专题-Caffeine Cache

李浩宇/Alex

Dolphinscheduler系统架构设计

dll

Apache DolphinScheduler

上班路上也是一道美景

xcbeyond

生活 摄影 摄影征文

不一样的面向对象(二)

书旅

php 面向对象

架构师训练营第 2 周作业

netspecial

极客大学架构师训练营

甲方日常 22

句子

Vue 工作 随笔杂谈 日常

TensorFlow 篇 | TensorFlow 2.x 基于 Keras 模型的本地训练与评估

Alex

tensorflow 模型训练 keras

项目实战,动态增删form表单

麦叔

jquery 克隆

MySQL varchar类型最大值,原来一直都理解错了

flyer0126

MySQL varchar

java安全编码指南之:可见性和原子性

程序那些事

Java java安全编码 java编码指南 java安全编码指南

高难度对话读书笔记—认知篇2

wo是一棵草

关于Java 编译Servlet或者自定义Tag,引入包的问题

谷鱼

Java

架构师训练营第 1 期第 2 周学习总结

du tiezheng

极客大学架构师训练营

三步带你开发一个短链接生成平台

Geek_Willie

Java SpreadJS Node

程序执行太慢?快来学习SIMD加速技术,这个案例下的加速效果我也没想到(附带动手实验)

Optimize-Lab

go 优化代码 优化技巧 开源社区 simd

问世间异步为何物?

架构师修行之路

微服务 异步

Redis做分布式锁可能不那么简单

架构师修行之路

分布式 分布式锁

面试官:讲讲Redis的五大数据类型?如何使用?(内含完整测试源码)

冰河

redis Jedis JedisCluster

Go中的HTTP请求之——HTTP1.1请求流程分析

新世界杂货铺

go golang HTTP Go web

如何快速制造OOM

Since

JVM OOM

永续合约系统开发源码,区块链合约交易所搭建

WX13823153201

Python 自动化测试全攻略:五种自动化测试模型实战详解

Geek_Willie

自动化测试

监控应用,应该监控什么?

小清新同学

云计算 运维 监控

让世界为之赞叹的开源项目,除了Linux,你知道Git吗?

小Q

Java git 学习 程序员 面试

巡展2020第十三届亚洲国际物联网展览会-南京站

InfoQ_caf7dbb9aa8a

InfoQ 极客传媒开发者生态共创计划线上发布会

InfoQ 极客传媒开发者生态共创计划线上发布会

微服务故障测试-InfoQ