Lone Star Ruby Conf 2008: Ruby in the Cloud
This talk would be a case study in using Ruby to deploy, monitor, and manage a cluster of servers running in the Amazon Web Services virtual cloud.
The example cluster is operated by OtherInbox.com, a consumer-driven website that automates email tasks and spam blocking. Every system administration task imaginable is carried out using Ruby, which means the developers can enjoy all of Ruby’s benefits without having to delve into shell scripting, writing cron tasks, or use of other languages. It also means that porting the application to run on different operating systems is a trivial task, because Ruby is the glue connecting the Ruby components together; all that is required is a Ruby interpreter.
Two key Ruby technologies have matured in the previous 18 months which make it ideal for almost every layer of managing a cluster of servers:
- god.rb allows fine-grained process monitoring and daemon control (replacing monit)
- rufus-scheduler enables ruby-based scheduling (replacing cron, and providing a great facility for running daemons that must be executed on a recurring basis)
When combined with these Ruby workhorses, developers today can spend much more of their time writing Ruby code, and less time struggling with the vagaries of their production environment:
- Ruby standard library utilities (File, FileUtils, etc.)
- Rake
- Capistrano (for any kind of remote application, not just Rails)
The talk would also include a discussion of using several different AWS gems to make cloud computing simple, by illustrating how Amazon’s S3 and SQS services can handle asychnronous work and communication between servers.