Cloud Computing Architecture - University of Arkansascwt/COURSES/2014-01--CSCE-4543...As we will...

14
SOFTWARE ARCHITECTURES Chapter 7 Cloud Computing Architecture and Various Deployment Methods and Implementation JD Pack Abstract The term “cloud computing” has been around for many years – it’s roots go back even before using the Internet became a daily phenomenon for businesses and consumers. The underlying concept of cloud computing relates to the idea of sharable resources, such as computation time and memory usage. If computing resources were to be shared within large entities such as the banking, technology industries, and even federal agencies, the cost-savings and efficiency measures would be largely noticeable. In this paper, the various models of cloud technologies will be explored, along with their deployment models and their current implementations. Also, the idea of cloud architectures will be a central focus of the paper, detailing the current attempts of building a useful and employable cloud framework and examining what could be done with current cloud models to make them more usable. Issues and vulnerabilities within cloud technologies will also be analyzed. What is Cloud Computing? According to the National Institute of Standards and Technology (NIST), “Cloud Computing is a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources that can be rapidly provisioned and released with minimal management of error or service provider interaction [1].” The term “cloud computingis commonly described as a stack of features or services, in the sense that users of the cloud can access a customized set of services best suited to their needs in a convenient and timely manner. The features of a cloud system are utilized not only by consumers and corporations, but by government agencies as well. NIST defines five essential characteristics that make up a cloud computing architecture: on-demand self-service, broad network access, resource pooling, rapid elasticity, and measured service. On-demand self-service means that a consumer can use the cloud service offered to them without having to interact with the provider of the service. They are only allowed to use certain parts of the cloud service, but that service is scalable, which allows them to provision computing capabilities as they see fit. Another essential part of cloud computing, broad network access, states that a cloud’s capabilities are available through the use of the Internet and are accessed using various types of thick or thin-client platforms (e.g., laptops, mobile devices, workstations, etc.). Next, it is imperative that cloud computing services provide some way to serve all of the clients accessing its features, via resource pooling. Resources that are pooled include storage, computational and graphics processing, memory, and network bandwidth. This is typically performed through the use of both physical and virtual resources that can be dynamically scaled to meet consumer demands. Additionally, the customer using the cloud service need not know that actual physical location of the resources provided, but may be able to specify a location that has been abstracted to fit efficiency and low-latency requirements (such as country, state, or datacenter). Another important component of the cloud computing model is rapid elasticity. As defined by NIST, rapid elasticity means that “capabilities can be elastically provisioned and released, in some cases automatically, to scale rapidly outward and inward

Transcript of Cloud Computing Architecture - University of Arkansascwt/COURSES/2014-01--CSCE-4543...As we will...

Page 1: Cloud Computing Architecture - University of Arkansascwt/COURSES/2014-01--CSCE-4543...As we will see, there are various different models and implementations of cloud architectures,

SOFTWARE ARCHITECTURES

Chapter 7 – Cloud Computing Architecture and Various

Deployment Methods and Implementation

JD Pack

Abstract

The term “cloud computing” has been around for many years – it’s roots go back even

before using the Internet became a daily phenomenon for businesses and consumers. The

underlying concept of cloud computing relates to the idea of sharable resources, such as

computation time and memory usage. If computing resources were to be shared within large

entities such as the banking, technology industries, and even federal agencies, the cost-savings

and efficiency measures would be largely noticeable. In this paper, the various models of cloud

technologies will be explored, along with their deployment models and their current

implementations. Also, the idea of cloud architectures will be a central focus of the paper,

detailing the current attempts of building a useful and employable cloud framework and

examining what could be done with current cloud models to make them more usable. Issues and

vulnerabilities within cloud technologies will also be analyzed.

What is Cloud Computing?

According to the National Institute of Standards and Technology (NIST), “Cloud

Computing is a model for enabling ubiquitous, convenient, on-demand network access to a

