论文部分内容阅读
微服务架构是当前最流行的软件架构,当开发者从微服务架构获得敏捷开发时,可靠性成为系统运行的最大的痛点。本文重点研究了面向可靠性的微服务系统自适应调整中的两个重要问题:微服务系统可靠性分析和服务流程组合。本文在对软件系统可靠性进行研究的基础上,提出了一种软件系统可靠性分析任务划分的框架;基于此框架介绍了四类常用的可靠性分析技术以及相应的方法,调查了将这些技术和方法用于分析软件系统可靠性的研究进展,发现了每种可靠性分析任务与相应的技术、方法之间的关联;在此基础上,重点关注了基于概率模型检验的可靠性分析方法以及这类分析方法的应用场景,讨论了概率模型检验方法在分析软件系统可靠性时所具有的优势,并给出了一个通用的基于概率模型检验的软件可靠性分析平台。微服务系统是与单体架构相对应的一个概念。传统的单体架构多实例部署机制在应对大流量、高并发用户洪水般访问时,有效缓解系统压力的同时,也造成了极大的资源浪费。微服务架构以其既能缓解系统压力又能充分利用系统资源的优势成为系统架构的首选。传统软件系统的可靠性分析方法都是针对单体多实例部署的情况,使用传统的可靠性分析方法不能准确地分析微服务差异化多实例部署模式下的微服务系统的可靠性。针对这一问题,本文提出了一种微服务差异化多实例部署模式下微服务系统可靠性分析方法,实验验证了这种方法的有效性。随着微服务系统业务规模的扩大,单一的服务流程已经不能满足微服务系统业务的扩张,服务流程的多元化已成微服务系统发展的必然趋势。然而,用户在使用微服务系统时,很少完全使用微服务系统提供的全部业务,而仅使用其感兴趣的部分业务,在这种情况下,使用传统的单一业务流程的可靠性分析方法不能准确地反映多业务流程的微服务系统的可靠性,同时,多元化业务流程的业务交织增加了微服务系统可靠性分析的难度。针对这一问题,本文提出了一种多社区微服务系统可靠性分析方法,实验验证了这种方法的有效性。服务流程重组是实现微服务系统自适应调整的一种最直接有效的方法。传统的服务流程组合问题的解决方案都是以服务与服务模型粒度相同为前提,事实上,在互联网中存在这样一类大粒度服务,即,一个服务可以完成多个服务模型描述的多个需求规约,与使用和服务模型粒度相同的服务组合可靠性最优的服务流程相比,使用大粒度服务组合服务流程通过减少参与组合服务流程的候选服务集合的数目,提高组合服务流程的效率。本文通过解决对最优大粒度服务流程建模和组合可靠性最优的大粒度服务流程两个子问题完成大粒度服务流程组合问题问题,并通过实验验证了这种方法的有效性。最后,参考IBM提出的自治元素模型,本文提出了一种面向可靠性的微服务系统自适应调整框架,并利用本文的研究成果及分布式集群技术和大数据技术实现了该框架的原型平台。在云计算环境中,该自适应调整平台利用集群技术及大数据技术以及基于对多实例部署、多业务流程的微服务系统的可靠性分析及面向大粒度的服务流程组合方法,实现面向可靠性的微服务系统自适应调整。