【发布时间】:2016-10-14 20:07:41
【问题描述】:
我希望能够在本地开发微服务,但也希望以最少的配置更改将它们“推送”到生产环境中。以前我是把所有微服务都放在一个docker-compose本地;但我开始发现这可能不实用。
新想法是每个服务拥有一个 docker-compose。这并不意味着它将仅使用一个容器运行;它可能有更多的内部(比如后面的一些数据存储等)。
从这个新的角度来看,我们来看看著名的docker voting app example,它由 5 个组件组成:
- (P) Python web 应用程序,可让您在两个选项之间进行投票
- (R) 收集新选票的 Redis 队列
- (J) Java worker 消耗选票并将其存储在...
- (S) 由 Docker 卷支持的 Postgres 数据库
- (N) Node.js webapp,实时显示投票结果
假设您想将此示例投入生产(因此只有一个docker-compose 不是一种选择:)。不要忘记,可能会在其之上添加更多与基础设施相关的组件(如 kibana、prometheus ......)。我们希望能够扩展我们需要的东西;我们使用例如蜂拥而至。
问题是:
- 如何组织这个示例:单个
docker-composes还是多个? - 我们这里有哪些微服务?换句话说,您会将哪些组件组合成单个
docker-compose?示例:J 和 S? - 如果服务不在单个 docker-compose 中,我们是否将它们添加到同一个覆盖网络以使用 swarm dns 功能?
- 等等……
(我不需要关于如何安装的细节,这个问题是关于顶级组织的)
【问题讨论】:
标签: docker docker-compose microservices docker-swarm docker-container