shared pool of configurable computing resources that can be rapidly provisioned and released

with minimal management of error or service provider interaction [1].” The term “cloud

computing” is commonly described as a stack of features or services, in the sense that users of

the cloud can access a customized set of services best suited to their needs in a convenient and

timely manner. The features of a cloud system are utilized not only by consumers and

corporations, but by government agencies as well.

NIST defines five essential characteristics that make up a cloud computing architecture:

on-demand self-service, broad network access, resource pooling, rapid elasticity, and measured

service. On-demand self-service means that a consumer can use the cloud service offered to

them without having to interact with the provider of the service. They are only allowed to use

certain parts of the cloud service, but that service is scalable, which allows them to provision

computing capabilities as they see fit. Another essential part of cloud computing, broad network

access, states that a cloud’s capabilities are available through the use of the Internet and are

accessed using various types of thick or thin-client platforms (e.g., laptops, mobile devices,

workstations, etc.). Next, it is imperative that cloud computing services provide some way to

serve all of the clients accessing its features, via resource pooling. Resources that are pooled

include storage, computational and graphics processing, memory, and network bandwidth. This

is typically performed through the use of both physical and virtual resources that can be

dynamically scaled to meet consumer demands. Additionally, the customer using the cloud

service need not know that actual physical location of the resources provided, but may be able to

specify a location that has been abstracted to fit efficiency and low-latency requirements (such as

country, state, or datacenter). Another important component of the cloud computing model is

rapid elasticity. As defined by NIST, rapid elasticity means that “capabilities can be elastically

provisioned and released, in some cases automatically, to scale rapidly outward and inward

Page 2: Cloud Computing Architecture - University of Arkansascwt/COURSES/2014-01--CSCE-4543...As we will see, there are various different models and implementations of cloud architectures,

commensurate with demand.” To the average user of the cloud, it may appear that the service

they are using is unlimited. However, since we know that any type of computing contains a

finite number of resources that are available, this is simply describing how a customer will (in

basic use of the service) never run out of the resources needed due to the scalable property of

cloud architecture. Lastly, cloud architectures are a measured service. This means that cloud

systems can automatically control and optimize resource use by leveraging a metering capability

at some level of abstraction appropriate to the type of service being used. This characteristic

describes the scalable portion of the service, which can be monitored, controlled, and reported to

both the provider and consumer of the service.

As we will see, there are various different models and implementations of cloud

architectures, and these types of architectures that are employed by their providers vary greatly.

Types of Cloud Computing

Types of cloud computing services, also known as “service models,” define the delivery

method that is being employed by the cloud provider. The service model is based on many

different needs from both the user and the capabilities available from the provider. In cloud

architectures, there are three main types of service models: Software as a Service (SaaS),

Platform as a Service (PaaS), and Infrastructure as a Service (IaaS).

Figure 1: Layers of a Cloud Architecture (Google Images)

Software-as-a-Service

Software-as-a-Service gives the user access to the cloud provider’s applications that run

on the cloud infrastructure (NIST). The applications are accessible through various types of

client devices or web interfaces, such as webmail. In this service model, the user does not

manage or control the underlying cloud infrastructure; instead, they are given access to the

applications themselves only (and possibly a limited number of application configuration

settings). This type of service is one the most basic type of service most cloud providers offer.

Page 3: Cloud Computing Architecture - University of Arkansascwt/COURSES/2014-01--CSCE-4543...As we will see, there are various different models and implementations of cloud architectures,

It allows the user to use their products in a cloud atmosphere while keeping application-specific

features and system settings controlled by the vendor.

Figure 2: SaaS Service Model (Google Images)

In recent years, SaaS has become an increasingly popular delivery model to distribute

applications and software to clients due to both the use of asynchronous web development

techniques such as Ajax and the evolution of service-oriented architectures [2]. Additionally,

there are several added benefits with using SaaS over the standard model of software

distribution. For the provider, SaaS systems enable easier administration, automatic software

