This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.
Today's computational world has become very large and complex. Cloud Computing has evolved as a popular computing model to support huge volumetric data using clusters of commodity computers. It generally refers to both the application delivered as services over the Internet and the hardware and systems software in the datacenters that provide those services . This paper presents a wide-ranging taxonomy for describing the cloud computing architecture. Using taxonomies, we can survey several existing cloud computing services developed by various projects and also can identify similarities and differences in the architectural approaches of cloud computing.
Taxonomy of Cloud Computing:
The taxonomy describes the fundamentals that provide a framework to value the current cloud computing offerings. The main idea behind this taxonomy is to find out the technical strength, weakness and challenges in current cloud systems. The criterion for defining taxonomy is on the core technical elements like cloud architecture, virtualization management services, fault tolerance, load-balancing issues, interoperability issues and scalable data storage mechanism.
Cloud architecture is the design of software applications that uses internet-accessible on-demand service. It is based on an infrastructure which is used only when it is needed to perform a specific job, then releases the unnecessary resources and often disposes them after the job is completed. Cloud architecture also addresses the key difficulties surrounding large-scale data processing. Cloud mode can be classified as three types
1) Private Cloud: Internal datacenters of a business that are not made available to the public.
2) Public Cloud: A cloud is made available in a pay-as-you manner to the public whereby the resources are dynamically provisioned on a fine-grained, self-service basis over the Internet from an off-site third party provider who shares resources.
3) Hybrid Cloud: The environment consisting of multiple internal and/or external providers.
It refers to the abstraction of logical resources away from their underlying physical resources in order to improve agility, flexibility, reduce costs and thus enhance business value. Basically, virtualizations in cloud are different types such as server virtualization, storage virtualization and network virtualization. Server virtualization is defined as a mapping of single physical resources to various logical representations or partitions. Virtualization is well suited for dynamic cloud infrastructure as it provides isolation, sharing and manageability.
There are different types of cloud services such as infrastructure, platform, and application.
Software as a Service is a multi-tenant platform and generally referred as Application Service Provider (ASP) model . It consumes common resources and a single instance of an application as well as underlying database tools to support multiple consumers.
Platform as a Service provides developers with a platform including all the systems and environments involved in software life cycle such as development, testing, deployment and hosting of sophisticated web applications as a service.
Hardware as a Service provides IT hardware or even an entire data center as a pay-as-you-go subscription service to the enterprise users.
Infrastructure as a Service is the delivery of computer infrastructure as a service. The advantages are usage-based payment scheme and usage of latest technology.
Figure 1.Cloud Layered Architecture
A backup instance of application ready to take over during failures without disruption is called failover. The major problem for cloud computing is how to minimize such kind of outage/failover to provide the reliable services.
Some of the important security aspects of cloud-centric computing are secure cloud resource virtualization, security for cloud programming models and infrastructure.
Load Balancing is often used to implement failover. In cloud-based platforms, the components are monitored continually and when one goes down or non-responsive, the load balancer is notified and it prevents traffic to it.
Interoperability is usually allowing applications to be ported between clouds, or using multiple cloud infrastructures before any vital business applications are delivered from the cloud.
Scalable Data Storage
Cloud storage offers client to "send" data to the client without being concerned over how the data is stored . The main issues related to cloud storage was reliability and security. Horizontal scalability is achieved through load balancing and application delivery solutions. Vertical scalability is related to resources and applications that fail to vertically scale may end up costing more when deployed in the cloud because of additional demand on compute resources required as demand increases.
Amazon EC2 and Open Source Cloud Projects:
In this section, we review 3 cloud computing projects namely Amazon EC2, Eucalyptus, and Nimbus and discuss them in the context of taxonomy developed earlier. Their characteristics are summarized in Table 1.
Amazon's Elastic Compute Cloud (EC2)Â
Amazon EC2 is the very famous among the cloud computing service offerings. It offers broad support for narrow- or wide-ranging deployment of applications. Pricing is pay-as-you-go for the ability to host Amazon Machine Images (AMI), which consist of an application and their associated runtime libraries
Any programming language can be used for application development, and deployment is supported on x86 platforms running Linux, Solaris and, for an extra charge, Windows. The AMI can make development easy by mirroring the development/test system. EC2 applications can use other Amazon Web Services (AWS) offerings like Simple Storage Service, Simple Queue Service, and SimpleDB, but this is not required.
Figure2. Amazon Elastic Compute Cloud (EC2)
Since EC2 can host virtually any application, it can also use any protocol or Web service/service-oriented architecture (SOA) technology to integrate with companion applications or components in the enterprise. There is a standard EC2 linkage capability available, and in addition, the Eucalyptus open source cloud project mentioned below provides an EC2-compatible cloud framework. Eucalyptus can be used with any suitable data center for a private cloud implementation that offers the same overall structure and management as Amazon's EC2. For those looking to develop extensive EC2 projects, Eucalyptus can be a major benefit.
Open source projects like Eucalyptus, Nimbus offers an open-source version of a cloud computing architecture suitable for both public and private applications. Each of these cloud environments can be used either to improve EC2 or as a stand-alone private cloud architecture.
To develop or deploy on Amazon's EC2, theÂ Eucalyptus (Elastic Utility Computing Architecture for Linking Your Programs To Useful Systems)Â platform developed by University of California Santa Barbara will be a best suited one. Eucalyptus' aim is to replicate the EC2 interfaces and functionality. However, Eucalyptus differs in a way the Amazon's availability zones are implemented and thus seem to impact on planning or on translating deployment inferences from a Eucalyptus cloud to EC2 than on development phase.
Eucalyptus sits on top of the virtualization technologies of vMware, Xen and multiple varieties of Linux, and provides API to this layer which makes it look similar to EC2. Eucalyptus architecture composes of five components which together reflect EC2. Each component communicates using WSDL APIs and is inter authenticated through WS-Security.
The Cloud controller is the access point to the cloud. It allows the external web services API to instantiate images, and executes load-balancing amongst physical hosts, as well as it acts as a gateway to external clouds.
Clouds are usually a collection of multiple clusters (like IP subnets) each of which is controlled by aÂ Cluster Controller (CC) which communicates with an agent called as aÂ Node Controller (NC), which is available on each physical machine. Based on the request from CC, NC executes, configures and terminates the instances of virtual machines which run on the physical nodes. Its role is to map the API calls emerging from the Cloud API level into a corresponding set of calls at the relevant Virtual Infrastructure API.Â The storage on Eucalyptus is done using its own storage stack called "Walrus" and the EBS persistent storage abstractions through itsÂ Storage Controller.Â
Figure3: Eucalyptus Architecture
NimbusÂ is an open source toolkit that allows you to turn your cluster into an infrastructure-as-a-service (IaaS) cloud. It is a client-side computing interface to Globus-enabled Teraport cluster at U of C. Similar to Eucalyptus; Nimbus provides EC2 interfaces to give users control over their VMs. The difference is that Nimbus runs from a Globus Java container.
Nimbus provides an implementation of EC2 Web services description (WSDL) that allows you to use clients developed for the real EC2 system against Nimbus clouds. Nimbus offers an EC2 front-end that allows Web services used for EC2 management to run on Nimbus clouds; all of EC2's features, however, are not supported. Nimbus also includes an EC2 back-end interface that, in allowing EC2 images to load, runs EC2 as an extension of Nimbus. Nimbus can also be used with Web Services Resource Framework (WSRF), a popular and generic cloud standard for client access. Context Broker allows clients to coordinate large virtual cluster launches automatically and repeatedly thereby achieving load balancing. Nimbus also allows clients to create auto-configuring clusters. The workspace cloud client allows authorized clients to access many Workspace Service features in a user friendly way. It is compatible with a certain configuration of the workspace service and aims to get users up and running in a matter of minutes, even from laptops, NATs, etc.
The workspace service uses GSI to authenticate and authorize creation requests. Among others, it allows a client to be authorized based on VO/role information contained in the VOMS credentials and attributes obtained via GridShib. Authorization policies can also be applied to networking request, VM image files, resource request, and time used/reserved by the client.
Figure4. Nimbus Architecture
Classification of Cloud Systems:
Table 1 shows the comparative technical studies between Amazon EC2, Eucalyptus and Nimbus.
-EC2 lets uploading Xen virtual machine images to the infrastructure and grant the client API to instantiate and control them
- Public Cloud
-Ability to configure multiple clusters, each with private internal network addresses, into a single cloud
-Client-side cloud-computing interface to Globus-enable Teraport cluster U of C
-Nimbus Context Broker coordinates several deployed virtual machines into "turnkey" virtual clusters
-various clusters of auto-configuring VMS with one command.
-OS level running on a Xen hypervisor
-IaaS, Xen Images
-Service will let users to balance incoming requests and traffic across multiple EC2 instances.
Round Robin load balancing, HA Proxy
-Simple load balancing cloud controller
-Installs Self configuring virtual clusters i.e. context broker
-System should automatically alert, failover and re-sync back to the "last known state" as if nothing had failed
-Separate cluster within the Eucalyptus cloud reduce the chance of correlated failure
-Checking worker nodes periodically and recovery
-Support horizontal interoperability
-Multiple cloud computing interfaces using the same "black end" infrastructure
-Standards: "rough consensus and working code"
- S3 and Simple DB.
-Walrus (the front end for the storage subsystem)
-GridFTP and SCP
-Type II (SAS70 Type II)certification, firewall, X.509 certificate, SSL protected API, Access Control List
-WS Security for authentication, Cloud controller generates the public/private key
-PKI credential required
-Works with Grid proxies VOMS, Shibboleth (via GridShib), Custom PDPs
Amazon Machine(AMI), Amazon Mapreduce
-Hibernate, Axis2 and Axis2c, Java
Table1. Table for comparing different cloud computing systems
The combination of Amazon EC2 and open source cloud computing services like Eucalyptus or Nimbus can offer a brilliant head start in developing and deploying a cloud computing application. The flexibility of this combination develops either a public cloud service or a hybrid of a private cloud and public cloud. Even planning and testing a small project on an open source platform is a good way to build experience and skill in cloud computing, which could then be transferred to a real business project. Eucalyptus plays a major role in developing a test project for local development of EC2 projects, along with being able to integrate a private cloud with EC2-hosted applications. For applications that require rapidity in cloud creation and application integration, Nimbus is an excellent choice; however Nimbus is bit more "manual" than Eucalyptus.