Serverless SSR的窥探

本文涉及的产品
函数计算FC,每月15万CU 3个月
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
简介: Serverless架构的出现,被很多前端的同学认为是“前端的新机会”,因为在Serverless的加持下,前端工程师不仅仅是前端工程师了,可以更简单的、更容易的华丽转身成为全栈工程师。

前言

Serverless架构的出现,被很多前端的同学认为是“前端的新机会”,因为在Serverless的加持下,前端工程师不仅仅是前端工程师了,可以更简单的、更容易的华丽转身成为全栈工程师。

其实在Serverless架构出现之前,前端的技术和架构,就在飞速的演进,从WWW开始到Microsoft Outlook的AJAX引起前端第一次革命的关键技术,这是一个重要的转折点,以此为契机网站具备了动态性,前端工程师的能力模型逐渐从UI偏向逻辑和数据;紧接着,Node.js破除了前后端编程语言的壁垒,令前端开发者能够以相对较小的成本跨界服务端;在接下来React在“革命性”的道路上再走一小步,React之前的前端是围绕DOM,React之后是面向数据。如今到了Serverless架构,Serverless所拥有的特性,与前端技术进一步碰撞,所带来的机会是巨大的,很多人认为Serverless架构让前端可以进一步解放生产力,可以更快、更好、更灵活地开发各种端上应用,不需要投入太多精力关注于后端服务的实现。以SSR技术为例,在Serverless架构下,前端团队不仅仅无需关注 SSR 服务器的部署、运维和扩容,可以极大地减少部署运维成本,更好的聚焦业务开发,提高开发效率。同样也无需关心 SSR 服务器的性能问题,从生产力的释放到性能的提升,降本提效变得更加显而易见。

Serverless与SSR

SSR 顾名思义就是 Server-Side Render, 即服务端渲染。原理很简单,就是服务端直接渲染出 HTML 字符串模板,浏览器可以直接解析该字符串模版显示页面,因此首屏的内容不再依赖 Javascript 的渲染(CSR - 客户端渲染)。

使用SSR技术的天然的优势表现在首屏加载时间更短(因为是 HTML 直出,浏览器可以直接解析该字符串模版显示页面)以及SEO 更友好(正是因为服务端渲染输出到浏览器的是完备的 html 字符串,使得搜索引擎 能抓取到真实的内容,利于 SEO),当然,所付出的明显的代价是更多的服务器端负载。由于 SSR 需要依赖 Node.js 服务渲染页面,显然会比仅仅提供静态文件的 CSR 应用需要占用更多服务器 CPU 资源。以 React 为例,它的 renderToString() 方法是同步 CPU 绑定调用,这就意味着在它完成之前,服务器是无法处理其他请求的。因此在高并发场景,需要准备相应的服务器负载,并且做好缓存策略。

然而在Serverless架构下,SSR所面临的一些例如服务器负担大的劣势,被天然的解决掉了,因为Serverless架构本身的请求级隔离,本身的按量付费,本身的弹性伸缩,可以让SSR技术在Serverless架构下发挥出更大的价值,更优秀的性能,以及付出更低的成本。本文将会以阿里云函数计算为例,通过ssr脚手架,快速的部署一个基于Serverless架构的SSR应用。

在开始之前,需要了解一个ssr脚手架工具:ssr。

