2018:Serverless落地元年
2018年,Serverless(无服务器架构)从概念验证阶段进入实际生产应用。AWS Lambda在2018年推出了Python 3.7和Go运行时,阿里云函数计算也在国内快速推广。对于软件开发外包团队而言,Serverless意味着一种全新的交付模式——不再需要关心服务器运维,只专注业务逻辑。
旭日神州在2018年为多个客户尝试了Serverless架构,本文分享我们的实践经验。
Serverless的核心价值
按需付费,成本优化
传统服务器是按时间付费——不管有没有流量,服务器都在运行。Serverless按调用次数和执行时长计费,闲置时不产生费用。对于突发流量型应用(如定时任务、Webhook、图片处理),成本优势非常明显。
自动弹性伸缩
流量突增时,Serverless平台自动扩容函数实例;流量回落后自动缩容。开发者不需要提前预估容量、配置自动伸缩组。这极大简化了运维工作。
开发效率提升
开发者只需要编写函数代码,上传到平台即可运行。不需要配置服务器、不需要部署中间件、不需要做系统加固。对于中小型团队,这种效率提升是革命性的。
适用场景与不适用场景
适合Serverless的场景
- 事件驱动型任务:文件上传后触发图片压缩、数据库变更触发数据同步
- API后端:简单的CRUD接口,通过API Gateway + Lambda实现
- 定时任务:数据报表生成、日志清理、定时推送
- 短链服务、Webhook处理
不适合Serverless的场景
- 长连接应用:WebSocket、即时通讯——函数执行有时间限制
- 长时间运行的任务:批量数据处理(超过函数超时限制)
- 低延迟要求的核心交易:冷启动问题可能导致首次请求延迟数秒
- 有状态服务:Serverless函数是无状态的,状态需要外置到数据库或缓存
工程化实践建议
在软件开发外包项目中采用Serverless,需要注意:第一,选择成熟的云厂商平台,避免被小众平台锁定;第二,函数粒度要适中,不要把一个完整应用拆成几十个细粒度函数,否则调试和监控会非常痛苦;第三,建立本地调试能力,不能每次都上传到云端调试;第四,做好监控和日志——Serverless的分布式调试比传统应用更难。
结语
Serverless不会完全取代传统服务器架构,但它会成为云原生技术栈的重要组成部分。未来的企业应用很可能是混合架构——核心交易跑在容器里,边缘逻辑和事件处理跑在Serverless上。具备Serverless开发能力的IT外包团队,将在云原生时代获得差异化竞争优势。