2. 主流云平台对比:AWS Lambda、Azure Functions、Google Cloud Functions、阿里云函数计算

好,咱们直接切入正题。做无服务器架构,选平台是第一道坎。市面上主流的四家——AWS Lambda、Azure Functions、Google Cloud Functions、阿里云函数计算,我都深度用过。说实话,没有绝对的好坏,关键看你的业务场景和团队技术栈。

我个人习惯先看生态,再看价格,最后看冷启动。为什么?因为生态决定了你能多快把东西搭起来,价格决定了你月底会不会被账单吓到,冷启动则直接影响用户体验。下面我一个个聊。

2.1 AWS Lambda:老大哥,生态最全

AWS Lambda 是第一个吃螃蟹的,2014年就推出了。到现在,它依然是市场份额最大的。我在项目中遇到过不少客户,上来就问「Lambda 能不能跑 Python 3.12?」——能,而且支持得最早。

核心优势:

  • 事件源最丰富:S3、DynamoDB、Kinesis、SQS、API Gateway……几乎 AWS 所有服务都能触发 Lambda。你想想看,这意味着你基本不用写胶水代码。
  • 工具链成熟:SAM、CDK、Serverless Framework,随便选一个都能快速上手。
  • 冷启动优化:有 Provisioned Concurrency,虽然要额外花钱,但能解决延迟敏感场景。

缺点:

  • 定价略复杂:除了请求次数和运行时长,还要算 Provisioned Concurrency、弹性网卡等费用。我见过一个团队,一个月 Lambda 账单 2000 美元,结果发现一半是弹性网卡的钱。
  • 冷启动依然存在:尤其是 Java 和 .NET 运行时,冷启动能到 5 秒以上。嗯,这里要注意,如果你用 Java,建议配合 SnapStart。

避坑指南:我曾经帮一个客户排查 Lambda 超时问题,发现他用了 10GB 的 Lambda 函数,但实际只用了 512MB 内存。Lambda 的 CPU 分配和内存成正比,内存越大 CPU 越强。所以,如果你的函数是 CPU 密集型,别省内存,否则反而更慢更贵。

2.2 Azure Functions:.NET 开发者的首选

Azure Functions 是微软家的,和 Visual Studio、Azure DevOps 集成得非常好。如果你团队主力是 C#,那 Azure Functions 会让你很舒服。

核心优势:

  • .NET 原生支持:从 .NET Core 3.1 到 .NET 8,支持力度远超其他平台。
  • 企业级特性:Durable Functions 做工作流编排,App Insights 做监控,都是现成的。
  • 混合部署:支持在本地运行,也支持在 Azure Stack 上部署,适合有混合云需求的企业。

缺点:

  • 冷启动比 Lambda 慢:尤其是消费计划(Consumption Plan),冷启动经常 3-5 秒。我建议用 Premium Plan,虽然贵点,但能保持实例常驻。
  • 非微软语言支持一般:Python 和 Node.js 的支持虽然也有,但文档和社区资源明显不如 AWS。

个人经验:如果你用 Azure Functions,记得开启「Always On」功能(仅限 App Service Plan)。否则,函数在空闲 20 分钟后会被卸载,下次调用时冷启动会让你怀疑人生。

2.3 Google Cloud Functions:轻量级,适合事件驱动

Google Cloud Functions(GCF)是四家里最「轻」的。它的设计哲学很简单——你写代码,我跑,别管别的。我个人很喜欢它的简洁性,但功能也确实少一些。

核心优势:

  • 与 GCP 服务深度集成:Cloud Storage、Pub/Sub、Firestore,触发起来非常自然。
  • 冷启动相对较快:因为 Google 用了 gVisor 容器沙箱,启动速度比 AWS 和 Azure 快 30% 左右。
  • 定价透明:按请求次数和计算时间计费,没有隐藏费用。

缺点:

  • 运行时支持少:Node.js、Python、Go、Java、Ruby、PHP,就这些。.NET 和 Rust 暂时没有官方支持。
  • 超时限制严格:HTTP 函数最长 60 分钟,后台函数最长 9 分钟。如果你有长时间运行的任务,得用 Cloud Run 或 GKE。

注意:Google Cloud Functions 的并发限制是 1000(每个区域)。如果你突然有大量请求,可能会被限流。我曾经在双十一期间帮客户压测,结果发现 GCF 的并发上限比 Lambda 低不少。建议提前申请配额提升。

2.4 阿里云函数计算:国内首选,性价比高

阿里云函数计算(FC)是国内最早推出的无服务器产品。如果你主要服务国内用户,FC 是绕不开的选择。它的优势在于对国内生态的适配。

核心优势:

  • 国内节点多:华东、华北、华南、香港、新加坡,延迟低。
  • 与阿里云生态集成:OSS、RDS、TableStore、CDN,触发和联动都很方便。
  • 冷启动优化:有「预留实例」功能,可以指定常驻实例数,避免冷启动。
  • 价格便宜:免费额度高(每月 100 万次调用 + 400,000 GBs),超出后单价也比 AWS 低 30% 左右。

缺点:

  • 国际支持弱:海外节点少,文档英文版更新慢。
  • 工具链不如 AWS 成熟:虽然也有 Funcraft、Serverless Devs,但社区插件和教程相对少。

避坑指南:我曾经用阿里云 FC 做视频转码,结果发现默认的 512MB 内存根本不够用。视频解码需要大量内存,建议至少 1GB。另外,FC 的临时磁盘空间只有 512MB,如果你要处理大文件,记得挂载 NAS。

2.5 横向对比:一张表说清楚

特性 AWS Lambda Azure Functions Google Cloud Functions 阿里云函数计算
推出时间 2014 2016 2017 2017
支持语言 Python, Node.js, Java, Go, Ruby, .NET, Rust (自定义) C#, Python, Node.js, Java, PowerShell Node.js, Python, Go, Java, Ruby, PHP Python, Node.js, Java, Go, PHP, .NET Core
最大内存 10GB 1.5GB (消费计划) / 14GB (高级计划) 8GB 3GB
超时限制 15 分钟 10 分钟 (消费计划) / 无限 (高级计划) 60 分钟 (HTTP) / 9 分钟 (后台) 10 分钟 (同步) / 24 小时 (异步)
冷启动优化 Provisioned Concurrency Premium Plan / Always On 无(但启动快) 预留实例
免费额度 100 万次/月 + 400,000 GBs 100 万次/月 + 400,000 GBs 200 万次/月 + 400,000 GBs 100 万次/月 + 400,000 GBs
国内节点 北京、上海、宁夏、香港 北京、上海、香港 无(需用香港或新加坡) 华东、华北、华南、香港

2.6 我的选择建议

说了这么多,到底选哪个?我个人的经验是:

  • 如果你在 AWS 生态里,或者需要最丰富的集成,选 Lambda。别犹豫,它最稳。
  • 如果你团队主力是 .NET,或者公司已经用了 Azure,选 Azure Functions。别为了省几百块钱去折腾其他平台,团队效率更重要。
  • 如果你做轻量级事件处理,或者预算有限,选 Google Cloud Functions。它的简洁和冷启动速度是亮点。
  • 如果你主要服务国内用户,或者想省钱,选阿里云函数计算。性价比确实高,而且国内延迟低。

最后说一句:别迷信任何一个平台。我见过不少团队,一开始选了 Lambda,后来因为成本问题迁移到阿里云。也见过从 Azure 迁移到 AWS 的。关键是你的业务需求和技术栈。选一个你团队最熟悉的,比选一个「理论上最好」的更重要。