基于容器的应用管理方法和装置制造方法及图纸

技术编号:29788884 阅读:12 留言:0更新日期:2021-08-24 18:07
公开了一种基于容器的应用管理方法和装置。配置基于容器实现的无服务器计算系统,以使得允许应用实例在运行时处于在线状态和低功耗状态之一。响应于对应用执行缩容处理,使应用的至少一个在线状态的第一应用实例进入低功耗状态;以及响应于对应用执行扩容处理,使应用的至少一个低功耗状态的第二应用实例进入在线状态。由此,能够在降低应用实例成本的同时,对应用实例进行快速弹性伸缩。

【技术实现步骤摘要】
基于容器的应用管理方法和装置
本公开涉及一种无服务器计算领域,特别涉及基于容器的应用管理方案。
技术介绍
在云计算场景中,无服务器计算(Serverless)是一种模式,使应用开发人员能专注于他们的核心产品,而无需关心应用程序在本地或云端的服务器运行状态。在无服务器(Serverless)计算领域的自动扩缩容场景中,应用程序的弹性时间,即应用程序实现弹性伸缩所需要的时间,是一个非常重要的指标。特别是在云计算场景中,需要根据应用程序的实时流量对应用实例进行弹性伸缩。如果一个应用的弹性时间过长,将导致调度平台无法灵活快速地对实例进行扩容和缩容。或者,扩容和缩容的流量监测需要经过很长的时间才能保证缩容对服务没有影响,从而导致计算资源被浪费。在扩容时,需要实现实例的快速启动。目前部分系统或者环境下为了实现实例的快速启动,主要有下面两种方案。一种方案是借助应用架构,使用分叉(Fork)或者克隆(Clone)技术来创建新的进程,从而加速应用冷启动。以安卓(Android)移动操作系统为例,其系统中应用启动普遍使用的受精卵(Zygote)框架,其它运行实例的创建均是通过从受精卵(Zygote)主进程分叉(Fork)而来。尽可能在分叉(Fork)之前加载应用所依赖的相同服务,从而达到应用快速启动。基于Zygote模型的应用架构的扩容方案非常依赖这种应用架构。对于存量应用,需要对应用架构进行大幅调整。因此,这种方案不适用于存量应用。而且,通常而言,应用冷启动的耗时较长,也无法满足快速扩容的要求。另一种方案是利用检查点/恢复(Checkpoint/Restore)快照技术。应用启动之后制作成快照。应用要扩容的时候,利用已经制作好的快照,来加速应用的启动过程。快照方案通常又有两种。一种是快照复制方案,针对一个应用只制作一个快照。利用该快照来创建所有的应用实例。使用这种快照复制方式,如果制作快照的时候,应用中存在一些持久化状态信息,例如UUID信息等,那么所生成的多个实例就会在正确性和安全性存在问题。另一种是一对一快照方式,一个应用实例对应于一个快照,一个快照用于恢复一个应用实例。这种快照方式需要提前启动应用实例,然后针对已启动的应用实例制作快照予以存储。需要恢复该应用实例的时候再恢复对应的快照。因此,这种方案的快照管理和存储的成本较高。而且,快照制作过程中可能会和具体的机器特征绑定,导致后续的快照恢复仍然需要在具有所绑定的机器特征的机器上进行,不能在其它环境进行。因此,快照不通用。另外,一对一快照方式还存在时间状态问题。例如,对于一些依赖于实际时间的应用,制作快照时会依赖于当时的时间;恢复快照时也会同时恢复制作快照时的时间。这样,应用逻辑可能会受时间影响而导致发生执行逻辑错误。换言之,在现有技术中,在无服务器计算领域,应用的弹性扩容和缩容能力尚不能够满足日益增长的应用弹性需求。因此,仍然需要一种能够例如随着应用程序的流量变化而对应用实例进行快速弹性伸缩的方案。
技术实现思路
本公开要解决的一个技术问题是提供一种基于容器的应用管理方法和装置,其能够在降低应用实例成本的同时,对应用实例进行快速弹性伸缩。根据本公开的第一个方面,提供了一种基于容器的应用管理方法,包括:配置基于容器实现的无服务器计算系统,以使得允许应用实例在运行时处于在线状态和低功耗状态之一,其中,应用实例在低功耗状态下的功耗和/或资源消耗低于在线状态下的功耗和/或资源消耗;响应于对应用执行缩容处理,使应用的至少一个在线状态的第一应用实例进入低功耗状态;以及响应于对应用执行扩容处理,使应用的至少一个低功耗状态的第二应用实例进入在线状态。可选地,使应用的至少一个在线状态的第一应用实例进入低功耗状态的步骤包括:限制至少一个第一应用实例的资源使用额度;以及降低至少一个第一应用实例各自所在容器的资源配置,并且/或者,使应用的至少一个低功耗状态的第二应用实例进入在线状态的步骤包括:提升至少一个第二应用实例各自所在容器的资源配置;以及解除至少一个第二应用实例的资源使用额度限制。可选地,使应用的至少一个低功耗状态的第二应用实例进入在线状态的步骤包括:优先选择使容器所在节点中资源相对空闲的机器上的容器中的第二应用实例进入在线状态。可选地,该方法还可以包括:在应用实例将要进入在线状态而其所在节点上资源不足的情况下,基于用户态的检查点恢复(CRIU)技术的实时迁移功能,将应用实例迁移到相对空闲的节点上;以及/或者在同一个节点上具有多个低功耗状态的应用实例的情况下,基于用户态的检查点恢复(CRIU)技术,将一个或多个应用实例做成检查点快照,然后基于检查点快照在相对空闲的节点上恢复一个或多个应用实例。可选地,基于控制组机制来限制应用实例的资源使用额度或解除限制;并且/或者在降低容器的资源配置时,基于容器荚资源原地升级机制,将应用实例所在容器所释放的资源归还给调度系统;以及/或者在提升容器的资源配置时,基于容器荚资源原地升级机制,从调度系统为容器申请资源。可选地,使至少一个第一应用实例进入低功耗状态的步骤包括:基于CPU共享功能,将多个第一应用实例加入低功耗规格的CPU组中运行,低功耗规格的CPU组中的应用实例共享CPU;并且/或者使至少一个第二应用实例进入在线状态的步骤包括:使第二应用实例退出低功耗规格的CPU组。可选地,使至少一个第一应用实例进入低功耗状态的步骤包括:使至少一个第一应用实例所占用的内存空间处于内存中的低功耗实例内存范围中;并且/或者使至少一个第二应用实例进入在线状态的步骤包括:使至少一个第二应用实例所占用的内存空间处于内存中的低功耗实例内存范围之外。可选地,低功耗实例内存范围是内存中周期性内存管理操作在内存中的执行范围之外的范围。可选地,周期性内存管理操作包括内存垃圾回收操作和/或释放预定期限内未曾使用过的内存的内存释放操作。可选地,该方法还可以包括:响应于范围调整指令,调整执行范围和/或执行范围的大小;以及/或者在占用内存空间的第一应用实例进入低功耗状态的情况下,设置执行范围不包括第一应用实例所占用的内存空间;以及/或者在占用内存空间的第一应用实例进入在线状态的情况下,设置执行范围包括第一应用实例所占用的内存空间。可选地,使至少一个第一应用实例进入低功耗状态的步骤可以包括:关闭第一应用实例所使用的部分资源或降低部分资源的使用量,仅保留第一应用实例所使用的部分系统资源。可选地,该方法还可以包括:使一个或多个低功耗状态的应用实例的内存数据在内存和存储设备之间转移。可选地,使一个或多个低功耗应用实例的内存数据在内存和存储设备之间转移的步骤包括:使用系统内核态的内存交换功能,使一个或多个低功耗应用实例的内存数据在内存和存储设备之间转移;以及/或者使用用户态的内存交换功能,使一个或多个低功耗应用实例的内存数据在内存和存储设备之间转移,并且将来自不同容器的内存数据转移到不同的存储本文档来自技高网
...

