应用程序堆栈是由一个或多个群集组成的?

我正在为Magento应用程序堆栈构buildDocker Swarm。 使用Swarm的主要原因是应用程序堆栈将在多节点环境中运行。

下面是应用程序堆栈将运行的服务 –

  1. 清漆(加速剂)
  2. Nginx(networking服务器)
  3. Redis(caching/会话)
  4. MySQL(存储)

上述4个服务中的每一个应该是独立群集(即4个不同的群集)的一部分? 或者,应该为整个应用程序堆栈提供一个单独的群集以及某种机制(可能使用Swarm筛选器),以便将服务部署到特定的节点集合?

最佳做法是什么?

上述4个服务中的每一个应该是独立群集(即4个不同的群集)的一部分?

同一群集群(用于访问相同dockernetworking的所有服务),特别是在使用群集模式时。
请参阅Docker队长Luc Juggery的 “ 使用群集模式部署多服务应用程序 ”。
他创build了一个dockernetworking和一个kv store(使用swarm模式时不需要),并启动所有连接到同一networking的4个服务。

docker-machine ssh manager1 docker network create -d overlay appnet docker-machine ssh manager1 docker service create --name redis --network appnet redis:3.0.7-alpine docker-machine ssh manager1 docker service create --name mongo --network appnet mongo:3.2 ... 

但是将这些服务(同一个群集中)分组的“群模式”方式则是通过分布式应用程序包 (Distributed Application Bundle)进行分析 ,如“ 我第一次尝试使用DAB(又名分布式应用程序包) ”所示。
它使用docker-compose bundle将现有的docker撰写文件转换为dab文件。
注意:在docker 1.12中bundles仍然是实验性的。