iManager如何使用Serverless

作者:John

iManager如何使用Serverless

  • 1、部署Serverless环境
    • 1.1 部署Serverless基础环境
    • 1.2 iManager启用Serverless函数
  • 2、使用Serverless函数
    • 2.1 空间分析函数
    • 2.2 地理处理自动化(GPA)
    • 2.3 分布式切图

      iManager11.0.0新增函数功能,GIS云套件空间分析任务和地理处理自动化任务新增支持以函数,11.1.0 GIS云套件切图功能新增支持以函数方式运行(仅支持工作空间数据源切成栅格和矢量瓦片),下面本文就带着大伙儿在iManager中逐个使用这些功能。

1、部署Serverless环境

1.1 部署Serverless基础环境

      SuperMap工具包中有提供serverless依赖包,具体安装说明详见iManager帮助文档部署Serverless基础环境去安装部署,对于部署Serverless环境本文就不在做多余的介绍了,安装完成之后会生成异步函数所需环境dapr和keda,同步函数所需环境knative,具体如下图。
iManager如何使用Serverless_第1张图片
注意:部署Serverless环境需要确保Kubernetes环境版本为1.17以上

1.2 iManager启用Serverless函数

      iManager默认是关闭掉Serverless函数的,具体将values.yaml的deploy_async_function_enabled 和 deploy_sync_function_enabled设置成true,参数说明如下:

# 选填,是否启用无服务器(Serverless)异步调用函数,系统有Dapr环境时可启用。取值范围:[true|false]。默认为空;
 # true:启用无服务器异步函数;
 # false:禁用无服务器异步函数;
 # 如果该配置为空,系统会根据用户环境自动识别并填充。
 deploy_async_function_enabled: 

 # 选填,是否启用无服务器(Serverless)同步调用函数,系统有Knative环境时可启用。取值范围:[true|false]。默认为空;
 # true:启用无服务器同步函数;
 # false:禁用无服务器同步函数;
 # 如果该配置为空,系统会根据用户环境自动识别并填充。
 deploy_sync_function_enabled:

2、使用Serverless函数

      SuperMap云套件11.0.0新增函数功能,GIS云套件空间分析任务和地理处理自动化任务新增支持以函数,SuperMap云套件11.1.0分布式切图功能新增支持以函数方式运行(仅支持工作空间数据源切成栅格和矢量瓦片)。这些函数在使用与之前调用一样,只是响应的任务执行时才会去拉起相应的pod,当任务执行完成之后这些pod就会自动释放掉。其有以下优势:

  1. 极速弹性:代码的执行不再需要手动分配资源,根据负载自动弹性伸缩,伸缩范围从0到N。基于流量自动弹性伸缩,相比基于CPU和内存指标的伸缩更加灵敏;
  2. 按需付费:事件驱动运行,不运行时不占用服务器资源。在公有云环境下,只需要为每次函数的运行付费;
  3. 简化运维:不需要管理服务器主机或者服务器进程。事件驱动、按需启动,在没有请求的时候,函数自动伸缩为0,不占资源

2.1 空间分析函数

      开启Serverless函数之后,云套件站点会新增11个未拉起(状态0/0)的空间分析服务,这些就是由空间分析任务拆解成一个个的可独立按需执行函数。本文就以postgres数据源的缓冲区为例展示。
      注意:要想使用Serverless函数其数据数据源必须是数据库型数据源

      调用缓冲区分析前:
iManager如何使用Serverless_第2张图片
iManager如何使用Serverless_第3张图片
      调用缓冲区分析:
      函数调用与之前的方式一致,只是在创建任务之后会去拉启相应函数。本文使用jmeter工具进行并发测试,测试接口参数如下:
iManager如何使用Serverless_第4张图片

      调用空间分析的Serverless函数时云套件站点服列表显示:
iManager如何使用Serverless_第5张图片
      调用空间分析的Serverless函数时云套件站点拓扑图显示:
iManager如何使用Serverless_第6张图片

      修改最大副本和并发数
      单个函数默认拉起的副本数最大为6个,支持的最大并发请求数默认为10个,对于并发量较大的场景也可以通过修改编排env中的HTTP_REQUEST_MAX_COUNT和spec中的maxReplicaCount去修改最大并发请求数和最大副本数。
       k8s iManager 云套件站点修改buff函数的最大副本数
iManager如何使用Serverless_第7张图片
       k8s iManager 云套件站点修改buff函数的最大并发请求数
iManager如何使用Serverless_第8张图片

2.2 地理处理自动化(GPA)

      开启Serverless函数之后,还需要在云套件站点启用处理自动化服务启动以函数方式按需运行,GPA中才会使用Serverless函数方式运行,且在云套件站点管理会有0/0“geoprocessing serverless 服务”。本文以创建缓冲区模型展示。
      注意:要想使用Serverless函数其数据数据源必须是数据库型数据源
      开启GPA以函数方式运行
iManager如何使用Serverless_第9张图片
iManager如何使用Serverless_第10张图片
      GPA模型
iManager如何使用Serverless_第11张图片

      使用REST API调用GPA创建缓冲区模型:
      其使用方式与经典版的一致,只是在创建任务之后会去拉启相应函数。本文使用jmeter工具进行并发测试,测试接口参数如下:
iManager如何使用Serverless_第12张图片
iManager如何使用Serverless_第13张图片
iManager如何使用Serverless_第14张图片
      修改地理处理自动化函数iserver-geoprocessing-worker最大副本和并发数,与2.2.1章节中“buff函数修改最大副本和并发数”处理方式一致,在此就不再过多介绍。

2.3 分布式切图

      开启Serverless函数之后,在云套件站点启用分布式切图服务中,还需要启动以函数方式按需运行,GPA中才会使用Serverless函数方式运行,且在云套件站点管理会新增iserver-tile-splitter(拆分切图任务服务 )和iserver-tile-worker(生产切片服务 )两个服务。
      注意:分布式切图仅支持工作空间rest-map服务
      开启分布式切图
iManager如何使用Serverless_第15张图片

iManager如何使用Serverless_第16张图片
      创建分布式切图任务

      创建分布式切图任务之后,会拉起iserver-tile-splitter拆分切图任务和iserver-tile-worker切图工作节点。

iManager如何使用Serverless_第17张图片
iManager如何使用Serverless_第18张图片
      切图任务详情
iManager如何使用Serverless_第19张图片
      完成切图任务
iManager如何使用Serverless_第20张图片

      修改分布式切图函数iserver-tile-worker最大副本和并发数,也与2.2.1章节中“buff函数修改最大副本和并发数”处理方式一致,在此就不再过多介绍。
      由上功能介绍使用可见,其在使用上与之前无异,只是内部调用过程存在差异。

你可能感兴趣的:(云GIS,serverless,云GIS)