If you’re a systems administrator or DevOps engineer who works in the IT industry and gets to make choices around what virtualisation to use or whether to virtualise at all, you’re no doubt aware that there are numerous choices available to you, some of which have a cost, and others which are free. In this article, I have picked three options which I’m going to compare: Proxmox, VMware and the cloud (specifically, AWS) and the advantages and disadvantages to each.
It’s worth bearing in mind that this comparison will not suit everyone and you should consider your budget, use case and level of knowledge before making a decision on one of the choices listed here. Your choice will also likely be different if you’re a home user, small business, or large enterprise, as your requirements will be different. However, this article should help you to make an educated decision.
Proxmox has been around since 2008, and it is free and open source. It allows you to run containers using LXC, as well as fully virtualized machines on KVM. It’s easy to install (you can download an installer which can be used to deploy on bare-metal), and once installed, it provides you with a nice, easy-to-use web interface.
- Free to use for a consumer or business
- Clustering functionality
- Live migration (when clustering)
- Live backups
- Multiple back-end storage options (LVM, ZFS, iSCSI, Fibre Channel, NFS, GlusterFS, CEPH and DRBD, to name a few)
- Good subscription pricing if support is required
- REST API.
- If you like to use automation tools like Terraform, then there are no out-of-the-box providers to work with Proxmox, although there are third-party providers.
There are many different versions of VMware virtualization software, but for the purposes of this article, we’re talking about ESXi. Unlike Proxmox, VMware does not allow you to run containers natively on the hypervisor, and it uses its own proprietary virtualization software under the hood.
- High availability (clustering)
- Live migration
- Live backups
- Fault tolerance (close to instant stateful failover of a VM in the event of a physical host failure)
- Excellent support options (at a price!)
- Free version available, but with very limited features
- Multiple back-end storage options such as NFS, iSCSI, Fibre Channel, etc.
- Some automation tools (such as Terraform) have native providers, but more work is required.
- As of ESXi 6.5, it features a cut-down web interface similar to vCenter, but it’s free!
- Clustering requires licensing, which for some can be expensive.
- Proprietary—meaning you can’t fix some issues yourself or investigate
- Terms prohibit usage in certain scenarios unless specific licensing is purchased, which for some can be costly.
The cloud, aka AWS
There are numerous different cloud options available to you to choose from, but the biggest ones by far are Amazon’s AWS, Microsoft’s Azure, and Google Cloud. Which one you choose can depend on the sort of workload you’re wanting to run and the ecosystem you find yourself most drawn toward. For instance, those running Microsoft products may find that the Azure environment helps them to get the most for their money, and is easiest to use due to the various integrations. Likewise, if you’re an all-Linux shop, then you may find using AWS or Google Cloud to be more beneficial.
For the purposes of this article, we’re comparing some of the advantages and disadvantages of using a cloud provider like AWS.
- Hosted and taken care of by Amazon, with no on-site or co-located hosting required
- Many automation tools work incredibly well with AWS (such as Terraform, Packer, etc.)
- An entire ecosystem of tools and services allow you to focus on developing an application rather than taking care of infrastructure. Some of these tools include Route 53 (DNS), RDS (Relational Database Service), EC2 (Elastic Compute), and many more. (See the resources section at the end of this article for more details.)
- Support is available (at a cost!)
- Scalable up and down (as are costs!)
- Many features of a stack are taken care of for you (database, Web, DNS) this means that by using these services, you’re going to be paying a premium. Depending on your requirements, level of knowledge and budget, this might not be a problem for you.
- Costs can be confusing. Amazon does have a calculator (see resources section) which helps you to identify costs upfront but it’s easy to miss a particular charge or misunderstand what is required, which can prevent a balanced view.
As you can see from the above, there are many options available to you when choosing how you want to host your services or applications. For some, an on-premises or co-located solution like Proxmox or VMware is the way to go as it affords you control of the whole environment from top to bottom at a predictable monthly or yearly cost. However, this has the downside of not allowing you to make cost savings if you have a particularly quiet period where infrastructure isn’t required.
AWS comes into its own if you want scalable costs and have a team of developers writing an application that needs to be hosted on the Internet, but you may not have the skills in-house to set up an on-premises solution. As AWS is a full ecosystem of tools, it replaces the full stack you would have otherwise created, with much less hassle…If you’re willing to pay for it!