China .NET Conf 2019-.NET技术架构下的混沌工程实践

这个月的8号、9号,个人很荣幸参加了China.NET Conf 2019 , 中国.NET开发者峰会,同时分享了技术专题《.NET技术架构下的混沌工程实践》,给广大的.NET开发小伙伴介绍混沌工程和高可用性改造实践。会后大家伙聚餐的时候,陈计节老师建议大家将各自的议题分享到社区,分享给大家。因此,今天和大家分享我的技术专题《.NET技术架构下的混沌工程实践》。

整个专题主要分为四个部分:

.NET分布式、微服务架构下的高可用性挑战

混沌工程简介

.NET混沌工程的实践和成果分享

展望和规划

一、.NET分布式、微服务架构下的高可用性挑战

目前,我们特来电的技术架构是分布式、微服务化的,线上超过1000台Server,高可用保障压力很大:

系统7*24小时运行,不允许宕机,一旦宕机出问题,直接影响全国人民出行;

系统SLA要求99.95% ,全年可宕机时间只有4.38小时;

服务调用链路越来越长,依赖越来越复杂,某个环节出问题,都有肯能导致服务雪崩、大规模宕机;

线上遭遇:网络抖动、内存泄露、线程阻塞、CPU被打爆、 数据库被打爆、中间件宕机等棘手问题;

每天上百次发布更新,系统高可用性保障压力非常大;

一张全链路监控图可以反映我们系统的复杂:

 

China .NET Conf 2019-.NET技术架构下的混沌工程实践

例如主机CPU被打爆的问题,线上经常会遇到:

China .NET Conf 2019-.NET技术架构下的混沌工程实践

经历了线上各种高可用性问题后,我们做了很多反思和总结:

系统在实现了分布式、微服务化之后,我们到底有多少把握来保证系统的正常运行?  

如果出现问题,整个分布式系统会变得非常“混乱”,甚至会引发系统的大规模宕机。

因此,我们有必要在线上事故出现之前,提前识别出系统有哪些弱点和问题,统一管控系统的固有混沌。

这套管控系统固有混沌的方法和体系,就是我们今天要介绍的主角:混沌工程

二、混沌工程简介

1. 什么是混沌工程?

通过受控的实验,掌握系统运行行为的过程,称为混沌工程。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsxgpx.html