当前位置: 首页 > 工具软件 > Capistrano > 使用案例 >

Capistrano, Rake和RubyGems

宗政卓
2023-12-01
想要实现PHP代码的自动部署 ,于是发现了 Capistrano,一个可以通过SSH登录不同的服务器完成文件的上传以及命令的执行。在我看来,Capistrano的主要优点是:

1. 多主机同时部署

    还可以根据DB,Web和App服务器的角色不同,执行不同的操作。

2. 通过SSH在主机上执行命令

     比如修改目录权限和创建数据库什么的,可以通过SSH自动完成还真方便。

3. 支持回滚(Rollback)

      如果发现发布的版本有问题,可以直接回滚到前一个版本。服务器上保存了每次发布的版本,可以简单的通过符号链接(Symlink)进行切换,保证了事务操作。

不仅如此,还可以配置Apache服务器,包括重启 FastCGI(原来Web和App服务器是可以分开在不同的服务器上的,这才第一次了解)。再仔细看,Capistrano原来是基于 Rake实现的,一个完全基于ruby的构建工具,类似make和ant。但是跟后两者不同的是,rake的构建脚本完全是基于ruby语法的,用 Martin Fowler的话来说就是Internal DSL。ruby灵活的语法,让这一切成为可能,虽然感觉有点别扭。但是,总比重新发明一个语言,还要专门写一个解释器要好很多。

Capistrano的安装很简单,只要在命令行里输入 " gem install capistrano",就搞定了。这又让我对RubyGems产生了兴趣,它是如何做到这一点的呢?结果,你猜怎么样,Gem也是用rakefile来描述的!

脚本语言的强大之处,就是其灵活性。以前在C++,Java和C#里需要用配置文件来完成的工作,在ruby等脚本语言里根本没有必要,直接修改代码就可以了。因为配置文件的出现,就是为了避免重新编译,而脚本语言恰恰就不用编译!所以,经常看到从Java转向PHP的程序员,在php上实现java烦琐的机制,完全失去了脚本语言的灵活性!
 类似资料: