前言:

混沌工程这一工程学理念已慢慢被人所接受,称它为工程学是因为虽然是由国外互联网巨头netflix提出并应用到IT技术中,但是它的思想和应用场景远远超过了互联网领域,可以独立成为一个很有价值的学科。关于它理念上的介绍,网上有大量的资料,我这边就不再搬砖了,我这里只想跟大家分享实战中的一些实践经验和混沌工程架构过程中真实的感悟。

核心理念:

第一,混沌工程依赖优秀的系统架构

混沌工程是系统架构高阶形态,它的落地需要很扎实的系统架构和配套设施,包括Devops、持续集成平台、监控、统一网关等,否则就是空中楼阁,分分钟有倒塌的危险。关于为什么要有这些系统建设,它们在混沌工程里起到什么作用,我将会在第二章节做详细介绍。

第二,混沌实验一定要基于生产环境

这也混沌工程一直在强调的,否则混沌结果没有任何意义。只有基于生产的混沌实验才能反映出真实的风险和缺陷,才能提高产品的稳定性和团队的信心。

第三,混沌工程和混沌实验是两个概念

“不就是在系统中想办法捣蛋么”,这可能是对混沌工程第一印象。很多企业和团队,包括我自己初期阶段,对混沌工程体系理解的不够透彻,把它和混沌实验混为一谈,其实这完全是两个不同的概念。“捣蛋”是混沌实验的动作,代表工具有阿里的chaosblade,它属于混沌工程的一部分,如何触发捣蛋,对谁进行捣蛋,捣蛋的结果如何,捣蛋合适终止,捣蛋后如何回滚,这些都属于混沌工程范畴,所以说混沌工程远比我们想象中的复杂。

第四,混沌不是结果,解决问题才是结果

混沌工程一定要有个闭环的过程,发现的问题需要跟踪落地才是最终的结果,否则混沌没有任何意义。发起混沌和修复问题的往往不是同一个团队,所以两个团队间一定要产生闭环。

混沌工程组成部分:

1 混沌制造--引发混乱的工具

混沌工程的一大特性就是对生产环境进行混沌攻击,也叫混沌实验,那就要依据各种工具来达到目的。目前流行的有阿里的chaosblade、spring家族ChaosMonkey、模拟网络的ToxiProxy、甚至直接调用云平台API随即关闭服务器等,这些都是对系统制造捣蛋的混沌工具。

2 混沌平台--混沌工程核心框架

