Node.js Serverless 助力业务研发提效 38.89%,并保障双11大流量下稳定可靠

本文涉及的产品
函数计算FC,每月15万CU 3个月
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
简介: 本文将介绍我们在淘系双十一,从日常开发到作战的方案与经验,为大家提供一些 Node.js Serverless 的经验参考,也欢迎大家提出宝贵的意见。

image.png

Serverless 一块深水的坚冰,逐步从深海浮出了水面,阿里淘系从去年在大促实践开始,逐渐将 Serverless 应用到前端领域方方面面。而 Node.js 作为前端最有价值的武器,在这其中,发挥了其灵活,轻量的本质,让业务提效。如今,Node.js Serverless 从幕后走向前台,本篇就跟随我们来一一揭开 2020 双十一 Serverless 如何让业务落地,开发提效,以及规模化的面纱。

依托阿里云 Serverless 函数计算等基础设施,今年(2020)淘系前端在行业导购、会场、营销v榜等业务场景中规模化使用了 Node.js Serverless 技术,请求相比去年(2千QPS)今年达到新的水平(峰值总计5万QPS),同时将CPU水位,相比去年 FaaS 平均水位(20%)提升到(40%)。在业务价值方面,Node.js Serverless 支撑的云端一体研发模式交付平均提效 38.89%。今年更是依托 Serverless 的便利性和可靠性,帮助双十一特色的淘宝、天猫、飞猪等会场页面快捷地落地 SSR 技术提高页面体验。在运维方面,今年优化大促态和日常态流程,让开发者在应对更高 QPS 规模时,精力花费降低约50%。在研发体验方面,打造解决方案体系,降低研发门槛,支持外包快速入场。

本文将介绍我们在淘系双十一,从日常开发到作战的方案与经验,为大家提供一些 Node.js Serverless 的经验参考,也欢迎大家提出宝贵的意见。

image.png

探索之路

Midway Serverless Framework

相比传统 Node.js 应用,由于部署模式以及运行环境的不同,我们在原有Node框架之上进行了方案升级,提出了Midway Serverless。

image.png

Midway Serverless是一套面向Serverless的解决方案,它包括框架、运行时、工具链、配置规范等几个部分。

在框架设计过程中,我们主要把握了这几个特点:

1. 多平台适配能力

社区不同云平台底座能力适配,提供Serverless底座迁移替换能力,防止云平台锁定。

传统应用和Serverless模式,相互迁移的能力,做功能降级和能力升级。

2. 让应用层更易维护和扩展

使用了Typescript作为基础语言,定义基础类,便于上层应用开发者定制化。

提供应用开发过程中常用的插件以及提供了插件体系。

框架默认结合基建能力,提供问题排查和性能优化等基础功能。

3. 面向不同业务场景的开放性

提供基础上层接口,满足不同开发者基于不同业务场景进行定制化开发。

打造快速试错、高可用的研发模式

统一云研发平台,从研发到交付构建更敏捷的前台应用开发。

为了提升开发者本地的开发者体验,我们做了Vscode插件、本地脚手架来提升开发者的开发体验。

发布平台,我们通过将发布链路进行流程化,做代码云构建,最终将热加载的代码打成压缩包。

最终函数运行时,我们通过热调度的模式,加速函数启动时间。

image.png

解决方案沉淀

同时我们和业务开发者在过去实践中,沉淀各类解决方案,各部门一方可以定制化自己的租户,同时各部门也可以选择通用解决方案,并选择自己部门的网关进行组合。

image.png

模型驱动、函数编排

借助模型驱动,函数编排产出FaaS函数。同时结合我们原有的搭建系统,业务同学进行模块的排期,页面的搭建,快速响应淘宝双十一相关的业务需求。

image.png

技术实现层面主要分为:

  • 数据链路设计
  • 操作面板设计
  • 代码生成方案

数据链路设计,主要设计定义DSL,对数据来源、模型、字段、出入参、代码片段进行了结构化存储。

例如代码片段定义:

image.png

操作面板设计,主要是函数逻辑编排:

image.png

FaaS代码生成逻辑:

image.png

稳定性建设单元化保障

通过异地容灾,对业务进行多地多机房部署,实现真正意义上的异地多活。

image.png

单元化优点:

1、在车辆高速行驶过程中,进行更换轮胎。框架升级,可以在某个单元进行灰度。

2、当单个单元出现问题时,切换到另外一个单元提供服务。

3、性能评测,可以做单个单元的性能评估。

监控保障

我们通过在框架Runtime层面,接入全链路跟踪系统,方便开发者查看错误的链路情况。

业务同学只需关注自己业务函数的QPS和成功率,而且对于成功率的下跌,或者QPS的环比下跌都将通过IM、短信或者电话的方式进行及时报警。

例如下图我们一个函数的日常情况的QPS变化情况:

image.png

预案保障

为应对各个环节可能存在的未知风险,架构层面,我们通过设置了多种预案来进行面对。

image.png

当任何一个环节出现监控报警时,都能作出合理的应对措施。

限流保障

根据2019年的流量情况,预估今年双十一的规模,我们进行了建站压测、单链路压测、全链路压测等多个环节。根据压测表现,对于流量链路的各个组件,进行限流配置,进行服务的保护。

今年在保障相同QPS的情况下,我们对于容器层面的CPU消耗情况进行更多的压榨,相比去年提升1倍。

