With today's focus on IT simplification, green computing, and reducing operational costs, virtualization is an essential cornerstone toward your organization achieving such goals.
With a little bit of time and patience, you can learn just how easily virtualization can completely change the way you and your enterprise do business. Do you ever find yourself wondering if you can better utilize all those systems in your data center? Are you looking for easier ways to manage your IT environment? Wouldn't you be thrilled if you could reduce your data center's energy footprint and lower your utility costs? Are you looking for ways to increase your business continuity? If you answered "Yes!" to any of these questions, the good news is that these are all byproducts of employing virtualization technology in your organization.
The act of splitting a single physical entity into several logical entities is hardly a new or novel concept. In fact, most computer techs have probably worked with virtualization technology perhaps without even knowing it—for example, by partitioning a hard drive into logically smaller pieces to give the operating system the illusion of the existence of multiple physical hard drives.
Nowadays, virtualization is more commonly referred to as the ability for a physical system (i.e., the host) to run multiple operating systems (i.e., the guests) that provide the same functional characteristics as if they were on bare metal (note that the software providing the support for guest operating systems is also commonly referred to as the hypervisor). This thought is not particularly new either; corporations such as IBM have been producing such technology for decades with their high-end enterprise class servers. Sadly, due to the costs of capable hardware, this technology never made it mainstream. However, within the last five to seven years, x86 hardware manufacturers started introducing native virtualization technology (e.g., AMD-V and Intel VT) and, within their consumer-grade product lines, making it cost feasible for the majority of IT shops to start experimenting with virtualization systems—including compute, network, and storage. A mid-year 2010 study by Gartner indicated that 23 percent of applications were running within a virtual machine, and by 2012 year end, that figure is expected to grow to almost 50 percent—so virtualization is a technology that has been gaining significant momentum and will only continue to grow. Let's take a quick look at a few key benefits that virtualization brings to the table:
- Consolidation—There are tremendous benefits in consolidating your workloads from what previously ran on an abundance of physical systems to a much smaller number of systems. Consolidation reduces not only the amount of hardware an IT staff needs to maintain, but also the energy costs to power equivalent workloads (e.g., fewer processors, fewer fans, fewer heat sources, etc.).
- Increased Hardware ROI—With the acceleration of modern processor speeds, it's not uncommon for several machines within a data center to be underutilized. Consider an email server or a Web server that are used only during normal business hours and the valuable compute cycles "lost" during the evening hours. With virtualization, the same physical systems could execute batch workloads within guest images, all while maintaining logical separation. The benefit? Less hardware is needed to accomplish a similar workload volume.
- Operational Continuity—Because of the interruptions in service it can cause, system maintenance is often a dreaded task in an IT shop—for both users and administrators. Replacing a faulty drive, adding more physical memory, applying the latest software security patches—all of these tasks can potentially result in detrimental system downtime. And if any unexpected issues arise, the downtime can be painfully extended. Virtualization technology can provide options for cost-effective solutions yielding effectively zero downtime by migrating virtual machines to an auxiliary host while service and maintenance occur. And it gets even better; this migration operation can occur in mere seconds by virtue of shared storage (for the virtual machine definitions and virtual disks) among the hosts, so there is no need to wait lengthy periods of time for the migration to complete. Once service has been completed, virtual machines can be returned to the original host all whilst the end users' service goes uninterrupted (note that some hypervisors may be better than others in terms of support for live migration and pooled hosts for workloads, increasing the overall simplicity of this operational strategy.).
Virtualization and the Cloud
The terms virtualization and cloud computing are used quite frequently within the IT world, and it's important to understand how they are related. So while they are two very different concepts, they are also commonly tightly coupled and it's imperative to understand the basics.
A number of commercial providers out there today offer various online services for media storage, data backups, hosting applications, etc. These are all great examples of cloud (symbolizing the Internet) services. In other words, cloud computing can be simply defined as any organization that provides some form of compute, storage, and/or networking resources as a service to an end user.
So what does virtualization technology have to do with this? Well, it provides the service providers with a technical methodology by which the end users' needs can be met. For example, virtualization makes it a lot easier to provision compute, storage, and networking resources as they are needed. Virtual machine images (often referred to as virtual appliances) that perform a specific function (e.g., maybe a Web server or a J2EE application server) can be created ahead of time and deployed as needed; provisioning bare metal and installing the proper software, etc. would take a lot longer in most cases. In short, think of virtualization technology as one of the key enablers of effective cloud computing. Let's take a quick look at a few different flavors of cloud computing.
Software as a Service
Software as a Service (SaaS) is the cloud layer with which you are most likely to interact, as it is generally accessed via your Web browser. An application that is remotely hosted and accessed via the Internet can be considered SaaS. Your favorite picture, movie rental, and data storage Web sites are all examples of SaaS.
Enterprises that provide SaaS infrastructures allow their clients to deploy applications on their fully managed infrastructure and often bill based on a flat monthly or annual basis. This alleviates application providers from having to manage the many headaches that often accompany software deployments (e.g., hardware costs, maintenance, middleware administration, etc.) and allows them to focus on the application itself.
Platform as a Service
Platform as a Service (PaaS) providers generally provide a computing solution stack that includes an operating system and some other primitive middleware software packages such as a database or a Web server. As a result, users of the PaaS environment are given some flexibilities beyond that of a SaaS environment yet are not burdened with maintaining the middleware and underlying hardware. These compute platforms are often delivered as virtual machines, which makes it relatively simple for the PaaS providers to provision the required resources in a timely fashion.
Infrastructure as a Service
Infrastructure as a Service (IaaS) providers offer a bare "physical" platform (usually these are virtual machines) that provide only the basics—raw compute, storage, and network resources. Users of this infrastructure are responsible for installing and managing their own software installed atop this type of platform. Users are commonly billed using a "utility" type model in which costs reflect the volume of compute, storage, and network resource consumed. This type of environment is geared toward users who want to maximize their control over the environment without being subject to the (often paramount) underlying physical platform costs—both from an initial investment and ongoing maintenance perspective. For example, if a disk drive fails or a network switch dies, it's the responsibility of the IaaS provider to make the repair and the user need not be concerned or subject to additional costs.
Security in the Cloud
We simply can't write about the cloud and not briefly touch on the (contentious) topic of security. While cloud computing and the underlying virtualization technology offer a lot of benefits, one area of vulnerability is in security. With most cloud resources being virtual in nature, there exists an ill side effect that several enterprises' data exists on a single piece of physical hardware; this opens the doors to all sorts of philosophical debates about privacy—i.e., a rogue employee of a cloud service provider could potentially access a number of enterprises' data by virtue of them being co-located. Or a hacker could gain access to similar data by penetrating the cloud provider's security measures. The list goes on and on. And frankly, the concerns here are legit and warranted. Users of the cloud should employ careful risk assessment of the provider's security practices before deciding to what degree the cloud will be utilized. For example, does the provider employ strict data encryption policies? Are single-tenant deployments possible when appropriate (likely at an additional cost)? What sorts of auditing trails are recorded? The answers to these types of questions relative to your risk assessment of the cloud's use cases will help you make a sound decision in terms of to what extent a cloud may be able to assist you.
Wrapping Up the Cloud
Cloud computing and virtualization go hand in hand, with virtualization often being the underlying enabling technology of the cloud. Depending on your infrastructural requirements, perhaps being a user of the cloud might be an appropriate avenue for your enterprise.
Key Players in the Virtualization Arena
There are a number of virtualization providers from which one can choose, including VMware ESX/ESXi, Citrix XenServer, Microsoft Hyper-V, Linux KVM (Kernel-based Virtual Machine), Oracle VirtualBox, IBM PowerVM, IBM z/VM, etc. Deciding on which hypervisor technology to employ will depend on a number of factors, such as hardware support (e.g., are you an x86 shop, a Power shop, a mixture?), pricing models, support levels, management interfaces, etc. If you're new to virtualization, you'll likely want to experiment with a few technologies and make the decision that is most appropriate for your organization based upon some of these factors. You may even find yourself mixing hypervisor technologies based upon your requirements and budget.
Managing the Physical and Virtual Environment
So you decide to make the leap to virtualization and you quickly find yourself with tens, hundreds, or maybe even thousands of virtual machines to manage. What's a system administrator to do? In addition to the physical resources, there are now numerous virtual resources to manage. Exploring the management interfaces provided by each hypervisor provider is critical. For example, VMware vCenter, Microsoft's System Center Virtual Machine Manager (VMM), Red Hat's RHEV-M (for KVM) are instances of virtual management software used to manage the respective hypervisor technology. But what if your organization employs multiple hypervisors (e.g., for different flavors of workloads)? Now there are multiple virtual management tools to use, atop any physical resource management tools already being used.
But wait! There's still hope for maintaining a system administrator's sanity. IBM has developed a systems management product called IBM Systems Director, which provides the foundation for heterogeneous systems management. IBM Systems Director also has an advanced manager plug-in called IBM Systems Director VMControl, which allows an administrator to manage a heterogeneous set of hypervisors, including VMware, Hyper-V, KVM, and PowerVM from a single pane of glass. VMControl provides an excellent interconnect between physical and virtual resource management and simplifies the lives of IT administrators who need to cope with the reality of today's data centers. So if this sounds anything like your IT shop, definitely check out IBM Systems Director VMControl today.
The reality is that virtualization is a technology that's here to stay, and the benefits it can provide your organization are paramount. Among other benefits, virtualization provides organizations with additional ROI in terms of physical hardware investment, can lower operational and maintenance costs, promotes greener computing, and allows businesses to more rapidly adjust to IT demands. To what extent and at what pace you adopt virtualization will depend on many factors, but it's critical that someone within your organization explore the ways in which virtualization may benefit your business. Whether it's simply using virtualization as a means to quickly provision development and test systems or virtualizing your entire production environment, virtualization can definitely play a role in transforming the way in which you do business!