2. 主流云平台:AWS Lambda、阿里云函数计算、腾讯云函数、华为云FunctionGraph对比

好,咱们进入第二个话题。

选哪个平台?这是每个刚接触 Serverless 的人都会问的问题。说实话,没有标准答案。但我会把四个主流平台掰开揉碎了讲,结合我自己的踩坑经历,给你一个清晰的判断依据。

2.1 为什么需要对比?

说白了,不同平台就是不同的“游戏规则”。

你写代码的逻辑可以复用,但部署方式、触发器、监控、冷启动表现……这些差异很大。选错了,后期迁移成本会让你头疼。我见过一个团队,项目上线半年后想从 A 平台迁到 B 平台,结果触发器绑定太深,改了一个月才搞定。

所以,一开始就选对,比什么都重要。

2.2 四巨头概览

先看一张表,心里有个底。

特性 AWS Lambda 阿里云函数计算 腾讯云函数 华为云 FunctionGraph
推出时间 2014年(最早) 2017年 2019年 2020年
运行时语言 Node.js, Python, Java, Go, .NET, Ruby, 自定义Runtime Node.js, Python, Java, Go, PHP, .NET Core, 自定义Runtime Node.js, Python, Java, Go, PHP, .NET Core Node.js, Python, Java, Go, PHP, .NET Core
最大内存 10GB 3GB(可申请更高) 3GB 3GB
超时时间 15分钟 12小时(异步) 900秒 15分钟
冷启动 较好(有预留并发) 中等(有预付费) 中等 中等偏慢
触发器生态 极其丰富(S3, SQS, SNS, API Gateway等) 丰富(OSS, OTS, MNS, API Gateway等) 丰富(COS, CMQ, API Gateway等) 较丰富(OBS, SMN, API Gateway等)
国内访问 需要备案,延迟较高 极佳 极佳 极佳
免费额度 每月100万次请求 + 40万GB-秒 每月100万次请求 + 40万GB-秒 每月100万次请求 + 40万GB-秒 每月100万次请求 + 40万GB-秒

核心结论:如果你做全球业务,AWS Lambda 是首选。如果你做国内业务,阿里云和腾讯云更友好。华为云适合政企客户。

2.3 AWS Lambda:老大哥,生态无敌

AWS Lambda 是 Serverless 的鼻祖。2014年推出,到现在已经非常成熟。

我个人习惯用 Lambda 做原型验证。为什么?因为它的触发器太全了。S3 上传图片自动触发、SQS 消息队列触发、API Gateway 触发……几乎 AWS 所有服务都能跟 Lambda 联动。

举个例子,我之前做一个图片处理服务。用户上传图片到 S3,Lambda 自动触发,用 Sharp 库压缩图片,再存回 S3。整个过程不到 50 行代码,部署完就上线了。

但 Lambda 有个痛点:国内访问慢。如果你主要服务国内用户,Lambda 的延迟会让你抓狂。而且,AWS 在国内需要备案,流程比较繁琐。

我的建议:如果你做海外项目,或者你的客户在海外,闭眼选 Lambda。生态成熟,文档齐全,社区活跃。

2.4 阿里云函数计算:国内首选,生态完善

阿里云函数计算(FC)是国内最早推出的 Serverless 产品之一。2017年上线,到现在已经非常稳定。

我为什么推荐它?因为阿里云的生态太强了。OSS、OTS、MNS、API Gateway……这些服务跟 FC 的集成度非常高。你写一个函数,可以轻松触发 OSS 事件、处理表格存储数据、消费消息队列。

我记得有一次,客户需要一个定时任务,每天凌晨从数据库拉数据,处理后写入 OSS。用 FC 的定时触发器,10 分钟搞定。如果用传统服务器,还得搭个 Cron 任务,维护起来麻烦。

阿里云 FC 还有一个亮点:异步调用最长支持 12 小时。这意味着你可以跑一些长时间的任务,比如视频转码、大数据处理。Lambda 最多 15 分钟,这点 FC 完胜。

注意:阿里云 FC 的冷启动问题。如果你用的是 Python 或 Node.js,冷启动还好。但如果是 Java,冷启动可能到 3-5 秒。建议用预留实例解决。

2.5 腾讯云函数:后起之秀,微信生态加持

腾讯云函数(SCF)2019年才推出,但发展很快。它的最大优势是什么?微信生态。

如果你做微信小程序、公众号、企业微信相关的项目,腾讯云函数是天然的选择。它跟微信的集成非常深,比如微信支付回调、微信消息推送,都可以直接触发 SCF。

我做过一个小程序后端,用户在小程序里提交表单,SCF 接收数据,写入数据库,再返回结果。整个过程不需要自己搭服务器,省心省力。

但腾讯云函数也有短板:触发器生态不如阿里云丰富。比如,它没有类似 OTS 的表格存储触发器,也没有 MNS 的消息队列触发器。如果你需要这些,得自己写代码轮询。

一句话总结:做微信生态相关项目,腾讯云函数是首选。其他场景,阿里云更稳妥。

2.6 华为云 FunctionGraph:政企客户的选择

华为云 FunctionGraph 是四个里面最年轻的。2020年才推出,但它的定位很明确:政企客户。

华为云的优势在于安全合规。很多政府项目、国企项目,要求数据必须留在国内,而且要通过等保三级认证。华为云在这方面做得很好。

我接触过一个政府项目,客户要求所有数据必须存储在华为云上,而且函数计算必须支持 VPC 内网访问。FunctionGraph 完美满足这些需求。

但 FunctionGraph 的缺点也很明显:社区小,文档少,遇到问题很难找到解决方案。而且,它的冷启动表现一般,比阿里云和腾讯云差一些。

我的建议:如果你做政企项目,或者客户有严格的合规要求,选华为云。否则,优先考虑阿里云或腾讯云。

2.7 如何选择?一个简单的决策树

说了这么多,你可能还是有点懵。没关系,我给你一个简单的决策树。

  1. 你的客户在海外吗? → 选 AWS Lambda
  2. 你的项目跟微信生态相关吗? → 选腾讯云函数
  3. 你的客户是政府或国企吗? → 选华为云 FunctionGraph
  4. 其他情况(国内通用项目) → 选阿里云函数计算

避坑指南:我曾经有一个项目,一开始选了腾讯云函数,后来客户要求接入阿里云的 OSS 存储。结果发现腾讯云函数跟 OSS 的集成很麻烦,最后不得不迁移到阿里云。所以,选平台之前,先想清楚你的上下游服务是什么。

2.8 小结

嗯,这一章内容不少。我们对比了四个主流云平台,各有优劣。

记住一句话:没有最好的平台,只有最适合你的平台。根据你的业务场景、客户群体、技术栈来选,准没错。

下一章,我们会开始动手。我会带你从零搭建一个 Serverless 项目,选阿里云函数计算作为演示平台。准备好了吗?