I'm not a betting man but I'd put a lot of money on my prediction that the next major wave of server operating systems will be available as virtual machines (VMs), ready to run on your platform of choice.
I think that this is a reasonable (read, sure thing) bet that you'll be able to purchase and download ready-to-run VMs as well as ISOs from your favorite operating system vendors within two years.
If you visit VMware's Virtual Appliance Marketplace, you'll get an idea of what you're in for in days to come. There are hundreds of virtual appliances ready for you to download and run in your virtual environments.
True, due to licensing, most of them are Linux-based, but it won't be long until you're able to purchase and download Windows-based VMs — VMs tailored and tuned for a variety of purposes and applications. In fact, it wouldn't surprise me if application vendors started delivering their applications on VMs too.
Can you just imagine it — browsing, purchasing, downloading, and running a new application or a whole new N-tier environment in minutes instead of weeks or months?
I have imagined it and it's a beautiful thing.
It's no secret that I love virtualization. To me, it's the best thing since the wheel. Or sliced bread. Or insert your favorite idiom here for how great virtualization is.
And some clever, better-financed-than-an-idea-guy-like-me, person will create an online marketplace that collects, maintains and processes a catalog of VMs for every need. I foresee a time when you'll page through an online catalog and pick your application, your operating system, your hardware requirements (CPU, disk, memory, network), and additional applications like building a custom system on Dell's website. Once complete, the online system will package your request into a portable zipped OVF file.
You'll click on the one-step pay option and the OVF will appear in your account area as a link ready for you to download and deploy — all fully licensed and ready to go to work.
If vendors get really clever, which I think they will, you'll be able to choose whole infrastructures. Yes, you can deploy them to hosted cloud accounts, to your own private data centers or to a hybrid private-public scenario. Just think about how handy this would be for creating disaster recovery (DR) setups.
Yes, I know about Amazon's cloud and a few other automated vendor sites that do something similar to this but I've never seen one that was actually production-ready. Most of the ones I've seen are for testing or laboratory scenarios. And if you've ever tried to use Amazon's cloud app or deploy any virtual machines, it isn't for the faint of heart, the in a hurry, or even the reasonably patient. Yes, I could do a better job.
One particular example of a cool method of delivering pre-built VMs to a virtual environment that I've seen is with Proxmox VE. You can select from a list of VM templates that deploy in seconds to your virtual environment. Citrix XenServer has something similar to this as well. I know that you can create your own templates but, in my humble opinion, if you use a vendor's template, then you're getting a product that's more supportable — more supportable because they built it with optimizations, virtual machine tools, drivers, and to specifications that only they know about for their platform. I love vendor templates and I've never had a problem with one. Home-grown templates*, on the other hand, are a different story.
I think that, in the very near future, all operating systems, and certainly all server operating systems will be delivered in this cafeteria style or app store style fashion. I think the time has come to expedite delivery of applications and operating systems in VMs — especially those that require special configurations or specific handling.
From a support person perspective, it would relieve a lot of fingerpointing if I could just contact my vendor and say, "We have VMware 4.1 Enterprise Plus with patch level X running on AMD-based hosts and Windows VM #10014", please open a Sev 2 ticket for this issue. They know the environment. They know the VM. They know the problem. They know I'm waiting for a solution. I don't need any angst or any fingerpointing when I have a problem that's costing a client money.
The standardized, vendor-created, vendor-supported VM would solve a lot of problems. Think about how many variables there are to a system that's been installed by Geek #1, patched by Geek #2, supported by Geek #3, app developed by Geeks #4 through #10, and hardware and software from vendors A through Z.
And don't talk to me about vendor lock-in like it's a bad thing.
After many years in this business, I've come to realize that having a one-stop shop is a very comforting feeling. If you don't want a single vendor "controlling" your life, then perhaps software vendors should follow a strict protocol and go through a vetting (certification) process for their VMs. In other words, if you use VMware, for example, as your virtualization platform, then only use VMware-certified VMs in your environment. If you need a VM that isn't certified, put pressure on your vendor to get certified.
A VM store is a great idea. I'm betting that a lot of other people will think so too. And to the vendors out there who hadn't thought of this, you're welcome, now pay me.
*Sure, not all home-grown templates are bad but very few are really great.