入门 Serverless——简介与实践

本文涉及的产品
函数计算FC,每月15万CU 3个月
简介: 入门 Serverless——简介与实践

Serverless,即无服务架构。是指由第三方云计算供应商以服务的方式为开发者提供所需功能,例如数据库、消息,以及身份验证等。它的核心思想是让开发者专注构建和运行应用,而无需管理服务器。

Serverless 技术的应用一般有两种:Faas(Function as a Service) 函数即服务和 Baas(Backend as a Service) 后端即服务。

优点

Serverless 最大的优点就是自动扩展伸缩、无需自己管理。

在以往部署一个应用时,需要经历购买服务器、安装操作系统、购买域名等等一系列步骤,应用才能真正的上线。后来有了云服务器,我们就省去了购买服务器、安装操作系统这些操作步骤。只需要在云服务器上搭建环境、安装数据库就可以部署应用了。

但是这仍然有个问题,当网站访问量过大时,你需要增加服务器;访问量过小时,需要减少服务器。如果使用 Serverless,你就不需要考虑这些,云服务商会帮你管理这一切。云服务商会根据你的访问量自动调整所需的资源。

缺点

当应用部署在云上,并且使用云存储或云数据库,那可能会让我们的应用访问速度变得比较慢。因为网络的访问速度比内存和硬盘差了一到两个数量级。

Faas

什么是函数即服务?

一个函数通常用于处理某种业务逻辑,例如一个 abs() 函数,它将返回所传参数的绝对值。我们可以把这个函数托管到 Faas 平台,由平台提供容器并运行这个函数。当执行函数时,只需要提供函数所需的参数,就可以在不部署应用的情况下得到函数的执行结果。

无状态

Faas 运行函数的容器是无状态的,上一次的运行效果和下一次的运行效果是无关的。如果需要存储状态,则需要使用云储存或者云数据库。

冷启动

Faas 函数如果长时间未使用,容器就会对其进行回收。所以函数在首次调用或长时间未使用时,容器就需要重新创建该函数的实例,这个过程称为冷启动,一般耗时为数百毫秒。

既然有冷启动,就有热启动。例如容器刚刚调用完函数,过一会又有新的事件触发。这时由于函数仍未被回收,所以可以直接复用原有的函数实例,这被称为热启动。

事件驱动

Faas 函数需要通过触发事件来运行。我们可以指定不同的触发器:

  • HTTP 触发器
  • 对象存储
  • 定时触发
  • CDN 触发

...

其中 HTTP 触发器是最常见的,即通过 HTTP 请求触发。

低成本、按需收费

像以往我们购买的云服务器一般是采取包月、包年的计费方式,即使你买了不用也要收取费用。Faas 采取的是按需付费的方式,云服务商会根据你的实际使用量来收取费用,不使用不收费(一般来说,Baas 可按需付费,也可包年包月)。

需要配合 Baas 使用

Faas 如果单独使用的话,那它只适合部署一些工具类函数。因为它是无状态的,每次运行都可能是在不同的容器上,它不知道上一个函数的运行结果。所以如果要使用 Serverless 来部署整个应用,还得额外购买 OSS 云存储或者云数据库来提供数据存储服务(也就是需要配合 Baas 来使用)。

Baas

什么是后端即服务?

假设你是一个前端,现在要开发一个网站。前端部分你可以自己完成,但后端部分怎么办呢?这个时候就可以使用 Baas 了。也就是说,你只需编写和维护前端页面。其他的一切,例如数据库、身份验证、对象存储等等都由云服务商提供。你只需要在前端通过 API 调用它们就可以使用所需的服务。

Faas 和 Baas 的区别

Faas 其实是一个云计算平台,用户可以将自己写的函数托管到平台上运行。而 Baas 则是提供一系列的服务给用户运用,用户通过 API 调用。

其他不同点:

  • Faas 无状态,Baas 有状态。
  • Faas 运行的是函数,由开发者自己编写;Baas 提供的是服务,不需要开发者自己开发。

可以说 Faas 和 Baas 是两个不同的东西,但它们有一个共同点,就是无需自己管理服务器和资源的分配、整理,所以都属于 Serverless。

阿里云 Faas 实践

现在的阿里云、腾讯云都可以免费体验 Faas,下面以阿里云为例,演示一下如何使用 Faas。

打开阿里云 serverless,点击立即开通:

开通后(阿里云每个月提供一定额度的免费流量,可以利用这一点来学习如何使用 Serverless)如果没打开函数计算页面,请点击控制台搜索函数计算:

然后会提示是否授权,授权成功后,就可以查看刚才创建的函数。

箭头所指处是一个 API 地址,调用它可以触发你设置的函数。

使用 Serverless 框架

从刚才的示例可以发现,要想编写 Faas 函数只能在线编写,或者提前写好复制到阿里云。为了改善这种情况,现在有很多 Serverless 框架,可以让你在本地进行开发,开发完后再部署到阿里云或其他云上。

在这里推荐一下 midway 框架,主要是国人开发,具有非常详细的中文文档。根据文档的快速指引,就可以成功将函数部署到阿里云或其他云上。

小结

Serverless 最大的优点就是弹性扩容和无需亲自管理服务器。即使它也有不少缺点,但相对于优点来说,是可以忽略的,近几年来 Serverless 技术的火热程度也证实了这一点。目前 Serverless 技术仍有很大的发展空间值得我们去探索,毕竟还是一门“出生”不久的新技术。

