入门 Serverless——简介与实践

本文涉及的产品
简介: 入门 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?
相关实践学习
基于函数计算一键部署掌上游戏机
本场景介绍如何使用阿里云计算服务命令快速搭建一个掌上游戏机。
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
目录
相关文章
|
1月前
|
人工智能 NoSQL Serverless
基于函数计算3.0 Stable Diffusion Serverless API 的AI艺术字头像生成应用搭建与实践的报告
本文主要分享了自己基于函数计算3.0 Stable Diffusion Serverless API 的AI艺术字头像生成应用搭建与实践的报告
510 6
基于函数计算3.0 Stable Diffusion Serverless API 的AI艺术字头像生成应用搭建与实践的报告
|
9月前
|
存储 人工智能 Serverless
微服务和 Serverless 架构-函数计算 FC 简介及应用场景
微服务和 Serverless 架构-函数计算 FC 简介及应用场景
796 0
微服务和 Serverless 架构-函数计算 FC 简介及应用场景
|
7天前
|
分布式计算 运维 Serverless
通过Serverless Spark提交PySpark流任务的实践体验
EMR Serverless Spark服务是阿里云推出的一种全托管、一站式的数据计算平台,旨在简化大数据计算的工作流程,让用户更加专注于数据分析和价值提炼,而非基础设施的管理和运维。下面就跟我一起通过Serverless Spark提交PySpark流任务吧。
45 1
|
1月前
|
Serverless
函数计算的功能与使用入门训练营等你
函数计算的功能与使用入门训练营等你
29 0
|
9月前
|
编解码 人工智能 运维
课时9:典型案例2:函数计算在音视频场景实践(三)
典型案例2:函数计算在音视频场景实践
508 0
|
9月前
|
人工智能 运维 监控
|
6月前
|
SQL 弹性计算 运维
畅捷通的 Serverless 探索实践之路
畅捷通非 Serverless 架构向 Serverless 架构转型,提高了5个核心运行稳定性,同时管理简化运维工作,真正的提升系统资源利用率。
128912 1
畅捷通的 Serverless 探索实践之路
|
6月前
|
运维 Serverless API
Serverless云开发入门
Serverless云开发入门
|
1月前
|
运维 中间件 Java
淘宝权益玩法平台的Serverless化实践
淘宝权益玩法平台的Serverless化实践
242 0
|
8月前
|
人工智能 运维 Serverless
基于函数计算模板部署AI应用实践
在本实验场景中,将向大家介绍如何基于阿里云函数计算FC服务部署Stable Diffusion实现文字到图片的生成;以及部署ImageAI 目标检测应用,对现有图片内容进行检测。

热门文章

最新文章