ssr 框架是为前端框架在服务端渲染的场景下所打造的开箱即用的服务端渲染框架。 此框架脱胎于 egg-react-ssr (https://github.com/ykfe/egg-react-ssr)项目和ssr v4.3版本(midway-faas + react ssr),在之前的基础上做了诸多演进,通过插件化的代码组织形式,支持任意服务端框架与任意前端框架的组合使用。开发者可以选择通过 Serverless 方式部署或是以传统 Node.js 的应用形式部署,ssr框架专注于提升 Serverless 场景下服务端渲染应用的开发体验,打造了一站式的开发,发布应用服务的功能。最大程度提升开发者的开发体验,将应用的开发,部署成本降到最低。 在最新的 v5.0 版本中,同时支持 React 和 Vue 的服务端渲染框架,且提供一键以 Serverless 的形式发布上云的功能。ssr框架相对比传统应用开发流程有着得天独厚的优势,相对Serverless应用开发流程,有着更精准的,更舒服的ssr应用开发体验。传统应用开发流程:

Serverless 应用开发流程:

使用ssr脚手架开发 Serverless SSR 应用开发流程:

所以,我们可以按照这个流程来快速搭建一个Serverless SSR应用。首先,我们可以通过npm init初始化一个Serverless SSR项目:

npm init ssr-app my-ssr-project --template=serverless-react-ssr

完成之后,我们可以安装必要的依赖:

npm i

然后进行本地开发,调试等工作,完成之后,我们可以快速将项目部署到阿里云函数计算上:

npm run deploy

这个过程需要阿里云函数计算的开发者工具Funcruft参与,部署完成之后,我们可以看到部署结果:

通过浏览器,我们可以体验效果:

至此,我们通过ssr将一个Serverless SSR应用部署到了阿里云函数计算上。

总结

阿里巴巴前端技术专家狼叔曾在知乎上回复问题“前端为什么要关注 Serverless?“说到:在2020年,基于FaaS之上的渲染已经获得大家的认可。另外大量的Node.js的BFF(Backend for frontend)应用已经到了需要治理的时候,BFF感觉和当年的微服务一样,太多了之后就会牵扯到管理成本,这种情况下Serverless是个中台内敛的极好解决方案。对前端来说,SSR让开发变得简单,基于FaaS又能很好的收敛和治理BFF应用,结合WebIDE,一种极其轻量级基于Serverless的前端研发时代已经来临了。

其实不然,Serverless架构带给诸多开发者的,不仅仅是诸多开发思路的转变,诸多角色的转变,诸多工作重心的转变,其实Serverless架构带给开发者们的还有整个技术体系的革新,正如UC伯克利在文章《Cloud Programming Simplified: A Berkeley View on Serverless Computing》中说的那样:Serverless是更加安全、易用的编程,不仅具有高级语言的抽象能力,还有很好的细粒度的隔离性(原文:We expect serverless computing to become simpler to program securely than serverful computing, benefiting from the high level of programming abstraction and the fine-grained isolation of cloud functions.)。在更安全、易用的编程模式下,Serverless架构不仅仅带给前端更多的机会,同样也带给后端研发、运维同学、甚至更多角色更多的转变。与其说Serverless 将会成为云时代默认的计算范式,将会取代 Serverful 计算,意味着服务器 - 客户端模式的终结,不如说Serverless将会成为云时代更多人关注的对象,通过Serverless的特性,给更多行业新的机会,给更多角色新的机会,意味着行业技术的革新,传统开发模式升级,整体技术架构的再次进步。

本文通过对Serverless与SSR的融合,通过ssr框架在阿里云函数计算上部署Serverless SSR应用,希望读者可以发挥更多的思路,将前端技术与Serverless进一步结合,发挥Serverless架构的优势,赋能业务进一步将本提效

相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
目录
相关文章
|
4月前
|
弹性计算 前端开发 JavaScript
Serverless痛点解决问题之实现SSR 应用的页面瞬开如何解决
Serverless痛点解决问题之实现SSR 应用的页面瞬开如何解决
42 1
|
Serverless
《组件即函数和Serverless SSR实践》电子版地址
组件即函数和Serverless SSR实践--狼叔
121 0
《组件即函数和Serverless SSR实践》电子版地址
|
存储 弹性计算 开发框架
使用Serverless搭建Nuxt SSR 应用
Serverless搭建Nuxt SSR 应用
使用Serverless搭建Nuxt SSR 应用
|
新零售 弹性计算 运维
当 SSR 遇上 Serverless,轻松实现页面瞬间开
最近随着 Rax SSR 完成渲染性能 6x React 的提升,以及工程上 Serverless 发布形式的对接,我想是时候跟大家介绍下 Rax SSR 了。
2469 0
当 SSR 遇上 Serverless,轻松实现页面瞬间开
|
前端开发 Serverless API
结合阿里云云开发平台,全程上云开发Serverless SSR应用
正如上一篇文章所介绍的FaaS场景下的SSR框架,已经添加到阿里云云开发平台的默认解决方案当中。结合阿里云的cloudIDE功能,我们可以所有的开发,发布操作都在云上完成无需本地配置开发环境,使用起来十分的方便。
2046 0
结合阿里云云开发平台,全程上云开发Serverless SSR应用
|
移动开发 运维 前端开发
前端新思路:组件即函数和Serverless SSR实践
在今天,对于Node.js运维和高并发依然是很有挑战的,为了提效,将架构演进为页面即服务,可是粒度还不够,借着云原生和Serverless大潮,无运维,轻松扩展,对前端是极大的诱惑。那么,基于FaaS之上,前端有哪些可能性呢?
前端新思路:组件即函数和Serverless SSR实践
|
Web App开发 移动开发 人工智能
看优酷 Node 重构之路,Serverless SSR 未来可期
在2017年底,优酷只有Passport和土豆的部分页面用Node.js,PC和H5核心页面还都是PHP模板渲染。而最近2年,基于阿里巴巴的技术体系,我们对PC、H5多端进行了技术改造。在2019年,React SSR第一次且成功地扛起双11重任,具有一定意义。
看优酷 Node 重构之路,Serverless SSR 未来可期
|
3月前
|
人工智能 自然语言处理 Serverless
阿里云函数计算 x NVIDIA 加速企业 AI 应用落地
阿里云函数计算与 NVIDIA TensorRT/TensorRT-LLM 展开合作,通过结合阿里云的无缝计算体验和 NVIDIA 的高性能推理库,开发者能够以更低的成本、更高的效率完成复杂的 AI 任务,加速技术落地和应用创新。
175 13
|
2天前
|
人工智能 Serverless API
尽享红利,Serverless构建企业AI应用方案与实践
本次课程由阿里云云原生架构师计缘分享,主题为“尽享红利,Serverless构建企业AI应用方案与实践”。课程分为四个部分:1) Serverless技术价值,介绍其发展趋势及优势;2) Serverless函数计算与AI的结合,探讨两者融合的应用场景;3) Serverless函数计算AIGC应用方案,展示具体的技术实现和客户案例;4) 业务初期如何降低使用门槛,提供新用户权益和免费资源。通过这些内容,帮助企业和开发者快速构建高效、低成本的AI应用。
33 12
|
4月前
|
Serverless API 异构计算
函数计算产品使用问题之修改SD模版应用的运行环境
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。

热门文章

最新文章

相关产品

  • 函数计算
  • 下一篇
    DataWorks