【技术保护点】
1.一种基于容器的应用管理方法,包括:/n配置基于容器实现的无服务器计算系统,以使得允许应用实例在运行时处于在线状态和低功耗状态之一,其中,应用实例在低功耗状态下的功耗和/或资源消耗低于在线状态下的功耗和/或资源消耗;/n响应于对应用执行缩容处理,使所述应用的至少一个在线状态的第一应用实例进入低功耗状态;以及/n响应于对应用执行扩容处理,使所述应用的至少一个低功耗状态的第二应用实例进入在线状态。/n

【技术特征摘要】
1.一种基于容器的应用管理方法,包括:
配置基于容器实现的无服务器计算系统,以使得允许应用实例在运行时处于在线状态和低功耗状态之一,其中,应用实例在低功耗状态下的功耗和/或资源消耗低于在线状态下的功耗和/或资源消耗;
响应于对应用执行缩容处理,使所述应用的至少一个在线状态的第一应用实例进入低功耗状态;以及
响应于对应用执行扩容处理,使所述应用的至少一个低功耗状态的第二应用实例进入在线状态。


2.根据权利要求1所述的方法,其中,
使所述应用的至少一个在线状态的第一应用实例进入低功耗状态的步骤包括:
限制所述至少一个第一应用实例的资源使用额度;以及
降低所述至少一个第一应用实例各自所在容器的资源配置,
并且/或者,使所述应用的至少一个低功耗状态的第二应用实例进入在线状态的步骤包括:
提升所述至少一个第二应用实例各自所在容器的资源配置;以及
解除所述至少一个第二应用实例的资源使用额度限制。


