CLOUD COMPUTING ARCHITECTURE

toadspottedincurableInternet και Εφαρμογές Web

4 Δεκ 2013 (πριν από 3 χρόνια και 4 μήνες)

120 εμφανίσεις




INTRODUCTION TO

CLOUD COMPUTING

ARCHITECTURE

Whi t e Paper

1st Edition, June 2009

Abstract

Cl oud comput i ng promi ses t o i ncrease t he vel oci t y wi t h whi ch appl i cat i ons are depl oyed, i ncrease i nnovat i on,
and l ower cost s, al l whi l e i ncreasi ng busi ness agi l i t y. Sun t akes an i ncl usive vi ew of cl oud comput i ng t hat
allows i t to support every facet, inclu
ding the server, storage, network, and virtualizat ion technology that drives
cloud comput ing envi ronment s to the sof t ware that runs in vi rtual appl iances that can be used to assemble
appl icat ions in minimal t ime. This whit e paper discusses how cloud comput
i ng transforms the way we design,
bui ld, and del iver appl icat ions, and the archi tectural considerat ions that ent erprises must make when adopt ing
and using cloud comput ing technology.




Thi s page i ntentional l y l eft bl ank.


Sun Mi crosystems, Inc.


Table of Contents

Introduction

................................
................................
................................
..............................

1

Sun’s perspective

................................
................................
................................
..........

1

The Nature of Cloud Computing

................................
................................
.......................

3

Building on established trends

................................
................................
.................

3

Virtual machines as the standard deployment object

................................
..........

3

The on
-
demand, self
-
service, pay
-
by
-
use model

................................
....................

4

Services are delivered over the network

................................
...............................

7

The role of open source software

................................
................................
........

8

Cloud computing infrastructure models

................................
................................

9

Public, private, and hybrid clouds

................................
................................
.........

9

Archi tectural l ayers of cl oud computi ng

................................
....................


12

Cl oud appl i cati on programming i nterfaces

................................
.................


14

Cloud computing benefits

................................
................................
......................

15

Reduce run time and response time

................................
................................
...

15

Mi ni mi ze i nfrastructure ri sk

................................
................................
......


15

Lower cost of entry

................................
................................
......................


16

Increased pace of innovation

................................
................................
.............


16

Architectural Considerations for IaaS

................................
................................
............

17

Evol ving appl ication architectures

................................
................................
.....


17

Changing approaches to archi tecture

................................
.............................


17

Changing appli cation designs

................................
................................
........


17

The goals remain the same

................................
................................
...................

19

Consistent and stable abstraction layer

................................
.............................


20

Standards help to address comp
lexity

................................
............................


21

Loose
-
coupled, stateless, fail
-
in
-
place computing

................................
................


23

Horizontal scaling

................................
................................
................................
.


24

Parallel ization

................................
................................
................................
.


24

Divide and conquer

................................
................................
................................
.

26

Data physics

................................
................................
................................
.............


27

The rel ationshi p between data and processi ng

................................
.............


27

Programming strategies

................................
................................
................


28

Compliance and data physi cs

................................
................................
.......


28

Security and data physics
................................
................................
..................


29

Network security practices

................................
................................
...............


29


Sun Mi crosystems, Inc.


Sun and Cloud Computing

................................
................................
................................
.....

31

Innovati ons from the Sun community

................................
................................
...

31

Community and open standards

................................
................................
..............

32

The importance of choice

................................
................................
.............................

32

Choosing a cloud computing provider

................................
................................
..

32

Acknowledgments

................................
................................
................................
........

33


1

Introducti on to Cl oud Computi ng Archi tecture

Sun Mi crosystems, Inc.


Chapter 2


Introduction

Everyone has an opini on on what i s cloud computi ng. It can be the abi l ity to rent a
server or a thousand servers and run a geophysical modeling application on the most
powerful systems avai l abl e anywhere. I
t can be the abi l i ty to rent a vi rtual server,
load software on it, turn i t on and off at wi ll, or clone it ten times to meet a sudden
workload demand. It can be storing and securing immense amounts of data that i s
accessible only by authorized application
s and users. It can be supported by a cloud
provider that sets up a platform that includes the OS, Apache, a MySQLTM database,
Perl, Python, and PHP with the ability to scale automatically in response to changing
workl oads. Cl oud computi ng can be the abi l i
t y t o use appl i cat i ons on the Internet
t hat store and protect dat a whi l e provi di ng a servi ce


anyt hi ng i ncl udi ng emai l,
sales force automation and tax preparation. It can be using a storage cloud to hold
appli cation, business, and personal data. And it ca
n be the abili ty to use a handful of
Web services to integrate photos, maps, and GPS information to create a mashup in
customer Web browsers.

Sun’s perspective

Sun takes an i ncl usi ve vi ew t hat there are many di ff erent t ypes of cl ouds, and
many di fferent appl i cations that can be bui l t usi ng them. To the extent that cloud

computi ng helps to increase the velocity at whi ch appl i cations are deployed, hel pi ng
to i ncrease the pace of innovation, cloud computing may yet take forms that we

sti l l cannot i magi ne today. What remai ns constant, however, i s that Sun i s an
experi enced provi der of server, storage, networki ng, and software technol ogy that
is ready to support cloud computing. As the company that coined the phrase “The
Network is the C
omputerTM,” we believe that cloud computi ng is the next generation
of network computi ng.

What di st i ngui shes cl oud comput i ng f rom previ ous model s? Boi l ed down t o a
phrase, it’s using information technology as a service over the network. We define it
as serv
ices that are encapsulated, have an API, and are available over the network.
This definition encompasses using both compute and storage resources as services.
Cloud computing is based on the principle of efficiency above all


efficiency that
produces high
-
level tools for handling 80% of use cases so that applications can be
created and deployed at an astonishing rate.

Cl oud computi ng can be provided usi ng an enterpri se datacenter’ s own servers,
or
it can be provided by a cloud provider that takes all of th
e capital ri sk of owning

the infrastructure. The illusion is that resources are infinite. While the field is in its
infancy, the model i s taking the information technology (IT) world by storm. The


2

Introducti on to Cl oud Computi ng Archi tecture

Sun Mi crosystems, Inc.


Chapter 2


predomi nant model for cloud computi ng today i s call ed
infrastructure as a servi ce
,
or IaaS, and because of i ts prominence, the IaaS model i s the focus of the first
edition of thi s white paper.

This paper discusses the nature of cloud computing and how it builds on established
trends whi le transforming the way that enterpri ses everywhere bui l d and deploy
appl i cati ons. It proceeds to di scuss the archi tect ural consi derat i ons that cl oud
architects m
ust make when designing cloud
-
based applications, concluding with a
discussion of Sun’ s technologi es that support cloud computi ng.


3

Introducti o
n to Cl oud Computi ng Archi tecture

Sun Mi crosystems, Inc.


Chapter 2


The Nature of Cloud Computing

Building on established trends

Cl oud computi ng bui l ds on establ i shed trends for dri vi ng the cost out of the del i very
of servi ces whi le increasing the speed and agi l ity with which servi ces are deployed.
I t short ens t he t i me f rom sket chi ng out an appl i cat i on ar chi t ect ure t o act ual
depl oyment. Cloud computi ng i ncorporates virtual i zation, on
-
demand deployment,
Internet deliv
ery of services, and open source software. From one perspective, cloud
computing i s nothing new because it uses approaches, concepts, and best practices
that have already been establ i shed. From another perspecti ve, everythi ng i s new
because cl oud computing

changes how we i nvent, develop, deploy, scale, update,
maintain, and pay for appl icati ons and the infrastructure on which they run. In this
chapter, we exami ne t he trends and how t hey have become core to what cl oud
computi ng i s al l about.

Virtual machines

as the standard deployment object

Over the last several years, vi rtual machi nes have become a standard deployment
obj ect. Vi rtual i zati on further enhances fl exi bi l i t y because i t abstracts the hardware
to t he poi nt where sof tware stacks can be depl oyed and
redepl oyed wi thout bei ng
tied to a specific physical server. Virtualization enables a dynamic datacenter where
servers provide a pool of resources that are harnessed as needed, and where the
relationship of appli cations to compute, storage, and network res
ources changes
dynamically in order to meet both workload and business demands. With application
depl oyment decoupl ed from server depl oyment, appl i cati ons can be depl oyed and
scal ed rapidly, without having to first procure physical servers.

Vi r t ual machi ne
s have become t he pr eval ent abst r act i on


and uni t of
deployment


because they are the least
-
common denominator interface between
service providers and developers. Using virtual machines as deployment objects is
suffi cient for 80 percent of usage, and it
helps to satisfy the need to rapidly deploy
and scale applications.

Virtual appliances, virtual machines that include software that is partially or fully
configured to perform a specific task such as a Web or database server, fur
ther
enhance the abi lity to create and deploy appl ications rapidl y. The combination of
virtual machines and appliances as standard deployment objects is one of the key
features of cloud computing.


4

Introducti on to Cl oud Computi ng Archi tecture

Sun Mi crosystems, Inc.


Compute clouds are usually complemented by storage clouds that provide virtualized
storage through APIs
that facilitate storing virtual machine images, source files for
components such as Web servers, appli cation state data, and general business data.

The on
-
demand, self
-
service, pay
-
by
-
use model

