软件应用的部署配置的动态选择制造技术

技术编号:24693909 阅读:69 留言:0更新日期:2020-06-27 12:44
一种用于部署软件应用的方法和系统。所述软件应用按照默认部署配置来部署到计算系统上。所述默认部署配置包括所述软件应用的交互软件组件。监视所述软件应用的执行环境的一个或多个操作指标。根据所监视的一个或多个操作指标,确定存在所述执行环境的临界条件。响应于已确定所述临界条件存在,从所述软件应用的一个或多个备选部署配置中选择备选部署配置,每个备选部署配置具有被聚合成对应的聚合软件组件的一组或多组所述软件组件。所述软件应用按照所选择的备选部署配置被重新部署到所述计算系统上。

Dynamic selection of deployment configuration of software application

【技术实现步骤摘要】
【国外来华专利技术】软件应用的部署配置的动态选择
本专利技术涉及信息技术,并且更具体地,涉及软件应用的管理。
技术介绍
软件应用越来越复杂。因此,软件应用通常具有模块化架构,其中每个软件应用包括彼此交互的多个软件组件。模块化体系结构打破了软件应用的复杂性,从而显著地促进了软件应用的管理(例如,设计、开发和维护)。此外,可以提供每个软件应用的不同部署配置(例如,通过根据对应设置来构建软件应用),使得系统管理员可以使用软件应用的最适合于不同执行环境(例如,测试、生产)的部署配置。典型的示例是在云(计算)环境中。(云)软件应用由云提供商作为服务提供给用户,云提供商在请求时提供、配置和释放对应的计算资源(使得软件应用的实际实现对用户完全不透明)。软件应用与实现软件应用的实际计算资源的这种解耦提供了其无限容量的假象,并且改进了软件应用的利用,尤其是对于高峰负载条件(借助于规模经济)。此外,现在用户从管理这些计算资源(例如,这些计算资源的安装和维护)中解脱出来,并且用户可以执行由于这些计算资源的成本和复杂性(尤其是对于个人和小公司)而先前不可行的任务(在按使用付费的基础上)。每个软件应用的软件组件通常实现对应的(微)服务。每个微服务可以调用软件应用的其他微服务(除了外部服务之外)以提供所需功能。然后,软件应用可以被部署在多个实例中(例如,部署到地理上分散的对应数据中心上),使得对应的云提供商的负载平衡器可以利用最靠近该云提供商的软件应用的实例来服务用户的每个请求以便增加响应性。此外,软件应用的每个实例可以用实现微服务的软件应用的软件组件的多个实例来部署,这允许分散软件应用的工作负载并且提供冗余以增加可靠性。不同的问题可能不利地影响软件应用的操作。然而,即使软件组件的所有实例在软件应用的特定实例中变得不可用,软件应用也可以通过将对应的微服务(远程地)调用到软件应用的其它实例上来继续工作。然而,前述情况可能降低软件应用的性能。例如,微服务可能现在被远程地调用到部署在远离软件应用的数据中心的其中微服务不可用的数据中心中的软件应用的实例上(例如,微服务位于另一大陆)。因此,这些数据中心之间的相应传输时间相应地不利地影响软件应用的响应时间,这可能在软件应用的实例中产生拥塞,使得微服务被远程地调用,这也使响应时间降级。
技术实现思路
本专利技术的实施例提供了一种用于部署软件应用的方法以及相关联的计算机系统和计算系统。所述软件应用按照默认部署配置来部署到计算系统上,所述默认部署配置包括所述软件应用的多个交互软件组件。监视所述软件应用的执行环境的一个或多个操作指标。根据所监视的一个或多个操作指标,确定存在所述执行环境的临界条件。响应于已确定所述临界条件存在,从所述软件应用的一个或多个备选部署配置中选择备选部署配置,每个备选部署配置具有被聚合成对应的聚合软件组件的一组或多组所述软件组件。所述软件应用按照所选择的备选部署配置被重新部署到所述计算系统上。附图说明图1A-1D示出了本专利技术的实施例;图2示出了被配置为实现本专利技术的实施例的计算系统的示意性框图;图3示出了包括可以用于实现本专利技术的实施例的软件组件的图;图4示出了根据本专利技术实施例的云计算环境;图5示出了根据本专利技术实施例的抽象模型层。具体实施方式图1A-1D示出了本专利技术的实施例。参考图1A,软件应用105按照默认部署配置来部署到计算系统上。例如,软件应用105是云类型的(由对应的云提供商作为云环境中的服务提供),诸如实现电子商务门户。软件应用包括实现对应服务的多个软件组件μS1-μSN,用相同的附图标记表示(每个软件组件提供独立的基本功能,与软件应用的实现无关,可以根据控制软件应用的使用的相应策略通过明确定义的接口来请求软件应用的实现)。在一个实施例中,服务μS1-μSN是微型的。微服务μS1-μSN尺寸小、粒度细(以执行单个功能)、可独立部署并且可通过轻量级协议(如HTTP)访问。通常,云提供商提供(硬件和/或软件)计算资源池作为云服务(即,可以非常快速地供应、配置和释放的共享计算资源)。云服务的计算资源(其可以是虚拟类型;即,通过软件对物理资源的仿真)在请求时被提供给云提供商的用户,使得每个用户具有对这些计算资源的单独控制(这些计算资源然后可以被精确地使用,就好像这些计算资源专用于每个用户一样)。在一个实施例中,这些服务包括根据软件即服务(SaaS)模型提供的软件应用105。在默认部署配置中,软件应用105在一个或多个实例中被部署到云服务的云提供商的一个或多个数据中心DC1-DCM上。例如,软件应用105的每个实例被安装到对应的数据中心DC1-DCM上。更具体地说,将每个软件组件μS1-μSN的一个或多个实例安装到对应的(执行)计算机器上,例如,数据中心DC1-DCM的虚拟机VM1-VMM。(在软件应用的开发期间)选择默认配置以提供关于软件应用功能在微服务μS1-μSN中的分布的期望水平的可靠性。在操作中,微服务μS1-μSN可以相互调用。(例如根据RESTful规范)。例如,当微服务μS1需要微服务μS2的功能时,微服务μS1(在数据中心DC1中本她)调用微服务μS2。同时,软件应用105的执行环境的一个或多个操作指标由特定(控制)计算机器监视;例如,云提供商的对应数据中心的虚拟机VMc,该对应数据中心用参考DCc区分并运行管理整个云提供商的云管理器。例如,控制虚拟机VMc周期性地收集与软件应用105的实例、数据中心DC1-DCM以及数据中心DC1-DCM之间的连接有关的性能指标、配置指标和可用性指标。参照图1B,出现了不利地影响软件应用105的操作的问题。例如,在软件应用105的特定实例中(例如,在数据中心DC1上),微服务(例如,微服务μS2)的所有实例都停止。尽管如此,数据中心DC1上的软件应用105的实例可以通过将相同的微服务μS2调用到软件应用105的其他实例上来继续工作。例如,微服务μS1现在从数据中心DC1远程地将微服务μS2调用到数据中心DC2上。参考图1C,根据本专利技术的实施例,可以根据由控制虚拟机VMc监视的软件应用的操作指标来检测软件应用105的执行环境的临界条件。例如,临界条件由在数据中心DC1上不可用的微服务μS2的所有实例以及数据中心DC1与数据中心DC2之间的缓慢连接(例如,因为数据中心DC1和DC2位于不同的大陆)来定义,这导致软件应用105的相应性能降级。响应于性能降级,在软件应用105的一个或多个备选部署配置中选择软件应用105的(所选)备选部署配置。软件应用105的每个备选部署配置具有被聚合成对应的聚合软件组件的一组或多组软件组件μS1-μSN。每个聚合软件组件利用用于调用微服务的相同接口来提供对应软件组件的相同功能。例如,所选择的备选部署配置包括聚合软件组件μS12而不是(单独的)软件组件μS1和μS2。参考图1D,软件应用105按照所选择的备选部署配置被重新部署(重新登台)。特别地,在数据中心DC1上的软件应用本文档来自技高网
...

