In Part 3 of the applications in the cloud segement (You can read <a href="http://blogs.egroup.jasonmangone.com/?p=2515" target="_blank">Part 1</a> and <a href="http://blogs.egroup.jasonmangone.com/?p=2545" target="_blank">Part 2</a> here) were going to switch the focus from the end user (sort of) to the administrator/developer/datacenter and talk about Virtual Appliances and how they can be utilized to increase the availibility, performance and overall cost of ownership for client server applications in the datacenter.  By using Virtual Appliances and applying the principals of "Just Enough OS" (JEOS, horrible acronym) virtual appliances can be like <a href="http://www.vmware.com/products/thinapp/" target="_blank">ThinApp</a> for the datacenter.  Allowing your applications to be abstracted from the bare metal of the systems that is running them, providing portability, security and performance to make operate effectively in the cloud.<!--more-->

What is a virtual appliance?  <a href="http://www.vmware.com/appliances/" target="_blank">Here is your one stop shop for all thing Virtual Appliances.  Click Here</a>.  In short, a virtual appliance is a "Pre-built software solutions, comprised of one or more Virtual Machines that are packaged, updated, maintained and managed as a unit." -VMWare, Inc.  They allow you to build pre-configured, customized and virtualized application delivery systems that act as a single unit.

What is JEOS?  JEOS or "Just Enough Operating System" is pretty straight forward and basically means that the underlying OS of a specific application should have and only have the resources needed to service the application it is designed for.  This allows for more stable, reliable and predictable application deployments.

<strong><span style="text-decoration: underline;">Application Portability:</span></strong>  Portability of applications in the cloud is one of the key challenges to becoming cloud ready.  Your applications need to be able to run in not just one tailored location but potentially in several locations geographically and architecturally.  The cloud is meant to abstract the management and ownership of the infrastructure from the application owneres and developers.  By deploying virtual appliances you guarantee that your applications can move between hosts and datacenters easily without cross system dependencies.

<strong><span style="text-decoration: underline;">Application Security:</span></strong>  One of the key differentiators from hosted environments in the current model to hosted environments for key business critical applications in the cloud is data protection and security.  One of the major questions is, "I know my application is secure and follows best practices but how do I know that another application running in the same datacenter/host/server isn't exposing my application to risk.  By running applications as virtual appliances they are not exposed to shared hosting operating systems or other workloads.  If a secondary application consumes too many resources your virtual appliance can simply motion to another host just as a server would in a virtualized environment.  Your applications data is enclosed in the appliance and therfore protected from other application intrusions that would expose you to risk in a shared hosting environment.

<strong><span style="text-decoration: underline;">Application Peformance:</span></strong>  Continuing on with the last line of the section before, by allowing applications to motion to different hosts depending on resource consumption and current utilization you achieve a higher balance across the datacenter.  Balancing workloads is a key contributor in delivering application performance.  By utilizing JEOS principles and reducing unnecessary overhead your applications become more stable and predictable.  Increased predictability is key when working with client server applications and meeting service level agreements.

Lowering the cost of ownership.  I sat through a session discussing <a href="http://susestudio.com/" target="_blank">Suse Studio</a> and was intrigued by the idea of running .Net applications on Linux using <a href="http://www.mono-project.com/Main_Page" target="_blank">Mono</a> and saving on the cost of licensing a Windows Server license for each virtual appliance deployed.  I will be testing this out soon and will be posting results, if anyone has any feedback or has successfully deployed in this scenario I would love to hear about it in the comments section.