One of the main uses of SimpleWorker is as a worker queue for running background jobs within a web application. A second use — and one that marks a big shift in the cloud — is that of a Ruby Compute Cloud.
A Ruby Compute Cloud is the ability to run Ruby code in the cloud in a simple and transparent manner from an application running elsewhere. Running jobs in the cloud typically means deploying and launching servers, running applications, and spawning tasks from the cloud applications. With a Ruby compute cloud, developers create their applications locally or wherever they want. Through the use of special-purpose Ruby libraries, they’re able to send tasks off to the cloud just by making simple calls in their application.
SimpleWorker creates a Ruby Compute Cloud (RC2) by using a Ruby gem and a cloud service that runs the jobs that are sent to it. The term is an evolution on Amazon’s Elastic Compute Cloud (EC2) (one of the best cloud infrastructures around). Whereas EC2 is about deploying servers and launching applications, an RC2 is about running Ruby tasks on top of this infrastructure.
The SimpleWorker Ruby Compute Cloud is a step forward in cloud computing simplicity. Instead of having to manage a dedicated server architecture, RC2 moves the virtualization up a level from the server/OS/application to individual tasks and jobs. Which means that you can run one job, ten jobs, or thousands of jobs in the cloud from a Ruby application with just a few lines of code. (You can run the jobs one after another, at the same time or on a regular schedule.)
It’s great for making use of the advantages of the cloud without having to worry about launching, configuring, and managing servers. All the server and job management is handled by the SimpleWorker service. All you have to do is write the worker jobs and then send them off.