How should I host our scalable worker processes?

Posted by Pieter Breed on Programmers See other posts from Programmers or by Pieter Breed
Published on 2012-06-12T13:07:59Z Indexed on 2012/06/12 16:48 UTC
Read the original article Hit count: 260

We are designing a new architecture for an enterprise business. The principles we've followed so far is not to develop what you can (possible buy and) deploy, ie, don't reinvent any wheels.

In this way we've decided on CQRS, RabbitMQ, Riak and a bunch of other things. We still need to write /some/ business code though and these will be in the form of worker processes, which will consume commands from a message queue and after any side-effects, produce events onto another message queue. The idea behind this is that via the competing-consumers design we will have a scalable design right out of the box.

One option is of writing a management infrastructure that will know how to:

  • deploy code
  • instantiate processes
  • kill processes
  • update configuration
  • etc

IE provide fault tolerance and scalability. Also, this is exactly what something like GAE and Heroku does for you, but in a public setting and in our organization, public is bad.

My question is, is there an out-of-the-box solution that we can use to host our consumers in? Like a private cloud or private platform-as-a-service. Private Heroku or GAE. Is there some kind of software or software product with which we can do all of these things and thereby get scalability and fault tolerance over our consumers?

© Programmers or respective owner

Related posts about cloud-computing

Related posts about enterprise-architecture