高德客户端低代码系统架构实践

本文涉及的产品
函数计算FC,每月15万CU 3个月
简介: 过去的一段时间里,高德地图App大前端团队一直在对前端低代码搭投技术进行探索,目前已经在客户端多个业务场景落地,充分验证了搭投技术支撑业务快速迭代的潜力。

导读

过去的一段时间里,高德地图App大前端团队一直在对前端低代码搭投技术进行探索,目前已经在客户端多个业务场景落地,充分验证了搭投技术支撑业务快速迭代的潜力。


在低代码的实践中,我们发现,除了前端可视化拖拽搭建技术,Serverless、智能化等技术都有助于低代码的业务落地。本文将介绍高德低代码系统架构以及一些新技术的应用方法。


image.png


1.背景

开始之前,先简单介绍下高德搭投的技术背景。


首先,高德地图客户端采用自研跨端框架进行前端开发,框架基于JS引擎实现移动端原生应用跨平台开发,具有动态化、高性能的特点。


另一方面,在实际业务开发中,客户端各业务线面临越来越重的推荐类卡片(或页面)需求。推荐类需求特点是重展示,轻交互,快速迭代。尤其对迭代速度要求非常强,很多卡片要不断微调以适应市场和业务需求。这对前端技术的动态能力提出了新的要求,也带来了不少问题:


image.pngimage.gif


为了解决这些问题,我们希望通过搭投技术提高推荐类业务的动态化能力并降低相应的开发成本。


2.可视化搭建

整套搭投系统,其实就是搭建+投放。其中搭建是系统的基石,搭建的本质是通过可视化操作维护一份JSON格式的DSL schema,该schema基于一套标准的协议可以描述搭建的产物。


在相关领域,阿里集团已有多年积累,有代表性的产品包括阿里云钉钉的宜搭系统和蚂蚁的云凤蝶系统。集团也沉淀了核心搭建引擎,低代码搭建协议等工具,我们团队也选择基于阿里统一搭建引擎进行搭建平台的建设。


针对高德客户端自研框架开发环境,团队开发了组件入料、样式模拟器、设置器定制、模板管理系统、客户端搭建渲染引擎等模块。


一期建设时,我们选择面向专业开发者进行搭建平台的建设,所以在搭建流程上非常类似前端开发的流程。前端可以在搭建画布上为元素修改样式,绑定事件,甚至手动编写页面生命周期。


image.pngimage.gif


在后期的实践中,我们发现明确搭建系统最终的用户群体是非常关键的。如果系统面向专业前端开发,那么搭建就必须做到比专业研发手写代码高效,这对引擎的性能提出了很高的要求。


如果系统面向产品运营及其他非专业前端,那么系统的易用性就必须提高到首位,不应该让一个运营同学研究什么是onClick,而应该先研发便捷的可拖拽组件让运营同学只需要随便绑定个数据就可以在搭建画布上看到想要的所有效果。


3.投放

不难看出如果仅有搭建,无法在客户端渲染搭建schema。一个强大的投放系统成为了随之而来的重大需求,我们也开始把重点从搭建这个单一维度上升到全链路能力的建设。


在没有投放系统时,客户端请求是一个标准的前中后端经典模式,目的在于获取服务数据。例如,高德地图App发送请求打到高德网关,网关负责请求下游庞大的数据服务,对请求进行数据聚合并返回结果。


image.gifimage.png


投放系统目的是把前端搭建的产物也聚合进服务请求,客户端在请求数据的同时也在请求前端模板。架构如下:


image.pngimage.gif


架构思路是面向API,以API为维度分发卡片。


搭建平台作为独立应用负责搭建。把搭建产物和一个客户端API绑定到一起后保存到服务域服务。服务应用再负责把卡片+API注册到高德网关。高德网关接到一个API请求后,会查看该API是否在投放在线服务与某些搭建schema绑定注册了。如果是,则在已有数据聚合逻辑中,把搭建schema聚合进返回结果对象中。


这套系统的优点是:


  • 高德网关继续以API维度收口管控所有端内流量;


  • 完美匹配当前的高德网关架构,开发成本低,稳定性强。


这套系统的问题是:


  • 高德网关仅覆盖高德客户端内业务,还不支持高德端外众多的H5运营活动。


4.Serverless技术在低代码的应用

虽然系统成功落地并表现出了坚如磐石的稳定性,但我们不满足于此。为了支持更丰富的业务场景,我们决定对系统架构做优化升级。


