无服务(Serverless)应用开发体验

2020-08-31 08:42:39 +08:00
 zfish

本文描述了笔者开发一个基于 AWS Serverless 技术的应用的全过程。基础设施使用 Serverless Framework 和 Terraform 搭建。系统的核心模块是每天都会执行一次的定时任务:该任务通过 Tushare 获取一组 ETF 指数基金价格数据,处理之后会将交易信号生成文本存放至 S3 桶。之后会发送消息给 AWS SNS Topic,订阅该主题的用户会收到邮件提醒。在系统的 Web 页面里有用户邮件订阅入口,也可以访问每天的历史交易信号记录。

原文地址: 《 Serverless 应用开发小记》

技术栈:

架构图:

9829 次点击
所在节点    程序员
45 条回复
whileFalse
2020-08-31 09:18:11 +08:00
架构图很漂亮。

问句跑题的,技术选型时使用 Terraform/Serverless Framework,而不是其他框架(比如 SAM 、CDK )是什么考虑呢?
比如我的公司使用该技术 /有跨云跨提供商需求或不希望被云绑定 /该框架对新用户更友好
zfish
2020-08-31 09:40:36 +08:00
@whileFalse 没有啥特别的原因,主要是我目前只熟悉这两个,还没用过你提到的这些。
zfish
2020-08-31 09:41:20 +08:00
@zfish tf 和 sls 也可以跨云的,不知道你指的跨云具体是啥
whileFalse
2020-08-31 09:56:03 +08:00
@zfish 我说的这两个是 AWS 自己的框架,不支持跨云

我在考虑要不要学一下 Terraform/Serverless 之类的框架,所以问一下这些框架的应用场景。
主要是我目前没有跨云的需求,不确定这些框架除了跨云之外还有什么优势。
kenshinhu
2020-08-31 10:05:34 +08:00
这个会否类似 国内的 leancloud 方案?
dk7952638
2020-08-31 10:06:07 +08:00
Serverless 的厂商绑定确实是个很大的风险,有没有成熟的中间层框架或者跨平台的方案没?
threebr
2020-08-31 10:08:45 +08:00
请问架构图是用什么软件画的?
tflz514
2020-08-31 10:11:54 +08:00
歪个楼,架构图用什么工具画的?
Tumblr
2020-08-31 10:11:56 +08:00
对标题略懵。。。是「无服务」开发还是「无服务器」开发?
多年来一直把 server-less 翻译为 「无服务器」的我……开始了对自己的怀疑。

anyway,感觉蛮棒的,尤其是原文。
eason1874
2020-08-31 10:12:36 +08:00
就我的体验来说,Serverless 在应用上除了响应时间慢点,啥都好,就是贵,用不起。
zfish
2020-08-31 10:28:20 +08:00
@whileFalse sls 和 tf 都可以跨云,具体你可以看看他们的文档,sls 的跨云就是理念一致,写法还是没法复用,类似 react native 这种开发体验
zfish
2020-08-31 10:28:42 +08:00
@kenshinhu leancloud 不算吧,差异还是很大的
zfish
2020-08-31 10:30:36 +08:00
@eason1874 也挺便宜的,主打的不就是按需付费么,如果流量小,其实很便宜
Muninn
2020-08-31 10:48:01 +08:00
我最近一个项目也用的 aws serverless 全套。用下来的感想,它不是很易用,不敏捷,不完善,遇到很多问题。DynamoDB 反人类。

项目小了它麻烦,项目大了它贵。

招不到会这个的人。

估计就 Node 全栈的人玩玩还行。

下个项目还是继续 golang + react 香。
ysc3839
2020-08-31 10:53:54 +08:00
@dk7952638 我前段时间做过调查,大部分 Serverless 平台都支持 Node.js ,然后许多平台 http 请求的接口是用 Node.js 标准的 req res,可以直接配合 express 。少数使用私有接口的比如 AWS 也有对应的 wrapper 。
zfish
2020-08-31 10:56:00 +08:00
@Muninn 易用性还有待提升,我感觉它 vpc 和 IAM 都很复杂,估计以后会变得易用吧,现在也只是尝试,体验还行,个人项目做不错,费用也便宜
th00000
2020-08-31 11:03:28 +08:00
@Muninn #14 DynamoDb 深度用户, 我觉得不光不反人类, 简直就是人类的福音
zherrrrrrrr
2020-08-31 11:12:22 +08:00
您的资料整理真全,aws 来公司给介绍过 serverless,吸收的不多,但确实是很不错,替代服务器是趋势。
hillwall
2020-08-31 12:05:01 +08:00
DynamoDB 反人类+1,用得太痛苦
594duck
2020-08-31 12:12:26 +08:00
serverless 动不动几百 ms 的延迟用的也好?而且服务栈用的太复杂了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/702709

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX