UNIT X: Cloud Computing Infrastructure Models

Public, private, and hybrid clouds

IT organizations can choose to deploy applications on public,private, or hybrid

clouds, each of which has its trade-offs. The terms public, private, and hybrid do not
dictate location. While public clouds are typically “out there” on the Internet and
private clouds are typically located on premises, a private cloud might be hosted at a
colocation facility as well.
Companies may make a number of considerations with regard to which cloud
computing model they choose to employ, and they might use more than one model
to solve different problems. An application needed on a temporary basis might be
best suited for deployment in a public cloud because it helps to avoid the need to
purchase additional equipment to solve a temporary need. Likewise, a permanent
application, or one that has specific requirements on quality of service or location of
data, might best be deployed in a private or hybrid cloud.

Public clouds
Public clouds are run by third parties, and applications from different customers are
likely to be mixed together on the cloud’s servers, storage systems, and networks
(Figure 3). Public clouds are most often hosted away from customer premises, and
they provide a way to reduce customer risk and cost by providing a flexible, even
temporary extension to enterprise infrastructure.
If a public cloud is implemented with performance, security, and data locality in
mind, the existence of other applications running in the cloud should be transparent
to both cloud architects and end users. Indeed, one of the benefits of public clouds is
that they can be much larger than a company’s private cloud might be, offering the
ability to scale up and down on demand, and shifting infrastructure risks from the
enterprise to the cloud provider, if even just temporarily.
Portions of a public cloud can be carved out for the exclusive use of a single client,
creating a virtual private datacenter. Rather than being limited to deploying virtual
machine images in a public cloud, a virtual private datacenter gives customers
greater visibility into its infrastructure. Now customers can manipulate not just
virtual machine images, but also servers, storage systems, network devices, and
10 Introduction to Cloud Computing Architecture Sun Microsystems, Inc.
network topology. Creating a virtual private datacenter with all components located
in the same facility helps to lessen the issue of data locality because bandwidth is
abundant and typically free when connecting resources within the same facility.

Private clouds
Private clouds are built for the exclusive use of one client, providing the utmost
control over data, security, and quality of service. The company owns the
infrastructure and has control over how applications are deployed on it. Private
clouds may be deployed in an enterprise datacenter, and they also may be deployed
at a colocation facility.
Private clouds can be built and managed by a company’s own IT organization or
by a cloud provider. In this “hosted private” model, a company such as Sun can
install, configure, and operate the infrastructure to support a private cloud within a
company’s enterprise datacenter. This model gives companies a high level of control
over the use of cloud resources while bringing in the expertise needed to establish
and operate the environment.

Hybrid clouds
Hybrid clouds combine both public and private cloud models. They can
help to provide on-demand, externally provisioned scale. The ability to augment a
private cloud with the resources of a public cloud can be used to maintain service
levels in the face of rapid workload fluctuations. This is most often seen with the use
of storage clouds to support Web 2.0 applications. A hybrid cloud also can be used
to handle planned workload spikes. Sometimes called “surge computing,” a public
cloud can be used to perform periodic tasks that can be deployed easily on a public
cloud.
Hybrid clouds introduce the complexity of determining how to distribute
applications across both a public and private cloud. Among the issues that need to
be considered is the relationship between data and processing resources. If the data
is small, or the application is stateless, a hybrid cloud can be much more successful
than if large amounts of data must be transferred into a public cloud for a small
amount of processing.

Architectural layers of cloud computing

Sun’s view of cloud computing is an inclusive one: cloud computing can describe
services being provided at any of the traditional layers from hardware to applications.

In practice, cloud service providers tend to offer services that can be grouped into three categories: software as a service, platform as a service, and infrastructure as a service. These categories group together the various layers illustrated in Figure, with some overlap.

Software as a service (SaaS)

Software as a service features a complete application offered as a service on
demand. A single instance of the software runs on the cloud and services multiple
end users or client organizations.
The most widely known example of SaaS is salesforce.com, though many other
examples have come to market, including the Google Apps offering of basic business
services including email and word processing.
Although salesforce.com preceded the definition of cloud computing by a few years,
it now operates by leveraging its companion force.com, which can be defined as a
platform as a service.

