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 如何选择?一个简单的决策树
说了这么多,你可能还是有点懵。没关系,我给你一个简单的决策树。
- 你的客户在海外吗? → 选 AWS Lambda
- 你的项目跟微信生态相关吗? → 选腾讯云函数
- 你的客户是政府或国企吗? → 选华为云 FunctionGraph
- 其他情况(国内通用项目) → 选阿里云函数计算
避坑指南:我曾经有一个项目,一开始选了腾讯云函数,后来客户要求接入阿里云的 OSS 存储。结果发现腾讯云函数跟 OSS 的集成很麻烦,最后不得不迁移到阿里云。所以,选平台之前,先想清楚你的上下游服务是什么。
2.8 小结
嗯,这一章内容不少。我们对比了四个主流云平台,各有优劣。
记住一句话:没有最好的平台,只有最适合你的平台。根据你的业务场景、客户群体、技术栈来选,准没错。
下一章,我们会开始动手。我会带你从零搭建一个 Serverless 项目,选阿里云函数计算作为演示平台。准备好了吗?