1
m939594960 2020-10-23 16:46:56 +08:00
函数工作流
|
2
janxin 2020-10-23 17:01:51 +08:00
是单个函数实例吧,你可以反复调用的。
不过还需要注意超时时间 |
3
oneforallsoft OP 这种场景用 lambda 太烦了 用 lambda 要达到单机 8 核的效果 只能把数据拆成 8 份
总共要 9 个 lambda 用户请求第一个 lambda 这个 lambda 调用另 8 个 lambda 每个都传输不同参数用来切割数据 等 8 个 lambda 所有数据都处理好返回给第一个 lambda 它再处理下再返回给用户 是不是太烦了? |
4
oneforallsoft OP 哦 想到了另一种方案 就是普通的业务用 lambda 报表类型需要多核的 另外搞个 ec2 反正暴露出来的都是 url 验证可以用 jwt 这样是不是最好办法?
|
5
user8341 2020-10-23 17:46:04 +08:00
|
6
stateman 2020-10-23 20:06:41 +08:00
感觉跟 serverless 相关性不高吧, 即使 EC2,cpu cores 也是有上限的,最大规格是 48Cpu core,96 vCpu,但数据量可能是无限增加的,而且很可能是几何级增减,如果翻了 100 倍,1000 倍,怎么解决呢?
@oneforallsoft |
7
hq 2020-10-24 06:07:52 +08:00
其实个人觉得 serverless 带来的价值(比如按使用计费,事件触发,减少运维等)不应该跟 serverless 的计算能力挂钩,为什么 serverless 计算就只能小规格呢?只是从技术的角度(资源利用,弹性伸缩)目前提供大规格实例尚未成熟,但是需求是真实存在的,所以阿里云函数计算推出了性能型实例,最大 8 核 16GB,楼主可以试下: https://help.aliyun.com/document_detail/179379.html#title-mhb-tgy-0m9 。
但是即使有大规格实例,不管是服务器还是无服务器,是不是靠单机的高配置解决这个问题就好呢?我觉得能不拆还能达到业务目的最好,但是有时候需要考虑其它因素,比如中途失败带来的影响,就像打游戏只能一次通关不能保存进度一样,很不爽,白打了。你这个场景可能还好,有的场景需要拆分,又要对拆分后的任务保存进度,做状态管理,这些事情让 serverless faas 来做不合适,更好的做法是工作流协调函数,不好意思,再允许我推荐一下 Serverless 工作流服务,这里有篇文章介绍如何使用工作流和函数实现 MapReduce,https://developer.aliyun.com/article/741105 。 欢迎探讨,吐槽,加盟。 |
8
opengps 2020-10-24 08:30:06 +08:00
serverless 更多的出发点在于,随用随取。而不是爆发性质的一下子需求巨大功能
|
9
lihongming 2020-10-24 13:16:59 +08:00 via iPhone
serverless 并不只有 lambda,还有 fargate
lambda 适合简单业务,一般用作微服务特别合适。如果需要更高的单机性能,或者需要突破 lambda 的时间和空间限制,那可以考虑 fargate 。配置好自己的 docker image,然后以 serverless 的方式运行容器。 AWS 已经基本实现了一切皆 serverless,连关系型数据库都可以 serverless 的方式运行 |
10
oneforallsoft OP @lihongming 大佬 求个 fargate 或 ecs 入门工具 你不会用 ecs-cli 命令行 吧?
|
11
oneforallsoft OP @lihongming fargate 是不是不需要像 lambda 那样把所有代码都拆成一个个 function 如果 laravel 就可以像传统那样用 就是存储方面需要用 s3 而不是本地磁盘?
抱歉 小弟目前这方面很菜 |
12
lihongming 2020-10-25 01:00:42 +08:00 via iPhone
@oneforallsoft fargate 就是以 serverless 的方式运行 docker image,所以你只要会用 docker,就可以用 fargate,无非就是配置一下策略(保持几个实例运行,当空闲实例少于多少时增加,多于多少时减少之类的)
serverless 所有涉及持久化的存储都必须使用外部服务(数据库、S3 之类的),因为你的实例不会长期保存,运行完随时可能被销毁。 |
13
oneforallsoft OP @lihongming 又想到 2 个问题
#fargate 配置好运行起来后 有个公网 ip 访问是能访问 但要不要和 load balancer 结合 是不是一定需要 load balancer 不然如果负载很大 起了很多个 instance 怎么保证他们使用同一个公网 ip? #我需要更新代码时 怎么把 docker image 弄上去 |
14
oneforallsoft OP #怎么更新代码找到了 就是点 service -> update 然后 选择新 task definition
|
15
oneforallsoft OP @lihongming 大哥 能不能问下 你接客户业务怎么样 有没有很大的项目 或把项目提练出来变成产品
|