V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wfd0807
V2EX  ›  程序员

生产环境发布 SpringBoot 项目的正确方式是什么?

  •  
  •   wfd0807 · 2019-07-29 17:07:46 +08:00 · 6543 次点击
    这是一个创建于 1705 天前的主题,其中的信息可能已经有所发展或是发生改变。

    spring boot 项目打可运行 jar 包,发布到生产环境,使用 java -jar 方式启动,被世界上最好的语言出身的技术经理说太 low 了

    没有任何感情色彩的提问,那么 high 的启动方式什么?

    ps:发布脚本和目标服务器不绑定,因此没有使用系统服务的方式

    第 1 条附言  ·  2019-07-29 17:45:27 +08:00
    (又可以 APPEND 了,奇怪)

    感谢各位关注和肯定
    我现在单方面认为是对方表达不清楚,应该是说“裸运行程序,没有使用进程管理方式不好”
    29 条回复    2019-07-30 16:59:44 +08:00
    HuasLeung
        1
    HuasLeung  
       2019-07-29 17:17:27 +08:00
    docker
    lihongjie0209
        2
    lihongjie0209  
       2019-07-29 17:19:06 +08:00
    systemd 托管或者是 screen/tmux 运行
    LeeSeoung
        3
    LeeSeoung  
       2019-07-29 17:19:39 +08:00
    jenkins+docker 自动化构建部署= =有能力再搞下 k8s 弹性伸缩。。
    EastLord
        4
    EastLord  
       2019-07-29 17:20:29 +08:00
    run as a service
    realpg
        5
    realpg  
       2019-07-29 17:21:28 +08:00
    最次也得 systemd service 啊
    emeab
        6
    emeab  
       2019-07-29 17:22:21 +08:00
    难道不 low 吗? 又在暗示 php...
    airfling
        7
    airfling  
       2019-07-29 17:24:00 +08:00
    我是打包成 war,反正也可以 java-jar 启动,也可以部署到 was 或者其他 web 服务器做集群,也可以用 docker 构建镜像启动
    dreamusername
        8
    dreamusername  
       2019-07-29 17:24:56 +08:00   ❤️ 1
    我的思路是:
    1、注册为 systemd service,可以用 systemctl 启、停,以及开机启动
    2、打包为 docker 文件,使用 docker 进行管理
    这两种对 jar 包不会有任何内部的修改。
    banmuyutian
        9
    banmuyutian  
       2019-07-29 17:25:06 +08:00
    gitlab+jenkins+docker 触发构建,我司目前是这样。。
    wfd0807
        10
    wfd0807  
    OP
       2019-07-29 17:27:36 +08:00
    @HuasLeung
    @lihongjie0209
    @LeeSeoung
    感谢大佬们关注,无论是容器化,还是系统服务托管或者会话保持,运行方式始终是 java -jar
    这个技术经理说“我问过外网,java -jar 的方式太 low 了”
    我都开始怀疑人生了,难道 jar 包还有别的运行方式?

    ps:裸执行 jar 包是我们测试环境的启动方式,是运维照搬到了生产环境的
    AngryPanda
        11
    AngryPanda  
       2019-07-29 17:29:58 +08:00
    的确蛮 low 的
    hahaayaoyaoyao
        12
    hahaayaoyaoyao  
       2019-07-29 17:32:20 +08:00 via Android
    @AngryPanda 来个高级的
    pipixia
        13
    pipixia  
       2019-07-29 17:32:51 +08:00 via Android
    @wfd0807 springboot 官方示例就这种做法 官方也 low 了🐴
    gz911122
        14
    gz911122  
       2019-07-29 17:33:07 +08:00
    docker

    docker 内部还是 java -jar

    不需要那么多骚操作
    huangmingyou
        15
    huangmingyou  
       2019-07-29 17:33:10 +08:00
    docker+k8s
    或者 rpm ,deb 包管理方式用系统方式管理进程.
    至于说 java -jar low ,那很多买 10 多万的商业软件也这么执行的.
    EastLord
        16
    EastLord  
       2019-07-29 17:35:56 +08:00
    spring boot 官方文档 专门有一章讲 部署应用程序
    cubecube
        17
    cubecube  
       2019-07-29 17:38:00 +08:00 via Android
    请问程序执行,怎么才能不 low?靠意念启动
    wfd0807
        18
    wfd0807  
    OP
       2019-07-29 17:38:00 +08:00
    为什么不能 APPEND ?
    lihongjie0209
        19
    lihongjie0209  
       2019-07-29 17:40:53 +08:00
    @wfd0807 #10 没有别的运行方式, 哪怕你用 docker, 内部也是 java -jar 执行的, 只是封装了一下而已. 你可以问一下你的领导他有什么不 low 的解决方案, 我们也长长见识
    tmac6740
        20
    tmac6740  
       2019-07-29 17:41:12 +08:00 via iPhone
    发布项目方式也有了鄙视链
    Michaelssss
        21
    Michaelssss  
       2019-07-29 17:41:22 +08:00
    问题的核心是怎么解决 low 吧,很简单,替换 class 升级~拍黄片的标准做法
    wfd0807
        22
    wfd0807  
    OP
       2019-07-29 17:42:07 +08:00
    感谢各位关注和肯定
    我现在单方面认为是对方表达不清楚,应该是说“裸运行程序,没有使用进程管理方式不好”
    palmers
        23
    palmers  
       2019-07-29 17:42:48 +08:00
    不用在意他说的 如果指出了实际存在的问题 可以继续讨论 否则直接忽视就行了, 把时间浪费在无意义的事情上
    Trim21
        24
    Trim21  
       2019-07-29 17:47:21 +08:00 via Android
    对方大概是觉得你们直接敲命令启动服务器太 low …
    wfd0807
        25
    wfd0807  
    OP
       2019-07-29 17:52:52 +08:00
    @Trim21 那是运维的事情
    Aresxue
        26
    Aresxue  
       2019-07-29 17:58:38 +08:00
    持续集成 Jenkins、容器虚拟化 Docker,docker 都上了 k8s 来一套
    weishu
        27
    weishu  
       2019-07-29 18:21:08 +08:00
    用 systemd / supervisor / pm2,这样你的服务挂了之后会帮你自动重启
    ourslay
        28
    ourslay  
       2019-07-29 18:26:00 +08:00
    nnnToTnnn
        29
    nnnToTnnn  
       2019-07-30 16:59:44 +08:00
    e......mmmmm 一般都是上 ci 的,然后走流水线,这个要看你们运维了。。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2752 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 11:58 · PVG 19:58 · LAX 04:58 · JFK 07:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.