Rationalizing the Cloud Computing Concept: An Analogy with the Car
Download PDF | Download for mobile
Rafik Ouanouki, Abraham Gomez Morales and Alain April
École de Technologie Supérieure, Montréal, Qc, Canada
Volume 2014 (2014), Article ID 901075, Journal of Cloud Computing, 8 pages, DOI: 10.5171/2014.901075
Received date : 1 September 2013; Accepted date : 27 January 2014; Published date : 13 June 2014
Academic editor: KP Lam
Cite this Article as: Rafik Ouanouki, Abraham Gomez Morales and Alain April (2014), "Rationalizing the Cloud Computing Concept: An Analogy with the Car ", Journal of Cloud Computing , Vol. 2014 (2014), Article ID 901075, DOI: 10.5171/2014.901075
Copyright © 2014. Rafik Ouanouki, Abraham Gomez Morales and Alain April . Distributed under Creative Commons CC-BY 3.0
Cloud Computing has quickly become a popular buzzword in the IT industry. It is hard to understand what cloud computing technologies are and if we are using the real thing. Many standard-developing organizations such as the National Institute of Standards and Technology (NIST) and the International Standards Organization (ISO) are working to provide a standard definition of Cloud Computing. Unfortunately, they are already facing a big challenge due to the presence of multiple definitions and the lack of understanding of this emerging technology. The main objective of this paper is to try to characterize Cloud Computing components and concepts using a familiar object, the car. Using this analogy, we identify concepts that should not be part of the international Cloud Computing definition on our quest for an improved definition. This work is part of the Canadian members’ ISO/JTC1/SC38 work group effort aiming at an international consensus.
Keywords: Cloud Computing, Cloud Essential Characteristics, Cloud Technologies
Vaquero et al. (Vaquero, 2008) list more than twenty existing Cloud Computing definitions in their paper, and conclude by proposing an additional one. At this rate, we will have a confusing number of definitions before long! This is typical of the inflated expectations of a recent technology, as the cycle of hype surrounding it reaches a peak.
At this stage, it is important to step back and try to see Cloud Computing for what it really is. This is exactly what the ISO Joint technical committee 1 sub-committee 38 (ISO/JTC1/SC38) should accomplish in the next few years. After working with the committee for a year, we fear that not a lot of discussion will take place on this topic. Working Group 3 was created with the objective of normalizing Cloud Computing terminology. Looking at the term Cloud Computing in the many recent publications, a key question was initially raised by Canada: why should we take the NIST definition as the international definition? The basic concepts expressed by the two words “Cloud” “Computing” are quite simple. The word computing refers to any activity that involves computer processing or storage as defined by Shackelford et al. (Shackelford, 2006). A computer manipulates and stores data, which may reside on the hard drive of the computer, or in other hardwares such as NAS (network-attached storage), on commodity hardware (affordable and readily available hardware), on a mainframe, or many other devices nowadays. A hard drive can store anything, including structured data, unstructured data, software, databases and all other types of software. In Cloud Computing terminology, these capabilities are presented as services, and these services are offered in the cloud, sometimes anywhere on earth. In other words, its location does not matter. In some publications, a cloud also refers to networked computers, among which processing power is distributed.
Where the confusion begins, and so many different Cloud Computing definitions are generated, is when those definitions try to include: 1) different perspectives (i.e. Infrastructure/data center versus Software Engineering); 2) too many technical details; or 3) a specific technology point of view.
For example, some definition includes concepts like billing features, type of access, security issues, ownership of data, and even quality features associated with the technology and the services offered.
Since these concepts vary depending on the technology, and can evolve, the definition of Cloud Computing can become broader and fuzzier over time.
The National Institute of Standards and Technology (NIST) has proposed one of the leading proposals for an internationally accepted definition of Cloud Computing:
“Cloud computing is a model for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g. networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction.” This cloud model promotes availability, and is composed of five essential characteristics, three service models, and four deployment models. This proposal implies that the terminology of those essential characteristics, service models, and deployment models must also be precisely defined. Table 1 shows how these three concepts are defined in the NIST proposal. We can see that for each of the essential characteristics, service, and deployment models, the definition lists a number of items. These items were initially chosen as the result of a consensus between vendors, consultants and industry representatives in 2009.
The above definition was initially intended to serve as a means for broad comparisons of cloud services and deployment strategies, and to provide a baseline for discussion — from what Cloud Computing is, to how best to use it. In fact, the first version was leaked at a Federal CIO Cloud Computing summit in Washington in April 2009. By 2012 it is reported that a 16th and final version was released.
This first serious proposal raises a key issue. Cloud Computing is complex, especially considering the nature of its components. Defining it comprehensively requires that every essential characteristic, service model, and deployment model be well defined and that these elements do not change over time. Since change is likely to happen in this field, a simplified version should be debated in this committee that can be expected to withstand the test of time.
Michael Daconta (Daconta, 2012) even stated that ‘The framework was too complex and failed to provide the simple, unified concept of cloud computing that this audience desperately needed’. For Joe McKendrick (McKendrick, 2012), the definition will not withstand the test of time and ‘will simply become a ubiquitous method by which applications and services are assembled and accessed’. Cline (Cline, 2012) debates that the definition can only be a broad generalization, and that at this time it does the job
To better understand what characteristics should be part of the internationally accepted definition of Cloud Computing, or left out of it, we propose looking at a well known and well defined concept, and see how its definition deals with characteristics that aren’t explicitly mentioned, but are implied. This may help us improve the proposed NIST definition.
The ISO/JTC1/SC38 committee is focused on Distributed Application Platforms and services (DAPS) and has formed a working group (WG) for each of the following topics:
(WG1) Web services
(WG2) Service Oriented Architecture
(WG3) Cloud Computing
The working group 3 is responsible for identifying, developing, and maintaining JTC1 deliverables in the field of Cloud Computing and is involving with many standards’ developing organizations such as the National Institute of Standards and Technology (NIST). The objective is to develop an internationally accepted definition of the term Cloud Computing.
Initially the work group is using the Cloud Computing definition proposed by NIST. Gradually the work group members were facing a major challenge, owing to the existence of multiple definitions each having its specific focus. This led to debates outside the formal committee and there is still a lack of consensus concerning the essential/optional characteristics that should be reflected in an internationally accepted definition. The main objective of this paper is to present a synthesis of the different points of view. To achieve this goal, we will debate on two major conflicting perspectives: 1) an IT infrastructure point of view, and 2) a Software Engineer point of view. To cut short the presentation of these opposing views, we question the Cloud Computing characteristics proposed in the current NIST definition. This debate represents a step on the journey towards a clearer definition of the Cloud Computing term, and is part of a Canadian contribution to ISO/JTC1/SC38, Working Group 3 on Cloud Computing.
The Car Analogy
The automobile, which is referred to as a car today, is defined, by F.G. Fowler (1976), as ‘a wheeled motor vehicle used for transporting passengers, which also carries its own engine or motor.’ Most existing definitions agree on the following car characteristic: ‘The car is designed to run primarily on roads, to have seating for one to 8 people, and to be constructed principally for the transport of people rather than goods.’
Analyzing the above definition in connection with the challenge of defining Cloud Computing, we note that the car as described by the Fowlers did not include any options, such as air conditioner, warranty, equipment’s features, financing modes, etc. The definition is restricted to the car’s essential characteristics, such as wheels, motor, and seats for transporting people, as shown in Figure 1. Could this analogy be extended to simplify the definition of Cloud Computing?
As with the car, by identifying the essential and optional characteristics of Cloud Computing, we could, for example, study why organizations have recently converted existing applications to Cloud Computing technology, and, in particular, why they did not use another competing or existing technology instead. This would help us identify optional characteristics that could be left as optional characteristics in the proposed NIST definition.
Common Factors Observed when Migrating to Cloud Computing
We have examined many software engineering case studies that have been published involving the migration, by organizations, of their applications to Cloud Computing technology, with the aim of continuing to serve their growing customer base well.
In this study, we are looking for the factors that are common to all these organizations in the migration process based on their answers to the following questions: What problems had they been experiencing with their current technology? What limitations forced them to migrate? In both cases of a migration or creating a new product, what essential characteristics were they looking for in a Cloud Computing technology?
Vendors like Google, Amazon, and others claim that their Cloud Computing technology provides them with many advantages, like scalability, maintainability, performance, and reliability. Cloud Computing technologies have been designed for growth, low latency, and robustness against failures as described by Dean (2009).
Cost is also an important issue. For example, a great deal of attention has been paid to the low cost of running the Google server hardware, with its built-in batteries, which eliminate the need for a huge, centralized uninterrupted power supply (UPS), and their customized 12-volt power supplies that deliver energy efficiency.
Let’s discuss first, the requirements for migrating to Cloud Computing technology. In the case of YouTube, the challenge mostly had to do with scalability and performance, since keeping up with website growth was a day-to-day issue for them before the company was bought by Google, and their technology was migrated to Google proprietary technology (Bigtable).
Bigtable is a non relational, high performance database that is fault tolerant over large sets of data, which solves the famous YouTube thumbnails issue as described by Cordes (Cordes, 2007). Cook (Cook, 2009) describes how Twitter managed to make their service 10,000 times faster than it was before and later. Higginbotham (Higginbotham, 2011) explains how they scaled horizontally using Cloud Computing technologies.
According to the database pioneer Michael Stonebreaker (Stonebreaker, 2011), Facebook is stuck with its current technology, especially its relational database, which is rapidly growing to 4,000 shards and becoming extremely complex to manage. Database sharding is a partitioning scheme for large databases across a number of servers, enabling new levels of database performance and scalability as described in (Code Futures 2011).
Stonebreaker adds that this is fairly common practice, especially among start-ups that start small and grow to epic proportions, and use Web-based applications where users can upload whatever they want. Most of the case studies found involve organizations that offer or use services that had to move to Cloud Computing because of scalability, performance, or maintainability issues.
When forced to migrate out of an existing technology, organizations look carefully at all the possible alternatives. Target technologies are typically assessed for each of the key non-functional requirements: scalability, maintainability, performance, and reliability. As Stonebreaker (2011) points out, relational database technology is struggling to scale to handle petabyte-sized tables where No-SQL technology is an increasingly attractive solution.
These software engineering case studies reveal that Cloud Computing is not only concerned with hosting software elsewhere, but also with networking computers to distribute processing power in newer ways.
The case studies found in the literature highlight the problems faced with the use of current technology. Table 2 presents the essential characteristic that was the key in the decision to migrate to Cloud Computing technology for each non-functional requirement that presented a serious problem.
Essential vs. Optional Cloud Computing Characteristics
We saw in section 2 that the definition of a car includes only its essential characteristics, and none of the optional ones. In a car, an option can be purchased and added to the base product, and so is not considered part of its definition. Options are typically similar for a type of vehicle, a vendor, or in the car industry as a whole. Could it be possible to use the same approach with Cloud Computing to improve its definition? Table 3 displays our attempt to draw a parallel between the definition of a car and that of Cloud Computing, including the smallest possible set of essential characteristics.
The same analogy could be applied for optional characteristics, as presented in Table 4. In some cases, optional characteristics maybe required by the client and their selection depends on what the organization is looking for, as it migrates its applications to Cloud Computing. In this paper, optional characteristics are distinguished from required characteristics only from the perspective of whether or not they are included in the main definition of Cloud Computing. Table 4 also identifies the concepts included in the NIST definition that could be left as optional characteristics from the main definition.
Table 3 and Table 4 describe an attempt to separate out what could be the essential Cloud Computing characteristics. Revisiting the NIST Cloud Computing definition, we note that some of the proposed essential characteristics may be not essential, based on a car analogy and the content of the case studies presented in Table 2. For example, the broad network access presented in the NIST definition introduces notions of thick and thin clients (i.e. mobile phone, laptop and PDA). This could be optional for many organizations, as their needs may not be focused on the way they access a cloud service. It goes without saying that service access can evolve over time, as new devices appear and gain in popularity. In contrast, scalability seems to be a common expectation that organizations have of Cloud Computing services, as described in Table 2, and so it should be kept in the definition.
Future Research Directions
Cloud Computing is a new and emerging technology; defining such a new term is hard, given the obvious gaps found in the literature. The definition used by ISO and other SDO’s such as NIST are a good starting point. More work on improving and consolidating different perspectives is needed to create an internationally accepted definition that will be more able to withstand the test of time. In future work, we will try to close the gap between the ISO/JTC1/SC7 software/system engineering perspective and the computer engineering perspective promoted by ISO/SC38 currently. After all, there can only be one internationally recognized definition of Cloud Computing. It may have been too ambitious to try to normalize something that is so young. Normally, standards organizations wait for signs of maturity before attempting international consensus. We think they are currently going ahead too fast with this one!
Efforts are underway, in ISO/JTC1Subcommittee 38, to arrive at an internationally accepted definition of Cloud Computing and its terminology. The committee has taken for granted the 16th NIST definition proposed in 2012. This paper, developed by Canadian members of SC38, attempts to take an arm’s length view of the NIST definition of Cloud Computing, using a car analogy, to assess its essential and optional characteristics. As a result of this research we have kept three key elements, and recommend a debate on the exclusion of the others, based on whether or not they will stand the test of time.
1. Blaine, B.C. (2009). Scaling Twitter: Making Twitter 10000 Percent Faster. [Online]. [Retrieved September 5, 2013]. Available: http://highscalability.com/scaling-twitter-making-twitter-10000-percent-faster.
2. Hoff, C., Cline, K. (2012). When a fail is a win — How NIST got dissed as the point is missed, rational Survivability, reply from Ken Cline, July 5th, 2012. [Online]. [Retrieved September 23, 2013], Available: http://www.rationalsurvivability.com/blog/2012/01/when-a-fail-is-a-win-how-nist-got-dissed-as-the-point-is-missed/
3. CodeFutures. (2011). Database Sharding. [Online]. [Retrieved September 5, 2013], Available: http://www.codefutures.com/database-sharding
4. Cordes, C.K. (2007). YouTube scalability Talk. [Online]. [Retrieved September 5, 2013], Available: http://kylecordes.com/2007/youtube-scalability.
5. Daconta, M. (2012). Why NIST’s cloud definition is fatally flawed. [Online]. [Retrieved September 23, 2013], http://gcn.com/articles/2012/04/02/reality-check-nist-flawed-cloud-framework.aspx
6. Dean, D.J. (2009). Designs, Lessons and Advice from Building Large Distributed Systems, LADIS2009, Third ACM SIGOPS International Workshop on Large Scale Distributed Systems and Middleware. [Online]. [Retrieved September 5, 2013], Available: http://www.cs.cornell.edu/projects/ladis2009/talks/dean-keynote-ladis2009.pdf
7. Fowler and H.W. Fowler (1976). Pocket Oxford Dictionary. London: Oxford University Press: New York.
8. Harris, H.D. (2011). Facebook trapped in MySQL fate worse than death. [Online]. [Retrieved September 5, 2013], Available: http://gigaom.com/cloud/facebook-trapped-in-mysql-fate-worse-than-death/.
9. Higginbotham, H.S. (2011). Once Again, See How Twitter Scales. [Online]. [Retrieved September 5, 2013], Available: http://gigaom.com/cloud/once-again-see-how-twitter-scales/.
10. McKendrick, J. (2012). NIST definition of cloud computing doesn’t go far enough, ZDNet. [Online]. [Retrieved September 23, 2013], Available: http://www.profsandhu.com/cs6393_s13/nist-SP800-145-reactions.pdf
11. Shackelford, R., Cross II, J.H., Davies, G., Impagliazzo, J., et al. (2006). ‘Computing Curricula 2005: The Overview, ACM and IEEE. [Online]. [Retrieved September 5, 2013], Available: http://www.acm.org/education/curric_vols/CC2005-March06Final.pdf.
12. Vaquero, V.L., Rodero-Merino, L., Caceres, J., Lindner, M. (2009). ‘A break in the clouds: towards a cloud definition’, ACM SIGCOMM Computer Communications Review, 39(1): 50–55.