patching and patch managements, easier collaboration between clients and users, and

accessibility on a global scale. For clients, this means that the software that they are using will

always be updated and compatible between other clients, and clients will not have to manage the

application’s underlying settings. They also have lower initial costs due to low subscription fees,

rather than having to pay licensing fees for the number of copies of the software that they

require.

Platform-as-a-Service

Platform-as-a-Service gives users access to the tools and libraries from the provider,

which allows them to build and run their own applications using the provider’s hosted cloud.

Cloud providers give the user access to use all of the services required to run their applications,

such as networking, servers, storage, and any other services that may be required via the web. A

major benefit of PaaS is that the user can deploy the software to their application users, without

having to maintain their own software and hardware. Generally, cloud users will pay a fee for

the time or amount of the provider’s services that they use, which can be scaled depending on

how much of the service is needed. Additionally, PaaS may provide extra functionality for the

user to keep track of how they are using the service, such as tools for monitoring, workflow

management, discovery, and reservation [3].

Page 4: Cloud Computing Architecture - University of Arkansascwt/COURSES/2014-01--CSCE-4543...As we will see, there are various different models and implementations of cloud architectures,

Figure 3: PaaS Service Model (Google Images)

PaaS is arguably the most desired type of cloud service for clients that are involved in the

technology industry or perform software development. Generally, companies that incorporate a

large amount of their business model developing programs require significant server space and

resources. This, along with keeping development data secure is expensive and difficult to

maintain. With the Platform-Service model, clients can offload the overhead of maintaining the

required development resources to cloud platforms, which provide remote access to the same

tools, storage, and development environments that they would have had to maintain themselves.

The most obvious benefit is that clients will only be paying a monthly fee for access to the cloud

rather than having to spend a large investment in onsite hardware. Along with cost savings

benefits, companies will avoid having to perform technical maintenance, require a lesser amount

of technical support staff, and will gain mobility. Development tools that may be rarely used

could be made available as part of the PaaS package, so clients would be paying for the quality

of the software offered, instead of having to pay for individual licensing.

Platform-as-a-Service can be further subdivided into different types of programming

environments: add-on development facilities, stand-alone and application delivery-only

environments, open platform-as-a-service, and mobile platform-as-a-service. Add-on

development facilities provide additional functionality to existing Software-as-a-Service models.

Examples include Lotus Notes and Microsoft Word, which provide features to employ add-on

development tools. Stand-alone development environments do not contain technical, financial,

or licensing dependencies on individual applications or web services. Instead, stand-alone

environments provide a range of programs as a generalized development environment.

Application delivery-only environments include on-demand scaling and application security, but

usually do not provide development or debugging tools as part of the service. Open platform-as-

a-service is a unique form of PaaS: it provides open-source software to allow a PaaS provider to

execute applications. Typically, open PaaS does not including hosting as such. An example of

this is AppScale, an open PaaS that serves as an API for making calls to Google’s App Engine

on other clouds. Mobile PaaS enables cloud development functionality on mobile devices,

which means employees can use their own devices to access cloud data and tools, mobilizing the

Platform-Service [4].

Infrastructure-as-a-Service

Page 5: Cloud Computing Architecture - University of Arkansascwt/COURSES/2014-01--CSCE-4543...As we will see, there are various different models and implementations of cloud architectures,

Infrastructure-as-a-Service provides the most basic, bare-bones tools for cloud

computing. The user is given access to the cloud’s processing, storage, networking, and other

resources to allow them to run and deploy arbitrary software, such as operating systems and

applications. The consumer cannot control the cloud infrastructure, but is given tools to modify

and configure operating systems, storage, and their deployed applications. Often, the IaaS

services are provided using virtual machines, which are readily configurable and scalable. To

deploy IaaS services, providers use large datacenters that supply on-demand resource pooling,

which can often result in inefficiency for the provider if they don’t have enough consumers

