TL; DR在编写第一行代码之前,您应该考虑可伸缩性。
首先是第一件事。可扩展性!=优化
在编写第一行代码之前,您应该考虑可伸缩性。这并不意味着您会在可能会大受欢迎的情况下建立一些庞大的基础设施。考虑可伸缩性意味着:
- 确保已编写代码以便扩展。 我见过很多项目,这些项目没有考虑过扩大规模。结果是一个代码库,无论您使用哪种硬件,它都不会扩展,或者扩展成本过高。
- 找出您的扩展策略。 制定有关如何支持所有用户的计划。您有一个MySQL数据库,是要对其进行分片或群集还是其他。诸如分片之类的策略需要预先考虑,因为它对体系结构提出了要求。集群,少了。您是否在支持会话,会话将如何与多个前端服务器进行响应?您是否需要在负载均衡器中进行粘性会话。
- 制定实施策略。 您是否打算使用AWS进行扩展。您是否可以利用任何产品或服务来立即进行动态扩展?这还涉及了解您的费用。
但是听起来您已经有了一个代码库。现在的问题是何时开始扩展。这完全取决于您的代码。
如果您的代码适合扩展,那么您将完成艰巨的工作。您可以获得一个AWS账户,根据需要启动服务器,然后就可以使用了。
如果您的代码无法扩展或存在瓶颈,那么您需要做的工作。您需要确定瓶颈所在并加以解决。“时间”真的很难知道。一些服务处于平稳状态,一些服务稳定增长,而另一些则爆炸。决定何时以类似规模的方式投入资源通常是业务的功能,并且是对风险的评估。
在您的位置上,我可能会发布“测试版”并管理用户的期望。这样我就可以拿出产品了,看看它如何展开。