部署 有没有使用 capistrano 的个人站长?有没有觉得这种部署方式很慢?

ddyy · 发布于 2014年05月05日 · 最后由 lina 回复于 2014年05月06日 · 1892 次阅读
12788

个人网站跟企业开发很不一样,没有测试,没有产品经理,想到哪写到哪,哪天心血来潮想改动一个地方打开ftp就在线修改了,那是在个人站长风风火火的时代,用的是php

rails的便捷不言而喻,但rails的部署却有些麻烦,有时候我有了新的想法,修改了几行rails代码甚至仅仅修改了几个字符,也要跑一遍capistrano,一次要好几分钟,感觉好笨重啊

共收到 31 条回复
11222

要跑也是电脑跑,你可以同时干别的。

如果是紧急修改,再长时间也得部署。如果不是,你做事还得有规范,有计划,不能随意性太强。

1

是慢,不过用的人多,我相信一定有道理。

12788

#1楼 @billy 在自己电脑里跑还得填充模拟数据,很麻烦,那种在线对着生产环境写程序的感觉很爽,很容易来灵感

11222

@ddyy, 有灵感可以记下来,不紧急的话分门别类实施。另外你如果实在喜欢生产数据,也可以写一个rake命令把服务器数据拉到本地,隔一段时间拉一次就行了。

17

当哪天改错几个文件,要及时回滚的时候,就知道它的好处了

1

#3楼 @ddyy 哇,万一一个 reset……

475

php和rails不一样吧,php改完就可以看到效果。rails要重启进程这些。用cap还是更方便。

207

#3楼 @ddyy 你可以对着生产环境写啊,没有人逼你用 capstrano 的。SSH 到生产机器上随便改就是了。

12788

#8楼 @blacktulip 本来打算用git push到生产环境的(这样甚至比ftp还要快),但是rails还有其他的一堆事情,比如The Asset Pipeline,就是sass编译成css还要给css文件一个随机数的名字,比如global-908e25f4bf641868d8683022a5b62f54.css。 migration倒不是问题,大不了登陆服务器运行migration命令,再说日常的小改动基本不涉及数据库

207

#9楼 @ddyy Asset Pipeline 也不是必须用的

12788

#10楼 @blacktulip 恩,看了下,貌似 RAILS_ENV=production bundle exec rake assets:precompile 也能解决Assets Pipeline的问题。

每次运行capistrano的时候,都觉得好傻,明明只修改了几个字符,还要运行assets:precompile、检查服务器端的gem、运行migration、删除服务器旧的目录版本、建立新的目录版本、给附件文件夹设置软连接。。。等等等等等

4491

我感觉慢归慢, 但是还是靠谱的。 反正heroku部署的时候有你说的一切问题, 比如慢, 比如任何时候都要assets:precompile等等。 但是我感觉你应该在本地都测好了, 上传的时候干点别的事情就完了。

2870

@ddyy

每次运行capistrano的时候,都觉得好傻,明明只修改了几个字符,还要运行assets:precompile、检>查服务器端的gem、运行migration、删除服务器旧的目录版本、建立新的目录版本、给附件文件夹>设置软连接。。。等等等等等

用Capistrano本来通过执行一系列内置或自定义的脚本来解决这些问题的,让部署工作从重复繁琐中解放出来。你觉得你不需要这些,说明你不需要使用Capistrano。另外,运行assets:precompile, bundle install, migration这些步骤并不是必须执行的,完全可以通过配置关掉。

12788

我是个人站长,假设个最简单的场景:

帖子出现了“言论自由”这个敏感词,需要修改程序替换成“畅所欲言”,如果在本地测试,需要先注册个用户,然后用这个用户登录,发表带有“言论自由”这个词的帖子,然后才能测试程序。在线开发的话场景都是现成的,不用自己再填充内容了。

我举得这个例子是最简单的例子,还有的场景比这个复杂的多,涉及的到很多情况,作为个人站长,在本地模拟服务器上的场景要做的工作太多了,严重分散精力。

11222

@ddyy 你和@blacktulip 一样都是肉测派的。其实这个场景写个测试挺简单的啊。

12788

#15楼 @billy 个人网站跟企业开发不一样,企业有产品经理负责产品的规划,程序员只负责实现产品经理的想法,按产品经理的需求先写测试再写代码。个人网站一个人负责所有环节,必须自己参与到用户中去,在网上跟用户互动,在互动中解决问题寻找灵感,没有那么多精力放在测试上,肉测也比较容易找到产品的感觉

2107

原来怎么整,现在继续怎么整

1793

简单的更新可以直接在cap写个任务 登陆服务器 直接更新代码就完事 我是这么干的

292

不都是在本地开发OK了才发布到正式环境吗,再说本地搭一次以后想怎么改怎么改,上服务器改测试岂不是会产生大量的测试数据?

1553

估计论坛里正规军太多,不能理解PHP时代的野战军站长,这些站长一般都是全站(栈)“工程师”,用Rails的确要受很多“ 窝囊气”,

PHP 简单,直接,一个PHP文件能搞定 MySql 连接,数据处理,外加所谓模板。改起来相当方便,边改边 F5。

这就像镰刀和收割机,你开动收割机就为了割一把稻子,当然觉得费劲啦

12260

#20楼 @Peter 其实我也喜欢php那种快感!

987b5d

楼主显然合适使用 PHP 阿……

非要用 Rails 的话,在服务器上装个 TMUX + VIM 做开发吧,一改完就 kill -12 重启下 puma ……

96

如果出问题需要回滚,就不会觉得capistrano慢了。

6733

觉得 cap 慢的话试试 mina 吧

3489

没觉得慢啊,经常性的改个css也重新发布一次,最高记录估计有一天发布一百多次,3命今就搞定,感觉比开ftp神马的方便多了

De6df3

cap 是针对复杂的部署场景而设计的,比如多个服务器,许多复杂的配置…

如果你的环境简单,可以不用的,两年前我基本上是 git pull 过去的

6291

个人站长不需要用 Capistrano,没改 asset 就直接 git pull && thin restart,改了就加一句 RAILS_ENV=production rake assets:precompile

6253

使用git的hooks 当代码改动完(push)的时候自动部署 github好像支持web hooks 具体怎么调用没研究过,用过在git服务器上设置hooks来自动部署

7638

还好吧 这玩意儿又不是每小时发布一次

130

公司项目用capistrano,个人网站用 mina

mina 的优势就是快,劣势就是不能针对集群发布。 我曾经试图给 mina 加上集群发布功能,但发现做到最后就是 capistrano,必然会放弃速度来保证集群整体的正确和一致,于是放弃。

5259

#14楼 @ddyy 你可以本地编译,提交到git上, 发布的时候,你可以有选择的略过precompile bundle install ,速度就快了

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册