utilizing their services. Similar to PaaS, IaaS services are billed based on the amount of

resources allocated and consumed.

Figure 4: IaaS Service Model (Google Images)

IaaS is also known as cloud infrastructure; in general, the services and resources offered

are part of the same services that form the basis for cloud computing. Take Google’s Cloud

Platform, for example. Google Cloud Platform offers a host of different cloud computing

products for users (including Compute Engine, an IaaS), but these services also are using the

same cloud infrastructure that Google employs to deliver content to end-users, such as YouTube

and Google Drive. With products comparable to Compute Engine, Google is allowing others to

access their cloud computing power, for a price. Similar to PaaS, clients are charged a

subscription access fee. However, additional fees may apply based on resource usage, such as

storage and computing time for virtual machines [5].

Each of the three types of services can be thought of as individual layers, with each

increasing layer further abstracting the different components and services a customer is provide.

For example, with the Infrastructure as a Service model, the user has access to devices such as

virtual machines, servers, storage, and networking utilities. A Platform as a Service user, on the

other hand, would be provided with tools and services such as execution runtime environments,

webservers, and development tools. The services provided from an IaaS are entirely different

than what might be provided with a PaaS, even though the provider may be offering these two

different models using the same system.

Other Types of Services

Page 6: Cloud Computing Architecture - University of Arkansascwt/COURSES/2014-01--CSCE-4543...As we will see, there are various different models and implementations of cloud architectures,

In addition to the three main services mentioned above, other nomenclatures of cloud

services are being introduced as cloud computing becomes more prevalent, even though they are

not yet officially recognized by NIST or may simply be a more specific niche of an existing

service. A new type of service that has been created is known as Security-as-a-Service

(SECaaS). SECaaS is a business model where a cloud provider offers security services to a

client without requiring on-premises hardware. Some examples of these service providers are

Symantec and Verisign. SECaaS is considered to be a branch from the SaaS type of cloud

service [6].

Deployment Models

Depending on the type of features in the cloud, there are various different ways of

deploying the cloud to its respective clients. The four main different types of cloud computing

deployment models are private clouds, community clouds, public clouds, and hybrid clouds.

Each has their own benefits and downsides. They can depend on the geographic location of

where the cloud services are hosted, the desire to share cloud services, the ability to manage

services, customization capabilities, and any security requirements. Typically, an agency or

another organization will “feature” the cloud to clients, even though the cloud is still the property

of whatever service provider produced it.

Figure 5: Cloud Deployment Models (Google Images)

Private Cloud

A private cloud is technically similar to the public cloud; however, there are additional

security measures implemented that only allow a single, specific organization to access the

cloud. In a private cloud, the provider dedicates cloud services to a single client. One of the

common reasons why agencies provide private clouds is for enforceable security standards and

protocols. Unlike public clouds, where agents must accept reduced control and monitoring since

resources are shared, private clouds are controlled entirely by the organization. When

implemented correctly, private clouds can improve the organization, but can be at a high risk for

vulnerabilities. Because of the nature of the private cloud, they are usually implemented using

self-run, or virtualized, data centers. However, this can be a major disadvantage, since self-run

Page 7: Cloud Computing Architecture - University of Arkansascwt/COURSES/2014-01--CSCE-4543...As we will see, there are various different models and implementations of cloud architectures,

data centers are more expensive, must be periodically refreshed and updated, and require a

significant amount of hardware [7].

Private cloud management requires virtualization pooling of computing resources and a

self-service portal for the client to maintain its infrastructure, which is performed using

sophisticated management tools. These management tools are usually service-driven, rather than

resource-driven, since cloud private clouds rely heavily on virtualization and are organized as

portable workloads [8].

Public Cloud

A public cloud infrastructure is a cloud that is open to the general public (e.g. public use)

and owned by as third party service cloud provider (CSP). With a public cloud, the CSP shares

its resources with other organizations and agencies through the Internet. Sometimes, this can be

