请教一个问题, flask 项目是怎么部署的呢?尤其是在部署在多太服务器的情况下。

2020-02-05 09:53:21 +08:00
 la2la

目前这个项目部署在单台服务器上,使用 nginx+nohup+gunicon+flask 部署,部署的流程就是写个脚本,把代码从 git 上拉下来,然后用 nohup 把代码跑起来。

现在碰到的问题是需要把相同的代码部署在多个服务器上,每个服务器部署的代码是一样的,如果还是使用这个方式的话,每次发布版本或者测试的时候,需要到每个服务器上跑一下,太麻烦了

有没有其他的方式部署,或者我目前的这种部署方式有什么问题?

3499 次点击
所在节点    程序员
30 条回复
dingyaguang117
2020-02-05 09:54:28 +08:00
一步到位上 k8s
kaifang
2020-02-05 09:55:50 +08:00
gitlab ci cd
locoz
2020-02-05 10:04:55 +08:00
问题在于没有容器化,容器化之后配上 k8s、ci/cd,整个部署过程就是全自动的了。测试环境也可以自动启动和更新,不影响线上版本。
locoz
2020-02-05 10:05:19 +08:00
建议先学一下 docker 的使用
noqwerty
2020-02-05 10:05:58 +08:00
docker compose 挺好用的
Torpedo
2020-02-05 10:06:47 +08:00
把你的部署脚本改成用 git 托管平台的 web hook 触发的方式部署
WildCat
2020-02-05 10:07:18 +08:00
1. docker-compose
2. docker swarm with Portainer
3. k3s
4. k8s
la2la
2020-02-05 10:07:32 +08:00
@locoz 谢谢建议,也考虑过容器,但是公司的实际情况是懂 docker 的人比较少,也没啥技术储备。但是如果没有其它办法那就只有用 docker 了
noqwerty
2020-02-05 10:11:35 +08:00
noqwerty
2020-02-05 10:11:49 +08:00
locoz
2020-02-05 10:14:43 +08:00
@la2la #8 docker 很简单的,玩一会儿就会了。而且用 ci/cd 的话就一个人懂 docker 也没啥问题,其他人只管提交代码,剩下的都是全自动操作。
Akikiki
2020-02-05 11:02:09 +08:00
不想用 docker 的话,ansible 应该可以解决。
xiri
2020-02-05 11:17:11 +08:00
多台服务器需要操作的话搞成自动化操作比较好(就用那些现成的 CI/CD 之类的就行了)
salamanderMH
2020-02-05 11:20:52 +08:00
简单点就用 jenkins 发布到多台服务器。
chenqh
2020-02-05 11:24:45 +08:00
ansible
a852695
2020-02-05 12:17:30 +08:00
感觉你要解决的是多个服务部署问题,k8s 高端一点,但是 ansible 也完全满足你现有的需求了
ila
2020-02-05 12:29:24 +08:00
自己实现监控,有更新时强制覆盖本地,gunicorn 自动 reload,提交心跳包
ipwx
2020-02-05 12:39:20 +08:00
ansible 解决你现阶段的问题
ipwx
2020-02-05 12:39:46 +08:00
还有 nohup 你认真的么? 建议用 supervisor
hcymk2
2020-02-05 12:42:24 +08:00
简单处理可以用 Fabric。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/642218

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX