写点什么

阿里跨境供应链前端架构演进与 Serverless 实践

  • 2020-02-12
  • 本文字数:3345 字

    阅读完需:约 11 分钟

阿里跨境供应链前端架构演进与 Serverless 实践

Serverless 是近年最火的技术之一,目前在阿里已成燎原之势。在 GMTC 全球大前端技术大会(深圳站)2019 现场,InfoQ 记者采访阿里巴巴高级前端技术专家,ICBU 跨境供应链多元化履约团队 TL 缪传杰(樵枫),请他结合阿里跨境供应链前端的架构演进过程,介绍他的团队是如何看待 Serverless 、如何用好 Serverless 的。



InfoQ:首先请您介绍一下您目前负责的工作,还有当前团队的主要工作范畴?


缪传杰:我来自阿里巴巴 ICBU 技术部,所服务业务 alibaba.com 是阿里巴巴最“古老”的一块业务,有 20 多年历史,为全球跨境贸易买卖家提供一系列专业的服务。我所在的跨境供应链是其中的一个版块,为小企业提供通关、外汇、退税、物流、金融等外贸领域的服务。


如果从前端视角看,有挑战的技术领域有这样几个:1、国际化,这个是很大的 Scope,里面包含了面向全球的极致性能问题,以及面向全球的测试保障、本地化等等问题;2、第二个命题是,我们的业务里面有大量中后台,怎么去高效的支撑、怎么在这种场景下去发挥更大的前端价值,让技术赋能业务,我这次的 Serverless 分享也是围绕这个命题的,此外我们还和集团共建开源了表单框架 Formily、列表方案 Alist 等; 3、还有一些其他命题,比如我们的业务里面涉及很多大宗外汇、资金流转,怎么去做全流程的质量保障,避免资损,为此我们针对不同节点研究了不同的质量保障产品,比如测试阶段用 F2etest 做在线浏览器兼容性测试,发布前用 UiRecorder 录制的脚本做回归测试,上线后用扁鹊平台实时监控 Nodejs 业务异常,目前 F2etest 和 UiRecorder 已经开源。


InfoQ:ICBU 跨境供应链在架构演进上划分了哪几个阶段?


缪传杰:从前后端协同视角可以分成三个阶段。2016 年之前,是以 Webx(一个 Java MVC 框架)来承载 Web 层的服务,承载页面数据的聚合、渲染 VM 模板等。这是夹在 Java 微服务跟我们浏览器之间的一个东西,带来的一个问题就是前后端的耦合:前端也在改,后端也在改,导致协同效能提不上去;另外还会有一些质量问题;此外,在这种架构下,前端的抓手很弱,会受制于后端的整个开发栈,开发体验和幸福感会很低。在这样一个大背景下,我们一直在探索怎样做前后端解耦提效,怎样更好的去赋能业务:我们想从架构的视角去看整个事情。


从大概 2016 年开始,我们采用 Node.js(Egg 框架)来作为中间层,也就是 BFF 架构。我们做的这个事情不算早,但是恰如其实,当时 Egg 体系相对成熟,我们有更多精力去处理业务层的事情。这个架构升级给我们带来的好处除了协同效能、开发体验提升外,更多的是发现前端可以承担更多职责,很多的商业想法更容易去推进落地了。但是我们毕竟是一个不算大的团队,另外我们毕竟是个前端团队,所以带来一些好处的同时也会带来一些弊端。比如我们要管机器运维的事情,还要去考虑机器成本、运维成本。


所以我们也在思考有没有更合理的方案、更轻量的方案,第一能把机器成本降下来,第二能够更快部署,第三就是能够让我们不用去管运维的事情。经过多方交流和学习,我们大家都一致认定 Serverless 是个方向,于是就进入了第三个阶段的探索:用 Serverless 把我们整个的研发效能提上去,把运维成本降下来,机器成本降下来。于是我们就跟集团的中间件团队,还有集团的 Node.js 中台团队去做共建,一起去把 FaaS 体系初步搭建起来。


对于整个阿里前端委员会来说,Serverless 是其中一个非常重要的核心技术方向,集团已经牵头拉着更多业务团队,包括中台团队,把整个体系丰富完善起来,这样其他团队如果要接入的话,会很方便。


InfoQ:Serverless 给中后台业务上面的前端开发带来了哪些改变?


缪传杰:这个问题可以分两个层次,因为从前端视角来看,实际上 Serverless 本质上还是 Node.js 的一个延展。第一个层次,Node.js 给前端带来什么?我认为 Node.js 给前端带来的价值,就是给我们带来更强的对业务的把控能力,和更高的协同效能等;第二个层次,就是引入 Serverless 之后,对原来的 Node.js 体系提升了什么?我认为 Serverless 代表的是普惠的服务端能力,让原来 Node.js 的体系更加简单、容易维护、成本更低。


