论文部分内容阅读
微服务是一种近年来兴起的一种新型的软件架构风格,它已经越来越多地应用到大规模复杂软件系统中,在软件工程的学术和工业领域都受到了极大的关注。相比于传统软件系统一般只拥有服务层,微服务软件系统除了服务层之外,服务实例独立于服务进行部署和运行,使得微服务架构呈现出一种明显的多层次特性。由于微服务软件系统运行在复杂多变的云环境下,所以它需要进行自适应来应对自身和环境的变化,这就要求提供一种能在多个层次上实现自适应的技术,对现有的自适应技术提出了新的要求和挑战。为此,本文从模型、语言和基础设施三个方面,研究了微服务软件系统多层次自适应的关键技术,取得了以下研究成果:(1)提出了一个微服务软件系统多层次自适应模型,将微服务软件系统中的服务及实例分为不同的层次,在多个不同的层次上可以实现相应的自适应,为指导和实现微服务软件系统的自适应提供了理论基础。然后本文抽取了微服务软件系统自适应的一系列动作,将这些动作封装为自适应原语,它们代表了多个层次上的基本自适应操作,用于调整微服务软件系统和支持自适应策略的描述。(2)抽象了微服务软件系统多层次自适应的关键特征,提出自适应策略的组成要素以及基本形式。最后基于自适应原语和自适应特征的抽象及规约,我们提出了一种基于微服务的自适应策略描述语言MSDL(Microservice Self-adaption Description Language),用于描述微服务软件系统的自适应逻辑。(3)通过扩展微服务管理平台Kubernetes,本文开发了一个名为Adaptive K8s的基础设施。这个基础设施对本文提出的模型和语言进行了物化,提供了一系列工具,从而支持微服务软件系统多层次自适应的实现,部署和运行。本文提出的这些方法可以用来满足在复杂多变环境下微服务软件系统的抗毁伤、自我修复等需求。最后,我们开发了一个使用微服务实现的管理信息系统,将其部署在微服务管理平台上进行实验分析,从而验证我们提出方法的可行性和有效性。