the most effective deployment model; it gives providers and organizations the ability to produce

only the computing resources needed and to deliver all services with continual availability,

manageability, resiliency, and security. Many agencies build their own infrastructure by

aggregating infrastructures from other providers. Some examples of providers who utilize the

public cloud deployment model include Google, Amazon (AWS), and Microsoft.

Public clouds are managed by public CSPs, and the clients can select from three basic

categories: user self-provisioning, advance provisioning, and dynamic provisioning. With user

self-provisioning, clients buy cloud computing services directly from the CSP itself and pay per

transaction. In advanced provisioning, customers contact providers in advance for a

predetermined amount of computing resource needs. They usually either pay a one-time or

subscription fee. Lastly, dynamic provisioning allows clients to use only the resources they

require, and decommissions them afterwards when they are not needed. Clients are charged a

pay-per-use fee [9].

Community Cloud

NIST defines a community cloud as a cloud infrastructure that is “provisioned for

exclusive use by a specific community of consumers from organizations that have shared

concerns.” [1]. As a sort of in-between amid private and public clouds, community clouds are

offered to groups of clients, which may be managed and hosted by either a CSP or internally.

These types of clouds spread out costs among its clients, making the community cloud an

efficient and cost-saving strategy for agencies that share needs or services. Community clouds

are well-established among federal agencies, since federal organizations frequently share

knowledge or interests [10].

Hybrid Cloud

A hybrid cloud is a combination of private, public, or community clouds that remain

unique entities, but are bound together by standardized or proprietary technology that enables

data and application portability [1]. With hybrid cloud, agencies that have unique requirements

can benefit from overlapping cloud services. For example, an agency that stores private

information about customers may wish to store the data on a private cloud, but also might have

to connect their data to a billing SaaS contained on a public cloud. Another feature of hybrid

cloud is cloud bursting, where an application runs on a private cloud as a small project, but

“bursts” to a public cloud whenever the demand for computing capacity and resources increases

Page 8: Cloud Computing Architecture - University of Arkansascwt/COURSES/2014-01--CSCE-4543...As we will see, there are various different models and implementations of cloud architectures,

[11]. This allows companies to cut down on operating costs, since they would only be paying for

extra resources when needed.

Hybrid cloud management systems must be able to track and manage services across

different types of cloud deployment models and domains. The best method for designing an

effective management system starts with outlining the services that require management and the

means by which they will be managed. These systems also should contain effective policies that

include image configuration and installation, access control (by a means of an efficient sign-in

strategy such as Single sign-on), and financial and reporting management [12].

Cloud System Architecture

The systems architecture of the software systems involved with cloud service delivery,

known as cloud architecture, includes the using of communication devices such as messaging

queues that facilitate communication between several cloud components. One such architecture

system is known as the Intercloud, which is an interconnected global “cloud of clouds,” that

serves as an extension of the “network of networks” method that clouds are based upon [13]. As

clouds become more of a standard within homes and businesses, Interclouds will serve as the

next step of cloud computing where services, resources, and computational ability will be shared

between the infrastructures of other clouds. The idea could be thought of as a “network of

clouds,” with clouds exchanging data or other resources through the use of common protocols or

interfaces. While the Intercloud is still in its conceptual and theoretical stages, realized forms of

cloud system architectures would allow more communication strategies currently offered

between cloud service providers and could also introduce new business opportunities between

them.

Implementations of Cloud Computing

Google App Engine

Figure 6: Overview of Google App Engine (Google Images)

Google App Engine (GAE) is a Platform-as-a-Service cloud model that was launched by

Google on April 7, 2008. GAE allows software developers to run web applications in a sandbox

Page 9: Cloud Computing Architecture - University of Arkansascwt/COURSES/2014-01--CSCE-4543...As we will see, there are various different models and implementations of cloud architectures,

across multiple servers. GAE is also highly scalable; as the amount of requests increase for an