The on
-
demand, sel f
-
servi ce, pay
-
by
-
use nat ure of cl oud comput
i ng i s al so an
extensi on of establ i shed trends. From an enterpri se perspecti ve, the on
-
demand
nature of cl oud computi ng helps to support the performance and capaci ty aspects
of servi ce
-
l evel obj ecti ves. The sel f
-
servi ce nature of cl oud computi ng al l ows
org
anizations to create elastic environments that expand and contract based on the
workload and target performance parameters. And the pay
-
by
-
use nature of cloud
comput i ng may t ake t he form of equi pment l eases that guarant ee a mi ni mum l evel
of service from a
cloud provider.

Virtual i zati on i s a key feature of thi s model. IT organi zati ons have understood for
years that virtualization allows them to quickly and easily create copies of existing
environments

sometimes involving multiple virtual machines


to suppo
rt test,
devel opment, and stagi ng acti vi ti es. The cost of these envi ronments i s mi ni mal
because they can coexist on the same servers as production environments because
they use few resources.

Li kewi se, new appl i cati ons can be developed and deployed in new
virtual machi nes
on exi sting servers, opened up for use on the Internet, and scal ed i f the appl i cati on
i s successf ul i n t he market pl ace. Thi s l i ghtwei ght depl oyment model has al ready
l ed to a “Darwi ni sti c” approach to busi ness devel opment where beta versi o
ns of
software are made public and the market decides whi ch appl icati ons deserve to be
scal ed and developed further or quietly retired.

Cl oud comput i ng ext ends t hi s t rend t hrough aut omat i on. I nst ead of negot i at i ng
wi th an IT organi zation for resources on w
hi ch to deploy an appl i cation, a compute
cloud is a self
-
servi ce proposi tion where a credi t card can purchase compute cycles,
and a Web interface or API is used to create virtual machines and establish network
rel ati onshi ps between them. Instead of requi ri ng a l ong
-
term contract for servi ces
wi th an IT organi zation or a servi ce provider, clouds work on a pay
-
by
-
use, or pay
by
-
the
-
si p model where an appl icati on may exi st to run a j ob for a few mi nutes or
hours,
o
r it may exist to provide services to customers on a long
-
term basis. Compute
clouds
are built as if appli cati ons are temporary, and bi ll ing i s based on resource
consumption: CPU hours used, volumes of data moved, or gi gabytes of data stored.

The ability to use and pay for only the resources used shifts the risk of how much
i nfrastructure to purchase from the organi zat i on devel opi ng the appl i cati on to
the cloud provider. It also shifts the responsibility for architectural decisions from



5

Introducti on to Cl oud Computi ng Archi tecture

Sun Mi cros
ystems, Inc.

application architects to developers. This shift can increase risk, risk that must be
managed by enterprises that have processes in place for a reason, and of system,
network, and storage architects that needs to factor in to cloud compu
ting designs.

Infrastructure is programmable

This shift of architectural responsibili ty has significant consequences. In the past,
architects would determi ne how the vari ous components of an appl i cati on woul d be
laid out onto a set of servers, how they would be interconnected, secured, managed,
and scaled. Now, a developer can use a cloud provider’s API to create not only an
appl i cati on’ s i ni t i al composi ti on onto vi rtual machi nes, but al so how i t scal es and
evol ve
s to accommodate workload changes.

Consider this analogy: historically, a developer writing software using the JavaTM
programmi ng l anguage determi nes when i t ’ s appropri ate t o creat e new t hreads to
allow multiple activities to progress in parallel. Today, a developer can discover and
attach to a servi ce wi th the same ease, al l owing them to scal e an appl i cation to the
poi nt where i t mi ght engage thousands of vi rtual machi nes i n order to accommodate
a
huge spike in demand.

The abi l i ty to program an appl i cati on archi tecture dynami cal l y puts enormous power
i n the hands of devel opers with a commensurate amount of responsi bi l i ty. To use
cloud computi ng most effectivel y, a devel oper must al so be an architect
, and that
architect needs to be able to create a self
-
monitoring and self
-
expanding application.
The developer/architect needs to understand when it’ s appropriate to create a new
thread versus create a new virtual machine, along wi th the architectural pat
terns for
how they are interconnected.

When this power i s wel l understood and harnessed, the resul ts can be spectacul ar. A
story that is already becomi ng legendary i s Animoto’ s mashup tool that creates a
video from a set of images and musi c. The company’s
appli cation scaled from 50 to
3,500 servers in just three days due in part to an architecture that allowed it to scale
easi ly. For thi s to work, the application had to be built to be horizontal scaled, have

limited state, and manage its own deployment thro
ugh cloud APIs. For every success
story such as thi s, there wi l l l i kel y be a si mi l ar story where the appl i cati on i s not
capable of self
-
scal i ng and where it fai ls to meet consumer demand. The importance
of thi s shift from developer to developer/architect c
annot be understated.

Consi der whether your enterpri se datacenter coul d scal e an appl i cati on thi s rapi dl y
to accommodat e such a rapi dl y growi ng workl oad, and whether cl oud computi ng
coul d augment your current capabi l i ti es.



6

Introducti on to Cl oud Computi ng Archi tecture

Sun Mi crosystems, Inc.

Applications are composed and are built to be composable

Another consequence of the self
-
service, pay
-
by
-
use model is that applications are
composed by assembl ing and confi guri ng appl iances and open
-
source software as
much as they are programmed. Appl i cations and architectures that can be refactored
i n order to
make the most use of standard component s are those t hat wi l l be t he
most successful in leveraging the benefits of cloud computing. Likewise, application
components should be designed to be composable by building them so they can be
consumed easily. This re
quires having simple, clear functions, and well
-
documented
APIs. Bui ldi ng l arge, monol ithi c appli cati ons i s a thing of the past as the li brary of
exi sti ng tool s that can be used directl y or tai l ored for a specifi c use becomes ever
larger.

For example, tools such as Hadoop, an open
-
source MapReduce implementation,
can be used in a wide
range of contexts i n which a problem and its data can be

refactored so that many parts of it can execute in parallel. When The New York Times
wi shed to convert 11 mi l l i on arti cl es and i mages i n i ts archi ve to PDF format, their
internal IT organi zation said

that it would take seven weeks. In the mean time, one
devel oper usi ng 100 Amazon EC2 si mpl e Web servi ce i nterface i nstances runni ng
Hadoop compl eted the j ob i n 24 hours for l ess than $300. (Thi s di d not i ncl ude the
ti me required to upl oad the data or the
cost of the storage.)

Even l arge corporat i ons can use cl oud comput i ng i n ways t hat sol ve si gni f i cant
probl ems in l ess time and at a lower cost than with tradi tional enterpri se computing.

Example Web application deployment

As an example of how the combination of virtualization and self service facilitate
appl i cati on depl oyment, consi der a two
-
ti er Web appl i cati on depl oyment i nto a
cloud (Figure 1):

1.

A developer might choose a load balancer, Web server, and database server

appl i ances from a l ibrary of preconfigured virtual machi ne i mages.

2.

The developer woul d confi gure each component to make a custom i mage. The
l oad bal ancer woul d be configured, the Web server popul ated wi th i ts stati c
content by uploading it to the storage
cloud, and the database server appliances
popul ated wi th dynami c content for the si te.

3.

The developer layers custom code into the new architecture, making the
components meet specifi c appl i cation requirements.

4.

The developer chooses a pattern that takes the images for each layer and
deploys them, handl ing networking, security, and scalabi lity issues.

For a description

of how this feat was
accomplished, please visit:
http://open.
blogs.nytimes.com/2007/11/01/self
-
service
-
prorat ed
-
super
-
comput i ng
-
f un/



7

Introducti on to Cl oud Computi ng Archi tecture

Sun Mi crosystems, Inc.

SELECT FROM

DEPLOY

LIBRARY


Figure 1. Example cloud
-
based deployment of an application onto a two
-
tier Web
server archi tectural pattern.

5. The secure, hi gh
-
avai l abi l i ty Web appl i cati on i s up and runni ng. When the
application needs to be updated, the virtual machine images can be upd
ated,
versi oned, copi ed across the devel opment
-
test
-
producti on chai n, and the
entire infrastructure redeployed. Cloud computing assumes that everything i s

temporary, and it’s just as easy to redeploy an entire application than it is to
manual l y patch a set

of indivi dual virtual machines.

I n t hi s exampl e, t he abst ract nat ure of vi r t ual machi ne i mages suppor t s a
composi t i on
-
based appr oach t o appl i cat i on devel opment. By r ef act or i ng t he
problem, a standard set of components can be used to quickly deploy an appl
ication.
With thi s model, enterpri se business needs can be met qui ckl y, without the need for
the ti me
-
consumi ng, manual purchase, i nstal l ati on, cabl i ng, and confi gurati on of
servers, storage, and network infrastructure.

Services are delivered over the network

It al most goes wi t hout sayi ng that cl oud comput i ng ext ends t he exi st i ng trend of
maki ng servi ces avai l abl e over the network. Vi rtual l y every busi ness organi zati on
has recognized the value of Web
-
based interfaces to their appli cations, whether they
are made avai l abl e to customers over the Internet, or whether they are i nternal
appl i cati ons that are made avai l abl e to authori zed empl oyees, partners, suppl i ers,
and cons
ultants. The beauty of Internet
-
based service del ivery, of course, is that
appli cations can be made avai lable anywhere, and at any ti me.

