Loading...
Loading

4 Ways Virtualization Can Save You Time And Money

2012-01-31by Tavis Hampton

The Internet is always swarming with buzzwords like "the cloud", "SaaS", and "virtualization". Virtualization is often touted as an economical and even environmental savior for large enterprise operations, but it also has practical uses for web developers and freelance system administrators. Many IT professionals would have a hard time imagining a world without it.

Virtualization has many uses, some relevant to web developers and others not. In order to determine if virtualization is something you can use, you need at least a basic understanding of what it is and how it works.

Virtualization Defined

Virtualization occurs when the user or system administrator creates a virtual version of a something. That something can be anything from a storage device to an entire operating system. Once a single devic e has been virtually divided, the two, three, or more devices share the system resources.

In web hosting, the two most common types of virtualization are shared virtual hosting and virtual private servers. The first only virtualizes the web server's file system and configuration for the shared hosting user. The second virtualizes an entire operating system, giving the user the appearance and functionality of actually using an independent server.

How Virtualization Can Help

There are a plethora of ways that you can use virtualization to assist you with your business or freelance work. Among them are testing, virtual private servers, multi-platform environments, and training.

1. Testing

"Try before you buy" is a very old concept, one that predates computers. Before your company spends thousands deploying a soon-to-be broken system, you might want to consider giving it a test run. Likewise, before you launch a freshly-developed website with unknown security vulnerabilities, it might behoove you to test it first.

The purpose of your virtualization testing can take many forms.

  1. Development - Whether you are developing a single web application or an entire development platform, virtualization is a beneficial tool that allows you to actually create a server environment that is close to or even identical to the one you will use after deployment.

    For example, if your laptop is a Mac but the application you are building will be deployed on a Linux server, you can install Linux within a virtual machine and setup the web server exactly as it would be on the actual server. For me, a long-time Linux user, the only effective way for me to test websites I develop on all browsers is to install a virtual machine with Windows and Internet Explorer.
  2. Learning - Virtualization is a great way to learn a new system without having to actually replace your current one. For example, a new job or freelance assignment may require you to know a Java server environment, but you obviously do not have one running on your PC (unless of course you do, which would be weird). Simply install it within a virtual machine and play around with it as much as you want, without having to worry about breaking anything.
  3. Compatibility - Virtualization is an excellent way to test hardware and software compatibility. If you are not sure a new application will run the way you need it to on a new version of an operating system, you can install the OS and the application on a virtual machine.

    This is also useful for upgrades. For example, if you developed an application using PHP, you necessarily used the current version of PHP for development. As time passes and new versions are released, you will eventually have no choice but to upgrade your server to the latest version. Using virtualization you can test your web app for compatibility before installing the new version.



2. Virtual Private Servers

A virtual private server (VPS) is a virtual machine that runs a complete operating system and server environment within a real server. You can run multiple VPS instances on a server, allowing the users to essentially have their own servers without needing extra hardware. A VPS is distinct and independent from the other VPS instances. Therefore, the administrator of the VPS has full administrative privileges, as he would on an actual server.

Each VPS shares the same system's resources. Therefore, if the physical server has 8 GB of RAM, the system administrator may allocate 1 GB of RAM each to the six VPS containers. Each will also have a maximum CPU allocation so that they do not steal resources from the other VPS containers.

A VPS is cheaper than a dedicated server. Therefore, if you ever need to run a web application that requires a dedicated server but is not necessarily a large project, you may be able to use a VPS and save money.

3. Multi-Platform Environment

While a VPS presupposes you are going to share your server's wealth with others, you can also use virtualization for a single business or project. For example, a client may have a large project that requires a CRM application to be installed on a Windows server and a groupware application that runs on a Linux server. Rather than requiring the client to buy two separate machines, you can run both platforms on the same box using virtualization.

In some cases, you may even run two or more instances of the same operating system but have them configured differently from one another. Virtualization affords you that flexibility. In this scenario, the system administrator could use a hypervisor virtualization technique, which runs concurrent guest operating systems on the host machine without actually interacting with the host operating system. The host operating system's sole function is to run virtual machines.

4. Share the Knowledge

As you build your development empire, it is only appropriate that you have minions. Using virtualization, you can train your army of coders without having to let them mess up a real server. Each trainee or student can have a virtual machine installed on a laptop or desktop. The students can test their web applications in real-world environments without real-world consequences.

Even if a student develops a web app that has a security hole that could cripple a real server, the worst that could happen is a broken virtual machine, something that has no permanent effect on the real system.

Virtualization Option

Just as there are numerous ways you can use virtualization, there are multiple software options for using it.  Some of these options are free and/or open source, while others are proprietary and require licensing. In all cases, they require the architecture of the virtual machine to be the same as the actual machine, which allows the virtual machine to operate at a high performance level, without hardware emulation. What follows are only a few of the many virtualization software solutions on the market.

VMware Server/Workstation - VMware provides a number of proprietary applications that offer virtualization. It offers server and workstation versions and supports several host and client operating systems, including Windows, Linux, Mac OS X, Solaris, and others.

Windows Hyper-V - Microsoft ships a free of charge version of its hypervisor-based virtualization system for many x86-64 versions of Windows Server 2008. It allows the administrator to host several Windows versions as guest operating systems (Windows 7, Windows Server 2008, 2003, Vista, and XP) and Linux (including SUSE, Red Hat Enterprise Linux, and CentOS).

KVM - Since version 2.6.20, the Linux kernel has shipped with native support for virtualization. Kernel-based Virtual Machine (KVM) supports x86, x86_64, PowerPC, IA-64, and other processors. It can host multiple guest operating systems including Linux, Windows, BSD, Solaris, Mac OS X, and others. As part of Linux, KVM is free and open source.

Parallels - Parallels is a company that provides several proprietary programs for virtualization and virtual private servers (Virtuozzo Containers). It supports Windows, Linux, and Mac installations.

OpenVZ - OpenVZ provides a free and open alternative to Parallels Virtuozzo Containers, allowing Linux system administrators to create and manage virtual private servers. OpenVZ is a popular choice for web hosting companies looking for an affordable VPS solution.

Virtualbox - Provided by Oracle, Virtualbox is a free and open source virtualization program that you can install on a desktop or a server. Because it is free and has a desktop version, it is easy to install and use to test web development and other projects. It supports Windows, Mac OS X, Linux, BSD variants, and several other operating systems.

Windows Virtual PC - This free of charge program from Microsoft is designed to give Windows 7 users the ability to run older Windows versions, no earlier than Windows XP Professional SP3. It may be useful when testing your development for backward compatibility.

Xen - This Linux/Unix virtualization system uses hypervisor technology to give virtual machines direct access to hardware. Xen can run multiple guest operating systems, including Linux, BSD variants, OpenSolaris, and Microsoft Windows. Xen also supports a number of important architectures, including X86-64, IA-32, Itanium, and ARM (a popular processor architecture for mobile devices like smartphones and tablets).

A Virtual World

The versatility of virtualization means that you may encounter it anywhere: on servers, desktop computers, and even mobile devices. It is particularly useful for web development and testing and can save money on web hosting and server deployment. With so many uses for virtualization and limitless possibilities, it is becoming clear that we now live in a virtual world.


Tavis J. Hampton is writer with several years of Linux system administration experience. His writing credits include articles on the best hosting companies and open source software.

news Buffer
Author

Tavis Hampton

Tavis Hampton

I am a freelance writer with several years of experience working with dedicated servers and web hosting. I specialize in Linux system administration for work stations and servers. View Tavis Hampton`s profile for more
line

Leave a Comment