部署网络应用服务是很麻烦的事情,安装程序,升级数据库schema,切换版本,重启服务。步骤越多,人工参与越多,越容易出问题。
Capistrano是ruby on rails提供的部署方案,原名叫SwitchTower,多好记的名字,结果和人重了,换成现在这个,估计是为了赌气才起成这样,反正我再也不能拼对了。它集成了很多部署程序必须的步骤,借助ssh、版本管理系统(支持svn、cvs等等好几种)和rails的migration,只要做好配置,就可以在很大程度上实现部署自动化。
Capistrano的相关文档可以看这里。最简单的使用方法是:
gem install capistrano
cap --apply-to /path/to/my/app MyApplicationName
修改config/deploy.rb文件。
rake remote:exec ACTION=setup
这一步会连上你的服务器,创建一些目录。
rake deploy
连接服务器,完成部署。
说起来好像挺简单,麻烦的地方主要在于修改config/deploy.rb配置文件。一般来说主要配置的参数包括:
如果你的svn链接需要用户名和密码,可以通过svn_username和svn_password配置,文档中没写,算我免费友情提示。
除了setup和deploy,缺省支持的命令主要有:
还有一些其它的命令,具体可以查看gem capistrano安装目录下lib/recipes中的standard.rb。另外,可以自己在deploy.rb中定义新的命令。
目前的capistrano(版本1.1.0)还有一些局限,比如你所有服务器都必须使用同样的账号,这个让我在dreamhost上部署碰到了一点麻烦。总的来说还是比较方便的。
今天订了一个新浪博客,这是我第一次订来自新浪的博客。在bloglines里看,感觉怪怪的,检查了一下feed,发现feed中description的部分是这样的:
<DIV>
<DIV><FONT SIZE=”4″>刚回来,看完大家评论,赶紧写几句:</FONT></DIV>
<DIV> </DIV>
<DIV><FONT SIZE=”4″>一很多人谈到采访中有情绪化的成份,是,在看对王晋生的采访的时候,我自己也几乎坐不住。这么冷口冷面?真要引以为戒。美国有个写专栏的老太太,也是写新闻评论的,写了三十年,有人后来有点讥诮地问她“你以谁的声音在说话?”</FONT></DIV>
<DIV><FONT SIZE=”4″>老太太说,“理想中自己的声音”。</FONT></DIV>
<DIV><FONT SIZE=”4″>弱点不可避免,但起码得知道弱点在哪里,理想的应该是什么样。</FONT></DIV>
<DIV> </DIV>
<DIV><FONT SIZE=”4″>二国防科工委为什么不采访?…唉,国防科工委…采,还是不采,这是个中国记者的哈姆雷特式问题,</FONT><FONT SIZE=”4″>谢谢大家中国国情式的理解。但是,希望我们的节目有跟踪深化报道的机会,明天我会打个电话看。</FONT></DIV>
style和内容混在一起,多余的div元素,都污染到rss feed里了。包含这些垃圾代码的内容的有1625字节,纯粹内容是873字节。另一篇随便在新浪博客主页找的文章的feed的description更夸张,9034字节:2177字节。
以前曾经做过一些互联网标准技术传教的工作,新浪常常是被当作典型的测试用例的。那时候就知道,新浪的人是不懂互联网标准的,不曾想他们玩起rss feed来,也这么的新浪特色。
rss feed应该是带宽杀手,如果采用互联网标准,保守的估计至少能从rss节约一半以上的带宽。网页推行互联网标准,搞不好也有一半。不过人家可能更本不在乎这点钱。