Whi l e enterpri ses are wel l aware of t he abi l i t y to secure communi cati ons
using Secure Socket Layer (SSL) encryption alo
ng with strong authentication,

bootstrapping trust i n a cloud computi ng environment requires careful ly consideri ng


LOAD BALANCER

WEB SERVER

APACHE

DATABASE

CONFIGURE

PATTERN

WEB SERVER

APACHE

DATABASE

LOAD BALANCER

WEB SERVER

APACHE

DATABASE

LOAD BALANCER

WEB SERVER

APACHE

STORAGE

API



8

Introducti on to Cl oud Computi ng Archi tecture

Sun Mi crosystems, Inc.


the differences between enterprise computing and cloud computing. When properly
architected, Internet service del i very can provide the flexi bi l i ty and security required
by enterprises of all sizes.

The role
of open source software

Open source sof tware pl ays an i mportant rol e i n cl oud comput i ng by al l owi ng i t s
basi c software elements


virtual machine images and appli ances


to be created
from easily accessible components. This has an amplifying effect:



Developers, for example, can create a database appliance by layering MySQL
software onto an instance of the OpenSolarisTM Operating System and performing
customizations (Figure 2). Appliances such as these enable cloud computing
appl i cati ons to be created,

depl oyed, and dynami cal l y scal ed on demand.
Consider, for example, how open source software allows an application such as
that created by Ani moto to scale to 3,500 instances in a matter of days.

Figure 2. Appliances can be created by layering open source software into a virtual
machi ne i mage and perf ormi ng cust omi zat i ons that si mpl i f y t hei r depl oyment. I n
this exampl e, a database appl iance is created by layering MySQL software on top of
the OpenSolaris Operating System.



The ease with which open source components can be used t
o assemble large
appl i cati ons generat es more open source component s. Thi s, i n turn, makes the
rol e of open source software even more important. The need, for example, to have
a MapReduce al gori thm that can run i n a cl oud
-
computi ng envi ronment, was one
of t
he factors st i mul at i ng i ts devel opment. Now t hat the t ool has been creat ed,
i t
i s bei ng used to further rai se the l evel at whi ch devel opers ‘ program’ cl oud
computi ng appl i cati ons.


APPLIANCE

APPLICATION OR
MIDDLEWARE

OPERATING SYSTEM

VIRTUAL MACHINE IMAGE

DATABASE



9

Introducti on to Cl oud Computi ng Archi tecture

Sun Mi crosystems, Inc.

Cloud computing infrastructure models

There are many considerations for cloud computing architects to make when moving
from a standard enterpri se appl i cati on depl oyment model to one based on cl oud
computi ng. There are publ i c and pri vate cl ouds that offer compl ementary benefi ts,
there are three basic service models to consider, and there is the value of open APIs
versus pro
prietary ones.

Public, private, and hybrid clouds

IT organi zat i ons can choose to depl oy appl i cat i ons on publ i c, pri vate, or hybri d
clouds, each of which has its trade
-
offs. The terms
public
,
private
, and
hybrid

do not
di ctate l ocati on. Whi l e publ i c cl ouds
are t ypi cal l y “out there” on the I nternet and
private clouds are typically located on premises, a private cloud might be hosted at a
colocation facility as well.

Compani es may make a number of consi derat i ons wi t h r egar d t o whi ch cl oud
comput i ng model they choose to empl oy, and they mi ght use more t han one model
to sol ve di f ferent probl ems. An appl i cat i on needed on a t emporary basi s mi ght be
best sui ted for depl oyment in a publ i c cl oud because i t helps to avoid the need to
purchase addit
ional equipment to sol ve a temporary need. Likewi se, a permanent
appli cation, or one that has specifi c requirements on quality of servi ce or location of
data, might best be deployed i n a private or hybrid cloud.

Public clouds

Public clouds are run by third

parties, and applications from different customers are
l i kel y to be mixed together on the cl oud’s servers, storage systems, and networks
(Figure 3). Publ i c cl ouds are most often hosted away from customer premi ses, and
they provide a way to reduce customer

ri sk and cost by providi ng a flexible, even
temporary extensi on to enterpri se infrastructure.

I f a publ i c cl oud i s i mpl ement ed wi t h perf ormance, securi t y, and data l ocal i t y i n
mi nd, the exi stence of other appl i cati ons runni ng i n the cl oud shoul d be transp
arent
to both cloud architects and end users. Indeed, one of the benefits of public clouds is
that they can be much l arger than a company’ s pri vate cloud mi ght be, offeri ng the
abi l ity to scal e up and down on demand, and shi fti ng i nfrastructure ri sks 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
machi ne i mages i n a

publ i c cl oud, a vi rtual pri vate dat acent er gi ves customers
great er vi si bi l i t y i nt o i t s i nfrast ruct ure. Now cust omers can mani pul at e not j ust
virtual machi ne images, but al so servers, storage systems, network devi ces, and



10

I
ntroducti on to Cl oud Computi ng Archi tecture

Sun Mi crosystems, Inc.


network topol ogy. Creati ng a vi rtual pri vate datacenter wi th al l components l ocated
in the same facility helps to lessen the issue of data locality because bandwidth is
abundant and typi call y free when connecti ng resources wi thi n the same faci l ity.

Figure 3. A public cloud provides services to multiple customers, and is typically
deployed at a colocation faci li ty.

Private clouds

Pri vate cl ouds are bui l t for the excl usi ve use of one cl i ent, provi di ng the utmost
control over data, security, and quality of service (Figure 4). The company owns the
i nfrastructure and has control over how appl i cati ons are depl oyed on i t. Pri vate
clouds
may be deployed in an enterprise datacenter, and they also may be deployed
at a colocation facil ity.

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 ca
n

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 whil e bringing in the expertise needed to establ ish

and operate the envi ronment.


PUBLIC

ENTERPRISE



11

Introducti on to Cl oud Computi ng Archi tecture

Sun Mi crosystems, Inc.

Figure 4. Private clouds may be hosted at a colocation facility or in an enterprise
datacenter. They may be supported by the company, by a cloud provider, or by a
third party such as an outsourcing firm.

Hybrid clouds

Hybri d cl ouds combi ne both publ i c and pri vate cl oud model s (Fi gure 5). They can
help to provi de on
-
demand, external l y provi sioned scal e. The abi l i ty to augment a
pri vate cl oud wi th the resources of a p
ubl ic cloud can be used to maintai n servi ce
levels i n the face of rapid workload fluctuations. Thi s i s most often seen with the use
of storage clouds to support Web 2.0 appli cations. A hybri d cloud also can be used
to
handle pl anned workload spi kes. Someti
mes call ed “surge computi ng,” a publ ic
cloud can be used to perform periodic tasks that can be deployed easily on a public
cloud.

Hybr i d cl ouds i nt r oduce t he compl exi t y of det er mi ni ng how t o di st r i but e
appl i cations across both a publ i c and pri vate cloud. A
mong the i ssues that need to
be considered i s 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 i f l arge amounts of data must be transferred i nto a

publ i c cl oud for a smal l
amount of processing.


PRIVATE

ENTERPRISE



12

Introducti on to Cl oud Computi ng Archi tecture

Sun Mi crosystems, Inc.


Figure 5. Hybri d clouds combi ne both publ i c and pri vate cloud model s, and they can
be parti cul arly effecti ve when both types of cl oud are located in the same faci l i ty.

Architectural layers

of cloud computing

Sun’s view of cl oud computi ng i s an inclusi ve one: cl oud computi ng can descri be
services being provided at any of the traditional layers from hardware to applications
(Fi gure 6). In practi ce, cl oud servi ce provi ders tend to offer servi c
es that can be
grouped into three categories: software as a servi ce, platform as a servi ce, and
i nfr astructure as a servi ce. These cat egori es group t ogether the vari ous l ayer s
illustrated in Figure 6, with some overlap.

Software as a service (SaaS)

Software as a servi ce features a compl ete appl i cati on offered as a servi ce on
demand. A single instance of the software runs on the cloud and services multiple
end users or client organizations.

The most wi del y known exampl e of SaaS i s
sal esfor ce.com
, t hough many other
examples have come to market, including the Google Apps offering of basic business
servi ces including ema
i l and word processing.

Although
sal esforce.com

preceded the defini tion of cl oud computi ng by a few years,
it now operates by leveraging its companion
force.com
, which can be defined as a
platform as a service.



13

Introducti on to Cl oud Computi ng Archi tecture

Sun Mi crosystems, Inc.

Figure 6. Cloud computing means using IT infrastructure as a service


and that
servi ce may be anything from renti ng raw hardware to usi ng third
-
party APIs.

Platform as a service (PaaS)

Platform as a service encapsul ates a l ayer of software and provi des it as a servi ce
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 co
nsumer of the services:



Someone
produci ng

PaaS might produce a pl atform by i ntegrati ng an OS,
mi ddl eware, appl i cati on software, and even a devel opment envi ronment that i s
then provi ded to a customer as a service. For example, someone developing a
PaaS offering might base it on a set of SunTM xVM hypervisor virtual machines that
include a NetBeansTM integrated development environment, a Sun GlassFishTM 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 cust omer i nt eract s wi t h t he pl atf orm t hrough t he API, and
the platform does what is necessary to manage and scale itself to provide a given
level of service. Virtual appl
iances can be classified as instances of PaaS. A content
switch appl iance, for exampl e, woul d have al l of its component software hidden
from t he customer, and onl y an API or GUI for conf i guri ng and depl oyi ng t he
servi ce provi ded to them.

