最近要部署一个 flask 项目,打算采用 gevent+ gunicorn +systemd 的方式,但是网上的资料大都为 supervisor,我尝试了下比较繁琐,各位有什么建议吗
|
xiaddAug 8, 2018
1
我用的 supervisor 其实还蛮简单的 不过说起来 python web 部署起来还是太麻烦啊
|
|
VVVVVEXAug 8, 2018
3
docker
|
|
4
有条件还是上 docker 吧。次好的选择是 systemd,毕竟是未来的方向,supervisord 只是一个过渡时期的替代品
|
|
nodeAug 8, 2018
5
如果日志是打算在本机查看的话,systemd 可以用 journalctl 看,要比直接打开文本文件可玩的花样多
|
|
6
@node 日志打算有使用 elk 全家桶做处理
|
|
7
@VVVVVEX 我觉得虚拟环境目前足够我使用了
|
|
8
@yanaraika 但是百度 systemd 的教程比较少..清一色 supervisord,我也是用 supervisord 碰到了困难才找到 systemd 的方案的
|
|
9
@yanaraika 另外,你的意思是使用 docker 的话就不需要使用守护进程了?那开机自启动和程序挂掉重启动怎么做的....我看看去
|
|
10
@VVVVVEX docker 的话就不需要使用守护进程了?那开机自启动和程序挂掉重启动怎么做的....
|
|
neoblackcapAug 9, 2018
11
@qq976739120 应该由你的容器集群管理方案决定,比如 k8s
|
|
yanaraikaAug 9, 2018
12
@qq976739120 docker run --restart=always foobar。systemd 教程比较新基本都是英文,用 Google 搜吧
|
|
prolicAug 9, 2018 via Android
13
@qq976739120 docker 启动是把程序挂到前台的,程序死了 k8s 会自动重启新的
|
|
shierjiAug 9, 2018 via Android
14
systemd,支持 venv 把 Python 路径指向 venv 里面的就行。至于教程少,我倒是没觉得啊……
|
|
wzwAug 9, 2018
15
python 防止被反编译, 如何处理?
|
|
FindHaoAug 9, 2018 via Android
16
|
|
1daydaydeAug 9, 2018 via iPhone
17
systemd 一个配置文件搞定。supervisor 为什么还不被淘汰😂
|
|
virusdefenderAug 9, 2018
18
systemd 无法在 docker 中使用,除非 privileged=true
|
|
HFcbyqP0iVO5KM05Aug 9, 2018 via Android
19
Docker 跑服务并且配置日志驱动为 glef,地址为 ELK stack 里 logstash 地址,可以很大程度解决你的需求。
|
|
pcarAug 9, 2018
20
我用 supervisor
|
|
simple2025Aug 9, 2018
21
supervisor 还好吧,简单,更何况 systemd 那么多 service,你不会担心找不到自己的进程 service 吗
|
|
hoteaAug 9, 2018
22
systemd 配置写起来太复杂
|
|
ray1888Aug 9, 2018
23
docker 吧,不然每次每台机器都需要部署底层环境太麻烦了
|
|
julyclydeAug 9, 2018
24
@qq976739120 百度 systemd 资料少,你就不用了?那百度哪天如果坏了,你是不是还不干活了?
|
|
julyclydeAug 9, 2018
26
@ray1888 说的底层环境是选用 docker 的一个理由。不过其实只是把以前用 rpm/deb 表达的依赖关系,改由 docker 表达了而已,而且还不是描述式而是执行式的表达。dockerfile 里有些东西并不能保证每次都执行成功,尤其是和网络等外部环境相关的,所以其实并不是一个表达依赖关系和构建基础的好的方式
|
|
27
@julyclyde 所以才要一套的 CI/CD 来做,Dockerfile 当然是要本地测试过没问题才能放进 CI 的步骤里面,如果有其他的错误,由 CI 解决网络等 docker build 出现的问题( retry ),而且打包成镜像的好处是,可以同时存在多个版本,可以来做蓝绿发布,出问题了只需要把 docker 删掉就好了
|
|
daiqiangbudainiuAug 9, 2018
28
不用 uwsgi 吗?
|
|
29
@julyclyde 也不是这个意思..我是搜了两个关键字,supervisor 显示的信息更多点,我觉得会不会是业界主流的部署方案..
|
|
30
@warcraft1236 这个没用...
|
|
julyclydeAug 9, 2018
31
@qq976739120 资料多,是否主流,这个想法倒是挺自然的。
业界一直不太流行把“自研软件”放在“系统管辖( systemd、sysvinit 等)”之下 |
|
lfzyxAug 9, 2018
32
当然是 systemd,系统级支持
|
|
pathboxAug 9, 2018 via iPhone
33
systemd 用的很爽
|
|
FullBridgeRectAug 9, 2018 via Android
34
来一打 systemd 全家桶
|
|
TyanbootAug 9, 2018 via Android
35
@virusdefender docker 里面没有什么理由用 systemd 吧。本身 docker 设计来就是跑单个进程的。
|
|
virusdefenderAug 9, 2018
36
@Tyanboot #35 理论上是这样的,但是实际上也经常会用多个进程,比如 Nginx + web server + 队列之类的
|
|
TyanbootAug 9, 2018 via Android
37
@virusdefender 这种情况请使用 docker-compose 编排多个容器,设置 restart: always。这样可以把比如队列挂了需要重启这种情况交给 docker daemon 去处理。
|
|
virusdefenderAug 9, 2018
38
@Tyanboot #37 道理我都懂,可实际我用 supervisor + 多个进程在一个容器中用的更爽
|
|
RRLAug 10, 2018
39
想都不用想 直接使用 docker
|
|
zqguoAug 13, 2018
40
用 docker 就好了
|
|
numooneAug 13, 2018
41
用 docker 的话是否必须能连外网,或者另外增加一台用来做 register 的 server ?
|