使用多个Docker容器VS标准节点集群时的性能和可靠性

使用多个Docker容器VS标准节点集群时的性能和可靠性

嗨,我有一个关于我遇到的两个设置的性能,可靠性和增长潜力的问题。 我远离Docker或集群专家,所以任何build议或提示将非常感激。

应用程序

Node v6.9.4上运行的典型MEAN堆栈Web应用程序 。 没有什么奇特的,标准的设置。

我发现的问题和可能的解决scheme

a)具有NGINX(反向代理)和NodeJS的标准Linux服务器

b)具有NGINX(反向代理)和NodeJS集群的标准Linux服务器。 使用节点的群集模块

c)使用NGINX的负载均衡器,“Dockerized”NodeJS应用程序克隆3次(3个容器)。 信贷的想法去了Anand Sankar

 // Example nginx load balance config server app1:8000 weight=10 max_fails=3 fail_timeout=30s; server app2:8000 weight=10 max_fails=3 fail_timeout=30s; server app3:8000 weight=10 max_fails=3 fail_timeout=30s; // Example docker-compose.yml version: '2' services: nginx: build: docker/definitions/nginx links: - app1:app1 - app2:app2 - app3:app3 ports: - "80:80" app1: build: app/. app2: build: app/. app3: build: app/. 

d)一起。 “Docker化”的NodeJS应用程序(多个容器),集群configuration在3个容器内部 – NGINX的负载均衡器。

如果我正确地得到这个结果,那么有3个NodeJS容器运行应用程序,其中每个应用程序副本都支持NodeJS集群,这应该会带来难以置信的性能。

3个容器×4个工人,应该指12个节点来处理所有的请求/响应。 如果这是正确的,唯一的缺点就是在硬件方面更强大,机器支持这一点。

无论如何,我的逻辑可能是完全错误的,所以我正在寻找任何意见或反馈!

目标

我的目标是有生产准备好,稳定的环境,准备好承受一些负担。 我们并不是在同时谈论数以千计的并发连接,等等。保持基础架构的可扩展性和灵活性是一个很大的“+”。


希望这个问题是有道理的。 对不起,这个post很长,但我想保持清晰。

谢谢!