Article: Building cloud-ready, multicore-friendly applications, Part 1: Design principles

I ran across this article at the Java World website while reading up on Appistry blogs.  I find myself often in the position of explaining why application XYZ can almost certainly be moved to the cloud but might not exactly be the most cloud friendly application.  Therefore, it might not be able to achieve things like elasticity, especially elasticity (the ability to scale up/down according to demand) out of the box.

The article goes into good detail starting with the ideas:

  • Atomicity
  • Statelessness
  • Idempotence
  • Parallelism

These are all very important.  I won't be repeating all the various fine definitions of each here.  You can get those from the article itself.  But, I just wanted to highlight this post in particular for readers who are also developers whom are interseted in creating applications that are cloud read out of the box.

Additionally, I've previously reviewed the book, Release IT!, by Michael Nygard here on the site and still recommend it to all Administrators, Developers, and even sometimes Managers who might need to understand some of the issues around building online applications for cloud computing ready deployments.