Cloud Computing – Business Fundamentals
Service providers build DCs to house the people and equipment needed to service their clients. As seen in Figure 1, the typical DC contains servers, routers, switches, firewalls, SANs, and other equipment as seen in Figure 1. It is not unusual for one DC to be tied (networked) to other DCs to help with the workload. This distribution of hardware allows the DCs to move workloads from DC to DC in an effort to provide the best possible service for the client while controlling the cost of the hardware for the service provider.
Figure 1: Data Center Resources Include Servers, SANs, Firewalls, Router, and Switches
Distributed computing is pervasive in cloud computing and describes a method where multiple systems communicate and work together to achieve the desired result (as with grid computing). There is often overlap when discussing distributed computing and grid computing; however, the difference is that distributed computing is commonly used when describing disjointed networked systems:
- Distributed computing – networked computers sharing dissimilar workloads
- Grid computing – networked computers sharing the same workload
In order to support a distributed computing environment, a distributed file system (DFS) must exist. One of the best examples of a distributed file system is DNS – domain name system. DNS has an inverted hierarchical structure, a tree structure, starting from the root (.) And terminating with name resolution. Structures of this nature are examples of databases; in this case, a distributed database, as DNS is spread across many networks and servers. In keeping with the cloud computing style of rendering resources as services, DNS uses a database to resolve names; therefore, DNS would use the service database as a service (DBaaS) to contain its repository of domain names – this will be covered in greater detail in future lessons, but to give a preview, some examples of DBaaS include Amazon RDS, MySQL, HBase, Hadoop, and Cassandra.
Common Applications of Virtualization – Hypervisors
There are many examples of virtualized computer systems. For instance, there are virtual PCs, softphones (virtual phones on a computer), virtual network switches and virtual servers. The software used to create these virtual machines (VM) is called a hypervisor. Some of the more common hypervisors include:
- Oracle Virtual Box (Apple, Linux, Microsoft)
- Microsoft Virtual PC 2007 (Microsoft)
- Parallels (Apple)
- Microsoft Hyper–V (Microsoft)
- VMware (Apple, Linux, Microsoft)
- Citrix (Apple, Linux, Microsoft)
- Linux VServer (Linux)
The hypervisor, also known as the VM Monitor (VMM), is software used to:
- Manage the concurrent applications and guest OSs on a host
- Support the running of multiple OSs
- Manage the host system resources
- Isolate or partition VMs
There are two types of hypervisors, categorized according to their placement within the hardware/software system architecture.
Type 1 (native) – the hypervisor runs directly on the hardware, as in Figure 2.
Figure 2: Type 1 Hypervisor
Type 2 (hosted) – the hypervisor runs on top of an existing OS, as in Figure 3.
Figure 3: Type 2 Hypervisor
The hypervisor is a key component in creating virtualized environments. All virtualization software implements some form of hypervisor software, either open-source or proprietary.
A Type 1 hypervisor runs natively on the host computer. In this example, VMWare ESXi is hosting a 2008R2 Windows server. Notice in Figure 4 the VMWare management screen and the Windows 2008R2 desktop.
Figure 4: VMWare ESXi Hosting Windows 2008R2 Server
Figure 5 shows a Type 2 hypervisor on an Apple OSX host operating system running the hypervisor Virtual Box. The guest operating systems being displayed are Windows 7, Ubuntu Linux, and Chrome.
Figure 5: Apple OSX with Virtual Box
Virtualization provides the bridge between how information technology services are delivered in the current data center environment to how those same services and applications are delivered in a cloud environment. Virtualization involves the sharing of physical computer components and includes a logical abstraction of the physical assets of a computer system. When discussing cloud computing, virtualization, grid computing, and utility computing are essential components. The essential characteristics of cloud computing can provide organizations with a cost-effective solution to deliver IT services.
It is safe to conclude that cloud computing is a radical departure from traditional service-oriented computing, where fixed resources are contracted. Cloud computing converts all points of service, business, software, and hardware into logical abstractions, and they are allowed to be reconfigured dynamically.