ElasticBeanstalk Docker,一个容器还是多个容器?

时间:2016-12-12 16:51:53

标签: django amazon-web-services docker celery supervisord

我们正在开发一个新的REST API,它将使用Docker部署在AWS ElasticBeanstalk上。它使用Python Celery进行预定作业,这意味着需要为工作人员运行单独的进程,我们当前的Docker配置有三个容器......

Multicontainer Docker:

09c3182122f7    sso    "gunicorn --reload --"    18 hours ago    Up 26 seconds                            sso-api
f627c5391ee8    sso    "celery -A sso worker"    18 hours ago    Up 27 seconds                            sso-worker
f627c5391ee8    sso    "celery beat -A sso -"    18 hours ago    Up 27 seconds                            sso-beat

传统观点认为我们应该在ElasticBeanstalk上使用多容器配置,但由于所有容器都使用相同的代码,因此从OPS的角度来看,使用带有Supervisord的单个容器配置来管理进程可能更有效,更简单。 / p>

单一容器w / Supervisord:

[program:api]
command=gunicorn --reload --bind 0.0.0.0:80 --pythonpath '/var/sso' sso.wsgi:application
directory=/var/sso

[program:worker]
command=celery -A sso worker -l info
directory=/var/sso
numprocs=2

[program:beat]
command=celery beat -A sso -S djcelery.schedulers.DatabaseScheduler
directory=/var/sso

当在AWS内存上设置多容器配置分配给每个容器时,我的想法是让容器OS在内部处理内存分配而不是将其显式设置到每个容器更有效。我不太了解多容器Docker如何在ElasticBeanstalk下运行,以智能地推荐这种方式。

这种情况的最佳配置是什么?

0 个答案:

没有答案