- 深入浅出Serverless:技术原理与应用实践
- 陈耿
- 1076字
- 2023-07-20 18:08:33
1.6 Serverless的应用场景
通过将Serverless的理念与当前Serverless实现的技术特点相结合,Serverless架构可以适用于各种业务场景。下面是其中的一些例子。
1. Web应用
Serverless架构可以很好地支持各类静态和动态Web应用。比如,当前流行的RESTful API的各类请求动作(GET、POST、PUT及DELETE等)可以很好地映射成FaaS的一个个函数,功能和函数之间能建立良好的对应关系。通过FaaS的自动弹性扩展功能,Serverless Web应用可以很快速地构建出能承载高访问量的站点。
举一个有意思的例子,为了应对每5年一次的人口普查,澳大利亚政府耗资近1000万美元构建了一套在线普查系统。但是由于访问量过大,这个系统不堪重负而崩溃了。在一次编程比赛中,两个澳大利亚的大学生用了两天的时间和不到500美元的成本在公有云上构建了一套类似的系统。在压力测试中,这两个大学生的系统顶住了类似的压力。
2.移动互联网
Serverless应用通过BaaS对接后端不同的服务而满足业务需求,提高应用开发的效率。前端通过FaaS提供的自动弹性扩展对接移动端的流量,开发者可以更轻松地应对突发的流量增长。在FaaS的架构下,应用以函数的形式存在。各个函数逻辑之间相对独立,应用更新变得更容易,使新功能的开发、测试和上线的时间更短。
部分移动应用的大部分功能都集中在移动客户端,服务端的功能相对比较简单。针对这类应用,开发者可以通过函数快速地实现业务逻辑,而无须耗费时间和精力开发整个服务端应用。
3.物联网
物联网(Internet of Things, IoT)应用需要对接各种不同的数量庞大的设备。不同的设备需要持续采集并传送数据至服务端。Serverless架构可以帮助物联网应用对接不同的数据输入源。用户可以省去花费在基础架构运维上的时间和精力,把精力集中在核心的业务逻辑上。
4.多媒体处理
视频和图片网站需要对用户上传的图片和视频信息进行加工和转换。但是这种多媒体转换的工作并不是无时无刻都在进行的,只有在一些特定事件发生时才需要被执行,比如用户上传或编辑图片和视频时。通过Serverless的事件驱动机制,用户可以在特定事件发生时触发处理逻辑,从而节省了空闲时段计算资源的开销,最终降低了运维的成本。
5.数据及事件流处理
Serverless可以用于对一些持续不断的事件流和数据流进行实时分析和处理,对事件和数据进行实时的过滤、转换和分析,进而触发下一步的处理。比如,对各类系统的日志或社交媒体信息进行实时分析,针对符合特定特征的关键信息进行记录和告警。
6.系统集成
Serverless应用的函数式架构非常适合用于实现系统集成。用户无须像过去一样为了某些简单的集成逻辑而开发和运维一个完整的应用,用户可以更专注于所需的集成逻辑,只编写和集成相关的代码逻辑,而不是一个完整的应用。函数应用的分散式的架构,使得集成逻辑的新增和变更更加灵活。