PaaS offerings can

provi de for every phase of software devel opment and testi ng,
or they can be specialized around a particular area such as content management.
Commercial examples of PaaS include the Google Apps Engine, which serves


CLOUD INFRASTRUCTURE

Web services. Flickr API, Google Maps API, Storage

Web
-
based applications. Google apps,
salesforce.com
, tax preparation, Flickr

Virtual hosting. Use a preconfigured appliance or a
custom software stack, AMP, GlassFish, etc.

Rent a preconfigured OS. Add your own applica
-
tions. Example: DNS server

Rent a virtual server. Deploy a VM image or install
your own software stack

Rent a compute grid. Example: HPC applications

APPLICATIONS

SERVICES

MIDDLEWARE

PHYSICAL
SERVERS

OPERATING SYSTEM

VIRTUAL SERVERS

HARDWARE

&

SOFTWARE STACK



14

Introducti on to Cl oud Computi ng Archi tecture

Sun Mi crosystems, Inc.

appli cations on Google’ s infrastructure. PaaS services such as these can provide a
powerful basi s o
n whi ch to depl oy appli cati ons, however they may be constrai ned by
the capabili ties that the cloud provider chooses to del iver.

infrastructure as a service (iaaS)

Infrastructure as a servi ce del i vers basi c storage and compute capabi l i ti es as
standardized s
ervices over the network. Servers, storage systems, switches, routers,
and other systems are pool ed and made avai l abl e to handl e workl oads that range
from appl i cati on components to hi gh
-
performance computing appl i cati ons.

Commercial examples of IaaS includ
e Joyent, whose main product is a line of
virtual ized servers that provide a highl y avai lable on
-
demand infrastructure.

Cloud application programming interfaces

One of the key characteristics that distinguishes cloud computing from standard
enterpri se computi ng i s that the i nfrastructure i tsel f i s programmabl e. Instead
of
physically deploying servers, storage, and network resources to support

appl i cati ons, devel opers speci fy how the same vi rtual components are confi gured
and interconnected, i
ncluding how virtual machine images and application data are
stored and retrieved from a storage cloud. They specify how and when components
are deployed through an API that is specified by the cloud provider.

An analogy is the way in which File Transfer Protocol (FTP) works: FTP servers
mai ntai n a control connect i on wi th the cl i ent t hat i s kept open for the durat i on
of
the session. When files are to be transferred, the control connection is used to

provide a so
urce or destination file name to the server, and to negotiate a source and
destination port for the file transfer itself. In a sense, a cloud computing API is like an
FTP control channel: i t is open for the duration of the cloud’s use, and it control s how
the cloud is harnessed to provide the end services envisioned by the developer.

The use of APIs to control how cloud infrastructure i s harnessed has a pitfal l: unli ke
the FTP protocol, cloud APIs are not yet standardized, so each cloud provider has its
own

specific APIs for managing its services. This is the typical state of an industry in
its infancy, where each vendor has its own propri etary technol ogy that tends to l ock
in customers to their services because proprietary APIs make it difficult to change
p
roviders.

Look for providers that use standard APIs wherever possible. Standard APIs can be
used today for access to storage; APIs for deploying and scal i ng appl i cations are
l i kel y to be standardi zed over time. Al so l ook for cloud providers that understand

their own market and provide, for example, ways to archive and deploy libraries of
virtual machine i mages and preconfigured appl iances.



15

Introducti on to Cl oud Computi ng Archi tecture

Sun Mi crosystems, Inc.

Cloud computing benefits

In order to benefit the most from cloud computing, devel opers 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 increasi
ng the pace of innovation.

Reduce run time and response time

For appl i cat i ons that use t he cl oud essenti al l y f or runni ng bat ch j obs, cl oud
computi ng makes i t strai ghtforward to use 1000 servers to accompl ish a task i n
1/1000 the ti me that a single server w
ould require. The New York Times example
cited previously is the perfect example of what is essentially a batch job whose run
ti me was shortened considerabl y using the cl oud.

For appl i cat i ons t hat need t o of f er good response t i me t o t hei r cust omers,
refact
oring applications so that any CPU
-
intensive tasks are farmed out to ‘worker’
virtual machines can help to optimi ze response ti me whi l e scal i ng on demand

to meet customer demands. The Ani moto appl i cati on ci ted previ ousl y i s 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. Wil l a new application be success
ful? If so, how many servers are needed
and can they be deployed as quickly as the workload increases? If not, will a large
investment i n servers go to waste? If the appl ication’ s success is short
-
lived, wil l

the IT organization invest in a large amount of

infrastructure that is idle most of the
time?

When pushing an appl ication out to the cloud, scalabi lity and the risk of purchasing
too much or too little infrastructure becomes the cloud provider’s issue. In a growing
number of cases, the cl oud provi der h
as such a massi ve amount of i nfrastructure
that it can absorb the growth and workload spi kes of individual customers, reducing
the financial risk they face.