3.根据权利要求2所述的方法,其中,使所述应用的至少一个低功耗状态的第二应用实例进入在线状态的步骤包括:
优先选择使容器所在节点中资源相对空闲的机器上的容器中的第二应用实例进入在线状态。


4.根据权利要求2所述的方法,还包括:
在应用实例将要进入在线状态而其所在节点上资源不足的情况下,基于用户态的检查点恢复(CRIU)技术的实时迁移功能,将所述应用实例迁移到相对空闲的节点上;以及/或者
在同一个节点上具有多个低功耗状态的应用实例的情况下,基于用户态的检查点恢复(CRIU)技术,将一个或多个所述应用实例做成检查点快照,然后基于所述检查点快照在相对空闲的节点上恢复所述一个或多个应用实例。


5.根据权利要求2所述的方法,其中,
基于控制组机制来限制应用实例的资源使用额度或解除所述限制;并且/或者
在降低容器的资源配置时,基于容器荚资源原地升级机制,将所述应用实例所在容器所释放的资源归还给调度系统;以及/或者
在提升容器的资源配置时,基于容器荚资源原地升级机制,从调度系统为所述容器申请资源。


6.根据权利要求1所述的方法,其中,
使所述至少一个第一应用实例进入低功耗状态的步骤包括:基于CPU共享功能,将多个所述第一应用实例加入低功耗规格的CPU组中运行,所述低功耗规格的CPU组中的应用实例共享CPU;并且/或者
使所述至少一个第二应用实例进入在线状态的步骤包括:使第二应用实例退出所述低功耗规格的CPU组。


7.根据权利要求1所述的方法,其中,
使所述至少一个第一应用实例进入低功耗状态的步骤包括:使所述至少一个第一应用实例所占用的内存空间处于内存中的低功耗实例内存范围中;并且/或者
使所述至少一个第二应用实例进入在线状态的步骤包括:使所述至少一个第二应用实例所占用的内存空间处于内存中的低功耗实例内存范围之外。


8.根据权利要求7所述的方法,其中,所述低功耗实例内存范围是内存中周期性内存管理操作在内存中的执行范围之外的范围。


9.根据权利要求8所述的方法,其中,所述周期性内存管理操作包括内存垃圾回收操作和/或释放预定期限内未曾使用过的内存的内存释放操作。


10.根据权利要求8所述的方法,还包括:
响应于范围调整指令,调整所述执行范围和/或所述执行范围的大小;以及/或者
在占用内存空间的第一应用实例进入低功耗状态的情况下,设置所述执行范围不包括所述第一应用实例所占用的内存空间;以及/或者
在占用内存空间的第一应用实例进入在线状态的情况下,设置所述执行范围包括所述第一应用实例所占用的内存空间。


11.根据权利要求1所述的方法,其中,使所述至少一个第一应用实例进入低功耗状态的步骤包括:
关闭第一应用实例所使用的部分资源或降低所述部分资源的使用量,仅保留第一应用实例所使用的部分系统资源。


12.根据权利要求1所述的方法,还包括:
使一个或多个低功耗状态的应用实例的内存数据在内存和存储设备之间转移。


13.根据权利要求12所述的方法,其中,使一个...

【专利技术属性】
技术研发人员:史明伟周新宇许晓斌聂诗超詹洲翔王川
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛;KY

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

1