【技术保护点】
1.一种用于部署软件应用的方法,所述方法包括:/n将所述软件应用按照默认部署配置来部署到计算系统上,所述默认部署配置包括所述软件应用的多个交互软件组件;/n监视所述软件应用的执行环境的一个或多个操作指标;/n根据所监视的一个或多个操作指标确定存在所述执行环境的临界条件;/n响应于所述确定,从所述软件应用的一个或多个备选部署配置中选择备选部署配置,每个备选部署配置具有被聚合成对应的聚合软件组件的一组或多组所述软件组件;以及/n将所述软件应用按照所选择的备选部署配置来重新部署到所述计算系统上。/n

【技术特征摘要】
【国外来华专利技术】20171109 US 15/808,1141.一种用于部署软件应用的方法,所述方法包括:
将所述软件应用按照默认部署配置来部署到计算系统上,所述默认部署配置包括所述软件应用的多个交互软件组件;
监视所述软件应用的执行环境的一个或多个操作指标;
根据所监视的一个或多个操作指标确定存在所述执行环境的临界条件;
响应于所述确定,从所述软件应用的一个或多个备选部署配置中选择备选部署配置,每个备选部署配置具有被聚合成对应的聚合软件组件的一组或多组所述软件组件;以及
将所述软件应用按照所选择的备选部署配置来重新部署到所述计算系统上。


