Jenkins vs Vagrant: What are the differences?
What is Jenkins? An extendable open source continuous integration server. In a nutshell Jenkins CI is the leading open-source continuous integration server. Built with Java, it provides over 300 plugins to support building and testing virtually any project.
What is Vagrant? A tool for building and distributing development environments. Vagrant provides the framework and configuration format to create and manage complete portable development environments. These development environments can live on your computer or in the cloud, and are portable between Windows, Mac OS X, and Linux.
Jenkins can be classified as a tool in the "Continuous Integration" category, while Vagrant is grouped under "Virtual Machine Management".
Some of the features offered by Jenkins are:
- Easy installation
- Easy configuration
- Change set support
On the other hand, Vagrant provides the following key features:
- Up And SSH
- Synced Folders
"Hosted internally", "Free open source" and "Great to build, deploy or launch anything async" are the key factors why developers consider Jenkins; whereas "Development environments", "Simple bootstraping" and "Free" are the primary reasons why Vagrant is favored.
Jenkins and Vagrant are both open source tools. Vagrant with 18.6K GitHub stars and 3.74K forks on GitHub appears to be more popular than Jenkins with 13.3K GitHub stars and 5.48K GitHub forks.
According to the StackShare community, Jenkins has a broader approval, being mentioned in 1775 company stacks & 1528 developers stacks; compared to Vagrant, which is listed in 802 company stacks and 479 developer stacks.
What is Jenkins?
What is Vagrant?
Need advice about which tool to choose?Ask the StackShare community!
Sign up to add, upvote and see more prosMake informed product decisions
Sign up to add, upvote and see more consMake informed product decisions
Sign up to get full access to all the companiesMake informed product decisions
Sign up to get full access to all the tool integrationsMake informed product decisions
"The best way to ensure that local testing was possible was to normalize people’s dev environments. For this we chose Vagrant. This, combined with Chef, allows us to do our local dev in sandboxed Linux instances running locally via VirtualBox in a configuration as similar to production as possible. In addition to making dev environment setup much easier than it used to be, this ensures that each engineer has a consistent environment that is ready to run tests out of the box. The user SSHs into the local linux server and runs spec commands like they would on their host OS, and generally everything Just Works. Most people on our team combine this with Zeus, which allows the Rails environment to be preloaded for lightning fast (relatively speaking) test runs. Both Vagrant and Zeus have their share of issues, but in practice we’ve found them to be a huge time saver."
All of our pull requests are automatically tested using Jenkins' integration with GitHub, and we provision and deploy our servers using Jenkins' interface. This is integrated with HipChat, immediately notifying us if anything goes wrong with a deployment.
Jenkins is our go-to devops automation tool. We use it for automated test builds, all the way up to server updates and deploys. It really helps maintain our homegrown continuous-integration suite. It even does our blue/green deploys.
- Continuous Deploy
- Dev stage: autodeploy by trigger push request from 'develop' branch of Gitlab
- Staging and production stages: Build and rollback quicly with Ansistrano playbook
- Sending messages of job results to Chatwork.
Not blazing fast but we pick Vagrant for all our projects because the console mode without gui leads to a low consumption of ram memory making it the best way for DevOps ready environment requiring less configuration.
Vagrant allows me to ensure that anyone I'm collaborating with will be able to test my web application in the same environment. I also use Vagrant to setup VMs that I can use to refine my Capistrano recipes.
We use Virtualbox in combination with Vagrant during development to ensure a consistent test/development environment. This helps to reduce the number of defects when our software goes to production.
Currently serves as the location that our QA team builds various automated testing jobs.
At one point we were using it for builds, but we ended up migrating away from them to Code Pipelines.
We use Jenkins to schedule our Browser and API Based regression and acceptance tests on a regular bases. We use additionally to Jenkins GitlabCI for unit and component testing.