Golang Go语言的生产自动化部署方案问下大家

发布于 1周前 作者 h691938207 来自 Go语言

Golang Go语言的生产自动化部署方案问下大家

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

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

18 回复

什么意思 端口号为什么要变一下

更多关于Golang Go语言的生产自动化部署方案问下大家的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


gitlab - jenkins -shell 脚本,依次重启 ???

敢问多大业务量?一般的直接粗暴重启 go 进程就行了,httpserver 本身支持平滑重启的

jenkins + k8s

graceful shutdown

nginx 在第一次部署的时候人工配置一下就可以了
以后每次部署就是:CI ==> graceful shutdown

直接干掉重启就行了,端口号不变的
或者搞个平滑重启,
git hooks 拉仓库,重新编译就行了

双节点 切换前面负载均衡就好,或者容器滚动更新,非 go 业务。

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

gomicro 不太连接,好像是自动随机端口内部网络路由。

问下有人用 bazel 吗?如何?

Blue Green Deployment/蓝绿部署 了解下

我们是 gitlab Ci 直接发布重启

直接重启 golang 进程就可以,很快

nginx-proxy 和 nginx-companion,自动搞定子域名和 let’s encrypted 证书以及反向代理,适合小型应用

多实例,nginx upstream 做负载均衡,如果 nginx 检查到下游服务器错误会自动剔除,也就是说某个实例升级不可用的时候 nginx 会自动帮忙切换到可用的实例

#11 这个应该是最优解,但是,一般小厂应该没这没多钱来闲置一套正式环境

做好负载均衡、服务发现,直接重启即可

关于Golang(Go语言)的生产自动化部署方案,以下是一个基于当前行业实践的专业回复:

Golang的生产自动化部署通常涉及持续集成/持续部署(CI/CD)工具、容器化技术,以及云服务的支持。

  1. CI/CD工具:是实现自动化部署的核心,如Jenkins、Travis CI、CircleCI等,可监控代码仓库变更,自动执行测试、构建、部署等流程。选择合适的CI/CD工具,并根据项目需求配置自动化流程。
  2. 容器化技术:如Docker,可将应用及其环境封装在容器内,实现“一次构建,处处运行”。创建Dockerfile定义镜像构建过程,使用Docker Compose管理多容器应用。
  3. 云服务:提供基础设施支持,如AWS、Google Cloud Platform、Azure等,提供容器服务和无服务器计算服务,简化部署过程。

此外,编写自动化脚本也是关键步骤,包括构建脚本(用于编译Go代码、管理依赖等)和部署脚本(负责将构建的可执行文件传输到服务器,并执行必要操作)。

同时,确保自动化部署的稳定性和安全性,需使用版本控制系统、实施权限控制、进行监测和日志记录等。

综上所述,通过综合利用CI/CD工具、容器化技术和云服务,结合自动化脚本的编写,可实现Golang项目的高效、可靠自动化部署。

回到顶部