Platform as a service (PaaS)
Platform as a service encapsulates a layer of software and provides it as a service
that can be used to build higher-level services. There are at least two perspectives on
PaaS depending on the perspective of the producer or consumer of the services:
• Someone producing PaaS might produce a platform by integrating an OS,
middleware, application software, and even a development environment that is
then provided to a customer as a service. For example, someone developing a
PaaS offering might base it on a set of Sun™ xVM hypervisor virtual machines that
include a NetBeans™ integrated development environment, a Sun GlassFish™ Web
stack and support for additional programming languages such as Perl or Ruby.
• Someone using PaaS would see an encapsulated service that is presented to them
through an API. The customer interacts with the platform through the API, and
the platform does what is necessary to manage and scale itself to provide a given
level of service. Virtual appliances can be classified as instances of PaaS. A content
switch appliance, for example, would have all of its component software hidden
from the customer, and only an API or GUI for configuring and deploying the
service provided to them.
PaaS offerings can provide for every phase of software development and testing,
or they can be specialized around a particular area such as content management.
Commercial examples of PaaS include the Google Apps Engine, which serves
applications on Google’s infrastructure. PaaS services such as these can provide a
powerful basis on which to deploy applications, however they may be constrained by
the capabilities that the cloud provider chooses to deliver.

Infrastructure as a service (IaaS)
Infrastructure as a service delivers basic storage and compute capabilities as
standardized services over the network. Servers, storage systems, switches, routers,
and other systems are pooled and made available to handle workloads that range
from application components to high-performance computing applications.
Commercial examples of IaaS include Joyent, whose main product is a line of
virtualized servers that provide a highly available on-demand infrastructure.

Cloud computing benefits
In order to benefit the most from cloud computing, developers must be able
to refactor their applications so that they can best use the architectural and
deployment paradigms that cloud computing supports. The benefits of deploying
applications using cloud computing include reducing run time and response time,
minimizing the risk of deploying physical infrastructure, lowering the cost of entry,
and increasing the pace of innovation.

Reduce run time and response time
For applications that use the cloud essentially for running batch jobs, cloud
computing makes it straightforward to use 1000 servers to accomplish a task in
1/1000 the time that a single server would require. The New York Times example
cited previously is the perfect example of what is essentially a batch job whose run
time was shortened considerably using the cloud.
For applications that need to offer good response time to their customers,
refactoring applications so that any CPU-intensive tasks are farmed out to ‘worker’
virtual machines can help to optimize response time while scaling on demand
to meet customer demands. The Animoto application cited previously is a good
example of how the cloud can be used to scale applications and maintain quality of
service levels.

Minimize infrastructure risk
IT organizations can use the cloud to reduce the risk inherent in purchasing physical
servers. Will a new application be successful? If so, how many servers are needed
and can they be deployed as quickly as the workload increases? If not, will a large
investment in servers go to waste? If the application’s success is short-lived, will
the IT organization invest in a large amount of infrastructure that is idle most of the
time?

When pushing an application out to the cloud, scalability and the risk of purchasing
too much or too little infrastructure becomes the cloud provider’s issue. In a growing
number of cases, the cloud provider has such a massive amount of infrastructure
that it can absorb the growth and workload spikes of individual customers, reducing
the financial risk they face.
Another way in which cloud computing minimizes infrastructure risk is by enabling
surge computing, where an enterprise datacenter (perhaps one that implements a
private cloud) augments its ability to handle workload spikes by a design that allows
it to send overflow work to a public cloud. Application lifecycle management can be
handled better in an environment where resources are no longer scarce, and where
resources can be better matched to immediate needs, and at lower cost.

Lower cost of entry
There are a number of attributes of cloud computing that help to reduce the cost to
enter new markets:
• Because infrastructure is rented, not purchased, the cost is controlled, and the
capital investment can be zero. In addition to the lower costs of purchasing
compute cycles and storage “by the sip,” the massive scale of cloud providers
helps to minimize cost, helping to further reduce the cost of entry.
• Applications are developed more by assembly than programming. This rapid
application development is the norm, helping to reduce the time to market,
potentially giving organizations deploying applications in a cloud environment a
head start against the competition.

Increased pace of innovation
Cloud computing can help to increase the pace of innovation. The low cost of
entry to new markets helps to level the playing field, allowing start-up companies
to deploy new products quickly and at low cost. This allows small companies to
compete more effectively with traditional organizations whose deployment process
in enterprise datacenters can be significantly longer. Increased competition helps
to increase the pace of innovation — and with many innovations being realized
through the use of open source software, the entire industry serves to benefit from
the increased pace of innovation that cloud computing promotes.

  1. Leave a comment

Leave a comment