Vagrant is a tool designed to create and configure lightweight, reproducible, and portable development environments. It leverages a declarative configuration file which describes all software requirements, packages, operating system configuration, and users.
N/A
Oracle VirtualBox
Score 9.3 out of 10
N/A
Oracle VirtualBox is an open source, cross-platform, virtualization software, enables developers to deliver code faster by running multiple operating systems on a single device.
N/A
Pricing
HashiCorp Vagrant
Oracle VirtualBox
Editions & Modules
No answers on this topic
No answers on this topic
Offerings
Pricing Offerings
HashiCorp Vagrant
Oracle VirtualBox
Free Trial
No
No
Free/Freemium Version
Yes
Yes
Premium Consulting/Integration Services
No
No
Entry-level Setup Fee
No setup fee
No setup fee
Additional Details
—
—
More Pricing Information
Community Pulse
HashiCorp Vagrant
Oracle VirtualBox
Features
HashiCorp Vagrant
Oracle VirtualBox
Server Virtualization
Comparison of Server Virtualization features of Product A and Product B
If you're writing software, particularly software that depends on other services (web servers or databases for example) then Vagrant is great. I know some people skip Vagrant and just set up virtual machines on their own, but I've found that Vagrant streamlines the process nicely and makes it easy to update or swap out versions. If you're a web developer (which I am) it's amazing. I can have several boxes configured for my different projects and I just spin them up or down based on what I'm working on. One scenario where this might not be ideal is if you're running Vagrant on a computer that has limited resources. Since you're running a virtual machine with its own operating system and such you'll want a host computer with enough RAM, hard drive space and CPU to run the virtual machine properly without killing the performance of the host. The virtual disks can also take up a lot of space if you're not careful so if you have many virtual machines provisioned and don't clean up the old ones that you're not using, you may find that your hard drive is full. Each of my Linux servers take up about 10GB of disk space.
It is best suited when you want to have different operating systems on your laptop or desktop. You can easily switch between operating systems without the need to uninstall one. In another scenario, if you expect some application to damage your device, it would be best to run the application on the VM such that the damage can only be done to the virtual machine. It is less appropriate when time synchronization is very important. At times the VMs run their own times differently from the host time and this may cause some losses if what you doing is critical. Another important thing to take note of is the licensing of the application you want to run your VM. Some licenses do not allow the applications to be run on virtual servers so it is not appropriate to use the VM at this time.
Easy to create machines with different OS's, list of them can be found from Vagrant's website with configuration details.
Flexible configuration, user can determine what software will be pre-installed to machine. Saves time because it doesn't need to be done manually every time.
Easily manage full environments, not just single machines, with single command.
Can spin up multiple VMs on a host-only network that speak to each other and allow for interesting test environments spun up at will.
Cross-platform functionality allows me to run it on my Linux Desktop and know that tutorials I make with it could be approached by someone on a Windows or Mac OSX system. Hyper-V is limited to Windows, and VMware Workstation requires a license (VMware Player is free, but is not open-source and is more limited in comparison to VirtualBox).
If you are testing tools like Vagrant and Test-Kitchen, VirtualBox often seems to have the highest amount of support and documentation when it comes to compatibility (though, many people do use Hyper-V or VMware Workstation without issues).
Learning curve is steep - It can be challenging for someone to set up initially. After some coaching, the basics come pretty quickly though.
Relies on external Virtual Machine applications - It would be great if Vagrant itself could run the virtual machine instead of leaning on other virtualization software. This is a small detail, but would make setup simple.
The memory footprint is high, and requires above 8 GB of memory to run an Ubuntu VM smoothly (considering developing inside ubuntu OS inside a MacBook Pro).
Some known issues with OVF/OVA images import/export. We had the issue of some sections in OVF being ignored (especially Startup and Install sections).
Some intermittent issues when mounting external hard drives and trying to access them from within the running VM.
I love using the Graphical User Interface. The VirtualBox Manager is very easy to understand and use. You can quickly create, configure and manage all your virtual machines in one window. It makes operating virtual machines easy and simple. When using VBoxManage it gives the user comprehensive control over VirtualBox so that you can use automation and scripting at the command-line interface
Docker has a few advantages, especially with the disk size bloat brought on by Vagrant's hosting an entire OS and project in a VM. It relies on native tools, however, and may not support every software. Vagrant provides uniformity, efficiency and repeatability within team work and for deployment and testing.
VirutalBox is very similar to using Vmware with the slight difference in appearance and what might be considered a less polished look. However, what it lacks in polish and looks it makes up for in functionality, easy of use and the wide range of operating systems and features it supports without the need of buying the full professional edition
The only problem I have found is that the deployment is dependent and intrinsically linked to the Host OS. This is different from bare metal solutions which remove that dependency on a Host OS. The latter is more reliable and removes a layer of potential failure.