yongzhong

你们的公司都有发布系统吗

  •  
  •   yongzhong · Jul 26, 2016 · 6977 views
    This topic created in 3754 days ago, the information mentioned may be changed or developed.
    用起来感觉如何,有什么比较让你惊喜的功能?或者是值得吐槽的地方
    35 replies  •  2016-07-27 13:46:52 +08:00
    hyggyh
    hyggyh
    Jul 26, 2016
    1
    完全木有。。老大们都觉得自己手工发布比较靠谱
    cloudzhou
    cloudzhou
    Jul 26, 2016
    2
    我以前开发过,一键发布,确实非常有必要,尤其是 10+ 机器的。
    yongzhong
    yongzhong
    OP
    Jul 26, 2016
    3
    @hyggyh 数量大起来还是需要上系统啊

    @cloudzhou 你们的应用都是些什么语言的?打包发布过程中不会有什么问题吗
    cloudzhou
    cloudzhou
    Jul 26, 2016
    4
    @yongzhong Java ,没什么问题,一台作为发布机器,然后通过 rsync 同步 war 包,做好校验,脚本控制应用重启,监控,几个脚本就搞定了。
    这是一件一劳永逸的事请,值得用心去做。
    baby4free
    baby4free
    Jul 26, 2016
    5
    自动化构建与发布是非常必要的 节省自己的时间
    MrJing1992
    MrJing1992
    Jul 26, 2016
    6
    简单点,部署工具: http://www.walle-web.io/
    复杂点,持续集成系统: https://jenkins.io/index.html
    yongzhong
    yongzhong
    OP
    Jul 26, 2016
    7
    @cloudzhou rsync 有什么优势吗,从哪里同步 war 包,本地还是 jenkins?我们是基于 git 的,涵盖自动 pull,配置项,maven 编译,认证后合并 push 等,操作比较繁琐.基于 git 和 Maven 过程中总会被各种因素影响.开发有意见,我们也烦.考虑以后上 docker
    Infernalzero
    Infernalzero
    Jul 26, 2016
    8
    自己公司开发了一套,挺蛋疼的,每次还得提交发布请求填写发布哪些文件,然后打个包 maven 编译一下 gulp 跑一下就几分钟去了,还有什么紧急发布功能搞得我真心蛋碎,要不是因为一天发布一次到正式环境,真心不想搞这套系统。
    cloudzhou
    cloudzhou
    Jul 26, 2016
    9
    @yongzhong 开始的时候并不需要一个庞大的系统,自己用脚本写就可以了。
    简单的说就是几个功能:
    1 发布机器编译成 War 包
    2 rsync 到其他几台机器
    3 命令控制机器重启

    前台挂 nginx 做自动负载均衡,做到发布期间网站可用。
    yxaaa123
    yxaaa123
    Jul 26, 2016
    11
    自己装了一个 Jenkins
    defunct9
    defunct9
    Jul 26, 2016
    12
    蛋疼,用 saltstack 写脚本发布
    fanTasy
    fanTasy
    Jul 26, 2016
    13
    有,但是很难用 && 必须用……
    cxbig
    cxbig
    Jul 26, 2016
    14
    capistrano+phpci
    lightening
    lightening
    Jul 26, 2016
    15
    GitHub 合并到 Master 前会过 CI 。
    用 Ansible provision 服务器们,然后 Capistrano 部署。 Ruby on Rails 项目。
    开发 /测试环境 dependency 都在 docker 里,本机上只需要跑 App 本身。
    strwei
    strwei
    Jul 26, 2016
    16
    我们的 gogs+webhooks
    CarlWangCn
    CarlWangCn
    Jul 26, 2016
    17
    有, 必须有
    hantsy
    hantsy
    Jul 26, 2016
    18
    Jenkins , Circle 都可以啊。。。
    遵照 Github Flow ,各 Fork PR 的 Push 就集成测试, Merge 到 Upstream Master 执行部署。
    fxxkgw
    fxxkgw
    Jul 26, 2016
    19
    django 的框架 然后把发布消息写到 rabbitmq 上 通过 celery 取任务后 paramiko 工具把包推到目标服务器 执行发布脚本获取返回值分析结果。。
    chocotan
    chocotan
    Jul 26, 2016
    20
    发布多了被批评了,以后不敢用了
    scarlex
    scarlex
    Jul 26, 2016
    21
    我们用 GitLab CI
    zlg5
    zlg5
    Jul 27, 2016
    22
    Apollo, Pipeline
    wolfy123
    wolfy123
    Jul 27, 2016
    23
    基于 git 的话,用 gitlab 就好了,挺好用的
    9hills
    9hills
    Jul 27, 2016 via iPhone
    24
    持续集成系统,部署系统。是两个不同的东西,虽然在机器很少时,前者能够替代后者一部分功能。

    持续集成 jenkins 就不错,部署么很多种,比较复杂。
    Dowding
    Dowding
    Jul 27, 2016
    25
    @MrJing1992 最近公司在用 walle ,感觉很不理解为什么一个用 yii2 开发的部署系统对 yii2 这么不友好,每次新项目上线都得配好久,新手得两天左右,总结下来坑如下:

    1.各种文件需要新版发布时保持原样,就得 cp 来 cp 去,尤其使用 yii2-advanced 的人应该深有体会

    2.由于使用了软链,所以开了 opcache 的话新版上线需要 reload php-fpm ,或者其他方式重置 opcache ,原因是 opcache 解析的文件路径是 realpath

    3.如果使用了 git subtree 之类的需要自己在 composer 里添加 autoload 规则的东西,每次新版上线必须 composer dump-autoload ,具体原理不明。

    ……好像还有其他的来着
    Dowding
    Dowding
    Jul 27, 2016
    26
    @takashiki 第三点多了一个句号……
    zael
    zael
    Jul 27, 2016
    27
    没人做 docker ,然后部署多台服务器吗?
    MrJing1992
    MrJing1992
    Jul 27, 2016❤️1
    28
    @takashiki
    部署还是挺简单的,因为自带了检测功能;
    opcache 这个有办法, http://gordalina.github.io/cachetool/
    composer dump-autoload 这个应该是你加了一些类,但是 classmap 是旧的,所有要执行。其实生产环境提倡使用 composer dump-autoload -o ,生成 classmap 比直接使用 PSR0/4 是有性能上的提升的。
    MrJing1992
    MrJing1992
    Jul 27, 2016
    29
    Dowding
    Dowding
    Jul 27, 2016
    30
    @MrJing1992 不错,收藏了,感谢
    yongzhong
    yongzhong
    OP
    Jul 27, 2016
    31
    @fxxkgw 差不多也是这样的,只是设想出来的需求更大更全
    @defunct9 用 saltstack 还不如 fabric 直接撸脚本吧
    defunct9
    defunct9
    Jul 27, 2016
    32
    @yongzhong 那不如 ansible ,连客户端都不用装。
    Lenbo
    Lenbo
    Jul 27, 2016
    33
    @zpvip 赞 capistrano ,我们的快速发布基于此做的。自动构建利用 webhook 自己来实现
    Dowding
    Dowding
    Jul 27, 2016
    34
    @MrJing1992 对了,话说你说的自动检测是什么样的功能,能自动检测项目内哪些文件发布新版本时需保留么
    wesley
    wesley
    Jul 27, 2016
    35
    @takashiki 可以指定 opcache 的保存目录,每次发布时清空该目录
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1905 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 67ms · UTC 16:42 · PVG 00:42 · LAX 08:42 · JFK 11:42
    ♥ Do have faith in what you're doing.