高品质的音视频能力是怎样的? | Qcon 全球软件开发大会·上海站邀请函 了解详情
写点什么

在系统里放一只“猴子”,阿里疯了吗?

  • 2019-02-22
  • 本文字数:1765 字

    阅读完需:约 6 分钟

在系统里放一只“猴子”,阿里疯了吗?

在云时代,随着大规模分布式系统和微服务架构技术的演进,你对你的系统健壮性还有多少信心?


没人能全盘掌握这种分布式系统的复杂结构,也没人能获知系统所有的弱点。还有一个现实我们必须清楚地认识到——网络状态是复杂的,用户行为是不可预测的,许多事件也是不可预见的。当你的组件崩溃、降级或者失常,系统遇到恶意或者小白用户,而你却在睡梦中,那可真是灾难。


系统故障无法避免,可灾难恢复又贵又娇弱,还只在必要的地方部署,如果我们能在问题发生之前,或者在没有对用户造成伤害之前,主动发现它并解决它,这可能吗?


当然可能,为什么不试试混沌工程呢?


一只讨嫌的猴子

想象一下,你的系统里有一只猴子在四处乱窜,你无法抓住它,更无法控制它的行为,你不知道它什么时候会搞挂你的系统。焦虑,无比焦虑。


如果这只猴子,就是你自己放进去的呢?你知道,它的目的就是搞挂你的系统,感觉是不是又不一样了?刺激,真的刺激。


这只猴子名叫 Chaos Monkey。



作为业界微服务和 DevOps 组织的楷模,Netflix 有大规模生产级微服务的成功实践。他们大胆提出反脆弱架构的理念,以攻为守,组建混世猴子军团,在工作日期间随机虐杀生产实例,逼迫相关研发人员做好高可用。而随着系统日益完善,Chaos Monkey 的实力和攻击范围也在不断提升。酸爽,过于酸爽。


但是,在猴子军团的蹂躏之下,整个 Netflix 的服务稳定性不断前进。所以说,为什么 Netflix 这么牛?人家对自己够狠。


言归正传,随着 Chaos Monkey 的出现,一门新学科诞生了:混沌工程。


说说混沌工程

混沌工程,被描述为“在分布式系统上进行实验的学科,目的是建立对系统承受生产环境中湍流条件能力的信心。”今天,包括谷歌、亚马逊、IBM、阿里巴巴在内的许多公司都采用某种形式的混沌工程来提高现代架构的可靠性。


或许我们可以把混沌工程比作打疫苗,用以毒攻毒的办法来提高系统的免疫力,比如有目的性地向系统注入故障,找出潜在的弱点。


有一些朋友觉得,这不就是故障注入和故障测试吗?确实,三者在关注点和工具中都有很大的重叠。


混沌工程和其他方法之间的主要区别在于,混沌工程是一种生成新信息的实践,而故障注入是测试一种情况的一种特定方法。对于分布式系统来说,单元测试、集成测试或性能测试是远远不够的,我们无法保证系统能够应对生产环境所的各种不可预测事件。我们遇到的问题,可能只是系统隐患的冰山一角。而混沌工程给予了一种方法,来模拟不可预知的故障,这就是我们需要的。所以,为了具体地解决分布式系统在规模上的不确定性,可以把混沌工程看作是为了揭示系统弱点而进行的实验。



混沌工程属于一门新兴的技术学科,行业认知和实践积累比较少,大多数 IT 团队对它的理解还没有上升到一个领域概念。阿里电商域在 2010 年左右开始尝试故障注入测试的工作,开始的目标是想解决微服务架构带来的强弱依赖问题。后来经过多个阶段的改进,最终演进到 MonkeyKing(线上故障演练平台)。从发展轨迹来看,阿里的技术演进和 Netflix 的技术演进基本是同时间线的,每个阶段方案的诞生都有其独特的时代背景和业务难点,也可以看到当时技术的局限性和突破。


参考 | 《阿里巴巴在混沌工程领域的实践和思考》/阿里巴巴高级技术专家周洋(中亭)


混沌工程是一种忧患意识