Another way in which cloud computing minimi zes infrastructure risk is by enabling
surge computing,
where an enterprise datacenter (perhaps one that i mplements 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 env
ironment where resources are no longer scarce, and where
resources can be better matched to immediate needs, and at lower cost.



16

Introducti on to Cl oud Computi ng Archi tecture

Sun Mi crosystems, Inc.

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 minimi ze co
st, helping to further reduce the cost of entry.



Appli cati ons are developed more by assembl y than programming. Thi s rapid
appl i cati on devel opment i s the norm, hel pi ng to reduce the ti me to market,
potentially giving organizations deploying applications in
a cloud environment a
head start against the competiti on.

Increased pace of innovation

Cl oud computi ng can hel p t o i ncrease the pace of i nnovat i on. The l ow cost of
entry to new markets hel ps to l evel the playi ng fiel d, al l owi ng start
-
up companies
to deploy

new products qui ckl y and at low cost. Thi s al lows smal l companies to

compete more effecti vel y wi th tradi ti onal organi zati ons whose depl oyment process
i n enterpri se datacenters can be si gni fi cantl y l onger. Increased competi ti on hel ps
to i ncrease th
e pace of i nnovati on


and wi th many i nnovati ons bei ng real i zed
through the use of open source software, the entire industry serves to benefi t from
the increased pace of innovation that cloud computing promotes.



17

Introducti on to Cl oud Computi ng Archi tecture

Sun Mi crosystems, Inc.

Chapter 3

Architectural Considerations for IaaS

Evolving application architectures

Just as we have shown that cl oud computi ng i s a natural extensi on of current
trends and best practi ces, the same i s true when viewing cl oud computing from
an architectural perspective. Again, cloud computing is nothing new, yet in its
i mpl ementati on, i t ch
anges everythi ng that we do.

Changing approaches to architecture

In the 1990s, the conversati on was on how to decompose an appl i cation i nto i ts
various components and then how to deploy those components on separate servers
in order to optimize non
-
function
al requirements including scalability, availability,
manageability, and security. Today, we are maintaining a decomposed application
architecture while actually deploying onto a consol idated architecture that uses
vi rtual i zati on.

Cloud computing continues this trend by providing a way to programmatically deploy
appl i cation archi tectures, final l y del i veri ng on the promi se of a dynami c datacenter.
With cloud computing, effici ency i s hi ghl y valued; if it can’t be done qui ckly and
prog
rammati cal l y, i t probabl y i sn’ t an appl i cati on that i s sui ted to the model.

Changing application designs

I n t he past, appl i cat i ons wer e bui l t t o handl e l ar ger wor kl oads t hr ough ver t i cal
scal ing. Put more processors and memory on a mail server to
handle a larger volume
of traffic. Scale up a database server to increase throughput. Run high
-
performance
computi ng jobs on a supercomputer.

The movement away f rom hi ghl y scal abl e symmet r i c mul t i processors and
toward less expensive, but less scalable x86
-
architecture servers has influenced
appli cation design. Rather than expecting appli cati ons to run on highly scalable

servers, developers have been refactoring their applications so that they can scale
hori zontal l y across a number of servers. Thi s appl i cati
on refactori ng i s not al ways
easy, as both appli cati ons and their data must be desi gned so that both processi ng
and data can be factored into smal ler chunks. Thi s exi sti ng architectural trend has
been a key factor propelling the adoption of cloud computing
. Examples of this trend
incl ude:



18

Introducti on to Cl oud Computi ng Archi tecture

Sun Mi crosystems, Inc.



High
-
performance computing

HPC workl oads have been runni ng on bare
-
met al compute gri ds for some ti me
now, enabl ed by appl i cation refactori ng. For exampl e, sci enti sts have found ways
to chunk down data for applications such as 3D climate modeling so that it can be
spread across a lar
ge number of servers. Grid computing is a predecessor to cloud
computing in that it uses tool s to provision and manage multiple racks of physi cal

servers so that they all can work together to solve a problem. With its high compute,
interprocess communi cati
on, and I/O demands, HPC workl oads are good candi dates
for clouds that provide infrastructure as a service, specifi cally bare
-
metal servers or
Type I virtual machines that provide more direct access to I/O devices.

Database management systems

Database mana
gement systems have adapted to run i n cl oud envi ronments by
hori zontal l y scal i ng database servers and parti ti oni ng tabl es across them. Thi s
techni que, known as shardi ng, al l ows mul ti pl e i nstances of database software


often MySQL software


to scale perfo
rmance in a cloud environment. Rather than
accessing a single, central database, applications now access one of many database
instances depending on which shard contains the desired data (Figure 7)

Figure 7. Database sharding partitions database tables across multiple database
management system instances, supporting large databases through horizontal
scaling.

CPU
-
intensive processing

Appli cati ons that perform acti viti es such as frame rendering have b
een desi gned so
that, rather than creating a new thread for each frame, they create a separate virtual
machi ne to render each frame, increasi ng performance through hori zontal scal i ng.

Partitioned
Application
Data

Application Data Distributed
Across Horizontal ly Scaled
Database Instances

APPLICATION

DATABASE

DATABASE

DATABASE



19

Introducti on to Cl oud Computi ng Archi tecture

Sun Mi crosystems, Inc.

Data
-
intensive processing

Generali zed tools are being developed by the open source community that a
ssist
in the processing of large amounts of data and then coalesce the results up to a

coordinating process. Hadoop, for example, is an open source implementation of the
MapReduce pr obl em t hat i ntegr at es the depl oyment of ‘ wor ker ’ vi rt ual machi nes
wi th the

data they need.

The goals remain the same

Numerous advances in appl i cation archi tecture have helped to promote the adopti on
of cloud computing. These advances help to support the goal of efficient application
devel opment whi l e hel pi ng appl i cati ons to be el asti c and scal e graceful l y and
automati call y. The overridi ng objective of good appl i cati on architectures, however,
has not changed at al l: i t i s to support the same characteri sti cs that have al ways
been i mport
ant:



Scalability
. This characteristic is just as important as it has ever been. Applications
designed for cloud computing need to scale with workload demands so that
performance and compl i ance wi th servi ce l evel s remai n on target. In order to
achieve t
hi s, appli cations and their data must be loosel y coupled to maximize
scal abi l ity. The term
elasti c

often appl ies to scal i ng cl oud appl i cati ons because
t hey must not onl y be ready t o scal e up, but al so scal e down as workl oads
di mini sh in order to not run up

the cost of depl oyi ng in the cloud.



Avai labi li ty
. Whether the appl i cation serves the users of social networking sites,
or
i t manages t he suppl y chai n f or a l arge manuf act uri ng company, users of
Internet applications expect them to be up and running ev
ery minute of every day.
Sun has been an industry leader in this area establishing early on its SunTone
SM

certi fi cati on program that helped customers to certi fy that i ts appl i cati ons and
servi ces would stand up to required availabil ity levels.



Rel i abi l i t y
. The emphasi s on rel i abi l i t y has shi ft ed over t i me. When l arge
appl i cati ons meant l arge symmetri c mul ti processi ng systems, rel i abi l i ty meant
t hat syst em component s rarel y f ai l and can be repl aced wi t hout di srupt i on
when they do. Today, reli abi l
ity means that applications do not fail and most
importantl y they do not l ose data. The way that architecture addresses thi s
characteri sti c today i s to desi gn appl i cat i ons so that t hey conti nue to operat e
and their data remains intact despite the failure o
f one or more of the servers or
virtual machines onto which they are decomposed. Where we once worried about
the fai l ure of i ndi vi dual server components, now we bui l d appl i cati ons so that
entire servers can fail and not cause disruption.



Security
. Applications need to provide access only to authorized, authenticated
users, and those users need to be able to trust that their data is secure. Thi s i s
true whether the appli cati on helps indi vidual users on the Internet prepare



20

Introducti on to Cl oud Computi ng Archi tecture

Sun Mi crosystems, Inc.

their tax returns, or whether the appl i cati on exchanges confi denti al information
bet ween a company and i t s suppl i er s. Secur i t y i n t oday’ s envi r onment s i s
est abl i shed usi ng st r ong aut hent i cat i on, aut hor i zat i on, and account i ng
procedur es, est abl i shi ng securi t y of dat a at rest and i n tr ansi t, l ocki ng down
net wor ks, and har deni ng oper at i ng

syst ems, mi ddl ewar e, and appl i cat i on
software. It i s such a systemi c property that we no l onger cal l it out as i ts own
principle


security must be integrated into every aspect of an application and its
depl oyment and operational archi tecture and processe
s.



Flexibility and agility
. These characteristics are increasingly important, as business
organi zati ons fi nd themsel ves havi ng to adapt even more rapi dl y to changi ng
business conditions by increasing the velocity at which applications are delivered
i nt o customer hands. Cl oud computi ng stresses get ti ng appl i cat i ons to market
very qui ckl y by usi ng the most appropri ate bui l di ng bl ocks to get the j ob done
rapidly.



Servi ceabi l i t y
. Once an appl i cat i on i s depl oyed, i t needs t o be mai nt ai ned.
I n
t he past

t hi s meant usi ng ser ver s t hat coul d be r epai r ed wi t hout, or
wi t h
mi ni mal, downt i me. Today i t means t hat an appl i cat i on’ s underl yi ng
infrastructure components can be updated or even replaced without disrupting its
characteri sti cs i ncl uding avai l abili ty and

security.



Effi ci ency
. Thi s i s the new characteri sti c on the l ist, and it i s perhaps one that
most differentiates the cloud computing style from others. Efficiency is the point
of cloud computing, and if an appli cation can’
t be deployed in the cloud quickl y
and easily, while benefitting from the pay
-
by
-
the
-
sip model, it may not be a good
candidate. Enterprise resource planning applications, for example, may be best
suited to vertically scaled systems and provided through Saa
S in the near term.
Appl i cat i ons that extract, mani pul ate, and present data deri ved from these
systems, however, may be wel l sui ted to depl oyment i n the cloud.

Consistent and stable abstraction layer

Cl oud comput i ng rai ses t he l evel of abst ract i on so t hat
al l component s are
abst ract ed or vi rtual i zed, and can be used t o qui ckl y compose hi gher
-
l evel
applications or platforms. If a component does not provide a consistent and stable
abstracti on layer to i ts cl ients or peers, it’ s not appropriate for cl oud compu
ting.

The st andard depl oyment uni t i s a vi rt ual machi ne, whi ch by i t s very nature i s
designed to run on an abstract hardware platform. It’s easy to over focus on building
vi rtual machi ne i mages and f orget about the model that was used to create them.
In cl oud computi ng, i t’ s important to maintai n the model, not the image i tself. The
model i s mai ntai ned; the i mage i s produced from the model.



21

Introducti on to Cl oud Computi ng Archi tecture

Sun Mi crosystems, Inc.

Vi rt ual machi ne i mages wi l l al ways change because the l ayer s of sof tware
within them wil l always need to be patched, upgraded, or reconfigured. What
doesn’ t change i s the process o
f creati ng the vi rtual machi ne i mage, and thi s
is what developers should focus on. A developer might build a virtual machine
image by layering a Web server, application server, and MySQL database server
onto an operating system image, appl ying patches, con
figuration changes, and

interconnecting components at each layer. Focusing on the model, rather than the
virtual machine image, allows the images themselves to be updated as needed by
re
-
applying the model to a new set of components.

With thi s standard dep
l oyment unit, cloud architects can use appl i ances that hel p
to speed depl oyment wi th lower costs. A devel oper might use an appl iance that

i s preconf i gured t o run Hadoop on t he OpenSol ari s OS by i nt eract i ng wi t h t he
appliance’s API. Architects can use conte
nt switches that are deployed not as physical
devi ces, but as virtual appl iances. Al l that needs to be done to depl oy i t i s i nteract
with its API or GUI. Even companies producing li censed, commercial software are
adapti ng to cl oud computi ng wi th more flexi
ble, use
-
based l i censi ng model s.

Whether invoki ng a model that creates a virtual machi ne i mage, or customi zing

an appliance, the resulting virtual machine images need to be stored in a library of
images that the enterpri se versions and supports.

Standards
help to address complexity

Cl oud computi ng emphasi zes effi ci ency above al l, so adopti ng a smal l number of
standards and standard configurations helps to reduce maintenance and deployment
costs. Havi ng standards that make depl oyment easy i s more i mportant than havi ng
the perfect envi ronment for the j ob. The 80/20 rul e comes i nto pl ay here: cl oud
computing focuses on the few standards that can support 80% of the use cases.

This shifts the ec
onomics from costly, one
-
off implementations to choosing the
building blocks that can be used in the largest volume. There will continue to be
special i zation, however the starting poi nt shoul d be with a standard.

For an enterprise shifting to cloud computi
ng, standards may include the type of
virtual machine, the operating system in standard virtual machine images, tools,
and programmi ng l anguages supported:


Vi rtual machi ne types
. Consi der the i mpact of vi rtual machi ne choi ce on the
appl i cati on to be supp
orted. For a soci al networki ng appl i cat i on, i sol at i on f or
security, and a high level of abstraction for portability, would suggest using Type II
virtual machi nes. For a high
-
performance computing or visualization appli cations,
the need to access hardware d
irectl y to achieve the utmost performance woul d
suggest using Type I virtual machines.



22

Introducti on to Cl oud Computi ng Archi tecture

Sun Mi crosystems, Inc.



Preinstalled, preconfigured systems
. The software on virtual machines must be
maintai ned j ust as i t does on a physi cal server. Operati ng systems sti ll need to
be
hardened, patched, and upgraded. Having a small, standard set
of supported
confi gurati ons al lows devel opers to use the current supported virtual machi ne.
When the supported configuration is updated, the model dictating customizations
should be designed so that it’s easy to re
-
apply changes to a new virtual machine
i m
age. The same i s t rue f or appl i ances, where t he current versi on can be
configured through their standard APIs.



Tool s and l anguages
. Ent erpri ses mi ght st andardi ze on usi ng t he Java
programming language and Ruby on Rails; small businesses might standardize on
PHP as their preferred tools for building appl ications. As these standards mature
in the context of cloud computing, they start to form the next layer, platform as a
service.

Vir
tualization and encapsulation supports refactoring

When applications are refactored and created by combining and configuring a set of
virtual machine images and appliances, the emphasis is on what a particular virtual
machine
does
, not how it’s
implemented
. Virtual ization and encapsulati on hides
implementation details and refocuses developers on the interfaces and interactions
between component s. These components shoul d provi de standard i nterfaces so
that developers can build applications quickly and easily



as well as use alternate
components wi th simi lar functional i ty as performance or cost di ctates.

Appli cati on depl oyment i s done programmati cal l y, and even the programs that
depl oy appl icati ons can be encapsul ated so that they can be used and re
-
used.
A p
rogram that deploys a three
-
tier Web infrastructure could be encapsulated so

that its parameters woul d include poi nters to virtual machine images for the Web
server, business logic, and database tiers (Figure 8). This design pattern could then
be executed
to deploy standard applications without having to re
-
invent or even re
-
consider, for example, the network architecture required to support each ti er.

The cl oud computing phi losophy for appl i cati on maintenance i s not to patch, but
redeploy. Managing the mod
el that created a virtual machine image, not the image
itself, simplifies this redeployment. It’s relatively easy to solve problems discovered
af t er depl oyment, or rel ease new versi ons of the appl i cat i on by updat i ng t he
component virtual machines and invok
ing the design pattern to redeploy. When a
devel oper patches a virtual machine, onl y one virtual machi ne i mage needs to be
created


the rest shoul d be repl i cated and depl oyed programmati cal l y. Vi rtual
machines should be versioned to facilitate rollback wh
en necessary.



23

Introducti on to Cl oud Computi ng Archi tecture

Sun Mi crosystems, Inc.

DEPLOYMENT

PATTERN


Fi gure 8. A depl oyment pattern can be encapsul ated for re
-
use. In thi s exampl e a
pattern speci fi es Web, appl i cation, and database server ti ers, and al l that i s needed
for i t to depl oy an i nstance of itself i s pointers to virtual

machi nes for each of the

three layers.

Loose
-
coupled, stateless, fail
-
in
-
place computing

For years, Web
-
based appl i cations have been movi ng toward being l oose
-
coupl ed
and stateless. In cloud computing, these characteristics are even more important
because

of cl oud computi ng’ s even more dynami c nature. Appl i cati on i mages 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
appli cation components needs to be loose so that a failure of any component does
not affect overal l appl i cat i on avai l abi l i ty. A component shoul d be abl e to “fai l i n
pl ace” wi th l i ttl e or no i mpact on the appl i cati on.

As appli cation components become increa
singly 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 Terracott
a or Shoal in a GlassFish
appli cation server


WEB SERVERS

APPLICATION SERVERS

DATABASE SERVERS




24

Introducti on to Cl oud Computi ng Archi tecture

Sun Mi crosystems, Inc.

The impact that fail
-
in
-
place computing has on operations is that even the hardware
shoul d be st atel ess f or the cl oud t o f unct i on properl y. Hardware conf i gurat i ons
should be stored in metadata so that configurations can be restored in the event of a
failur
e.

Horizontal scaling

Cl oud computi ng makes a massi ve amount of hori zontal scal abi l ity avail abl e
to appli cati ons that can take advantage of it. The trend toward designing and

refactori ng appl i cations to work wel l i n hori zontal l y scal ed environments means that
an i ncreasing number of appl i cations are wel l suited to cl oud computi ng.

Appl i
cat i ons t aki ng advant age of hor i zont al scal i ng shoul d f ocus on over al l
appl i cat i on avai l abi l i t y wi t h the assumpt i on t hat i ndi vi dual component s wi l l f ai l.
Most cloud platforms are built on a virtual pool of server resources where, if any one
physical server fail s, the virtual machines that it was hosting are simply restarted

on a di ff erent physi cal server. The combi nat i on of stat el ess and l oose
-
coupl ed
appli cation components with horizontal scaling promotes a fail
-
in
-
place strategy that
does n
ot depend on the rel i abi l ity of any one component.

Horizontal scaling does not have to be limited to a single cloud. Depending on the
si ze and l ocation of appl i cation data, “surge computi ng” can be used to extend

a cloud’
s capability to accommodate temporary increases in workload. In surge
computing, an appli cation running in a private cloud might recruit additional
resources from a public cloud as the need arises.

Surge computi ng depends heavi l y on the amount and l ocal i ty

of data. In the case
of a private cloud located i n an enterprise datacenter expanding to use a publi c
cl oud l ocated somewhere el se on the Internet, the amount of data that needs to
be moved onto the public cloud needs to be factored in to the equation (se
e “data

physics” below). In the case of a pri vate cloud hosted at the same colocation facil ity
as a public cloud provider, the data locality issue is significantly diminished because
vi rtual l y unl i mi ted, free bandwi dth can connect the two cl ouds.

Paralleli
zation

Hori zontal scal i ng and paral l el i zati on go hand i n hand, however today the scal e
and i mpl ementat i on has changed. On a mi croscopi c scal e, sof tware can use
vertical scal ing on symmetri c multiprocessors to spawn multiple threads where
parallelization ca
n speed operations or increase response time. But with today’s
compute environments shifting toward x86
-
architecture servers with two and four

sockets, vertical scaling only has as much parallel processing capability as the server
has cores (or as many cor
es have been purchased and allocated to a particular

OpenSolaris Dynamic Service Containers
being produced by Project Kenai provide a
l i ght wei ght provi
si oni ng syst em t hat can
be used to horizontally scale Solaris Zones.
Please see
http://kenai.com/projects/dsc/.



25

Introducti on to Cl oud Computi ng Archi tecture

Sun Mi crosystems, Inc.


vi r tual machi ne). On a macr oscopi c scal e, softwar e t hat can use par al l el i zat i on
across many servers can scale to thousands of servers, offering more scalability than
was possibl e wi th symmetri c multi processi ng.

I n a physi cal wor l d, par al l el i zat i on i s of t en

i mpl ement ed wi t h l oad bal ancer s or
content switches that distribute incoming requests across a number of servers. In a
cloud computi ng worl d, paral l el i zation can be i mpl emented wi th a l oad bal anci ng
appliance or a content switch that distributes incoming
requests across a number of
virtual machi nes. In both cases, appl ications can be designed to recruit additional
resources to accommodate workload spikes.

The cl assi c exampl e of the par al l el i zat i on wi t h l oad bal anci ng i s a number of
stateless Web servers al
l accessing the same data, where the incoming workload is
distributed across the pool of servers (Figure 9).


Figure 9. A very common use of parallelization and load bal ancing is horizontall y
scaled Web servers.

There are many other ways to use paral l el i zati on i n cl oud computi ng envi ronments.
An application that uses a significant amount of CPU time to process user data might
use the model i llustrated in Fi gure 10. A schedul er receives jobs from users, places
the data i nto a reposi tory, then starts a new vi rtual machi ne for each j ob, handi ng
th
e vi rtual machi ne a token that al l ows i t to retri eve the data from the reposi tory.
When t he vi rtual machi ne has compl eted i t s t ask, i t passes a token back to the
schedul er t hat al l ows i t t o pass t he compl et ed proj ect back t o t he user, and t he
vi rtual machi
ne termi nates.


LOAD BALANCER

LOAD BALANCER

WEB SERVER

WEB SERVER

WEB SERVER

WEB SERVER

APACHE

APACHE

APACHE

APACHE

API

SHARED CONTENT

STORAGE

WEB SERVERS



26

Introducti on to Cl oud Computi ng Archi tecture

Sun Mi crosystems, Inc.

Figure 10. Another example of parallelization is the batch performance of resource
-
intensive tasks on behalf of users.

Divide and conquer

Appli cati ons can be paral lel i zed onl y to the extent that thei r data can be parti tioned
so that i ndependent systems can operat e on i t i n par al l el. A good appl i cat i on
architecture includes a plan for dividing and conquering data, and a variety of real
-
world
exampl es i l lustrate the wi de range of approaches:



Hadoop is an implementation of the MapReduce pattern which is an
i mpl ementat i on of t he master/worker paral l el i zat i on patt ern.



Dat abase shar di ng can be accompl i shed t hr ough a r ange of par t i t i oni ng
techni
ques, including vertical partitioning, range
-
based partitioning, or directory
-
based partitioning. The approach used depends entirely on how the data is to be
used.



Major financial institutions have refactored their fraud detection algorithms so
that what w
as once more of a batch data
-
mining operation now runs on a large
number of systems in paral l el, providi ng real
-
time anal ysi s of i ncoming data.



Some high
-
performance computing applications that deal wi th three
-
dimensional
data have been designed so tha
t state of one cubic volume (of gas, liquid, or solid)
can be cal cul ated for ti me
t

by one process. Then the state of the one cube i s
passed onto the processes representing the eight adjoining cubes, and the state is
calculated for time
t+1
.

The partitioning of data has a significant impact on the volume of data transferred
over networks, making data physi cs the next in the li st of considerations.


SCHEDULER

STORAGE ACCESS

STORAGE

API

WORKER

WORKER

WORKER



27

Introducti on to Cl oud Computi ng Archi tecture

Sun Mi crosystems, Inc.

Data physics

Data physi cs considers the rel ati onshi p between processi ng elements and the data
on which they operate. Since most compute clouds store dat
a in the cloud, not on a
physical server’s local disks, it takes time to bring data to a server to be processed.
Data physics i s governed by the simple equation that descri bes how long it takes

to move an amount of data between where i t i s generated, stored, processed,
and archived. Clouds are good at storing data, not necessarily at archiving it and
destroying it on a predefined schedule. Large amounts of data, or low
-
bandwidth
pi pes, l engthen t
he ti me it takes to move data:

time =

bytes * 8


bandwidth

Thi s equati on i s rel evant for both the moment
-
by
-
moment processi ng of data and
for l ong
-
term pl anning. It can help determi ne whether it makes sense, for exampl e,
to i mpl ement a surge computing strategy where i t mi ght take l onger to move the
data to a public cl oud than it does to process it. It can al so help determine the

cost of moving operations from one cloud provider to another: whatever data has
accumulated in
one cloud provider’s datacenter must be moved to another, and this
process may take time.

The cost of moving data can be expressed both in time and bandwidth charges. The
hybrid model i llustrated in Figure 5, where a company’s private cloud is collocated
w
i t h i t s cl oud provi der’ s publ i c cl oud, can hel p t o reduce cost s si gni f i cant l y.
Bandwi dth wi thi n a col ocati on faci l i ty general l y i s both pl enti ful and free, maki ng
this strategy a win
-
win proposition for both the time and dollar cost of moving data
around.

The relationship between data and processing

Data physics is a reminder to consider the relationship between data and processing,
and that movi ng data from st orage to processi ng can t ake bot h t i me and money.
Some aspects of thi s relationship to consi der in
clude:



Data stored without compute power nearby has limited value, and cloud providers
shoul d be transparent regarding the network rel ati onshi p between these two
components. What i s the si ze

of their pipes? What i s the l atency? What i s the
rel i abi l ity of the connecti on? Cl oud providers should be forthcoming wi th answers
to all of these questions.



Cloud architects should be able to specify the locality of virtual components and
services so tha
t there is a well
-
defined relationship between virtual machines and
the storage they access.



Cloud providers may optimize this relationship automatically for customers, but
consi der whether thei r opti mizati on i s ri ght for the appl i cati on at hand.



28

Introducti on to Cl oud Computi ng Archi tecture

Sun Mi crosystems, Inc.



In a networked environment, i t is sometimes more effi cient (fas
ter, less latency)
to calculate a value than it is to retrieve it from networked storage. Consider the
trade
-
off between usi ng compute cycl es and movi ng data around.

Programming strategies

Cloud computing calls for using programming strategies that conside
r the
movement of data:



Moving poi nters around i s usual l y better than moving the actual data. Note how
the scheduler/worker model illustrated in Figure 10 uses a central storage service
and passes tokens between appli cation components rather than the actual data.



Pointers should be treated as a capability, with care taken to ensure that they are
diffi cult to forge.



Tools such as representational state transfer (REST) or Simple Object Acce
ss
Protocol (SOAP) help to reduce application state while managing the transfer of
state data.

Compliance and data physics

Maintai ning compl i ance wi th governmental regulations and i ndustry requirements
adds another layer of considerations to the management

of data. A cloud architect
needs to be able to specify both topological and geographical constraints on data
storage. A cl oud provi der shoul d make i t easy to speci fy the rel ati onship between
data and the virtual machines that process it, and al so where th
e data i s stored
physically:



Companies handling personal data may be required to adhere to governmental
regulations regarding the handling of the data. For example, those doing business
in the European Union may violate local laws if they store their d
ata in the United
States because of the difference in how the law protects their data. In cases li ke
thi s, cl oud provi ders should provi de the capabil i ty to speci fy constrai nts on how
and where data can be moved.



Companies subject to industry standards, suc
h as those imposed by credit card
processi ng authori ti es, may face restri cti ons on where data i s stored and how
and when it is destroyed. In cases like this, freed disk blocks cannot be allowed to
be incorporated into another customer’s block of storage. T
hey must be securely
erased before reuse.

When choosi ng a cl oud provi der for data storage, consi der not j ust whether the
provider is trustworthy. Consider whether the cloud provider is certified according to
standards appropriate for the appl i cation.



29

Introducti on to Cl oud Computi ng Archi tecture

Sun Mi crosystems, Inc.

Security and data physics

Data i s often the most val uabl e of a company’ s assets, and i t must be protected
with as much vigi lance than any other asset. It is easy to argue that more vigi lance
i s needed to protect data because of how an i ntruder can potenti al l y reach a
company’ s data

from anywhere on the Internet. Some steps to take include:



Encrypt data at rest so that if any intruder is able to penetrate a cloud provider’s
security, or if a configuration error makes that data accessible to unauthorized
parti es, that the data can
not be i nterpreted.



Encrypt data in transit. Assume that the data will pass over public infrastructure
and coul d be observed by any party in between.



Require strong authentication between application components so that data is
transmi tted onl y to known par
ti es.



Pay attenti on to cryptography and how algorithms are cracked and are repl aced
by new ones over time. For example, now that MD5 has been proven vulnerable to
attack, use a stronger technique such as SHA
-
256.



Manage who has access to the appli cation and how:



Consi der using strong, token
-
based authenti cation for admi ni strator rol es.



For customer login/password access, consider who manages the authentication

server and whether it i s under the company or the cl oud provider’ s control.



For anonymous access to storage, for exampl e anonymous FTP, consi der
whether a customer would have to register with the cloud provider for access or
whether the cl oud provider coul
d federate with the company’ s authenticati on
server.

Network security practices

Good security practi ces permeate every aspect of system desi gn, i mplementati on,
and depl oyment. Appl i cat i ons must be secure by desi gn, wi t h i nt erf aces t hat
present onl y t he app
ropri at e data to authori zed users. Duri ng i mpl ement at i on,
developers must take care to avoid coding practi ces that could result in vulnerability
to techniques such as buffer overflow or SQL injection. When deployed, operating
systems shoul d be hardened and

every l ayer of software kept up to date wi th the
most recent securi ty patches.

In cloud computing, appli cati ons are deployed in a shared network environment, and
very strai ghtforward security techniques such as VLANs and port filtering are used

to segment

and protect various layers of an application deployment architecture as
well as isolating customers from each other. Some approaches to network security
incl ude:



30

Introducti on to Cl oud Computi ng Archi tecture

Sun Mi crosystem
s, Inc.





Use secur i t y domai ns t o gr oup vi rt ual machi nes together, and t hen contr ol
access to the domain through the cloud provider’
s port filtering capabilities. For
example, create a security domain for front
-
end Web servers, open only the HTTP
or HTTPS ports to the outside world, and filter traffic from the Web server security
domain to the one containing back
-
end databases (Figure
11).

TO INTERNET

TO DATABASE
TIER


For more information on ISCs, please vi si t:

ht t p://wi ki s.sun.com/di spl ay/I SC/Home/

Figure 11. Cloud providers should offer mechanisms, such as securit
y domains, to
secure a group of virtual machi nes and control traffi c flow i n and out of the group.



Control traffic using the cloud provider’s port
-
based fi ltering, or utili ze more
stateful packet filtering by interposing content switches or firewall appliances
where appropriate. For even more fine
-
grained control over traffic, the concept
of Immutable Service Containers (ISCs) allow multiple layers of software to be
depl oyed i n a si
ngl e vi r t ual machi ne, wi t h pr e
-
pl umbed net wor ki ng t hat i s kept
i nt ernal t o t he vi rt ual machi ne. Thi s t echnol ogy uses Sol ari sTM Zones t o support
mul t i pl e secur e vi r t ual envi r onment s on a shar ed OS pl at f or m, and i s avai l abl e
wi t h bot h t he Sol ar i s and OpenSol
ar i s Oper at i ng Syst ems.

SECURITY
DOMAIN

SSH/22

HTTP/80

WEB SERVER

WEB SERVER

WEB SERVER

APACHE

APACHE

APACHE

HTTP/80



31

Introducti on to Cl oud Computi ng Archi tecture

Sun Mi crosystems, Inc.

Chapter 4

Sun and Cloud Computing

For more than a decade, Sun has been advancing the state of the art of large
-
scale
comput i ng i nfrastructure t hat has f ormed the foundat i on of cl oud comput i ng.
Begi nni ng i n t he 1990s, Sun has been a l eader i n hel pi ng servi ce provi ders
i mpl ement t hei r l arge
-
scal e networks so t hat they can serve up to mi l l i ons of
customers. Large numbers of Sun servers are empl oyed by fi nanci al i nsti tuti ons
and stock exchanges to handl e tasks rangi ng from handl i ng transacti ons to real
-
ti me fraud detection. Sun has been a leade
r i n high
-
performance computing by

developing rack
-
at
-
a
-
time deployment models, automatic provisioning from the bare
metal to the appl i cat i on, and l arge scal e vi rtual networki ng wi th one petabi t per
second throughput. Indeed, Sun pioneered the cloud’ s pred
ecessor, grid computing,
by sel l i ng physi cal server t i me by t he hour and hel pi ng cust omers i mpl ement
internal gri ds to support their own operati ons.

Just as much as these large
-
scale computing capabilities help Sun develop
cloud computi ng solutions, they a
re done in the context of advancing the

systemic qualities that these solutions require: scalability, availability, reliability,
manageabi lity, and security.

Innovations from the Sun community

Sun has developed foundational technologies for cloud computing

and has been a
central pl ayer in the community development processes they have promoted. Whi le
Sun has long maintai ned the Solaris Operati ng System’s industry leadership, it has
al so spawned a correspondi ng open source movement around the OpenSol ari s
Oper
ating System. The MySQL database is the Web application database of choice,
and the Java programming language powers Web sites and enterprise datacenters
worldwide. The community
-
based, open source GlassFi sh appli cation server provides
a Java software exec
uti on contai ner that has been extended t o support Ruby
appl i cati ons and the Drupal content management system. OpenSol ari s Proj ect
Crossbow has helped to expand the multi
-
tenancy support i n Sun xVM hypervisor.

Beneat h t he ri ch, communi t y
-
support ed Software
that Sun hel ps to fost er comes
the powerful server, storage, and networking products that make them perform


including standard, scalable x86
-
architecture servers, Sun’s UltraSPARC® processor
-
powered server product l i ne, and servers that i ncorporate Sun’
s energy
-
effi ci ent,
chip
-
multithreaded (CMT) UltraSPARC T1, T2, and T2 Plus processors. Sun’s CMT
processors process high
-
throughput workloads so effi ciently that they are harnessed
i n cont ent l oad bal anci ng and appl i cat i on del i very product s such as t he Ze
us
Extensi bl e Traffi c Manager. Sun’ s Open Storage products combi ne open source
software wi th industry
-
standard hardware to help reduce rel iance on hi gh
-
pri ced,



32

Introducti on to Cl oud Computi ng Archi tecture

Sun Mi cr
osystems, Inc.

purpose
-
built systems. Indeed, Sun’s ground
-
breaking Sun Fire X4500 Server helped
the i ndustry see the benefi ts of combi ni ng server and storage technol og
y i n the
same system. Sun deli vers virtual networki ng for large
-
scale computi ng through
Infi niBand to massive
-
scal e compute grids with the Sun Datacenter Swi tch 3456,
scaling up to 13,834 nodes.

Community and open standards

Worki ng wi t h a communi t y br eeds open standar ds
-
based product s and hel ps to
provide investment protection. In an
emerging and rapidly changing market such as
cloud computing, it’s easy to create appli cations that are locked in to one vendor’s
cloud because of the use of proprietary APIs and formats. Using open standards and
open source software i s the best i nsurance
that the appl i cati ons you create today
will still be useful tomorrow and will give you the needed flexibility to change cloud
providers.

The open source communities with which Sun is involved develop to open

standards
where they exist, and establish new open standards as new products are developed.
Open source, open standards, and open APIs lead to appli cations that have more
portabi l i t y and l ongevi t y. Sun’ s credent i al s i n t he open source communi t y are
impecc
abl e, with proj ects i ncl uding the: OpenSol ari s OS, Li nux OS, StarOffi ceTM
software, NetBeansTM platform application framework, OpenSPARCTM technology, Java
programming language, Sun xVM hypervisor, Sun xVM VirtualBox, Sun Open Storage
Solutions, MySQL data
base management system, and the Solaris ZFSTM File System.

The importance of choice

Sun’s hardware and software product li ne i s synonymous wi th choi ce. Sun offers
the choice of servers based on the x86 architecture, that are powered by powerful
SPARC® and
UltraSPARC processors, and those with CoolThreadsTM technology. Sun
offers all of these choices in form factors including rack
-
mount and blade systems,

allowing customers a range of densities and I/O capacities to choose from. Sun offers
virtual i zation sol
uti ons for every one of i ts server products, i ncludi ng support on i ts
x86
-
archi tecture servers for Sun xVM hypervi sor, VMware vSphere, and Mi crosoft
Hyper
-
V. And of course your choi ce of operating system, i ncluding the Sol aris OS,
Linux, and Mi crosoft Wind
ows.

Choosing a cloud computing provider

Sun i nnovat i ons are t he f oundat i onal t echnol ogi es for cl oud comput i ng
environments that are open, standards
-
based, and are the fruit of

a community
effort. Joining the Sun cloud computing community means having the choice of
server, storage, and networking technol ogi es that work at maxi mum scal e. It
means using software stacks, APIs, and standards that aren’t owned by a cloud

Learn about how the community is

defining
the Sun cloud APIs by visiting
http://kenai.
com/proj ect s/suncl oudapi s/



33

Introducti on to Cl oud Computi ng Archi tecture

Sun Mi crosystems, Inc.

provider, they’
re owned by the companies that build their cloud applications to have
lasting value. Sun offers choice

not just in using the right hardware and software
component s t o get t he j ob done

but i n l ever agi ng cl oud comput i ng f or t he
greatest benefit.

Those joining the Sun

community for cloud computing have a range of options. Sun
can help organizations build their own private, local clouds as a way to transition
ent er pr i se dat acent er s t owar d t hi s new comput i ng model whi l e r et ai ni ng t he
utmost control over business
-
critical

data. Sun can help companies build their own
private, non
-
local cl ouds as a way to leverage the low cost of new large, energy
-
efficient colocation faci lities such as Switch Communi cati ons’ SuperNAP facil ity in
Las Vegas, Nevada. Sun can help those wishing

to become cloud providers with the
hardware, software, and management capabi l ities that are required. And, starti ng
now, organizations everywhere can augment their pri vate cl ouds with Sun’ s public
cl oud offeri ng

ei ther by col l ocati ng wi th Sun at the Supe
rNAP si te and enj oyi ng
the benefits of high
-
speed, local infrastructure, or by using Sun’s services over

t he I nt er net. Whet her you ar e l ooki ng t o cl oud comput i ng f or devel opment and
testi ng, experi menti ng wi th hosti ng appl i cati ons i n the cl oud, offl oadi ng
speci fi c
functions, or using the cloud for surge computing, Sun is in a unique position to help
enterpri ses bui ld and use cl oud computing.

Acknowledgments

This paper was made possible through the efforts of Jason Carolan and Steve Gaede.
Additional contributors include James Baty, Glenn Brunette, Art Licht, Jim Remmell,
Lew Tucker, and Joel Weise. Thanks also to Benoit Chaffanjon, David Douglas, Mikael
Lofstrand, Ken Pepple, Scott Mattoon, and John Stanford for their review comments.

Learn abou
t how Sun can help build your
cl oud at
ht t p://www.sun.com/cl oud/.

34

Introducti on to Cl oud Computi ng Archi tecture

Sun Mi crosystems, Inc.


Thi s page i ntentional l y l eft bl ank.

35

Introducti on to Cl oud Computi ng Archi tecture

Sun Mi crosystems, Inc.


Thi s pa
ge i ntentional l y l eft bl ank.



Introducti on to Cl oud Computi ng Archi tecture

Sun Mi crosystems, Inc.


Sun Mi cr osyst ems, I nc. 4150 Net wor k Ci r cl e, Sant a Cl ar a, CA 95054 USA Phone 1
-
650
-
960
-
1 3 0 0 o r 1
-
8 0 0
-
5 5 5
-
9 S UN ( 9 7 8 6 ) We b
s u n.c o m



© 2 0 0 9 S u n Mi c r o s y s t e ms, I n c. A l l r i g h t s r e s e r v e d. S u n, S u n Mi c r o s y s t e ms, t h e S u n l o g o, Co o l T h r e a d s, Gl a s s F i s h, J a v a, My S QL,
Ne t B e a n s, Op e n S o l a r i s, S o l a r i s, S t a r Of f i c e, S u n T o n e, Z F S, a n d “ T h e N e t w o r k i s t h e Co m
-
p u t e r ”
a r e t r a d e ma r k s o r r e g i s t e r e d t r a d e ma r k s o f S u n Mi c r o s y s t e ms, I n c. o r i t s s u b s i d i a r i e s i n t h e Un i t e d S t a t e s a n d o t h e r c o u n t r i e
s. A l l S P A R C t r a d e ma r k s a r e u s e d u n d e r l i c e n s e a n d a r e t r a d e ma r k s o r r e g i s t e r e d
t r a d e ma r k s o f S P A R C I n t e r n a t i o n a l, I n c. i n t h e US
a n d o t h e r c o u n t r i e s. P r o d u c t s b e a r i n g S P A R C t r a d e ma r k s a r e b a s e d u p o n a n a r c h i t e c t u r e d e v e l o p e d b y S u n Mi c r o s y s t e ms, I n c. U N I
X i s a r e g i s t e r e d t r a d e ma r k i n t h e
U.S. a n d i n o t h e r c o u n t r i e s, e x c l u s i v e l y l i c e n s e d t h r o u g h X/O p e n C o m p a n y, L t d. I n f o r m a t i o n s u b j e
c t t o c h a n g e w i t h o u t n o t i c e. S u n W I N #5 6 4 1 6 2 L i t. #G N W P 1 4 9 4 7
-
0 0 6/0 9