V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
Recommended Services
Amazon Web Services
LeanCloud
New Relic
ClearDB
oneforallsoft
V2EX  ›  云计算

serverless 不适合单机需要对大批数据进行多核并行处理的业务?

  •  
  •   oneforallsoft · Oct 23, 2020 · 3168 views
    This topic created in 2013 days ago, the information mentioned may be changed or developed.
    我的业务需要对几十万数据做报表, 从 db 里取出来, 然后分给 8 个 cpu 核心做运算,这样速度就能快,不然单核只能慢 8 倍. 这样的情况是不是不能 serverless? 因为目前 sls 单函数只最多给分配了 2 个核心
    15 replies    2020-10-27 20:51:50 +08:00
    m939594960
        1
    m939594960  
       Oct 23, 2020
    函数工作流
    janxin
        2
    janxin  
       Oct 23, 2020
    是单个函数实例吧,你可以反复调用的。

    不过还需要注意超时时间
    oneforallsoft
        3
    oneforallsoft  
    OP
       Oct 23, 2020   ❤️ 1
    这种场景用 lambda 太烦了 用 lambda 要达到单机 8 核的效果 只能把数据拆成 8 份
    总共要 9 个 lambda 用户请求第一个 lambda 这个 lambda 调用另 8 个 lambda 每个都传输不同参数用来切割数据 等 8 个 lambda 所有数据都处理好返回给第一个 lambda 它再处理下再返回给用户 是不是太烦了?
    oneforallsoft
        4
    oneforallsoft  
    OP
       Oct 23, 2020
    哦 想到了另一种方案 就是普通的业务用 lambda 报表类型需要多核的 另外搞个 ec2 反正暴露出来的都是 url 验证可以用 jwt 这样是不是最好办法?
    9LCRwvU14033RHJo
        5
    9LCRwvU14033RHJo  
       Oct 23, 2020
    @oneforallsoft

    那样估计会慢死,数据要在网络上传输好几遍。
    stateman
        6
    stateman  
       Oct 23, 2020
    感觉跟 serverless 相关性不高吧, 即使 EC2,cpu cores 也是有上限的,最大规格是 48Cpu core,96 vCpu,但数据量可能是无限增加的,而且很可能是几何级增减,如果翻了 100 倍,1000 倍,怎么解决呢?
    @oneforallsoft
    hq
        7
    hq  
       Oct 24, 2020
    其实个人觉得 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

    欢迎探讨,吐槽,加盟。
    opengps
        8
    opengps  
       Oct 24, 2020
    serverless 更多的出发点在于,随用随取。而不是爆发性质的一下子需求巨大功能
    lihongming
        9
    lihongming  
       Oct 24, 2020 via iPhone
    serverless 并不只有 lambda,还有 fargate

    lambda 适合简单业务,一般用作微服务特别合适。如果需要更高的单机性能,或者需要突破 lambda 的时间和空间限制,那可以考虑 fargate 。配置好自己的 docker image,然后以 serverless 的方式运行容器。

    AWS 已经基本实现了一切皆 serverless,连关系型数据库都可以 serverless 的方式运行
    oneforallsoft
        10
    oneforallsoft  
    OP
       Oct 24, 2020
    @lihongming 大佬 求个 fargate 或 ecs 入门工具 你不会用 ecs-cli 命令行 吧?
    oneforallsoft
        11
    oneforallsoft  
    OP
       Oct 24, 2020
    @lihongming fargate 是不是不需要像 lambda 那样把所有代码都拆成一个个 function 如果 laravel 就可以像传统那样用 就是存储方面需要用 s3 而不是本地磁盘?
    抱歉 小弟目前这方面很菜
    lihongming
        12
    lihongming  
       Oct 25, 2020 via iPhone
    @oneforallsoft fargate 就是以 serverless 的方式运行 docker image,所以你只要会用 docker,就可以用 fargate,无非就是配置一下策略(保持几个实例运行,当空闲实例少于多少时增加,多于多少时减少之类的)

    serverless 所有涉及持久化的存储都必须使用外部服务(数据库、S3 之类的),因为你的实例不会长期保存,运行完随时可能被销毁。
    oneforallsoft
        13
    oneforallsoft  
    OP
       Oct 25, 2020
    @lihongming 又想到 2 个问题
    #fargate 配置好运行起来后 有个公网 ip 访问是能访问 但要不要和 load balancer 结合 是不是一定需要 load balancer 不然如果负载很大 起了很多个 instance 怎么保证他们使用同一个公网 ip?
    #我需要更新代码时 怎么把 docker image 弄上去
    oneforallsoft
        14
    oneforallsoft  
    OP
       Oct 25, 2020
    #怎么更新代码找到了 就是点 service -> update 然后 选择新 task definition
    oneforallsoft
        15
    oneforallsoft  
    OP
       Oct 27, 2020 via Android
    @lihongming 大哥 能不能问下 你接客户业务怎么样 有没有很大的项目 或把项目提练出来变成产品
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3361 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 54ms · UTC 12:53 · PVG 20:53 · LAX 05:53 · JFK 08:53
    ♥ Do have faith in what you're doing.