参考资料

带你入门前端工程 全文目录:

  1. 技术选型:如何进行技术选型?
  2. 统一规范:如何制订规范并利用工具保证规范被严格执行?
  3. 前端组件化:什么是模块化、组件化?
  4. 测试:如何写单元测试和 E2E(端到端) 测试?
  5. 构建工具:构建工具有哪些?都有哪些功能和优势?
  6. 自动化部署:如何利用 Jenkins、Github Actions 自动化部署项目?
  7. 前端监控:讲解前端监控原理及如何利用 sentry 对项目实行监控。
  8. 性能优化(一):如何检测网站性能?有哪些实用的性能优化规则?
  9. 性能优化(二):如何检测网站性能?有哪些实用的性能优化规则?
  10. 重构:为什么做重构?重构有哪些手法?
  11. 微服务:微服务是什么?如何搭建微服务项目?
  12. Severless:Severless 是什么?如何使用 Severless?
相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
目录
相关文章
|
27天前
|
负载均衡 Serverless 持续交付
云端问道9期实践教学-省心省钱的云上Serverless高可用架构
详细介绍了云上Serverless高可用架构的一键部署流程
51 10
|
1月前
|
人工智能 Serverless API
尽享红利,Serverless构建企业AI应用方案与实践
本次课程由阿里云云原生架构师计缘分享,主题为“尽享红利,Serverless构建企业AI应用方案与实践”。课程分为四个部分:1) Serverless技术价值,介绍其发展趋势及优势;2) Serverless函数计算与AI的结合,探讨两者融合的应用场景;3) Serverless函数计算AIGC应用方案,展示具体的技术实现和客户案例;4) 业务初期如何降低使用门槛,提供新用户权益和免费资源。通过这些内容,帮助企业和开发者快速构建高效、低成本的AI应用。
81 12
|
1月前
|
Serverless 开发工具 开发者
活动实践 | 西游再现,函数计算一键部署 Flux 超写实文生图模型部署
这些图片展示了阿里巴巴云开发者生态的多个方面,包括开发工具、技术文档、社区交流、培训认证等内容,旨在为开发者提供全方位的支持和服务。
|
1月前
|
存储 弹性计算 关系型数据库
活动实践 | 告别资源瓶颈,函数计算驱动多媒体文件处理测评
本方案介绍了一种高效处理文件的方法,适用于企业办公和社交媒体应用。通过阿里云的函数计算、对象存储OSS和轻量消息队列,实现文件的异步处理,如格式转换和水印添加,有效减轻了核心应用的负担,提高了业务稳定性和资源利用率。方案包括云服务器ECS、云数据库RDS、OSS存储等组件,支持快速部署和资源清理。
|
2月前
|
监控 Serverless 云计算
探索Serverless架构:开发实践与优化策略
本文深入探讨了Serverless架构的核心概念、开发实践及优化策略。Serverless让开发者无需管理服务器即可运行代码,具有成本效益、高可扩展性和提升开发效率等优势。文章还详细介绍了函数设计、安全性、监控及性能和成本优化的最佳实践。
|
2月前
|
弹性计算 算法 搜索推荐
活动实践 | 通过函数计算部署ComfyUI以实现一个AIGC图像生成系统
ComfyUI是基于节点工作流稳定扩散算法的新一代WebUI,支持高质量图像生成。用户可通过阿里云函数计算快速部署ComfyUI应用模板,实现个性化定制与高效服务。首次生成图像因冷启动需稍长时间,之后将显著加速。此外,ComfyUI允许自定义模型和插件,满足多样化创作需求。
|
2月前
|
弹性计算 自然语言处理 搜索推荐
活动实践 | 基于函数计算部署GPT-Sovits模型实现语音生成
通过阿里云函数计算部署GPT-Sovits模型,可快速实现个性化声音的文本转语音服务。仅需少量声音样本,即可生成高度仿真的语音。用户无需关注服务器维护与环境配置,享受按量付费及弹性伸缩的优势,轻松部署并体验高质量的语音合成服务。
|
2月前
|
运维 监控 Serverless
揭秘云计算中的Serverless架构:优势、挑战与实践
揭秘云计算中的Serverless架构:优势、挑战与实践
111 0
|
4月前
|
运维 Kubernetes 前端开发
拥抱Knative, 合思加速Serverless化演进实践
合思信息基于阿里云容器服务Knative, 实现Serverless化演进的最佳实践。
拥抱Knative, 合思加速Serverless化演进实践
|
5月前
|
弹性计算 关系型数据库 Serverless
函数计算驱动多媒体文件处理:高效、稳定与成本优化实践
本次测评的解决方案《告别资源瓶颈,函数计算驱动多媒体文件处理》展示了如何利用阿里云函数计算高效处理多媒体文件。文档结构清晰、内容详实,适合新客户参考。方案提供了一键部署与手动部署两种方式,前者简便快捷,后者灵活性高但步骤较多。通过部署,用户可体验到基于函数计算的文件处理服务,显著提升处理效率和系统稳定性。此外,测评还对比了应用内处理文件与函数计算处理文件的不同,突出了函数计算在资源管理和成本控制方面的优势。
22737 20