彼时,Node.js  Serverless技术逐渐进入了我们的视野。Node.js  Serverless的目标之一就是解决重数据逻辑的编排问题,让前端业务有机会对数据进行业务处理。这正是投放服务亟需补充的能力,如果可以通过一个统一的FaaS函数做搭建投放,就可以对接各路数据源,自研框架和H5同时支持的需求也可以满足了。


所以,我们决定在全套链路中加入一层FaaS函数,也从那时起我们为高德搭投平台起名为Amap Lowcode。


image.pngimage.gif


通过一层FaaS函数,投放既可以成为原有链路的下游服务,也可以直接为H5运营活动提供前端页面。在应用Serverless的技术中,我们总结出两大收益:


  • 自动扩容伸缩保障了该前端服务在十一峰值流量时的稳定性;


  • 无人值守运维为函数的维护节约了大量成本,函数发布上线调试监控一步到位,非常便捷。


这套架构的缺点是:

  • 链路较长,业务研发上手难度较大


5.智能化技术在低代码的应用

随着业务的大规模接入,我们收到了大量关于链路复杂、上手难度大的反馈。我们也在思考如何通过技术手段提供便捷的搭建体验。智能化技术由此进入了我们的视野。我们与高德设计师团队、阿里集团智能化团队深度合作,率先在搭建平台落地了智能D2C能力。


具体操作步骤主要分两大部分。设计师在设计稿阶段通过设计插件的辅助可以智能标注所设计区块的组件名称,并生成一个集成了相关数据的数字化设计稿。


image.gifimage.png


开发人员拿到设计稿后,可以选择一键跳转到Lowcode搭建平台。进入平台后,样式布局自动生成,直接省掉大部分设计稿还原时间。(下图中的搭建内容全部为自动生成)


image.gifimage.png



随后,经过数据编排,FaaS投放等环节,就是我们在高德地图首屏上滑后看到的场景推荐卡片。

image.png

image.gif


另外,我们还研发了schema to code功能。如果一个前端业务还不能应用搭投的投放链路,也可以选择在搭建阶段一键导出代码。


由此一来,任何前端研发都可以通过智能化提高自己的开发效率。


智能化技术的加入,直接为低代码平台打开了想象力的大门。本着为业务方提供便捷体验的原则,我们还相继拓展出了智能预览功能标准投放位容器


智能预览可以根据设计稿的数据源智能选择预览上下文和环境,帮助业务方在实际页面效果中预览搭建产物效果。


标准投放位容器可以让业务方仅输入一个唯一id及少量配置信息就自动承接投放功能,一些业务在接入后,无需再开发客户端代码就可以完成客户端迭代。


6.总结

高德Lowcode平台共有四大特性:从第一天起,它就具备了面向toC客户端的特性;在Serverless技术的帮助下,高德Lowcode平台具备了同时支持自研框架和H5的双技术栈能力特性;为了支撑运营活动同学的H5搭建,在搭建环节研发了简易版搭建流程,平台具备同时面向专业研发和运营活动同学的特性;最后,设计稿一键转化D2C等功能为平台带来了智能化的特性。


以上这些特性使得高德Lowcode平台可以在同业中处于领先水平。最后,附送整套智能化搭投系统大图:


image.pngimage.gif


期待与读者们一起交流低代码领域的相关经验和感想。如果你同样对低代码技术抱有热忱,更欢迎你加入我们的团队一同前进。我们团队业务上负责驾车导航等高德地图App核心场景,技术上在多个前端方向均有成果落地。感兴趣的同学请发送简历到 gdtech@alibaba-inc.com,邮件主题为:姓名-技术方向-来自高德技术。

我们还在路上,未来会更加努力,让出行更美好。


你可能还想看:

八个维度对低代码能力度量模型的思考

玩转新技术栈!高德大前端演进历程(视频)