2.根据权利要求1所述的方法,其中,所述方法包括:
响应于根据所述操作指标而从所述临界条件返回到所述执行环境的默认条件,将所述软件应用按照所述默认部署配置来重新部署到所述计算系统上。


3.根据权利要求1所述的方法,其中,所述软件应用被部署在多个实例中,每个实例包括所述对应的聚合软件组件的一个或多个实例。


4.根据权利要求1所述的方法,其中,所述软件组件实现对应的服务,所述软件应用包括对所述对应的服务中的每个服务的一个或多个调用。


5.根据权利要求4所述的方法,其中,每个组的所述软件组件包括对由所述每个组的所述软件组件实现的所述服务的一个或多个远程调用,并且其中,所述对应的聚合软件组件用对应的本机调用替换所述远程调用。


6.根据权利要求4所述的方法,其中,所述聚合软件组件的每个软件组件包含所述对应的聚合软件组件的代码。


7.根据权利要求1所述的方法,其中,所述软件应用是云软件应用。


8.根据权利要求1所述的方法,其中,所述监视一个或多个操作指标包括:
监视所述执行环境的一个或多个性能指标、配置指标和/或可用性指标。


9.根据权利要求1所述的方法,其中,所述方法包括:
将所述软件应用按照多个训练部署配置来部署到具有所述操作指标的不同值的多个训练环境上,每个所述训练部署配置包括所述默认部署配置和所述备选部署配置;
测量在每个训练环境上按照每个训练部署配置的所述软件应用的一个或多个性能指标;以及
根据所述训练环境的所述操作指标和对应的按照所述训练部署配置的所述软件应用的性能指标,确定用于选择所述备选部署配置的选择策略。


10.根据权利要求9所述的方法,其中,所述方法包括:
在包括用于所述备选部署配置的多个候选部署配置的所述训练部署配置中部署所述软件应用,以及
根据所述训练环境的所述操作指标和对应的按照所述训练部署配置的所述软件应用的性能指标,在所述候选部署配置中选择所述备选部署配置。


11.根据权利要求1所述的方法,其中,所述软件组件中的一个或多个软件组件是无状态的。


12.根据权利要求3所述的方法,其中,所述软件组件中的一个或多个软件组件是有状态的,并且其中,对于每个有状态软件组件的所述实例中的每个第一实例,所述方法包括:
将由所述有状态软件组件的所述第一实例实现的任何会话的对应的会话数据保持在所述计算系统的被部署了所述有状态软件组件的所述第一实例的第一计算机器上;
将所述会话数据镜像到所述计算系统的与所述第一计算机器不同的一个或多个镜像计算机器上;
将所述会话数据从所述镜像计...

【专利技术属性】
技术研发人员:M·维拉尼G·德卡波亚R·德加埃塔诺F·里贝奇尼V·里瓦
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1