Over the past several years, cloud computing has begun to expand in the business community. For those unfamiliar with the terminology, cloud computing is a style of computing which allows and provides for scalable and virtualized computer related resources using the Internet. One of its major advantages is that a business does not need to have any knowledge, expertise, or control of the infrastructure. Obviously, this can become a huge cost savings for those businesses who utilize the services inherent with cloud computing. For instance, some services include online business applications that are accessible through any browser from any computer. The actual software and data resides on servers external to the business itself. It is easy to understand how this becomes very attractive to businesses; they would not have to invest huge sums of money in software and hardware. Since they do not own the host infrastructure, they only pay the provider for services and resources they consume (analogous to paying the water utility company for the amount of water used each month). There is probably no limit to the types of services that can be obtained via cloud computing. Some of these include:
- Compute facilities provide computational services so that users can use central processing unit (CPU) cycles without buying computers.
- Storage services provide a way to store data and documents without having to continually grow farms of storage networks and servers.
- SaaS companies offer CRM services through their multi tenant shared facilities so clients can manage their customers without buying software.
These represent only the beginning of options for delivering all kinds of complex capabilities to both businesses and individuals.1
Cloud computing providers usually offer a variety of services. Some of those providers include VMware, Sun Microsystems, Rackspace US, IBM, Amazon, Google, BMC, Microsoft, Ubuntu, and Yahoo.,2
Irrespective of the provider, cloud computing relies on the use of VirtualMachines (VMs) and some combination of Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and/or Software as a Service (SaaS). VMs are software implementations of a computer which can execute programs like a real computer and can be spawned on any computer as needed. There are two types of VMs: the system VM which supports the execution of a complete operating system, and the process VM which is designed to run a single program supporting a single process.3