In a private cloud the data center,
physical machines, and storage are all
owned by the company that uses them.
Sharing happens within the company.
The usage of the resources can ebb and
flow as determined by different departments and applications. The size of
the shared cloud is likely to be smaller
than within a public cloud, which may
reduce the value of the sharing. Still,
it is attractive to many companies because they do not need to trust an outside cloud provider. So far, we have
seen only private-cloud IaaS. The new
PaaS offerings are not yet being made
available for individual companies to
use in their private clouds.
Forces driving us to the cloud. A
number of forces are prompting increased movement of applications to
the cloud:
Data-center economics. Very large
data centers can offer computation,
storage, and networking at a relatively
cost-effective price. Power is an ever-increasing portion of data-center costs,
and it can be obtained more effectively
by placing the data center near inexpensive sources of electricity such as
hydroelectric dams. Internet ingress
and egress is less expensive near Internet main lines. Containerized servers
with thousands of machines delivered
in a shipping container offer lower cost
for computation and storage. Shared
administration of the servers offers
cost savings in operations. All of this
is included in the enormous price tag
for the data center. Few companies can
afford such a large investment. Sharing
(and charging for) the large investment
reduces the costs. This provides economic drive for both the cloud providers and users.
Shared data. Increasingly, companies are finding huge (and serendipitous) value in maintaining a “big-data”
store. More and more, vast amounts
of corporate data are placed into one
store that can be addressed uniformly
and analyzed in large computations.
In many cases the value of the discoveries grows as the size of the data store
increases. It is becoming a goal to store
all of an enterprise’s data in a common
store, allow analysis, and see surprising value.
Shared resources. By consolidating
computation and storage into a shared
cloud, it is possible to provide higher
Power is
an ever-increasing
portion of
data-center costs,
and it can be
obtained more
effectively by
placing the data
center near
inexpensive
sources of
electricity such
as hydroelectric
dams.
utilization of these resources while
maintaining strong SLAs for the higher-priority work. Low-priority work can
be done during slack times while being preempted for higher-priority work
during the busy times. This requires
that resources are fluid and fungible
so that the lower-priority work can be
bumped aside and the resources reallocated to the higher-priority work.
SaaS: Front end, back end, and decision support. Let’s look more closely
at a typical pattern seen in a SaaS implementation. In general, the application has two major sections: the front
end, which handles incoming Web
requests; and the back end, which performs offline background processing
to prepare the information needed by
the front end. In addition to its work
preparing data for the front end, the
back-end application is usually shared
with decision-support processing (see
Figure 2).
In a typical SaaS implementation
the front end offers user-facing services dealing with Web services or HTML.
It is normal for this Web-serving code
to have aggressive SLAs, typically of
only 300ms–500ms, sometimes even
tighter. The back-end processing consumes crawled data, partner feeds,
and logged information generated by
the front end and other sources, and it
generates reference data for use by the
front end. You may see product catalogs and price lists as reference data,
or you may see inverted search indices
to support systems such as Google or
Bing search. In addition to the generation of reference data, the back-end
processing typically performs decision-support functions for the SaaS
owner. These allow “what-if” analyses
that guide the business.
Patterns in saas apps:
the front end
Here, I explore a common pattern
used in building the front-end portion of SaaS applications. By leveraging the pattern used by these applications, a number of very useful
concierge services can be supplied by
the PaaS plumbing.
Many service applications fit nicely
within a pattern of behavior. The goal
of these applications is to implement
the front end of a SaaS application. Incoming Web-service requests or HTML