Rails and Amazon Web Services
Moderated by Mike Subelsky, OtherInbox.com
The example cluster is operated by OtherInbox.com, a Rails app that helps consumers deal with email overload. 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 entire app 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 Rails 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 Rails code, and less time struggling with the vagaries of their production environment:
- Ruby standard library utilities (File, FileUtils, etc.)
- Rake
- Capistrano
The talk would also include a discussion of several different AWS gems that make cloud computing simple, by illustrating how Amazon’s S3 and SQS services can handle asychnronous work and communication between servers. I would illustrate real-world code that enables servers to communicate with one another reliably via SQS.