选择基础设施时要问的问题

选择基础设施时要问的问题

我的公司需要一个后端来启动其服务,我负责选择基础设施。产品将由多个应用程序(移动、网络、桌面)和一个通用后端(我猜是一个巨大的 API)组成。

基本上,我们需要像 VM(或多个 VM?或专用服务器?)这样的东西,我们可以在其中运行任何我们想要的东西(Python、Ruby、Node.js、PosgreSQL、MySQL、PosgreSQL、redis 等)。

为了准确了解我们的需求,应该问哪些问题(对我和我的同事)?我不想一年后才意识到我们忘记考虑一些重要的事情(或者至少我更希望意识到我们忘记了 1 个,而不是 10 个)。

我知道这个问题可能会导致主观的回答,但我猜答案总是有点偏见的。

答案1

如果您需要多个客户端(Web、桌面应用程序、移动应用程序等),则需要决定这些客户端如何与后端进行通信。您可以使用 REST,这会强制一组架构选择;您可以使用(例如)CORBA,这自然会强制一些决策,等等,等等,等等。

解决这些问题后,您可以决定是只在其他人的硬件上使用虚拟机,还是在您自己的专用硬件上使用虚拟机,或者在“裸机”上运行计算机(即,没有中间的虚拟机管理程序层)。或者可能只是运行使用 HTTP 进行通信的应用程序(例如,在 Google AppEngine 上)。

这里的驱动因素是:

  • 成本,包括资本支出和持续运行成本。
  • 需要努力维持一切运转
  • 可扩展性(在别人的硬件上启动新的虚拟机相对较快,如果是自己的硬件,则闲置机器可能会花费更长的时间或花费更多成本)。
  • 维持服务器群正常运行的现有技能
  • 获得上述技能的成本

然而,我无法告诉你正确答案是什么,我只能说“这取决于”。

相关内容