Amazon released a great “best practices” guide on how to architect for the cloud. It can be found at http://jineshvaria.s3.amazonaws.com/public/cloudbestpractices-jvaria.pdf
It covers off a lot of great information, some of the information is Amazon specific as you would expect, but a lot of it is generic enough to let you apply the thoughts to any cloud architecture.
- Starts with the benefits of using the cloud (reduced up front cost, quicker provisioning of additional resources, etc.)
- Explains why your application needs to be created in a way that you can scale the work out, not up
- Explains the concept of elasticity
- The concept of changing your thought process from “this one server doesn’t have enough RAM to handle all the users”, to thinking of the resources as abstract components for you to use
- Expecting that servers will fail and to compensate for it
If you haven’t read it yet, i highly recommend that you do.