在select基础设施时要问的问题

我的公司将需要一个后端引导其服务,我负责基础设施的select。 这些产品将包括几个具有通用后端的应用程序(移动,网页,桌面)(我猜想这是一个巨大的API)。

基本上,我们需要像虚拟机(或多个虚拟机或专用服务器),我们可以运行任何我们想要的东西(Python,Ruby,Node.js,PosgreSQL,MySQL,PosgreSQL,Redis等)。

应该问什么问题(对我和我的同事),以便精确了解我们的需求? 我不想在一年后意识到我们忘记了一些至关重要的东西(或者至less我宁愿​​意识到我们忘记了1,而不是10)。

我知道这个问题可能导致舆论的答案,但我想答案总是有点偏颇。

如果您需要多个客户端(networking,桌面应用程序,移动应用程序…),则需要决定这些客户端如何与后端进行通信。 你可以使用REST,这迫使一组架构select; 你可以使用(说)CORBA,这自然会迫使一些决定等,等等等等。

一旦完成整理,您可以决定是否只在其他人的硬件上使用虚拟机,在自己的专用硬件上使用虚拟机,或者在裸机上运行机器(即没有中间层虚拟机pipe理程序层)。 或者,也许只需运行使用HTTP进行通信的应用程序(例如,Google AppEngine)即可。

这里的驱动因素是:

  • 成本,无论是资本支出还是持续的运营成本。
  • 努力保持这一切运行
  • 可扩展性(在别人的硬件上启动新虚拟机相对较快,如果是自己的硬件,可能需要更长的时间或花费昂贵的硬件)。
  • 保持服务器场运行的现有技能集
  • 获得上述技能的成本

但是,我不能告诉你正确的答案是什么,我能做的最好的就是说“取决于”。