This article was roginally published Monday, March 23, 2009. Here is the link location of the original blog post.
I have been messing rather seriously with virtualization recently. Specifically Microsoft Virtual PC and Microsoft Virtual Server products, as well as SUN’s Virtual Box. The good news is they all work pretty much as advertised, albeit they have differences. I now have a machine that runs Windows VISTA, Server 2003, Windows 98, SUN Solaris, Ubuntu, all simultaneously! I even found I can run some old software again, even DOS! This capability also helps me to realize that in this machine I have now created a miniature version of what cloud computing is going to be. How cool is that? But, alas, reviewing the functionality or comparing the two products is not the purpose of this posting.
What is more fascinating to me is that within the virtualization layer – something they call the Hyper-V layer – there has to be a virtual network allowing the virtual machines to connect to one another as if they were on an Ethernet. I have been exploring this virtual network, trying to see what you can fiddle with, and what you can’t. While my exploration continues when I have spare moments, I am beginning to realize that we are actually in the very early days of the virtualization product cycle. Let be more specific: in order to truly virtualize computing, I need to be able to virtualize a network, and not just with an Ethernet Switch (both Microsoft and SUN advertise they have a virtual Ethernet switch at their virtualization layer). I also think we need virtual routing, with multiple nodes so that I can clearly configure subnetworks and create rules for routing, authentication/access, filtering, and a whole host of other functions.
I would imagine that having a virtual cloud in between my virtual machines is exactly what the developers of the next generation of cloud computing applications will need as well. This way they can simulate cloud computing more authentically and create the applications that we will all need. Of course the same could be said for testing. But, to have a virtual cloud, you need a plurality of network devices, that can be created on demand, and configured between my virtual machines (If Cisco is listening, I would love to be able to install IOS as a virtual machine!). Without this ability, we are apparently relegated to simple Ethernet connectivity in these early days. This limitation can be problematic at best. I recently fired up two Windows 2003 servers as virtual machines and they went crazy (which one was to be the DHCP king, etc.) because I could not separate them from each other on the virtual network, at least not easily.
Having all these cool virtual machines has limited functionality without networking. I have already conceded that running old applications is a good thing, and running an application that is better suited to Linux vs. Windows may be interesting to some. At the end of the day, having four or five virtual machines running does not improve my ability to multitask per se. I know, I am taking the fun out of it. But really – what is the end purpose of this for end users? Has the computing, memory and disk capacity cost shrunk so small that it is just a neat thing we can now do in computing? I have no clear answers today, but perhaps running simultaneous network games would be cool. I think that getting rid of some boxes in my house would be good, but I quickly return to needing a virtual network. For instance: get rid of my router and DSL/Cable Modem would be cool – just make then virtual machines! Now I just plug my cable or phone line into my NIC and I am there! With the kids getting older and needing their own machines, perhaps having one big server running virtual machines for each family member allows them to carry around cheap laptops, but I need Authentication and Authorization services especially if they are connecting from a friends house or the Starbucks.
Another possibility that cloud computing concepts raise – dare I say it – is the reduction of the role of the IT department. No more updating, imaging or software license management. Its all in the cloud. Before I run completely down that rat hole, let me come back to my point and how it connects. Virtualization and simulation go hand in hand. In order to simulate the functions of cloud computing we need to virtualize the cloud. These first steps to virtualization open the door, but the cloud is not without its components of networking and infrastructure. So to simulate we need more components inside the virtual world – more networking components. It will be fascinating to watch this world of virtualization and whether we get these components quickly, and who produces them.
To try vrtualization yourself, check out Microsoft’s Virtual PC at http://www.Microsoft.com/Virtualization .
To try SUN’s Virtual Box – go to www.virtualbox.org/ .