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

本文涉及的产品
函数计算FC,每月15万CU 3个月
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
简介: 快速学习 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. 持续集成:敏捷开发,迭代快速

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

相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
8天前
|
人工智能 Serverless API
尽享红利,Serverless构建企业AI应用方案与实践
本次课程由阿里云云原生架构师计缘分享,主题为“尽享红利,Serverless构建企业AI应用方案与实践”。课程分为四个部分:1) Serverless技术价值,介绍其发展趋势及优势;2) Serverless函数计算与AI的结合,探讨两者融合的应用场景;3) Serverless函数计算AIGC应用方案,展示具体的技术实现和客户案例;4) 业务初期如何降低使用门槛,提供新用户权益和免费资源。通过这些内容,帮助企业和开发者快速构建高效、低成本的AI应用。
49 12
|
17天前
|
弹性计算 运维 Serverless
卓越效能,极简运维,体验Serverless高可用架构,完成任务可领取转轮日历!
卓越效能,极简运维,体验Serverless高可用架构,完成任务可领取转轮日历!
|
28天前
|
监控 Serverless 云计算
探索Serverless架构:开发实践与优化策略
本文深入探讨了Serverless架构的核心概念、开发实践及优化策略。Serverless让开发者无需管理服务器即可运行代码,具有成本效益、高可扩展性和提升开发效率等优势。文章还详细介绍了函数设计、安全性、监控及性能和成本优化的最佳实践。
|
11天前
|
弹性计算 Cloud Native Serverless
阿里云 SAE 邀您参加 Serverless 高可用架构挑战赛,赢取精美礼品
阿里云 SAE 邀您参加 Serverless 高可用架构挑战赛,赢取精美礼品。
|
1月前
|
运维 监控 Serverless
揭秘云计算中的Serverless架构:优势、挑战与实践
揭秘云计算中的Serverless架构:优势、挑战与实践
|
23天前
|
弹性计算 API 持续交付
后端服务架构的微服务化转型
本文旨在探讨后端服务从单体架构向微服务架构转型的过程,分析微服务架构的优势和面临的挑战。文章首先介绍单体架构的局限性,然后详细阐述微服务架构的核心概念及其在现代软件开发中的应用。通过对比两种架构,指出微服务化转型的必要性和实施策略。最后,讨论了微服务架构实施过程中可能遇到的问题及解决方案。
|
1月前
|
Cloud Native Devops 云计算
云计算的未来:云原生架构与微服务的革命####
【10月更文挑战第21天】 随着企业数字化转型的加速,云原生技术正迅速成为IT行业的新宠。本文深入探讨了云原生架构的核心理念、关键技术如容器化和微服务的优势,以及如何通过这些技术实现高效、灵活且可扩展的现代应用开发。我们将揭示云原生如何重塑软件开发流程,提升业务敏捷性,并探索其对企业IT架构的深远影响。 ####
44 3
|
1月前
|
Cloud Native 安全 数据安全/隐私保护
云原生架构下的微服务治理与挑战####
随着云计算技术的飞速发展,云原生架构以其高效、灵活、可扩展的特性成为现代企业IT架构的首选。本文聚焦于云原生环境下的微服务治理问题,探讨其在促进业务敏捷性的同时所面临的挑战及应对策略。通过分析微服务拆分、服务间通信、故障隔离与恢复等关键环节,本文旨在为读者提供一个关于如何在云原生环境中有效实施微服务治理的全面视角,助力企业在数字化转型的道路上稳健前行。 ####
|
22天前
|
Java 开发者 微服务
从单体到微服务:如何借助 Spring Cloud 实现架构转型
**Spring Cloud** 是一套基于 Spring 框架的**微服务架构解决方案**,它提供了一系列的工具和组件,帮助开发者快速构建分布式系统,尤其是微服务架构。
142 68
从单体到微服务:如何借助 Spring Cloud 实现架构转型
|
24天前
|
设计模式 负载均衡 监控
探索微服务架构下的API网关设计
在微服务的大潮中,API网关如同一座桥梁,连接着服务的提供者与消费者。本文将深入探讨API网关的核心功能、设计原则及实现策略,旨在为读者揭示如何构建一个高效、可靠的API网关。通过分析API网关在微服务架构中的作用和挑战,我们将了解到,一个优秀的API网关不仅要处理服务路由、负载均衡、认证授权等基础问题,还需考虑如何提升系统的可扩展性、安全性和可维护性。文章最后将提供实用的代码示例,帮助读者更好地理解和应用API网关的设计概念。
56 8

热门文章

最新文章

相关产品

  • 函数计算