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

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

  •  
  •   yokap · 2023-04-04 21:23:31 +08:00 · 966 次点击
    这是一个创建于 592 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    先分享我前两年第一次创业的翻车经历,第一次创业是做一个垂直社区小程序,日活跃用户 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 友们一起探讨一下上面几种方案是否可行,或者有什么其他方案推荐。对这个创业项目怎么凉掉感兴趣的也可以聊聊哈哈哈

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

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

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

    浏览流量要与下单流量分开、服务分开、服务器分开。浏览服务做数据库缓存,允许适度的脏数据(例如:访问人数、热度、销量数等),以降低对后端的压力。
    SmiteChow
        4
    SmiteChow  
       2023-04-05 17:46:55 +08:00
    都 docker 了,上 k8s 集群按量付费
    litchinn
        5
    litchinn  
       2023-04-06 09:27:34 +08:00
    1 楼的方案靠谱,Serverless 服务一般都是按量付费的,很适合你这种场景,不过不知道你的系统干嘛的,你首先得定位你的瓶颈在哪里,CPU ,数据库 IO ,内存还是啥,这样才能极致的压缩成本
    yokap
        6
    yokap  
    OP
       2023-04-07 17:23:55 +08:00
    @yinmin 感谢回复,云 MQ 确实贵哈哈,考虑目前并不刚需就不上它了,其他的(RDB,Redis,Es)都是用云服务。读写分离或者微服务的话开发成本会比较高,目前还是单体应用,用 SLB 做扩容比较符合我的场景。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2597 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 04:34 · PVG 12:34 · LAX 20:34 · JFK 23:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.