Page 7 - 《软件学报》2021年第5期
P. 7

软件学报 ISSN 1000-9825, CODEN RUXUEW                                       E-mail: jos@iscas.ac.cn
                 Journal of Software,2021,32(5):1231−1255 [doi: 10.13328/j.cnki.jos.006231]   http://www.jos.org.cn
                 ©中国科学院软件研究所版权所有.                                                         Tel: +86-10-62562563


                                                                       ∗
                 基于混沌工程的微服务韧性风险识别和分析

                 殷康璘,   杜庆峰


                 (同济大学  软件学院,上海  201804)
                 通讯作者:  杜庆峰, E-mail: du_cloud@tongji.edu.cn

                 摘   要:  微服务架构近年来已成为互联网应用所采用的主流架构模式.然而与传统的软件架构相比,微服务架构
                 更加复杂的部署结构使其面临更多能够导致系统发生故障的潜在威胁,且微服务架构系统故障的症状也更加多样
                 化.在可靠性等一些传统的软件度量已不能充分体现微服务架构系统故障应对能力的情况下,微服务的开发者们开
                 始使用“韧性(resilience)”一词描述微服务架构系统的故障应对能力.为了提高微服务架构系统的韧性,开发者往往
                 需要针对特定的系统环境扰动因素设计应对机制.如何判断一个系统环境扰动因素是否为影响微服务系统韧性的
                 风险因素,以及如何在系统运行发布之前尽可能多地寻找到这些潜在的韧性风险,都是微服务架构系统开发过程中
                 待研究的问题.在先前研究中提出的微服务韧性度量模型的基础上,结合混沌工程,提出了针对微服务架构系统的韧
                 性风险识别和分析方法.韧性风险的识别方法通过不断地向微服务架构系统引入随机系统环境扰动并观察系统服
                 务性能的变化,寻找系统潜在的韧性风险,大幅度减少了软件风险识别过程中的人力成本.对于识别到的韧性风险,
                 通过收集执行混沌工程过程中的系统性能监控数据,韧性风险分析方法将利用因果搜索算法构建出各项系统性能
                 指标之间的影响链路,并将可能性较高的链路提供给运维人员,作为进一步分析的参考.最后,通过在一个微服务架
                 构系统上实施的案例,研究展示了所提出的韧性风险识别和分析方法的有效性.
                 关键词:  微服务;韧性;软件风险识别;混沌工程
                 中图法分类号: TP311

                 中文引用格式:  殷康璘,杜庆峰.基于混沌工程的微服务韧性风险识别和分析.软件学报,2021,32(5):1231−1255.  http://www.
                 jos.org.cn/1000-9825/6231.htm
                 英文引用格式: Yin KL, Du QF. Microservice resilience risk identification and analysis based on chaos engineering. Ruan Jian
                 Xue Bao/Journal of Software, 2021,32(5):1231−1255 (in Chinese). http://www.jos.org.cn/1000-9825/6231.htm

                 Microservice Resilience Risk Identification and Analysis Based on Chaos Engineering

                 YIN Kang-Lin,    DU Qing-Feng
                 (School of Software Engineering, Tongji University, Shanghai 201804, China)
                 Abstract:    Microservice  architecture has  already become  the  mainstream  architecture pattern of Internet  applications in recent  years.
                 However, compared with  traditional software architectures, microservice architecture  has a more sophisticated  deployment  structure,
                 which makes it have to face more potential threats that make the system in fault, as well as the greater diversity of fault symptoms. Since
                 traditional measurements  like reliability cannot  fully  show a microservice architecture system’s capability to cope with  failures,
                 microservice developers started to use the word “resilience” to describe such capability. In order to improve a microservice architecture
                 system’s resilience, developers usually need to design specific mechanisms for different system environment disruptions. How to judge
                 whether a system environment disruption is a risk to microservice resilience, and how to find these resilience risks as much as possible

                   ∗  基金项目:  国家自然科学基金(U1934212);  国家重点研发计划(2020YFB2103300)
                      Foundation item: National Natural Science Foundation of China (U1934212); National Key Research and Development Program of
                 China (2020YFB2103300)
                      本文由“面向持续软件工程的微服务架构技术”专题特约编辑张贺教授、王忠杰教授、陈连平研究员和彭鑫教授推荐.
                      收稿时间: 2020-07-10;  修改时间: 2020-10-26, 2020-12-15;  采用时间: 2021-01-18; jos 在线出版时间: 2021-02-07
   2   3   4   5   6   7   8   9   10   11   12