找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

478

积分

0

好友

66

主题
发表于 6 小时前 | 查看: 1| 回复: 0

Serverless是云计算高速发展的产物,Iron.io的副总裁Ken Fromm于2012年在文章《Why The Future of Software and Apps is Serverless》中首次提出了这一概念,并随着2014年AWS推出Lambda而被人熟知。它以其无需管理计算资源、免运维的特性快速风靡,开启了全新的云计算范式。

图片

Serverless及其演进

Serverless,中文译为无服务器架构,意味着构建和运行应用程序不再需要开发者管理底层的服务器资源。开发者无需关心服务器的配置、运维以及扩缩容,这些任务由云厂商统一负责,用户只需要根据业务逻辑使用其服务即可。

图片

在这种架构下,开发者告别了配置操作系统、管理系统依赖、手动SSH连接服务器、为流量高峰添加主机等繁琐操作。云平台提供了一个比容器更高级别的抽象层,用户只需通过API或配置界面设定业务所需的内存、CPU和存储等参数,然后上传代码。云平台将自动根据请求量伸缩资源。

Serverless是云计算持续演进的结果。回顾历史,应用程序的部署载体从物理主机托管,发展到运营商提供的裸机服务器,再到云计算时代的虚拟机(IaaS)、容器(CaaS),最终演进至Serverless无服务器架构(FaaS)。管理和运维计算资源的责任不断向云厂商转移,使开发者能将更多精力聚焦于业务创新,实现了从“拥有服务器”到“使用计算能力”的根本性范式转变。

How to Choose the Right Cloud Deployment Model for your Application? –  Girish Godage

时至今日,Serverless早已超越了如Lambda这样的函数即服务(FaaS)范畴。诸如DynamoDB、AWS Cognito、API Gateway等全托管服务已成为Serverless原生生态的关键组成部分。同时,越来越多的传统云服务推出了Serverless版本,例如OpenSearch Serverless、Aurora Serverless等,共同构成了一个日益丰富的云原生/IaaS Serverless生态体系。

Serverless的核心特点

Serverless作为一种全新的云计算范式,带来了根本性的改变。它不仅是计算平台的迁移,更是对资源使用模式的思维转变,这一切都基于其独有的核心特点:

  • 无需管理服务器:开发者无需购买和管理服务器等基础设施,只需专注于业务逻辑和函数代码的编写。
  • 极致的弹性伸缩:能够根据实际业务请求量自动弹性扩缩容,支持从零到数千个实例的瞬间伸缩,灵活应对突发流量。
  • 按量计费:基于实际执行次数和资源使用量计费,显著降低了闲置资源带来的成本,真正做到“不执行不收费”。
  • 事件驱动:函数通过事件触发执行,并与各种事件源(如对象存储OSS、消息队列)深度集成,使用者无需自行管理队列等中间资源。
  • 高可用性:由云厂商提供高可用性保障(通常SLA≥99.95%),函数实例间实现虚拟机级别的隔离,确保了服务的稳定性和安全性。

Serverless应用场景

凭借上述独特优势,Serverless架构在多个领域展现出强大的适用性:

  • API后端服务:结合API网关和Serverless计算,快速构建可弹性扩展、高可用的Web及移动应用后端。
  • 事件驱动的数据处理:适用于实时文件处理(如图片压缩、添加水印)、数据ETL(抽取、转换、加载)、实时日志分析等场景。
  • IoT物联网后端:高效处理海量IoT设备上报的数据,构建设备连接、数据采集与实时分析的后端服务。
  • AI推理服务:在机器学习领域,特别适合处理波动性较大的AI推理预测请求,能根据需求自动伸缩算力。
  • 多媒体处理:音视频转码、文档格式转换等计算密集型任务,可以按需调用资源,避免常驻资源浪费。
  • 监控与自动化运维:轻松构建定时任务、监控告警触发等自动化运维流程。

Serverless的局限性

尽管优势显著,但Serverless在实际应用中仍需考虑以下局限性:

  • 冷启动延迟:长时间闲置的函数被首次调用时,需要时间初始化运行环境,可能产生延迟,对于Java等需要启动虚拟机的语言,延迟可能达到秒级。
  • 不适合长时运行任务:Serverless设计为请求驱动,请求结束后函数实例可能被回收,不适合需要持续保持运行状态的应用。
  • 调试与观测困难:由于实例生命周期短暂且由平台托管,收集用于调试和性能分析的日志及链路数据比传统架构更具挑战性,这对运维/DevOps实践提出了新的要求。
  • 状态管理复杂:函数本身是无状态的,这意味着需要依赖外部存储服务(如数据库/中间件中的Redis或对象存储)来管理状态,增加了架构的复杂性。当然,对于原本就是无状态设计的程序,Serverless的“即用即扔”特性则天然契合。
  • 厂商锁定风险:不同云厂商的Serverless实现、触发器接口和配套服务存在差异,跨云迁移可能面临较高成本。
  • 成本模型争议:在持续高负载的场景下,按调用次数和资源使用量计费的总成本可能超过租用固定规格的虚拟机。

结语

Serverless代表了云计算发展的一个重要方向,它通过彻底抽象底层基础设施,让开发者能够前所未有地专注于业务逻辑本身。虽然目前存在冷启动、调试等挑战,但随着技术的不断演进和生态的日益完善,Serverless正在成为构建现代化应用的关键选择。对开发者而言,深入理解其核心概念、特点、适用场景与局限,将有助于在恰当的时机发挥其最大价值。




上一篇:概念力解析:产品经理与创业者必备的战略思维与价值设计方法论
下一篇:Anthropic官方开源16个生产级技能库:涵盖文档处理、创意设计与开发测试
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2025-12-24 18:57 , Processed in 0.301497 second(s), 38 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2025 云栈社区.

快速回复 返回顶部 返回列表