Thursday, 11 December 2014

Cloud Application Architecture-The Building Block of Cloud

Cloud computing system can be split into two sections, that is, the front end and the back end. The internet (network) connects the two together.

The front end is the side the computer user, or client, sees. The back end is the “cloud” section of the system.

Infrastructure cloud services offer efficient capabilities to use infrastructure resources in a very dynamic model.

These functionalities allow an application to be dynamic enough to be able to adjust the infrastructure usage to the current requirement. But, there is a catch attached as, having this kind of power makes it prudent for the application to be compliant to some cloud application architecture concept.

The concepts that we are going to discuss here are fundamental to ensure that the application can fully profit from the pay-per-use pricing models of clouds. In addition to this, it also ensures that economies of scale can be efficiently exploited.

It is based on two main aspects- state management and scalability. Let’s dwell into these two aspects a little further-

State Management- Stateful vs. Stateless:

A significant amount of information about the current state of the application is stored in the memory or the cache that cannot be recovered when the system is being restarted in Stateful systems. But, in case of Stateless systems, very little data is stored within a recoverable repository.

The Stateless system has all the data in an ongoing mode so that it is instantly available. In Stateless systems the recovery processes are much easier thereby, lending it an upper edge.

If the system is developed in a very clean manner then recovery process step is also not needed as, such a situation won’t arise. This is possible because, the operation will start without an initial state and thus takes the input values from the data repository. Therefore stateless systems have less rigid requirements for the underlying infrastructure.

Scalability- Vertical vs. Horizontal

Scalability also plays a key role while determining application design. An application can be either scaling up or scaling out. While scaling up means a significant increase in the performance of a single operating system to support the higher demands of the application, Scaling out is about adding in extra operating system and application instances. An example of scale out architecture is webserver clusters that support one website.

Cloud-based applications provide many advantages, including getting the app market ready and making scaling an easier affair. In addition to this, the initial cost is lower, and well-architected cloud-based solutions by and large offer substantially better disaster recovery capabilities.

Nevertheless, to take benefit of cloud-based deployments, the architecture must be consistent to that of the cloud. A scale out architecture is the best option for cloud application architecture.

Source : CodeWebber

No comments:

Post a Comment