Skip to content

Serverless的适用场景:AI、微服务、WEB、实时文件处理

Serverless适用场景

底层还是一个标准的程序代码,而因为他随时启停,更灵活的动态资源分配的优势,其更适合于如下场景:

微服务

Serverless 架构可以用于构建微服务,每个函数就是一个微服务,可以独立部署和扩展。 在微服务架构中,每个服务都是一个独立的应用,可以独立部署、升级和扩展。这与 Serverless 架构的理念非常相似,每个函数就像一个微服务,可以独立部署和扩展。 在 Serverless 架构中,每个函数都是无状态的,这意味着函数的每次执行都是独立的,不依赖于任何外部状态。这使得 Serverless 函数非常适合用于构建微服务,因为微服务也应该是无状态的,以便于独立扩展。 此外,Serverless 架构还提供了自动扩展的能力。当请求量增加时,Serverless 平台会自动创建更多的函数实例来处理请求。这也是微服务架构的一个重要特性,即能够根据负载自动扩展。 例如,淘宝已经将serverless用于其核心的用户浏览(包含搜索推荐)的核心链路的微服务中,用来处理浏览的波动。同时消除了许多传统微服务架构的复杂性,比如服务的部署、管理和扩展。

实时文件处理

当用户上传文件时,可以触发一个 Serverless 函数来处理这个文件。 例如进行图像压缩或视频转码。

  1. 图片处理:用户上传图片后,可以立即触发一个 Serverless 函数来进行图片处理,如压缩、裁剪、添加水印等。例如,美团点评在用户上传餐厅照片时,就会用 Serverless 函数进行图片处理。
  2. 文档转换:用户上传文档后,可以触发一个 Serverless 函数来进行文档转换,如将 Word 文档转换为 PDF。例如,阿里云的函数计算服务就提供了这样的功能。
  3. 视频转码:用户上传视频后,可以触发一个 Serverless 函数来进行视频转码,以适应不同设备的播放需求。例如,优酷视频就使用了这种技术来处理用户上传的视频。Netflix 就在使用 AWS Lambda 来处理其视频流的编码。
  4. 音频转文字:用户上传音频文件后,可以触发一个 Serverless 函数来进行语音识别,将音频转换为文字。例如,喜马拉雅 FM 在处理用户上传的音频时,就会用到这种技术。

这些都是 Serverless 架构在实时文件处理方面的应用。通过使用 Serverless 架构,开发者可以专注于业务逻辑,而无需关心基础设施的管理和扩展问题。

AI的训练和推理任务

Serverless 架构非常适合处理 AI 的请求。AI 应用通常需要大量的计算资源,但这些资源的需求并不是持续的,而是有高有低。Serverless 架构可以根据需求自动扩展和缩减资源,这使得它非常适合处理 AI 的请求。 尤其是在当前AI训练成本高企的背景下,用函数计算的方式使用AI是非常可行的方法。

定时任务

Serverless 架构可以用于执行定时任务,用户可以设置一个函数在特定的时间或者按照特定的间隔被触发,这个函数可以执行各种任务,比如数据备份、清理、报告生成等。 以下是一些具体的例子:

  1. 数据备份:例如,阿里云的函数计算服务可以设置一个定时任务,每天在固定的时间备份数据库。
  2. 日志清理:例如,腾讯云的 SCF(Serverless Cloud Function)可以设置一个定时任务,每周清理一次日志文件。
  3. 生产网站:github actions就是一个典型的函数。
  4. 定时推送:例如,美团点评可以设置一个定时任务,每天早上向用户推送一条早餐优惠信息。
  5. 定时检查:例如,滴滴出行可以设置一个定时任务,每小时检查一次服务器的运行状态。

WEB任务

因为serverless 可以根据请求的数量自动扩展和缩减资源,所以非常适合一些个人网站和后台网站。而且支持python java nodejs等多种语言,非常适合用来处理web请求,ssr等。没有调用就没有费用。 比如您现在看到的这个serverless-devs网站就是托管在函数计算上的。