当前位置:   article > 正文

Serverless介绍_serverleless主要的应用场景和应用需求

serverleless主要的应用场景和应用需求

serverless介绍

1.serverless简介

Serverless是一种架构理念,其核心思想是将提供服务资源的基础设施抽象成各种服务,以API接口的方式供用户按需调用,真正做到按需伸缩按使用收费。基于这种架构能构建出多种应用场景,适用于各行各业。只要是对轻计算高弹性无状态等场景有诉求,您都可以通过本文来熟悉一些基础概念,并从相关场景中获得启发。

Serverless是指构建和运行不需要服务器管理的应用程序。它描述了一种更细粒度的部署模型,即将应用程序打包为一个或多个功能,上传到平台,然后执行、扩展和计费,以响应当时确切的需求。

Serverless所谓的无服务器并不是没有服务器,而是说Serverless的用户不再需要在服务器配置、维护、更新、扩展和容量规划上花费时间和资源,可以将更多的精力放到业务逻辑本身,至于服务器,则把更专业的事情交给更专业的人去做,即由云厂商来提供统一的运维。

2.什么情况选择serverless

虽然serverless计算广泛使用,但它仍然相对较新。通常,当工作负载为以下情况时,应将serverless方法视为首选:

  • 异步,并发,易于并行化为独立的工作单元
  • 在扩展要求方面存在较大的差异性
  • 无状态,短暂的,对瞬间冷启动时间没有重大需求
  • 在业务需求变更方面具有高度灵活性,需要满足开发的敏捷性

3.serverless进化史

关于Serverless架构的演进,网上比较流行用一张人类形态发展史图进行说明。从爬行猿人到蹲着的类猿人,再到直立人类,最后到使用工具的新兴人类。

人类的每一次进化都伴随着生产效率的提升。同理,整个IT计算的发展历程,也是一个逐步提高生产效率的历程,具体演进图如下所示。

在这里插入图片描述

4.serverless特点

  • 实现了细粒度的计算资源分配。
  • 不需要预先分配资源。
  • 具备真正意义上的高度扩容和弹性。
  • 按需使用,按需计费。

5.Serverless 优势

多语言,多框架支持、远程调试

  • Serverless 支持众多编程语言,包含:Node.js, Python, PHP, Java, Go 等。
  • Serverless 支持使用框架开发框架进行开发,包括:Express, Koa, Egg.js, next.js, nuxt.js, react.js, vue.js, Flask, Laravel 等。
  • Serverless 拥有远程开发模式,开发者可以轻松在本地调试云端代码。

灵活配置、一键部署、日志报警

  • Serverless 通过 serverless.yml 和简单配置即可完成所有基础设施(云函数、API 网关、COS、DB 等)的创建,部署,和修改。
  • Serverless 可以快速在不同环境(stage)和资源地区(region)进行应用部署。同时部署速度可以提升最多 20 倍。
  • Serverless 提供了更强大的日志收集,统计分析,异常报警服务。开发者无需任何配置即可直接使用。

高可用、低成本、弹性伸缩

  • Serverless 部署的应用可靠性可以达到 99.5% 的可靠性,同时支持灰度发布及版本快速切换。
  • Serverless 采用按量计费,在闲置时间不收取任何费用,相比传统付费方式可节省 80% 以上的使用成本。
  • Serverless 可以进行弹性伸缩,进一步保证了应用的可用性并降低了使用维护成本。

6.Serverless工作流程

在实际生产中,Serverless架构通常都是FaaS与BaaS的结合,并且具备弹性伸缩和按量付费的特性。

如图所示,当开发者想要开发一个项目的时候,通常只需要根据FaaS提供商所提供的Runtime,选择一个熟悉的编程语言,然后进行项目开发、测试(图中步骤1);
完成之后将代码上传到FaaS平台(图中步骤2);
上传完成之后,只需要通过API/SDK(图中步骤3)或者一些云端的事件源(图中步骤3)触发上传到FaaS平台的函数,FaaS平台就会根据触发的并发度等弹性执行对应的函数(图中步骤4);
最后用户可以根据实际资源使用量进行按量付费(图中步骤5)。

在这里插入图片描述

7.应用场景

7.1 事件请求场景

  • 定制图片
    网店店家进行商品图片维护时,需要根据商品陈列位置,将图片动态切割成不同尺寸,或者打上不同水印。当店家把图片上传到对象存储 OSS上,会通过函数计算上定制的trigger来触发函数计算。根据计算规则,生成不同尺寸的图片,满足在线商品陈列需求,整个过程无需再搭建额外服务器,也无需网站美工干预

  • 固定时间触发
    事件触发固定时间触发,例如在夜间或者服务空闲时间来处理繁忙时候的交易数据,或者运行批量数据,来生成数据报表,通过Serverless方式,不用再额外购买利用率并不高的处理资源

7.2 流量突发场景

  • 弹性扩展应对突发流量
    移动互联网应用经常会面对突发流量场景。例如:移动应用的通常流量情况是 QPS 20,但每隔 5 分钟会有一个持续 10s 的 QPS 200 流量(10 倍于通常流量)。传统架构下,企业必须扩展 QPS 200 的硬件能力来应对业务高峰,即使高峰时间仅占整个运行时间的4%。在Serverless架构下,您可以利用弹性扩展特性,快速构建新的计算能力来满足当前需求,当业务高峰后,资源能够自动释放,有效节省成本。

  • 转码和流量扩容
    视频直播某次专场活动,由于无法预估会有多少点播的观众视频接入,把转码和流量扩容这部分内容通过Function来处理,无需考虑并发和流量扩容。

7.3 处理大数据

由于安全审计问题,您需要从OSS(多个地域)过去一年的数据(1 个小时一个文件)中找出特定关键字访问的日志,同时做聚合运算(计算出总值)。如果使用阿里云函数计算,您将高峰期每 2 小时的访问日志,或者低谷期每 4 小时的访问日志交给一个计算函数处理,并将处理结果存到RDS中。使用一个函数分派数据给另一个函数,使其执行成千上万个相同的实例。

这样会同时运行近千个计算函数(24 x 365 / 10),在不到一分钟的时间内完成整个工作。同样的事情交给ECS+计算脚本来做计算,单单为这些instance配置网络就让人头疼(不同地域无法走内网下载OSS文件):instance的数量可能已经超出了子网中剩余IP地址的数量(比如,您的VPC使用了24位掩码)。

8.具体案例

8.1 实时文件处理

视频应用、社交应用等场景下,用户上传的图片、音视频往往总量大、频率高,对处理系统的实时性和并发能力都有较高的要求。例如,对于用户上传的图片,可以使用多个函数对其分别处理,包括图片的压缩、格式转换、鉴黄鉴恐等,以满足不同场景下的需求,如下图所示。

在这里插入图片描述

8.2 数据ETL处理

通常要对大数据进行处理,需要搭建Hadoop或Spark等相关大数据的框架,同时要有一个处理数据的集群。通过Serverless技术,只需要将获得的数据不断存储到对象存储,并且通过对象存储相关触发器触发数据拆分函数进行相关数据或任务的拆分,然后再调用相关处理函数,处理完成之后,存储到云数据库中。

函数计算近乎无限扩容的能力可以使用户轻松地进行大容量数据的计算。利用Serverless架构可以对源数据并发执行多个mapper和reducer函数,在短时间内完成工作,整个流程可以简化为如下图所示。相比传统的工作方式,使用Serverless架构更能避免资源的闲置浪费,从而节省成本。

在这里插入图片描述

8.3 实时数据处理

基于Serverless架构所支持的丰富的事件源和事件触发机制,可以通过几行代码和简单的配置对数据进行实时处理,例如对对象存储压缩包进行解压、对日志或数据库中的数据进行清洗、对MNS消息进行自定义消费等,如图1-26所示。

在这里插入图片描述

8.4 AI推理预测

AI模型完成训练后,在对外提供推理服务时,可以使用Serverless架构将数据模型包装在调用函数中,在实际用户请求到达时再运行代码。

相对于传统的推理预测,这样做的好处是,无论是函数模块、后端的GPU服务器,还是对接的其他相关的机器学习服务,都可以按量付费以及自动伸缩,从而在保证性能的同时确保服务的稳定,如下图所示。

在这里插入图片描述

8.5 IoT后端

目前很多厂商都推出了智能音箱产品。用户对智能音箱说话,智能音箱通过互联网将这句话传递给后端服务,然后得到反馈结果并返回给用户。

通过Serverless架构,可以将API网关、云函数以及数据库产品进行结合来替代传统的服务器或者虚拟机等。这样一方面可以确保资源的按量付费,只有在使用的时候,函数部分才会计费,另一方面当用户量增加之后,通过Serverless实现的智能音箱系统的后端也会进行弹性伸缩,可以保证用户侧的服务稳定。

另外,对其中某个功能进行维护相当于对单个函数进行维护,并不会对主流程产生额外风险,相对来说更安全、更稳定。处理流程示例,如下图所示。

在这里插入图片描述

8.6 Web应用/移动应用后端

Serverless架构和云厂商所提供的其他云产品进行结合,开发者能够构建可弹性扩展的移动或Web应用程序,轻松创建丰富的无服务器后端,而且这些程序可在多个数据中心高可用运行,无须在可扩展性、备份冗余方面执行任何管理工作。Web应用后端处理示例如下图所示。

在这里插入图片描述

8.7 音视频转码

在视频应用、社交应用等场景下,用户会上传一些视频,通常上传的视频会进行一些转码,包括转换为不同的清晰度。

Serverless技术与对象存储相关产品组合后,可利用对象存储相关触发器,即上传者将视频上传到对象存储中,触发Serverless架构的计算平台(FaaS平台)对其进行处理,处理之后将其重新存储到对象存储中,这个时候其他用户就可以选择编码后的视频进行播放,还可以选择不同的清晰度,如下图所示。

在这里插入图片描述

9.总结

综上所述,Serverless架构的典型应用场景更多是由Serverless架构的特点决定的。当然,随着时间的不断推移,Serverless架构也在不断演进,特点会更加突出,劣势会被弥补,适合的场景也会更丰富。

10.参考

阿里云-Serverless应用场景
Tencent Serverless 简介
什么是Serverless?有哪些应用?终于有人讲明白了

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/369668?site
推荐阅读
相关标签
  

闽ICP备14008679号