网络环境如此复杂,故障的随机性也相应增加,这些故障或将给企业造成巨大损失,给用户带来糟糕的体验,甚至让他们陷入麻烦之中。混沌工程通过有意识地“糟蹋”系统,将故障扼杀在襁褓里,以达到提升系统健壮性的目的。


所以,混沌工程不仅是一种新兴的技术学科,更是一种服务态度,一种忧患意识。


为帮助开发团队加深对混沌工程的理解,汲取业内先驱实践经验,QCon 北京 2019 精心策划了“混沌工程”专题,特邀阿里巴巴高级技术专家周洋(中亭)作为出品人,为各位开发人员策划了一场饕餮盛宴。



本专题将聚焦在以下几个方向:


  • 实施混沌工程的意义、文化建设和技术演进

  • 微服务架构的混沌工程实践

  • 容器环境下的混沌工程实践

  • 如何在 DevOps 团队落地混沌工程


2019 年 5 月 6-8 日,更有超 100 位国内外资深技术专家与您相约北京国际会议中心,聚集 26+热门专题,助你提升技术视野,打破职业瓶颈,迈上新台阶!访问QCon官网了解 QCon 十周年精心策划,现在购票即享 8 折优惠,立减 1760 元,团购还能更省更多!有任何问题欢迎联系票务小姐姐 Ring:电话 010-53935761,微信 qcon-0410。


2019-02-22 15:4812296
用户头像

发布了 31 篇内容, 共 17.8 次阅读, 收获喜欢 105 次。

关注

评论 2 条评论

发布
用户头像
难道是猴子导致IO HANG?
2019-03-05 15:44
回复
用户头像
这广告真是猝不及防
2019-03-05 11:27
回复
没有更多了
发现更多内容

阿里巴巴十亿级并发系统设计手册已开源(2021最新版)

比伯

Java 编程 架构 面试 计算机

2020出行之变(三):智能交通的星罗棋布

脑极体

甲方日常 89

句子

工作 随笔杂谈 日常

spring中那些让你爱不释手的代码技巧(续集)

Java架构师迁哥

同VLAN不同网段能否ping通

第九周作业&总结

胡益

懂点EXCEL就行!教你利用Python做数据筛选(上)

智分析

Python Excel 数据清洗

产品思维和意识

让我思考一会儿

产品 0 期 - 第二周作业

vipyinzhiwei

产品经理训练营

连肝7个晚上,总结了计算机网络的知识点!(共66条)

我是哪吒

程序员 面试 浏览器 计算机网络 HTTP

Vue.js笔试题解决业务中常见问题

我是哪吒

程序员 面试 Vue 大前端

第二周-总结-胡赵凯

hisun胡

产品经理 产品经理训练营

精选算法面试-哈希表III

李孟

面试 算法

极客时间产品训练营第二周总结

云随心

产品 总结 产品训练营

范文写作结构分析之“危险的分工”

JiangX

28天写作

开发质量提升系列:checklist 投产检查列表(下)

罗小龙

代码质量 28天写作 checklist

第二周-作业-胡赵凯

hisun胡

产品经理 产品经理训练营

boltdb源码阅读

行如风

数据库 源码剖析 Go 语言

给新春一台S,给用户三个S:华为智慧屏的新旅程

脑极体

在nodejs中创建child process

程序那些事

多线程 事件驱动 nodejs 并发 程序那些事

Flink 中极其重要的 Time 与 Window 详细解析(深度好文,建议收藏)

五分钟学大数据

大数据 flink

产品经理训练营 - 第二次作业

Jophie

产品经理训练营

Postgreshub中文资源网介绍

PostgreSQLChina

数据库 postgresql 开源 软件 开源社区

图解计算机中的数据表示形式

冰河

程序员 计算机 二进制数据

产品经理训练营第 0 期 第二次作业

孙行者

第0期 产品经理训练营

Logi-KafkaManager开源之路:一站式Kafka集群指标监控与运维管控平台

张亮

Java 大数据 kafka 开源 消息队列

产品质量战略

俊毅

惊呆了!某东Java大咖的MySQL笔记手册流传出来了,胜过看10本书

Java架构之路

Java 程序员 架构 面试 编程语言

在系统里放一只“猴子”,阿里疯了吗?_运维_邓艳琴_InfoQ精选文章