目前我接触过的混沌平台只有ChaosToolkit(https://github.com/chaostoolkit),这个是开源的框架,据我所知阿里的混沌工程平台也是基于ChaosToolkit的。ChaosToolkit由一系列python项目组成,核心是ChaosToolkit、ChaosToolkit-lib、ChaosToolkit-report和ChaosToolkit扩展,它们可以独立部署也可以容器部署。ChaosToolkit把一次混沌工程拆分为2个type和3个阶段。简介说就是先定义稳定状态,再进行混沌实验,再进行回滚;所有操作都分为action和probe,前者是主动发起的动作,后者是探测结果。一次混沌试验后可以生成html或pdf格式的报告供我们参考。

3 足够敏感的监控--混沌工程的体温计

混沌实验对生产造成了多大的影响,要不要提前结束?混沌过程中我的生产环境是否是健康的?ChaosToolkit中probe如何探测到我某些指标是否正常?混沌发现的问题被改进后再次混沌是否已经修复?这些都离不开多维度的监控系统。至少要覆盖到基础信息(CPU、磁盘、IO、内存、连接数)、七层信息(状态码、访问量)、应用信息(jvm堆、gc、线程数),总之混沌实验可能影响到的部分都需要监控起来。

3 统一接入网关--控制爆炸半径

混沌工程中有一个容易被忽略的概念叫做“爆炸半径”,它的意思是一次混沌实验造成的影响范围要是可控的,可以是把影响限制到具体的某一台机器,限制到具体的某一批客户,限制到具体的某一个服务,这些都是在做实验前需要考虑的爆炸半径。假如说我想要手机号尾号为0的用户参与这次混沌实验,那就有两种做法。方式一:把这批用户的请求路由到一台机器中,然后只对这台机器进行混沌实验。方式二:给这批用户请求头中添加特殊标识触发所有机器上对于这个特殊标识的捣蛋处理。无论哪种方式要限制住爆炸半径都需要一个统一接入网关进行流量调度或报文补充。

4 Devops平台--能否产生成效的基石

有了Devops平台,首先在文化层面上你所在企业的研发、运维、运营是有共识的,其次可以在新版本接入生产时就自动触发混沌实验来验证产品的稳定性,最后可以为ChaosToolkit等混沌框架提供高阶的服务接口,例如关闭某业务服务器、回滚被干掉的服务等。我使用的devops平台是spinnaker,企业版的spinnaker原生支持ChaosToolkit。总之混沌工程要基于Devops文化,混沌并解决问题是所有人的事,而不是具体某个人或某个团队的事情。

总结:

关于Devops平台、足够敏感的监控、混沌框架、混沌制造、统一接入网关这些细节后续会陆续更新他们在混沌工程中更详细的应用,本篇先以一张图再次概括下他们的关系。

混沌工程是一个比较前言的学科,国内落地的公司应该还不多,目前都在摸索阶段,以上内容欢迎大家留言探讨。

混沌工程-Netflix的捣蛋猴相关推荐

  1. 云原生时代,我们为何离不开混沌工程?

    来源 | 混沌工程实践 责编 | 寇雪芹 头图 | 下载于视觉中国 随着Agile和DevOps的持续推进,开发人员获得了软件服务交付更多的权力,交付速度越来越快.在这种持续变更的现实中,随着交付速度 ...

  2. Netflix混沌工程手册Part 2:混沌工程原则

    本文翻译自Netflix工程师合著的 *Chaos Engineering*一书.这本书介绍了混沌工程的主要概念,以及如何在组织中实践这些概念和经验.也许我们开发的相关工具只适用于Netflix自身的 ...

  3. 混沌工程详细介绍——Netflix持续交付实践探寻

    内容来源:DevOps案例深度研究 – Netflix的文化与工程实践战队(本文只展示部分案例PPT及研究成果,更多细节请关注案例分享活动,及本公众号). 本案例内容贡献者:高金梅,李晓莉,潘雄鹰,潘 ...

  4. Netflix正在搞的混沌工程到底是什么?终于有人讲明白了

    导读:与任何新概念一样,混沌工程时常被误解.本文会探讨混沌工程是什么以及不是什么. 作者:Casey Rosenthal, Nora Jones 来源:大数据DT(ID:hzdashuju) 在Net ...

  5. Netflix 混沌工程手册 Part 3:实践方法

    本文翻译自 Netflix 工程师合著的 Chaos Engineering 一书.这本书介绍了混沌工程的主要概念,以及如何在组织中实践这些概念和经验.也许我们开发的相关工具只适用于 Netflix ...

  6. Netflix 混沌工程手册:什么是混沌工程?

    作者 | Netflix 工程师团队 译者 | 侯杰 本文翻译自 Netflix 工程师合著的 Chaos Engineering 一书.这本书介绍了混沌工程的主要概念,以及如何在组织中实践这些概念和 ...

  7. 【DevOps】什么是混沌工程?

    测试您可以预测的事故是必不可少的.但是随着数字化转型和云原生架构带来的复杂性,团队需要一种方法来确保应用程序能够承受生产的"混乱".混沌工程满足了这一需求,因此组织可以提供在任何条 ...

  8. 【混沌工程】什么是混沌工程? 介绍、定义及更多

    软件和系统开发是创新和解决未知问题的练习.软件和系统是容易出错的,因为它们是由具有不同观点和技能的人(很可能是多人)制作的.技术变得越来越分散和复杂,尤其是随着微服务的推动.很少有人拥有完整的端到端知 ...

  9. 【译】混沌工程与区块链

    作者 Vipin Bharathan 原文:https://medium.com/@vipinsun/chaos-engineering-the-blockchain-51e60ae74d27 第一部 ...

最新文章

  1. CentOS7安装Python3详细步骤与Python2共用方法
  2. 搜索文件夹下包含的文件
  3. mc服务器村民交易修改,【原创】【教程】MCPE自定义村民交易内容
  4. 七分钟理解什么是 KMP 算法
  5. SecureCRT打开文件中文乱码
  6. 时尚精美电商专题首页设计PSD分层模板资源
  7. 看似毫不相干,哲学与机器学习竟有如此大的交集?
  8. 20套高品质的 Mobile Web 界面 PSD 素材免费下载
  9. linux看不到boot分区,解决CentOS和Ubuntu /boot分区空间不足问题
  10. mplayer-ww-37356 compile with mingw gcc 4.5.1 修复无法播放wmv
  11. 免费的matlab程序学习下载网站总结
  12. 计算机在剪辑方面的应用,多媒体技术对影视后期制作的应用
  13. java笔试中易考的概念
  14. 【原创】Moon在2005的辉煌
  15. java队名,《JavaWeb程序开发入门》课后练习(含答案)
  16. python可以编程手机版_手机最强Python编程神器,在手机上运行Python
  17. visualhunt - 免注册直接下载优质免费商用图片的好用网站
  18. 基于马尔可夫过程的一种新型混合PSO粒子群算法(SCI二区高被引文献)介绍及算法复现(使用chatgpt)
  19. 无界键鼠(MouseWithoutBorders)的安装与无法连接的解决方案
  20. matlab 环境 word 和 excel 文件操作

热门文章

  1. AIGC-AI内容生成深度产业报告
  2. 快来看看招商银行理财产品数据(代码及分析)
  3. Vue Tooltip封装全局问号提示组件
  4. 微信小程序从本地相册加载图片并显示
  5. 5组LOGO标志演绎展示片头动画 Logo Intro Mega pack
  6. iOS 自定义搜索框实时监听输入的内容变化
  7. TX2进入Recover恢复模式
  8. 用python海龟画图_Python中使用小海龟画图
  9. 亿级App陌陌发力移动直播 率先拥抱视频社交
  10. 百度总裁李彦宏的“五招”创业经