初创团队服务器部署方案探讨

2023-04-04 21:23:31 +08:00
 yokap

本帖探讨的是对价格非常敏感的初创团队(无运维)服务器部署方案,土豪不差钱的看看就好。

先分享我前两年第一次创业的翻车经历,第一次创业是做一个垂直社区小程序,日活跃用户 500 左右,服务器是一台腾讯云的 4c8g 轻量,后台是 java 那一套( mysql/redis/rocketmq..),所有服务都是以 docker 方式运行在这台服务器上,平时服务器运行没什么问题。但每两个月有一次大促,流量会上涨 10+倍,没办法横向扩容,系统满载服务超时严重,但是小程序除了响应慢一些,基本可用,运营权衡了成本也基本能接受 翻车的那一次是和一个 100w 粉丝的博主合作直播(视频号),流量一下涌入小程序(用户数 3w+),服务器直接挂掉,整个直播过程小程序都是不可用的,场面一度尴尬。 虽然没来得及升级架构项目就凉了,但是最近又有一些想法,所以和 vu 们探讨一下我之前梳理的方案。

目标:

1.大促期间能横向灵活扩展

2.年费用 15k 以下(不包括 CDN 等流量费用)

方案 A:

2c4g(2 * 2000 元 /年)
云数据库单机基础版(3300 元 /年)
云 redis(300 元 /年)
云 MQTT(8500 元 /年)
搜索 ES(9000 元 /年)
SLB(预估 1000 元 /年) 共 26k

优点:稳定、安全、维护成本低、支持灵活扩容

缺点:贵,超了预算。

方案 B:

8c16g(1 * 7000 元 /年)

2c4g(2 * 2000 元 /年)

SLB(预估 1000 元 /年) 共 12k

说明:中间件数据库等服务全部部署在 8c16g 这台机器上,另外两台做业务服务器

优点:预算之内,支持一定程度的扩容

缺点:维护成本高,稳定性比方案 A 差,组件(数据库 /中间件)服务器无法扩容,可能后面会有迁移成本

方案 C:(砍掉或自建一些中间件服务:砍掉 MQ,一些简单场景使用 redis 队列代替 mq 。自建搜索 ES 服务。)

2c4g(1 * 2000 元 /年)
4c8g(1 * 3500 元 /年)
云数据库(3300 元 /年)
云 redis(300 元 /年)
SLB(预估 1000 元 /年) 共 10k

说明:ES 服务和业务服务部署在 4c8g 这台服务器上,大促时停掉这台机器上的业务服务

优点:满足预算,核心组件使用云服务能支持灵活扩容,稳定一些、维护成本低一些

缺点:业务代码没有一步到位使用 MQ ,会有技术债,后面依然会有代码迁移成本。自建 ES 可用性不能保证,同时需要一定的维护成本。

最后

本人是后台开发,对运维那块一知半解,希望 v 友们一起探讨一下上面几种方案是否可行,或者有什么其他方案推荐。对这个创业项目怎么凉掉感兴趣的也可以聊聊哈哈哈

987 次点击
所在节点    程序员
6 条回复
Aliencn
2023-04-04 21:55:09 +08:00
用 Serverless 部署 Java 程序,数据库用云厂商的 PaaS 服务。
yokap
2023-04-04 23:02:09 +08:00
@Aliencn 谢谢指点,预估了一下成本能降不少,而且发现 ES Serverless 在公测还是免费的
yinmin
2023-04-05 17:01:33 +08:00
不要用轻量服务器,用计算型云服务器。 别看 cpu 型号、内存之类的参数,感觉轻量和计算型云服务器差不多,其实差很远。(1 台物理机上跑轻量服务器数量和跑计算型服务器数量是不一样的,而且通常轻量上的邻居会更占资源)

云 redis 、云 MQTT 都很贵,自掏腰包的初创团队,可以考虑用云服务器自建(别用轻量服务器)。

Serverless 的函数计算(FC)相对成本比较低,扩容快速。开发的程序要能同时兼容自建容器+FC ,方便扩容。

浏览流量要与下单流量分开、服务分开、服务器分开。浏览服务做数据库缓存,允许适度的脏数据(例如:访问人数、热度、销量数等),以降低对后端的压力。
SmiteChow
2023-04-05 17:46:55 +08:00
都 docker 了,上 k8s 集群按量付费
litchinn
2023-04-06 09:27:34 +08:00
1 楼的方案靠谱,Serverless 服务一般都是按量付费的,很适合你这种场景,不过不知道你的系统干嘛的,你首先得定位你的瓶颈在哪里,CPU ,数据库 IO ,内存还是啥,这样才能极致的压缩成本
yokap
2023-04-07 17:23:55 +08:00
@yinmin 感谢回复,云 MQ 确实贵哈哈,考虑目前并不刚需就不上它了,其他的(RDB,Redis,Es)都是用云服务。读写分离或者微服务的话开发成本会比较高,目前还是单体应用,用 SLB 做扩容比较符合我的场景。

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

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

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

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

© 2021 V2EX