故障注入(Fault Injection)的概念最早出现在测试领域,通过在代码路... 展开 >
阿里巴巴高级技术专家,花名中亭。2011 年加入阿里巴巴高可用架构团队,长期参与稳定性产品研发和集团架构演进工作,主导了强弱依赖、灰度环境、故障演练、智能对账等多款高可用产品的研发和建设,见证了阿里高可用产品体系从 1.0 到 3.0 的发展历程,积累了丰富的架构和稳定性经验。
2015 年作为共享事业部的双11负责人,负责大促和常态稳定性的保障工作。目前负责高可用技术的云化输出和技术演进工作,阿里云产品 AHAS(应用高可用)的技术负责人。
2017年 QCon 明星讲师,混沌工程布道师。
故障注入(Fault Injection)的概念最早出现在测试领域,通过在代码路径中引入故障缺陷来验证错误处理的逻辑的有效性,提高测试的覆盖率。故障注入历史可以追溯到 1970 年,按类型也分为硬件实现故障注入(HWIFI)和软件实现故障注入(SWIFI)。
混沌工程的实验理论在 2017 年被 Netflix 及相关团队提出,目标是希望通过在生产环境周期性引入故障的方式,验证系统对非预期故障防御的有效性。相比于被动的应对故障,在可控的影响下实施混沌工程实验,提前揭示系统弱点,可以增强我们对系统可恢复性的信心。混沌工程属于一个新兴的技术领域,行业认知和实践积累比较少,大多数IT团队对它的理解还没有上升到一个领域概念。本次专题我们会聚焦在以下几个方向:
实施混沌工程的意义、文化建设和技术演进;
微服务架构的混沌工程实践;
容器环境下的混沌工程实践;
如何在 DevOps 团队落地混沌工程。
越来越多的企业选择基于云原生技术构建系统架构,希望可以构建构建容错性好、易于管理和便于观察的松耦合系统。在演进的过程中,可能会经历云迁移(Cloud-Migrate)、云就绪(Cloud-Ready)和云原生(Cloud-Native)三个阶段。每个阶段都需要围绕一些新技术、新理念来升级系统架构和组织模式。如何在变化的过程中保障系统稳态的一致性,为"飞行中的飞机替换引擎"是每位系统负责人要关注的问题。
混沌工程是一种在生产环境周期性引入故障变量,验证系统对非预期故障防御的有效性的实验思想。实验能力不绑定特定云原生技术,但是技术实现会随着主流技术发展而演进,并衍生出一些领域高效实践。阿里从最早引入混沌工程解决微服务的依赖问题,到业务服务、云服务稳态验证,进一步升级到公共云、专有云的业务连续性保障,积累了比较多的实践经验。本次分享会从云迁移、云就绪、云原生三个角度入手,介绍实施混沌工程的一些方法原则和技术工具。
了解混沌工程领域的演进历史和核心原则;
了解如何借助混沌工程技术,构建容错性好、弹性可扩展的云原生系统;
了解开源混沌工程测试框架 ChaosBlade 的设计思路及技术实现。
随着越来越多的企业上云,应用架构由于业务深度的增加以及业务方向的多样,纷繁的组件依赖或调用链传递成为难以察觉的潜在系统风险。这些“隐藏的”系统故障,给企业带来了代价高昂的损失:一小时的宕机将带来超过 10 万美元的损失,一次服务中断会损失数百万美元,等待下一次系统故障并非解决方案。如何在保障企业应用稳定可靠的前提下,通过合理设计和实施混沌工程对照实验,提前探知和解决潜在的系统风险,降低“隐藏”故障带来的损失,真正实现云上韧性架构,成为当前用户对混沌工程的主要诉求。
本次分享会从 AWS 云上混沌工程实践的具体案例出发,介绍混沌工程对照实验场景和环境的设计方法,实验工具的选型要求,以及不同架构类型的实施方案比较,并从中总结 AWS 云上混沌工程对照实验的实践原则。
洋葱系统,是腾讯公司级的主机反入侵安全检测系统,包括前端主机 agent 以及后端分布式的数据接入分析系统的一整套服务,系统模块众多,部署的服务节点包括超百万,业务网络环境区域复杂,均在进行实时监测数据的采集,上报和分析。在实际的运营过程中,总会出现组件异常,未部署,入侵漏水等一些列质量上的挑战,一段时间内团队也一直处于 case by case 的救火中。安全讲究纵深防御,所以系统质量,直接影响了整个反入侵的有效性和发现率。
混沌工程以实验发现系统性的弱点,一般遵循定义并测量系统的"稳定状态",创建假设,模拟现实世界中可能发生的事情,证明或反驳假设这几个步骤来进行。针对系统质量所面对的挑战,引入混沌工程的思路,建设整个系统实时质量的一个模型标准,结合实际入侵场景和服务异常的模拟,对系统的稳定性可用性进行验证,同时助于发现未知的质量问题。本次分享围绕洋葱系统的实时质量建设和优化,介绍混沌工程在其中的初步实践应用。