1
ljbha007 2016-07-04 10:51:41 +08:00
git 建个发布分支 jenkins 监控发布分支 并执行测试、编译、部署操作
|
2
UnisandK 2016-07-04 10:52:40 +08:00
docker 。。
|
3
evlos 2016-07-04 10:55:25 +08:00
Capistrano
|
4
2owe 2016-07-04 10:56:53 +08:00
区分操作机和线上机,提供个思路哈:
1. 代码检出。操作机上一个项目的代码目录,每次检出到这个目录。 2. 代码传输。由检出目录打包,将打包目录传输至线上机。 3. 代码部署。解压缩代码打包至一哈希目录,线上代码目录软链至该哈希目录。 4. 代码回滚。线上代码目录软链至要回滚到的哈希目录。 |
5
lijinma 2016-07-04 10:57:20 +08:00
ruby 用 Capistrano
发布代码这种,你服务器上肯定要保存每次发布的版本,使用软连接来指向正在使用的版本: release_v1 release_v2 release_v3 release -> 在用的版本 |
6
MarioxLinux 2016-07-04 10:59:23 +08:00
Jenkins 你值得拥有,部署简单( yum install )配置容易
|
7
yingling 2016-07-04 11:13:07 +08:00 1
专业运维路过.
把代码包打包成 tgz 文件.计算出 md5 值. 线上机器分发 tgz 文件和保存 md5 值的文件. 重新计算 tgz 的 md5 值,和文件中的 md5 值做匹配. 如果一致, 替换老的代码目录.. 目前 BAT 都是这么做的 |
9
SourceMan 2016-07-04 11:49:05 +08:00
编译机编译打包 -> 生产机备份 web 目录、部署 tar 包 -> 回滚
|
10
caola 2016-07-04 12:00:10 +08:00
我现在也是使用 svn+rsync ,但从没有遇到过文件会丢失这种问题,
可能是你的源服务器没有文件,从服务器有的文件,一但同步了,那么从服务器有的文件会被删除, 如果是从服务器有数据上传(比如图片),那么可以设置同步源服务器时,排除掉图片的目录啊 源服务器一般只是 svn 的,不会有正式服务器的完整数据, 这时就要排除不需要同步的目录 或者 同步时不删除文件 |
11
9hills 2016-07-04 12:00:44 +08:00
让你们领导说清楚 rsync 为什么会丢文件,简直拍脑袋
|
12
huangzxx 2016-07-04 12:46:35 +08:00
rsync 丢文件? 我们一个月发这么多文件,都没丢过。
$ cat /data1/logs/rsyncd.log.d/2016-06* |grep -w send |wc -l 284712 |
13
tomczhen 2016-07-04 13:30:05 +08:00 via iPhone
问题的关键不是丢文件,而是如何确定部署的结果与预期一致,计算文件 hash 就是一个办法。当然,前面也有人说了,同步后的结果与源文件一致,但是并不符合期望也是有可能的,这大概就是你们领导说的“丢文件”了。还是从调整同步策略和如何校验部署结果入手比较好。
|
14
ecosky OP 上面有些回复说是 tar 包然后直接回滚,这是每次更新都是一个新的 web 目录么?如果只是更新一些 css 文件,也直接新目录,我这 web 目录都要好几个 G ,感觉不是很科学啊
|
15
br00k 2016-07-04 14:19:27 +08:00
jenkins 好用。
|
16
tomczhen 2016-07-04 14:21:56 +08:00
@ecosky 囧,人家 web 框架也分 MVT , MVC , MVP 之类的,你更新上也用同样的思路就好了。将静态资源 /模板与动态代码的更新分离解耦就好了。
|
17
fcicq 2016-07-04 17:05:52 +08:00
zfs snapshot
|
18
ytmsdy 2016-07-04 19:05:46 +08:00
应用文件手工复制一份在服务器上面!
|
19
cxbig 2016-07-04 19:34:08 +08:00
capistrano +1
|
20
zxq1002 2016-07-04 19:53:46 +08:00 via Android
git 呗,再用 jenkins 调度下,购简单
|
21
vghdjgh 2016-07-04 20:10:54 +08:00
git pull
git reset --hard HEAD^ |
22
qingchn 2016-07-06 10:34:34 +08:00
jenkis
|