nodejs 后端项目如何部署? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
kaesi0
V2EX    服务器

nodejs 后端项目如何部署?

  •  
  •   kaesi0 2024-09-21 11:15:34 +08:00 2094 次点击
    这是一个创建于 385 天前的主题,其中的信息可能已经有所发展或是发生改变。

    使用 Midwayjs 开发的后端项目,包括 api 项目和管理项目,使用 mongoo 数据库,后续可能会使用 redis ,请问这种单进程的项目怎样部署会比较好呢?

    项目的特性决定了会有比较明显的流量潮汐,就是大部分时间流量不会很多,小部分时间流量会突然增多,但总体流量会持续增加这种。

    目前的困惑在于

    使用云服务器+pm2 的部署方案,可以很简单的实现均衡负载,可以根据云服务器核数灵活的决定 pm2 要 cluster 的数量,db 等可以和服务器装在一台云服务器。当流量增加时,可以增加云服务器核数和内存就行了。 但是感觉现在云服务器越来越贵,要实现灵活的增减配就只能买短时间,但是折扣就会很低。要买长时间的话,变更配置又要补很多差价。。。

    另外问下大佬们,你们通过代理最多能少几个点的折扣?

    另一种部署方案就是使用 Serverless ,麻烦的地方在于前期配置,比较麻烦。配置好了,只需要根据流量情况动态调整实例数量就好了,但是不清楚像 redis ,db 这些是需要另外云服务器来部署,还是买 云 db 或者去 redis 更方便。Serverless 另一个好处就是不像云服务器还要管理服务器的环境,软件版本,bug 修复,漏洞这些。

    对于这两种方法,希望有经验的大佬些能不吝赐教,感谢。希望是能在产品早期找到一个能持续增加,成本可控的方案。

    13 条回复    2024-09-21 16:49:48 +08:00
    Solix
        1
    Solix  
       2024-09-21 11:24:43 +08:00
    某云最新活动有 2C4G 的 199 一年小项目够用了吧
    kaesi0
        2
    kaesi0  
    OP
       2024-09-21 11:31:46 +08:00
    @gaobh 哪个云?请问
    Solix
        3
    Solix  
       2024-09-21 11:45:51 +08:00
    @kaesi0 #2 良心云最新活动里
    crysislinux
        4
    crysislinux  
       2024-09-21 12:03:41 +08:00 via Android
    应用容器话,持久存储的部分单独部署或者就用云厂商的
    kaesi0
        5
    kaesi0  
    OP
       2024-09-21 12:35:10 +08:00
    @crysislinux 你是 db 和 redis 直接买云的
    crysislinux
        6
    crysislinux  
       2024-09-21 13:23:50 +08:00 via Android
    @kaesi0 对啊,你自己另外搞个机器安装也行。
    Puteulanus
        7
    Puteulanus  
       2024-09-21 13:48:08 +08:00
    Serverless 有不够灵活,第三方库可能不方便用,平台开始收割的话迁移成本高这些的问题。不过你全是 API 中转和一些无状态的增查删改的话,而且又有明显的流量潮汐,感觉确实适合 Serverless

    Serverless 一般有自己配套的数据储存方案,看用哪家的研究研究对应的

    如果你流量爆发的时间不多,第一种方案也可以用各家云按量服务器临时手动扩容,自己跑个服务在检测到负载高了的时候调云的 API 开一台按量的机器,把一部分流量匀过去,负载降了就自动删,这样一台长时间的便宜服务器常驻加上按量机器扛过高峰看划算不

    阿里云 k8s 好像有类似的,不过网关那些都要收费好像,规模小了可能没自己这样手动搞一套划算
    kaesi0
        8
    kaesi0  
    OP
       2024-09-21 16:00:58 +08:00
    "自己跑个服务在检测到负载高了的时候调云的 API 开一台按量的机器,把一部分流量匀过去,负载降了就自动删"是需要有一台机器来做均衡负责么?请问要怎么把流量 匀过去呢?是走内网?
    element90
        9
    element90  
       2024-09-21 16:28:24 +08:00
    serverless 仅适合那些诸如体量小,任务独立,冷启动,时延要求低的服务,更准确来说是一个个独立且容易隔离的任务,这些任务每个都可以成为单独的脚本工程来维护,而不是一个大项目工程。如果你目前已经开发出一套服务,就没必要再次迁移到 serverless 了。

    pm2 做负载均衡意味着你的服务是支持多进程无状态,所以可以在这个基础上挂个流量网关:nginx 或者 lb 服务配合一些脚本做弹性伸缩。
    element90
        10
    element90  
       2024-09-21 16:32:10 +08:00
    我查了一下阿里云有直接容器云的服务,你索性就使用这种,用容器按需部署,这样既可以使用 serverless ,又不需要将每个服务接口单独构造 serverless 函数
    opengps
        11
    opengps  
       2024-09-21 16:39:22 +08:00
    你这个用量少,好像可以用云函数,相关的产品不太熟,没法给你判断太多
    kaesi0
        12
    kaesi0  
    OP
       2024-09-21 16:49:03 +08:00
    @opengps 云函数试过了,看起来简单,实现起来其实很麻烦最后就没用了
    kaesi0
        13
    kaesi0  
    OP
       2024-09-21 16:49:48 +08:00
    @element90 感谢,也了解过这种,不过负载均衡搞不来。。。然后感觉容器云其实价格挺高的
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2686 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 13:49 PVG 21:49 LAX 06:49 JFK 09:49
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86