V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
keepRun
V2EX  ›  程序员

serverless 函数计算能省多少钱?

  •  
  •   keepRun · 2023-11-30 17:52:53 +08:00 · 3574 次点击
    这是一个创建于 369 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近在了解 serverless 这块,研究过程中感觉有点迷糊,我有点怀疑 serverless 省钱的逻辑,serverless 关键是按量付费,可是假设有个 web 应用 qps 为 1 ,并且每秒都有 1 个请求,在这个情况下跑一个月它真的比购买 ecs 运行服务器省钱吗? 阿里云的 serverless 分为事件函数触发,不过这种实现接口的形式对业务迁移不太友好;假设使用的是 web 函数或者容器镜像的形式来启动,这种可以打包所有框架代码的形式更友好,在用这种模式运行 serverless 会比 ecs 省钱吗?

    serverless 确实方便扩缩容,但是 ecs 本身也可以根据负载决定由几台服务器处理请求。

    有没有了解这块的人分享下 serverless 省钱的案例?怎么使用 serverless 才省钱

    40 条回复    2023-12-01 19:20:08 +08:00
    xmumiffy
        1
    xmumiffy  
       2023-11-30 17:55:20 +08:00
    一直都是每秒一个请求那肯定不便宜.
    serverless 适合一天就很少一段时间有请求,或者请求分布很不均匀的情况
    keepRun
        2
    keepRun  
    OP
       2023-11-30 18:00:05 +08:00
    @xmumiffy 所以我感觉这东西局限性感觉很大,比如采用事件函数形式,你还得修改代码,针对其接口实现代码,代码侵入性太大了。
    而如果采用 web 函数或者容器镜像形式,我不清楚其启动速度如何,但是感觉启动会稍微慢些,尤其是 java ,对 nodejs 、golang 应该会好点。

    有没有了解的人指点下
    xmumiffy
        3
    xmumiffy  
       2023-11-30 18:02:29 +08:00
    支持容器的,启动速度的问题可以预启动.
    mikurasa
        4
    mikurasa  
       2023-11-30 18:08:44 +08:00
    我感觉最大的问题是 web 函数的方式传统 web 框架就显得很笨(express/koa) 有了 web 服务还要去配置云函数的配置( http 服务/定时任务)、计算资源(内存)。项目云函数变多后代码仓库又很丑。
    前司有使用 Serverless 做核心服务,用的 node.js ,框架还是组长自己撸的 faas.js 。不过问题是这个框架又不适配多云厂商(只支持腾讯云)。
    mikurasa
        5
    mikurasa  
       2023-11-30 18:09:39 +08:00
    省钱是省钱的 毕竟省了 ecs 机器钱
    以前的腾讯云函数调用次数免费 100w 次(小公司月额度根本用不到),现在价格策略应该变了
    hallDrawnel
        6
    hallDrawnel  
       2023-11-30 18:09:54 +08:00   ❤️ 1
    serverless 从成本角度看局限相当大。从云厂商的角度看它可以融入到一些基础设置功能里面,允许用户写一部分自己的代码嵌入到标准的执行流程中价值很大。
    witcat
        7
    witcat  
       2023-11-30 18:09:58 +08:00
    就是一种概念,不一定省钱。如果用户是巨量的,肯定还是得自己部署机器。
    我觉得 serverless 主要是把运维给免掉了,不需要配置、被攻击整个网络扛着。
    开发者只需要关注代码,减少在处理风险上花的时间。适合没钱请运维的团队。
    缺点也有很多,我试用过 lambda 冷启动就很频繁,而且要面向它的平台开发。
    现在换用 cf workers 了,每个月免费一百万请求,超出部分每一百万 0.3 美金。
    witcat
        8
    witcat  
       2023-11-30 18:11:11 +08:00
    另外我觉得国内没有一个 serverless 服务商是配套齐全的,很难用的起来
    murmur
        9
    murmur  
       2023-11-30 18:13:16 +08:00
    serverless 的意义不就是把脖子伸出来给人砍么,配套全意味着你动脉都接别人机器上了,你的业务也是按照别人接口设计的,别人封你号你连迁移的资格都没有
    keepRun
        10
    keepRun  
    OP
       2023-11-30 18:22:06 +08:00
    感觉 serverless 很适合用户量很少且未来不怎么会增长的业务以及流量分布极不均匀的业务,个人小项目部署倒是很合适
    cheneydog
        11
    cheneydog  
       2023-11-30 19:07:21 +08:00
    比如日终结算,每次需要资源量计算量不小,但是每天就算一次,不值得部署一个服务器。
    winfura02
        12
    winfura02  
       2023-11-30 19:10:00 +08:00
    不好用,麻烦。不如买个低配的 vps
    lyc8503
        13
    lyc8503  
       2023-11-30 19:21:45 +08:00
    适合访问量极低的个人小项目,几乎不要钱且不用运维,但就从按量计费的模式来看就不太适合需要明确预算的项目,如果代码出 bug 或者被 cc 攻击都可能产生巨额费用。

    而且完全使用 serverless 需要代码进行适配,开发成本也是成本(虽说支持容器,但也不是所有代码都能直接打包就能跑的,要求不能在内存里保存任何状态,控制并发等)。
    asuraa
        14
    asuraa  
       2023-11-30 19:32:10 +08:00
    serverless 省不了钱 反而贵的要死 最便宜就是自己买个 vps
    kenvix
        15
    kenvix  
       2023-11-30 20:01:13 +08:00
    就算能省,serverless 这种东西没有统一规范,和云服务厂商平台高耦合,哪天涨价了你都没脾气
    kenvix
        16
    kenvix  
       2023-11-30 20:02:36 +08:00
    这种东西我感觉就像是微信小程序,说割就能割。而且微信小程序至少稍微改改就能再封装成 web app ,serverless 那真是被厂商拿捏命脉了
    msg7086
        17
    msg7086  
       2023-11-30 20:12:37 +08:00
    局限性大很正常啊。本来就是适合某一种特定的场景应用的,你没有这种场景自然就不需要这种东西。
    beneo
        18
    beneo  
       2023-11-30 20:16:23 +08:00
    用的时候 0-N ,不用的时候 N-0 ,这才是最便宜的。保留 1 是最不便宜的
    hhacker
        19
    hhacker  
       2023-11-30 20:17:08 +08:00
    不省钱, 省运维
    holulu
        20
    holulu  
       2023-11-30 20:26:10 +08:00
    没听说 serverless 能省钱
    Zchary
        21
    Zchary  
       2023-11-30 20:27:51 +08:00
    serverless 也就大公司用得起(
    enchilada2020
        22
    enchilada2020  
       2023-11-30 20:33:19 +08:00 via Android
    不省钱 省事。。
    louisxxx
        23
    louisxxx  
       2023-11-30 20:33:44 +08:00
    serverless 省的不是服务器钱,省的是人工。你一台机子一天压榨出几亿请求没问题吧。换成 serverless 你就得付很多钱
    cc666
        24
    cc666  
       2023-11-30 20:37:16 +08:00
    首先价格非常贵,看 CPU 费用就知道了,大约是 VPS 价格的两倍。
    入口还得适配对应的云厂商,关键还是极难调试,极费时间,代码也不好管理,真别用
    nbndco
        25
    nbndco  
       2023-11-30 21:05:11 +08:00 via iPhone
    serverless 省的是微服务的运维成本
    totoro52
        26
    totoro52  
       2023-11-30 21:08:22 +08:00
    看你业务,你业务每天的流量非常频繁那还是算了, 我怕你到时看账单会吓死, 如果你跟我一样只是放放博客和和一些个人用的 API 那完全够用,我到现在还没出过一分钱 白嫖了一年多,主要就是我一个人在访问
    paynezhuang
        27
    paynezhuang  
       2023-11-30 21:54:31 +08:00
    今天还看了下阿里的 serverless ,感觉计费项还挺多的。小访问还能用用吧
    EscYezi
        28
    EscYezi  
       2023-11-30 22:40:58 +08:00 via Android
    @totoro52 serverless 没有状态,数据存储是怎么解决的呢
    aecra
        29
    aecra  
       2023-11-30 23:01:48 +08:00
    @totoro52 我也挺好奇你的数据存储怎么做的,同有一个这么尴尬的博客,都好久没更新了
    pengtdyd
        30
    pengtdyd  
       2023-11-30 23:02:59 +08:00
    serverless 省钱是最大的谎言。还不如直接买 vps 。
    cdlnls
        31
    cdlnls  
       2023-12-01 00:11:32 +08:00
    如果是自己的东西,访问量/资源占用不高的情况下,费用肯定是 serverless 低。

    serverless 的单价(单位时间的 CPU/内存/调用费用)要比 ECS 贵很多倍。

    ECS 起步价格一个月都要几十块钱,也就是不管有没有用,都有一个最低消费在。
    serverless 好处是没有最低消费,用多少资源花多少钱,只资源买单。
    ---

    如果你只是做一个定时任务,每隔一个小时访问一个接口拉数据,用 ECS 一个月最低配的也要花十几块钱。但是这种场景换成 serverless ,基本成本就是 0 。

    如果再极端一点,这个定时任务,跑的程序要用到 32G 内存,ECS 如果选个 32G 内存的机器,一个月不得几百块钱。这个换成 serverless ,成本肯定会比 ECS 低很多。

    正因为 serverless 单价贵,所以如果你跑长时间高负载的任务,价格可能是同等规格的 ECS 的好几倍。
    keepRun
        32
    keepRun  
    OP
       2023-12-01 00:28:47 +08:00
    @cdlnls 感觉自己做个小项目,干脆买个一百多的 vps 得了,针对临时、定时的大内存、大计算量需求,确实用 serverless 很好,不过其它方面用 ecs 、vps 更方便
    sampeng
        33
    sampeng  
       2023-12-01 08:19:26 +08:00 via iPhone
    serverless 不管云厂商怎么宣传,只适合做 job 类任务。业务跑上面就是做大死。无论是成本还是云厂商绑定。还不说阿里云其实底层并不稳定,ecs 就是机器,开了不会怎么样。他底层升级也影响不到你。serverless…我最少碰倒两次他偷偷摸摸升级或者改配置影响到我…
    Dotennin
        34
    Dotennin  
       2023-12-01 09:13:37 +08:00
    @witcat 超的部分也太便宜了. 比 lambda 良心多了. 做一些微服务还是不错.
    cp19890714
        35
    cp19890714  
       2023-12-01 10:01:13 +08:00
    selverless 省钱, 就看两点, 满足这两点, 就能省, 否则就不能省.
    1. 弹性伸缩, 可以省掉 ecs 费用.
    2. 减少运维人员.

    请求量太少或太多, 不会省钱. 请求量没有明显峰谷, 不会省钱.

    现在 serverless 都支持容器运行时了, 原本的代码不用修改, 通过 http 接口与 serverless 环境交互, . 所以不会绑死服务商.
    xuanbg
        36
    xuanbg  
       2023-12-01 12:41:38 +08:00
    用脚后跟思考一下,也能知道能给你省事的东西肯定不会帮你省钱。
    Jianzs
        37
    Jianzs  
       2023-12-01 13:50:50 +08:00
    @keepRun #2 负载量低的确可以省钱,针对运维成本,如果只是用 Serverless ,其实也很难降低,毕竟还要维护数据库之类的其他组件,只有利用好云上的各种能力才能降低运维成本。

    针对代码侵入这块,的确大型云服务商都没有很好的解决方案,让用户一个个函数的去编写,体验蛮差的。

    但是,其实国外有一些更加用户友好的解决方案,例如 Vercel ,国内也挺多人在用,他提供的能力是,前后端一体化,只需要你把 api 函数放到相应的目录下,就能用上 FaaS 的能力,降低了使用的复杂度。

    不过这种使用方式会有提供商锁定问题。如果你理解 IaC 的话,最近有一个号称“面向云”的新编程语言,Winglang ,挺火的,使用它的话,你只需要编写代码,会自动生成 AWS 、Azure 等云厂商的 IaC 代码,然后就可以直接部署了。 https://github.com/winglang/wing

    Winglang 引入很多新的概念,Pluto 的话,和 Winglang 差不多,但是尽可能不添加新概念,采用的是 TypeScript ,同样不需要修改代码就可以多云迁移。https://github.com/pluto-lang/pluto
    Vieufoux
        38
    Vieufoux  
       2023-12-01 14:09:12 +08:00
    为什么都在说 serverless 不省钱呢?也要分情况来看吧。如果项目访问量很少,用 serverless 肯定是省钱的。serverless 不用就不花钱,假如这个月没有请求,serverless 就不花钱,但是你部署在机器上,即使没有任何请求都要付机器的费用。
    cokar
        39
    cokar  
       2023-12-01 18:17:49 +08:00
    我用了两年了,确实很方便,也省钱了,我主要是做网站和 API 。完全可以不用考虑高峰期扩容的问题,我现在所有站都在阿里的函数计算
    keepRun
        40
    keepRun  
    OP
       2023-12-01 19:20:08 +08:00
    @cokar 流量分布情况如何?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3531 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 10:58 · PVG 18:58 · LAX 02:58 · JFK 05:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.