摘要:给出了通信空间大数据场景下Serverless架构设计方案,该方案将WebGIS技术、Serverless架构相结合,采用SSR后端渲染技术构建前端项目,以支持同构代码的服务器端渲染,提高渲染速度和体验。GIS技术在5G通信规划和系统建设中,发挥着重要的作用。通信空间大数据具有数据量大、计算能力要求高、图层渲染呈现压力大的特点,WebGIS在数据呈现时表现出性能不足,尤其当数据量达到千万级大数据时,性能瓶颈问题尤其明显,Serverless架构的运用使大数据研发场景效率得到提升。积极探索GIS与前沿架构技术的融合,助力5G通信规划和系统建设。
01 概述
目前在中国联通5G通信规划及支撑平台建设中,GIS技术发挥着重要作用。规划支撑平台采用敏捷开发方法,前端结合WebGIS技术,开发了丰富的组件库,支持瓦片图层的快速渲染,可以实现大数据分析结果的可视化,如聚合分析、区域汇总、OD分析、密度分析等。对于百万级大数据,使用图层组及抽稀技术,实现百万级数据的快速渲染,对于千万级大数据,使用密度分析等可视化技术,实现秒级渲染呈现。在目前的系统架构下,WebGIS在大数据呈现时,表现出性能不足,尤其是在全国场景下,大数据一次加载渲染具有较大的性能瓶颈。
当前的GIS Server使用中也存在一些问题,如GISServer出问题后,服务无法使用,数据量较大时,图层的获取、数据查询时间较长。空间大数据对GIS提出了较大的挑战,为了对空间大数据进行存储、分析,需使用分布式存储和分布式计算对现有数据库进行优化。当前的GIS技术不具备这些能力,必须将GIS技术与大数据技术结合起来。当前的空间可视化技术,存在海量数据直接加载性能低的缺点。使用无服务器(Serverless)架构的SSR渲染技术,能够在后端进行页面生成,发送到前端进行呈现,提高首屏渲染效率。Serverless是无服务器架构模式,开发者不需要关注资源及硬件数量,重点聚焦业务逻辑实现。基于Serverless开发Web应用,传统思路是将现有前后端分离技术模式部署移植到Serverless上,既能维持现有开发模式的体验,又能享有新技术带来的快速部署红利。但是,Serverless对于架构的改变不止于此,它将创造出颠覆式的开发模式。
Serverless架构是云原生的核心组成部分,不需关心服务器等资源即可完成应用的开发部署和上线,并可以实现计算、存储资源的弹性扩缩容。Serverless由函数即服务(FaaS)和后端即服务(BaaS)组成,FaaS函数以服务形式运行,由事件触发。BaaS使开发者无需维护后端服务,由云平台提供,一部分能力是现有后端开发技术的下沉,通过SDK等形式调用后端服务如存储、数据库、中间件、定时任务、消息推送等。
02 Serverless架构
2.1 Serverless架构综述
Serverless架构又称为函数即服务架构,是云计算未来的重要发展方向。Serverless并不是没有服务器,而是由云基础设施提供者管理、运维服务器,开发者能够更好地关注业务逻辑。Serverless可以动态扩缩计算资源、存储资源,有效提高资源利用率,降低研发成本。
FaaS服务和BaaS服务都具有弹性扩缩容的特点。FaaS平台提供请求转发、租户隔离等能力,主要包括负载均衡器、请求处理、实例管理、资源调度等模块。FaaS平台接收到请求后,请求处理模块查询实例管理模块中是否有空闲实例,如果有则将请求调度到该空闲实例中。如遇到高并发场景,无空闲实例可调度时,则在资源调度模块中申请扩容,资源调度模块创建实例以供调度。BaaS服务与FaaS服务紧密相关,用户便捷地调用FaaS服务,随之也需要如数据库、存储、消息推送等底层服务。
Serverless技术带来了开发者开发思维方式的转变,开发者要将思路从自下而上转变为自上而下,无需过多关注基础资源,可以更多专注业务逻辑,Serverless开发模式可以极大赋能开发者,为开发者构建更加易用的开发环境。
2.2 Serverless架构适用场景
Serverless由于具有无状态、轻量化的特征,在以下场景有极好的表现。
a)实时文件处理。在图片、短视频等场景中,用户上传的文件需要实时处理,总量大、并发性高,可以使用多个函数进行处理,如视频内容识别、视频压缩、视频格式转换等。
b)大数据处理。目前大数据的处理,需要搭建大数据平台,使用spark等大数据技术,并且一般是分布式架构。基于Serverless技术,可以将数据存储到对象存储中,触发函数拆分数据,再调用处理函数,数据拆分、处理后,存储到数据库中。对象存储可以为用户提供无限存储能力,轻松应对大数据处理场景。Serverless架构支持并发执行mapper及reducer函数,极大提高处理效率。
c)物联网。物联网应用场景具有低频次的特点,物联网设备单次传输较小数据,且在固定传输间隔传输数据,例如共享单车、智能手表、共享充电宝,其应用程序不定时运行,单次运行时长为ms级,CPU使用率较低。在Serverless架构中,用户可以购买ms级的资源,Serverless架构可以很好地满足物联网设备的资源需求。另外,Serverless弹性扩缩容的特点可以很好地满足物联网海量设备高并发的需要。
d)Web应用/移动应用。目前Serverless架构已经可以支持多种Web应用,API请求可以映射到FaaS函数,FaaS层的弹性扩展可以很好地支持高并发的需求。在移动应用开发中,通过BaaS对接后端服务,可有效提高效率。FaaS层函数逻辑独立,各端新功能开发效率更高。
2.3 Serverless架构与前后端分离架构对比
常见的Serverless服务架构如图1所示。
图1 常见Serverless HTTP服务架构图
表1从接入层、计算层、数据库、存储层、第三方服务等方面对Serverless架构和前后端分离系统架构进行了对比。
表1 Serverless架构和前后端分离架构对比
03 Serverless前后端一体化开发框架
3.1 开发模式及前后端一体化开发框架介绍
Web应用的开发模式从过去的一体化到现在的前后端分离,再到未来的前后端融合一体。过去的开发没有前后端概念,业务逻辑都写在一起,如JSP前端页面是嵌入在java项目里的。随着规模增长,很多问题(如高并发、升级困难等)随之暴露。
现在的前后端分离模式为前端加高并发后端,后端会涉及一部分运维工作。前后端分离的架构解决了高并发高可用的问题,但是也带来了很多其他问题。高并发高可用逻辑与后端业务逻辑混合在一起,后端需掌握逻辑开发、运维等技术。开发中前后端联调沟通问题较多,效率较低,成为开发中的效率瓶颈。近几年前端技术发展迅速,在系统运维方面如果有比较简单的方法,那么前端的新技术则更容易展开。在运维方面,现有docker等技术降低了运维成本,但是运维难度依然很大。
未来的Serverless开发模式是前后端一体化的开发架构,如图2所示,包括业务逻辑层、Serverless层、平台服务层。其中业务逻辑层中的共享逻辑是前后端都可调用的逻辑,前后端可以抽象很多的公共逻辑,比如工具类。随着Serverless技术的成熟,会有更多成熟的前后端一体化工具和框架,使用任意开发语言开发业务逻辑,都可以无感知的快速部署上线。
图2 Serverless前后端一体化框架
3.2 Serverless架构开发模式与前后端分离开发模式
3.2.1 开发流程比较
在前后端分离的典型Web应用场景中,前端向服务端发送HTTP请求,服务器接收到HTTP请求后,经过多个步骤处理,将响应的数据封装成JSON格式返回给客户端。
在前后端分离的开发模式中,开发流程如图3所示,UI设计首先根据需求设计页面,服务端、前端分别根据设计进行开发,开发工程师分别进行测试后,进行前后端联调,联调通过后进行服务部署、上线,后端开发或者运维工程师进行系统日常运维。
图3 前后端分离开发流程
在Serverless架构中,Serverless架构开发模式如图4所示。UI设计进行页面设计后,开发人员完成函数及页面开发,进行测试后部署上线。整个流程只需要全栈开发工程师即可完成,降低沟通成本和运维难度。
图4 Serverless架构开发流程
3.2.2 渲染方式比较
在前后端分离的架构中,以客户端渲染为主,页面初始化时,向服务器请求HTML和JAVASCRIPT文件,由JAVASCRIPT渲染页面。在请求数据时间响应较长时,首屏加载时间较长,会出现白屏时间较长。
在Serverless架构中,将路由对应到函数,在FaaS层部署函数服务。前端使用服务端渲染时,直接调用函数,不需要关注函数的部署运维等,可以较容易地使用服务端渲染服务。首屏在服务端调用FaaS函数生成HTML并返回客户端,客户端直接渲染即可,服务端性能较好,首屏打开延时低,用户体验较好。后续打开的其他页面在客户端渲染,体验和单页面一致。
3.2.3 前后端分离架构和Serverless前后端一体化架构优缺点
前后端分离架构和Serverless前后端一体化架构优缺点如表2所示。
表2 前后端分离和Serverless前后端一体化架构优缺点
3.3 前后端一体化框架中的CSR和SSR渲染
同构是指同一段代码或函数,可以运行在服务器端,也可以运行在浏览器端或移动端。同构可以减少项目的代码量,业务逻辑不需要在服务端和浏览器端同时存在,减少了逻辑不一致问题。
客户端渲染CSR是等JAVASCRIPT代码请求、加载、解析后再向后端请求数据,如果数据请求较慢,会有较长时间的白屏,一般加上loading来应对白屏时间。
服务端渲染SSR是指在服务器生成HTML文件,再发送到客户端进行渲染。通过后端发送到前端的页面代码文件直接进行首屏渲染,不再依 赖JAVASCRIPT文件,用户可以更快地看到文件内容。尤其是针对5G智能规划这种大型应用,打包后文件体积大,浏览器加载所需时间较长,首屏等待时间较长,使用服务端渲染SSR可以有效减少首屏加载时间。
SSR较快的主要原因是服务端请求数据,而不是浏览器端请求数据。服务端请求数据,响应较快。浏览器端在不同的网络条件下请求数据,导致请求数据返回的时间难以估计。图5是服务端渲染示意。
图5 服务端渲染示意
04 大数据GIS技术
大数据GIS把大数据和GIS技术结合起来,把GIS的核心融合于大数据架构内。大数据技术体系已经出现了许多很好用的技术,如分布式数据库、分布式计算、流式计算等。大数据GIS技术框架如图6所示。
图6 大数据GIS技术框架
a)分布式技术。分布式技术包括空间数据分布式存储、分布式空间计算、分布式地图渲染。分布式存储包括HDFS、HBase等,其中HBase构建在HDFS之上,是一个分布式的非关系型数据库。在分布式存储体系基础上,加上分布式空间数据库索引、分块管理等,可实现单表千万级数据的存储和管理。分布式空间计算,以Spark计算架构为基础,结合空间计算算法,实现在数小时内完成上千万条数据的空间分析计算。
b)空间大数据可视化。空间大数据可视化通过密度图、热流图、OD图等可视化方式,更加多样地展现大数据分析结果。在空间数据浏览时,为提高地图浏览效率,一般采用预先切片技术。大数据GIS技术可以实现数据的高效浏览。结合分布式渲染、前端渐进加载、SSR渲染等技术可实现高性能分布式渲染技术。
05 基于无服务器架构的通信空间大数据方案
5.1 基于无服务器架构的通信空间大数据系统架构
基于无服务器架构的通信空间大数据系统架构能够实现大数据快速渲染呈现,在BaaS后端服务层提供了大数据能力,实现大数据GIS,在FaaS服务层能够提供系统能力和GIS调用能力的统一。系统整体架构如图7所示。
图7 基于无服务器架构的通信空间大数据系统架构图
在图7中,后端服务层中提供了丰富的能力,除了下沉的消息队列、定时任务、Redis缓存等,还包括数据库服务如Postgres,尤其是 大数据服务如HDFS、HBase、GeoMesa,用于存储、计算5G智能规划中百万级基站、千万级栅格数据,并将计算结果用于Geoserver图层发布。而业务层中,将WebGIS前端API能力沉淀为函数服务。
依据上述的基于无服务器架构的通信空间大数据系统整体架构,主要分为以下几个部分。
a)接入层(API网关):主要是实现API托管能力,管理API生命周期,另外,API网关对外部的多种终端提供API服务,可以作为通用接入层。相较于Nginx等负载均衡产品,API网关支持更强的管理、更高级的配置。当前比较常用的产品有AWS API Gateway、谷歌的Apigee、阿里云的API Gateway、腾讯云的API Gateway等。API网关使用户关注于业务实现,可以快速、安全开放服务。
b)业务层(FaaS层):FaaS是分布式的架构,FaaS由云函数实例构成,云函数由事件驱动,如果没有接收到事件,则不运行。函数实例的特点是按需运行,函数被触发后,才会启动。函数的底层是基于轻量化虚拟机实现的,函数通过运行时环境来提供服务。
c)后端服务层(BaaS层):BaaS层主要包括API网关、存储服务、数据库等,包括常用 SQL服务,如Mysql、PostgreSQL等,还包括大数据服务如HDFS、HBase、GeoMesa等,以及消息队列、Redis缓存服务。BaaS仅提供FaaS应用依赖的服务,如数据库和存储。
d)对象存储层(文件层):可以存储多种格式的数据,如图片、音视频等。当需要处理大数据时,将文件存储在对象存储中,通过对象存储触发器触发数据处理函数,进行数据拆分,再调用处理函数,完成后存入云数据库中。如将现有系统中存储于Postgres数据库的5G基站、5G室分数据存储到对象存储中,并使用云函数对空间数据进行处理。
e)GIS服务层(部署Geoserver服务器):Geoserver连接BaaS层的HBase数据库,发布图层数据,通过Openlayers Api FaaS服务调用WMS或WFS图层服务。
5.2 性能研究
5.2.1 接口性能提升
现有系统使用关系型数据库Postgres,在GIS应用中,可以使用Postgres数据库进行矢量点线面和栅格点线面数据的存储,基于Postgres数据库的PostGIS插件提供了丰富的函数可以对空间数据进行分析。
在5G智能规划中,当单表数据量达到百万后,对表中超过20个字段进行查询时,响应时间较长,没有建立索引的查询将消耗较大的IO。对表进行优化,添加主键索引等,响应时长达到3 s左右。空间大数据GIS技术使用HBase分布式存储系统,在HBase上可以使用空间数据处理插件如Geomesa对GIS数据进行查询和分析。使用HBase实现多条件复杂查询,性能提升显著。
5.2.2 GIS图层渲染性能提升
使用Geoserver作为GIS服务器,Geoserver直连Postgres数据库进行图层发布,百万级数据量的图层加载耗时较长,使用空间大数据GIS技术,Geoserver直连HBase数据库进行图层发布,可有效提升大数据图层加载效率。
基于Serverless的前后端一体化大数据GIS框架,与服务端渲染SSR结合,在服务端把页面渲染成HTML并发送给浏览器,有效提高页面渲染效率。在5G智能规划场景中,当查询条件较复杂时,在Serverless架构下,函数层完成复杂查询操作,并调用GIS JAVASCRIPT API完成页面渲染,将HTML结果返回给用户。Serverless SSR基于API网关和Web Function,可有效提高首屏加载速度。
06 总结
随着云计算技术的发展和逐步成熟,Serverless架构也得到了快速发展,现在处于快速上升阶段。目前,Serverless在多个领域有着诸多最佳实践,本文总结了Serverless的典型应用场景,未来随着Serverless技术的不断完善,Serverless架构可以支持更多的领域。基于Serverless架构的开发方式与当前前后端分离的开发方式有一定差异,前后端一体化开发框架是未来的趋势,能够提高开发效率,CSR和SSR结合的同构渲染,可以显著提高页面渲染效率。本文研究了基于无服务器架构的通信空间大数据GIS性能,设计一种基于Serverless的大数据GIS开发架构,解决当前5G规划及系统建设中的大数据GIS渲染性能瓶颈问题,使Serverless架构和GIS技术在5G规划和系统建设中发挥越来越大的作用。
参考文献
[1] 方坤丁,孙远高. Serverless从入门到进阶:架构、原理与实践[M].北京:机械工业出版社,2021:21-24.
[2] 吴信才. GIS开发大变革:云计算模式下MapGIS全新开发模式深度解析[M]. 北京:电子工业出版社,2015:1-21.
[3] 李志伟,游杨. Knative实战:基于Kubernetes的无服务器架构实践[M]. 北京:机械工业出版社,2021:32-53.
[4] 杨凯. 前端Serverless:面向全栈的无服务器架构实战[M]. 北京:电子工业出版社,2021:21-60.
[5] PAKDIL M E,ÇELIK R N. Serverless geospatial data processing workflow system design[J]. ISPRS International Journal of GeoInformation,2022,11(1):20.
[6] 李铭轩,常培,崔童,等. 面向FaaS的算网异构资源调度技术[J].信息通信技术,2021,15(4):44-49,58.
[7] 崔雪,云惟英,周强,等. 基于SuperMap的空间大数据可视化技术研究与应用[J]. 测绘与空间地理信息,2017,40(S1):28-31.
[8] 夏雨. 基于Serverless的边缘计算平台设计与实现[D]. 北京:北京邮电大学,2021.
[9] 曹经伟. 基于Knative的Serverless平台函数管理模块的设计和实现[D]. 南京:南京大学,2020.
[10] 佚名. 中国联通边缘计算平台能力及API接口技术规划:QB/CU 250[S]. 北京:中国联通,2018.
[11]贾玉玮,晁昆,关键,等. 基于大数据的5G流量迁移方案研究与探讨[J]. 邮电设计技术,2021(11):28-30.
[12]肖建华,王厚之,彭清山,等. 地理时空大数据管理与应用云平台建设[J]. 测绘通报,2016(4):38-42.
[13]杨鸥,张羿,耿贞伟. 微服务架构在容器云中的应用实践[J]. 电脑与电信,2017(7):79-81.
[14] 王方旭. 基于Spring Cloud实现业务系统微服务化的设计与实现[J]. 电子技术与软件工程,2018(8):60-61.
[15] 青云 . 容器时代的数字转型方法论[J]. 软件和集成电路,2019(5):78-82.
[16] 康子路. 物联网开放体系架构研究[J]. 信息技术与标准化,2016(8):12-15,20.
[17] 李铭轩,邢鑫,王本忠. 面向电信运营商的容器云SDN云网一体化方案研究[J]. 信息通信技术,2019(2):7-12,25.
[18] HUANG G,WU C,HU Y F,et al. Serverless distributed learning for smart grid analytics [J]. Chinese Physics B,2021,30(8):088802.
作者简介
褚卫艳,工程师,硕士,主要从事网络与数字化规划相关研发工作;
高允翔,高级工程师,博士,主要从事网络与数字化相关规划、研究及研发工作;
戚帅,高级工程师,硕士,主要从事网络与数字化规划相关研发工作;
尹祖新,教授级高级工程师,硕士,主要从事光传输网规划、研究及研发工作;
徐勇,工程师,硕士,主要从事网络与数字化规划相关研发工作;
林灵,工程师,硕士,主要从事网络与数字化规划相关研发工作;
黄雷,工程师,硕士,主要从事网络与数字化规划相关研发工作。
版权声明:本文内容转自互联网,本文观点仅代表作者本人。本站仅提供信息存储空间服务,所有权归原作者所有。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至1393616908@qq.com 举报,一经查实,本站将立刻删除。