nodejs 后端项目如何部署?

92 天前
 kaesi0

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

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

目前的困惑在于

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

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

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

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

1621 次点击
所在节点    服务器
13 条回复
gaobh
92 天前
某云最新活动有 2C4G 的 199 一年小项目够用了吧
kaesi0
92 天前
@gaobh 哪个云?请问
gaobh
92 天前
@kaesi0 #2 良心云最新活动里
crysislinux
92 天前
应用容器话,持久存储的部分单独部署或者就用云厂商的
kaesi0
92 天前
@crysislinux 你是 db 和 redis 直接买云的
crysislinux
92 天前
@kaesi0 对啊,你自己另外搞个机器安装也行。
Puteulanus
92 天前
Serverless 有不够灵活,第三方库可能不方便用,平台开始收割的话迁移成本高这些的问题。不过你全是 API 中转和一些无状态的增查删改的话,而且又有明显的流量潮汐,感觉确实适合 Serverless

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

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

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

pm2 做负载均衡意味着你的服务是支持多进程无状态,所以可以在这个基础上挂个流量网关:nginx 或者 lb 服务配合一些脚本做弹性伸缩。
element90
92 天前
我查了一下阿里云有直接容器云的服务,你索性就使用这种,用容器按需部署,这样既可以使用 serverless ,又不需要将每个服务接口单独构造 serverless 函数
opengps
92 天前
你这个用量少,好像可以用云函数,相关的产品不太熟,没法给你判断太多
kaesi0
92 天前
@opengps 云函数试过了,看起来简单,实现起来其实很麻烦最后就没用了
kaesi0
92 天前
@element90 感谢,也了解过这种,不过负载均衡搞不来。。。然后感觉容器云其实价格挺高的

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

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

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

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

© 2021 V2EX