相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
5天前
|
存储 SQL 监控
转转平台IM系统架构设计与实践(二):详细设计与实现
以转转IM架构为起点,介绍IM相关组件以及组件间的关系;以IM登陆和发消息的数据流转为跑道,介绍IM静态数据结构、登陆和发消息时的动态数据变化;以IM常见问题为风景,介绍保证IM实时性、可靠性、一致性的一般方案;以高可用、高并发为终点,介绍保证IM系统稳定及性能的小技巧。
20 6
|
25天前
|
存储 缓存 关系型数据库
社交软件红包技术解密(六):微信红包系统的存储层架构演进实践
微信红包本质是小额资金在用户帐户流转,有发、抢、拆三大步骤。在这个过程中对事务有高要求,所以订单最终要基于传统的RDBMS,这方面是它的强项,最终订单的存储使用互联网行业最通用的MySQL数据库。支持事务、成熟稳定,我们的团队在MySQL上有长期技术积累。但是传统数据库的扩展性有局限,需要通过架构解决。
65 18
|
1月前
|
搜索推荐 NoSQL Java
微服务架构设计与实践:用Spring Cloud实现抖音的推荐系统
本文基于Spring Cloud实现了一个简化的抖音推荐系统,涵盖用户行为管理、视频资源管理、个性化推荐和实时数据处理四大核心功能。通过Eureka进行服务注册与发现,使用Feign实现服务间调用,并借助Redis缓存用户画像,Kafka传递用户行为数据。文章详细介绍了项目搭建、服务创建及配置过程,包括用户服务、视频服务、推荐服务和数据处理服务的开发步骤。最后,通过业务测试验证了系统的功能,并引入Resilience4j实现服务降级,确保系统在部分服务故障时仍能正常运行。此示例旨在帮助读者理解微服务架构的设计思路与实践方法。
103 17
|
1月前
|
存储 消息中间件 小程序
转转平台IM系统架构设计与实践(一):整体架构设计
本文描述了转转IM为整个平台提供的支撑能力,给出了系统的整体架构设计,分析了系统架构的特性。
75 10
|
1月前
|
负载均衡 Serverless 持续交付
云端问道9期实践教学-省心省钱的云上Serverless高可用架构
详细介绍了云上Serverless高可用架构的一键部署流程
57 10
|
1月前
|
存储 人工智能 运维
面向AI的服务器计算软硬件架构实践和创新
阿里云在新一代通用计算服务器设计中,针对处理器核心数迅速增长(2024年超100核)、超多核心带来的业务和硬件挑战、网络IO与CPU性能增速不匹配、服务器物理机型复杂等问题,推出了磐久F系列通用计算服务器。该系列服务器采用单路设计减少爆炸半径,优化散热支持600瓦TDP,并实现CIPU节点比例灵活配比及部件模块化可插拔设计,提升运维效率和客户响应速度。此外,还介绍了面向AI的服务器架构挑战与软硬件结合创新,包括内存墙问题、板级工程能力挑战以及AI Infra 2.0服务器的开放架构特点。最后,探讨了大模型高效推理中的显存优化和量化压缩技术,旨在降低部署成本并提高系统效率。
|
2月前
|
运维 监控 安全
天财商龙:云上卓越架构治理实践
天财商龙成立于1998年,专注于为餐饮企业提供信息化解决方案,涵盖点餐、收银、供应链和会员系统等。自2013年起逐步实现业务上云,与阿里云合作至今已十年。通过采用阿里云的WA体系,公司在账号管理、安全保障、监控体系和成本管控等方面进行了全面优化,提升了业务稳定性与安全性,并实现了显著的成本节约。未来,公司将持续探索智能化和全球化发展,进一步提升餐饮行业的数字化水平。
|
10天前
|
传感器 监控 安全
智慧工地云平台的技术架构解析:微服务+Spring Cloud如何支撑海量数据?
慧工地解决方案依托AI、物联网和BIM技术,实现对施工现场的全方位、立体化管理。通过规范施工、减少安全隐患、节省人力、降低运营成本,提升工地管理的安全性、效率和精益度。该方案适用于大型建筑、基础设施、房地产开发等场景,具备微服务架构、大数据与AI分析、物联网设备联网、多端协同等创新点,推动建筑行业向数字化、智能化转型。未来将融合5G、区块链等技术,助力智慧城市建设。
|
2月前
|
Cloud Native API 持续交付
云原生架构下的微服务治理策略与实践####
本文旨在探讨云原生环境下微服务架构的治理策略,通过分析当前面临的挑战,提出一系列实用的解决方案。我们将深入讨论如何利用容器化、服务网格(Service Mesh)等先进技术手段,提升微服务系统的可管理性、可扩展性和容错能力。此外,还将分享一些来自一线项目的经验教训,帮助读者更好地理解和应用这些理论到实际工作中去。 ####
72 0
|
2月前
|
Java 开发者 微服务
从单体到微服务:如何借助 Spring Cloud 实现架构转型
**Spring Cloud** 是一套基于 Spring 框架的**微服务架构解决方案**,它提供了一系列的工具和组件,帮助开发者快速构建分布式系统,尤其是微服务架构。
303 69
从单体到微服务:如何借助 Spring Cloud 实现架构转型

热门文章

最新文章