application, App Engine automatically allocated additional resources to handle increased

demand.

Google App Engine is priced on a pay-per-use scale; total fees are incurred based on the

amount of resources used. The system is free up to a specific amount of resources, and fees are

measured in bytes and/or instance hours. Currently, GAE supports Python, Java, Go, and PHP.

Go and PHP are currently experimental and not fully featured. The App Engine features include

a 99.95% uptime service level agreement, bulk downloading, and additional assistance from

Google engineers for Premier Accounts [14].

Amazon Elastic Compute Cloud (EC2)

A comparable service to the GAE is Amazon EC2 (Elastic Compute Cloud), which

provides a similar infrastructure for scalable application deployment. App Engine is fairly

simple to use to create highly scalable applications, but lacks portability and can only run a

limited number of apps that are designed for the GAE infrastructure. It also automatically

handles deploying code, which keeps developers from having to worry about system

administration. Also, the current APIs only allow storage and retrieval from non-relational

databases, which means that many web applications that use relational databases will require

modification to run. It also uses a SQL-like language, GQL, to store data. However, it doesn’t

support JOIN statements due to inefficiency from spanning the tables across more than one

machine [15].

Figure 7: Example of an Amazon EC2 Connection (Google Images)

Amazon EC2 is another PaaS model which was released in 2006 where developers run

their own software and applications using a virtual machine known as an instance. The user can

initialize, execute, and terminate any instances as needed, hence “elastic.” While their cloud

infrastructure spans the globe, users can select a geographical area nearby to reduce latency and

redundancy [16]. Amazon EC2 also provides a type of storage service, Elastic Block Store

(EBS), which provides raw block devices that users can mount, format, and store data to. EC2

Page 10: Cloud Computing Architecture - University of Arkansascwt/COURSES/2014-01--CSCE-4543...As we will see, there are various different models and implementations of cloud architectures,

instances function as virtual private servers, each instance running its own operating system so

customers can have access to their entire instance at a superuser level.

AWS pricing model is not as straight-forward as some cloud service providers; Amazon

charges a certain fee based on the size of the instance being ran. Additional fees are tacked on

based on CPU usage, memory instances for compute clusters, and outbound data transfer rates

starting at the gigabyte level.

Google Compute Engine (GCE)

Figure 8: Example of GCE using Hadoop (Google Images)

Another type of cloud model, Google Compute Engine, is an Infrastructure-as-a-Service

cloud model that serves as a scalable VM for clients. The GCE infrastructure is part of Google’s

global cloud infrastructure that runs Google’s search engine, Gmail, YouTube, and several of

their other cloud services. Measured service is performed with a Google Compute Engine Unit

(GCEU). GCEU is an abstraction of computing resources; according to Google, 2.75 GCEUs

represent the minimum power of one logical core on a Sandy Bridge processor [17].

GCE usage is billed based on time, with the minimum charge being 10 minutes, and

charges accumulate every minute of usage. The rate at which it is billed is based upon the

machine type; Google uses several different types of machines that can handle various workloads

for different virtual computation needs.

Page 11: Cloud Computing Architecture - University of Arkansascwt/COURSES/2014-01--CSCE-4543...As we will see, there are various different models and implementations of cloud architectures,

Figure 9: VM Pricing model for GCE (Wikipedia)

Instances of resources are subdivided into several different categories based on the

resource type, such as image, disk, and network. Additionally, these resources are accessible

from different scopes: global, regional, or zonal. Based on where the user is running a virtual

machine, the scope of the resource determines what resources they will be able to access. For

example, a zone is an isolated location within a region (geographic location, e.g. central US or

Western Europe) that have high bandwidth and low latency. The zonal resources such as

instance, machine type, and disk will be specific to that zone. An address resource is only

available to certain regions, which means it is only accessible to the instances that are launched

in that region.

Microsoft Azure

Microsoft Azure is a cloud service hosted by Microsoft that serves both PaaS and IaaS. It

