第一章:Serverless入门

什么是Serverless

我第一次听到Serverless这个词,心里想的是:「没有服务器?那代码跑在哪?」

其实Serverless不是真的没有服务器。服务器还在,只是你不用管了。你想想看,以前部署一个应用,得先买机器、装系统、配网络、搞监控……这些脏活累活,Serverless全帮你干了。

说白了,Serverless是一种架构模式。你只管写代码,平台负责运行。你不需要关心服务器在哪、配置够不够、要不要扩容。平台会自动分配资源,按实际使用量收费。

我个人习惯把Serverless理解为「函数即服务」。你写一个函数,上传到平台,设置好触发条件。剩下的,平台全包了。

核心定义:Serverless = 无服务器计算 = 开发者只关注业务逻辑,基础设施由云平台自动管理。

Serverless的发展历程

这条路走了十几年。我简单梳理一下关键节点:

时间 事件 意义
2006年 Amazon推出EC2 基础设施即服务(IaaS)诞生
2014年 AWS Lambda发布 第一个主流FaaS产品
2016年 Google Cloud Functions、Azure Functions跟进 三大云厂商全部入局
2017年 Knative开源 Serverless标准化开始
2020年至今 边缘Serverless、容器化Serverless兴起 生态成熟,企业级落地

我记得2014年Lambda刚出来时,圈子里很多人觉得这是个玩具。跑个简单的图片处理还行,正经业务谁敢用?

但到了2017年,情况变了。我在一个电商项目中尝试用Lambda做订单处理。刚开始只敢放些边缘逻辑,后来发现稳定性出乎意料。嗯,从那以后,我对Serverless的态度彻底改观了。

Serverless的核心价值

为什么这么多人转向Serverless?我总结了四点:

  1. 零运维——你不用再半夜爬起来处理服务器告警。平台帮你搞定高可用、容灾、补丁更新。
  2. 弹性伸缩——流量从0到10万,Serverless自动扩缩。你不需要提前预估容量。
  3. 按量付费——没请求时不收费。这对低频或波动大的业务来说,成本能降80%以上。
  4. 快速迭代——写个函数,上传,配置触发器,几分钟就能上线。传统方式至少半天。

我的经验:有一次做活动页面,预估峰值流量是平时的100倍。用传统架构得提前两周申请资源。用Serverless,我当天改完代码直接上线,活动结束零故障。

适用场景

Serverless不是万能的。我踩过坑,所以想跟你聊聊哪些场景真的适合:

  • 事件驱动型任务——比如文件上传后自动压缩、数据库变更后触发通知。这类任务天然适合函数模型。
  • API后端——配合API网关,一个函数就是一个接口。开发效率极高。
  • 定时任务——每天凌晨跑数据清洗、生成报表。用Serverless比维护一台Cron服务器省心多了。
  • 批处理——视频转码、图片处理、日志分析。这些任务可以并行执行,Serverless天然支持。
  • 原型验证——快速搭建MVP,验证市场。等业务稳定了再考虑迁移。

避坑指南:我曾经把一个长耗时的机器学习推理任务直接丢到Lambda上。结果函数超时了,数据全丢了。后来才意识到,Serverless有执行时间限制(比如Lambda最长15分钟)。长时间运行的任务,还是得用容器或专用计算资源。

不适合的场景

有些场景,我建议你慎重:

  • 高并发低延迟——比如高频交易系统。Serverless的冷启动问题会导致延迟不稳定。
  • 有状态服务——比如WebSocket长连接、游戏服务器。Serverless本质是无状态的。
  • GPU密集型计算——大部分Serverless平台不支持GPU,或者成本极高。
  • 强依赖本地资源——比如需要挂载本地磁盘、使用特定硬件。

你想想看,如果硬要把Serverless塞进不合适的场景,结果就是「看似省了运维,实则多了麻烦」。我见过一个团队把核心数据库操作封装成Lambda,结果每次查询都要等冷启动,用户体验直线下降。

小结

Serverless是一种思维转变。从「管理服务器」到「管理函数」,从「预购资源」到「按需付费」。它不完美,但在合适的场景下,能让你事半功倍。

下一章,我会带你深入FaaS和BaaS的底层原理。到时候聊聊冷启动到底是怎么回事,以及怎么优化。

一句话总结:Serverless不是银弹,但它是云原生时代最值得掌握的架构模式之一。