
Cloud computing means sharing a computer with other clients of the cloud-service provider. The way that this works is by using virtualization. What is virtualization?
Virtualization means taking a physical computer and dividing it up into one or more virtual computers. That means the host operating system is hosting other copies of other operating systems on the same machine. The operating system that controls other operating systems is called a “hypervisor.”
Think about this, remember (if you are old enough) how IBM mainframe computers worked and work today. These large and expensive computers were designed to support multiple businesses and applications at once. Access to the machines was sold in timesharing-mode, where different companies paid for different amounts of time on the machine. To do that, the IBM mainframe operating system ran different operating systems in different areas of the machine they called “regions.” That means the memory of the machine was divided up so that one region could run, say CICS, and another run CMS, another run UNIX, or any of the many operating systems that IBM supported. They all shared the same memory, and the CPUs were divided up into time slices, which you and I would call “multitasking.” The hypervisor keeps track of what part of the memory belongs to which operating system and the CPU swaps in and out tasks at breathtaking speed, thus creating the illusion that computer was doing many things at the same time. In truth the CPU can only do one thing at a time. (Computers can have multiple CPUs, but that does not mean each CPU can do two things at once.) The disk drive storage is shared too, in the sense that the computer manages storage for each operating system instance, while the data for each operating system is kept separate.
Computer virtualization means the same thing. The company VMware was first to market with this idea for PC hardware, meaning those that run Intel processors using the 8080 architecture. Now they have a competitor Hyper V, which is a Microsoft product that used to be called “Windows Server Virtualization.” An open-source hypervisor called Xen is also a competitor. (Open-source means the instructions [source code] used to power these machines are on the internet for anyone to download, study, and contribute changes. Usually different companies provide resources to work on this source code together.)
Before we discuss how cloud computing relates to virtualization, it is worth discussing briefly why there has been a trend toward virtualization. If you don’t have a virtual server, you have a physical one. It used to be the case that a company called Sun dominated the market for high-end machines running UNIX, the operating system that powered most large business applications. Their major computer was Microsoft and Windows. Companies would buy separate servers for the database, the application server, the web server, proxy servers, and Active Directory. All of these cost a lot of money to buy and maintain. Because of virtualization, Sun started losing money and was taken over by Oracle; other specialized hardware vendors have gone out of business as companies moved to virtualization. The same thing is expected to happen to network hardware vendors, as networking too is moving to virtualization.
The winner in all this are the PC manufacturers who have moved into building high-end PCs used for virtualization. (Their PC sales to consumers have fallen off drastically because of tablets and smartphones, but virtualization has breathed new life into these companies, albeit with much less revenue that before.) The high-end PC manufactures include Compaq, HP, Dell, Lenova. These machines are said to be “commodity servers,” meaning if you don’t like one company, switch to another, as their products are for the most part the same.
Virtualization came first, followed by cloud computing. Companies like Amazon.com were the first to let multiple companies rent space on the thousands of computers that Amazon has in data centers around the world. Subsequent companies started calling this the “cloud,” and the name stuck. Each client pays a subscription fee to tap into the cloud. The idea is that this results in lower costs for the client, because they don’t have to buy their own hardware, and the cloud service provider benefits from economies of scale: they can buy computers cheaper than anyone else, because they buy so many, and their system administrators support more machines per person than would a smaller company, plus they have lower electricity costs for air conditioning per computer, because their data centers are so large.
Since the cloud service provider uses virtualized servers, their clients share the same compute resources as other customers. Two different companies operating in the cloud would be using the same physical machine.
Virtualization has made all of this possible, and at a lower cost, because it has replaced proprietary hardware, like Sun, with commodity hardware.