provides the standard functions of deploying applications and software using scalable cloud

computing along with virtual machines and computational computing associated with cloud

infrastructure. The features of Microsoft Azure include: website development using web

languages such as Node.js and PHP, virtual machines that run both Windows Server and Linux,

PaaS cloud services, SQL Database for scaling applications, and media services [18]. Azure

uses a specialized operating system to run its datacenters and manage computing resources to

applications that run on top of it. It also implements a Microsoft-owned hypervisor to manage its

VMs.

Page 12: Cloud Computing Architecture - University of Arkansascwt/COURSES/2014-01--CSCE-4543...As we will see, there are various different models and implementations of cloud architectures,

Figure 10: Azure Cloud Architecture (Google Images)

Microsoft Azure service pricing methods range from computational and data services to

application services and networking. General purpose instances are priced per hour, with

memory intensive instances incurring additional charges. Pricing for bandwidth and data storage

is very similar to other providers, with data prices increasing for each additional gigabyte and

pay-per-hour fees for virtual networks. Some Azure services also provide support and service

license agreements, such as Virtual Network.

Issues

Because cloud computing has become more and more popular, the recognition has also

shown some of the issues and vulnerabilities associated with cloud computing. One of the

largest issues in a cloud is security and privacy. Since cloud networks are entirely web-based

services, they are almost always vulnerable to cyber-attacks. Some providers have experienced

cyber-attacks on their cloud services first-hand, such as when Amazon was hit by an

unsuccessful attack on their cloud services [19]. However, most cloud systems have shown to be

very reliant against attacks and hacking attempts – an abundant amount of resources allows

clouds to keep performing even if a datacenter or group of datacenters is taken down. Still,

clouds are seen as information honeypots for cyber criminals, whose intents are to steal data and

make money off it by selling to other criminal organizations. Many banking companies use

cloud services as well, which means it is vital to keep cloud computing infrastructures and secure

as possible, while allowing developers and clients to perform their everyday IT functions.

Another issue that faces cloud developers is cloud compatibility. As described earlier,

cloud computing can be one of the most cost-effective and efficient option for companies and

organizations. However, many of their IT systems must be recreated from the ground up to be

compatible with the cloud. One way that developers can avoid this issue is by utilizing hybrid

cloud deployment models, so that they can instead segregate different components of their IT

infrastructure to different cloud models.

Yet another issue is the fact that a standardized method for developing cloud architecture

does not currently exist. Intercloud is still in its early infancy, and in order to be useful, service

providers will need to subscribe to the model by providing users a set quality of services.

Page 13: Cloud Computing Architecture - University of Arkansascwt/COURSES/2014-01--CSCE-4543...As we will see, there are various different models and implementations of cloud architectures,

Because cloud computing standards are immature, it’s very difficult for a client to be able to

recognize the quality of the services that they are receiving. A fallback for the client is to ensure

that the provider that they are purchasing the service from uses technology that complies to NIST

standards and uses cloud models that conform to the NIST definition of cloud computing [20].

Conclusion

To summarize, cloud computing offers a new set of services and technologies that had

never been available before the early 21st century, through the use of the World Wide Web.

Only recently in the past few years have service providers and standards organizations began to

start thinking about the importance of standardizing cloud computing technologies. In order for

cloud services to be beneficial for not only today’s companies and organizations, but for future

ones as well, cloud service providers will need to work together to create a cloud framework that

encourages interconnection and stability. Clients should be able to choose services that are

suited to their needs, whether it be infrastructure, platform, or software-oriented. Additionally,

the deployment models for these cloud services should match a standardized set of methods

introduced by standards organizations such as NIST so that clients can know everything about

the cloud service they will be using. In comparing the different implementations of current cloud

models, it’s clear there is no “one size fits all” cloud – there are many different advantages and

disadvantages associated with each different type of cloud service. The company that makes the

most constructive use of cloud resources is the one who compares different cloud models against

