[caption id="attachment_822" align="aligncenter" width="618" caption="Warning: trying to place an actual server on a cloud will result in it plunging to earth."] [/caption] Anyone setting out to implement virtualization and a private cloud will likely discover it involves a boatload of terminology and types of software. Sorting through all of it can be overwhelming—so here’s a quick guide: Hypervisor: This is software that lets you run multiple operating systems (called instances) simultaneously. VMWare’s is called ESXi; Citrix has XenServer, which is based on an open-source product called Xen; Microsoft offers Hyper/V. Technically, infrastructure can be virtualized and managed with just hypervisor software. But that can quickly prove an exercise in frustration, as your typical IT administrator wants to do things like allocate and de-allocate instances. Allocating instances involves installing software on the instances. That’s where additional tools come into play. Remote Desktop Clients and Servers: These are tools for logging into the server. With these, the user sees and interacts with a screen that appears to be locally running a desktop operating system (such as Windows). But the operating system is actually running on the server. To make this work, you need software on both ends—one program running on the server instance, and a program running on each user’s computer. Microsoft includes its Remote Desktop Services (for servers) and Remote Desktop Connection (for clients) in all recent versions of Windows. Citrix’s XenApp is that company’s answer to remote desktop software. Application Streaming: Although you can use remote desktop to run an application remotely on a server, an alternative approach involves something called applications streaming. At heart, an application is just code running on your computer. Normally the code is stored in an executable file on the hard drive, loaded into memory, and then run. But application streaming uses a different approach, whereby the code is retrieved as needed through an application-streaming server. This means the application doesn’t have to be installed locally on the computer. Citrix XenApp supports application streaming, as does Microsoft App-V. Application Virtualization: Related to application streaming is application virtualization, which features an application running inside its own “sandbox,” or a runtime environment isolated from other applications on the same computer. One example of application virtualization is VMware’s ThinApp suite of tools. Application, Desktop, and OS Delivery: When we sit at our home computer, the notion of apps and an operating system being “delivered” to us might not make much sense at first. But in the context of a large IT center, the term becomes much clearer: users could be viewing a remote desktop system where everything—from the OS to the applications—are all running on a server. Or they could be running a local desktop with application streaming; or else simply running everything locally. However the user experiences the application, desktop and OS, it is being “delivered” to the user. Virtual Desktop Management: The big vendors all offer tools for managing virtual desktops. For example, VMWare offers its VMWare View tools. Citrix has XenDesktop, which is an entire suite of tools. Cloud Management: What makes a cloud so powerful is its speed and ease in allocating and de-allocating servers running hypervisors, and allocating and de-allocating instances running on the servers. The hypervisors themselves include very limited management tools. Instead, the hypervisor vendors create separate tools for management; there are also many third-parties that have built free, open-source, or commercial management tools. Finally, here are three terms you’ll often see: Infrastructure as a Service (IaaS), which refers to the software that lets you manage your cloud. Platform as a Service (PaaS), which is a step higher from IaaS, adding in support for operating systems and computing environments. Software as a Service (SaaS), which refers to the allocation of software running in the cloud.