V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
bugsnail
V2EX  ›  Go 编程语言

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

  •  
  •   bugsnail · 2020-10-27 11:28:53 +08:00 · 3476 次点击
    这是一个创建于 1500 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

    gomicro 不太连接,好像是自动随机端口内部网络路由。
    Hanggi
        9
    Hanggi  
       2020-10-27 13:41:12 +08:00
    问下有人用 bazel 吗?如何?
    Jason0803
        10
    Jason0803  
       2020-10-27 13:43:16 +08:00
    jenkins + k8s
    hakono
        11
    hakono  
       2020-10-27 13:44:11 +08:00
    Blue Green Deployment/蓝绿部署 了解下
    meshell
        12
    meshell  
       2020-10-27 14:01:32 +08:00
    我们是 gitlab Ci 直接发布重启
    PiersSoCool
        13
    PiersSoCool  
       2020-10-27 14:36:38 +08:00
    直接重启 golang 进程就可以,很快
    mepwang
        14
    mepwang  
       2020-10-27 14:45:06 +08:00 via iPhone
    nginx-proxy 和 nginx-companion,自动搞定子域名和 let’s encrypted 证书以及反向代理,适合小型应用
    coolcoffee
        15
    coolcoffee  
       2020-10-27 14:51:12 +08:00
    多实例,nginx upstream 做负载均衡,如果 nginx 检查到下游服务器错误会自动剔除,也就是说某个实例升级不可用的时候 nginx 会自动帮忙切换到可用的实例
    bugsnail
        16
    bugsnail  
    OP
       2020-10-27 14:53:38 +08:00
    @hakono #11 这个应该是最优解,但是,一般小厂应该没这没多钱来闲置一套正式环境
    axex
        17
    axex  
       2020-10-27 19:20:31 +08:00
    做好负载均衡、服务发现,直接重启即可
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4224 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 04:10 · PVG 12:10 · LAX 20:10 · JFK 23:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.