写点什么

使用混沌工程增强 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:401692
用户头像

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

关注

评论

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

架构师训练营第十一周作业

邓昀垚

对于CRM之于现代化企业的影响以及作用的分析

Marilyn

敏捷开发 快速开发 企业开发 CRM 企业应用

MindSpore手写数字识别初体验,深度学习也没那么神秘嘛

华为云开发者联盟

人工智能 学习 手写识别

【行业分享】叮咚课堂邱明丰:在线教育的最终形态的探索

ZEGO即构

业务中台建设 - 自底向上演进

孝鹏

架构 中台 业务线 数字化转型 沟通

首家支持阿里云函数计算 APM技术为Serverless环境赋能

博睿数据

阿里云 Serverless 运维 APM 函数

深入了解物理内存管理-伙伴(Buddy)算法

ShenDu_Linux

Linux 算法 内存管理 内核

多线程源码明白了吗?不明白的话来看腾讯大牛给你画的面试重点

996小迁

Java 学习 编程 架构 面试

架构师训练营第二周框架设计学习总结

Geek_xq

“摸爬滚打”多年,从月薪3K到30Kjava大神,我是怎么蜕变的?

比伯

Java 编程 架构 面试 计算机

使用 Jira Service Management 管理资产,您需要知道的5件事

Atlassian

数字化转型 Atlassian Jira ITSM ITIL

华为云MVP高浩:打破AI开发瓶颈,解决数据、算法、算力三大难题

华为云开发者联盟

人工智能 数据 华为云

排查指南 | mPaaS 小程序提示“网络不给力”时该如何排查?

蚂蚁集团移动开发平台 mPaaS

小程序 网络 小程序生态 mPaaS

最近我发现瑞幸在这样做私域运营

Linkflow

营销数字化 客户数据平台 CDP 私域运营

打工人、打工魂、高效MES助力打工者都是人上人

Learun

敏捷开发

区块链商品溯源系统开发,区块链防伪追溯系统

13530558032

LeetCode题解:121. 买卖股票的最佳时机,暴力法,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

Vim - 可能是投资回报率最高的 Editor

hbwtJLChslMpxA8n

vim

Spring Boot 2.4.0正式发布,全新的配置文件加载机制(不向下兼容)

YourBatman

云原生 Spring Boot 新特性

产业新基建,撬动数字经济发展新机遇

京东科技开发者

人工智能 新基建 京东

一点就透的二分查找算法

比伯

Java 编程 程序员 面试 计算机

怎么保护自己的音乐作品不被盗用,用FL制作防盗水印片段。

奈奈的杂社

从应用迁移到平台微认证:鲲鹏技术解读

华为云开发者联盟

鲲鹏 代码迁移 arm

什么是低代码(Low-Code)?

阿里巴巴云原生

程序员 云原生 代码

使用resilio实现多集群的k8s pod数据双向非实时同步

东风微鸣

Kubernetes 探索与实践 openshift

架构师第一期作业(第 11 周)

Cheer

作业

RocketMQ 很慢?引出了一个未解之谜

阿里巴巴云原生

开源 云原生 中间件 Java 25 周年 Arthas

架构师训练营第十一周总结

邓昀垚

时空碰撞系列·终

誓约·追光者

数据分析 Sparksql

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

李循律

区块链电子票据解决方案--区块链赋能纳税服务

13530558032

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