the types of services that they need and is flexible enough to branch different compartments of

their IT infrastructure into separate, but interconnected cloud services. Lastly, while clouds are

mostly resilient towards cyber-security attacks, service downtime, and compatibility issues, it’s

important that these and any other issues be addressed so that the cloud model can continue to be

updated. An updated and efficient cloud means that both clients and providers will be able to

take full advantage of a cloud computing system.

References

[1] Mell, Grance, “The NIST Definition of Cloud Computing,” Internet:

http://csrc.nist.gov/publications/nistpubs/800-145/SP800-145.pdf, 2011.

[2] “Ajax Asynchronous JavaScript and XML,” Internet:

http://searchwindevelopment.techtarget.com/definition/Ajax, 2007.

[3] “Platform as a Service,” Internet: http://en.wikipedia.org/wiki/Platform_as_a_service,

2013.

[4] “About MobiDM,” Internet: http://www.mobidm.com/about-mobidm/mobile-platform-as-

a-service-mpaas/, 2014.

[5] “Compute Engine,” Internet: https://cloud.google.com/products/compute-engine/, 2014.

[6] “Security as a Service (SaaS),” Internet:

http://searchsecurity.techtarget.com/definition/Security-as-a-Service, 2010.

[7] “Is a Private Cloud Really More Secure?,” Internet: http://cloudandcompute.com/private-

cloud/private-cloud-more-secure/, 2014.

Page 14: Cloud Computing Architecture - University of Arkansascwt/COURSES/2014-01--CSCE-4543...As we will see, there are various different models and implementations of cloud architectures,

[8] “A Guide to Managing Private Clouds,” Internet:

http://www.datacenterknowledge.com/archives/2010/04/19/a-guide-to-managing-private-

clouds/, 2010.

[9] “Elastic Application Container: A Lightweight Approach for Cloud Resource

Provisioning,” Internet: http://www.datacenterknowledge.com/archives/2010/04/19/a-

guide-to-managing-private-clouds/, 2012.

[10] “Federal IT Shared Services Strategy,” Internet: http://cloud.cio.gov/document/federal-it-

shared-services-strategy, 2012.

[11] “Cloud Bursting,” Internet: http://searchcloudcomputing.techtarget.com/definition/cloud-

bursting, 2014.

[12] “Hybrid Management Tools and Strategies,” Internet:

http://searchcloudcomputing.techtarget.com/tip/Hybrid-cloud-management-tools-and-

strategies, 2012.

[13] “Vint Cerf: Despite Its Age the Internet is Still Filled with Problems,” Internet:

http://readwrite.com/2009/02/15/vint_cerf_despite_its_age_the#awesm=~oCR0Eb6P1drO

cg, 2009

[14] “Google App Engine: Platform as a Service,” Internet:

https://developers.google.com/appengine/, 2014.

[15] “Campfire One: Introducing Google App Engine (pt. 3),” Internet:

https://www.youtube.com/watch?v=oG6Ac7d-Nx8, 2008.

[16] “Amazon Web Services adds ‘Resiliency’ to EC2 Compute Service.,” Internet:

http://www.cnet.com/news/amazon-web-services-adds-resiliency-to-ec2-compute-

service/, 2008.

[17] “Google Compute Engine: Virtual Machines at Google Scale,” Internet:

https://developers.google.com/compute/, 2014.

[18] “The Cloud for Modern Business,” Internet: http://azure.microsoft.com/en-us/, 2014.

[19] “WikiLeaks cables: Shell, Operation Payback and Assange for the Nobel Prize – as it

Happened,” Internet: http://www.theguardian.com/news/blog/2010/dec/09/wikileaks-us-

embassy-cables-live-updates, 2014.

[20] “The Risks Involved in Cloud Computing,” Internet:

http://mobiledevices.about.com/od/additionalresources/tp/The-Risks-Involved-In-Cloud-

Computing.htm, 2011.