For years, Web-based applications have been moving toward being loose-coupled and stateless. In cloud computing, these characteristics are even more important because of cloud computing’s even more dynamic nature. Application images are not patched, they are throwaway objects and thus need to be stateless. If a virtual machine fails, the application must continue to run interrupted. Coupling between application components needs to be loose so that a failure of any component does not affect overall application availability. A component should be able to “fail in place” with little or no impact on the application.

As application components become increasingly transient, they cannot contain data that must persist beyond any application instance. Applications should be made as stateless as possible by pushing the state out of the software, separating processing and data as much as possible. Techniques for doing this include:

• Push state out to the user in the form of cookies or state coded into URLs
• Push state down to a back-end database
• Maintain additional copies of data, a strategy used by Hadoop
• Use network-based persistence, for example Terracotta or Shoal in a GlassFish application server

The impact that fail-in-place computing has on operations is that even the hardware should be stateless for the cloud to function properly. Hardware configurations should be stored in metadata so that configurations can be restored in the event of a failure.

Source of Information : Introduction to Cloud Computing architecture White Paper 1st Edition, June 2009


Subscribe to Developer Techno ?
Enter your email address:

Delivered by FeedBurner