其他
什么是Serverless?有哪些应用?终于有人讲明白了
导读:本文将介绍Serverless的定义、规范和应用场景,以及笔者对Serverless技术未来的展望。
Serverless是指构建和运行不需要服务器管理的应用程序。它描述了一种更细粒度的部署模型,即将应用程序打包为一个或多个功能,上传到平台,然后执行、扩展和计费,以响应当时确切的需求。
Serverless是一种架构理念,其核心思想是将提供服务资源的基础设施抽象成各种服务,以API接口的方式供用户按需调用,真正做到按需伸缩、按使用收费。
如图1-3所示,当开发者想要开发一个项目的时候,通常只需要根据FaaS提供商所提供的Runtime,选择一个熟悉的编程语言,然后进行项目开发、测试(图中步骤1); 完成之后将代码上传到FaaS平台(图中步骤2); 上传完成之后,只需要通过API/SDK(图中步骤3)或者一些云端的事件源(图中步骤3)触发上传到FaaS平台的函数,FaaS平台就会根据触发的并发度等弹性执行对应的函数(图中步骤4),最后用户可以根据实际资源使用量进行按量付费(图中步骤5)。
在Serverless应用形态下,移除了最初应用中的身份验证逻辑,换用一个第三方的BaaS服务(图中步骤1); 允许客户端直接访问一部分数据库内容,这部分数据完全由第三方托管,会用一些安全配置来管理客户端访问相应数据的权限(图中步骤2); 前面两点已经隐含了非常重要的第三点:先前服务端的部分逻辑已经转移到了客户端,如保持用户Session、理解应用的UX结构、获取数据并渲染出用户界面等。客户端实际上已经在逐步演变为单页应用(图中步骤3); 还有一些任务需要保留在服务器上,比如繁重的计算任务或者需要访问大量数据的操作。这里以“搜索”为例,搜索功能可以从持续运行的服务端中拆分出来,以FaaS的方式实现,从API网关(后文做详细解释)接收请求并返回响应。这个服务端函数可以和客户端一样,从同一个数据库读取产品数据。原始的服务端是用Java写的,而AWS Lambda(假定用的这家FaaS平台)也支持Java,那么原先的搜索代码略作修改就能实现这个搜索函数(图中步骤4); 还可以把“购买”功能改写为另一个FaaS函数,出于安全考虑,它需要在服务端而非客户端实现。它同样经由API网关暴露给外部使用(图中步骤5)。
异步并发,组件可独立部署和扩展。 突发或服务使用量不可预测。 短暂、无状态的应用,对冷启动时间不敏感。 需要快速开发迭代。
响应数据库更改(插入、更新、触发、删除)的执行逻辑; 对物联网传感器输入消息(如MQTT消息)进行分析; 处理流处理(分析或修改动态数据); 管理单次提取、转换和存储需要在短时间内进行大量处理(ETL); 通过聊天机器人界面提供认知计算(异步); 调度短时间内执行的任务,例如CRON或批处理的调用; 机器学习和人工智能模型; 持续集成管道,按需为构建作业提供资源,而不是保持一个构建从主机池等待作业分派的任务。
实时文件处理 实时流处理 机器学习 IoT后端 移动应用后端 Web应用程序
Web应用 实时数据处理 AI推理 视频转码
实时文件处理 实时数据流处理 Web/移动应用后端 人工智能场景
实时文件处理 数据ETL处理 移动及Web应用后端 AI推理预测
本文摘编自《Serverless工程实践:从入门到进阶》,经出版方授权发布。
点击上图了解及购买
转载请联系微信:DoctorData
推荐语:从产品、开发和工程实践3个维度全面讲解Serverless架构。阿里云Serverless产品专家和技术专家撰写。
当当网开学季大促【五折封顶】火热促销中
点击以上图片跳转专题
囤书正当时
扫码关注【华章计算机】视频号
每天来听华章哥讲书
更多精彩回顾
书讯 | 8月书讯(上)| 这些新书不可错过书讯 | 8月书讯(下)| 这些新书不可错过资讯 | 零售业电商标签从0到1的构建方法书单 | 秋招、考研、金九银十跳槽季,打好基础让你起飞!(这里有一份导图和书单值得收藏)干货 | 数数收藏 | pandas 筛选数据的 8 个神操作上新 | 【新书速递】CSO进阶之路首次曝光