阿里云「飞天发布时刻」2024来啦!新产品、新特性、新能力、新方案,等你来探~ 了解详情
写点什么

阿里跨境供应链前端架构演进与 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:002868

评论

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

来了!Spring Boot从入门到入土的私藏教程,不收藏你就亏了

小二,上酒上酒

spring springboot

阿里架构师耗时三个月整理的 Spring实战笔记:入门到实战

小二,上酒上酒

spring

京东T8架构师墙裂推荐:史上最全高性能MySQL实战(赶紧收藏)

小二,上酒上酒

清华年薪百万大佬,带你深入JVM实战调优,看完还敢说你懂JVM

小二,上酒上酒

Java 马士兵

【文本检测与识别白皮书-3.2】第一节: 基于分割的场景文本识别方法

合合技术团队

人工智能 文字识别 文字检测 智能识别

聊一聊作为高并发系统基石之一的缓存

Java全栈架构师

Java 缓存 后端 高并发 架构师

JavaScript刷LeetCode-字符串类解题技巧

Geek_07a724

JavaScript LeetCode

这几款音乐人必备的软件,你了解吗?

懒得勤快

企业为什么需要UI快速开发框架

力软低代码开发平台

华为云CDN,海量资源智能路由,让内容传输更快一步

IT科技苏辞

将 NGINX 部署为 API 网关,第 3 部分:发布 gRPC 服务

NGINX开源社区

nginx api 网关 gprc

华为云CDN,如何赋能企业数字化发展?

IT科技苏辞

ript刷LeetCode拿offer-树的遍历

js2030code

JavaScript LeetCode

javascript 高级编程 之 Array 用法总结

hellocoder2029

JavaScript

太厉害了!阿里年薪120W架构师整理的学习笔记,看完收获良多

小二,上酒上酒

Java 架构 微服务 高并发

js通过经纬度来计算两地之间的距离

源字节1号

微信小程序 软件开发 前端开发 后端开发

重塑感知,荣耀金洋,银行APP用户体验外滩峰会相聚上海

易观分析

银行 峰会 上海

华为云CDN,是怎样满足各行业全场景加速需求

IT科技苏辞

华为云虚拟专用网络VPN,专为解决现代企业云链路痛点而生

科技怪授

网络 网络VPN

京东T8连夜肝出的《JVM性能优化知识点》吊打所有提问的面试官

小二,上酒上酒

性能优化 JVM Java虚拟机

特征平台在数禾的建设与应用

阿里云大数据AI技术

sql 大数据 flink 企业号十月 PK 榜

阿里技术专家压箱底好货:Redis深度历险笔记

小小怪下士

Java redis 程序员

华为云虚拟专用网络VPN,助力现代企业云上业务创新发展

科技怪授

网络 网络VPN

超高性价比的云服务器-华为云耀云服务器

科技之光

太厉害了!GitHub上标星80K的微服务实战笔记,看完跪了

小二,上酒上酒

Java 微服务

华为云CDN,用技术实力助力企业创新,促进产业化转型

IT科技苏辞

华为云弹性公网IP,如何解决现代企业的网络IP烦恼

科技怪授

弹性公网IP

华为云虚拟专用网络VPN,为现代企业打造优质的混合云计算环境

科技怪授

网络VPN

JavaScript刷LeetCode模板技巧篇(二)

Geek_07a724

JavaScript LeetCode

【融云出海白皮书免费看】出海洞察之沙特的「土豪行为」盘点

融云 RongCloud

白皮书 出海

华为云对象存储OBS,为不同企业提供云存储方案,助力企业更好经营

科技之光

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