无服务器架构(Serverless Architecture)
字数 2113
更新时间 2026-04-26 21:36:36

无服务器架构(Serverless Architecture)

我们将从最基础的概念开始,逐步深入到它的原理、优缺点以及适用场景。

第一步:摆脱“服务器”这个词的字面恐惧

你以前可能觉得,做一个网站或应用,必须自己买一台电脑(服务器)24小时开着,安装操作系统、数据库、Web服务器软件,还要负责打补丁、防攻击、处理硬盘坏了怎么办。这叫有服务器架构

无服务器架构不是真的没有服务器,而是“你不需要关心服务器”。服务器依然存在,但它的管理(买硬件、装系统、扩硬盘、重启)全部由云服务商(如AWS、阿里云、腾讯云)负责。你只写代码,然后上传,云服务商帮你运行代码。

第二步:核心执行单元——函数(Function)

在无服务器架构里,最小的运行单元不是“一个应用程序”,而是一个函数

  • 传统方式: 你写一个完整的Python/Java程序,监听80端口,里面有登录、注册、发帖、删除帖子的所有代码。程序一直运行,等待请求。
  • 无服务器方式: 你只写一个函数,比如def handle_login(username, password): ,里面只做登录验证。把它部署到云平台。这个函数平时不运行,不消耗任何资源(也不花钱)。当有一个登录HTTP请求过来时,云平台瞬间启动这个函数,执行它,返回结果,然后立即冻结或销毁运行环境。

也就是说:按需运行,用完即停

第三步:事件驱动——谁叫你起床?

无服务器函数不是自己乱跑的,它需要事件来触发。常见的事件源包括:

  • HTTP请求: 用户访问 https://你的api/login
  • 数据库变化: 你向一张表里插入了一条新用户记录,触发一个函数去发送欢迎邮件。
  • 文件上传: 用户上传了一张头像到云存储,触发一个函数去压缩图片。
  • 定时任务: 比如每天凌晨2点,触发一个函数去清理过期数据。

所以架构变成了:事件源 → 触发 → 函数执行 → 结果

第四步:与传统架构的关键区别

维度 传统架构(用云虚拟机) 无服务器架构
服务器管理 你需要选机型、配置、打补丁 不需要,平台全管
运行方式 应用进程常驻,7x24小时 函数只在被调用时运行几毫秒~几分钟
计费粒度 按租用的小时数 × 机型价格 按实际执行次数 × 执行时间(毫秒计)
伸缩能力 手工或写脚本增加虚拟机 自动并行:1个请求启动1个函数实例,1万个请求瞬间启动1万个实例
状态存储 应用自身可以存内存变量 函数是无状态的,状态必须放外部(数据库、Redis)

第五步:深入一个执行细节(冷启动)

无服务器最大的挑战是冷启动

  • 假如你的函数半小时没人调用,云平台会把它的运行环境回收。
  • 当一个新的请求突然进来,平台需要:下载你的代码 → 解压 → 启动一个轻量级运行时(比如Node.js或Python解释器)→ 加载你的函数 → 执行。这个过程可能需要几百毫秒甚至几秒。
  • 如果函数一直频繁被调用,平台会保持环境“温”着,下次调用就是微秒级响应(热启动)。

冷启动是你设计无服务器系统时必须考虑的问题。

第六步:怎么在创业中实践?

假设你要做一个创业项目的用户注册功能:

  1. 你写一个函数 register_user(event, context),里面解析HTTP body里的email和密码,存入云数据库(比如DynamoDB或云PostgreSQL)。
  2. 配置一个API网关,把 POST /user/register 指向这个函数。
  3. 部署函数(用aws cliserverless framework工具)。
  4. 用户访问你的前端页面,填写表单,前端发送请求到API网关。
  5. API网关触发你的函数执行,函数写完数据库后返回{"result":"ok"}
  6. 你不需要担心这个API能扛多少QPS——无服务器会自动水平扩展。

第七步:无服务器架构的明显缺点(创业必须清醒)

  • 不适合长时间运行的任务: 一般函数最大执行时间限制在900秒(AWS)或几分钟。不能跑一个视频转码几小时的任务。
  • 不适合需要超低延迟(<10ms)的场景: 冷启动可能带来额外延迟。
  • 调试复杂: 你无法ssh到那个函数里看日志,依赖特定的日志服务。
  • 供应商锁定: 你的代码通常需要绑定该云平台的事件源API(如AWS的Lambda、API Gateway、S3触发器)。换云厂商基本得重写。
  • 有请求频率的限制: 比如每个区域默认1000个并发函数实例,需要申请提额。

第八步:最简总结(一句话记住)

无服务器架构 = 你把代码写成一个个短的函数 + 平台负责实时拉起它们来响应事件 + 按实际调用次数和时间付费。

下次你做一个新创业项目,如果是:API后端、数据处理管道、定时任务、异步消息处理,并且流量忽高忽低(比如从0到暴涨),那么无服务器架构是一个值得优先考虑的技术选型。

相似文章
相似文章
 全屏