CN111344668B - 软件应用的部署配置的动态选择 - Google Patents
软件应用的部署配置的动态选择 Download PDFInfo
- Publication number
- CN111344668B CN111344668B CN201880072816.1A CN201880072816A CN111344668B CN 111344668 B CN111344668 B CN 111344668B CN 201880072816 A CN201880072816 A CN 201880072816A CN 111344668 B CN111344668 B CN 111344668B
- Authority
- CN
- China
- Prior art keywords
- software
- software application
- deployment configuration
- aggregated
- instance
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 claims abstract description 61
- 230000004044 response Effects 0.000 claims abstract description 21
- 230000002452 interceptive effect Effects 0.000 claims abstract description 6
- 238000012549 training Methods 0.000 claims description 37
- 238000003860 storage Methods 0.000 claims description 35
- 230000015654 memory Effects 0.000 claims description 13
- 238000012544 monitoring process Methods 0.000 claims description 10
- 230000000875 corresponding effect Effects 0.000 description 54
- 230000006870 function Effects 0.000 description 26
- 238000010586 diagram Methods 0.000 description 15
- 238000012545 processing Methods 0.000 description 15
- 238000004590 computer program Methods 0.000 description 12
- 238000003066 decision tree Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 9
- 238000007726 management method Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 238000012360 testing method Methods 0.000 description 6
- 230000007704 transition Effects 0.000 description 6
- 230000009471 action Effects 0.000 description 5
- 238000004519 manufacturing process Methods 0.000 description 5
- 230000001276 controlling effect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000008520 organization Effects 0.000 description 4
- 230000002411 adverse Effects 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 3
- 238000004220 aggregation Methods 0.000 description 3
- 230000015556 catabolic process Effects 0.000 description 3
- 238000006731 degradation reaction Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000003936 working memory Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 235000008694 Humulus lupulus Nutrition 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000009172 bursting Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000007635 classification algorithm Methods 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 238000013138 pruning Methods 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 230000004043 responsiveness Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000000344 soap Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/64—Retargetable
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45591—Monitoring or debugging support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
一种用于部署软件应用的方法和系统。所述软件应用按照默认部署配置来部署到计算系统上。所述默认部署配置包括所述软件应用的交互软件组件。监视所述软件应用的执行环境的一个或多个操作指标。根据所监视的一个或多个操作指标,确定存在所述执行环境的临界条件。响应于已确定所述临界条件存在,从所述软件应用的一个或多个备选部署配置中选择备选部署配置,每个备选部署配置具有被聚合成对应的聚合软件组件的一组或多组所述软件组件。所述软件应用按照所选择的备选部署配置被重新部署到所述计算系统上。
Description
技术领域
本发明涉及信息技术,并且更具体地,涉及软件应用的管理。
背景技术
软件应用越来越复杂。因此,软件应用通常具有模块化架构,其中每个软件应用包括彼此交互的多个软件组件。模块化体系结构打破了软件应用的复杂性,从而显著地促进了软件应用的管理(例如,设计、开发和维护)。
此外,可以提供每个软件应用的不同部署配置(例如,通过根据对应设置来构建软件应用),使得系统管理员可以使用软件应用的最适合于不同执行环境(例如,测试、生产)的部署配置。
典型的示例是在云(计算)环境中。(云)软件应用由云提供商作为服务提供给用户,云提供商在请求时提供、配置和释放对应的计算资源(使得软件应用的实际实现对用户完全不透明)。软件应用与实现软件应用的实际计算资源的这种解耦提供了其无限容量的假象,并且改进了软件应用的利用,尤其是对于高峰负载条件(借助于规模经济)。此外,现在用户从管理这些计算资源(例如,这些计算资源的安装和维护)中解脱出来,并且用户可以执行由于这些计算资源的成本和复杂性(尤其是对于个人和小公司)而先前不可行的任务(在按使用付费的基础上)。
每个软件应用的软件组件通常实现对应的(微)服务。每个微服务可以调用软件应用的其他微服务(除了外部服务之外)以提供所需功能。然后,软件应用可以被部署在多个实例中(例如,部署到地理上分散的对应数据中心上),使得对应的云提供商的负载平衡器可以利用最靠近该云提供商的软件应用的实例来服务用户的每个请求以便增加响应性。此外,软件应用的每个实例可以用实现微服务的软件应用的软件组件的多个实例来部署,这允许分散软件应用的工作负载并且提供冗余以增加可靠性。
不同的问题可能不利地影响软件应用的操作。然而,即使软件组件的所有实例在软件应用的特定实例中变得不可用,软件应用也可以通过将对应的微服务(远程地)调用到软件应用的其它实例上来继续工作。
然而,前述情况可能降低软件应用的性能。例如,微服务可能现在被远程地调用到部署在远离软件应用的数据中心的其中微服务不可用的数据中心中的软件应用的实例上(例如,微服务位于另一大陆)。因此,这些数据中心之间的相应传输时间相应地不利地影响软件应用的响应时间,这可能在软件应用的实例中产生拥塞,使得微服务被远程地调用,这也使响应时间降级。
发明内容
本发明的实施例提供了一种用于部署软件应用的方法以及相关联的计算机系统和计算系统。所述软件应用按照默认部署配置来部署到计算系统上,所述默认部署配置包括所述软件应用的多个交互软件组件。监视所述软件应用的执行环境的一个或多个操作指标。根据所监视的一个或多个操作指标,确定存在所述执行环境的临界条件。响应于已确定所述临界条件存在,从所述软件应用的一个或多个备选部署配置中选择备选部署配置,每个备选部署配置具有被聚合成对应的聚合软件组件的一组或多组所述软件组件。所述软件应用按照所选择的备选部署配置被重新部署到所述计算系统上。
附图说明
图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上的软件应用105的实例中,软件组件μS1和μS2被聚合软件组件μS12的相应实例替换。因此,现在直接在聚合软件组件μS12内(即,在数据中心DC1中本地)执行微服务μS1对微服务μS2的任何调用。然而,数据中心DC1上的软件应用105的实例向用户和软件应用105的其他实例暴露完全相同的行为,使得软件应用105的部署配置改变对于用户是完全不可知的(即,不透明)。
结果,软件应用的部署配置动态地适应软件应用的执行环境,这显著地提高了软件应用的性能。特别地,软件组件的聚合避免(或至少显著减少)对微服务的远程调用,并且随后避免了不同数据中心之间的相应通信(诸如在本示例中,用于由数据中心DC1上的微服务μS1将微服务μS2调用到数据中心DC2上的相应通信),这避免(或至少显著减少)其中远程调用微服务的软件应用的实例中的任何拥塞,从而也改进了软件应用的响应时间(诸如在本示例中,数据中心DC2上的软件应用105的实例)。
图2示出了被配置为实现本发明的实施例的计算系统200的示意性框图。
计算系统200包括云提供商(托管执行虚拟机和控制虚拟机,图2中未示出)的数据中心DC1-DCM。数据中心DC1-DCM经由通信网络205彼此通信。例如,当云提供商根据公共云模型提供对应的云服务(包括上述软件应用)时,通信网络205可以是全局类型(通常基于因特网)。在这种情况下,用户通过利用用户的客户端计算机器或简单地(例如,薄型的)客户端210访问相同的通信网络205来连接到云提供商。因此,云提供商暴露用于访问软件应用(例如,经由客户端210的web浏览器)的前端子系统。云提供商反而具有实际上实现云服务的后端子系统。后端子系统不能从外部访问,使得用户完全不知道后端子系统的位置和配置。
每个数据中心DC1-DCM包括实现大容量存储器的若干服务器计算机,或简单地服务器215(例如,机架或刀片型)和存储盘220(例如,RAID型)。每个服务器215又包括控制每个服务器的操作的一个或多个微处理器(μP)、存储用于服务器的引导程序的基本代码的非易失性存储器(ROM)、以及由微处理器(图2中未示出)用作工作存储器的易失性存储器(RAM)。数据中心DC1-DCM还包括用于控制数据中心的服务器计算机(例如,个人计算机,还设置有用于读/写诸如光盘(如DVD)的可移动存储单元230的驱动器)的控制台225。交换机/路由器子系统235管理服务器215、盘220和控制台225之间的任何通信,以及与通信网络205的任何通信。服务器215、盘220和控制台225通过电缆连接子系统240连接到交换机/路由器子系统235。
图3示出了包括可以用于实现本发明的实施例的软件组件的图。
所有软件组件(程序和数据)作为整体用附图标记300表示。软件组件通常存储在大容量存储器中,并且当程序运行时,与操作系统和其他应用程序(图3中未示出)一起(至少部分地)被加载到控制虚拟机的工作存储器中。程序最初例如从可移动存储单元或从通信网络被安装到大容量存储器中。在这方面,每个程序可以是模块、代码段或代码部分,它们包括用于实现指定逻辑功能的一个或多个可执行指令。特别地,该图通过一系列交换的消息来表示软件组件300的静态结构和软件组件300的动态行为,每个交换消息表示对应的动作(用前面加符号″A″的序列号表示)。
特别地,创建器305从源代码库310取回软件应用的源代码的原始版本,其中源代码已由对应的开发团队添加到源代码库310。创建器305更新源代码以定义软件应用的多个候选部署配置,这些配置将被用于选择软件应用的备选部署配置(例如,对应于预定义数量的其软件组件(例如2-4个软件组件)的所有可能聚合)。特别地,引入配置变量myConfiguration以用于选择部署配置。配置变量myConfiguration可以采用与默认部署配置和候选部署配置相对应的不同值。创建器305更新源代码,以便选择性地将对应的软件组件合并到每个聚合软件组件中。例如,对于与默认部署配置的值不同的配置变量myConfiguration的每个值,在每个(第一)软件组件的开始处添加由配置变量myConfiguration控制的switch语句。如果对应的候选部署配置将一个或多个(第二)软件组件与第一软件组件相聚合,则添加指令以将第二软件组件的代码合并到第一软件组件中。此外,创建器305更新源代码,以便选择性地从远程或从本地调用软件组件。例如,第一软件组件中的每个第二软件组件的每次远程调用(如RESTful调用)被再次由配置变量myConfiguration控制的switch语句所替换。当配置变量myConfiguration指示默认部署配置或候选部署配置时,switch语句导致第二软件组件的远程调用,其中第二软件组件保持与第一软件组件分离,而当配置变量myConfiguration指示候选部署配置时,switch语句导致第二软件组件的本机(即本地)调用(类似于函数调用),其中第二软件组件与第一软件组件相聚合。例如,实现微服务μS1的函数myFunction1的非常简单的软件组件(该软件组件调用微服务μS2的函数myFunction2和微服务μS3的函数myFunction3)可以最初具有以下伪代码:
在候选部署配置将软件组件μS1和μS2聚合成聚合软件组件μS12(由配置变量myConfiguration=12指示)并且另一候选部署配置将软件组件μS1和μS3聚合成聚合软件组件μS13(由配置变量myConfiguration=13指示)的情况下,除了具有分离的软件组件μS1和μS2的默认部署配置(由配置变量myConfiguration=0指示)之外,伪代码变为:
创建器305用源代码的更新版本替换软件应用的源代码的原始版本到源代码库310中(动作″A1.更新″)。构建器315根据配置变量myConfiguration(例如,由软件开发应用的构建工具实现)的当前值,从自源代码库310取回的软件应用的源代码来构建软件应用的不同部署包(用于软件应用的部署)。暂时针对部署软件应用所需的时间,构建器315将软件应用的每个部署包(例如,以对应的虚拟设备的形式)添加到部署包库320(动作″A2.构建″)。
在软件应用的训练阶段期间(在将软件应用投入生产之前),配置器325配置软件应用的不同训练(执行)环境。每个训练环境具有不同的操作指标值(用于选择软件应用的备选部署配置)。例如,配置器325用一个或多个性能指标、一个或多个配置指标和/或一个或多个可用性指标的不同值来配置训练环境,所述性能指标诸如数据中心之间的连接的带宽和数据中心的服务器的可用处理能力,所述配置指标诸如数据中心之间的连接的跳数和执行虚拟机的工作存储器量,所述可用性指标诸如微服务以及数据中心之间的连接的可用性(动作″A3.配置″)。
部署器330用于借助由部署器330从部署包储存库320取回的部署包来将软件应用部署到计算系统上。特别地,在软件应用的训练阶段期间,部署器330按照包括默认部署配置和每个候选部署配置的每个训练部署配置(在构建器315已经在运行时构建了软件应用的部署包之后)将软件应用335连续部署在每个训练环境上(动作″A4.部署″)。学习器340学习用于选择软件应用的备选部署配置的选择策略。学习器340在每个训练环境上的每个训练部署配置中测量软件应用335的一个或多个性能指标(例如,软件应用对基准请求的平均响应时间)(动作″A5.测量″)。学习器340然后根据训练环境的操作指标和训练部署配置中的软件应用335的相应性能指标来在候选部署配置中选择备选部署配置。例如,对于每个训练环境,学习器340仅在按照默认配置的软件应用335的性能指标超过阈值(诸如10-20%)时,才选择提供软件应用335的最佳性能指标(即,在这种情况下,最低的平均响应时间)的候选部署配置。一旦所有的训练环境都已经被处理,则已经被选择的软件应用的候选部署配置定义了备选部署配置。因此,备选部署配置被限于在实践中很可能实际有用的部署配置。此时,如果需要,学习器340还可通过移除与尚未被选择的候选部署配置相对应的源代码的部分来简化源代码库310中的软件应用的源代码(动作″A6.选择″)。在任何情况下,学习器340根据训练环境的操作指标和软件应用335的相应性能指标来确定选择策略(用于选择软件应用的默认部署配置或备选部署配置)。例如,学习器340应用机器学习技术来创建定义选择策略的决策树。决策树包括多个决策节点(从根测试节点开始)。每个决策节点指定一个或多个操作指标的测试,从决策节点下行的两个或多个分支对应于这些操作指标的可能值。决策树的每个叶节点借助配置变量myConfiguration的相应值来指定软件应用的默认/备选部署配置。默认/备选部署配置是预期为沿着从根测试节点到叶节点的路径的操作指标的值提供软件应用的最佳性能指标(具有上述裕度)的部署配置。学习器340将如此获得的决策树的表示存储到决策树文件345中(动作″A7.学习″)。
此后,软件应用被投入生产。开始时,部署器330按照默认部署配置(在部署包已经在运行时由构建器315构建之后)将软件应用350部署到计算系统的(生产)执行环境上(动作″A8.部署″)。在运行时,软件应用的每个软件组件的每个实例可以由其他软件组件的实例和/或由软件应用的用户(图3中未示出)调用以用于提交对应的请求(动作″A9.调用″)。软件组件的这个实例相应地处理(服务)每个请求。特别地,软件组件可以是元状态的或有状态的。当软件组件是无状态的时,独立地处理每个请求,而不保留与先前已经处理的请求有关的任何(会话)数据(使得软件组件的实例是完全可替换的)。相反,当软件组件是有状态的时,软件组件的实例根据会话数据中反映的历史来保留用于处理每个会话中与相应用户的多个请求的会话数据。一旦会话关闭,会话数据就被丢弃(动作″A10.处理″)。根据本发明的实施例,会话数据被镜像到一个或多个其他位置,所述位置不同于其中部署软件组件的(第一)实例的(第一)执行虚拟机。例如,通过每当任何会话被打开、会话的会话数据被更新、以及会话被关闭时向会话发送对应的通知,会话数据被镜像到包括控制虚拟机和/或其他执行虚拟机(图4中未示出)的一个或多个(镜像)虚拟机中(动作″A11.镜像″)。在这种情况下,软件组件的第一实例的任何待处理会话可以被移动到软件应用的另一个(远程)实例(图3中未示出)中的相同软件组件的另一个(第二)实例以继续处理,这可能在(第一)数据中心中的软件组件的所有实例都停止(即,中止)并且操作被另一个(第二)数据中心中的软件组件的实例接管时发生(或者反之亦然,此时软件组件的实例在第一数据中心中再次工作并且它们的操作被从第二数据中心中的软件组件的实例返回到第一数据中心中的软件组件的实例)。作为响应,软件组件的第二实例识别最接近软件组件的第二实例的位置的相应会话数据的位置(例如,分别根据诸如地理距离和传输速度的物理和/或逻辑参数)。然后,软件组件的第二实例从该最近位置将会话数据本地复制到对应的(第二)虚拟机上,以便无缝地重新开始待处理会话的处理,其中,对软件组件的第一实例的任何后续请求从现在开始被提交到软件组件的第二实例以如上处理对应的会话(动作″A12.复制″)。
在任何情况下,在根据本发明实施例的解决方案中的同时,监视器355监视软件应用的执行环境的操作指标。监视器355将在每个监视时刻(例如,每30-120秒)收集的操作指标传递到分析器360(动作″A13.监视″)。分析器360根据从决策树文件345取回的决策树,选择与每个监视时刻的操作指标相对应的软件应用的(默认/备选)部署配置。分析器360测试在根测试节点中指定的操作指标,向下移动与它们的值相对应的分支,并且重复相同的操作,直到到达叶节点。然后,该叶节点指示(所选择的)部署配置,该部署配置很可能在由操作指标定义的软件应用的执行环境的当前条件下提供软件应用350的最佳性能。特别地,当操作指标表示执行环境可能处于临界条件(其中软件应用350的性能可能显著地降级)时,决策树的向下排序选择了备选部署配置中的一个,因为所选择的备选部署配置被预期提高软件应用350的性能。相反,当操作指标表示执行环境很可能处于默认条件(其中软件应用350的性能应如所期望的)时,决策树的向下排序选择默认部署配置(动作″A14.选择″)。每当所选择的部署配置不同于软件应用350的当前部署配置时,部署器330按照所选择的部署配置(在构建器315已经在运行时构建了软件应用的部署包之后)将软件应用350重新部署到计算系统的执行环境上。因此,当执行环境(从默认条件或从另一关键条件)转到任何关键条件时,软件应用350被按照对应的备选部署配置来重新部署(以避免或至少减少软件应用350的性能的预期降级)。相反,当执行环境从任何临界条件转到默认条件时,软件应用350被按照默认部署配置来重新部署。结果,软件应用350尽快返回到默认部署配置。一旦很可能降低软件应用350的性能的临界条件被移除,软件应用350再次具有所有分离的软件应用的软件组件,从而恢复软件应用的原始可靠性级别(动作″A15.重新部署″)。软件应用的重新部署可以引起任何待处理会话的移动,例如,当软件组件的实例(其操作当前由软件应用的(第一)实例在软件应用的另一(远程)实例中接管)被本地聚合到聚合软件组件的对应实例中以获取软件应用的操作时,这种移动发生。如上所述,聚合软件组件的实例识别最接近软件应用的位置的对应会话数据的位置,并且从该最接近的位置本地复制会话数据到对应的(第三)虚拟机上,以便元缝地重新开始待处理会话的处理,其中,对软件组件的第一实例的任何后续请求从现在开始被提交到聚合软件组件的实例,以如上所述处理对应的会话(动作″A16.复制″)。
云计算是一种服务交付模式,用于对共享的可配置计算资源池进行方便、按需的网络访问。可配置计算资源是能够以最小的管理成本或与服务提供者进行最少的交互就能快速部署和释放的资源,例如可以是网络、网络带宽、服务器、处理、内存、存储、应用、虚拟机和服务。这种云模式可以包括至少五个特征、至少三个服务模型和至少四个部署模型。
特征包括:
按需自助式服务:云的消费者在无需与服务提供者进行人为交互的情况下能够单方面自动地按需部署诸如服务器时间和网络存储等的计算能力。
广泛的网络接入:计算能力可以通过标准机制在网络上获取,这种标准机制促进了通过不同种类的瘦客户机平台或厚客户机平台(例如移动电话、膝上型电脑、个人数字助理PDA)对云的使用。
资源池:提供者的计算资源被归入资源池并通过多租户(multi-tenant)模式服务于多重消费者,其中按需将不同的实体资源和虚拟资源动态地分配和再分配。一般情况下,消费者不能控制或甚至并不知晓所提供的资源的确切位置,但可以在较高抽象程度上指定位置(例如国家、州或数据中心),因此具有位置无关性。
迅速弹性:能够迅速、有弹性地(有时是自动地)部署计算能力,以实现快速扩展,并且能迅速释放来快速缩小。在消费者看来,用于部署的可用计算能力往往显得是无限的,并能在任意时候都能获取任意数量的计算能力。
可测量的服务:云系统通过利用适于服务类型(例如存储、处理、带宽和活跃用户帐号)的某种抽象程度的计量能力,自动地控制和优化资源效用。可以监测、控制和报告资源使用情况,为服务提供者和消费者双方提供透明度。
服务模型如下:
软件即服务(SaaS):向消费者提供的能力是使用提供者在云基础架构上运行的应用。可以通过诸如网络浏览器的瘦客户机接口(例如基于网络的电子邮件)从各种客户机设备访问应用。除了有限的特定于用户的应用配置设置外,消费者既不管理也不控制包括网络、服务器、操作系统、存储、乃至单个应用能力等的底层云基础架构。
平台即服务(PaaS):向消费者提供的能力是在云基础架构上部署消费者创建或获得的应用,这些应用利用提供者支持的程序设计语言和工具创建。消费者既不管理也不控制包括网络、服务器、操作系统或存储的底层云基础架构,但对其部署的应用具有控制权,对应用托管环境配置可能也具有控制权。
基础架构即服务(IaaS):向消费者提供的能力是消费者能够在其中部署并运行包括操作系统和应用的任意软件的处理、存储、网络和其他基础计算资源。消费者既不管理也不控制底层的云基础架构,但是对操作系统、存储和其部署的应用具有控制权,对选择的网络组件(例如主机防火墙)可能具有有限的控制权。
部署模型如下:
私有云:云基础架构单独为某个组织运行。云基础架构可以由该组织或第三方管理并且可以存在于该组织内部或外部。
共同体云:云基础架构被若干组织共享并支持有共同利害关系(例如任务使命、安全要求、政策和合规考虑)的特定共同体。共同体云可以由共同体内的多个组织或第三方管理并且可以存在于该共同体内部或外部。
公共云:云基础架构向公众或大型产业群提供并由出售云服务的组织拥有。
混合云:云基础架构由两个或更多部署模型的云(私有云、共同体云或公共云)组成,这些云依然是独特的实体,但是通过使数据和应用能够移植的标准化技术或私有技术(例如用于云之间的负载平衡的云突发流量分担技术)绑定在一起。
云计算环境是面向服务的,特点集中在无状态性、低耦合性、模块性和语意的互操作性。云计算的核心是包含互连节点网络的基础架构。
现在参考图4,其中显示了示例性的云计算环境50。如图所示,云计算环境50包括云计算消费者使用的本地计算设备可以与其相通信的一个或者多个云计算节点10,本地计算设备例如可以是个人数字助理(PDA)或移动电话54A,台式电脑54B、笔记本电脑54C和/或汽车计算机系统54N。云计算节点10之间可以相互通信。可以在包括但不限于如上所述的私有云、共同体云、公共云或混合云或者它们的组合的一个或者多个网络中将云计算节点10进行物理或虚拟分组(图中未显示)。这样,云的消费者无需在本地计算设备上维护资源就能请求云计算环境50提供的基础架构即服务(IaaS)、平台即服务(PaaS)和/或软件即服务(SaaS)。应当理解,图4显示的各类计算设备54A-N仅仅是示意性的,云计算节点10以及云计算环境50可以与任意类型网络上和/或网络可寻址连接的任意类型的计算设备(例如使用网络浏览器)通信。
现在参考图5,其中显示了云计算环境50(图4)提供的一组功能抽象层。首先应当理解,图5所示的组件、层以及功能都仅仅是示意性的,本发明的实施例不限于此。如图5所示,提供下列层和对应功能:
硬件和软件层60包括硬件和软件组件。硬件组件的例子包括:主机61;基于RISC(精简指令集计算机)体系结构的服务器62;服务器63;刀片服务器64;存储设备65;网络和网络组件66。软件组件的例子包括:网络应用服务器软件67以及数据库软件68。
虚拟层70提供一个抽象层,该层可以提供下列虚拟实体的例子:虚拟服务器71、虚拟存储72、虚拟网络73(包括虚拟私有网络)、虚拟应用和操作系统74,以及虚拟客户端75。
在一个示例中,管理层80可以提供下述功能:资源供应功能81:提供用于在云计算环境中执行任务的计算资源和其它资源的动态获取;计量和定价功能82:在云计算环境内对资源的使用进行成本跟踪,并为此提供帐单和发票。在一个例子中,该资源可以包括应用软件许可。安全功能:为云的消费者和任务提供身份认证,为数据和其它资源提供保护。用户门户功能83:为消费者和系统管理员提供对云计算环境的访问。服务水平管理和服务水平协议(SLA)计划和实施84:提供云计算资源的分配和管理,以满足必需的服务水平。服务水平协议(SLA)计划:分别根据SLA预测对云计算资源未来需求提供预先安排和供应。根据本发明的实施例,学习引擎85提供有向图生成和决策逻辑框架。
工作负载层90提供云计算环境可能实现的功能的示例。在该层中,可提供的工作负载或功能的示例包括:地图绘制与导航91;软件生命周期管理92;虚拟教室的教学提供93;数据分析处理94;交易处理95;以及软件应用管理96。
为了满足局部和特定的要求,本领域技术人员可以对本公开应用许多逻辑和/或物理修改和变更。更具体地,尽管已经参考本发明的一个或多个实施例以一定程度的特殊性描述了本发明,但是应当理解,形式和细节上的各种省略、替换和改变以及其他实施例是可能的。特别地,本发明的不同实施例甚至可以在没有前述说明中阐述的具体细节(例如数值)的情况下实施,以提供对其更彻底的理解;相反,为了不使不必要的细节混淆本说明,可能省略或简化了公知的特征。此外,明确地意图是,结合本发明的任何实施例描述的具体元件和/或方法执行步骤可以作为一般设计选择的问题而结合在任何其它实施例中。在任何情况下,每个数值应当被解读为由术语‘约’修饰(除非已经进行),并且数值的每个范围应当旨在明确地指定沿着该范围内的连续体(包括其端点)的任何可能的数值。此外,序数或其他限定词仅用作标签以区分具有相同名称的元素,但其本身并不意味着任何优先级、优先次序或顺序。术语包括、包含、具有、含有和涉及(及其任何形式)应当具有开放的、非穷举的含义(即不限于所列举的项目),术语基于、取决于、根据其功能(及其任何形式)应当被认为是非排他性的关系(即,具有所涉及的可能的另外的变量),术语″一/一个″应当被认为是一个或多个项目(除非另外明确指出),以及术语‘用于(或任何装置加功能的表述)的装置(或任何装置加功能的表述)’应当被认为是被适配或配置用于执行相关功能的任何结构。
例如,实施例提供了一种用于管理软件应用的方法。然而,软件应用可以是任何类型(例如,云软件应用、标准软件应用)。
在一个实施例中,该方法包括将软件应用按照默认部署配置来部署到计算系统上。然而,软件应用可以以任何方式(例如,借助于其任何部署包,在运行时或离线构建)部署到任何计算系统上(参见下文)。
在一个实施例中,默认部署配置包括软件应用的多个交互软件组件。然而,软件组件可以是任何数量和任何类型(例如,服务、模块、库)。
在一个实施例中,该方法包括监视软件应用的执行环境的一个或多个操作指标。然而,操作指标可以是任何数量、任何类型(例如,性能指标、配置指标、可用性指标或其任何组合中的任何其他指标)和任何形式(例如,数量、级别、标志)。此外,操作指标可以以任何方式(例如,关于软件应用的软件组件、软件组件运行的计算机器、软件组件的连接、任何其他外部服务)与软件应用的执行环境相关。
在一个实施例中,该方法包括在软件应用的一个或多个备选部署配置中选择所选择的备选部署配置。然而,可以以任何方式(例如,利用分类算法、模糊逻辑技术)在任何数量的备选部署配置之中选择所选择的备选部署配置。
在一个实施例中,响应于根据操作指标到执行环境的临界条件的转变,选择所选择的备选部署配置。然而,可以以任何方式(例如,根据操作指标的任何组合)定义临界条件,并且可以以任何方式(例如,一旦满足对应的条件,或者仅在这持续两个或更多个监测时刻之后)检测向临界条件的转变。
在一个实施例中,每个备选部署配置具有被聚合成对应的聚合软件组件的一组或多组软件组件。然而,每个备选部署配置可以具有任意数量的聚合软件组件,每个聚合软件组件包括任意数量的软件组件(在整个备选软件组件中相同或不同)。
在一个实施例中,该方法包括将软件应用按照所选择的备选部署配置来重新部署到计算系统上。然而,软件应用可以以任何方式(例如,以完全或差分模式)被重新部署。
在一个实施例中,该方法包括响应于根据操作指标而从临界条件返回到执行环境的默认条件,将软件应用按照默认部署配置来重新部署到计算系统上。然而,默认条件可以以任何方式(根据任何数目和类型的临界条件的定义)来定义,并且可以以任何方式(相对于向临界条件的转变相同或不同)来检测向临界条件的转变;在任何情况下,不排除定义软件应用的两个或更多通用条件(都以相同方式被处理)的可能性。
在一个实施例中,软件应用被部署在多个实例中。然而,软件应用的实例可以以任何方式(例如,到任何数量和类型的数据中心或任何其他计算系统上)和以任何数量(低至单个)来部署。
在一个实施例中,软件应用的每个实例包括对应的软件组件和/或聚合软件组件的一个或多个实例。然而,每个软件组件和/或聚合软件组件的实例可以以任何方式(例如,到任何数量和类型的虚拟机或任何其他计算机器上)和以任何数量(低至单个)部署。
在一个实施例中,软件组件实现对应的服务。然而,服务可以是任何类型(例如,标准、微米或纳米服务)。
在一个实施例中,软件应用包括对每个服务的一个或多个调用。然而,服务可以被调用任意次数和以任意方式(例如,经由消息、呼叫)被调用。
在一个实施例中,每个组的软件组件包括对由该组的软件组件实现的服务的一个或多个远程调用。然而,远程调用可以是任何数量和任何类型(例如,RESTful、SOAP)。
在一个实施例中,每个组的对应的聚合软件组件用对应的本机调用替换远程调用。然而,本机调用可以是任何类型(例如,函数、过程)。
在一个实施例中,每个聚合软件组件包含对应的软件组件的代码。然而,可以以任何方式(例如,通过对应的指令,复制代码)来包含代码;在任何情况下,不排除通过将软件组件的代码保持分离(例如,在不同文件中)来将软件组件的功能组合到对应的聚合软件组件中的可能性。
在一个实施例中,软件应用是云软件应用。然而,云软件应用可以是任何类型(例如,公共、混合、私有类型)。
在一个实施例中,所述监视一个或多个操作指标包括监视执行环境的一个或多个性能指标、配置指标和/或可用性指标。然而,不同的、附加的、备选的操作指标或它们的任何组合是可能的。
在一个实施例中,该方法包括按照多个训练部署配置(包括默认部署配置和备选部署配置)来部署软件应用。然而,训练部署配置可以是任何数量和任何类型(下至默认部署配置和仅备选部署配置)。
在一个实施例中,每个训练部署配置被部署到具有操作指标的不同值的多个训练环境上。然而,训练环境可以是任何数量和任何类型(例如,通过以物理或虚拟的任何方式改变任何数量和类型的操作指标)。
在一个实施例中,该方法包括测量在每个训练环境上按照每个训练部署配置的软件应用的一个或多个性能指标。然而,性能指标可以是任何数量、任何类型(具有不同的、附加的、备选的性能指标或它们的可能的任何组合)和任何形式(例如,数量、级别、标志)。
在一个实施例中,该方法包括根据训练环境的操作指标和对应的按照训练部署配置的软件应用的性能指标,确定用于选择备选部署配置的选择策略。然而,选择策略可以以任何方式(例如,通过决策树、神经网络、多项式或线性函数、贝叶斯网络)来定义,并且它可以用任何技术(例如,修剪决策树以避免由于训练示例中的噪声或一致性规律性而导致的过度拟合)以及以任何方式(例如,周期性地(完全地或递增地))来学习;在任何情况下,不排除手动预先定义选择策略的可能性。
在实施例中,该方法包括按照包括用于备选部署配置的多个候选部署配置的训练部署配置来部署软件应用。然而,候选部署配置可以是任何数量的,并且可以以任何方式来选择(例如,上至软件应用的软件组件的所有可能聚合)。
在一个实施例中,该方法包括根据训练环境的操作指标和对应的按照训练部署配置的软件应用的性能指标,在候选部署配置中选择备选部署配置。然而,可以以任何方式(例如,利用机器学习技术)选择备选部署配置;在任何情况下,不排除手动预先定义备选部署配置的可能性。
在一个实施例中,至少部分软件组件是无状态的。然而,无状态软件组件可以是任何数量(从无到所有)。
在一个实施例中,至少部分软件组件是有状态的。然而,有状态软件组件可以是任何数量(从无到所有)。
在一个实施例中,该方法包括针对每个有状态软件组件的实例中的每个第一个实例的以下步骤。
在一个实施例中,在这种情况下,所述方法包括将由有状态软件组件的第一实例实现的任何会话的对应的会话数据保持在计算系统的被部署了该有状态软件组件的第一实例的第一计算机器上。然而,会话可以是任何数量,并且它们的会话数据可以是任何类型并且以任何方式存储(例如,存储在公共文件、专用文件、数据库中)。
在一个实施例中,在这种情况下,该方法包括将会话数据镜像到计算系统的与第一计算机器不同的一个或多个镜像计算机器上。然而,会话数据可被镜像到任何数量和类型的(虚拟/物理)计算机器(例如,控制虚拟机、一个或多个其他执行虚拟机、一个或多个专用机器或它们的任何组合)。
在一个实施例中,在这种情况下,所述方法包括将会话数据从镜像计算机器中的一个镜像计算机器复制到计算系统的第二计算机器,其中,有状态软件组件的实例中的第二实例是响应于会话从软件组件的第一实例移动到软件组件的第二实例而被部署的。然而,镜像计算机器可以以任何方式(例如,根据任何数量和类型的参数)来选择。在任何情况下,不排除直接使用镜像会话数据的可能性。
在一个实施例中,在这种情况下,该方法包括将会话数据从镜像计算机器中的一个镜像计算机器复制到计算系统的第三计算机器,其中,聚合软件组件中包括软件组件的第一实例的一个聚合软件组件的实例是响应于会话从软件组件的第一实例移动到该聚合软件组件的实例而被部署的。然而,镜像计算机器可以以任何方式来选择(相对于上述情况相同或不同)。在任何情况下,不排除直接使用镜像会话数据的可能性。
通常,如果相同的解决方案用等效的方法来实现(通过使用具有更多执行步骤或其部分的相同功能的类似执行步骤,移除一些非必需的执行步骤,或添加另外的可选执行步骤),则类似的考虑适用。此外,可以以不同的顺序、同时或以交错的方式(至少部分地)执行这些执行步骤。
实施例提供了一种计算机程序,其被配置用于当在计算系统上执行该计算机程序时使计算系统执行上述方法。实施例提供了一种计算机程序产品,该计算机程序产品包括计算机可读存储介质,该计算机可读存储介质具有随其体现的程序指令,该程序指令能够由计算系统执行以使计算系统执行相同的方法。然而,计算机程序可以被实现为独立模块、实现为用于预先存在的计算机程序(例如,云管理器)的插件或者甚至直接实现在后者中。此外,计算机程序可以在任何计算系统上运行(参见下文)。在任何情况下,根据本发明实施例的解决方案甚至有助于利用硬件结构(例如,通过集成在半导体材料的一个或多个芯片中的电子电.路)或者利用适当编程或以其他方式配置的软件和硬件的组合来实现。
一个实施例提供了一种系统,该系统包括被配置用于执行上述方法的每个执行步骤的装置。一个实施例提供了一种系统,该系统包括被配置用于执行相同方法的每个执行步骤的电路(即,例如通过软件适当配置的任何硬件)。然而,计算系统可以包括任何数量和类型的计算机器(例如,物理和/或虚拟类型的),并且它可以具有任何架构(独立的或分布式的,其中计算机器经由任何本地、广域、全球、蜂窝或卫星网络在它们之间通信并且利用任何类型的有线和/或无线连接)。
通常,如果系统具有不同的结构或包括等效的软件组件或它具有其它操作特性,则类似的考虑适用。在任何情况下,其每个软件组件可被分成更多的元件,或者两个或更多软件组件可以被一起组合成单个元件。此外,每个软件组件可以被复制以支持并行执行对应的操作。此外,除非另外指定,不同软件组件之间的任何交互通常不需要连续,并且它可以是直接的或通过一个或多个中介间接的。
在任何可能的技术细节整合层面,本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路配置数据或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言一诸如Smalltalk、C++等,以及过程式编程语言一诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络-包括局域网(LAN)或广域网(WAN)-连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而产生一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本发明的计算机程序产品包括一个或多个计算机可读硬件存储设备,其中存储有计算机可读程序代码,所述程序代码包含能够由一个或多个处理器执行以实现本发明的方法的指令。
本发明的计算系统包括一个或多个处理器、一个或多个存储器以及一个或多个计算机可读硬件存储设备,所述一个或多个硬件存储设备包含能够由所述一个或多个处理器经由所述一个或多个存储器执行以实现本发明的方法的程序代码。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (16)
1.一种用于部署软件应用的方法,所述方法包括:
将所述软件应用按照默认部署配置来部署到计算系统上,所述默认部署配置包括所述软件应用的多个交互软件组件;
监视所述软件应用的执行环境的一个或多个操作指标;
根据所监视的一个或多个操作指标确定存在所述执行环境的临界条件;
响应于所述确定,从所述软件应用的一个或多个备选部署配置中选择备选部署配置,每个备选部署配置具有被聚合成对应的聚合软件组件的一组或多组所述软件组件;以及
将所述软件应用按照所选择的备选部署配置来重新部署到所述计算系统上,
其中,所述软件组件实现对应的服务,所述软件应用包括对所述对应的服务中的每个服务的一个或多个调用;
并且其中,每个组的所述软件组件包括对由所述每个组的所述软件组件实现的所述服务的一个或多个远程调用,并且其中,所述对应的聚合软件组件用对应的本机调用替换所述远程调用。
2.根据权利要求1所述的方法,其中,所述方法包括:
响应于根据所述操作指标而从所述临界条件返回到所述执行环境的默认条件,将所述软件应用按照所述默认部署配置来重新部署到所述计算系统上。
3.根据权利要求1所述的方法,其中,所述软件应用被部署在多个实例中,每个实例包括所述对应的聚合软件组件的一个或多个实例。
4.根据权利要求1所述的方法,其中,所述聚合软件组件的每个软件组件包含所述对应的聚合软件组件的代码。
5.根据权利要求1所述的方法,其中,所述软件应用是云软件应用。
6.根据权利要求1所述的方法,其中,所述监视一个或多个操作指标包括:
监视所述执行环境的一个或多个性能指标、配置指标和/或可用性指标。
7.根据权利要求1所述的方法,其中,所述方法包括:
将所述软件应用按照多个训练部署配置来部署到具有所述操作指标的不同值的多个训练环境上,每个所述训练部署配置包括所述默认部署配置和所述备选部署配置;
测量在每个训练环境上按照每个训练部署配置的所述软件应用的一个或多个性能指标;以及
根据所述训练环境的所述操作指标和对应的按照所述训练部署配置的所述软件应用的性能指标,确定用于选择所述备选部署配置的选择策略。
8.根据权利要求7所述的方法,其中,所述方法包括:
在包括用于所述备选部署配置的多个候选部署配置的所述训练部署配置中部署所述软件应用,以及
根据所述训练环境的所述操作指标和对应的按照所述训练部署配置的所述软件应用的性能指标,在所述候选部署配置中选择所述备选部署配置。
9.根据权利要求1所述的方法,其中,所述软件组件中的一个或多个软件组件是无状态的。
10.根据权利要求3所述的方法,其中,所述软件组件中的一个或多个软件组件是有状态的,并且其中,对于每个有状态软件组件的所述实例中的每个第一实例,所述方法包括:
将由所述有状态软件组件的所述第一实例实现的任何会话的对应的会话数据保持在所述计算系统的被部署了所述有状态软件组件的所述第一实例的第一计算机器上;
将所述会话数据镜像到所述计算系统的与所述第一计算机器不同的一个或多个镜像计算机器上;
将所述会话数据从所述镜像计算机器中的一个镜像计算机器复制到所述计算系统的第二计算机器,其中,所述有状态软件组件的所述实例中的第二实例是响应于所述会话从所述软件组件的所述第一实例移动到所述软件组件的所述第二实例而被部署的;以及
将所述会话数据从所述镜像计算机器中的一个镜像计算机器复制到所述计算系统的第三计算机器,其中,所述聚合软件组件中包括所述软件组件的所述第一实例的一个聚合软件组件的实例是响应于所述会话从所述软件组件的所述第一实例移动到所述一个聚合软件组件的所述实例而被部署的。
11.一种计算机可读存储介质,所述计算机可读存储介质具有存储在其中的计算机可读程序代码,所述程序代码包含能够由计算机系统的一个或多个处理器执行以实现用于部署软件应用的方法的指令,所述方法包括:
将所述软件应用按照默认部署配置来部署到计算系统上,所述默认部署配置包括所述软件应用的多个交互软件组件;
监视所述软件应用的执行环境的一个或多个操作指标;
根据所监视的一个或多个操作指标确定存在所述执行环境的临界条件;
响应于所述确定,从所述软件应用的一个或多个备选部署配置中选择备选部署配置,每个备选部署配置具有被聚合成对应的聚合软件组件中的一组或多组所述软件组件;以及
将所述软件应用按照所选择的备选部署配置来重新部署到所述计算系统上,
其中,所述软件组件实现对应的服务,所述软件应用包括对所述对应的服务中的每个服务的一个或多个调用;
并且其中,每个组的所述软件组件包括对由所述每个组的所述软件组件实现的所述服务的一个或多个远程调用,并且其中,所述对应的聚合软件组件用对应的本机调用替换所述远程调用。
12.根据权利要求11所述的计算机可读存储介质,其中,所述方法包括:
响应于根据所述操作指标而从所述临界条件返回到所述执行环境的默认条件,将所述软件应用按照所述默认部署配置来重新部署到所述计算系统上。
13.根据权利要求11所述的计算机可读存储介质,其中,所述软件应用被部署在多个实例中,每个实例包括所述对应的聚合软件组件的一个或多个实例。
14.一种计算机系统,包括一个或多个处理器、一个或多个存储器以及一个或多个计算机可读硬件存储设备,所述一个或多个硬件存储设备包含程序代码,所述程序代码能够由所述一个或多个处理器经由所述一个或多个存储器执行以实现用于部署软件应用的方法,所述方法包括:
将所述软件应用按照默认部署配置来部署到计算系统上,所述默认部署配置包括所述软件应用的多个交互软件组件;
监视所述软件应用的执行环境的一个或多个操作指标;
根据所监视的一个或多个操作指标来确定存在所述执行环境的临界条件;
响应于所述确定,从所述软件应用的一个或多个备选部署配置中选择备选部署配置,每个备选部署配置具有被聚合成对应的聚合软件组件中的一组或多组所述软件组件;以及
将所述软件应用按照所选择的备选部署配置来重新部署到所述计算系统上,
其中,所述软件组件实现对应的服务,所述软件应用包括对所述对应的服务中的每个服务的一个或多个调用;
并且其中,每个组的所述软件组件包括对由所述每个组的所述软件组件实现的所述服务的一个或多个远程调用,并且其中,所述对应的聚合软件组件用对应的本机调用替换所述远程调用。
15.根据权利要求14所述的计算机系统,其中,所述方法包括:
响应于根据所述操作指标而从所述临界条件返回到所述执行环境的默认条件,将所述软件应用按照所述默认部署配置来重新部署到所述计算系统上。
16.根据权利要求14所述的计算机系统,其中,所述软件应用被部署在多个实例中,每个实例包括所述对应的聚合软件组件的一个或多个实例。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/808,114 | 2017-11-09 | ||
US15/808,114 US10360012B2 (en) | 2017-11-09 | 2017-11-09 | Dynamic selection of deployment configurations of software applications |
PCT/IB2018/058230 WO2019092530A1 (en) | 2017-11-09 | 2018-10-23 | Dynamic selection of deployment configurations of software applications |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111344668A CN111344668A (zh) | 2020-06-26 |
CN111344668B true CN111344668B (zh) | 2023-08-29 |
Family
ID=66327235
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880072816.1A Active CN111344668B (zh) | 2017-11-09 | 2018-10-23 | 软件应用的部署配置的动态选择 |
Country Status (6)
Country | Link |
---|---|
US (2) | US10360012B2 (zh) |
JP (1) | JP7257728B2 (zh) |
CN (1) | CN111344668B (zh) |
DE (1) | DE112018004349T5 (zh) |
GB (1) | GB2581107A (zh) |
WO (1) | WO2019092530A1 (zh) |
Families Citing this family (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11507663B2 (en) | 2014-08-11 | 2022-11-22 | Sentinel Labs Israel Ltd. | Method of remediating operations performed by a program and system thereof |
US9710648B2 (en) | 2014-08-11 | 2017-07-18 | Sentinel Labs Israel Ltd. | Method of malware detection and system thereof |
US10523662B2 (en) * | 2016-09-16 | 2019-12-31 | Sap Se | In-memory database advanced programming model |
US11695800B2 (en) | 2016-12-19 | 2023-07-04 | SentinelOne, Inc. | Deceiving attackers accessing network data |
US11616812B2 (en) | 2016-12-19 | 2023-03-28 | Attivo Networks Inc. | Deceiving attackers accessing active directory data |
JP2020530922A (ja) | 2017-08-08 | 2020-10-29 | センチネル ラボ, インコーポレイテッドSentinel Labs, Inc. | エッジネットワーキングのエンドポイントを動的にモデリングおよびグループ化する方法、システム、およびデバイス |
US10817402B2 (en) * | 2018-01-03 | 2020-10-27 | Nec Corporation | Method and system for automated building of specialized operating systems and virtual machine images based on reinforcement learning |
US11470115B2 (en) | 2018-02-09 | 2022-10-11 | Attivo Networks, Inc. | Implementing decoys in a network environment |
US10833933B2 (en) * | 2018-09-28 | 2020-11-10 | Intel Corporation | Systems and methods for optimizing a cloud deployed service based on performance metrics of the cloud service |
US10805213B2 (en) * | 2018-11-19 | 2020-10-13 | International Business Machines Corporation | Controlling data communication between microservices |
JP7387734B2 (ja) * | 2018-11-29 | 2023-11-28 | バンティック インコーポレイテッド | イベント駆動型アプリケーションのルールに基づく割り当て |
US20200218579A1 (en) * | 2019-01-08 | 2020-07-09 | Hewlett Packard Enterprise Development Lp | Selecting a cloud service provider |
US11018956B2 (en) * | 2019-01-18 | 2021-05-25 | Fidelity Information Services, Llc | Systems and methods for rapid booting and deploying of an enterprise system in a cloud environment |
US10871956B2 (en) | 2019-02-12 | 2020-12-22 | Open Text Corporation | Methods and systems for packaging and deployment of applications in a multitenant platform |
US11340894B2 (en) | 2019-04-30 | 2022-05-24 | JFrog, Ltd. | Data file partition and replication |
US11886390B2 (en) | 2019-04-30 | 2024-01-30 | JFrog Ltd. | Data file partition and replication |
US11386233B2 (en) * | 2019-04-30 | 2022-07-12 | JFrog, Ltd. | Data bundle generation and deployment |
US11106554B2 (en) | 2019-04-30 | 2021-08-31 | JFrog, Ltd. | Active-active environment control |
EP3973427A4 (en) | 2019-05-20 | 2023-06-21 | Sentinel Labs Israel Ltd. | SYSTEMS AND METHODS FOR EXECUTABLE CODE DETECTION, AUTOMATIC FEATURE EXTRACTION, AND POSITION-INDEPENDENT CODE DETECTION |
US10972289B2 (en) | 2019-07-19 | 2021-04-06 | JFrog, Ltd. | Software release verification |
US10999314B2 (en) | 2019-07-19 | 2021-05-04 | JFrog Ltd. | Software release tracking and logging |
US11748206B2 (en) * | 2019-08-28 | 2023-09-05 | International Business Machines Corporation | Data recovery modification based on performance data exhibited by a network of data centers and data recovery requirement |
US20210117172A1 (en) * | 2019-10-21 | 2021-04-22 | Pccw Vuclip (Singapore) Pte. Ltd. | Data-driven consumer journey optimzation system for adaptive consumer applications |
US11061782B2 (en) | 2019-11-15 | 2021-07-13 | Dell Products L.P. | System and method for prioritized processing of alerts from information handling systems |
US10986230B1 (en) | 2019-11-15 | 2021-04-20 | Dell Products L.P. | Method and apparatus to capture, analyze, organize, and present support chat information |
US11334421B2 (en) | 2019-11-15 | 2022-05-17 | Dell Products L.P. | Method and apparatus to identify a problem area in an information handling system based on latencies |
US20210203545A1 (en) * | 2019-12-30 | 2021-07-01 | Genesys Telecommunications Laboratories, Inc. | Automated configuration and deployment of contact center software suite |
US11695829B2 (en) | 2020-01-09 | 2023-07-04 | JFrog Ltd. | Peer-to-peer (P2P) downloading |
US11188450B2 (en) * | 2020-04-02 | 2021-11-30 | Sap Se | Cloud application architecture using edge computing |
US11294654B2 (en) * | 2020-05-20 | 2022-04-05 | Microsoft Technology Licensing, Llc | Automated rules for controlled distribution of program instructions |
US11500686B2 (en) | 2020-07-31 | 2022-11-15 | International Business Machines Corporation | Resource management of a software application with multiple software components |
CN111984403A (zh) * | 2020-08-05 | 2020-11-24 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 一种分布式系统下软件构件的分配部署方法及系统 |
CN112132260B (zh) * | 2020-09-03 | 2021-04-20 | 深圳索信达数据技术有限公司 | 神经网络模型的训练方法、调用方法、设备及存储介质 |
US11860680B2 (en) * | 2020-11-24 | 2024-01-02 | JFrog Ltd. | Software pipeline and release validation |
US11579857B2 (en) * | 2020-12-16 | 2023-02-14 | Sentinel Labs Israel Ltd. | Systems, methods and devices for device fingerprinting and automatic deployment of software in a computing network using a peer-to-peer approach |
CN112860270A (zh) * | 2021-01-29 | 2021-05-28 | 深圳市奔凯安全技术股份有限公司 | 应用的异构部署方法、装置、存储介质及电子设备 |
CN113032049B (zh) * | 2021-04-13 | 2024-06-11 | 北京华胜天成科技股份有限公司 | 基于任务启动策略的应用系统部署方法及装置和电子设备 |
US11899782B1 (en) | 2021-07-13 | 2024-02-13 | SentinelOne, Inc. | Preserving DLL hooks |
CN113568740B (zh) * | 2021-07-16 | 2024-09-03 | 开放智能机器(上海)有限公司 | 基于联邦学习的模型聚合方法、系统、设备及介质 |
US11677810B2 (en) | 2021-07-23 | 2023-06-13 | International Business Machines Corporation | Configuration tool for deploying an application on a server |
TWI781767B (zh) * | 2021-09-17 | 2022-10-21 | 先智雲端數據股份有限公司 | 用於分析由於軟體系統組件內容變化而造成性能影響之基於預測的方法 |
US12061889B2 (en) | 2021-10-29 | 2024-08-13 | JFrog Ltd. | Software release distribution across a hierarchical network |
JP2023135567A (ja) | 2022-03-15 | 2023-09-28 | 株式会社日立製作所 | 冗長性決定システム、冗長性決定方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103368767A (zh) * | 2012-04-02 | 2013-10-23 | 国际商业机器公司 | 用于具有故障的云中的高效应用管理的方法和系统 |
Family Cites Families (71)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7150000B1 (en) * | 1999-08-17 | 2006-12-12 | Nash Controlware, Inc. | Component development with autonomous and compiled components to implement and consume services with components operate in edit and run mode |
US8180871B2 (en) | 2001-05-23 | 2012-05-15 | International Business Machines Corporation | Dynamic redeployment of services in a computing network |
US6985939B2 (en) * | 2001-09-19 | 2006-01-10 | International Business Machines Corporation | Building distributed software services as aggregations of other services |
US7103874B2 (en) * | 2003-10-23 | 2006-09-05 | Microsoft Corporation | Model-based management of computer systems and distributed applications |
US8429630B2 (en) * | 2005-09-15 | 2013-04-23 | Ca, Inc. | Globally distributed utility computing cloud |
US7735090B2 (en) * | 2005-12-15 | 2010-06-08 | International Business Machines Corporation | On demand software contract modification and termination in running component assemblies |
JP2007293603A (ja) | 2006-04-25 | 2007-11-08 | Mitsubishi Electric Corp | 情報処理装置及び情報処理方法及びプログラム |
US7496893B2 (en) * | 2006-06-15 | 2009-02-24 | International Business Machines Corporation | Method for no-demand composition and teardown of service infrastructure |
US20070294364A1 (en) | 2006-06-15 | 2007-12-20 | International Business Machines Corporation | Management of composite software services |
DE102006051189A1 (de) | 2006-10-30 | 2008-05-08 | Siemens Ag | Verfahren und System zum Ausführen und Konfigurieren von Applikationen abhängig von einer Einsatzumgebung |
WO2008097801A2 (en) * | 2007-02-05 | 2008-08-14 | Skyway Software, Inc. | Method and system for creating, deploying, and utilizing a service |
US20080235001A1 (en) * | 2007-03-22 | 2008-09-25 | Searete Llc, A Limited Liability Corporation Of The State Of Delaware | Implementing emulation decisions in response to software evaluations or the like |
US9588821B2 (en) * | 2007-06-22 | 2017-03-07 | Red Hat, Inc. | Automatic determination of required resource allocation of virtual machines |
US7925491B2 (en) * | 2007-06-29 | 2011-04-12 | International Business Machines Corporation | Simulation of installation and configuration of distributed software |
US8225308B2 (en) * | 2007-10-26 | 2012-07-17 | Microsoft Corporation | Managing software lifecycle |
DE102007052180A1 (de) * | 2007-10-31 | 2009-05-07 | Fujitsu Siemens Computers Gmbh | Verfahren, Rechnersystem und Computerprogrammprodukt |
JP2009169473A (ja) | 2008-01-10 | 2009-07-30 | Nec Corp | モジュール配置装置並びにモジュール配置方法並びにプログラム |
US8627328B2 (en) * | 2008-11-14 | 2014-01-07 | Oracle International Corporation | Operation control for deploying and managing software service in a virtual environment |
US20120203536A1 (en) * | 2009-10-21 | 2012-08-09 | International Business Machines Corporation | Method and system for software behaviour management |
US20110126192A1 (en) * | 2009-10-26 | 2011-05-26 | Simon Frost | Systems and methods for providing and updating a unified client |
US8930935B2 (en) * | 2009-12-28 | 2015-01-06 | Verizon Patent And Licensing Inc. | Composite service refactoring |
US8826268B2 (en) | 2010-03-08 | 2014-09-02 | Microsoft Corporation | Virtual software application deployment configurations |
US20110321024A1 (en) * | 2010-06-28 | 2011-12-29 | Nokia Corporation | Method and apparatus for updating an executing application |
JP5600277B2 (ja) | 2010-09-27 | 2014-10-01 | 株式会社日立システムズ | クラウドサービス再配置システムと方法およびプログラム |
US9003416B2 (en) * | 2010-09-29 | 2015-04-07 | International Business Machines Corporation | Predicting resource requirements for a computer application |
EP2525528A1 (en) * | 2011-05-17 | 2012-11-21 | Alcatel Lucent | Method for providing a service in a communication network |
US8898096B2 (en) * | 2011-05-31 | 2014-11-25 | Oracle International Corporation | Application configuration generation |
US9336060B2 (en) * | 2011-06-17 | 2016-05-10 | Microsoft Technology Licensing, Llc | Middleware services framework for on-premises and cloud deployment |
US8914794B2 (en) | 2011-06-30 | 2014-12-16 | Rockwell Automation Technologies, Inc. | Multiple deployment of applications with multiple configurations in an industrial automation environment |
US9251033B2 (en) * | 2011-07-07 | 2016-02-02 | Vce Company, Llc | Automatic monitoring and just-in-time resource provisioning system |
CA2763547C (en) * | 2011-12-20 | 2018-09-04 | Ibm Canada Limited - Ibm Canada Limitee | Fix delivery system |
US9047133B2 (en) * | 2012-03-02 | 2015-06-02 | Vmware, Inc. | Single, logical, multi-tier application blueprint used for deployment and management of multiple physical applications in a cloud environment |
US20130254121A1 (en) * | 2012-03-22 | 2013-09-26 | International Business Machines Corporation | Software Portfolio Management Based on Feature Usage |
WO2013184137A1 (en) * | 2012-06-08 | 2013-12-12 | Hewlett-Packard Development Company, L.P. | Test and management for cloud applications |
US9286051B2 (en) * | 2012-10-05 | 2016-03-15 | International Business Machines Corporation | Dynamic protection of one or more deployed copies of a master operating system image |
CN102904955B (zh) * | 2012-10-16 | 2015-11-18 | 南京大学镇江高新技术研究院 | 云计算平台中Web应用的自适应伸缩控制系统及其方法 |
US8997088B2 (en) * | 2012-11-02 | 2015-03-31 | Wipro Limited | Methods and systems for automated deployment of software applications on heterogeneous cloud environments |
US10127084B2 (en) * | 2012-11-15 | 2018-11-13 | Red Hat Israel, Ltd. | Pre-provisioning resources for composite applications |
US9256344B1 (en) * | 2013-03-15 | 2016-02-09 | Ca, Inc. | Software management software |
WO2014165631A1 (en) * | 2013-04-04 | 2014-10-09 | Pulse.io, Inc. | Mobile application performance prediction |
EP2816469A1 (en) * | 2013-06-19 | 2014-12-24 | British Telecommunications public limited company | Application broker for multiple virtualised computing environments |
US9483393B1 (en) * | 2013-12-05 | 2016-11-01 | Amazon Technologies, Inc. | Discovering optimized experience configurations for a software application |
US20150222485A1 (en) * | 2014-02-06 | 2015-08-06 | Sas Institute Inc. | Dynamic server configuration and initialization |
WO2015152882A1 (en) * | 2014-03-31 | 2015-10-08 | Hewlett-Packard Development Company, L.P. | Candidate services for an application |
US9858060B2 (en) * | 2014-05-09 | 2018-01-02 | International Business Machines Corporation | Automated deployment of a private modular cloud-computing environment |
JP6459228B2 (ja) * | 2014-06-02 | 2019-01-30 | セイコーエプソン株式会社 | 発光装置、電子機器および検査方法 |
US9424065B2 (en) * | 2014-06-26 | 2016-08-23 | Vmware, Inc. | Methods and apparatus to scale application deployments in cloud computing environments using virtual machine pools |
US9645805B2 (en) * | 2014-06-26 | 2017-05-09 | Vmware, Inc. | Application blueprints based on service templates to deploy applications in different cloud environments |
US9588749B2 (en) | 2014-10-14 | 2017-03-07 | Microsoft Technology Licensing, Llc | Configuration transform for application deployment |
US10129078B2 (en) * | 2014-10-30 | 2018-11-13 | Equinix, Inc. | Orchestration engine for real-time configuration and management of interconnections within a cloud-based services exchange |
US10193958B2 (en) * | 2014-12-31 | 2019-01-29 | Juniper Networks, Inc. | Policy based framework for application management in distributed systems |
US10178070B2 (en) * | 2015-03-13 | 2019-01-08 | Varmour Networks, Inc. | Methods and systems for providing security to distributed microservices |
US9467476B1 (en) * | 2015-03-13 | 2016-10-11 | Varmour Networks, Inc. | Context aware microsegmentation |
US10133619B1 (en) * | 2015-06-08 | 2018-11-20 | Nutanix, Inc. | Cluster-wide virtual machine health monitoring |
US9411706B1 (en) * | 2015-09-30 | 2016-08-09 | Semmle Limited | Suggesting candidate removable software dependencies |
US9892019B2 (en) * | 2015-10-16 | 2018-02-13 | Successfactors Inc. | Use case driven stepping component automation framework |
US9811327B2 (en) * | 2015-12-21 | 2017-11-07 | Quixey, Inc. | Dependency-aware transformation of multi-function applications for on-demand execution |
US10296413B2 (en) * | 2016-05-02 | 2019-05-21 | Microsoft Technology Licensing, Llc | Recovery environment for a virtual machine |
US10380365B2 (en) * | 2016-06-01 | 2019-08-13 | Chef Software, Inc. | Choreographed distributed execution of programs |
US10289438B2 (en) * | 2016-06-16 | 2019-05-14 | Cisco Technology, Inc. | Techniques for coordination of application components deployed on distributed virtual machines |
US10255061B2 (en) * | 2016-08-05 | 2019-04-09 | Oracle International Corporation | Zero down time upgrade for a multi-tenant identity and data security management cloud service |
US9875086B1 (en) * | 2016-09-29 | 2018-01-23 | International Business Machines Corporation | Optimizing performance of applications driven by microservices architecture |
US10248400B1 (en) * | 2016-11-15 | 2019-04-02 | VCE IP Holding Company LLC | Computer implemented system and method, and a computer program product, for automatically determining a configuration of a computing system upon which a software application will be deployed |
TWI598744B (zh) * | 2017-03-16 | 2017-09-11 | 廣達電腦股份有限公司 | 雲端資源之管理系統及其管理方法 |
US10511651B2 (en) * | 2017-04-25 | 2019-12-17 | General Electric Company | Infinite micro-services architecture |
US10117116B1 (en) * | 2017-04-27 | 2018-10-30 | At&T Intellectual Property I, L.P. | System and method supporting delivery of network accessible services to connected devices of a local environment |
US10841256B2 (en) * | 2017-05-05 | 2020-11-17 | ShieldX Networks, Inc. | Upgrading components of a messaging system used by a microservice-based application |
US10255052B2 (en) * | 2017-05-30 | 2019-04-09 | International Business Machines Corporation | Dynamic deployment of an application based on micro-services |
US10191731B2 (en) * | 2017-06-27 | 2019-01-29 | Microsoft Technology Licensing, Llc | Safe and agile rollouts in a network-accessible server infrastructure using slices |
US10719368B2 (en) * | 2017-08-23 | 2020-07-21 | Bank Of America Corporation | Dynamic cloud stack tuning system |
US10496396B2 (en) * | 2017-09-29 | 2019-12-03 | Oracle International Corporation | Scalable artificial intelligence driven configuration management |
-
2017
- 2017-11-09 US US15/808,114 patent/US10360012B2/en active Active
-
2018
- 2018-10-23 GB GB2007686.5A patent/GB2581107A/en not_active Withdrawn
- 2018-10-23 DE DE112018004349.5T patent/DE112018004349T5/de active Pending
- 2018-10-23 WO PCT/IB2018/058230 patent/WO2019092530A1/en active Application Filing
- 2018-10-23 JP JP2020520035A patent/JP7257728B2/ja active Active
- 2018-10-23 CN CN201880072816.1A patent/CN111344668B/zh active Active
-
2019
- 2019-05-02 US US16/401,582 patent/US10782953B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103368767A (zh) * | 2012-04-02 | 2013-10-23 | 国际商业机器公司 | 用于具有故障的云中的高效应用管理的方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111344668A (zh) | 2020-06-26 |
WO2019092530A1 (en) | 2019-05-16 |
US10360012B2 (en) | 2019-07-23 |
GB2581107A (en) | 2020-08-05 |
GB202007686D0 (en) | 2020-07-08 |
US10782953B2 (en) | 2020-09-22 |
US20190258465A1 (en) | 2019-08-22 |
US20190138287A1 (en) | 2019-05-09 |
JP7257728B2 (ja) | 2023-04-14 |
DE112018004349T5 (de) | 2020-05-14 |
JP2021502622A (ja) | 2021-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111344668B (zh) | 软件应用的部署配置的动态选择 | |
US11704123B2 (en) | Automated orchestration of containers by assessing microservices | |
US9723068B2 (en) | Inter-platform management of computing resources | |
WO2022116814A1 (en) | Migrating complex legacy applications | |
US10891547B2 (en) | Virtual resource t-shirt size generation and recommendation based on crowd sourcing | |
US20170116026A1 (en) | Dynamic aggressiveness for optimizing placement of virtual machines in a computing environment | |
US11303712B1 (en) | Service management in distributed system | |
US20220335302A1 (en) | Cognitive recommendation of computing environment attributes | |
WO2023093354A1 (en) | Avoidance of workload duplication among split-clusters | |
CN117616395A (zh) | 迁移期间应用的连续活跃度和完整性 | |
CN112384889A (zh) | 工作负载供应中的数据隐私意识 | |
US20170126485A1 (en) | Providing recommended resolutions for events | |
US20230306118A1 (en) | Federated Generative Models for Website Assessment | |
US10242111B2 (en) | Node controllers for hierarchical data structures | |
CN112148935B (zh) | 用于多实例的nbmp功能执行的方法和装置 | |
US10417055B2 (en) | Runtime movement of microprocess components | |
CN113206819B (zh) | 基于多级别会话描述符的信令发送方法及装置 | |
US11822555B2 (en) | Signaling and resolution model for multi-level session-based description descriptors | |
US12020080B2 (en) | Automated resource request mechanism for heterogeneous infrastructure using profiling information | |
US20220138614A1 (en) | Explaining machine learning based time series models | |
US20230056965A1 (en) | Dynamic multi-stream deployment planner | |
US20230334720A1 (en) | What-if scenario based and generative adversarial network generated design adaptation | |
US20230025791A1 (en) | Composable deployer architecture | |
US20210342290A1 (en) | Technique selection for file system utilization prediction | |
CN115469995A (zh) | 容器服务分配 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |