技术新讯 > 计算推算,计数设备的制造及其应用技术 > 应用组件管理方法、装置、设备、存储介质和程序产品与流程  >  正文

应用组件管理方法、装置、设备、存储介质和程序产品与流程

  • 国知局
  • 2024-07-31 22:48:42

本技术涉及云计算,特别是涉及一种应用组件管理方法、装置、计算机设备、存储介质和计算机程序产品。

背景技术:

1、serverless计算主要通过faas(function as a service)范式而实现,例如awslambda、google cloud functions和azure functions等。这些服务允许开发者编写独立的功能serverless函数(也成为云函数,或简称函数),并直接在云中执行。这些函数可以根据需要进行扩展,并且可实现pay-as-you-go的细粒度按量付费模式。

2、然而,传统的serverless计算服务仅能为每个serverless函数的开发提供特定、单一的运行时环境,这意味着开发者只能面向一个经封装的运行时环境编写和执行代码。例如,aws lambda支持node.js、python、java、go等,每个函数需要针对其中一种语言选择特定开发模板,并在模板中开发编写程序。这限制了开发者的灵活性,其无法在同一环境中使用多种语言或工具。

技术实现思路

1、基于此,有必要针对上述技术问题,提供一种能够在同一环境中使用多种语言或工具的应用组件管理方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。

2、第一方面,本技术提供一种应用组件管理方法,所述方法包括:

3、当所述应用组件被打包时,对所述应用组件的组件源码进行扫描,得到标识关键词以及所述标识关键词的命中次数;

4、确定与所述标识关键词对应的初始运行时组件,并基于所述初始运行时组件确定各所述标识关键词对应的权重,基于各所述权重以及所述标识关键词的命中次数,得到所述初始运行时组件的依赖概率;

5、基于所述依赖概率对所述初始运行时组件进行筛选,得到目标运行时组件;

6、对所述应用组件进行打包得到组件镜像,对各所述目标运行时组件进行打包得到运行时镜像,并将所述组件镜像和所述运行时镜像组合。

7、在其中一个实施例中,所述方法还包括:

8、确定各所述应用组件所依赖的运行时组件的类型;

9、基于所述运行时组件的类型设置各个所述运行时组件的标识关键词库,并为所述标识关键词库中各所述标识关键词设置对应的权重;

10、所述对所述应用组件的组件源码进行扫描,得到标识关键词,包括:

11、基于所述标识关键词库对所述应用组件的组件源码进行扫描,得到标识关键词。

12、在其中一个实施例中,所述基于所述依赖概率对所述初始运行时组件进行筛选,得到目标运行时组件之后,还包括:

13、基于所述目标运行时组件得到运行时组件依赖集合,并在所述应用组件对应的记录文件中进行标识;

14、所述对各所述目标运行时组件进行打包得到运行时镜像,包括:

15、当至少两个所述目标运行时组件在同一个容器中部署时,基于所述目标运行时组件的依赖关系,将关联的所述目标运行时组件打包至一个运行时镜像中;

16、当各所述目标运行时组件独立部署时,将各所述目标运行时组件打包至对应的运行时镜像中。

17、在其中一个实施例中,所述方法还包括:

18、当所述应用组件需要被初始启动时,基于运行时组件依赖集合确定与所述应用组件对应的目标运行时组件;

19、通过运行时组件缓存方式和运行时组件预加载方式中的至少一个,加载与所述应用组件对应的目标运行时组件镜像对应的目标运行组件容器以及组件镜像对应的组件容器。

20、在其中一个实施例中,所述运行时组件缓存方式包括:

21、确定可维护的运行时组件的目标数量;

22、确定所述目标数量的运行时组件,并将所确定的所述目标数量的运行时组件缓存至模块池中;

23、当所述应用组件启动时,从所述模块池中加载已实例化的目标运行时组件的副本;

24、当所述应用组件实例进行回收时,将对应的实例化的目标运行时组件归还至所述模块池或在所述模块池中重启动对应的目标运行时组件。

25、在其中一个实施例中,所述确定所述目标数量的运行时组件,包括:

26、通过静态方式或动态方式确定所述目标数量的运行时组件;

27、所述通过动态方式确定所述目标数量的运行时组件,包括:

28、确定目标时间段内各所述运行时组件的依赖次数;

29、基于所述依赖次数得到各所述运行时组件的依赖概率;

30、基于所述依赖概率对所述运行时组件进行筛选,得到所述目标数量的运行时组件。

31、在其中一个实施例中,所述运行时组件预加载方式包括:

32、基于各运行时组件的历史启动时长,确定与所述应用组件对应的目标运行时组件的运行时镜像对应的运行时容器的启动时长;

33、基于组件镜像对应的组件容器的历史启动时长,得到所述组件容器与所述运行时容器不相重叠的启动时长;

34、获取与启动精度对应的容忍时长;

35、基于所述运行时镜像的启动时长、所述不相重叠的启动时长以及所述容忍时长,估计所述运行时容器的预加载时间点、所述组件容器的预加载时间点以及首个组件调用的预计时间点;

36、基于所述运行时容器的预加载时间点、所述组件容器的预加载时间点以及首个组件调用的预计时间点,依次启动对应的所述运行时容器以及所述组件容器。

37、在其中一个实施例中,所述方法还包括:

38、对承载与所述应用组件对应的目标运行时组件的运行时镜像对应的运行时容器进行活性检测;

39、当存在启动失败的所述运行时容器时,对启动失败的所述运行时容器进行重新启动。

40、在其中一个实施例中,所述方法还包括:

41、当所述应用组件为有状态计算组件时,在所述与所述应用组件对应的目标运行时组件的运行时容器以及对应的所述组件镜像对应的组件容器中注入环境变量。

42、在其中一个实施例中,所述方法还包括:

43、当接收到所述应用组件的迁移指令时,基于运行时组件依赖集合确定对应的各目标运行时组件的迁移方式;

44、基于所述迁移方式启动迁移事务,并在所述迁移事务中收集所述应用组件对应的迁移信息,基于所述迁移信息在目标节点完成运行时镜像对的运行时容器以及组件镜像对的组件容器的启动,并回收纠结点中的相应的资源。

45、在其中一个实施例中,所述基于运行时组件依赖集合确定对应的各目标运行时组件的迁移方式,包括:

46、当至少两个所述目标运行时组件在同一个容器中部署时,确定所述目标运行时组件的迁移方式为通过检查点的方式进行迁移;

47、当所述目标运行时组件为独立部署且为无状态时,确定所述目标运行时组件的迁移方式为重启动方式;

48、当所述目标运行时组件为独立部署且为有状态时,确定所述目标运行时组件的迁移方式为通过检查点的方式进行迁移。

49、第二方面,本技术还提供一种应用组件管理装置,所述装置包括:

50、扫描模块,用于当所述应用组件被打包时,对所述应用组件的组件源码进行扫描,得到标识关键词以及所述标识关键词的命中次数;

51、依赖概率确定模块,用于确定与所述标识关键词对应的初始运行时组件,并基于所述初始运行时组件确定各所述标识关键词对应的权重,基于各所述权重以及所述标识关键词的命中次数,得到所述初始运行时组件的依赖概率;

52、模块确定模块,用于基于所述依赖概率对所述初始运行时组件进行筛选,得到目标运行时组件;

53、打包模块,用于对所述应用组件进行打包得到组件镜像,对各所述目标运行时组件进行打包得到运行时镜像,并将所述组件镜像和所述运行时镜像组合。

54、第三方面,本技术还提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述的任意一个实施例中的方法的步骤。

55、第四方面,本技术还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的任意一个实施例中的方法的步骤。

56、第五方面,本技术还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述的任意一个实施例中的方法的步骤。

57、上述应用组件管理方法、装置、计算机设备、存储介质和计算机程序产品,在应用组件被打包时,对应用组件的组件源码进行扫描,得到标识关键词以及所述标识关键词的命中次数,后续确定与标识关键词对应的初始运行时组件,并基于初始运行时组件确定各标识关键词对应的权重,基于各权重以及标识关键词的命中次数,得到初始运行时组件的依赖概率;基于依赖概率对初始运行时组件进行筛选,得到目标运行时组件;对应用组件进行打包得到组件镜像,对各目标运行时组件进行打包得到运行时镜像,并将组件镜像和运行时镜像组合,这样自动进行应用组件打包,不同的运行时组件可以加载不同的工具或通过不同的语言编写,无需利用语言运行时所提供的sdk、框架等编写和执行代码,可以使得运行时环境不仅局限于语言运行时,还可以包括通信、观测等,且自动进行应用组件打包可实现高效的serverless多运行时环境构造,尤其可减少多运行时环境对经典serverless计算带来的可能开销,此外通过运行时依赖识别技术,可以用户无感的方式提取应用组件所依赖的运行时模块,从而支撑应用组件的运行需求。

本文地址:https://www.jishuxx.com/zhuanli/20240730/194745.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。