还有就是,我之前提了一个概念叫 Serverless+,这是什么意思呢?我举个例子,比如说我们有人在用 SSR 这个能力,这个东西很好,但是它的一个问题就是对于前端来讲,你要去搭 SSR 必然要涉及到服务端的能力建设,成本还是比较高。所以 Serverless 进来之后就让 SSR 这个事情变简单了,这个就是 Serverless+SSR。还有一个例子,Serverless+BFF,BFF 让前后端分离这个事情变得更简单。另外还有一个例子就是 Serverless+中后台搭建,传统的搭建里实际上只是解决了 UI 层的拖拽、渲染、编排问题,有了 Serverless 之后,实际上可以让整个体验更好——除了搭建 UI 之外,只需要拖拽就可以把一个服务端的能力、接口的能力,在页面中做出来,解决体验隔离的问题。


InfoQ:但是 Serverless 从提出到现在时间也不是特别长,大概只有两年左右的时间,还是比较初级的阶段,它在实际落地的过程中会有哪些不足?


缪传杰:首先,在我们体系内,Serverless 说实话完善度还不是特别高。这个完善度包括平台的扩缩容速度、应用的起动速度,还包括整个工程链路是否足够平滑,以及线上监控速度是否完备,这些实际上还是要进一步去完善的。再比如生态能力需要不断完善,具体来说就是 BaaS 需要更加的丰富。


其次,如果是从小的开发团队或者个人开发者的角度来看的话,我更建议他们直接用云上的产品,因为自己去搭 Serverless 体系还是特别困难的。不过对于开发者来说,他们要面临的厂商选择可能会很多,阿里云、AWS、腾讯云…每个厂商都有自己的标准,每个厂商的函数写法可能都不一样。我们跟集团一起共建了开源框架 Midway FaaS,把各个厂商的差异点给抹平了。


另外,在编程模型上面,Serverless 可能跟传统的应用还是有很大差异。传统的应用是有分层次的,我拿 Egg 来举例,它可能有 Controller、Service 这些,而 FaaS 体系下,能不能用这么扁平的一个编程模型就能支撑我们很复杂的业务流?这个是要去探索的。比如 EaaS(Egg As a Service )就是一个探索的实践,我们把整个 Egg 直接跑到 FaaS 底层架构上面,看上去是个 Egg,但是底层跑的是 FaaS 自动扩缩容。


InfoQ:您怎么去看 Serverless 接下来的发展?


缪传杰:整体来说 Serverless 还是处于早期摸索阶段,未来一两年我觉得这个基本面不会有太大变化,发挥的空间还非常大。CNCF 把 Serverless 玩家分成平台提供者和开发者,可以从这两个视角去看趋势。从平台提供者的视角看,过去两年各个云产商对这块的投入力度非常大,谷歌发布了 Knative,Cloud Run,AWS 发布了 Firecracker, 腾讯云联手 Serverless.com ,在阿里不管在云上还是集团内部也有很多的发力。未来这块各大巨头的投入只会多不会少。再看社区上 Nodejs 框架,Midway Faas 开始发力,Egg 也将针对 Serverless 做更多的特性升级,比如正在讨论的 Module 机制。从开发者视角看,会有更多的业务进入,但是说实话 Serverless 不是银弹,怎么结合自己的业务场景更好的做出业务价值是需要持续思考和探索的。可以借用许晓斌的两句话概括:1、Serverless 现在还没有一个事实标准,还在探索阶段;2、Serverless 有着美好的未来。未来三到五年可能会相对比较成熟。


InfoQ:您的团队接下来在 Serverless 开发上会有什么样的规划吗?


缪传杰:我们是一个业务团队,首先还是要解决业务上的问题,接下来的一两年会全部上 Serverless,目前这个事情正在有计划的开展。其次,我们正在积极的参与集团 Serverless 体系的共建,把前期积累的能力和经验贡献出来,让更多的业务能享受到 Serverless 带来的快感。最后,我们正在和淘系一起在 Midway FaaS 开源项目中去对社区输出这个领域的积累,也欢迎大家一起来共建。


嘉宾介绍:


