The framework gives you enough power to do most things you
would want to do, but tries to make the simple situations simple.
The Capistrano 2.0 source code is an excellent example of well-structured Ruby
code. It is hosted in the Rails Subversion repository (http://svn.rubyonrails.org/rails/
tools/capistrano/).
Vlad the Deployer
Of course, as Capistrano grows larger and becomes more general, some people just
want a simple deployment tool. The Ruby Hit Squad released Vlad the Deployer
(http://rubyhitsquad.com/Vlad_the_Deployer.html) as a reaction against Capistrano??™s
complexity. It does one thing: application deployment. It uses native programs (ssh
and rsync), as opposed to Capistrano, which depends on the Net::SSH library.
Because Vlad is focused on deployment only, the configuration file can be simpler. It
defaults to one server; Capistrano assumes a large setup??”the default deployment
tasks assume separate web, app, and db roles. Either solution works well; generally,
Vlad is easier to get started with, and Capistrano will be more flexible for large
projects or those with unusual requirements.
Continuous Integration
Another powerful tool for software development, especially in large teams, is
continuous integration. As a principle, continuous integration comes from the
Extreme Programming discipline. It usually involves a build/test process that happens
either just before or just after each version control commit.
Pages:
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489