问下大家的 golang 的生产自动化部署方案

2020-10-27 11:28:53 +08:00
 bugsnail

大家在生产的部署方案是怎么样的?

持续集成工具编译=>shell 脚本起守护进程,端口号变一下=> 修改 nignx 反代到新的端口 => 重启 nginx ?

3308 次点击
所在节点    Go 编程语言
17 条回复
1wlinesperday
2020-10-27 11:34:55 +08:00
什么意思 端口号为什么要变一下
xmge
2020-10-27 11:42:37 +08:00
gitlab - jenkins -shell 脚本,依次重启 ???
keepeye
2020-10-27 11:49:04 +08:00
敢问多大业务量?一般的直接粗暴重启 go 进程就行了,httpserver 本身支持平滑重启的
kiddingU
2020-10-27 11:50:07 +08:00
jenkins + k8s
keepeye
2020-10-27 11:50:55 +08:00
graceful shutdown
wilsonWei
2020-10-27 13:29:35 +08:00
nginx 在第一次部署的时候人工配置一下就可以了
以后每次部署就是:CI ==> graceful shutdown
treblex
2020-10-27 13:30:02 +08:00
直接干掉重启就行了,端口号不变的
或者搞个平滑重启,
git hooks 拉仓库,重新编译就行了
eudore
2020-10-27 13:37:59 +08:00
双节点 切换前面负载均衡就好,或者容器滚动更新,非 go 业务。

热重启方案不靠谱,在新程序启动报错 panic 的时候,旧的也关掉了会暂停服务;热重启在容器下不支持。

gomicro 不太连接,好像是自动随机端口内部网络路由。
Hanggi
2020-10-27 13:41:12 +08:00
问下有人用 bazel 吗?如何?
Jason0803
2020-10-27 13:43:16 +08:00
jenkins + k8s
hakono
2020-10-27 13:44:11 +08:00
Blue Green Deployment/蓝绿部署 了解下
meshell
2020-10-27 14:01:32 +08:00
我们是 gitlab Ci 直接发布重启
PiersSoCool
2020-10-27 14:36:38 +08:00
直接重启 golang 进程就可以,很快
mepwang
2020-10-27 14:45:06 +08:00
nginx-proxy 和 nginx-companion,自动搞定子域名和 let’s encrypted 证书以及反向代理,适合小型应用
coolcoffee
2020-10-27 14:51:12 +08:00
多实例,nginx upstream 做负载均衡,如果 nginx 检查到下游服务器错误会自动剔除,也就是说某个实例升级不可用的时候 nginx 会自动帮忙切换到可用的实例
bugsnail
2020-10-27 14:53:38 +08:00
@hakono #11 这个应该是最优解,但是,一般小厂应该没这没多钱来闲置一套正式环境
axex
2020-10-27 19:20:31 +08:00
做好负载均衡、服务发现,直接重启即可

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

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

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

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

© 2021 V2EX