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

2020 年 10 月 27 日
 bugsnail

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

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

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

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

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

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

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

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

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

© 2021 V2EX