Monday, March 16, 2009

Cloud Architectures / GrepTheWeb

This is a really interesting piece on how to build software for a cloud computing environment. The paper not only talks about a real example but extracts the nuggets for us so it's very easy to write about. They are:
- Make all pieces of the system scalable and, when needed, parallel.
- Make the pieces loosely coupled (their use of SQS is a great example).
- Launch things on demand (it's especially easy for their non-realtime query service but it's a good thing to aim for in all services).
- Be resilient to reboots and restarts (basically ROC).

All these ideas make sense. I think none of them is really novel, but it's great to see them combined together.

Beyond this, there are also some really useful tips about how to use SQS, S3, etc for maximal efficiency, which I imagine cloud users will find quite helpful.

No comments: