In a bid to reduce operating costs, new efficient computing technologies and architectures are being developed to enable multiple users to share computing resources and these shared systems are becoming more acceptable and popular with both companies and private users. Cloud computing is one such new development.
Cloud computing is a large agglomeration of virtualized computing resources that are readily available and accessible for use as required by users. With cloud computing, users can host their applications, store data, and use resources from other enterprises on a pay-per-use basis.
Cloud service users are not concerned about where their apps and data are hosted as long as they can easily access them through the Internet. That allows organizations to drastically cut down or eliminate costs required to acquire and maintain costly infrastructure needed for the provision of their services. Hence users of cloud resources rent virtualized computing resources and transfer operational risks to cloud service providers.
Cloud Computing Architecture
The cloud computing environment is made up of four layers:
Hardware Layer: This consists of the cloud’s physical resources, such as servers, fixtures and fittings, electric power, network devices, etc. This is usually found in large data processing and storage centers that have thousands of giant servers in order to improve fault tolerance and ensure service continuity in case some servers break down.
Infrastructure Layer: This consists of hypervisors or virtual monitor machines (VMM) such as VMware or Xen that enable the creation of virtualized services. The allocation of virtualized computing resources such as processing and storage is also an important function of hypervisors.
Platform Layer: This layer is made
up of various operating systems on which software applications are run. This layer mainly aims to lower the costs of building applications directly from scratch. Google App Engine, for example, operates in the platform layer so as to provide API support for developers to use for the development of web applications, databases, etc.
- Application Layer: At the top of the cloud computing architecture sits the application layer which is made up of actual cloud-based applications. These applications are not the same as conventional applications since they are designed for optimum performance and can scale according to demand.
Difference Between Cloud and Data Centers\
Cloud computing services are largely different from services provided by conventional data processing centers. The differences are highlighted below:
Multiple Service Providers: In a cloud services system, multiple providers can run a single large data center. Using the cloud computing architecture as an example, a service provider is only concerned with maintaining and running the attributes of that layer. For example, an infrastructure service provider can rent its service infrastructure to multiple platform layer service providers.
- Shared Pool of Resources: As a result of the fact that the cloud environment is close-knit, the same resources can be shared by different services providers. For example, power, network equipment, storage, and hypervisors can be shared among the service providers.
Accessibility: Unlike data centers where the users have to physically go to the center before they can be served, cloud service users can enjoy cloud-based services from the comfort of their homes and offices as long as they have an Internet connection with good bandwidth.
Open-Source Cloud Computing Solutions
The explosive growth in cloud service usage has necessitated several solutions to meet demand. Some open-source cloud computing tools are presented in Table 1.
|OpenNebula||IaaS||Xen hypervisor||Policy-based resource
|Xen Cloud Platform (XCP)||IaaS only a tool for automatic||Xen||Maintenance of clouds|
|Apache VCL||SaaS||VMware||Internet access for applications|
|Eucalyptus||IaaS||Xen hypervisor and KVM||Hierarchical architecture|
|TPlatform||PaaS||MapReduce, BigTable, TFS||Web-based processing and data mining|
|Nimbus||IaaS||Xen hypervisor & KVM||Aims to convert clusters into IaaS Clouds|
|Enomaly||IaaS||Xen, VirtualBox and KVM||Open edition focused on small clouds environments|
Table 1: Open-Source Cloud Computing Solutions
OpenNebula is an open-source cloud toolkit that can be used to design and build public, private, and hybrid clouds. It can also be integrated with networking and storage solutions so it can be deployed in any data center. The OpenNebula solution enables the provision of cloud services such as storage and network virtualization on shared infrastructure.
Xen Cloud Platform (XCP)
Xen hypervisor is a robust tool used for infrastructure virtualization. It provides a bridge between the service provider’s hardware and the processor’s operating system. Xen hypervisor enables a server to run many other virtual servers. Xen only provides infrastructure layer service, along with automatic configuration and maintenance of cloud infrastructure platforms. Xen solution is adopted by giant cloud service providers such as Nimbus, Eucalyptus and Amazon EC2.
Apache Virtual Computing Lab (VCL)
Apache VCL is a cloud-based open-source software as a service (SaaS) platform that provides remote access to diverse applications through the Internet. Users may make use of the system immediately or book reservation to use the system later.
Apache VCL architecture is made up of the following parts:
• The Web Server: The server acts as the VCL portal. It serves as UI and manager to direct and manage users’ consumption of VCL resources.
• The Management Nodes: This is the VCL processing system. It controls the servers, storage rack, and virtual machines, depending on how it is directed. It is also responsible for processing users’ reservations or other jobs as assigned by the VCL web server. The management node ensures that VCLD service is always available to users.
• The Database Server: This uses Linux-based SQL code to store data about VCL’s resources inventory, reservations, users’ data, and access controls.
This is an open-source cloud service that is mainly concerned with academic research and, as such, it provides important resources needed for scientific and technological experiments and study. It supports virtual machines that run Xen hypervisor. Eucalyptus users can start, pause, control, and stop the virtual machines during experiments.
Just like the cloud architecture, Eucalyptus architecture consists of four layers. However, with Eucalyptus, each layer can be implemented as an independent service.
1. Node Controller: This controller runs on every node on which VMs are hosted. It controls and queries the OS and hypervisors, collect basic information about the node’s available resources, such as free disk space, and also checks the condition of the VM resources
2. Cluster Controller: This controller runs on any computer that has network connectivity to two or more nodes in order to effectively monitor, control, collect data, and report about the state of the nodes.\
3. Storage Controller: This controller is attached to storage devices and regulates the storage and retrieval of system and user data.
4. Cloud Controller: This controller is the gateway into the Eucalyptus cloud in order to manage users’ usage of virtualized resources. It provides as a web service, the UI, data, and other demanded cloud services for the users.
The characteristic that distinguishes it from other cloud services is that Eucalyptus is designed from scratch to be simple. It does not require dedicated resources. It encourages the integration of third-party extensions through a modular software framework. It also provides a virtual network layer that isolates the traffic of different service users in such a way that clusters of users seems to be from the same local network.
Google Cloud Technologies’ TPlatform is an open-source cloud solution that serves as a development platform for web development, data mining and data processing applications to be dynamically run as a platform as a service (PaaS) solution.
TPlatform cloud service is driven by the MapReduce processing model, BigTable data storage system, and a scalable Tianwang file system (TFS) similar to the Google file system. It also provides infrastructure service used for application development and data processing.
Nimbus is an Apache-licensed open-source solution used to turn clusters of infrastructure into an IaaS (infrastructure as a service) service for cloud computing. This gives users the opportunity to make use of remote resources by deploying a type of virtual machines, dubbed virtual workspace service (VWS) that has different frontends that users can utilize.
Enomaly Elastic Computing Platform
Enomaly ECP is an open-source cloud computing solution run by Enomaly Inc. Its main objective is to provide virtual machine administration in small cloud environments. Compared with the Enomaly commercial edition, Enomaly open-source edition is sometimes constrained by limited scalability, no support for accounting and metering, no capacity control issues, etc.
Challenges of Open-Source Clouds
The development and operation of open-source cloud computing systems comes with several technical and policy challenges to cloud service providers. Some of these challenges, which include decision, operation, standardization, and negotiation, will be discussed in detail below.
Decision: The basic goal of any business is to provide services that consumers need and are ready to pay for. The cloud service provider is required to have in-stock applications that will maximize utilization of cloud resources. This goes way beyond the actual programming code. Other decisions on how to implement virtualization and other links of communication also have to be considered. The cloud service provider has to determine and build the best technological resources needed to run these virtual utilities.
Operation: The cloud is made up of many different machines, such as processing servers, routers, switches, and storage servers. Due to heterogeneity of device manufacturers, coupling all these components together to work harmoniously is quite a challenge when designing any cloud solution. Cloud systems are dependent on web services to provide communication among the users, processing servers, and storage nodes. Efficient communication between the systems is therefore tied to the reliability of the network and available bandwidth. To constantly configure the nodes to work cohesively to ensure availability, virtualization, and scalability of the whole system is no easy task.
Standardization: Another considerable challenge associated with cloud computing in general is the need to standardize the proprietary interfaces used to access different cloud service providers’ services. Users who intend to transfer their data and applications to other clouds cannot find it hard to move on. There are ongoing efforts to make cloud service providers liaise together to offer a standardized application program interface (API) based on boundless open standards.
Negotiation: This involves negotiations on how APIs will be built, implemented, and maintained between the cloud service providers and application developers. Depending on the programmability level and service niche offered by the cloud, the API can be implemented in various ways, ranging from control of virtual machines to a web-based toolkit in the cloud used to develop applications in the cloud. In addition to these basic functions, a cloud service provider must also permit developers to add and update or replace their apps alongside other functionalities, such as load balancing and backup options. All of these are constrained by geographical, security, and copyright restrictions.
There are various cloud computing solutions serving different niches providing PaaS or SaaS services. Each solution represents a different view of cloud resources provision, utilization, and control. More research and efforts are currently being made by open-source cloud service providers such as Xen and Eucalyptus to solve the challenges associated with cloud computing and introduce better innovations that will positively impact the business and operations process.