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