《2019年.NET技术架构下的混沌工程实践.pdf》由会员分享,可在线阅读,更多相关《2019年.NET技术架构下的混沌工程实践.pdf(33页珍藏版)》请在三个皮匠报告上搜索。
1、.NET Core 2019China.NET Conf 2019.NET技术架构下的混沌工程实践个人介绍周国庆,来自特来电新能源公司,负责特来电公共技术平台。目前专注于特来电服务治理平台的建设和混沌工程实践,希望通过深入的服务治理和大量的混沌实验,不断提升系统的稳定性和可用性。China.NET Conf 2019Agenda一、.NET分布式、微服务架构下的高可用性挑战二、混沌工程简介三、.NET混沌工程的实践和成果分享四、展望和规划China.NET Conf 2019一、.NET分布式、微服务架构下的高可用性挑战1.背景介绍特来电新能源有限公司:全国最大的新能源汽车充电生态网运营公司,
2、主要从事汽车充电网的建设、运营以及互联网增值服务。目前,特来电已经建成全国最大的“充电网、车联网、互联网”三网融合的云平台,整个云平台完全基于.NET技术栈,通过五年的迭代演进,系统全面实现了分布式、微服务化和智能监控运维,支撑了特来电充电业务的大规模应用。充电桩数量和充电量,行业第一!China.NET Conf 2019一、.NET分布式、微服务架构下的高可用性挑战2.面临的高可用挑战系统7*24小时运行,不允许宕机,一旦宕机出问题,直接影响全国人民出行;系统SLA要求99.95%,全年可宕机时间只有4.38小时;服务调用链路越来越长,依赖越来越复杂,某个环节出问题,都有肯能导致服务雪崩、
3、大规模宕机;线上遭遇:网络抖动、内存泄露、线程阻塞、CPU被打爆、数据库被打爆、中间件宕机等棘手问题;每天上百次发布更新,系统高可用性保障压力非常大;China.NET Conf 2019一、.NET分布式、微服务架构下的高可用性挑战2.面临的高可用挑战China.NET Conf 2019一、.NET分布式、微服务架构下的高可用性挑战总结:系统在实现了分布式、微服务化之后,我们到底有多少把握来保证系统的正常运行?如果出现问题,整个分布式系统会变得非常“混乱”,甚至会引发系统的大规模宕机。因此,我们有必要在线上事故出现之前,提前识别出系统有哪些弱点和问题,统一管控系统的固有混沌。这套管控系统固
4、有混沌的方法和体系,就是我们今天要介绍的主角:混沌工程。China.NET Conf 2019Agenda一、.NET分布式、微服务架构下的高可用性挑战二、混沌工程简介三、.NET混沌工程的实践和成果分享四、展望和规划China.NET Conf 2019二、混沌工程简介1.什么是混沌工程?混沌工程的典型实践:Chaos Monkey一只捣乱的猴子,在你的系统里面上蹦下窜,不停捣乱,直到搞挂你的系统。2.为什么需要混沌工程?混沌工程不是制造制造问题,而是揭示揭示问题。Nora Jones,NetflixNetflix 高级混沌工程师通过受控的实验,掌握系统运行行为的过程,称为混沌工程。混沌工程
5、可以提升整个系统的弹性。通过混沌实验,可以发现系统脆弱的一面,主动发现这些问题,并解决这些问题。China.NET Conf 2019二、混沌工程简介3.混沌工程怎么做?混沌工程的一般实施步骤:选择系统正常运行状态下的可度量指标,作为基准的“稳定状态”混沌实验分为实验组和对照组,都能保持系统的“稳定状态”对实验组注入混沌事件,如服务不可用、中间件宕机等混沌事件 比较实验组和对照组“稳定状态”的差异如果混沌实验前后系统的“稳定状态”一致,则可以认为系统应对这种混沌事件是弹性的、高可用的。相反的,如果打破了系统的稳定状态,我们就找到了一个系统弱点,然后尽可能地解决它,提升系统的高可用性。China
6、.NET Conf 2019二、混沌工程简介4.实施混沌工程的推荐原则 明确系统稳定运行的状态(指标)混沌事件必须是现实世界可能发生的(合理的)在生产环境进行混沌实验:生产环境可以真实地反映系统的稳定性 持续集成:线上应用每天都在更新,通过持续集成的方式可以不断发现问题、解决问题。最小化影响范围:线上进行混沌实验,必须可控,必须确定混沌实验的最小化影响范围。在生产环境上搞混沌实验,能行吗?China.NET Conf 2019二、混沌工程简介5.现实中的混沌工程搭建类生产小型环境确定基准“稳定状态”选择混沌事件识别系统问题修复解决回归验证注入故障系统经过高可用性改造之后,有了一定的信心和把握.