作为开发部门,大家都是怎么讲项目交给运维部门上线的? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
zonga
V2EX    程序员

作为开发部门,大家都是怎么讲项目交给运维部门上线的?

  •  
  •   zonga 2016-09-01 18:00:55 +08:00 5128 次点击
    这是一个创建于 3329 天前的主题,其中的信息可能已经有所发展或是发生改变。

    例如开发这边有个 war 包,想要上线直接发给运维的同事这样不够吧。。 另外,打包成 rpm 这个想法怎么样呢?

    37 条回复    2016-09-03 17:42:39 +08:00
    HypoChen
        1
    HypoChen  
       2016-09-01 18:27:00 +08:00   1
    docker image
    mcfog
        2
    mcfog  
       2016-09-01 19:50:10 +08:00
    “有个 war 包”

    第一步就不对了

    建议搜索“持续集成” "自动化部署"
    ericFork
        3
    ericFork  
       2016-09-01 19:54:02 +08:00   1
    建议用 CI 来根据 pull request 打 war 包和部署,另外可以看看 tomcat 的 parallel deployment:

    http://tomcat.apache.org/tomcat-8.5-doc/config/context.html#Parallel_deployment
    Mose
        4
    Mose  
       2016-09-02 06:19:15 +08:00
    要部署的服务器账号给我。。。
    jinhan13789991
        5
    jinhan13789991  
       2016-09-02 08:40:57 +08:00
    我们运维开发是同一个人
    zonga
        6
    zonga  
    OP
       2016-09-02 08:54:41 +08:00
    @HypoChen 多谢,我去查看一下相关文档。
    zonga
        7
    zonga  
    OP
       2016-09-02 08:55:29 +08:00
    @mcfog 我描述不仔细,其实这个 war 包就是我们的 jenkins 已经构建好的,但是运维那边可没有 jenkins 啊。。
    zonga
        8
    zonga  
    OP
       2016-09-02 08:58:36 +08:00
    @ericFork CI 是开发自己的 CI ,运维没有,感觉让他们自己安装一个又不太现实。 tomcat 文档正要看,多谢提供思路。
    zonga
        9
    zonga  
    OP
       2016-09-02 08:59:24 +08:00
    @Mose
    @jinhan13789991 服务器属于自己多好,随便搞。。
    virusdefender
        10
    virusdefender  
       2016-09-02 09:08:07 +08:00
    谁开发谁运维。。
    zonga
        11
    zonga  
    OP
       2016-09-02 09:16:45 +08:00
    @virusdefender 谁污染谁治理,,哈哈
    reeco
        12
    reeco  
       2016-09-02 09:18:19 +08:00 via Android
    把代码提交到 gitlab 上,点击部署, ok
    zonga
        13
    zonga  
    OP
       2016-09-02 09:33:57 +08:00
    @reeco 部署的结果是在开发服务器上构建出一个 war 包,但是后续的问题仍然存在。
    pncltp
        14
    pncltp  
       2016-09-02 10:03:53 +08:00 via iPhone   1
    现在很多公司都在用 docker ,搞自动化部署。
    xderam
        15
    xderam  
       2016-09-02 10:05:43 +08:00
    @zonga 后续的问题是指什么呢?如果应用上没有什么需要,一个 war 足以。除非你们的运维不知道 war 是干嘛的,或者不知道 war 的一些机制。你打成 rpm 也是一样的,对了!回滚这部分咋考虑的?
    taresky
        16
    taresky  
       2016-09-02 10:08:08 +08:00
    我司也是谁开发谁运维。
    9hills
        17
    9hills  
       2016-09-02 10:10:21 +08:00
    支持谁开发谁测试谁运维。不分 RD QA OP ,但是要求大家都是 full stack
    xcodebuild
        18
    xcodebuild  
       2016-09-02 10:11:27 +08:00
    打包成 rpm 不如 build 成 docker image
    sudoz
        19
    sudoz  
       2016-09-02 10:12:42 +08:00
    CI 持续集成
    Nexvar
        20
    Nexvar  
       2016-09-02 10:14:16 +08:00   1
    80%的服务跑在容器里面

    基本链路是 : 打包成 image -> 传给测试测试 -> build run 部署

    jenkins 等工具基本实现了自动化
    lcc4376
        21
    lcc4376  
       2016-09-02 11:02:49 +08:00
    git push origin master
    salmon5 div class="fr">     22
    salmon5  
       2016-09-02 11:35:02 +08:00
    请问各位,在自动化部署过程中,比如 java 项目,生产环境怎么实现业务不中断的?
    切走流量-->重启 tomcat-->切回流量吗?
    ma125125t
        23
    ma125125t  
       2016-09-02 11:38:39 +08:00
    我们这里开发自己发布 server ...
    yatesun
        24
    yatesun  
       2016-09-02 11:42:05 +08:00
    我们是 git 提交完代码以后,让专门负责运维的人,执行一下 shell 代码,批量从多台机子上面 pull 代码。

    第一次的话,直接要服务器密码自己配
    reeco
        25
    reeco  
       2016-09-02 13:49:17 +08:00 via Android
    @zonga 后续能有什么问题,如果你指的是你的代码造成部署失败,那就只能自己解决
    aveline
        26
    aveline  
       2016-09-02 14:42:21 +08:00
    吐槽一句说打 Docker image 的你们知道 Tomcat 本身就是个容器么 ...
    MarioxLinux
        27
    MarioxLinux  
       2016-09-02 14:50:32 +08:00
    @salmon5 生产环境要有主备,先更新备机再更新主机, Jenkins+ansible 实现自动部署, ansible 将应用发布到服务器之前先将原有 webapps 里的包以包名和日期结合的方式备份起来 rsync 到备份服务器,然后重启 tomcat (最好注册成 service 或 systemctl )
    julyclyde
        28
    julyclyde  
       2016-09-02 14:57:04 +08:00
    @aveline servlet 容器和 linux container 完全两码事好吧!
    aveline
        29
    aveline  
       2016-09-02 15:02:04 +08:00
    @julyclyde 是两回事 ... 但是我总觉得容器里再套个容器怪怪的 ...
    Infernalzero
        30
    Infernalzero  
       2016-09-02 15:06:55 +08:00
    @salmon5 是这样没错,通过 nginx 更改 upstream 来搞
    smileawei
        31
    smileawei  
       2016-09-02 15:09:28 +08:00
    用 git 开发把代码推送到 master 分支。然后在服务器 更新代码。编译程序。复制编译好的程序到服务目录。修改配置文件。重启 tomcat 。当然上面的过程用 shell 实现。
    julyclyde
        32
    julyclyde  
       2016-09-02 16:07:10 +08:00
    @aveline 把 servlet 容器叫成“应用服务器”也行。不过这样又跟 EJB 的重名了?哈哈哈哈……
    wintersun
        33
    wintersun  
       2016-09-02 16:11:18 +08:00
    @aveline 蒸锅里,一楼碗里蒸条鱼,二楼碗里咸鸭蛋,…… 蒸锅是容器,碗也是容器,该干嘛干嘛去,哇卡卡卡
    ytmsdy
        34
    ytmsdy  
       2016-09-02 17:48:48 +08:00
    都是自己动手丢上线的,丢给运维,回头出问题了还是回来找你。
    kangxianpeng
        35
    kangxianpeng  
       2016-09-02 19:45:52 +08:00
    easy
    unixbeta
        36
    unixbeta  
       2016-09-03 11:15:15 +08:00 via iPhone
    主要看你多大规模,有没有人手, full stack 适合几个人的小公司,没啥流量服务随时可中断,等你到了一定规模,开发,测试,运维这些就必不可少了,人多了一个人一个想法,必须走流程规范。
    koalli
        37
    koalli  
       2016-09-03 17:42:39 +08:00
    你们都用 jenkins 了,再多一步部署到运维的服务器不行吗...
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     979 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 18:57 PVG 02:57 LAX 11:57 JFK 14:57
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86