Cloud Computing and the Future of Operating System Design
1.0 IntroductionThis paper will discuss cloud computing and its effect on the future of OS (operating system) design. First, all important terms of discussion will be defined. Then, the author will discuss the current and possible future states of cloud computing. Future OS design considerations will then be presented, followed by the author's conclusions.
2.1 Cloud computingThe term “cloud” (when used in-conjunction with the word “computing”) refers to an Internet-based computing solution, in which the user accesses applications which are not resident on their local system. The use of the word “cloud” is derived from a common practice in network diagramming, where a picture of a cloud is used to represent the Internet. A cloud computing environment is usually accessed via a web browser, and the application layer is abstracted from the user so as to appear that the applications run as they would if they were on the local system.
2.2 Grid computingNot to be confused with cloud computing, grid computing (sometimes referred to as “distributed computing”) is a collection of computer systems which pool their resources together and are abstracted to appear as one. The user will typically only be able to see one system, but their request may utilize resources on one of or many systems on the “grid”. Systems which comprise the grid are not required to be within physical proximity of each other.
2.3 IaaSIaaS (Infrastructure as a Service) is sometimes interchanged with the acronym HaaS (Hardware as a Service). Essentially, the concept of a server becomes abstracted by a third-party vendor, who handles the administration and operation of the server. The user essentially pays for the ability to use the server, and the cost is based-on the user's activity.
2.4 SaaSSaaS (Software as a Service) is an application layer that services user requests on an as-needed basis. The service layer is not installed on the user's local machine, but resides on a server that is typically accessible via a specific application. Implementations can be public Internet-based, as well as private deployments via corporate intranets.
2.5 EnterpriseIn the context of computing, the term “enterprise” refers to high-performance solutions trusted to handle the every day, production-level operations for commercial businesses.
3.0 The State of Cloud Computing
3.1 Current ImplementationsWhile cloud computing is generally viewed as a “new” development, there are a several existing implementations of it. Recent years have seen several cloud-based research projects from various universities. Cloud computing has also been embraced (and marketed) by computing companies such as Amazon, Google and Microsoft, just to name a few.
Amazon EC2 (Elastic Compute Cloud) is a set of Internet-based services. These services range from individual ecommerce-based applications to virtual servers running Windows, Linux or whichever OS the customer wishes to upload. Amazon's virtual servers also offer specific functionality, including database servers (running MySQL, Oracle, or MSSQL Server), web hosting servers, and application servers.
Computing giant Microsoft has a cloud computing offering known as Windows Azure. Azure is a services platform that (among other things) provides business applications to its users. Azure also exposes a feature-rich API (Application Programmer Interface) to make it easy for developers to write programs for it. Author David Burela (Zheng, Burela, 2008) writes that “if a developer is able to currently write .Net applications, such as ASP.Net websites, then they can take their skills and start working with Azure immediately.” Essentially Azure allows developers to focus primarily on their application, by automatically handling things like server provisioning and load-balancing (Zheng, Burela, 2008).
Google also offers web-based application services in the form of Google Apps, Gmail and Google Docs. Applications available range from word processors to spreadsheets and even image manipulation applications. Essentially, these applications function as their desktop counterparts do, except that they are accessible from the Internet. If a user has an account with Google, they can also save their documents in the cloud and access them from any system that has Internet access.
Cloud computing has also evolved to the Operating System level. Google has designed a cloud-based operating system named Chrome OS. In this scenario, the user's local system is responsible for running a web browser, with all of the user's applications being accessed via that browser. Essentially the OS is entirely “in the cloud”, and handles all aspects of traditional OS resource allocation.
While the Amoeba OS is technically a “distributed computing” solution, it functions in a manner that is similar to cloud-based operating systems. An Amoeba OS hardware configuration has three types of machines: a workstation, a pool processor, and specialized servers (Tanenbaum A.S., 1992). The workstation is exclusively responsible for running an X window based UI (user interface). The pool processors are systems which offer their resources to the distributed system as-needed. Author and computer scientist Andrew Tanenbaum (Tanenbaum A.S., 1992) describes the specialized servers as “file servers and directory servers that run all the time. They may run on processor pool processors, or on dedicated hardware, as desired. ”
fos (factored operating system) is a microkernel-based, cloud OS design pioneered by researchers at MIT (Massachusetts Institute of Technology). fos presents a single system image from which to serve applications, backed by a dynamic system of resource allocation. It can quickly re-provision VM's (Virtual Machines) to grow and shrink cloud resources based on current application demands (Wentzlaff et al, 2009). While many cloud OS's handle fault-tolerance and elasticity of demand in similar ways, author David Wentzlaff (Wentzlaff et al, 2009) states that fos is unique from other cloud OS's in that “fos tries to provide all these benefits in an application- and language- agnostic manner. ”
Although not technically an operating system, Eucalyptus is a FOSS (free and open source software, not to be confused with factored operating system) cloud computing framework. Eucalyptus is designed on Amazon's EC2 services, allowing users to work with Eucalyptus using the same tools that are required for EC2. The services exposed to users are managed by Eucalyptus' CM (Cloud Manager). The CM is based-on a layered, three-tiered design that includes the interfaces, data, and resources (Nurmi et al, 2009).
3.2 The Future of Cloud ComputingDespite the current “buzz word” status that cloud computing has garnered in the information technology industry, there is little hard evidence to suggest how future cloud implementations will develop. While some industry experts predict an entire computing paradigm shift to cloud computing, there are also those who are vehemently against and dismiss it outright.
This author does see value in the cloud model, especially when considering enterprise-level deployments. Businesses would no longer need to purchase scores of computers capable of independent processing. Instead, substantial amounts of capital could be saved by purchasing IaaS services, along with several “dumb terminals” or systems capable of running little more than a web browser. This has some definite (workstation) security advantages, relative to how much control users have over their own corporate systems today.
While it would seem that most cloud-based solutions are developed with the enterprise customer in-mind, Google appears to be marketing to the individual consumer, as well. Most home users really only use their computers for email, web browsing, personal finances and the occasional word processing document. These features could easily be solved with a cloud solution, perhaps one that (in the future) may be offered along with their household Internet service.
4.0 Criticisms of Cloud Computing
4.1 SecurityFor a hacker to steal sensitive data from an individual or corporation today, there are several obstacles for them to overcome. They must first (presumably) get around a hardware firewall, locate the server that the data resides on, and then apply or fabricate security credentials (although not necessarily in that order). However, if the sensitive data is in a SaaS cloud, the hacker simply needs to fabricate security credentials, and the data is at his/her mercy. The fact remains that most cloud computing solutions actually remove several layers of security that are provided as a standard by most network architectures.
Physical location of data storage can also raise some concerns. Companies like Amazon do state in their terms of service (Amazon Web Services LLC - 2, 2010) that “you reserve all right, title and interest (including all intellectual property and proprietary rights) in and to Your Content.”
However, nowhere in that statement (or the entire agreement, for that matter) does it state the physical or geographic location of where your data will be stored. American corporations with government contracts will be reticent to store sensitive data with companies like Google, because Google can't guarantee that their data won't end-up on a server in China (or another country with differing political ideologies).
4.2 Data OwnershipThe advent of cloud computing has raised serious questions about data ownership. When users create data in the cloud, and store it on a cloud-based file server they technically lose control over it. As mentioned in the previous section (4.1), the physical location of your data is out of your control. But the ability to migrate that data to a different solution might also be hampered. In an interview with FOSS proponent Richard Stallman, author Bobbie Johnson (Johnson 2008) points out that Stallman says “that cloud computing was simply a trap aimed at forcing more people to buy into locked, proprietary systems that would cost them more and more over time.”
Stallman's point, is that there is no guarantee that data created in one cloud would be easily portable to another cloud. This may prevent businesses and consumers from being able to switch cloud providers, if necessary. Stallman went on to say (Johnson 2008) that “One reason you should not use web applications to do your computing is that you lose control... It's just as bad as using a proprietary program. Do your own computing on your own computer with your copy of a freedom-respecting program. If you use a proprietary program or somebody else's web server, you're defenceless. You're putty in the hands of whoever developed that software.”
4.3 AvailabilityStoring data in an off-site location might seem like a smart thing to do, as long as that is not the only copy of that data. But what happens when users unexpectedly lose access to their data, or to the services that provide access to it? While computing technology continues to advance at a rapid pace, the fact is that servers still crash and service providers still go down. In a cloud computing world, that could mean loss of access to not just your data, but also your applications.
Author Chris Brogan describes this problem while relating an issue that a colleague of his was having when Google unexpectedly disabled his account. Brogan (Schofield, Brogan, 2008) goes on to state that “Suddenly, Nick can't access his Gmail account, can't open Google Talk (our office IM app), can't open Picasa where his family pictures are, can't use his Google Docs, and oh by the way, he paid for additional storage. So, this is a paying customer with no access to the Google empire.”
5.0 Future OS Design ConsiderationsWhile this author believes that there will always be a market for “independent” computing systems, much of future OS designs hinges on the success or failure of the cloud computing paradigm. Many companies are embracing the concept of JeOS (pronounced “juice”, Just enough Operating System), in which each OS configuration is customized to give the user (or device) no more features or applications than needed. Cloud computing OS's could take the concept of JeOS to the next level, in which the client-side OS would have to do little more than provide a UI and run a web browser.
Scaled-down OS's are a good thing, and can assist in decreasing boot times and OS bloat. Google Chrome boasts that it boots in seven seconds (Lai, 2009), and has the user running a web application in three additional seconds. Phoenix Technologies Limited has produced an “instant on” OS called Hyperspace, which is based on the Linux kernel (Lai – 2, 2009). Hyperspace users can activate their computer and be productive in mere seconds, using a wide variety of (scaled-down) Linux based applications.
Users have complained for years about slow boot times, and OS software companies are listening and responding. In a side-by-side test, this author conducted an experiment, where two computers (with somewhat similar hardware) were simultaneously booted-up. One computer booted into Ubuntu 10.04 so fast, that the author had time to check email, do some web browsing, and begin playing a game of GNU Chess before the other computer (running Windows XP) had even arrived at its desktop; during which time, slightly more than four minutes had elapsed.
Perhaps the concepts of JeOS and instant-on will propel the industry into a boot-speed “arms race” (for lack of a better term). The resulting technologies would certainly have a lasting effect on system boot times, as well as a positive impact on the overall computing experience.
6.0 ConclusionIt is this author's belief that while cloud computing will have a place in the future, its primary implementation may not be quite what we expect. If current obstacles such as security, data ownership and availability cannot be appropriately solved, cloud computing will not grow into a one-size-fits-all Internet-based solution for the enterprise. Even if these problems are solved, businesses will still keep some of their own servers on their internal domain. There will always need to be a solution to house data that cannot (for security or competitive reasons) leave a specific building or internal network.
However, the obstructions of Internet-based cloud computing are not as much of a hindrance to intranet-based (local network domain) cloud deployments. It is entirely conceivable that businesses may still subscribe to the “dumb terminal” workstation solution, and deploy clouds to service their internal customers only.
While still having to spend capital on high-performance servers (as well as on technology professionals to administer it), this solution provides all of the benefits of cloud computing while simultaneously eliminating the problems. Security would no longer be an issue, as cloud resources would be just as secure as everything else. Data ownership would not be a problem, because the data would always live on a corporate-controlled network. Availability would not be a problem, as cloud services would be as available as much as all other network resources are.
As for future implications on OS design in general, I believe that JeOS and cloud-based OS's will find their place in the computing paradigm. However, there will still be a market of technically-savvy computer enthusiasts and hobbyists who will have a desire to keep their data, applications, and OS all running on their own local system.
While cloud and traditional OS's are on different paths today, it is possible that over time the space between them would narrow. Much like the evolution of RISC (Reduced Instruction Set Computer) and CISC (Complex Instruction Set Computer) chip architectures, each could adopt certain principles of the other. The end product is difficult to predict, but will likely be something that has yet to be seen.
ReferencesAmazon Web Services LLC (2010), Amazon Elastic Compute Cloud, retrieved from: http://aws.amazon.com/ec2/
Amazon Web Services LLC - 2 (2010), AWS customer agreement, retrieved from: http://aws.amazon.com/agreement/#10
Johnson B. (2008), Cloud computing is a trap, warns GNU founder Richard Stallman, retrieved from: http://www.guardian.co.uk/technology/2008/sep/29/cloud.computing.richard.stallman
Lai, E (2009), Microsoft, other rivals slam Google Chrome OS, retrieved from: http://www.computerworld.com/s/article/9141197/Microsoft_other_rivals_slam_Google_Chrome_OS
Lai, E. - 2 (2009), Phoenix rounds out quick-boot Hyperspace with Office-compatible suite, retrieved from: http://www.computerworld.com/s/article/9128818/Phoenix_rounds_out_quick_boot_Hyperspace_with_Office_compatible_suite
Nurmi D., Wolski R., Grzegorczyk C., Obertelli G., Soman S., Youseff L., Zagorodnov D. (2009), The Eucalyptus Open-source Cloud-computing System , http://www.cca08.org/papers/Paper32-Daniel-Nurmi.pdf
Schofield J., Brogan C. (2008), When Google owns you... your data is in the cloud, retrieved from: http://www.guardian.co.uk/technology/blog/2008/aug/06/whengoogleownsyouyourdata
Tanenbaum A. S., Sharp G. J (1992), The Amoeba Distributed Operating System, http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.26.8030&rep=rep1&type=pdf
Wentzlaff D., Gruenwald C. III, Beckmann N., Modzelewski K., Belay A., Youseff L., Miller J., Agarwal A. (2009), A Unified Operating System for Clouds and Manycore: fos, http://groups.csail.mit.edu/carbon/docs/caos_final.pdf
Zheng L., Burela D. (2008), Guest post: Windows Azure – review from a developer, retrieved from: http://www.istartedsomething.com/20081203/guest-post-windows-azure-review-from-a-developer/