Serverless简介
发布网友
发布时间:2024-09-09 21:13
我来回答
共1个回答
热心网友
时间:2024-09-09 21:23
Serverless架构是一种云计算模型,以平台即服务(PaaS)为基础,提供微型架构,终端用户无需管理服务器服务,代码运行所需服务由云端平台提供。全球知名产品有Tencent Serverless、AWS Lambda、Microsoft Azure Functions等。它被称为微服务运算,但开发者无需考虑服务器,计算资源作为服务,而不是服务器。
亚马逊的AWS Lambda为例,Lambda无需考虑服务器问题,无需处理部署、容量、扩展、错误容错、操作系统、语言更新、日志等。Serverless架构允许开发者在服务部署级别管理应用部署,甚至管理特定功能或端口的部署,有助于快速迭代和开发。
Serverless架构的理念希望用户专注于业务逻辑,无需关注主机管理、服务运维、配置等,无需考虑DevOps工作流程。它是一种架构而非技术框架,也是一种云服务产品形态。
当前最常见的实现方案是FaaS(函数即服务)+BaaS(后端即服务),云服务基于这种架构。Serverless架构是云的自然延伸,为理解它,需要回顾云计算发展。2006年,AWS推出EC2,被认为是第一代IaaS(基础设施即服务),用户快速获取计算资源并部署互联网服务。EC2简化了硬件虚拟化,并为用户提供降低劳动力成本、风险、基础设施成本、扩展性和节约时间成本的五个好处。
PaaS是在IaaS之上提供的一种平台服务,包括操作系统安装、监控、服务发现等功能,最早实现商业PaaS的是Heroko和Cloud Foundry。容器技术,如Docker,作为CaaS(容器即服务)被广泛应用,管理云上容器成为可能。
Serverless平台的先驱包括2006年的Zimki和2014年亚马逊的AWS Lambda。Serverless流行后,其他公司跟进,如2016年的Google Cloud和IBM等。国内领先的Serverless服务提供商是阿里云和腾讯云。
FaaS与IaaS、PaaS的区别在于,FaaS不仅提供标准运行环境,还管理请求调度,开发者聚焦核心业务逻辑开发,云厂商管理底层资源维护。而IaaS和PaaS需要用户运维云主机、容器集群、搭建运行环境。
Serverless应用广泛,适合异步并发、应对突发或服务使用量不可预测、短暂无状态应用、需要快速开发迭代的业务场景。用于实时文件处理、周期性数据处理和移动及Web应用后端。以游戏应用为例,Serverless架构通过减少会话状态存储、使用NoSQL、直接利用BaaS降低开发人力成本、维护风险和扩展性。
Serverless架构优点包括降低运营成本、运维需求、人力成本和资源开销,但也有缺点,如状态管理限制、延迟问题和本地测试困难。状态服务使用Serverless导致灵活性降低,有状态服务与存储交互增加延迟和复杂性。Serverless应用的分布式特性导致延迟问题,难以在本地测试复杂的集成和端到端测试。在本地环境中模拟分布式组件和性能缩放特性具有挑战性。