【技术实现步骤摘要】
基于容器的应用管理方法和装置
本公开涉及一种无服务器计算领域,特别涉及基于容器的应用管理方案。
技术介绍
在云计算场景中,无服务器计算(Serverless)是一种模式,使应用开发人员能专注于他们的核心产品,而无需关心应用程序在本地或云端的服务器运行状态。在无服务器(Serverless)计算领域的自动扩缩容场景中,应用程序的弹性时间,即应用程序实现弹性伸缩所需要的时间,是一个非常重要的指标。特别是在云计算场景中,需要根据应用程序的实时流量对应用实例进行弹性伸缩。如果一个应用的弹性时间过长,将导致调度平台无法灵活快速地对实例进行扩容和缩容。或者,扩容和缩容的流量监测需要经过很长的时间才能保证缩容对服务没有影响,从而导致计算资源被浪费。在扩容时,需要实现实例的快速启动。目前部分系统或者环境下为了实现实例的快速启动,主要有下面两种方案。一种方案是借助应用架构,使用分叉(Fork)或者克隆(Clone)技术来创建新的进程,从而加速应用冷启动。以安卓(Android)移动操作系统为例,其系统中应用启动普遍使用的受精卵(Zygote)框架,其它运行实例的创建均是通过从受精卵(Zygote)主进程分叉(Fork)而来。尽可能在分叉(Fork)之前加载应用所依赖的相同服务,从而达到应用快速启动。基于Zygote模型的应用架构的扩容方案非常依赖这种应用架构。对于存量应用,需要对应用架构进行大幅调整。因此,这种方案不适用于存量应用。而且,通常而言,应用冷启动的耗时较长,也无法满足快速扩容 ...
【技术保护点】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。