几个星期前,我已经搬到新的公司担任Linux系统pipe理员,他们将开始一个将生产服务器基础设施从数据中心转移到亚马逊AWS的项目。
他们遵循“ 我们的交通驱动我们的系统devise ”的概念; 这意味着以及服务器不会超载,我们可以使用它来提供多个服务,即使像RabbitMQ这样的服务没有超载,它也可以被两个不同的应用程序使用,也不会造成任何冲突。 那么这个架构师在过去的四年里一直在为一百万用户提供服务,他们将在新的基础架构中使用它。
我相信“ 我们的系统devise应该带动我们的交通 ”。 这意味着一组服务器应该被devise成只为一个应用程序提供服务,即使它没有被超载,一个数据库也只应用一个应用程序,这将有助于debugging将来的任何问题,每个应用程序和干净的架构师都有独立的日志。 但他们认为这将花费更多的钱,需要更多的维护,没有附加价值。
那么,我们的交通应该驱动我们的系统devise还是我们的系统devise来推动我们的交通?
说清楚这将有助于我走正确的道路,要么按照自己的方式,要么find好的理由让他们跟随我。
在较小的环境中,多个服务在较less数量的服务器上运行是具有成本效益的。
处理大量数据时,从pipe理的angular度来看,更容易分离服务,因为您可以快速识别,控制和解决较窄的竞争领域的问题。
将这些应用程序放置到Container(思考Docker)环境中也将使您能够根据需要更改容器的数量,从而更改可以提供服务的连接数。 这可以在规则的谷歌计算引擎完成,我相信这是亚马逊EC2容器服务相同,我没有使用AWS,所以我不能肯定,但是。