Serverless 架构在前端应用领域的价值|学习笔记

简介: 快速学习 Serverless 架构在前端应用领域的价值

开发者学堂课程【Serverless 架构在前端应用领域的价值:Serverless 架构在前端应用领域的价值】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/845/detail/14015


Serverless 架构在前端应用领域的价值

l 前端发展史简介

l 前端的诞生

1990 年,第一个 Web 浏览器诞生,1991 年万维网诞生,标志着前端技术的开始。

l 前端的应用场景变迁

l 前端开发语言能力的变化

l Serverless 又给前端带来了什么?

思考三个问题:

Serverless 跟前端的关联在什么地方?

Serverless 跟做客户端开发的有没有关系?

Serverless 带给 web 开发的改变是什么?

 

l Serverless跟前端的关联

Javascript、python 这类解析执行型的语言,天然对 Serverless 冷启动有着友好的支持,成为 Serverless 语言开发的主力。

58% 的用户使用 Python , Node.js 则占据了 31% 的份额,Java、Go、.NET Core和 Ruby 的份额均未超过 10%。

小型的 lambda 运行环境中,Nodejs 份额高于 Python,企业级组织中,Python 的使用频率则是 Nodejs 的4倍。

l 站在 Serverless 肩上

前端工程师构建服务的能力无限加强

前端工程师的生产力也大幅提高。

快速交付

u 不用再搭建服务器,不用为保障高可用,安全编写非业务代码,可以大幅缩短项目交付的时间

运维无忧

u Serverless 服务可以完成自动扩缩容,不用担心大规模流量冲击完备的监控告警体系和链路追踪能力方便故障定位

成本降低

u 用完即走的特性可以帮助避免计算资源的浪费

l Serverless跟做客户端开发的有没有关系?

图片8.png

传统的客户端想操作服务器上的数据库必须经过服务端。

图片9.png

客户端跟网关的通道建成后,可以透明化对服务逻辑的调用,可以让客户端看起来可以直接操作数据库,文件存储,登录注册等服务端的功能。

l Serverless 带来新的客户端访问服务端形式

Serverless 让通用的服务端能力形态沉淀成 BAAS,再通过 graphql 建立数据通道来让不同的客户端直接访问,可以进一步提升前端应用的开发效率,这也会成未来端侧访问服务的新形态。


l Serverless 带给 web 开发的改变是什么?

传统的 web 站点的开发流程:

图片10.png

l 传统 web 站点开发的问题

1. 耗时长:从设计开发测试部署上线往往经历数周甚至数月才能有上线。

2. 访问体验一般:SEO,站点加速等都需要单独专项做,一般新手不太容易搞定。

3. 更新迭代慢:每次更新重新部署上线的周期长,更新内容如果是动态的研发时间也会比较长。

 

l 现代化Web 站点构建介绍

l 建站演示

准备工作:

1. 进入 Serverless devs官网,下载桌面开发工具 Serverless Desktop (支持windows 和 mac 版)。

2. 申请注册阿里云账号,并开通阿里云函数计算产品(免费开通)。

创建演示步骤:

打开 start—jamstack,点击下载,在本地选择一个合适目录,填写预置参数时写用户自定义域名确认配置,点击执行,启动应用,回到工作空间,点击应用信息部分的域名,站点创建完毕。

打开基本信息面板,点击图标,使用任意 IDE 打开项目,进入 serverlessdevs-website 项目下进行应用安装,启动会自动打开一个预览环境,然后在源代码目录下做一次源代码更新,对当前源代码进行构建,生成一个静态的目录。回到配置信息面板,再执行一次部署,可以看到应用已经完成一次更新。

动态编程操作:

站点是纯静态的怎么具备一些动态能力?

打开代码,contributor 目录,在命令行输入

scli kv put contributor.json_kv/contributor.json  现在已经成功把 contributor 的内容做了一次上传,而 contributor.Json 这个名字有一个可以直接访问的能力。具体怎么通过站点去访问 contributor 的内容呢?官方提供了一个固定的路径