缪传杰(樵枫),阿里巴巴高级前端技术专家,ICBU 跨境供应链多元化履约团队 TL 。毕业后先后供职于华为、阿里等公司。在阿里的 4 年多时间里,曾担任 Ewtp 国际化等大型项目前端负责人,推进了跨境供应链复杂中后台业务前端架构的变革;参与推进了集团 Serverless 体系从 0 到 1 的建设,并成功在多个业务落地;同时推进了基于 Node.js 运行时的可视化诊断平台“扁鹊”的诞生和产品化。并在中后台架构领域有丰富的经验。


2020-02-12 06:003214

评论

发布
暂无评论
发现更多内容

Cloud Kernel SIG月度动态:ANCK 5.10-016将落地kABI机制,5.10-015版本规划发布

OpenAnolis小助手

操作系统 内核 anck 龙蜥sig 版本规划

从零开始构建一个电影知识图谱,实现KBQA智能问答[下篇]:Apache jena SPARQL endpoint及推理、KBQA问答Demo超详细教学

汀丶人工智能

人工智能 自然语言处理 知识图谱 智能问答 KBQA

低代码技术分享官丨inBuilder使用有向无环图助力元数据工程依赖管理

inBuilder低代码平台

数码时代的奇迹:低代码开发助力数字经济的蓝海探索

快乐非自愿限量之名

人工智能 低代码 数字化 数字经济

如果AI能帮我 | 社区征文

六月的雨在InfoQ

AIGC ChatGPT 年中技术盘点 通义听悟

对象存储、数据库、NAS、标注数据集,均支持元信息配置|ModelWhale 版本更新

ModelWhale

人工智能 数据库 云计算 数据分析 大模型

为什么选择美国虚拟主机是你的明智之选?

一只扑棱蛾子

美国虚拟主机

开启时空大数据新纪元:JNPF快速开发平台引领AI与自然资源融合

EquatorCoco

人工智能 AI 数据 时空大数据

大学生活动社交小程序开发笔记(1)

CC同学

软件测试/测试开发丨Selenium环境安装配置

测试人

Python 程序员 软件测试 selenium chromedriver

分布式系统常见问题

互联网工科生

分布式

实例分享| anyRTC 部署安徽某市应急实战指挥平台

anyRTC开发者

音视频 快对讲 融合会议 视频监控 综合调度

超级应用App的概念及构建思路

Onegun

小程序 小程序容器 超级应用

沉潜蓄势,厚积薄发:StoneDB-5.7-V1.0.4版本正式发布!特性增强,稳定性大幅提升

StoneDB

数据库 版本发布 StoneDB

软件定义汽车场景中的数据流处理

EMQ映云科技

车联网 mqtt 数据流

三问三答:细数GaussDB迁移的核心技术

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 7 月 PK 榜

火热的低代码和无代码赛道

互联网工科生

软件开发 低代码 无代码 应用开发

【HDC.Cloud 2023】华为云区块链分论坛内容值得再读!

华为云开发者联盟

区块链 后端 华为云 华为云开发者联盟 企业号 7 月 PK 榜

谁能真正替代你?AI辅助编码工具深度对比(chatGPT/Copilot/Cursor/New Bing)

快乐非自愿限量之名

工具 ChatGPT AI赋能 AI工具

接口文档阅读方法:程序员必备的技术指南

Liam

程序员 接口文档 API

用友BIP全球司库“五大管家”,助力大型企业一流司库建设

用友BIP

全球司库

人工智能的底层逻辑

博文视点Broadview

直播预告 | 博睿学院:海量数据实时可信认证

博睿数据

智能运维 博睿数据 数据要素 博睿学院

MatrixOne悲观事务实现

MatrixOrigin

数据库 分布式 云原生 矩阵起源

GPT-4被破解!数智时代大突破!低代码开发平台揭秘:AI模型架构演进的利器

不在线第一只蜗牛

人工智能 低代码 模型调参 ChatGPT GPT-4

科兴未来|“追光逐电 才聚紫琅”光电产业创新创业大赛

科兴未来News

方言语音识别数据驱动人工智能的多元文化发展

来自四九城儿

方言语音

从零开始构建一个电影知识图谱,实现KBQA智能问答[上篇]:本体建模、RDF、D2RQ、SPARQL endpoint与两种交互方式详细教学

汀丶人工智能

人工智能 自然语言处理 nlp 知识图谱 本体建模

重塑未来的1课:组装式交付新引擎——华为云智能化低代码平台

华为云PaaS服务小智

云计算 低代码 华为云 华为开发者大会

创新引领!矩阵起源荣获中国信通院双重认可!

MatrixOrigin

数据库 分布式 云原生 超融合 矩阵起源

阿里跨境供应链前端架构演进与 Serverless 实践_大前端_张晓楠_InfoQ精选文章