dig*_*nyc 5 django amazon-web-services celery supervisord docker
我们正在开发一个新的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
Run Code Online (Sandbox Code Playgroud)
传统观点认为我们应该在ElasticBeanstalk上使用多容器配置,但由于所有容器都使用相同的代码,因此从OPS的角度来看,使用带有Supervisord的单个容器配置来管理进程可能更有效,更简单.
单个容器带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
Run Code Online (Sandbox Code Playgroud)
当在AWS内存上设置多容器配置分配给每个容器时,我的想法是让容器OS在内部处理内存分配而不是将其显式设置到每个容器更有效.我不太了解多容器Docker如何在ElasticBeanstalk下运行,以智能地推荐这种或那种方式.
这种情况的最佳配置是什么?
| 归档时间: |
|
| 查看次数: |
466 次 |
| 最近记录: |