云原生GIS 2.0之Serverless GIS技术详解
来源 本文刊登于2022年11月 总第82期《超图通讯》
Serverless GIS的名称看起来让人费解,并不是真的不需要服务器,但为什么又叫无服务器计算?Serverless GIS有什么特点和价值呢?超图研究院的同事胡中南、周世杰和王泽涛的这篇文章把这个问题讲清楚了。
文/胡中南 周世杰 王泽涛
云原生GIS经历了从0到1的起步阶段,在SuperMap GIS 2022版本中又实现了从1.0到2.0的全新进化,新增GIS服务网格、GIS无服务器计算两个关键新技术。
基于GIS服务网格技术,云原生GIS提供了服务度量、服务追踪、微服务访问控制和灰度发布四大功能,全面提升了云原生GIS的标准化流量治理和运维管理能力。
GIS无服务器计算技术,即Serverless GIS技术。它基于全新的计算模式,将GIS微服务能力进一步拆分解耦,极大提升了GIS服务系统的弹性与韧性。Serverless GIS技术相较于有服务器计算,在技术层面具有显著的进化。本篇将重点解读GIS无服务器计算技术。
无服务器计算——新一代云计算范式
2019年,UC伯克利大学的学者们从研究角度分析预测,Serverless计算将取代 Serverful传统云计算模式,成为云计算的新一代范式。其依据是IT计算模式的变化就是从Serverful计算到Serverless计算的演化。
从早期的物理服务器开始,服务器就一直在进行抽象或虚拟化,并使用虚拟化技术、云计算IaaS(Infrastructure as a Service,基础设施即服务)自动管理这些虚拟化的资源。随着容器技术出现,容器化CaaS(Containers as a Service,容器即服务)可实现更轻量、更易用的虚拟化和自动化。然而这些只是从管理物理服务器到管理虚拟服务器,使用时仍需关心幕后的服务器资源分配,即使未使用程序,也需要为资源付费。
以一个传统Serverful应用为例,包括业务数据、业务逻辑、服务接口、WebApp四层。为部署该应用,我们需要用一个服务器将其CPU、内存等作为计算资源,并支撑其上的操作系统、数据库、中间件等,再部署相应的业务数据、业务逻辑等模块。基于容器技术,上述部署工作可实现轻量化、自动化,但在概念模型上仍以服务器计算资源作为基础。
Serverful应用技术架构
在Serverless计算支撑的应用技术架构中,系统四层模块都可以单独部署到可直接使用的云服务中:业务数据可部署到数据库服务中;业务逻辑执行部署到函数计算服务中;服务接口可部署到API网关服务上,以响应动态内容的请求;静态的WebApp包则部署在对象存储服务上。Web浏览器首先从对象存储中获取到应用页面本身,再发起动态请求给API网关,网关服务接口去动态地调用函数计算中的业务逻辑,业务逻辑通过调用数据库服务来读写业务数据。此过程使用了一系列云服务并仅在使用时才计费,其中,承载业务逻辑的函数计算服务是FaaS(Function as a Service,函数即服务),为其他模块提供的服务被统称为BaaS(Backend as a Service,后端即服务)。
Serverless应用技术架构
上述是云计算服务商提供的两类服务,以代替服务器的作用。其中的关键服务是FaaS,它是一种新的算力组织和提供方式,应用的业务逻辑被拆解为一个或多个细粒度的函数,这些函数按需执行、伸缩和计费。其中FaaS可以认为是按需供给、可自动伸缩的弹性CPU算力,用来加载和执行业务逻辑。另一类服务是BaaS,指的是函数执行所需要的通用的后端服务,包括数据库/对象存储、账户鉴权、消息队列等,这些服务由FaaS中的函数来按需调用。开发者不需要考虑它们是如何部署运行的,只需要按使用量付费。所以对开发人员表现为Serverless。
Serverless云服务 = FaaS/函数即服务 + BaaS/后端即服务
那么Serverless架构对开发者意味着什么呢?现在是互联网分布式计算时代,我们除了写出算法、读写数据,还需要考虑如何分布式部署、如何应对系统高峰时期的大并发请求;我们以AI人工智能为例,它有三个基础:算法、数据和算力。在Serverful架构中,算力由IaaS提供,算法和数据都要自行部署上去并调度管理来应对峰谷流量变化。而在Serverless架构中,算法所需要的算力由FaaS提供,算法可以解耦成多个更细粒度的函数。数据也解耦,可以按需存储,相应的算力管理由BaaS提供。Serverless计算尤其是FaaS函数计算,简化了计算资源的供给,极大提升了开发者的生产力,可以看作是云计算编程模型从汇编语言进化到高级语言。
Serverless架构极大提升开发者的生产力
基于上述分析,Serverless无服务器计算可被定义为一种新的云计算模型,允许开发人员在构建和运行应用程序时,无需关心或管理服务器等基础设施。其特征可以归纳为:资源的解耦和服务化、自动弹性伸缩、按使用量计费等;相应带来的优势有:低运维、低成本、高弹性、高可用等。
Serverless技术实现与适用场景
目前各云厂商都提供了FaaS/BaaS系列云服务,例如:FaaS有AWS Lambda、Aliyun FC、华为云FunctionGraph、腾讯云函数等;BaaS有AWS S3、Aliyun OSS等。Serverless开源技术发展也十分踊跃。由于BaaS往往由第三方提供,因此侧重函数计算的场景更适合使用FaaS。受限于FaaS技术在当前实现层面的冷启动耗时高、更细粒度的函数跟踪调试复杂、各厂商接口不一致等问题,目前尚不能将所有应用都迁移到函数计算中。FaaS更适合于具有以下特点的场景:(1)具有峰谷特征、需要高弹性;(2)需要事件触发或定时执行;(3)不需长时间驻留使用;(4)计算用时明显高于冷启动用时。
Serverless函数计算的适用场景
Serverless + GIS
结合地理信息业务的特点,在Serverless应用于GIS领域方面,“Serverless+GIS”本质上是GIS各种能力的Serverless化,包括GIS数据存储管理能力、GIS计算处理分析渲染能力、GIS服务能力等。
“Serverless+GIS”第一层面,在GIS数据存储管理层,GIS存储的Serverless化作为 GeoBaaS(Geospatial BaaS),将空间数据存储能力进行后端服务化,可采用公有云厂商提供的存储服务。SuperMap GIS 2022版本也在云原生GIS产品套件中内置提供了各类存储服务,可以轻松一键开启。尤其内置Yukon禹贡开源空间数据库,实现了GIS二三维时空数据的一体化存储管理。
Serverless + GIS: GIS计算的Serverless化
“Serverless+GIS”第二层面,则是GIS计算的Serverless化,即GeoFaaS(Geospatial FaaS),可以选择云厂商的Serverless Spark分析引擎、FaaS函数计算服务,将GIS功能以函数方式部署进去执行。SuperMap GIS 2022版本也在云原生GIS套件中内置了GeoFaaS函数运行时以及多个GIS函数,具体包括无服务器空间分析函数、无服务器处理自动化函数。
综上所述,Serverless GIS包括GeoFaaS与GeoBaaS两个部分。它们将GIS计算能力函数化,将空间数据存储管理能力后端服务化,互相解耦,互相配合,共同实现GIS后端系统中关键模块的无服务器化。
Serverless GIS:GeoFaaS + GeoBaaS
GeoFaaS技术与实践
结合FaaS的适用场景特点,包括具有峰谷特征、按需执行、无需驻留、执行时间较长等。对于业务系统来说,FaaS最为关键。SuperMap在GeoFaaS方面,通过对GIS计算主要能力进行分类与分析,发现其中的空间分析处理类服务较适用于这种场景,因此将其作为GIS空间函数计算的突破口。具体包括无服务器空间分析、无服务器处理自动化等。
基于GeoFaaS的业务场景及Kubernetes等云原生基础技术,SuperMap选取Knative、KEDA、Dapr等云原生函数计算相关技术,并将它们与云GIS基础软件平台SuperMap iManager、SuperMap iServer有机结合,研发形成完整体系的GeoFaaS函数计算技术,从基础平台、函数运行时、开发框架,到跨层的监控与运维模块,共同支撑其最上层的GIS函数的开发与运行。
SuperMap GeoFaaS技术结构图
在技术实践方面,不同于FaaS一般直接通过API网关对外提供服务,SuperMap将产品中已有的GIS微服务能力接口进行了技术复用,将微服务+函数结合使用。以空间分析为例,如下图所示,左侧继续由空间分析微服务响应外部请求。右侧增加GIS函数模块,通过将GIS空间分析功能拆分成多个具体单一的函数并可独立部署和伸缩运行。空间分析微服务调用这些新增加的函数来完成响应。
空间分析能力Serverless函数化
在SuperMap iManager中通过后台管理面板可看到GIS服务及函数等工作负载的实时拓扑图,图中展示各种空间分析函数及其正在执行的状态情况。蓝色球上的数字代表其副本个数,当有请求过来,函数运行时会立刻拉起若干个对应函数的工作实例,冷启动完成就开始执行空间分析操作,任务执行完成就会立刻销毁这些副本、快速释放资源。
GIS无服务器计算:实时查看函数执行状态
SuperMap GIS 2022版本一共新增12个GIS函数,和1个处理自动化(GPA)任务执行函数。
SuperMap iServer 11i 微服务全景图
通过实测数据对比分析,以空间分析函数为例,由于函数内部的代码职责更单一,只需实现单个的空间分析功能,其他职责都由空间分析微服务和函数运行时承担,所以函数包更轻量,容器镜像文件更小、启动停止更快,函数自身无状态、互相无依赖,可在几秒钟就从0快速扩容到10副本、也能快速缩容到0副本。对微服务和函数进行图形化对比,空间分析、处理自动化能力函数化与之前微服务的性能提升比较,扩容缩容快,故障恢复快,证明函数计算在弹性和韧性上具有明显优势。
空间分析能力函数化性能提升对比
SuperMap云原生GIS 2.0小结
从技术角度,SuperMap云原生GIS 2.0相比云原生GIS 1.0,在以下方面实现了改进:(1)微服务治理平台,增加服务网格技术作为补充与增强;(2)在数据存储中内置禹贡开源空间数据库,提供二三维一体化数据管理的开箱即用能力;(3)新增GIS函数运行时模块,并提供空间分析与GPA处理自动化系列函数。
云原生GIS 2.0不仅提升产品功能与易用性,还带来了重要价值:让GIS系统具有极致弹性与韧性。
结合技术发展+需求满足的双轮驱动,未来我们将进一步提升函数运行时的调度管理性能,并将更多GIS能力函数化;并持续跟踪云原生社区的Serverless计算框架标准化进展,来降低跨云的迁移成本、避免单一技术绑定;并且提供更好的函数运行时平台,支持可扩展、可集成、可被集成。
往期回顾
(点击标题直接访问)
●超图“三无”背后:把每一天都当作是创业“第一天” 2022-11-09
●SuperMap GIS 2022这4个技术新突破,你喜欢吗? 2022-10-27
●宋关福:三维GIS发展的五次浪潮(PPT配文+视频) 2022-09-14
●PPT分享 | 宋关福:无人机遥感+GIS,大有可为 2022-09-07
●宋关福讲禹贡、云原生GIS2.0和高保真三维GIS(PPT+配文) 2022-08-03
●PPT | 宋关福讲地理智慧,科普解读GIS应用价值 2022-06-25
●宋关福 | 元宇宙或将引发三维GIS发展的第五次浪潮 2021-12-31
●论文分享 | 宋关福等:GIS基础软件技术体系发展及展望 2021-02-20
●论文分享 | 宋关福等:人工智能GIS软件技术体系初探 2020-08-31
● 论文分享 | 宋关福等:通用三维GIS场数据模型研究与实践 2020-07-20
●视频+PPT | 宋关福:新技术、新地图、新视角 2018-12-17
●GTC报告|宋关福:GIS基础软件技术四大升维 (视频+PPT)2018-09-26
●拥抱BIM,GIS需解决哪些关键问题?2018-06-13
●随BIM而至的CIM是什么?中日两国解读竟完全不同 2018-05-28
●龚健雅院士:时空大数据时代的挑战与思考(PPT分享) 2017-12-20
●周成虎院士:地理空间智能与无人飞行(PPT分享) 2017-12-13
●李建成院士:人工智能对测绘学科发展带来的机遇(PPT分享) 2017-11-30
●宋关福:全面拥抱大数据的GIS基础软件技术 (PPT+演讲配文) 2017-11-13
●空间大数据内涵与外延 2017-09-14
●当GIS拥抱大数据 | GTC主会场报告(PPT+视频) 2017-08-31
●洪桃李:腾讯大数据应用实践之路 2017-08-29
●周成虎院士:GIS的大数据时代展望 2017-08-28
●讨论 | 三维、云和大数据GIS技术在光环曲线什么位置? 2017-08-23
●多位大咖曾参与中国首套商品化GIS软件,他们都有谁?2017-08-03
●中国GIS基础软件30年 2017-07-20
●当前GIS软件四大关键技术方向 2017-07-13
●千万别随便称大数据,否则可能会贬低你的数据价值! 2017-07-05