1
hyggyh 2016-07-26 12:53:13 +08:00
完全木有。。老大们都觉得自己手工发布比较靠谱
|
2
cloudzhou 2016-07-26 13:45:41 +08:00
我以前开发过,一键发布,确实非常有必要,尤其是 10+ 机器的。
|
3
yongzhong OP |
4
cloudzhou 2016-07-26 14:07:50 +08:00
@yongzhong Java ,没什么问题,一台作为发布机器,然后通过 rsync 同步 war 包,做好校验,脚本控制应用重启,监控,几个脚本就搞定了。
这是一件一劳永逸的事请,值得用心去做。 |
5
baby4free 2016-07-26 14:09:42 +08:00
自动化构建与发布是非常必要的 节省自己的时间
|
6
MrJing1992 2016-07-26 14:17:24 +08:00
|
7
yongzhong OP @cloudzhou rsync 有什么优势吗,从哪里同步 war 包,本地还是 jenkins?我们是基于 git 的,涵盖自动 pull,配置项,maven 编译,认证后合并 push 等,操作比较繁琐.基于 git 和 Maven 过程中总会被各种因素影响.开发有意见,我们也烦.考虑以后上 docker
|
8
Infernalzero 2016-07-26 15:12:33 +08:00
自己公司开发了一套,挺蛋疼的,每次还得提交发布请求填写发布哪些文件,然后打个包 maven 编译一下 gulp 跑一下就几分钟去了,还有什么紧急发布功能搞得我真心蛋碎,要不是因为一天发布一次到正式环境,真心不想搞这套系统。
|
9
cloudzhou 2016-07-26 15:18:39 +08:00
@yongzhong 开始的时候并不需要一个庞大的系统,自己用脚本写就可以了。
简单的说就是几个功能: 1 发布机器编译成 War 包 2 rsync 到其他几台机器 3 命令控制机器重启 前台挂 nginx 做自动负载均衡,做到发布期间网站可用。 |
10
zpvip 2016-07-26 15:29:00 +08:00
|
11
yxaaa123 2016-07-26 16:35:27 +08:00
自己装了一个 Jenkins
|
12
defunct9 2016-07-26 16:39:15 +08:00
蛋疼,用 saltstack 写脚本发布
|
13
fanTasy 2016-07-26 16:57:40 +08:00
有,但是很难用 && 必须用……
|
14
cxbig 2016-07-26 17:00:00 +08:00
capistrano+phpci
|
15
lightening 2016-07-26 17:10:00 +08:00
GitHub 合并到 Master 前会过 CI 。
用 Ansible provision 服务器们,然后 Capistrano 部署。 Ruby on Rails 项目。 开发 /测试环境 dependency 都在 docker 里,本机上只需要跑 App 本身。 |
16
strwei 2016-07-26 17:11:45 +08:00
我们的 gogs+webhooks
|
17
CarlWangCn 2016-07-26 19:15:42 +08:00
有, 必须有
|
18
hantsy 2016-07-26 21:25:44 +08:00
Jenkins , Circle 都可以啊。。。
遵照 Github Flow ,各 Fork PR 的 Push 就集成测试, Merge 到 Upstream Master 执行部署。 |
19
fxxkgw 2016-07-26 22:42:33 +08:00
django 的框架 然后把发布消息写到 rabbitmq 上 通过 celery 取任务后 paramiko 工具把包推到目标服务器 执行发布脚本获取返回值分析结果。。
|
20
chocotan 2016-07-26 22:57:31 +08:00
发布多了被批评了,以后不敢用了
|
21
scarlex 2016-07-26 23:32:32 +08:00
我们用 GitLab CI
|
22
zlg5 2016-07-27 02:51:25 +08:00
Apollo, Pipeline
|
23
wolfy123 2016-07-27 07:42:21 +08:00
基于 git 的话,用 gitlab 就好了,挺好用的
|
24
9hills 2016-07-27 08:33:45 +08:00 via iPhone
持续集成系统,部署系统。是两个不同的东西,虽然在机器很少时,前者能够替代后者一部分功能。
持续集成 jenkins 就不错,部署么很多种,比较复杂。 |
25
takashiki 2016-07-27 09:05:33 +08:00
@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 ,具体原理不明。 ……好像还有其他的来着 |
27
tomoya92 2016-07-27 09:18:32 +08:00
没人做 docker ,然后部署多台服务器吗?
|
28
MrJing1992 2016-07-27 09:47:37 +08:00 1
@takashiki
部署还是挺简单的,因为自带了检测功能; opcache 这个有办法, http://gordalina.github.io/cachetool/ composer dump-autoload 这个应该是你加了一些类,但是 classmap 是旧的,所有要执行。其实生产环境提倡使用 composer dump-autoload -o ,生成 classmap 比直接使用 PSR0/4 是有性能上的提升的。 |
29
MrJing1992 2016-07-27 09:51:21 +08:00
|
30
takashiki 2016-07-27 10:12:18 +08:00
@MrJing1992 不错,收藏了,感谢
|
31
yongzhong OP |
34
takashiki 2016-07-27 12:33:38 +08:00
@MrJing1992 对了,话说你说的自动检测是什么样的功能,能自动检测项目内哪些文件发布新版本时需保留么
|