业务实践

导购营销云端一体研发

image.png

通过2.2中的研发模式,让开发者能快速选择通用解决方案,快速响应业务需求,制作出满足业务场景的前端功能。最终运营借助我们前端开发者提供的功能,能玩出花。

会场 SSR - 实现双 11 会场秒开

image.png

借助 SSR 服务端渲染 + Serverless 模式,前端开发者通过前后端一起优化的模式,进一步优化用户体验。帮助双11 分会场大幅提高了页面打开速度,业务转换上提高的受益也有不错体现。

中后台高效研发

中后台一体化研发模式具备特性:

  • 前后端一体化开发、上线、运维,高效开发部署上线。
  • 无须关注服务器、域名申请等事情,让业务同学只需关注业务。
  • 解决长尾应用服务器成本问题,合理把控中后台生命周期。

image.png

总结与展望

Serverless 是未来开发的基座,前端利用 Serverless 快速实现业务交付,以往,前端的开发会受到资源的限制,而如今,在创造力的驱动下,Serverless 使得前端不再受到资源成本的制约,同时又能使用 Node.js 快速的迭代业务,其效率远高于传统开发,而成本又相对较低。如今,这不仅仅是未来,也是当下前端在持续投入的事情,Serverless 和多端技术,整个前端都将有一次大的变更和飞越。快来和我们一起编写云端一体的未来吧。

image.png


🔥第十五届 D2 前端技术论坛开放报名,速抢!

一起来 D2 Node.js (Serverless) 专场学习更多精彩内容

image.png


image.png
关注「Alibaba F2E」
把握阿里巴巴前端新动向

相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
3月前
|
JavaScript Java Serverless
函数计算产品使用问题之如何使用Node.js编写程序
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
3月前
|
消息中间件 JavaScript 中间件
函数计算产品使用问题之WebIDE编写的Node.js代码是否会自动进行打包部署
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
14天前
|
运维 Serverless 数据处理
Serverless架构通过提供更快的研发交付速度、降低成本、简化运维、优化资源利用、提供自动扩展能力、支持实时数据处理和快速原型开发等优势,为图像处理等计算密集型应用提供了一个高效、灵活且成本效益高的解决方案。
Serverless架构通过提供更快的研发交付速度、降低成本、简化运维、优化资源利用、提供自动扩展能力、支持实时数据处理和快速原型开发等优势,为图像处理等计算密集型应用提供了一个高效、灵活且成本效益高的解决方案。
41 3
|
5月前
|
运维 监控 Serverless
函数计算产品使用问题之HTTP触发器被恶意刷流量,该怎么办
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
3月前
|
弹性计算 运维 Kubernetes
Serverless 应用引擎 SAE 助力袋拉拉研发提效 70%
机汽猫的主要业务是通过部署 IoT 设备解决医院耗材管理问题。面对业务的潮汐特性带来的资源预留难题与运维压力,该公司选择将所有应用部署在阿里云 Serverless 应用引擎 SAE上。SAE 提供的微服务治理、自适应弹性伸缩及平台工程化能力,助力机汽猫研发效率提升了 70%。
|
3月前
|
弹性计算 Kubernetes 安全
Kubernetes 的架构问题之在Serverless Container中保障应用的安全防护如何解决
Kubernetes 的架构问题之在Serverless Container中保障应用的安全防护如何解决
149 8
|
3月前
|
弹性计算 运维 监控
敦煌智旅:Serverless 初探,运维提效 60%
SAE 提供了一个开箱即用的 Serverless PaaS 平台,提供了微服务、监控等能力,帮助敦煌智旅很好地解决了发版困难、运维困难、弹性能力不足和资源利用率低等痛点问题。成功实现轻松应对 10 倍突增流量洪峰,运维效率大幅提升。
|
3月前
|
运维 JavaScript Serverless
Serverless革命:一键上云,Egg.js开发者的超级加速器!
【8月更文挑战第8天】本教程介绍如何结合Egg.js与Serverless技术简化Web应用部署。首先确保已安装Node.js及npm,并使用`egg-init`脚手架创建新应用。接着添加`egg-serverless`插件支持Serverless部署,编写基本的应用代码及路由规则。通过配置`fc.yml`文件集成阿里云Function Compute作为Serverless平台,并借助`@alicloud/fun`工具完成部署。最后,通过部署生成的URL验证应用是否成功上线。采用Serverless架构,开发者可以专注于业务逻辑,大幅提高部署效率和资源利用。
54 5
|
3月前
|
弹性计算 Serverless 开发者
Next.js 建站的生死抉择:Serverless FC 与 Serverless 应用引擎的激烈碰撞,何去何从?
【8月更文挑战第7天】在选择Serverless FC或Serverless应用引擎部署Next.js网站时,需考量便捷性、性能与成本。Serverless应用引擎提供直观界面简化部署管理,而Serverless FC需深入了解函数配置;性能上,应用引擎表现更稳定,尤其高并发场景,但FC按需伸缩;成本方面,FC适合低流量应用,应用引擎大规模使用更经济。两者均具良好扩展性,但体验各异。最终选择应基于具体需求、预算和技术背景。
60 3
|
4月前
|
JavaScript NoSQL Serverless
函数计算产品使用问题之如何创建一个自定义运行时并指定Node.js版本
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。

热门文章

最新文章

相关产品

  • 函数计算