CN107431696B - 用于应用自动化部署的方法和云管理节点 - Google Patents

用于应用自动化部署的方法和云管理节点 Download PDF

Info

Publication number
CN107431696B
CN107431696B CN201680001211.4A CN201680001211A CN107431696B CN 107431696 B CN107431696 B CN 107431696B CN 201680001211 A CN201680001211 A CN 201680001211A CN 107431696 B CN107431696 B CN 107431696B
Authority
CN
China
Prior art keywords
application
instance
creation mode
determining
computer device
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
Application number
CN201680001211.4A
Other languages
English (en)
Other versions
CN107431696A (zh
Inventor
马迪
刘卓钺
王伟
夏伊·霍罗威茨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN107431696A publication Critical patent/CN107431696A/zh
Application granted granted Critical
Publication of CN107431696B publication Critical patent/CN107431696B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45541Bare-metal, i.e. hypervisor runs directly on hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本发明实施例涉及用于应用自动化部署的方法和云管理节点。该方法包括:接收用户输入的应用编排模板;从该应用编排模板解析出应用的应用模型特征;根据该应用模型特征和预设规则,确定该应用对应的第一实例创建方式;从该多个计算机设备中,确定与该第一实例创建方式对应的第一计算机设备;向该第一计算机设备发送第一实例创建命令,该第一实例创建命令用于指示该第一计算机设备根据该第一实例创建方式为该应用创建第一实例。本发明实施例的用于应用自动化部署的方法和云管理节点,能够减少用户工作,在一定程度上避免由于用户选择错误所导致的应用效率差及数据中心资源浪费问题。

Description

用于应用自动化部署的方法和云管理节点
技术领域
本发明涉及技术领域,尤其涉及用于应用自动化部署的方法和云管理节点。
背景技术
虚拟化技术在不断的发展下日趋成熟,当前主要有两种方法来实现虚拟化技术:一种是以虚拟机管理程序(hypervisor)为基础的,包括内核级虚拟化技术(Kernel-basedVirtual Machines,简称“KVM”)、Xen、VMware虚拟化等;另一种是以主机操作系统(HostOS)隔离特性为基础的,包括libcontainer、rocket、Linux容器(Linux Container,简称“LXC”)、OpenVZ、FreeBSD jails、Solaris Containers等。另外还有例如jeOS的hypervisor技术改进形成的新技术等,这些虚拟化技术越来越多的在云计算中进行应用。
不同类型的应用对系统资源的需求有很大的差异性,例如,该系统资源可以为中央处理器(Central Processing Unit,简称“CPU”)、内存(Memory)、输入/输出端口(input/output,简称“I/O”)或网络(Network);并且有些应用需要通过直接使用非虚拟化(如:裸机Bare-metal)来保证运行效率。其中一些应用是比较容易了解其系统资源需求并选择虚拟化技术的,比如结构化查询语言(Structured Query Language,简称“SQL”)数据库、NoSQL数据库、缓存(Cache)、报文发送(Messaging)等,但是有一些类型的程序从用户或者管理员的角度很难去选择最佳的虚拟化技术。
当前涉及到应用自动化部署的领域主要是云计算领域的应用自动化部署服务。具体地,通过应用编排引擎所支持的应用编排模板,如:打包及配置模板,包含主流的一些标准和类型:TOSCA、OpenStack Heat、AWS CloudFormation、DockerFile、Puppet、Chef等,进行应用的自动化部署。在这些模板中,都已经填写好了应用所依赖的平台(系统镜像)以及所对应的虚拟化技术。模板的填写由用户手动完成,或者通过云控制台的Web引导页面进行手动选择。在现有的应用自动化部署流程中,由于云数据中心所使用的虚拟化技术类型还较少,因此虚拟化技术选择都是由用户完成的,给予用户完全的控制权。但是当各种虚拟化技术成熟后,云数据中心将成为一个混合多种虚拟化技术的平台,那时用户对于多种虚拟化技术的选择会成为一个问题,错误的选择既降低了程序运行效率,又浪费了数据中心资源。
另外,当前应用部署程序在应用的生命周期管理功能上,主要能够进行集群规模自动伸缩(Auto-Scaling)、错误恢复等,但不能够进行虚拟化技术实时分析和切换,这样当一个应用部署之后,其运行环境就被确定了,不具有灵活性,不能进行虚拟化技术类型的调整。
发明内容
本申请提供了一种用于应用自动化部署的方法和云管理节点,能够自动化选择虚拟化技术。
第一方面,提供了一种用于应用自动化部署的方法,该方法由云管理节点执行,该云管理节点部署在多个计算机设备中的至少一个计算机设备上,该方法包括:接收用户输入的应用编排模板;从该应用编排模板解析出应用的应用模型特征;根据该应用模型特征和预设规则,确定该应用对应的第一实例创建方式;从该多个计算机设备中,确定与该第一实例创建方式对应的第一计算机设备;向该第一计算机设备发送第一实例创建命令,该第一实例创建命令用于指示该第一计算机设备根据该第一实例创建方式为该应用创建第一实例。
因此,本申请提供的用于应用自动化部署的方法,可以在部署应用时,自动化选择虚拟化技术,可以在云数据中心对虚拟化技术的支持越来越多的情况下,避免传统的应用部署需要用户决定应用所使用的实例创建方式,能够减少用户工作,在一定程度上避免由于用户选择错误所导致的应用效率差及数据中心资源浪费问题。
结合第一方面,在第一方面的一种实现方式中,该多个计算机设备中的每个计算机设备可以包括实例管理模块,该第一计算机设备包括第一实例管理模块,该云管理节点向该第一计算机设备发送第一实例创建命令,包括:该云管理节点向该第一实例管理模块发送第一实例创建命令,该第一实例创建命令包括该第一实例创建方式;该方法还包括:该第一实例管理模块使用该第一实例创建方式,为该应用创建第一实例;该第一实例管理模块向该云管理节点反馈该应用的实例创建结果;该云管理节点根据该实例创建结果,运行该应用。
结合第一方面及其上述实现方式,在第一方面的另一种实现方式中,该服务器中的该每个计算机设备还包括云主机管理代理模块,该第一计算机设备包括第一云主机管理代理模块,该云主机管理控制模块向该第一计算机设备中的第一实例管理模块发送第一实例部署命令,包括:该云主机管理控制模块通过该第一云主机管理代理模块,向该第一实例管理模块发送第一实例创建命令;该第一实例管理模块通过该云主机管理控制模块向该云管理节点反馈该应用的部署结果,包括:该第一实例管理模块通过该第一云主机管理代理模块向该云管理节点反馈该应用的部署结果。
结合第一方面及其上述实现方式,在第一方面的另一种实现方式中,该第一实例创建方式为裸机创建方式或虚拟化技术创建方式。
结合第一方面及其上述实现方式,在第一方面的另一种实现方式中,该预设规则包括:若该应用为不可伸缩应用,则该第一实例创建方式为裸机创建方式,该从该应用编排模板解析出应用的应用模型特征,具体包括:云管理节点根据该应用编排模板中的自动可伸缩集群信息,确定该应用模型特征包括:该应用为不可伸缩应用程序;该根据该应用模型特征和预设规则,确定该应用对应的第一实例创建方式,具体包括:当该应用为不可伸缩应用时,根据该预设规则,确定该第一实例创建方式为裸机创建方式。
可选地,当云管理节点根据应用排模板中的自动可伸缩集群信息,确定该应用模型特征包括:该应用为可伸缩应用程序时,则可以根据预设规则确定该应用不适用裸机创建方式为该应用部署实例。
应理解,当该应用为不可伸缩应用时,可以包括该应用既不可以水平伸缩,也不可以垂直伸缩,相反地,该应用为可伸缩应用时,可以指该应用可以进行水平伸缩,或者可以进行垂直伸缩。水平伸缩可以指通过添加或减少实例的个数的方式进行实例的集群规模的调整;垂直伸缩可以指通过添加或减少集群中单个实例所拥有的资源的方式对实例集群规模进行调整。
结合第一方面及其上述实现方式,在第一方面的另一种实现方式中,该预设规则包括:若该应用不存在运行状态,或者该应用的运行状态为稳定状态,则该第一实例创建方式为容器(Container)创建方式,该从该应用编排模板解析出应用的应用模型特征,具体包括:根据该应用编排模板中该应用的处理内容信息,确定该应用模型特征包括:该应用不存在运行状态,或者该应用的运行状态为稳定状态;该根据该应用模型特征和预设规则,确定该应用对应的第一实例创建方式,具体包括:当该应用不存在该运行状态时,或该应用的该运行状态为稳定状态时,根据该预设规则,确定该第一实例创建方式为Container创建方式。
应理解,该Container创建方式属于该虚拟化技术创建方式。该Container创建方式可以值采用虚拟化技术创建Container的方式,例如,采用docker创建Container的方式。该Container可以具体为Linux容器。
结合第一方面及其上述实现方式,在第一方面的另一种实现方式中,该预设规则包括:若该应用的失效转移failover的时间限制小于或等于预设值,则该第一实例创建方式为容器创建方式,该从该应用编排模板解析出应用的应用模型特征,具体包括:根据该应用编排模板中该应用的服务等级协议SLA,确定该应用模型特征包括:该应用的failover的时间限制小于或等于预设值;该根据该应用模型特征和预设规则,确定该应用对应的第一实例创建方式,具体包括:当该应用的该failover的时间限制小于或等于该预设值时,根据该预设规则,确定该第一实例创建方式为Container创建方式,该Container创建方式属于该虚拟化技术创建方式。
结合第一方面及其上述实现方式,在第一方面的另一种实现方式中,该预设规则包括:若该应用支持OSv操作系统,则该第一实例创建方式为OSv创建方式,该从该应用编排模板解析出应用的应用模型特征,具体包括:根据该应用编排模板中该应用支持的操作系统,确定该应用模型特征包括:该应用支持OSv操作系统;该根据该应用模型特征和预设规则,确定该应用对应的第一实例创建方式,具体包括:当该应用支持OSv操作系统时,根据该预设规则,确定该第一实例创建方式为OSv创建方式,该OSv创建方式属于该虚拟化技术创建方式。
结合第一方面及其上述实现方式,在第一方面的另一种实现方式中,该第一实例创建方式为虚拟机VM创建方式。
结合第一方面及其上述实现方式,在第一方面的另一种实现方式中,该方法还包括:获取该应用在该第一实例运行的实时监控信息,该实时监控信息反映该应用在该第一实例的执行情况;根据该实时监控信息,确定是否将该应用从该第一实例迁移到第二实例,该第二实例通过第二实例创建方式创建,该第二实例创建方式与该第一实例创建方式不同。
这样,本申请提供的用于应用自动化部署的方法,不仅可以在部署应用时,自动化选择虚拟化技术,并且还可以在应用运行时,确定是否将该应用从当前实例迁移到其它实例,这样,可以在云数据中心对虚拟化技术的支持越来越多的情况下,更加灵活地选择和调整虚拟化技术类型,提高资源利用率,避免资源的浪费。
结合第一方面及其上述实现方式,在第一方面的另一种实现方式中,该多个计算机设备包括第二计算机设备,该第二计算机设备与该第二实例创建方式对应,该方法包括:在确定将该应用从该第一实例迁移到该第二实例时,向该第二计算机设备发送第二实例创建命令,该第二实例创建命令用于指示该第二计算机设备根据该第二实例创建方式为该应用创建该第二实例;将该应用切换到该第二实例运行。
结合第一方面及其上述实现方式,在第一方面的另一种实现方式中,该将该应用切换到该第二实例运行,具体包括:指示该第二计算机设备基于该应用在该第一实例运行所使用的数据源在该第二实例运行该应用。
结合第一方面及其上述实现方式,在第一方面的另一种实现方式中,若该应用存在运行状态,该将该应用切换到该第二实例运行,具体包括:指示该第二计算机设备获取该应用在该第一实例运行的运行状态,并基于获取的该运行状态在该第二实例运行该应用。
结合第一方面及其上述实现方式,在第一方面的另一种实现方式中,该应用为数据库,该根据该实时监控信息,确定是否将该应用从该第一实例迁移到第二实例,包括:根据该实时监控信息确定该数据库处于空闲状态;确定将该应用从该第一实例迁移到该第二实例,该第二实例通过容器创建方式创建。
第二方面,提供了一种用于应用自动化部署的方法,该方法由云管理节点执行,该云管理节点部署在多个计算机设备中的至少一个计算机设备上,该多个计算机设备包括第一计算机设备,该第一计算机设备采用第一实例创建方式为应用创建了第一实例,该方法包括:该应用在该第一实例运行时,获取该应用在该第一实例运行的实时监控信息,该实时监控信息反映该应用在该第一实例的执行情况;根据该实时监控信息,确定是否将该应用从该第一实例迁移到第二实例,该第二实例通过第二实例创建方式创建,该第二实例创建方式与该第一实例创建方式不同。
因此,本申请提供的用于应用自动化部署的方法,可以在应用运行时,确定是否将该应用从当前实例迁移到其它实例,这样,可以在云数据中心对虚拟化技术的支持越来越多的情况下,实现虚拟化技术实时分析和切换,更加灵活地调整虚拟化技术类型,提高资源利用率,避免资源的浪费。
结合第二方面及其上述实现方式,在第二方面的另一种实现方式中,该根据该实时监控信息,确定是否将该应用从该第一实例迁移到第二实例,包括:根据该实时监控信息,使用增强学习Reinforcement Learning算法,确定该应用维持该第一实例不迁移的第一回报值,以及该应用从该第一实例迁移到该第二实例的第二回报值;当该第一回报值高于或等于该第二回报值时,确定该应用维持该第一实例不迁移;当该第一回报值低于该第二回报值时,确定该应用从该第一实例迁移到该第二实例。
结合第二方面及其上述实现方式,在第二方面的另一种实现方式中,该根据该实时监控信息,使用增强学习Reinforcement Learning算法,确定该应用维持该第一实例不迁移的第一回报值,以及该应用从该第一实例迁移到该第二实例的第二回报值,包括:
根据公式(1)确定该第一回报值:
Figure GWB0000002945070000081
其中,A为调整系数,responseTime表示该应用程序实际对外部请求的响应时间,Time表示该应用程序对外部请求响应的预设时间,Utilization表示该应用在运行时所占用的多种资源中每种资源的资源利用率,CostOFTransition取0,CostOfTechnology=∑(B*C),B表示该第一实例创建方式对应的虚拟化技术产生的多种开销中的每种开销,C表示该B在该应用中的权重;
根据该公式(1)确定该第二回报值,其中,responseTime表示该应用程序实际对外部请求的响应时间,Time表示该应用程序对外部请求响应的预设时间,Utilization表示该应用在运行时所占用的多种资源中每种资源的资源利用率,CostOFTransition表示迁出该第一实例的开销与迁入该第二实例的开销之和,CostOfTechnology=∑(B*C),B表示该第二实例创建方式对应的虚拟化技术产生的多种开销中的每种开销,C表示该B在该应用中的权重。可选地,对于每一种虚拟化技术,对应的CostOfTechnology可以固定为一个常数。
结合第二方面及其上述实现方式,在第二方面的另一种实现方式中,该根据该实时监控信息,使用增强学习Reinforcement Learning算法,确定该应用维持该第一实例不迁移的第一回报值,以及该应用从该第一实例迁移到该第二实例的第二回报值,包括:
根据公式(2)确定该第一回报值:
Figure GWB0000002945070000091
其中,A为调整系数,throughput表示该应用在运行时的吞吐量,TP表示该应用在运行时的吞吐量的预设值,Utilization表示该应用在运行时所占用的多种资源中每种资源的资源利用率,CostOFTransition取0,CostOfTechnology=∑(B*C),B表示该第一实例创建方式对应的虚拟化技术产生的多种开销中的每种开销,C表示该B在该应用中的权重;
根据该公式(2)确定该第二回报值,其中,A为调整系数,throughput表示该应用在运行时的吞吐量,TP表示该应用在运行时的吞吐量的预设值,Utilization表示该应用在运行时所占用的多种资源中每种资源的资源利用率,CostOFTransition表示迁出该第一实例的开销与迁入该第二实例的开销之和,CostOfTechnology=∑(B*C),B表示该第二实例创建方式产生的多种虚拟化技术开销中的每种虚拟化技术开销,C表示该B在该应用中的权重。可选地,对于每一种虚拟化技术,对应的CostOfTechnology可以固定为一个常数。
应理解,公式(2)中的吞吐量可以为数据吞吐量,即throughput表示应用在运行时数据的吞吐量,对应的TP表示该应用在运行时数据的吞吐量的预设值;或者,该吞吐量还可以为网络IO请求的吞吐量,即throughput表示应用在运行时网络IO请求的吞吐量,对应的TP表示该应用在运行时网络IO请求的吞吐量的预设值。
结合第二方面及其上述实现方式,在第二方面的另一种实现方式中,该应用为数据库,该根据该实时监控信息,确定是否将该应用从该第一实例迁移到第二实例,包括:根据该实时监控信息确定该数据库处于空闲状态;确定将该应用从该第一实例迁移到该第二实例,该第二实例通过Container创建方式创建。这样,可以避免资源的浪费,并且不会使数据库丢失任何数据。
结合第二方面及其上述实现方式,在第二方面的另一种实现方式中,若该应用当前使用的第一实例为VM,云管理节点可以根据该应用的实时监控信息,可以确定该应用在某个工作阶段,其使用的内存一直在缓慢的变换(如缓慢增加,或缓慢减少),这时将该应用迁移到Container的效果会更好。这样,由于因为Container的内存资源可以随时变更,迁移到Container可以不浪费内存。如果运行时分析子模块2132根据实时监控信息该应用在某个阶段使用的内存是固定量的,则该应用可以继续使用VM,不进行迁移。
结合第二方面及其上述实现方式,在第二方面的另一种实现方式中,拖该应用当前使用的第一实例为VM,云管理节点可以根据该应用的实时监控信息,确定该应用在某个工作阶段,拥有很多线程和上下文切换,这种情况使用VM进行调度的话,会造成很多CPU开销(因为VM本身对CPU进行虚拟化,涉及多线程切换会造成更大的开销),这时迁移到Container会获得比较好的效果
结合第二方面及其上述实现方式,在第二方面的另一种实现方式中,若该应用当前使用的第一实例为Container,云管理节点根据实时监控信息,确定该应用在某个工作阶段,需要对内核敏感数据进行操作时,根据Container间共享同一内核的情况,在这种情况下就会产生对其他Container的不安全性,因此在这类工作阶段,考虑安全性,应该将该应用迁移到第二实例,该第二实例为VM。
结合第二方面及其上述实现方式,在第二方面的另一种实现方式中,若该应用当前使用的第一实例为Container,由于Container在进行迁移的时候,例如该应用需要整体迁移到物理机时,不能完整的处理系统调用的迁移,而VM是可以提供完整的迁移保证的,所以当应用所在的实例需要整体迁移时,可以先将该应用迁移至第二实例,该第二实例为VM,运行在VM后再进行整体迁移,例如整体迁移到物理机。
结合第二方面,在第二方面的一种实现方式中,该多个计算机设备包括第二计算机设备,该第二计算机设备与该第二实例创建方式对应,该方法还包括:在确定将该应用从该第一实例迁移到该第二实例时,向该第二计算机设备发送第二实例创建命令,该第二实例创建命令用于指示该第二计算机设备根据该第二实例创建方式为该应用创建该第二实例;将该应用切换到该第二实例运行。
结合第二方面及其上述实现方式,在第二方面的另一种实现方式中,该将该应用切换到该第二实例运行,具体包括:指示该第二计算机设备基于该应用在该第一实例运行所使用的数据源在该第二实例运行该应用。
结合第二方面及其上述实现方式,在第二方面的另一种实现方式中,若该应用存在运行状态,该将该应用切换到该第二实例运行,具体包括:指示该第二计算机设备获取该应用在该第一实例运行的运行状态,并基于获取的该运行状态在该第二实例运行该应用。
第三方面,提供了一种云计算数据中心的云管理节点,用于执行上述第一方面或第一方面的任意可能的实现方式中的方法。具体地,该云管理节点包括用于执行上述第一方面或第一方面的任意可能的实现方式中的方法的模块。
第四方面,提供了一种云计算数据中心的云管理节点,用于执行上述第一方面或第一方面的任意可能的实现方式中的方法。具体地,该云管理节点包括用于执行上述第一方面或第一方面的任意可能的实现方式中的方法的模块。
第五方面,提供了一种云计算数据中心的云管理节点,包括:存储器和处理器,该存储器用于存储指令,该处理器用于执行该存储器存储的指令,并且对该存储器中存储的指令的执行使得该处理器执行第一方面或第一方面的任意可能的实现方式中的方法。
第六方面,提供了一种云计算数据中心的云管理节点,包括:存储器和处理器,该存储器用于存储指令,该处理器用于执行该存储器存储的指令,并且对该存储器中存储的指令的执行使得该处理器执行第一方面或第一方面的任意可能的实现方式中的方法。
第七方面,提供了一种计算机可读介质,用于存储计算机程序,该计算机程序包括用于执行第一方面或第一方面的任意可能的实现方式中的方法的指令。
第八方面,提供了一种计算机可读介质,用于存储计算机程序,该计算机程序包括用于执行第一方面或第一方面的任意可能的实现方式中的方法的指令。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的用于应用自动化部署的方法的示意性流程图。
图2是根据本发明实施例的用于应用自动化部署的装置的示意性框图。
图3是根据本发明实施例的用于应用自动化部署的方法的另一示意性流程图。
图4是根据本发明实施例的用于应用自动化部署的方法的再一示意性流程图。
图5是根据本发明实施例的云计算数据中心的云管理节点的示意性框图。
图6是根据本发明另一实施例的云计算数据中心的云管理节点的示意性框图。
图7是根据本发明再一实施例的云计算数据中心的云管理节点的示意性框图。
图8是根据本发明再一实施例的云计算数据中心的云管理节点的示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员获得的所有其他实施例,都应属于本发明保护的范围。
图1示出了本发明实施例提供的用于应用自动化部署的方法1000,该用于应用自动化部署的方法1000可以应用于图2所示的云计算数据中心,该方法1000可以由该云管理节点2100执行。如图2所示,该云计算数据中心可以包括多个计算机设备,这里以两个计算机设备为例,分别为第一计算机设备2200和第二计算机设备2300,其中,云管理节点2100可以部署在该多个计算机设备中的至少一个计算机设备上,例如云管理节点2100部署在第一计算机设备2200上,再例如云管理节点2100包括的模块部署在该第一计算机设备2200和第二计算机设备2300上。
在云管理节点2100中,还可以包括多个模块,例如应用编排引擎(orchestrationengine)2110、虚拟化技术分析模块2120、云主机管理控制模块2130、云监控控制模块2140以及生命周期管理模块2150中的至少一个模块,可选地,该云管理节点2100还可以包括其它部分,例如用于存储云监控控制模块确定的监控数据的云监控数据库等,本发明并不限于此。
具体地,该应用自动化部署的方法1000可以由图2所示的装置中的云管理节点2100执行,该方法1000包括:
S1100,接收用户输入的应用编排模板(orchestration engine)。
具体地,可以由云管理节点2100中的应用编排引擎2110接收用户输入的应用编排模板。
应理解,本发明实施例中修改了现有技术中应用部署过程中输入的应用编排模板,用户在输入应用编排模板时,不再需要确定应用所使用的实例创建方式,也就是不需要确定使用的哪种虚拟化技术或裸机创建方式,仅需要提供应用的应用模型特征。本发明实施例中的应用编排模板表示根据一定的应用编排规范而编写的部署一个应用栈所使用的文档,即该应用编排模板是指整个应用(或应用栈)包含哪些模块,各个模块之间的关系是怎样的。应用模型特征的描述可以看作是应用编排模板语言规范的一部分,一般的模板语言都可以对应用的模块以及它们之间的调用关系进行描述,从而使部署后的模块相互关联运行。也就是说,原有的应用编排模板中也需要提供应用模型特征,这里用户在输入应用编排模板时,仅需要在应用编排模板中提供应用模型特征,而不需要再提供选定的虚拟化技术作为应用编排模板的一部分。
可选地,作为一个实施例,应用编排引擎2110接收用户输入的应用编排模板,或者说接收用户输入的应用模型特征时,与现有技术类似,可以由Web页面引导用户创建应用的应用编排模板,或者也可以从命令行接口直接导入已经创建好的应用编排模板,而这里的应用编排模板都不指定应用部署过程中创建实例时所使用的虚拟化技术类型,仅提供应用模型特征。
S1200,从该应用编排模块解析出应用的应用模型特征。
具体地,云管理节点2100中的应用编排引擎2110在接收用户输入的应用编排模板后,可以对该应用编排模板进行解析,确定该应用的应用模型特征。例如,应用编排引擎2110可以解析应用编排模板,确定应用模型特征包括:该应用中各个模块之间的依赖关系,该应用是否能进行水平或垂直扩展,是否存在负载均衡等。
可选地,作为一个实施例,应用编排引擎2110可以解析用户输入的应用编排模板,根据该应用编排模板中包括的自动可伸缩集群(auto scaling group)信息,确定该应用模型特征可以包括:该应用是否需要进行水平扩展,也可以包括该应用是否需要进行垂直扩展。具体地,当用户输入的应用编排模板中包括自动可伸缩集群信息,可以确定该应用模型特征包括:该应用为可伸缩应用,即可以根据实时运行需求扩展运行该应用的实例。该扩展可以包括水平扩展和垂直扩展;水平扩展,也可以称为水平伸缩,指通过添加或减少实例的个数的方式进行实例的集群规模的调整;垂直扩展,也可以称为垂直伸缩,指通过添加或减少集群中单个实例所拥有的资源的方式对实例集群规模进行调整。
可选地,作为一个实施例,应用编排引擎2110可以解析用户输入的应用编排模板,根据该应用要处理的内容信息,确定该应用模型特征可以包括:该应用是否存在运行状态(stateful),如果具有运行状态,还可以确定该运行状态是否是稳定状态。例如,若应用编排模板记录该应用属于Web类型,则可以确定该应用模型特征为该应用不存在运行状态;若应用编排模板记录该应用的应用类型为数据处理,则可以确定该应用模型特征为该应用存在运行状态,还可以根据数据处理的具体内容,判断该应用的该运行状态是否为稳定状态。
可选地,作为一个实施例,应用编排引擎2110可以解析用户输入的应用编排模板,根据该应用的服务等级协议(Service-Level Agreement,简称“SLA”),确定该应用是否有时限要求,即确定该应用模型特征包括该应用的时限要求。例如,应用可以对网络带宽,或者响应时间都具有SLA需求,或者,应用对于失效转移(failover)也具有SLA要求,要求failover必须在预设时间内完成,即对failover有时间要求,则该应用模型特征包括failover的时限要求,但本发明实施例并不限于此。
可选地,作为一个实施例,应用编排引擎2110可以解析用户输入的应用编排模板,确定该应用支持的操作系统,即确定该应用模型特征包括该应用支持的操作系统,例如,该应用模型特征为该应用可能支持OSv系统,或者不支持OSv系统,而支持其他操作系统,或者该应用可以支持多个操作系统,本发明并不限于此。
S1300,根据该应用模型特征和预设规则,确定该应用对应的第一实例创建方式。
具体地,云管理节点2100中的虚拟化技术分析模块2120中可以包括部署时分析子模块2121,应用编排引擎2110将确定的应用模型特征发送至该部署时分析子模块2121,该部署时分析子模块2121根据该应用模型特征和预设规则,确定该应用对应的实例创建方式,也就是第一实例创建方式。
在本发明实施例中,部署时分析子模块2121中可以包括多种确定实例创建方式的决策方法,这里的实例创建方式包括虚拟化技术创建方式或者裸机创建方式,确定该实例创建方式的决策方法可以为如图3所示的决策树所示的方法。
具体地,例如,如图3所示,部署时分析子模块2121可以根据应用模型特征,确定该应用对应的第一实例创建方式。部署时分析子模块2121可以先根据应用模型特征确定该应用是否需要水平扩展,如果不需要,则可以判断该应用是否需要垂直扩展,如果垂直扩展也不需要,则可以确定应用对应的第一实例创建方式为裸机部署,也就是为该应用部署物理机,而不是虚拟机。
如果根据应用模型特征确定该应用需要水平扩展,则可以再确定该应用是否具有运行状态(stateful),如果该应用不具有运行状态,则可以确定该应用对应的第一实例创建方式为容器(Container)部署,这里的容器部署可以指利用虚拟化技术创建容器,例如采用docker创建容器的方式。
如果根据应用模型特征确定该应用存在运行状态,还可以继续确定该应用的运行状态是否稳定,如果该应用的运行状态是稳定状态,则还可以确定该应用对应的第一实例创建方式为容器部署。
如果确定该应用的运行状态不是稳定状态,还可以继续确定该应用的failover是否具有SLA,也就是对于failover是否有时间限制,如果有时间限制,而且该时间很短,则可以确定该应用对应的第一实例创建方式为容器部署。
如果该应用的failover不具有SLA,也就是对于failover没有时间限制,或者有时间限制,但是该时限时间较长,则可以继续根据应用模型特征确定该应用能够支持的操作系统,例如,该应用可以支持OSv系统,则可以确定该应用对应的第一实例创建方式为OSv部署,或者该应用不支持OSv系统,则可以确定该应用对应的第一实例创建方式为VM部署。
应理解,如果部署时分析子模块2121确定该应用对应的第一实例创建方式为VM部署,由于VM创建方式指采用虚拟化技术创建虚拟机,也就是可以采用很多种虚拟化技术,而具体使用哪一个虚拟化技术,还可以由部署时分析子模块2121继续根据预设规则进行类似上述图3所述的方式进行确定,直到确定出使用哪一种虚拟化技术结束。
应理解,如果部署时分析子模块2121确定该应用对应的第一实例创建方式为容器部署,由于现有技术中,Docker是最常用的管理容器部署的虚拟化管理程序,因此可以在确定为容器部署后结束,使用Docker管理程序创建容器;若管理容器部署的虚拟化管理程序中,包括越来越多的虚拟化方式,则可以在确定使用容器部署后,继续根据预设规则进行类似上述图3所述的方式进行确定,直到确定出使用哪一种虚拟化管理程序进行创建容器后结束。
S1400,从该多个计算机设备中,确定与该第一实例创建方式对应的第一计算机设备。
在本发明实施例中,云管理节点2100中的部署时分析子模块2121确定了第一实例创建方式,可以向应用编排引擎2110发送该第一实例创建方式,应用编排引擎2110接收到该第一实例创建方式后,可以继续为该应用创建实例。
具体地,该应用编排引擎2110可以向云管理节点2100中的云主机管理控制模块2130发送部署命令,该部署命令包括部署时分析子模块2121确定的第一实例创建方式;云主机管理控制模块2130根据该部署命令,确定多个计算机设备中与第一实例创建方式对应的第一计算机设备2200。在云主机管理控制模块2130中可以保存多个计算机设备中每个计算机设备与对应的实例创建方式之间的对应关系,则云主机管理控制模块2130可以根据部署命令中的第一实例创建方式,对比对应关系,确定对应的计算机设备为第一计算机设备2200。
S1500,向该第一计算机设备发送第一实例创建命令,该第一实例创建命令用于指示该第一计算机设备根据该第一实例创建方式为该应用创建第一实例。
具体地,云管理节点2100中的云主机管理控制模块2130可以向第一计算机设备2200中的第一云主机管理代理模块2210发送第一实例创建命令,该第一云主机管理代理模块2210将该第一实例创建命令发送至第一实例管理模块2220,该第一实例管理模块2220与第一实例创建方式相对应,例如,该第一实例创建方式可以为KVM,则对应的该第一实例管理模块2220可以为虚拟化管理程序KVM hypervisor,则向该KVM hypervisor发送该第一实例创建命令。或者,当确定第一实例创建方式为裸机部署时,该第一实例管理模块2220也可以为物理机管理节点,裸机部署与该物理机管理节点对应,即向该物理机管理节点发送该第一实例创建命令。
在本发明实施例中,第一实例管理模块2220接收到包括第一实例创建方式的第一实例创建命令后,根据该第一实例创建命令,为该应用创建第一实例,例如如图2所示,可以为该应用创建3个第一实例2230,具体创建实例的方法可以按照现有技术进行创建。例如,该第一实例管理模块2220可以为虚拟化管理程序,如KVM hypervisor,该第一实例创建方式对应为使用KVM创建VM;当确定第一实例创建方式为创建VM时,KVM hypervisor为应用部署一个或多个VM,这里的VM即为第一实例2230,而该VM占用的资源则可以根据该应用和虚拟化技术KVM进行确定。或者,该第一实例管理模块2220可以为虚拟化管理程序Docker,该Docker用于创建容器,第一实例创建方式对应为部署容器;当确定第一实例创建方式为部署容器时,Docker可以为该应用创建一个或多个容器,该一个或多个容器即为第一实例2230。
在本发明实施例中,第一计算机设备2200完成实例创建后,可以将创建结果通过云主机管理控制模块2130返回至应用编排引擎2110,应用编排引擎2110根据实例的创建结果,确定创建实例完成后,可以进行该应用部署的剩余工作,例如,应用的模型涉及的中间件的安装,应用的安装,以及初始化脚本运行等内容,还可以为云监控系统配置监控内容,然后在应用编排引擎2110完成这些工作后,运行该应用。
因此,本申请提供的用于应用自动化部署的方法,可以在部署应用时,自动化选择虚拟化技术,可以在云数据中心对虚拟化技术的支持越来越多的情况下,避免传统的应用部署需要用户决定应用所使用的实例创建方式,能够减少用户工作,在一定程度上避免由于用户选择错误所导致的应用效率差及数据中心资源浪费问题。
在本发明实施例中,在该应用运行过程中,该云管理节点2100可以根据该应用的运行情况,确定该应用是否需要迁移。具体地,图4示出了本发明实施例提供的应用迁移的方法3000,该应用迁移方法3000可以应用于图2所示的云计算数据中心,可以由该云管理节点2100执行,具体地,该应用迁移方法3000可以由图2所示的装置中的云管理节点2100执行。
具体地,如图4所示,该方法3000包括:
S3100,获取应用在该第一实例运行的实时监控信息,该实时监控信息反映该应用在该第一实例的执行情况。
在本发明实施例中,在该云管理节点2100中可以包括云监控系统,该云监控系统中的云监控控制模块2140用于对应用运行过程进行监控,获取该应用在运行过程中的实时监控信息,该实时监控信息反映该应用在该第一实例的执行情况;该实时监控信息可以包括应用的服务水平目标(Service Level Objectives,简称“SLO”)、该应用的资源使用情况,以及该应用的执行效率信息等等;该应用的执行效率信息包括:应用在运行时的吞吐量throughput,该应用程序实际对外部请求的响应时间responseTime。在该云管理节点2100中的云监控系统中还可以包括云监控数据库,该云监控数据库用于存储云监控控制模块2140监控获得的该应用的实时监控信息。
可选地,应用在运行时,可以将一些监控统计信息写入日志(log)文件中,云监控控制模块2140可以通过收集log并按规则提取log中的数据获取该应用的实时监控信息,并将该实时监控信息存储到云监控数据库中。
可选地,在计算机设备中还可以包括云监控服务代理模块,该云监控服务代理模块用于监控实例中运行应用时的相关数据(如CPU、内存、IO、网络等),这些相关数据为该计算机设备的实时监控信息,该云监控服务代理模块将该相关数据上报到云监控数据库中;或者计算机设备还可以通过其它模块保存该应用运行时的相关数据,由云监控控制模块2140获取该相关数据并保存到云监控数据库中。
S3200,根据该实时监控信息,确定是否将该应用从该第一实例迁移到第二实例,该第二实例通过第二实例创建方式创建,该第二实例创建方式与该第一实例创建方式不同。
在本发明实施例中,云管理节点2100中的虚拟化技术分析模块2130还可以包括运行时分析子模块2132,该云监控控制模块2130根据应用在运行时的执行情况和资源使用情况,确定实时监控信息,并向该运行时分析子模块2132发送该实时监控信息;该运行时分析子模块2132根据该实时监控信息,可以确定是否将该应用从该第一实例迁移到第二实例,该第二实例是通过第二实例创建方式创建的,该第二实例创建方式与第一实例创建方式不同。
可选地,作为一个实施例,运行时分析子模块2132可以根据该实时监控信息,使用增强学习Reinforcement Learning算法,确定该应用维持该第一实例不迁移的第一回报值(Reward),以及该应用从该第一实例迁移到该第二实例的第二回报值;当该第一回报值高于或等于该第二回报值时,确定该应用维持该第一实例不迁移;当该第一回报值低于该第二回报值时,确定该应用从该第一实例迁移到该第二实例。
具体地,运行时分析子模块2132可以根据该实时监控信息,使用ReinforcementLearning算法分别确定第一回报值以及第二回报值,如表1所示:
表1
A1 A2 A3 A4
S1 R11 R12 R13 R14
S2 R21 R22 R23 R24
S3 R31 R32 R33 R34
其中,S表示应用处于某个状态,例如表1中S1、S2和S3,可以分别对应该应用的三个不同状态,而该表中的所有S,即表1中S1,S2,S3,代表该应用在当前使用的虚拟化技术状态下对应的所有性能状态,例如,S1可以代表CPU利用率0-10%,S2可以代表CPU利用率10%-30%,S3可以代表CPU利用率大于30%,也就是说,在某个虚拟化技术确定的情况下,也存在资源使用情况的不同状态,该不同状态可以用S表示,当前所处的状态为不同状态中的一种。该表1中的A表示该应用进行迁移或不迁移的动作,例如表1中的A1、A2、A3和A4,A1可以表示该应用维持第一实例不迁移的动作,而A2、A3和A4分别表示该应用从第一实例向三个其它创建方式创建的实例进行迁移的动作;R表示回报值(Reward),例如表1中的第一行R值,R11就可以表示第一回报值,即维持第一实例不迁移的回报值,R12、R13和R14均为第二回报值,即分别表示第一实例向其它三个创建方式创建的实例进行迁移的回报值,当R11最大时,则该应用维持第一实例不迁移,当R12、R13和R14中至少一个大于R11时,则该应用从第一实例迁移到第二实例,该第二实例即对应于R12、R13和R14中最大值。
应理解,该表1中的R值可以根据相关指标,通过函数进行计算,该相关指标可以为该应用的性能,例如:该应用的响应时间、资源利用率、迁移开销、虚拟化技术开销等。并且,表1可以设置为每间隔一段时间便更新一次,当该应用从第一实例迁移到第二实例后,也应该及时更新该表1中相应的回报值。
可选地,作为一个实施例,可以根据如下公式(1)计算表1中的回报值:
Figure GWB0000002945070000201
其中,A为调整系数;responseTime表示该应用程序实际对外部请求的响应时间,responseTime是从实时监控信息获取到的;Time表示该应用程序对外部请求响应的预设时间;Utilization表示该应用在运行时所占用的多种资源中每种资源的资源利用率,也就是该应用已经利用的资源与占有的资源的比值,而∏Utilization表示该多个资源利用率的乘积。CostOFTransition为迁移开销,CostOFTransition的取值与计算的回报值有关,当该公式用于计算的回报值为维持第一实例的第一回报值时,CostOFTransition取0;当该该公式用于计算的回报值为从第一实例迁移到第二实例的第二回报值时,CostOFTransition表示迁出第一实例的开销与迁入第二实例的开销之和。CostOfTechnology为虚拟化技术开销,对于每种虚拟化技术,对应的CostOfTechnology可以为一个常数。具体地,CostOfTechnology可以通过CostOfTechnology=∑(B*C)来计算,B表示虚拟化技术产生的多种开销,C表示所述B在该应用中的权重,其中,B的取值与计算的回报值有关,当该公式用于计算的回报值为维持第一实例的第一回报值时,B取第一实例创建方式对应的虚拟化技术产生的多种开销中的每种开销;当该该公式用于计算的回报值为从第一实例迁移到第二实例的第二回报值时,B取第二实例创建方式对应的虚拟化技术产生的多种开销中的每种开销,具体地,B可以表示性能开销,如CPU开销、内存开销、网络开销和磁盘IO开销等。
可选地,作为一个实施例,还可以根据如下公式(2)计算表1中的回报值:
Figure GWB0000002945070000211
其中,A为调整系数;throughput是从实时监控信息获取到的,throughput表示应用在运行时的吞吐量;TP表示该应用在运行时的吞吐量的预设值;应理解,这里的吞吐量可以为数据吞吐量,即throughput表示应用在运行时数据的吞吐量,对应的TP表示该应用在运行时数据的吞吐量的预设值;或者,该吞吐量还可以为网络IO请求的吞吐量,即throughput表示应用在运行时网络IO请求的吞吐量,对应的TP表示该应用在运行时网络IO请求的吞吐量的预设值,本发明实施例并不限于此。Utilization表示该应用在运行时所占用的多种资源中每种资源的资源利用率,也就是该应用已经利用的资源与占有的资源的比值,而∏Utilization表示该多个资源利用率的乘积。CostOFTransition和CostOfTechnology与公式(1)中的类似,CostOFTransition为迁移开销,CostOFTransition的取值与计算的回报值有关,当该公式用于计算的回报值为维持第一实例的第一回报值时,CostOFTransition取0;当该该公式用于计算的回报值为从第一实例迁移到第二实例的第二回报值时,CostOFTransition表示迁出第一实例的开销与迁入第二实例的开销之和。CostOfTechnology为虚拟化技术开销,CostOfTechnology=∑(B*C),B表示虚拟化技术产生的多种开销,C表示所述B在该应用中的权重,其中,B的取值与计算的回报值有关,当该公式用于计算的回报值为维持第一实例的第一回报值时,B取第一实例创建方式对应的虚拟化技术产生的多种开销中的每种开销;当该该公式用于计算的回报值为从第一实例迁移到第二实例的第二回报值时,B取第二实例创建方式对应的虚拟化技术产生的多种开销中的每种开销,具体地,B可以表示性能开销,如CPU开销、内存开销、网络开销和磁盘IO开销等。
在本发明实施例中,可以通过多种方式或公式确定表1中的回报值,例如,通过公式(1)或公式(2)确定,或者通过对该公式进行其它等价变换和修改后的公式确定,其中,对于每种计算方式都会包括迁移开销CostOFTransition和虚拟化技术开销CostOfTechnology,但是性能参数可以不同,性能参数可以根据该应用实际需求来确定,例如公式(1)中的性能参数为响应时间responseTime,则对于一些对响应时间有要求的应用,可以通过公式(1)计算回报值;而公式(2)中的性能参数为吞吐量throughput,对于对响应时间不敏感的应用,例如对于离线分析,对吞吐量的要求比较高,对响应时间不敏感,则可以采用公式(2)。可选地,该性能参数还可以为其他参数,例如分析速度(analyseSpeed)等,则对应的公式可以进行相应的变形和调整,本发明实施例并不限于此。在实际应用中,针对不同类型应用、不同的数据中心规模、不同类型的数据中心架构,其学习方法和函数需要根据具体环境进行调优,才能得到最佳效果,这也是机器学习算法的一个特征。
在本发明实施例中,可以通过公式(1)或公式(2)确定表1中的回报值,这两个公式均涉及迁移开销CostOFTransition和虚拟化技术开销CostOfTechnology,可选地,在虚拟化技术分析模块2120中,还可以包括知识库,该知识库主要对运行时分析子模块2122进行支持,例如可以用于存储计算CostOFTransition和CostOfTechnology所需的数据。
具体地,该知识库可以保存虚拟化技术开销、虚拟化技术迁移开销、学习系统优化历史信息等,其中,知识库保存的该学习系统优化历史信息指在运行时分析子模块2122使用Reinforcement Learning等机器学习算法计算回报值时,存储历史状态集作为之后学习的优化输入信息。
可选地,作为一个实施例,为了计算CostOfTechnology的值,可以在知识库中可以保存如表2所示的开销值:
表2
Figure GWB0000002945070000221
在该表2中,主要是为了列出各种实例创建方式中对各种资源进行虚拟化时所产生的开销,即使用该实例创建方式,或者说使用虚拟化技术时,对应资源的占用情况,包含使用和浪费掉的资源,其中,每一行可以对应一种实例创建方式,这里仅以五种实例创建方式为例进行说明;每一列对应一种性能开销,这里仅以四种开销为例进行说明。
应理解,在表2中的各个开销值,均为一个相对值,指的是实例创建方式创建的实例在运行应用时,对应消耗的时间与整体时间的比值,或者是消耗的资源与整体资源的比值,该表2中各个开销值的数值范围为0到正无穷,其中,当开销值取0时,表示的是物理机(裸机)。根据该表2所示的开销值,可以带入公式(1)和公式(2)中,用于计算CostOfTechnology的值。
可选地,作为一个实施例,知识库中还可以保存如表3所示的开销值:
表3
迁出开销 迁入开销
KVM
Xen
Container
OSv
Bare-metal(裸机)
在该表3中,示意了将实例的应用数据从一个实例迁移到另一实例中运行所需要的的开销,可以用于计算公式中(1)和(2)中的CostOFTransition的值,其中,每一行可以对应一种实例创建方式,这里仅以五种实例创建方式为例进行说明;该表3中一列对应于迁出该实例的应用数据所需的开销,另一列对应于迁入实例的应用数据所需的开销。
应理解,在表3中的开销值,也可以为一个相对值,例如,对于表3中的迁出开销所在列的各个迁出开销值的计算,可以向计算不同实例创建方式对应的迁出单位数据量所用的时间,再以一种实例创建方式为基准,分别计算其它实例创建方式相对于该基准的相对值,即为该实例创建方式的迁出开销值,例如,以裸机为基准,计算出迁出单位数据量所用的时间,其它实例创建方式计算的结果与该裸机的结果做比值,该比值即为其它实例创建方式的开销值,而裸机的迁出开销值则取1。类似的,迁入开销值的计算也与迁出类似,计算的也是一个相对值。
在本发明实施例中,虚拟化技术分析模块2120中的运行时分析子模块2122可以通过上述的Reinforcement Learning算法确定是否进行迁移,也可以通过其它方式确定是否迁移,本发明实施例并不限于此。
例如,在小型云数据中心中,通常会针对某些类型的云进行优化,比如游戏云、金融云、应用云等等,这些云中,对主要的集中数据中心应用进行不同角度的优化,以满足不同云使用者的需求。一些主要的应用比如数据库、缓存、web服务等,具有比较明显的特征与资源需求类型,因此,针对小型云数据中心环境比较简单的情况,就可以不需要使用全面的机器学习分析系统,例如上述的Reinforcement Learning算法,而仅使用简单的决策树就可以分析是否进行实例迁移。
具体地,以数据库为例,数据库是云数据中心中比较常见及特性明显的一种应用,这种应用拥有大量数据,难以迁移;在为该应用创建实例时,一般会被创建一个足够大的VM,从而可以应对用户数据量的不断扩大。云监控控制模块2140可以在数据库运行期间持续监控该数据库,采集包括SLA、吞吐量、查询队列状态等实时监控信息。运行时分析子模块2122会根据这些实时监控信息进行分析。比如:运行到某个任务阶段时,对该数据库没有任何查询操作,此时为数据库分配的所有资源可以认为处于浪费状态,这里的浪费状态是指,根据监控的吞吐量、查询队列状态以及应用处理任务的模型中识别出的不同阶段对数据库访问情况,可以识别该数据库是否正在使用,如果数据库此时并不在使用中,数据库没有任务(例如检索任务)执行,或者说数据库处于空闲状态,则认为数据库处于浪费状态。此时运行时分析子模块2122可以通过数据库的对应策略,会将没有使用的数据库迁移到容器中,也就是该数据库从第一实例VM迁移到第二实例容器中,这样可以避免资源的浪费,并且不会使数据库丢失任何数据。
再例如,该应用当前使用的第一实例为VM,运行时分析子模块2132根据该应用的实时监控信息,可以确定该应用在某个工作阶段,其使用的内存一直在缓慢的变换(如缓慢增加,或缓慢减少),这时将该应用迁移到Container的效果会更好,这样因为Container的内存资源可以随时变更,迁移到Container可以不浪费内存。如果运行时分析子模块2132根据实时监控信息该应用在某个阶段使用的内存是固定量的,则该应用可以继续使用VM,不进行迁移。
再例如,该应用当前使用的第一实例为VM,运行时分析子模块2132根据该应用的实时监控信息,确定该应用在某个工作阶段,拥有很多线程和上下文切换,这种情况使用VM进行调度的话,会造成很多CPU开销(因为VM本身对CPU进行虚拟化,涉及多线程切换会造成更大的开销),这时迁移到Container会获得比较好的效果(regard)。
再例如,该应用当前使用的第一实例为Container,运行时分析子模块2132根据实时监控信息,确定该应用在某个工作阶段,需要对内核敏感数据进行操作时,根据Container间共享同一内核的情况,在这种情况下就会产生对其他Container的不安全性。因此在这类工作阶段,考虑安全性,应该将该应用迁移到VM。
再例如,该应用当前使用的第一实例为Container,由于Container在进行迁移的时候,例如该应用需要整体迁移到物理机时,不能完整的处理系统调用的迁移,而VM是可以提供完整的迁移保证的,所以当应用所在的实例需要整体迁移时,可以先将该应用迁移至VM,运行在VM后再进行整体迁移,例如整体迁移到物理机。
在本发明实施例中,如图2所示,在云管理节点2100中还可以包括生命周期管理模块2150,当虚拟化技术分析模块2120中的运行时分析子模块2122确定该应用可以从第一实例向第二实例迁移后,云主机管理控制模块2130可以向多个计算机设备中的第二计算机设备2300发送第二实例创建命令,该第二实例创建命令包括第二实例创建方式,该第二实例创建命令用于指示该第二计算机设备2300创建第二实例;第二计算机设备2300创建实例完成后,云主机管理控制模块2130可以向生命周期管理模块2150发送迁移任务,该生命周期管理模块2150根据迁移任务,停止该应用在第一实例的运行,在第二实例运行该应用,即在线将该应用从第一实例向第二实例进行迁移。
具体地,生命周期管理模块2150将该应用从第一实例迁移至第二实例,也就是指示第二计算机设备基于应用在第一实例运行时所使用的数据源,在第二实例运行该应用。可选地,当该应用存在运行状态时,还可以指示该第二计算机设备获取该应用在第一实例运行时的运行状态,并基于获取的运行状态在第二实例运行该应用。
因此,本发明实施例的用于应用自动化部署的方法,可以在部署应用时,自动化选择虚拟化技术,并且还可以在应用运行时,确定是否将该应用从当前实例迁移到其它实例,这样,可以在云数据中心对虚拟化技术的支持越来越多的情况下,避免传统的应用部署需要用户决定应用所使用的实例创建方式,能够减少用户工作,在一定程度上避免由于用户选择错误所导致的应用效率差及数据中心资源浪费问题,并在应用运行时,更加灵活地调整虚拟化技术类型,提高资源利用率,避免资源的浪费。
上文中结合图1至图4,详细描述了根据本发明实施例的用于应用自动化部署的方法,下面将结合图5至图8,描述根据本发明实施例的用于应用自动化部署的装置。
图5示出了本发明实施例的云计算数据中心的云管理节点4000的示意性框图,云计算数据中心包括多个计算机设备,该云管理节点4000部署在该多个计算机设备中的至少一个计算机设备上,如图5所示,该云管理节点4000包括:应用编排引擎4100、虚拟化技术分析模块4200和云主机管理控制模块4300,
该应用编排引擎4100用于:接收用户输入的应用编排模板;
该应用编排引擎4100还用于:从该应用编排模板解析出应用的应用模型特征;
该虚拟化技术分析模块4200用于:根据该应用模型特征和预设规则,确定该应用对应的第一实例创建方式;
该云主机管理控制模块4300用于:从该多个计算机设备中,确定与该第一实例创建方式对应的第一计算机设备;
该云主机管理控制模块4300还用于:向该第一计算机设备发送第一实例创建命令,该第一实例创建命令用于指示该第一计算机设备根据该第一实例创建方式为该应用创建第一实例。
因此,本申请提供的云管理节点,可以在部署应用时,自动化选择虚拟化技术,可以在云数据中心对虚拟化技术的支持越来越多的情况下,避免传统的应用部署需要用户决定应用所使用的实例创建方式,能够减少用户工作,在一定程度上避免由于用户选择错误所导致的应用效率差及数据中心资源浪费问题。
可选地,该预设规则包括:若该应用为不可伸缩应用,则该第一实例创建方式为裸机创建方式,该应用编排引擎4100具体用于:根据该应用编排模板中的自动可伸缩集群信息,确定该应用模型特征包括:该应用为不可伸缩应用程序;该虚拟化技术分析模块4200具体用于:当该应用为不可伸缩应用时,根据该预设规则,确定该第一实例创建方式为裸机创建方式。
可选地,该预设规则包括:若该应用不存在运行状态,或者该应用的运行状态为稳定状态,则该第一实例创建方式为容器创建方式,该应用编排引擎4100具体用于:根据该应用编排模板中该应用的处理内容,确定该应用模型特征包括:该应用不存在运行状态,或者该应用的运行状态为稳定状态;该虚拟化技术分析模块4200具体用于:当该应用不存在该运行状态时,或该应用的该运行状态为稳定状态时,根据该预设规则,确定该第一实例创建方式为容器创建方式。
可选地,该预设规则包括:若该应用的失效转移的时间限制小于或等于预设值,则该第一实例创建方式为容器创建方式,该应用编排引擎4100具体用于:根据该应用编排模板中该应用的服务等级协议SLA,确定该应用模型特征包括:该应用的失效转移的时间限制小于或等于预设值;该虚拟化技术分析模块4200具体用于:当该应用的该失效转移的时间限制小于或等于该预设值时,根据该预设规则,确定该第一实例创建方式为容器创建方式。
可选地,该预设规则包括:若该应用支持OSv操作系统,则该第一实例创建方式为OSv创建方式,该应用编排引擎4100具体用于:根据该应用编排模板中该应用支持的操作系统,确定该应用模型特征为:该应用支持OSv操作系统;该虚拟化技术分析模块4200具体用于:当该应用支持OSv操作系统时,根据该预设规则,确定该第一实例创建方式为OSv创建方式。
可选地,该第一实例创建方式为虚拟机VM创建方式。
可选地,该云管理节点还包括云监控控制模块4400,该云监控控制模块4400用于:获取该应用在该第一实例运行的实时监控信息,该实时监控信息反映该应用在该第一实例的执行情况;该虚拟化技术分析模块4200还用于:根据该实时监控信息,确定是否将该应用从该第一实例迁移到第二实例,该第二实例通过第二实例创建方式创建,该第二实例创建方式与该第一实例创建方式不同。
可选地,该多个计算机设备包括第二计算机设备,该第二计算机设备与该第二实例创建方式对应,该云管理节点还包括生命周期管理模块4500,该云主机管理控制模块4300用于:在该虚拟化技术分析模块4200确定将该应用从该第一实例迁移到该第二实例时,向该第二计算机设备发送第二实例创建命令,该第二实例创建命令用于指示该第二计算机设备根据该第二实例创建方式为该应用创建该第二实例;该生命周期管理模块4500用于:将该应用切换到该第二实例运行。
可选地,该生命周期管理模块4500具体用于:指示该第二计算机设备基于该应用在该第一实例运行所使用的数据源在该第二实例运行该应用。
可选地,若该应用存在运行状态,该生命周期管理模块4500具体用于:指示该第二计算机设备获取该应用在该第一实例运行的运行状态,并基于获取的该运行状态在该第二实例运行该应用。
可选地,该应用为数据库,该虚拟化技术分析模块4200还用于:根据该实时监控信息确定该数据库处于空闲状态;确定将该应用从该第一实例迁移到该第二实例,该第二实例通过容器创建方式创建。
应理解,根据本发明实施例的云管理节点4000可对应于执行本发明实施例中的方法1000,该云管理节点4000可以对应与图2中的云管理节点2100,并且云管理节点4000中的各个模块的上述和其它操作和/或功能分别为了实现图1中的各个方法的相应流程,为了简洁,在此不再赘述。
因此,本发明实施例的云管理节点,可以在部署应用时,自动化选择虚拟化技术,并且还可以在应用运行时,确定是否将该应用从当前实例迁移到其它实例,这样,可以在云数据中心对虚拟化技术的支持越来越多的情况下,避免传统的应用部署需要用户决定应用所使用的实例创建方式,能够减少用户工作,在一定程度上避免由于用户选择错误所导致的应用效率差及数据中心资源浪费问题,并在应用运行时,更加灵活地调整虚拟化技术类型,提高资源利用率,避免资源的浪费。
图6示出了本发明实施例的云计算数据中心的云管理节点5000的示意性框图,云计算数据中心包括多个计算机设备,该云管理节点5000部署在该多个计算机设备中的至少一个计算机设备上,该多个计算机设备包括第一计算机设备,该第一计算机设备采用第一实例创建方式为应用创建了第一实例。如图6所示,该云管理节点5000包括:
云监控控制模块5100,用于在该应用在该第一实例运行时,获取该应用在该第一实例运行的实时监控信息,该实时监控信息反映该应用在该第一实例的执行情况;
虚拟化技术分析模块5200,用于根据该实时监控信息,确定是否将该应用从该第一实例迁移到第二实例,该第二实例通过第二实例创建方式创建,该第二实例创建方式与该第一实例创建方式不同。
因此,本发明实施例的云管理节点,可以在应用运行时,确定是否将该应用从当前实例迁移到其它实例,这样,可以在云数据中心对虚拟化技术的支持越来越多的情况下,实现虚拟化技术实时分析和切换,更加灵活地调整虚拟化技术类型,提高资源利用率,避免资源的浪费。
可选地,该多个计算机设备包括第二计算机设备,该第二计算机设备与该第二实例创建方式对应,该云管理节点还包括:云主机管理控制模块5300,用于在该虚拟化技术分析模块5200确定将该应用从该第一实例迁移到该第二实例时,向该第二计算机设备发送第二实例创建命令,该第二实例创建命令用于指示该第二计算机设备根据该第二实例创建方式为该应用创建该第二实例;生命周期管理模块5400,用于将该应用切换到该第二实例运行。
可选地,该生命周期管理模块5400具体用于:指示该第二计算机设备基于该应用在该第一实例运行所使用的数据源在该第二实例运行该应用。
可选地,若该应用存在运行状态,该生命周期管理模块5400具体用于:指示该第二计算机设备获取该应用在该第一实例运行的运行状态,并基于获取的该运行状态在该第二实例运行该应用。
可选地,该应用为数据库,该虚拟化技术分析模块5200还用于:根据该实时监控信息确定该数据库处于空闲状态;确定将该应用从该第一实例迁移到该第二实例,该第二实例通过容器创建方式创建。
应理解,根据本发明实施例的云管理节点5000可对应于执行本发明实施例中的方法2000,该云管理节点5000可以对应与图2中的云管理节点2100,并且云管理节点5000中的各个模块的上述和其它操作和/或功能分别为了实现图4中的各个方法的相应流程,为了简洁,在此不再赘述。
因此,本发明实施例的云管理节点,可以在应用运行时,确定是否将该应用从当前实例迁移到其它实例,这样,可以在云数据中心对虚拟化技术的支持越来越多的情况下,实现虚拟化技术实时分析和切换,更加灵活地调整虚拟化技术类型,提高资源利用率,避免资源的浪费。
如图7所示,本发明实施例还提供了一种云计算数据中心的云管理节点6000,云计算数据中心包括多个计算机设备,该云管理节点6000部署在该多个计算机设备中的至少一个计算机设备上,该云管理节点6000包括:处理器6100和收发器6200,处理器6100和收发器6200相连,可选地,该云管理节点6000还包括存储器6300,存储器6300与处理器6100相连,进一步可选地,该云管理节点6000包括总线系统6400。其中,处理器6100、存储器6300和收发器6200可以通过总线系统6400相连,该存储器6300可以用于存储指令,该处理器6100用于执行该存储器6300存储的指令,以控制收发器6200发送或接收信息或信号,其中,该收发器6200用于:接收用户输入的应用编排模板;该处理器6100用于:从该应用编排模板解析出应用的应用模型特征;根据该应用模型特征和预设规则,确定该应用对应的第一实例创建方式;从该多个计算机设备中,确定与该第一实例创建方式对应的第一计算机设备;该收发器6200还用于:向该第一计算机设备发送第一实例创建命令,该第一实例创建命令用于指示该第一计算机设备根据该第一实例创建方式为该应用创建第一实例。
可选地,该预设规则包括:若该应用为不可伸缩应用,则该第一实例创建方式为裸机创建方式,该处理器6100具体用于:根据该应用编排模板中的自动可伸缩集群信息,确定该应用模型特征包括:该应用为不可伸缩应用程序;当该应用为不可伸缩应用时,根据该预设规则,确定该第一实例创建方式为裸机创建方式。
可选地,该预设规则包括:若该应用不存在运行状态,或者该应用的运行状态为稳定状态,则该第一实例创建方式为容器创建方式,该处理器6100具体用于:根据该应用编排模板中该应用的处理内容,确定该应用模型特征包括:该应用不存在运行状态,或者该应用的运行状态为稳定状态;当该应用不存在该运行状态时,或该应用的该运行状态为稳定状态时,根据该预设规则,确定该第一实例创建方式为容器创建方式。
可选地,该预设规则包括:若该应用的失效转移的时间限制小于或等于预设值,则该第一实例创建方式为容器创建方式,该处理器6100具体用于:根据该应用编排模板中该应用的服务等级协议SLA,确定该应用模型特征包括:该应用的失效转移的时间限制小于或等于预设值;当该应用的该失效转移的时间限制小于或等于该预设值时,根据该预设规则,确定该第一实例创建方式为容器创建方式。
可选地,该预设规则包括:若该应用支持OSv操作系统,则该第一实例创建方式为OSv创建方式,该处理器6100具体用于:根据该应用编排模板中该应用支持的操作系统,确定该应用模型特征为:该应用支持OSv操作系统;当该应用支持OSv操作系统时,根据该预设规则,确定该第一实例创建方式为OSv创建方式。
可选地,该第一实例创建方式为虚拟机VM创建方式。
可选地,该处理器6100具体用于:获取该应用在该第一实例运行的实时监控信息,该实时监控信息反映该应用在该第一实例的执行情况;根据该实时监控信息,确定是否将该应用从该第一实例迁移到第二实例,该第二实例通过第二实例创建方式创建,该第二实例创建方式与该第一实例创建方式不同。
可选地,该多个计算机设备包括第二计算机设备,该第二计算机设备与该第二实例创建方式对应,该收发器6200具体用于:在该处理器6100确定将该应用从该第一实例迁移到该第二实例时,向该第二计算机设备发送第二实例创建命令,该第二实例创建命令用于指示该第二计算机设备根据该第二实例创建方式为该应用创建该第二实例;该处理器6100还用于:将该应用切换到该第二实例运行。
可选地,该处理器6100具体用于:指示该第二计算机设备基于该应用在该第一实例运行所使用的数据源在该第二实例运行该应用。
可选地,若该应用存在运行状态,该处理器6100具体用于:指示该第二计算机设备获取该应用在该第一实例运行的运行状态,并基于获取的该运行状态在该第二实例运行该应用。
可选地,该应用为数据库,该处理器6100还用于:根据该实时监控信息确定该数据库处于空闲状态;确定将该应用从该第一实例迁移到该第二实例,该第二实例通过容器创建方式创建。
应理解,根据本发明实施例的云管理节点6000可对应于本发明实施例中的云管理节点4000,并可以对应于执行根据本发明实施例的方法1000,并且云管理节点6000中的各个模块的上述和其它操作和/或功能分别为了实现图1中的各个方法的相应流程,为了简洁,在此不再赘述。
因此,本发明实施例的云管理该节点,可以在部署应用时,自动化选择虚拟化技术,并且还可以在应用运行时,确定是否将该应用从当前实例迁移到其它实例,这样,可以在云数据中心对虚拟化技术的支持越来越多的情况下,避免传统的应用部署需要用户决定应用所使用的实例创建方式,能够减少用户工作,在一定程度上避免由于用户选择错误所导致的应用效率差及数据中心资源浪费问题,并在应用运行时,更加灵活地调整虚拟化技术类型,提高资源利用率,避免资源的浪费。
如图8所示,本发明实施例还提供了一种云计算数据中心云计算数据中心的云管理节点7000,该云管理节点7000部署在多个计算机设备中的至少一个计算机设备上,该多个计算机设备包括第一计算机设备,该第一计算机设备采用第一实例创建方式为应用创建了第一实例。该云管理节点7000包括:处理器7100和收发器7200,处理器7100和收发器7200相连,可选地,该云管理节点7000还包括存储器7300,存储器7300与处理器7100相连,进一步可选地,该云管理节点7000包括总线系统7400。其中,处理器7100、存储器7300和收发器7200可以通过总线系统7400相连,该存储器7300可以用于存储指令,该处理器7100用于执行该存储器7300存储的指令,以控制收发器7200发送或接收信息或信号,
其中,该收发器7200用于:在该应用在该第一实例运行时,获取该应用在该第一实例运行的实时监控信息,该实时监控信息反映该应用在该第一实例的执行情况;
该处理器7100用于:根据该实时监控信息,确定是否将该应用从该第一实例迁移到第二实例,该第二实例通过第二实例创建方式创建,该第二实例创建方式与该第一实例创建方式不同。
可选地,该多个计算机设备包括第二计算机设备,该第二计算机设备与该第二实例创建方式对应,该收发器7200还用于:在该处理器7100确定将该应用从该第一实例迁移到该第二实例时,向该第二计算机设备发送第二实例创建命令,该第二实例创建命令用于指示该第二计算机设备根据该第二实例创建方式为该应用创建该第二实例;该处理器7100还用于:将该应用切换到该第二实例运行。
可选地,该处理器7100具体用于:指示该第二计算机设备基于该应用在该第一实例运行所使用的数据源在该第二实例运行该应用。
可选地,若该应用存在运行状态,该处理器7100具体用于:指示该第二计算机设备获取该应用在该第一实例运行的运行状态,并基于获取的该运行状态在该第二实例运行该应用。
可选地,该应用为数据库,该处理器7100还用于:根据该实时监控信息确定该数据库处于空闲状态;确定将该应用从该第一实例迁移到该第二实例,该第二实例通过容器创建方式创建。
应理解,根据本发明实施例的云管理节点7000可对应于本发明实施例中的云管理节点5000,并可以对应于执行根据本发明实施例的方法3000,并且云管理节点7000中的各个模块的上述和其它操作和/或功能分别为了实现图4中的各个方法的相应流程,为了简洁,在此不再赘述。
因此,本发明实施例的云管理节点,可以在应用运行时,确定是否将该应用从当前实例迁移到其它实例,这样,可以在云数据中心对虚拟化技术的支持越来越多的情况下,实现虚拟化技术实时分析和切换,更加灵活地调整虚拟化技术类型,提高资源利用率,避免资源的浪费。
应注意,本发明上述方法实施例可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
可以理解,本发明实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data RateSDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(DirectRambus RAM,DR RAM)。应注意,本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (30)

1.一种用于应用自动化部署的方法,其特征在于,所述方法由云管理节点执行,所述云管理节点部署在多个计算机设备中的至少一个计算机设备上,所述方法包括:
接收用户输入的应用编排模板;
从所述应用编排模板解析出应用的应用模型特征;
根据所述应用模型特征和预设规则,确定所述应用对应的第一实例创建方式;
从所述多个计算机设备中,确定与所述第一实例创建方式对应的第一计算机设备;
向所述第一计算机设备发送第一实例创建命令,所述第一实例创建命令用于指示所述第一计算机设备根据所述第一实例创建方式为所述应用创建第一实例;
所述方法还包括:
获取所述应用在所述第一实例运行的实时监控信息,所述实时监控信息反映所述应用在所述第一实例的执行情况;
根据所述实时监控信息,确定是否将所述应用从所述第一实例迁移到第二实例,所述第二实例通过第二实例创建方式创建,所述第二实例创建方式与所述第一实例创建方式不同。
2.根据权利要求1所述的方法,其特征在于,所述预设规则包括:若所述应用为不可伸缩应用,则所述第一实例创建方式为裸机创建方式,
所述从所述应用编排模板解析出应用的应用模型特征,具体包括:
根据所述应用编排模板中的自动可伸缩集群信息,确定所述应用模型特征包括:所述应用为不可伸缩应用程序;
所述根据所述应用模型特征和预设规则,确定所述应用对应的第一实例创建方式,具体包括:
当所述应用为不可伸缩应用时,根据所述预设规则,确定所述第一实例创建方式为裸机创建方式。
3.根据权利要求1所述的方法,其特征在于,所述预设规则包括:若所述应用不存在运行状态,或者所述应用的运行状态为稳定状态,则所述第一实例创建方式为容器创建方式,
所述从所述应用编排模板解析出应用的应用模型特征,具体包括:
根据所述应用编排模板中所述应用的处理内容信息,确定所述应用模型特征包括:所述应用不存在运行状态,或者所述应用的运行状态为稳定状态;
所述根据所述应用模型特征和预设规则,确定所述应用对应的第一实例创建方式,具体包括:
当所述应用不存在所述运行状态时,或所述应用的所述运行状态为稳定状态时,根据所述预设规则,确定所述第一实例创建方式为容器创建方式。
4.根据权利要求1所述的方法,其特征在于,所述预设规则包括:若所述应用的失效转移的时间限制小于或等于预设值,则所述第一实例创建方式为容器创建方式,
所述从所述应用编排模板解析出应用的应用模型特征,具体包括:
根据所述应用编排模板中所述应用的服务等级协议SLA,确定所述应用模型特征包括:所述应用的失效转移的时间限制小于或等于预设值;
所述根据所述应用模型特征和预设规则,确定所述应用对应的第一实例创建方式,具体包括:
当所述应用的所述失效转移的时间限制小于或等于所述预设值时,根据所述预设规则,确定所述第一实例创建方式为容器创建方式。
5.根据权利要求1所述的方法,其特征在于,所述预设规则包括:若所述应用支持OSv操作系统,则所述第一实例创建方式为OSv创建方式,
所述从所述应用编排模板解析出应用的应用模型特征,具体包括:
根据所述应用编排模板中所述应用支持的操作系统,确定所述应用模型特征包括:所述应用支持OSv操作系统;
所述根据所述应用模型特征和预设规则,确定所述应用对应的第一实例创建方式,具体包括:
当所述应用支持OSv操作系统时,根据所述预设规则,确定所述第一实例创建方式为OSv创建方式。
6.根据权利要求1所述的方法,其特征在于,所述第一实例创建方式为虚拟机VM创建方式。
7.根据权利要求1所述的方法,其特征在于,所述多个计算机设备包括第二计算机设备,所述第二计算机设备与所述第二实例创建方式对应,所述方法包括:
在确定将所述应用从所述第一实例迁移到所述第二实例时,向所述第二计算机设备发送第二实例创建命令,所述第二实例创建命令用于指示所述第二计算机设备根据所述第二实例创建方式为所述应用创建所述第二实例;
将所述应用切换到所述第二实例运行。
8.根据权利要求7所述的方法,其特征在于,所述将所述应用切换到所述第二实例运行,具体包括:
指示所述第二计算机设备基于所述应用在所述第一实例运行所使用的数据源在所述第二实例运行所述应用。
9.根据权利要求7或8所述的方法,其特征在于,若所述应用存在运行状态,所述将所述应用切换到所述第二实例运行,具体包括:
指示所述第二计算机设备获取所述应用在所述第一实例运行的运行状态,并基于获取的所述运行状态在所述第二实例运行所述应用。
10.根据权利要求1至8任一项所述的方法,其特征在于,所述应用为数据库,
所述根据所述实时监控信息,确定是否将所述应用从所述第一实例迁移到第二实例,包括:
根据所述实时监控信息确定所述数据库处于空闲状态;
确定将所述应用从所述第一实例迁移到所述第二实例,所述第二实例通过容器创建方式创建。
11.一种应用迁移方法,其特征在于,所述方法由云管理节点执行,所述云管理节点部署在多个计算机设备中的至少一个计算机设备上,所述多个计算机设备包括第一计算机设备,所述第一计算机设备采用第一实例创建方式为应用创建了第一实例,所述方法包括:
所述应用在所述第一实例运行时,获取所述应用在所述第一实例运行的实时监控信息,所述实时监控信息反映所述应用在所述第一实例的执行情况;
根据所述实时监控信息,确定是否将所述应用从所述第一实例迁移到第二实例,所述第二实例通过第二实例创建方式创建,所述第二实例创建方式与所述第一实例创建方式不同。
12.根据权利要求11所述的方法,其特征在于,所述多个计算机设备包括第二计算机设备,所述第二计算机设备与所述第二实例创建方式对应,所述方法包括:
在确定将所述应用从所述第一实例迁移到所述第二实例时,向所述第二计算机设备发送第二实例创建命令,所述第二实例创建命令用于指示所述第二计算机设备根据所述第二实例创建方式为所述应用创建所述第二实例;
将所述应用切换到所述第二实例运行。
13.根据权利要求12所述的方法,其特征在于,所述将所述应用切换到所述第二实例运行,具体包括:
指示所述第二计算机设备基于所述应用在所述第一实例运行所使用的数据源在所述第二实例运行所述应用。
14.根据权利要求12或13所述的方法,其特征在于,若所述应用存在运行状态,所述将所述应用切换到所述第二实例运行,具体包括:
指示所述第二计算机设备获取所述应用在所述第一实例运行的运行状态,并基于获取的所述运行状态在所述第二实例运行所述应用。
15.根据权利要求11至13任一项所述的方法,其特征在于,所述应用为数据库,所述根据所述实时监控信息,确定是否将所述应用从所述第一实例迁移到第二实例,包括:
根据所述实时监控信息确定所述数据库处于空闲状态;
确定将所述应用从所述第一实例迁移到所述第二实例,所述第二实例通过容器创建方式创建。
16.一种云计算数据中心的云管理节点,其特征在于,所述云管理节点部署在多个计算机设备中的至少一个计算机设备上,所述云管理节点包括:应用编排引擎、虚拟化技术分析模块和云主机管理控制模块,
所述应用编排引擎用于:接收用户输入的应用编排模板;
所述应用编排引擎还用于:从所述应用编排模板解析出应用的应用模型特征;
所述虚拟化技术分析模块用于:根据所述应用模型特征和预设规则,确定所述应用对应的第一实例创建方式;
所述云主机管理控制模块用于:从所述多个计算机设备中,确定与所述第一实例创建方式对应的第一计算机设备;
所述云主机管理控制模块还用于:向所述第一计算机设备发送第一实例创建命令,所述第一实例创建命令用于指示所述第一计算机设备根据所述第一实例创建方式为所述应用创建第一实例;
所述云管理节点还包括云监控控制模块,
所述云监控控制模块用于:获取所述应用在所述第一实例运行的实时监控信息,所述实时监控信息反映所述应用在所述第一实例的执行情况;
所述虚拟化技术分析模块还用于:根据所述实时监控信息,确定是否将所述应用从所述第一实例迁移到第二实例,所述第二实例通过第二实例创建方式创建,所述第二实例创建方式与所述第一实例创建方式不同。
17.根据权利要求16所述的云管理节点,其特征在于,所述预设规则包括:若所述应用为不可伸缩应用,则所述第一实例创建方式为裸机创建方式,
所述应用编排引擎具体用于:
根据所述应用编排模板中的自动可伸缩集群信息,确定所述应用模型特征包括:所述应用为不可伸缩应用程序;
所述虚拟化技术分析模块具体用于:
当所述应用为不可伸缩应用时,根据所述预设规则,确定所述第一实例创建方式为裸机创建方式。
18.根据权利要求16所述的云管理节点,其特征在于,所述预设规则包括:若所述应用不存在运行状态,或者所述应用的运行状态为稳定状态,则所述第一实例创建方式为容器创建方式,
所述应用编排引擎具体用于:
根据所述应用编排模板中所述应用的处理内容,确定所述应用模型特征包括:所述应用不存在运行状态,或者所述应用的运行状态为稳定状态;
所述虚拟化技术分析模块具体用于:
当所述应用不存在所述运行状态时,或所述应用的所述运行状态为稳定状态时,根据所述预设规则,确定所述第一实例创建方式为容器创建方式。
19.根据权利要求16所述的云管理节点,其特征在于,所述预设规则包括:若所述应用的失效转移的时间限制小于或等于预设值,则所述第一实例创建方式为容器创建方式,
所述应用编排引擎具体用于:
根据所述应用编排模板中所述应用的服务等级协议SLA,确定所述应用模型特征包括:所述应用的失效转移的时间限制小于或等于预设值;
所述虚拟化技术分析模块具体用于:
当所述应用的所述失效转移的时间限制小于或等于所述预设值时,根据所述预设规则,确定所述第一实例创建方式为容器创建方式。
20.根据权利要求16所述的云管理节点,其特征在于,所述预设规则包括:若所述应用支持OSv操作系统,则所述第一实例创建方式为OSv创建方式,
所述应用编排引擎具体用于:
根据所述应用编排模板中所述应用支持的操作系统,确定所述应用模型特征包括:所述应用支持OSv操作系统;
所述虚拟化技术分析模块具体用于:
当所述应用支持OSv操作系统时,根据所述预设规则,确定所述第一实例创建方式为OSv创建方式。
21.根据权利要求16所述的云管理节点,其特征在于,所述第一实例创建方式为虚拟机VM创建方式。
22.根据权利要求16所述的云管理节点,其特征在于,所述多个计算机设备包括第二计算机设备,所述第二计算机设备与所述第二实例创建方式对应,所述云管理节点还包括生命周期管理模块,
所述云主机管理控制模块用于:在所述虚拟化技术分析模块确定将所述应用从所述第一实例迁移到所述第二实例时,向所述第二计算机设备发送第二实例创建命令,所述第二实例创建命令用于指示所述第二计算机设备根据所述第二实例创建方式为所述应用创建所述第二实例;
所述生命周期管理模块用于:将所述应用切换到所述第二实例运行。
23.根据权利要求22所述的云管理节点,其特征在于,所述生命周期管理模块具体用于:
指示所述第二计算机设备基于所述应用在所述第一实例运行所使用的数据源在所述第二实例运行所述应用。
24.根据权利要求22或23所述的云管理节点,其特征在于,若所述应用存在运行状态,所述生命周期管理模块具体用于:
指示所述第二计算机设备获取所述应用在所述第一实例运行的运行状态,并基于获取的所述运行状态在所述第二实例运行所述应用。
25.根据权利要求16至23任一项所述的云管理节点,其特征在于,所述应用为数据库,所述虚拟化技术分析模块还用于:
根据所述实时监控信息确定所述数据库处于空闲状态;
确定将所述应用从所述第一实例迁移到所述第二实例,所述第二实例通过容器创建方式创建。
26.一种应用迁移云管理节点,其特征在于,所述云管理节点部署在多个计算机设备中的至少一个计算机设备上,所述多个计算机设备包括第一计算机设备,所述第一计算机设备采用第一实例创建方式为应用创建了第一实例,所述云管理节点包括:
云监控控制模块,用于在所述应用在所述第一实例运行时,获取所述应用在所述第一实例运行的实时监控信息,所述实时监控信息反映所述应用在所述第一实例的执行情况;
虚拟化技术分析模块,用于根据所述实时监控信息,确定是否将所述应用从所述第一实例迁移到第二实例,所述第二实例通过第二实例创建方式创建,所述第二实例创建方式与所述第一实例创建方式不同。
27.根据权利要求26所述的云管理节点,其特征在于,所述多个计算机设备包括第二计算机设备,所述第二计算机设备与所述第二实例创建方式对应,所述云管理节点还包括:
云主机管理控制模块,用于在所述虚拟化技术分析模块确定将所述应用从所述第一实例迁移到所述第二实例时,向所述第二计算机设备发送第二实例创建命令,所述第二实例创建命令用于指示所述第二计算机设备根据所述第二实例创建方式为所述应用创建所述第二实例;
生命周期管理模块,用于将所述应用切换到所述第二实例运行。
28.根据权利要求27所述的云管理节点,其特征在于,所述生命周期管理模块具体用于:
指示所述第二计算机设备基于所述应用在所述第一实例运行所使用的数据源在所述第二实例运行所述应用。
29.根据权利要求27或28所述的云管理节点,其特征在于,若所述应用存在运行状态,所述生命周期管理模块具体用于:
指示所述第二计算机设备获取所述应用在所述第一实例运行的运行状态,并基于获取的所述运行状态在所述第二实例运行所述应用。
30.根据权利要求26至28任一项所述的云管理节点,其特征在于,所述应用为数据库,所述虚拟化技术分析模块还用于:
根据所述实时监控信息确定所述数据库处于空闲状态;
确定将所述应用从所述第一实例迁移到所述第二实例,所述第二实例通过容器创建方式创建。
CN201680001211.4A 2016-02-25 2016-02-25 用于应用自动化部署的方法和云管理节点 Active CN107431696B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2016/074516 WO2017143548A1 (zh) 2016-02-25 2016-02-25 用于应用自动化部署的方法和云管理节点

Publications (2)

Publication Number Publication Date
CN107431696A CN107431696A (zh) 2017-12-01
CN107431696B true CN107431696B (zh) 2020-04-21

Family

ID=59684826

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680001211.4A Active CN107431696B (zh) 2016-02-25 2016-02-25 用于应用自动化部署的方法和云管理节点

Country Status (6)

Country Link
US (1) US10824408B2 (zh)
EP (1) EP3364623B1 (zh)
JP (1) JP6770073B2 (zh)
CN (1) CN107431696B (zh)
SG (1) SG11201804089PA (zh)
WO (1) WO2017143548A1 (zh)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10585693B2 (en) * 2016-09-30 2020-03-10 Uchicago Argonne, Llc Systems and methods for metric driven deployments to cloud service providers
US10893000B2 (en) 2017-11-21 2021-01-12 International Business Machines Corporation Diagonal scaling of resource allocations and application instances in a distributed computing environment
US10812407B2 (en) * 2017-11-21 2020-10-20 International Business Machines Corporation Automatic diagonal scaling of workloads in a distributed computing environment
US10887250B2 (en) 2017-11-21 2021-01-05 International Business Machines Corporation Reducing resource allocations and application instances in diagonal scaling in a distributed computing environment
US10635501B2 (en) 2017-11-21 2020-04-28 International Business Machines Corporation Adaptive scaling of workloads in a distributed computing environment
US10733015B2 (en) 2017-11-21 2020-08-04 International Business Machines Corporation Prioritizing applications for diagonal scaling in a distributed computing environment
US10721179B2 (en) 2017-11-21 2020-07-21 International Business Machines Corporation Adaptive resource allocation operations based on historical data in a distributed computing environment
CN108052385A (zh) * 2017-12-29 2018-05-18 亿企赢网络科技有限公司 一种容器管理方法、系统、设备及计算机存储介质
CN108762768B (zh) * 2018-05-17 2021-05-18 烽火通信科技股份有限公司 网络服务智能化部署方法及系统
CN108881390A (zh) * 2018-05-18 2018-11-23 深圳壹账通智能科技有限公司 电子账户服务的云端平台部署方法、装置及设备
CN110830759B (zh) * 2018-08-09 2021-09-07 华为技术有限公司 智能应用部署的方法、装置和系统
US10999163B2 (en) * 2018-08-14 2021-05-04 Juniper Networks, Inc. Multi-cloud virtual computing environment provisioning using a high-level topology description
US11394617B2 (en) 2018-10-09 2022-07-19 Hewlett Packard Enterprise Development Lp Virtualized network functions
CN110196731B (zh) * 2018-10-29 2021-05-11 腾讯科技(深圳)有限公司 一种运维系统、方法及存储介质
CN109617954B (zh) * 2018-11-29 2021-07-30 郑州云海信息技术有限公司 一种创建云主机的方法和装置
CN111435936B (zh) * 2018-12-25 2023-06-02 北京嘀嘀无限科技发展有限公司 云主机创建方法、装置、服务器及计算机可读存储介质
US10999362B1 (en) * 2019-01-14 2021-05-04 Parallels International Gmbh Seamless switching of terminal servers in remote-access computing environments
CN111722906A (zh) * 2019-03-22 2020-09-29 华为技术有限公司 一种部署虚拟机和容器的方法及装置
CN109992354B (zh) * 2019-04-09 2021-02-19 腾讯科技(深圳)有限公司 容器处理方法、装置、主体服务器、系统和存储介质
CN110633128A (zh) * 2019-08-14 2019-12-31 广西电网电力调度控制中心 一种基于Docker和Ceph的云平台电力系统分析计算方法
CN111090437B (zh) * 2019-11-19 2024-03-12 平安科技(深圳)有限公司 应用部署方法、装置及计算机可读存储介质
CN111131486B (zh) * 2019-12-30 2023-04-07 北京三快在线科技有限公司 执行节点的负载调节方法、装置、服务器及存储介质
CN111399855B (zh) * 2020-03-09 2023-10-20 山东省电子口岸有限公司 一种基于容器技术的自动化应用实例发布方法
CN111427664B (zh) * 2020-03-25 2024-04-12 杭州电子科技大学 基于容器的协议解析方法、装置、系统以及存储介质
CN111610989B (zh) * 2020-06-17 2023-09-29 中国人民解放军国防科技大学 一种面向离线容器云环境的应用发布/更新方法及系统
US20230065950A1 (en) * 2021-08-31 2023-03-02 Dell Products L.P. System and Method for Secure Application Domain on Bare Metal Information Handling System
CN114040378B (zh) * 2021-11-20 2024-01-30 京信网络系统股份有限公司 应用的编排方法、装置、计算机设备和存储介质
CN115277862B (zh) * 2022-06-21 2024-08-13 阿里巴巴(中国)有限公司 基于容器的资源调度方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013184134A1 (en) * 2012-06-08 2013-12-12 Hewlett-Packard Development Company, L.P. Cloud application deployment
CN103605570A (zh) * 2013-11-18 2014-02-26 浪潮(北京)电子信息产业有限公司 一种基于虚拟机模板自动部署应用的方法及系统
CN103916378A (zh) * 2012-12-28 2014-07-09 中国电信股份有限公司 应用系统在云资源池中自动部署的系统和方法
CN104253831A (zh) * 2013-06-26 2014-12-31 国际商业机器公司 一种用于在云计算环境中部署应用的方法和系统
CN104281496A (zh) * 2014-10-27 2015-01-14 深圳中兴网信科技有限公司 虚拟资源的分配方法及分配装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8543636B1 (en) * 2005-04-01 2013-09-24 Sprint Communications Company L.P. System migration using hardware virtualization
BRPI0822147A2 (pt) * 2008-01-31 2015-06-30 Adaptive Computing Entpr Inc Sistema e método para controlar um ambiente híbrido de cálculo
WO2013016584A1 (en) 2011-07-26 2013-01-31 Nebula, Inc. Systems and methods for implementing cloud computing
US9639402B2 (en) 2011-08-05 2017-05-02 Oracle International Corporation Systems and methods for automatic hardware provisioning based on application characteristics
CN102622264A (zh) 2012-02-24 2012-08-01 北京华胜天成科技股份有限公司 一种云计算中多虚拟化计算平台方法
US9712402B2 (en) * 2012-10-10 2017-07-18 Alcatel Lucent Method and apparatus for automated deployment of geographically distributed applications within a cloud
US9495195B2 (en) 2013-10-04 2016-11-15 Hitachi, Ltd. Resource migration between virtual containers based on utilization rate and performance degradation
US9558005B2 (en) * 2014-05-19 2017-01-31 Intel Corporation Reliable and deterministic live migration of virtual machines
WO2016167086A1 (ja) * 2015-04-17 2016-10-20 日本電信電話株式会社 サーバ選択装置、サーバ選択方法及びサーバ選択プログラム
US20170060609A1 (en) * 2015-08-28 2017-03-02 International Business Machines Corporation Managing a shared pool of configurable computing resources which has a set of containers

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013184134A1 (en) * 2012-06-08 2013-12-12 Hewlett-Packard Development Company, L.P. Cloud application deployment
CN104335170A (zh) * 2012-06-08 2015-02-04 惠普发展公司,有限责任合伙企业 云应用部署
CN103916378A (zh) * 2012-12-28 2014-07-09 中国电信股份有限公司 应用系统在云资源池中自动部署的系统和方法
CN104253831A (zh) * 2013-06-26 2014-12-31 国际商业机器公司 一种用于在云计算环境中部署应用的方法和系统
CN103605570A (zh) * 2013-11-18 2014-02-26 浪潮(北京)电子信息产业有限公司 一种基于虚拟机模板自动部署应用的方法及系统
CN104281496A (zh) * 2014-10-27 2015-01-14 深圳中兴网信科技有限公司 虚拟资源的分配方法及分配装置

Also Published As

Publication number Publication date
EP3364623B1 (en) 2022-05-04
EP3364623A1 (en) 2018-08-22
SG11201804089PA (en) 2018-06-28
US10824408B2 (en) 2020-11-03
CN107431696A (zh) 2017-12-01
JP6770073B2 (ja) 2020-10-14
EP3364623A4 (en) 2018-08-22
JP2019503535A (ja) 2019-02-07
US20180300116A1 (en) 2018-10-18
WO2017143548A1 (zh) 2017-08-31

Similar Documents

Publication Publication Date Title
CN107431696B (zh) 用于应用自动化部署的方法和云管理节点
US10977086B2 (en) Workload placement and balancing within a containerized infrastructure
US20210141655A1 (en) Unified resource management for containers and virtual machines
US9690829B2 (en) Dynamic load balancing during distributed query processing using query operator motion
US9477511B2 (en) Task-based modeling for parallel data integration
US9471651B2 (en) Adjustment of map reduce execution
US9535754B1 (en) Dynamic provisioning of computing resources
US9785507B2 (en) Restoration of consistent regions within a streaming environment
CN115373835A (zh) Flink集群的任务资源调整方法、装置及电子设备
US20140282540A1 (en) Performant host selection for virtualization centers
US10362097B1 (en) Processing an operation with a plurality of processing steps
Kjorveziroski et al. Kubernetes distributions for the edge: serverless performance evaluation
US10866838B2 (en) Cluster computing service assurance apparatus and method
US20170185503A1 (en) Method and system for recommending application parameter setting and system specification setting in distributed computation
CN109739634A (zh) 一种原子任务执行方法及装置
US9128754B2 (en) Resource starvation management in a computer system
Harichane et al. KubeSC‐RTP: Smart scheduler for Kubernetes platform on CPU‐GPU heterogeneous systems
US11561843B2 (en) Automated performance tuning using workload profiling in a distributed computing environment
WO2016020731A1 (en) Component high availability scheduler
US20220229689A1 (en) Virtualization platform control device, virtualization platform control method, and virtualization platform control program
US11726758B2 (en) Efficient scaling of a container-based application in a distributed computing system
US20220374267A1 (en) Cloud infrastructure recommendations to deploy pods
CN110515701B (zh) 一种虚拟机的热迁移方法及装置
US20140215473A1 (en) Objectives of operations executing across environments
CN115145714B (zh) 容器实例的调度方法、装置和系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant