导图社区 serverless
serverless知识总结,包括serverless本质、基本原则、分类、优点、缺点、功能、应用场景、适合场景扥内容。
社区模板帮助中心,点此进入>>
论语孔子简单思维导图
《傅雷家书》思维导图
《童年》读书笔记
《茶馆》思维导图
《朝花夕拾》篇目思维导图
《昆虫记》思维导图
《安徒生童话》思维导图
《鲁滨逊漂流记》读书笔记
《这样读书就够了》读书笔记
妈妈必读:一张0-1岁孩子认知发展的精确时间表
serverless
serverless本质
发展
物理服务器->虚拟机->IaaS->IaC(基础设施即代码)->PaaS->serverless(FaaS)
按量付费
基于实际消费
不是基于预测消费的预付款
价值
不在于节省了成本
从提前预测资源使用->
只为函数实际执行所消耗的资源付费
而在于节省了时间
缩短了从代码开发到投入生产的时间
Serverless的基本思想是程序员只需要写代码然后推送到Serverless的服务就足够了,其余的事情都由这个服务来处理
一般流程
1. Serverless平台提取了功能代码——即FaaS(功能即服务)的功能部分——以及所有依赖项(如必需的库,内存的数量,属性等等),构建成一个集装箱化的应用程序包,通常采用Docker镜像的形式。
2. 当另一个平台服务,例如对象存储或数据库想要触发这个功能,或者一个外部的http请求想要调用这个功能,Serverless平台会将这个请求转发到一个可用的功能微服务。如果当前没有可用的微服务,那么它将部署“冷启动”(cold start)一个这样的实例。
3. Serverless平台需要负责在微服务失败的时候恢复它,自动扩展以适应需求,记录和监控功能活动,并且在代码被修改后进行实时滚动升级。专门有人来管理平台服务,这样程序员就可以专注于“功能”方面。
缺点
潜在的性能问题
缓慢的冷启动(cold start)
封闭的触发器
试水建议
创建一些自动化的任务
事件驱动的用例
基本原则
1. 只关注自己的代码,无需重复构建服务器.%2c环境等基础设施。
2. 支持云端调用,无状态计算,时间驱动,API调用,开放源代码。
3. 保持代码轻量,简洁。
4. 没有实例,服务器,或者容器概念。
5. 将客户满意作为开发工程的重中之重。
6. 提供最大限度的服务选择自由。
7. 关注产品目标和技术可复用。
8. 在编写代码之前进行必要的配置。
9. 拥有构建架构的完整生命周期。
10. 全新的应用部署。
分类
BaaS(Backend as a Service)后端即服务
调用后端或别人已经实现好的程序逻辑
rds
oss
FaaS(Functions as a Service)函数即服务
优点
降低运营成本
降低开发成本
扩展能力
更简单的管理
“绿色”的计算
降低人力成本
降低风险
减少资源开销
增加缩放的灵活性
缩短创新周期
状态管理
延迟
本地测试
功能
零管理
部署代码时无需提前配置或运维管理。没有集群,实例甚至操作系统的概念。
自动扩缩容
让服务供应商应对扩缩容策略,无需触发警报或编写脚本来对服务器集群做扩缩容。
按使用付费
“函数即服务”计算和托管服务根据使用情况而非预先提供的容量进行收费。您可以更大程度的利用资源,而不必为空闲时间付出高昂的服务费用。
敏捷开发
缩短构建和部署到生产之间的步骤。由于无需关注部署前环境,及部署后运维管理,因此可以更敏捷的交付更多功能。
应用场景
自动扩缩容的网站和API
事件流
流处理
图像和视频处理
事件处理和SaaS平台
多语言应用
持续集成和持续部署(CI / CD)
机器学习及 AI 模型处理
ETL
IoT 传感器数据分析
聊天机器人
适合场景
异步的并发,组件可独立部署和扩展
应对突发或服务使用量不可预测(主要是为了节约成本,因为 Serverless 应用在不运行时不收费)
短暂、无状态的应用,对冷启动时间不敏感
需要快速开发迭代的业务(因为无需提前申请资源,因此可以加快业务上线速度)