背景
开发应用程序并将其部署在服务器上的时候,需要了解多少台服务器、多大容量的存储和数据库的功能,部署运行应用程序和依赖的软件到基础设施之上;解决这类问题的架构就叫Serverless架构;
定义
无服务器架构是基于互联网的系统,其中应用开发不使用常规的服务进程。
相反,它们仅依赖于第三方服务,客户端逻辑和服务托管远程过程调用的组合;
特点
我们的代码不会明确地部署在某些特定的软件或者硬件的服务器上。
运行代码托管的环境是由例如AWS这样的云计算厂商所提供的。
持续集成,源代码控制。
关键对比
1、微服务
专注于单一责任与功能的小型功能块为基础,利用模组化的方式组合出复杂的大型应用程序;
2、FaaS:
函数即服务,相对于微服务更小的粒度的程序;
• 负责服务端业务逻辑场景(CreatReadUpdateDelete);
• 事件驱动的Serverless服务,毫秒级弹性伸缩;
• 无需运维,交给服务平台
• 无状态,无法共享数据和内存;
Faas特点:
• 弹性伸缩,免运维,监控;
参考函数计算实践:https://juejin.cn/post/6892728697082609672
3、BasS:后端即服务;
• 通用服务场景(数据库,消息队列,身份验证,对象存储…)
• 有状态
开发人员外包 Web 或移动应用程序的所有幕后方面,仅需自行编写和维护前端。BaaS 供应商为服务器上发生的活动提供预编写的软件,例如用户身份验证、数据库管理、远程更新和推送通知(针对移动应用程序),以及云存储和托管;
和serverless区别在于响应时间;
4、Sass:
Software-as-a-Service(软件即服务)
SaaS 是软件的开发、管理、部署都交给第三方,不需要关心技术问题,可以拿来即;
5、Pass:
Platform-as-a-Service(平台即服务,硬件和服务)
各种开发和分发应用的解决方案:虚拟服务器和操作系统;
场景:网页应用管理,应用设计,应用虚拟主机,存储,安全以及应用开发协作工具
PaaS 提供软件部署平台(runtime),抽象掉了硬件和操作系统细节,可以无缝地扩展(scaling)。开发者只需要关注自己的业务逻辑,不需要关注底层
6、Iass:
Infrastructure-as-a-Service(基础设施即服务)
硬件控制本地应用:服务器,硬盘,网络硬件;
对比Iass:服务与资源区别;
PaaS的主要作用是将一个开发和运行平台作为服务提供给用户,而IaaS的主要作用是提供虚拟机或者其他资源作为服务提供给用户
参考:文章
serverless优缺点:
1、降低运营成本,无需数据库,存储,部署
2、降低开发成本:
• aaS和PaaS存在的前提是,服务器和操作系统管理可以商品化;
• Serverless作为另一种服务的结果是整个应用程序组件被商品化;
3、横向扩展是完全自动的、有弹性的、且由服务提供者所管理
参考:https://aws.amazon.com/cn/blogs/china/iaas-faas-serverless/