I find it funny each time I see an article headline such as “Containers - the virtual machine killer”, “Cloud vs. virtual machines”, and my favourite “Unikernels kill containers which kill virtual machines”.
There’s a few misguided assessments: for starters, Containers typically run in a virtual machine. It’s a complimentary technology, not a competitor. Secondly, 100% of cloud servers are deployed as virtual machines. Finally, unikernels are just small virtual machines!
Turtles all the way down
As you can see, virtual machines won’t disappear anytime soon, although I suspect the current leading hypervisors may be replaced by better alternatives, thus leading to better/tailored guest systems (aka virtual machines).
Relevant use-cases
In our previous post, we discussed converting Installer-based software to virtual appliances, and that highlights one of our favourite benefits of virtual machines (virtual appliances): The ability to greatly improve the developer and customer experience of building and deploying software, respectively.
The truth about Installers is simple: Users/Customers hate Installer as much as you hate building them. It’s really lose-lose.
Having said that, for the moment not all software - particularly desktop software - can run in a virtual machine due to the inherent overhead. Containers somewhat solve that for developers, but that solution is unsuitable in production for businesses and every day users.
Another use-case, is for SaaS providers. Oftentimes SaaS providers build their software without considering the enterprise customers who are suffering with their slow, bloated, overpriced enterprise software. Being able to package an entire SaaS app, and then ship that as an on-premises virtual appliance - that’s just wonderful (and also our specialty). The benefit is twofold: the enterprise gets modern and productive software, SaaS providers increase their revenue.
Side note: on-premises does NOT mean on AWS or Google Cloud. It means on-premises, in the customer’s physical location, on-site, on their servers, literally behind their firewall, on a private local network. We can’t stress the importance of not losing the true definition of the words “on-premises”.
Another often forgotten use-case for virtual machines: product evaluations. I must give credit to one of our customers (thanks Leo) for highlighting that, but the idea is if you have a software suite and want your customers to test it with minimal impact to their existing environment, just give them a virtual machine! The evaluation becomes a piece of cake, and your support load from “trial users” will significantly decrease.
Feeling overwhelmed with VMs?
It’s easy to get overwhelmed with the abundance of tools for building, configuring, automating and managing virtual machines. Sure, it’s easy when you only have one machine on which to deploy (i.e: your own dev machine), but it’s a whole other story when it comes time to shipping to customers, particularly enterprise customers who expect stable and professional software.
That’s where we come in. As I mentioned earlier, we’re virtual appliance building specialists (haha I know, I know), and we want to offload all that work from you, so you can focus exclusively on your software. The virtual appliance world is easy to get into and move around, but it can quickly turn to quick-setting cement. Feel free to contact-us if you want to discuss and see how we can help you.