elasticsearch,scalability,Node.js,Mongodb,Docker,elasticsearch,Scalability" /> elasticsearch,scalability,Node.js,Mongodb,Docker,elasticsearch,Scalability" />

Node.js 如何使用docker正确部署和扩展应用程序

Node.js 如何使用docker正确部署和扩展应用程序,node.js,mongodb,docker,elasticsearch,scalability,Node.js,Mongodb,Docker,elasticsearch,Scalability,我正在学习使用docker部署带有mongo DB和elastic search的nodejs应用程序。我希望它是可伸缩的,nodejs服务器和弹性搜索服务器。我找到了docker。但我不知道如何设计项目结构。我找到了aws ec2。我认为这会很好。但是,我的疑问是,我如何部署它?最好的选择是将弹性搜索与nodejs容器分开部署吗?或者我可以在ec2实例上的单个docker容器中部署所有这些?docker对部署大型应用程序有用吗?我在谷歌上搜索过,但找不到任何真正有用的服务。您需要将它们作为单独

我正在学习使用docker部署带有mongo DB和elastic search的nodejs应用程序。我希望它是可伸缩的,nodejs服务器和弹性搜索服务器。我找到了docker。但我不知道如何设计项目结构。我找到了aws ec2。我认为这会很好。但是,我的疑问是,我如何部署它?最好的选择是将弹性搜索与nodejs容器分开部署吗?或者我可以在ec2实例上的单个docker容器中部署所有这些?docker对部署大型应用程序有用吗?我在谷歌上搜索过,但找不到任何真正有用的服务。

您需要将它们作为单独的服务运行和扩展:

  • 在docker主机或k8s上运行elasticsearch群集
  • 在docker或kubernetes上运行mongod服务
  • 在docker主机或k8s上运行应用程序,并使用上述两种服务

目前,我正在docker主机上作为单独的服务运行所有这些服务,但我计划在kubernetes上运行它们,以便在不使用自定义自动化脚本的情况下扩展它们。

如果将docker用于存储引擎,请确保使用docker卷存储数据

不过,我建议在没有docker的节点上运行mongoDB,这仅仅是因为磁盘性能。对于弹性搜索tbh,我可能也会这样做


编辑:是的,在单独的docker实例上分离您的服务。还可以看看。

嗯,但是成本会更高,不是吗?与在单个实例上使用它相比,成本会更高,但它的扩展性很好。你可以将elastic和mongo放在EC2实例上,然后在你的应用程序中使用ECS(都在VPC内,以保持它的美观和安全),如果你启动的是超小型应用程序,但希望能够扩展。你知道一种便宜的服务吗?我可以为mongo/elastic使用aws ec2吗?mongo/elastic可以使用m5.large,node.js可以使用ecs m3.medium/t2.micro实例。使用docker的好处是,您可以轻松地从t2转到更大的实例:)