请教下大佬, 小公司怎么不停机更新服务,更舒服地部署(不用熬夜)

2021-03-05 15:10:48 +08:00
 wuzhizuiguo

我们现在用的还是 在阿里云, 复制粘贴 tomcat ( war 包),nohup 启动 jar,用的是 spring cloud,多台服务器起多个同服务。 用户每天活跃也有一定量了。 遇到更新时,我们只能粗暴的选择人少的时候更新。一般是夜间。。很累。

论坛里也看了些帖子,https://www.v2ex.com/t/705776 像某宝、狗东这样的网站怎么发布(更新)项目的; https://www.v2ex.com/t/694561 线上服务要咋切换版本才不会影响用户?

(没有用过,感觉很高端..我们很多东西都没有) 想请教下大佬,我们这种 /类似的 该怎么做

8702 次点击
所在节点    程序员
52 条回复
realpg
2021-03-05 15:15:45 +08:00
架构好就可以。
比如:
前面负载分配器,后面新旧服务都起来,直接修改规则到新的,然后逐渐停机旧的
realpg
2021-03-05 15:16:01 +08:00
PS 不是让你们这么做,随便想想就有很多方法
chendy
2021-03-05 15:17:02 +08:00
本质上应该都是用负载均衡切流量,具体有很多做法
最简单粗暴的可能是脚本切换 nginx 配置切流量
eason1874
2021-03-05 15:24:07 +08:00
做好版本兼容,就可以滚动部署,逐台下线,部署,再上线。

版本不兼容的,用 tcpcopy 之类的工具复制流量测试新版本,然后下线一台,部署完成上线的同时下线其他所有机器,然后逐台部署上线恢复
pathbox
2021-03-05 15:32:16 +08:00
k8s
zpfhbyx
2021-03-05 15:34:12 +08:00
用阿里云的负载均衡,切流量 , 滚动更新
zhuweiyou
2021-03-05 15:34:15 +08:00
简单点, 就 nginx upstream 切流量
keepeye
2021-03-05 15:34:50 +08:00
蓝绿发布,前面挂一个负载均衡器就行了,可以用 nginx,也可以直接购买阿里云的 LBS
no1xsyzy
2021-03-05 15:35:22 +08:00
我之前还没想到单机复制两个 tomcat 然后用 nginx 作负载均衡意义是啥,甚至吐槽 “单机负载均衡?!”
之后才意识到负载均衡可以拿来作不停机更新。
wzb0909
2021-03-05 15:37:36 +08:00
你没有不停机更新的需求呀,那就写个脚本,定时在夜里跑不就好了。。。

应用软件,哪儿有什么高端的东西,都是商业词忽悠人的~
xmumiffy
2021-03-05 15:45:03 +08:00
上 docker stack 就自带不停机更新了 配上 CI 可以自动部署
walker2laok
2021-03-05 16:07:23 +08:00
简单:阿里云的负载均衡用起来,然后一台一台的更新
wakzz
2021-03-05 16:12:23 +08:00
主流方案就是先切流量再部署的滚动部署方案,常见的就是 nginx 的 upstream 修改,以及 k8s 的 dns 服务发现。
DoctorCat
2021-03-05 16:14:09 +08:00
infra 和整体架构的问题,不是单纯的运维问题。做好高可用后对集群划分,设计自动化灰度等系统
mensa23
2021-03-05 16:24:09 +08:00
蓝绿发布。
xarthur
2021-03-05 16:26:21 +08:00
我觉得你们需要招一些合格的运维了(
clf
2021-03-05 16:35:19 +08:00
用的 k8s,CI/CD 自动化部署,代码合并后自动打包成镜像上传到阿里云的镜像库,然后告知生产环境拉取镜像,切换版本。
litel
2021-03-05 16:35:32 +08:00
部署一套成熟的 DevOps,甚至能学到更多东西
lyric31
2021-03-05 16:39:04 +08:00
@xarthur +1024 专门人做专门的事
DollarKiller
2021-03-05 16:41:14 +08:00
rancher 金丝雀发布

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

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

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

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

© 2021 V2EX