就可以访问到刚才上传上去的内容。

l 端云调试

调试始终是 Serverless 应用的最棘手的部分,我们开发的应用是在本地,部署的应用是在线上。并且线上的环境跟本地开发环境有着巨大的差异,通常我们只能通过在线打印输出,然后还得通过日志平台查看日志判断问题,再回来本地修改代码,一来一回耗时非常巨大,而且效果也不好。Serverless Devs 提供了自己的解决方案,我们巧妙的设计了一个在线的辅助函数,辅助函数完整复刻线上代码,然后通过本地跟辅助函数建设通道实现本地的代码调试效果。

基于这样的能力我们再来看看具体怎么在 Serverless Hub 实施的, 本次演示使用的是 Serverless Desktop, 大家可以尝试跟着我的操作步骤进行使用:

1. 新建一个 Serverless 应用,并把它部署到线上

我们可以通过 Serverless Desktop 的应用市场搜索 xxx 应用模板,然后加载到本地,然后通过可视化配置部分修改相应的服务和函数内容,进行部署。

2. 进入工作空间->应用管理->应用详情->端云调试

按照提示准备好前置条件,比如安装docker demon 指定调试端口,启动资源准备,这个时候会创建辅助函数,同时构建 vscode 的 debug 文件。

启动好之后,使用 vscode 打开工程目录,查看debug配置文件.vscode/launch.json

以这个启动 debug 模式。

3、发起调用

切换到"本地调试配置"面板,点击"发起调用"

可以发现  vscode 触发调试

调试结束回到 Serverless Desktop 页面,我们可以看到输出效果:

这里我们发起调用是向这个服务的根目录发起,如果我们想向其他的路由地址发起调用该怎么操作呢?我们可以复制发起调用后输出的基础地址。

然后贴到 postman, 再往后拼接上我们的测试路由地址,比如,想访问"/appCenter/getSpecial",可以拼接成"<基础地址>/appCenter/getSpecial"然后"Send"这个请求。

通过这样的方式我们可以深入细节知道每一行代码的调用问题到底出在哪里,极大的提高了我们的开发效率。

4、清空环境

调试结束后不要忘了清楚调试环境,包括关闭本地的容器地址,以及清理线上的函数。

综上我们完成了一次完整的调试过程。


l 总结

新一代的 web 研发范式:

1. 研发阶段:按需的动态化

站点保持静态化可以有很多优势,诸如安全,访问快速,搜索引擎友好等。但动态化是不可避免的,只不过动态数据可以按需设定,并非纯粹API。

2. 部署阶段:动静态部署分离

最大化的利用云服务的优势静态资源存储到 OSS 上,并借由 CDN 加速实现极致访问,动态接口则托管到 Serverless 平台,最大限度的利用其单性伸缩,安全容错的优势。

3. 上线交付阶段:交付优先,极致体验

站点可以快速提供线上预览能力,上线后,访问性能,安全,搜索优化等都需要具备。

4. 持续集成:敏捷开发,迭代快速

功能的开发到更新优化实现流程自动化,需使用。

相关实践学习
【玩转ComfyUI】基于函数计算一键部署AI生图平台ComfyUI
本次实验将带大家通过使用阿里云产品函数计算FC,快速使用ComfyUI实现更高质量的图像生成。
从 0 入门函数计算
在函数计算的架构中,开发者只需要编写业务代码,并监控业务运行情况就可以了。这将开发者从繁重的运维工作中解放出来,将精力投入到更有意义的开发任务上。
相关文章
|
12月前
|
人工智能 JavaScript 前端开发
GenSX (不一样的AI应用框架)架构学习指南
GenSX 是一个基于 TypeScript 的函数式 AI 工作流框架,以“函数组合替代图编排”为核心理念。它通过纯函数组件、自动追踪与断点恢复等特性,让开发者用自然代码构建可追溯、易测试的 LLM 应用。支持多模型集成与插件化扩展,兼具灵活性与工程化优势。
901 6
|
前端开发 JavaScript 应用服务中间件
在Docker部署的前端应用中使用动态环境变量
以上步骤展示了如何在 Docker 配置过程中处理并注入环墨遁形成可执行操作流程,并确保最终用户能够无缝地与之交互而无须关心背后复杂性。
647 13
|
人工智能 Cloud Native 中间件
划重点|云栖大会「AI 原生应用架构论坛」看点梳理
本场论坛将系统性阐述 AI 原生应用架构的新范式、演进趋势与技术突破,并分享来自真实生产环境下的一线实践经验与思考。
|
机器学习/深度学习 人工智能 vr&ar
H4H:面向AR/VR应用的NPU-CIM异构系统混合卷积-Transformer架构搜索——论文阅读
H4H是一种面向AR/VR应用的混合卷积-Transformer架构,基于NPU-CIM异构系统,通过神经架构搜索实现高效模型设计。该架构结合卷积神经网络(CNN)的局部特征提取与视觉Transformer(ViT)的全局信息处理能力,提升模型性能与效率。通过两阶段增量训练策略,缓解混合模型训练中的梯度冲突问题,并利用异构计算资源优化推理延迟与能耗。实验表明,H4H在相同准确率下显著降低延迟和功耗,为AR/VR设备上的边缘AI推理提供了高效解决方案。
1948 0
|
机器学习/深度学习 自然语言处理 算法
48_动态架构模型:NAS在LLM中的应用
大型语言模型(LLM)在自然语言处理领域的突破性进展,很大程度上归功于其庞大的参数量和复杂的网络架构。然而,随着模型规模的不断增长,计算资源消耗、推理延迟和部署成本等问题日益凸显。如何在保持模型性能的同时,优化模型架构以提高效率,成为2025年大模型研究的核心方向之一。神经架构搜索(Neural Architecture Search, NAS)作为一种自动化的网络设计方法,正在为这一挑战提供创新性解决方案。本文将深入探讨NAS技术如何应用于LLM的架构优化,特别是在层数与维度调整方面的最新进展,并通过代码实现展示简单的NAS实验。
521 0
|
Web App开发 Linux 虚拟化
Omnissa Horizon 8 2506 (8.16) - 虚拟桌面基础架构 (VDI) 和应用软件
Omnissa Horizon 8 2506 (8.16) - 虚拟桌面基础架构 (VDI) 和应用软件
620 0
Omnissa Horizon 8 2506 (8.16) - 虚拟桌面基础架构 (VDI) 和应用软件
|
Cloud Native Serverless API
微服务架构实战指南:从单体应用到云原生的蜕变之路
🌟蒋星熠Jaxonic,代码为舟的星际旅人。深耕微服务架构,擅以DDD拆分服务、构建高可用通信与治理体系。分享从单体到云原生的实战经验,探索技术演进的无限可能。
1053 4
微服务架构实战指南:从单体应用到云原生的蜕变之路
|
弹性计算 API 持续交付
后端服务架构的微服务化转型
本文旨在探讨后端服务从单体架构向微服务架构转型的过程,分析微服务架构的优势和面临的挑战。文章首先介绍单体架构的局限性,然后详细阐述微服务架构的核心概念及其在现代软件开发中的应用。通过对比两种架构,指出微服务化转型的必要性和实施策略。最后,讨论了微服务架构实施过程中可能遇到的问题及解决方案。
|
Cloud Native Devops 云计算
云计算的未来:云原生架构与微服务的革命####
【10月更文挑战第21天】 随着企业数字化转型的加速,云原生技术正迅速成为IT行业的新宠。本文深入探讨了云原生架构的核心理念、关键技术如容器化和微服务的优势,以及如何通过这些技术实现高效、灵活且可扩展的现代应用开发。我们将揭示云原生如何重塑软件开发流程,提升业务敏捷性,并探索其对企业IT架构的深远影响。 ####
575 3

热门文章

最新文章

相关产品

  • 函数计算