写点什么

使用混沌工程增强 API 的可恢复性

  • 2018-05-28
  • 本文字数:1343 字

    阅读完需:约 4 分钟

看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

Gremlin 团队在博客上给出了一种简单的混沌实验,可用做验证一个组织的API 是否具有可恢复性的方法。与适当地使用此领域中涌现的商业和开源工具一样,使用混沌工程的原则以及运行“游戏日”(可看成是IT 系统和人员的消防演练)等技术同样可体现出自身的价值。

在这篇由Gremlin 首席站点可靠性工程师 Tammy Butow 撰写的博客帖子中,一开篇就指出,尽管很多组织通过基于 Web 的 API 提供自身的服务(以及提供核心商业价值),但是从作者的经验看,这些 API 及相关的架构常被看成是“二等公民”。随着组织规模的扩张,这种方式存在着一些风险,例如可导致用户体验降级的 API 层失败,甚至是非常严重的事故。在与之相关的运行模式中,增加API 的使用将会增大相关后台系统的压力,并且由请求数量增加而产生的负载可能并非与性能和可靠性呈线性关系。因此,工程师应该制定并运行一些试验,了解负荷增加、系统退化和基础设施失效的影响情况,并最终设计出可降低风险的系统。

Butow 建议,使用“混沌工程”原则和“游戏日”是形成上述理解并设计实验的最好方式。对于不熟悉“游戏日”概念的读者,Adrian Cockcroft 在QCon 旧金山大会将其比喻为“ IT 领域的消防演练”。出乎意料的应用行为或架构失败,常会导致工程师的人为介入,这会使情况变得更糟。在日常生活中,消防演习可训练人们接受如何应对火灾,进而在真正发生火灾的情况下挽救生命,IT 游戏日发挥了同样的作用。

该 Gremlin 博客帖子中,给出了一个针对典型 API 网关重度负载情况的例子脚本,并介绍了如何使用 Gremlin 的“可恢复服务”SaaS 商业平台实现在运行 API 网关的计算实例上注入失败(例如,高 CPU 或内存使用率,或者完全终止)。Butow 在博客帖子中强调指出(她同样也曾在先前的 QCon 伦敦大会演讲中提及),在开始运行混沌实验之前,对监控和可观察性的需求是至关重要的。

“在着手测定 API 可恢复性之前,你应该做的一件事情就是在一致的基础上运行混沌实验。确保你具有良好的可见性(监控),并增加回退覆盖率,所有这些将有助于强化你的系统。”

混沌工程原则正逐渐被主流大众所采纳。这一方面是在 Gremlin 等商业混沌工具和服务业务的驱动下,另一方面的驱动力也来自于一些该领域的先驱者(例如 Netflix ,早期 chaos monkey 的创立者)、一些由社区牵头的工作(例如 Chaos Toolkit )以及一些企业组织(例如 Expedia 和 Bloomberg。后者发布了专用于 Kubernetes 的开源混沌工具“ PowerfulSeal ”)。

随着混沌工程日渐广为采用,这正引导组织考虑是否应构建或购买相关工具,Gremlin 团队推荐工程师应在一些权衡上做出考虑,包括:构建自身混沌实验平台的TCO(总体拥有成本,Total Cost of Ownership)、将内部系统暴露给外部SaaS 平台的能力(以及可取性),以及团队当前技能集及团队在平台路线图方面对控制的需求。一些领域引领者,例如Adaptive Capacity Labs 的联合创始人 John Alspaw ,也提醒说不应忽视可恢复工程中人的因素,这事实上要比相关的工具更为重要。

更多信息,提供在 Gremlin 官方网站上,首届混沌大会将于2018 年9 月28 日在旧金山举行。

查看英文原文: Increasing the Resilience of APIs with Chaos Engineering

2018-05-28 15:402075
用户头像

发布了 391 篇内容, 共 153.8 次阅读, 收获喜欢 257 次。

关注

评论

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

微信小游戏的运营

北京木奇移动技术有限公司

游戏开发 游戏运营 游戏外包公司

如何通过YashanDB丰富企业的客户数据

数据库砖家

使用YashanDB进行实时数据分析的完整流程

数据库砖家

狄耐克脑电波交互事业部走访四大实验室,共探脑电波交互技术新局

新消费日报

微信小游戏开发的技术框架

北京木奇移动技术有限公司

软件外包公司 游戏外包公司 游戏开发公司

微信小程序上线后的运维

北京木奇移动技术有限公司

微信小游戏 软件外包公司 游戏外包公司

如何在YashanDB中管理用户权限与角色

数据库砖家

使用YashanDB时如何进行有效的查询优化

数据库砖家

YashanDB数据库自动化测试方案

数据库砖家

视觉与图像识别自动化测试 | 图像识别

测试人

人工智能

深入研究:亚马逊amazon商品列表API接口Python攻略

tbapi

亚马逊API 亚马逊商品列表接口 亚马逊商品详情接口 亚马逊数据采集

怎样做YashanDB支持高性能事务处理

数据库砖家

OCR 识别质量如何影响 RAG 系统的性能?有何解决办法?

Baihai IDP

AI OCR LLM Baihai IDP 检索增强生成

多格式文件在线预览,提升移动设备文件处理效率与体验

HarmonyOS SDK

harmoyos

怎样做轻松迁移至YashanDB数据库避免数据丢失

数据库砖家

如何优化YashanDB数据库以提升数据处理速度?

数据库砖家

使用YashanDB数据库进行日志数据管理

数据库砖家

真实场景文档理解:字节发布的WildDoc基准数据集向OCR提出了什么挑战?

合合技术团队

算法 人工智能’ #大数据

如何应对YashanDB数据库中的数据一致性挑战

数据库砖家

macOS Tahoe 26 让 Mac 更强大、更高效、更智能

柠檬与橘子

2025Java面试八股①(含121道面试题和答案)

王中阳Go

Java 面试

如何通过YashanDB实施弹性计算环境的数据管理

数据库砖家

怎样做YashanDB数据一致性校验,确保业务准确?

数据库砖家

怎样做数据库负载高峰应对?YashanDB动态调节机制

数据库砖家

Unity开发游戏的技术框架

北京木奇移动技术有限公司

游戏开发 软件外包公司 游戏外包

快手12篇论文入选CVPR 2025!

快手技术

人工智能 大模型 快手 学术成果

YashanDB数据库安装与配置的详细步骤

数据库砖家

构建基于YashanDB数据库的分布式事务管理系统技术分析

数据库砖家

2025 年 MQTT 技术趋势:驱动 AI 与物联网未来发展的关键动力

EMQ映云科技

mqtt emqx MCP

如何实现YashanDB数据库的负载均衡

数据库砖家

深入了解YashanDB数据库的功能与模块

数据库砖家

使用混沌工程增强API的可恢复性_DevOps & 平台工程_Daniel Bryant_InfoQ精选文章