Previous proposalTesting Infrastructure Code using Test-kitchen, Docker and Chef-Zero
Next proposalBuilding Orchestration and Configuration with Ansible
How fast can you onboard a new team member
Automating Development Environments with Vagrant which ends "It works on my machine" and provides a fast or an easy way to have a local dev environment that resembles production environment.
As the number of developers on a project, the number of projects in an Organization, or the complexity of a single project increases, it also becomes increasingly difficult to keep our development environments operational. From changing dependencies and differing server versions to running completely different operating systems specially windows machines of FrontEnd team, keeping the process of getting a running development environment sane and repeatable is non-trivial.
Getting the development environments identically setup can be a huge undertaking. On top of that, some people use Mac while others Use Linux or Windows. Before you know it, developers will be throwing computers through walls exhausted from constantly configuring and configuring. Windows machine devs yelling WTF is this Imagemagick , people using Mac asking which is better macports vs homebrew vs fink.
Vagrant solves all of this by introducing a common configuration format and workflow for describing and building development environments repeatably across Mac OS X, Windows, or Linux.
The cool thing about Vagrant is that you can create a full dev environment, with every tool/library required for development already installed and ready to use, then package this up (and the VM's configuration) into a single file that you can use as a template. So, you can have one single file that you distribute to your other team member and everyone can then use the same environment to build and break ... But that environment is on their own computer!
Benefits of Vagrant
1.By choosing to use Vagrant, our projects and organization gain some immediate benefits:
2.Every developer is now working within identical development environments. This eliminates a large portion of “works on my machine” issues.
3.Instead of custom READMEs per project, having to ask DevOps for help, or simply being lost, developers learn that the workflow for every project is identical: vagrant up to get a development environment, and vagrant halt (or suspend or destroy) to clean up your environment. This is just simple and small commands that every developer can do at any given point of time.
Vivek Parihar - Webonise Lab, Pune
A technology evangelist, ROR geek, DevOps Missionary and a mentor - just to name a few. Started his technology journey @Webonise with mission to experiment, build and contribute to technology trends.
As VP-Engineering, he has led the team leaps and bounds across various technologies. He is a frequent speaker at conferences. To name a few:
-DevopsDay2013 -MongoDb Pune -Ruby Conf India