Page 28 - 《软件学报》2021年第5期
P. 28
1252 Journal of Software 软件学报 Vol.32, No.5, May 2021
法的分析方法,最终得到由系统性能指标构成的韧性风险影响链路以供运维人员参考.最后,本文在开源微服务
系统 Sock-Shop 上的案例研究也证明了本文提出的韧性风险识别和分析方法能够在微服务架构系统中识别出
潜在的韧性风险,并得到具有一定准确性的韧性风险影响链路.
本文需要进一步开展相关研究工作包括以下几个方面.
(1) 混沌实验设计的优化.目前,在混沌实验中引入系统环境扰动纯粹以随机的方式生成.而在本文的案
例研究中可以看出,这种方式生成的系统环境扰动是韧性风险的概率并不是很高.如何利用前一次系
统迭代中混沌实验的结果以及系统实际运行过程中发现的韧性风险,改进混沌实验中系统环境扰动
的生成方式以提高发现韧性风险的概率?如何有效地组合多种不同的系统环境扰动,观察多种扰动对
微服务架构系统的共同作用?均是本文后续研究中着手解决的问题.
(2) 韧性风险分析方法的优化.本文中分析得到的因果关系分析链路是以系统性能指标的上升下降变化
作为分析基础.而在实际的系统服务降级过程中,异常事件、人为操作等均会导致系统性能指标的变
化.如何有效地将异常检测、系统日志挖掘等技术融入韧性风险分析过程中,是本文在提出韧性风险
分析方法之后的研究目标.此外,现已有一些文献 [79] 使用系统挖掘工具(如 sysdig),在避免额外开发的
情况下捕获服务之间的调用关系,如何在微服务架构系统中挖掘服务调用关系并利用其优化韧性风
险分析方法的分析效率和准确度,也是本文待研究的问题之一.
References:
[1] Lewis J, Fowler M. Microservices: A definition of this new architectural term. 2014. https://martinfowler.com/articles/
microservices.html
[2] Balalaie A, Heydarnoori A, Jamshidi P. Microservices architecture enables devops: Migration to a cloud-native architecture. IEEE
Software, 2016,33(3):42−52. [doi: 10.1109/MS.2016.64]
[3] Mauro T. Adopting microservices at netflix: Lessons for architectural design. 2015. https://www.nginx.com/blog/adopting-
microservices-at-netflix-lessons-for-team-and-process-design/
[4] Ihde S. InfoQ—From a monolith to microservices + REST: The evolution of LinkedIn’s service architecture. 2015. https://www.
infoq.com/presentations/linkedin-microservices-urn/
[5] Calçado P. Building products at soundcloud—Part III: Microservices in scala and finagle. SoundCloud Limited, 2014. https://
developers.soundcloud.com/blog/building-products-at-soundcloud-part-3-microservices-in-scala-and-finagle
[6] Dragoni N, Giallorenzo S, Lafuente AL, et al. Microservices: Yesterday, today, and tomorrow. In: Proc. of the Present and Ulterior
Software Engineering. Cham: Springer-Verlag, 2017. 195−216. [doi: 10.1007/978-3-319-67425-4\_12]
[7] Gunawi HS, Hao M, Suminto RO, et al. Why does the cloud stop computing? Lessons from hundreds of service outages. In: Proc.
of the 7th ACM Symp. on Cloud Computing. New York: ACM, 2016. 1−16. [doi: 10.1145/2987550.2987583]
[8] ISO/IEC 25010: 2011, Systems and Software Engineering — Systems and Software Quality Requirements and Evaluation
(SQuaRE)—System and Software Quality Models. Int’l Standards Organization, 2011. https://www.iso.org/standard/35733.html
[9] Gunawi HS, Hao M, Leesatapornwongsa T, et al. What bugs live in the cloud? A study of 3000+ issues in cloud systems. In: Proc.
of the ACM Symp. on Cloud Computing. New York: ACM, 2014. 7:1−7:14. [doi: 10.1145/2670979.2670986]
[10] Newman S. Building Microservices: Designing Fine-grained Systems. New York: O’Reilly Media, Inc., 2015.
[11] Nadareishvili I, Mitra R, McLarty M, et al. Microservice Architecture: Aligning Principles, Practices, and Culture. New York:
O’Reilly Media, Inc., 2016.
[12] Nygard MT. Release It! Design and Deploy Production-ready Software. 2nd ed., United States: Pragmatic Bookshelf, 2018.
[13] Windle G, Bennett KM, Noyes J. A methodological review of resilience measurement scales. Health and quality of life outcomes,
2011,9(1):Article No.8. [doi: 10.1186/1477-7525-9-8]
[14] Yin K, Du Q, Wang W, et al. On representing resilience requirements of microservice architecture systems. arXiv Preprint arXiv:
1909.13096, 2019.
[15] Boehm B. Software risk management. In: Proc. of the European Software Engineering Conf. Berlin, Heidelberg: Springer-Verlag,
1989. 1−19. [doi: 10.1007/3-540-51635-2_29]