by vivek parihar (@vparihar) on Monday, 20 January 2014

+9
Vote on this proposal
Status: Confirmed & Scheduled
View session in schedule
Section
Crisp talk

Technical level
Intermediate

Objective

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.

Description

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.

Speaker bio

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

Comments

  • 1
    [-] Vivek Juneja (@vivekjuneja) 3 years ago

    Hi Vivek,

    The talk description is very generic.
    I am interested to find out :-
    1. What is the takeaway for the audience ?
    2. What is the agenda that is to be covered in the talk.

    Thanks!
    Vivek J

    • 1
      [-] vivek parihar (@vparihar) 3 years ago

      Hey Vivek J,
      Please find my answers below-:

      What is the takeaway for the audience ?
      How to setup the identical development environments repeatably across Mac OS X, Windows, or Linux?
      How New People can be brought into the project with much less friction as the Vagrant configuration is kept with your version control system.
      How can we make sure every developer learns and uses the same workflow to manage development environments for every project?
      Using this how we will isolate everything perfectly for legacy application.

      What is the agenda that is to be covered in the talk.

      How virtualisation can be achieved using vagrant
      How vagrant can be setup in 3 easy steps
      How to provision vagrant boxes that can be used by other team mates.
      Best practices to use vagrant for creating environments.
      Thanks
      Vivek Parihar

  • 1
    [-] vivek parihar (@vparihar) 3 years ago (edited 3 years ago)

    Hey Vivek J,
    Please find my answers below-:

    1. What is the takeaway for the audience ?
    2. How to setup the identical development environments repeatably across Mac OS X, Windows, or Linux?
    3. How New People can be brought into the project with much less friction as the Vagrant configuration is kept with your version control system.
    4. How can we make sure every developer learns and uses the same workflow to manage development environments for every project?
    5. Using this how we will isolate everything perfectly for legacy application.

    6. What is the agenda that is to be covered in the talk.

    7. How virtualisation can be achieved using vagrant
    8. How vagrant can be setup in 3 easy steps
    9. How to provision vagrant boxes that can be used by other team mates.
    10. Best practices to use vagrant for creating environments.

    Thanks
    Vivek Parihar

  • 1
    [-] Sreekandh Balakrishnan (@gnuyoga) 3 years ago

    Thanks Vivek for taking the call today. Here is the summary

    This is certainly a good fit for a 15 minutes talk
    Title can be changed to "How fast can you onboard a new team member"

    Break the talk in to followin
    Why you are doing what you are doing, what issue triggered you to think like this
    What are the tools available to achieve this in the market
    How did you solve your teams problem using Vagrant
    What are the limitation or known gotchas when you use this approach
    What productivity improvement did you find in your team ?

  • 1
    [-] Jitendra Vyas (@jitendravyas) 2 years ago

    I have tried Vagrant on Windows with Linux as a virtual machine and it's very slow on it. I think Vagrant is good tool for Linux and mac users but not for windows.

    I don't know if things have been changed after I tried it last time.

    • 1
      [-] vivek parihar (@vparihar) 2 years ago

      Hi Jitendra,

      You can work around this issue in one of two ways, both of which are in the VirtualBox manual:

      1. Enabling DNS proxy in NAT mode
        VBoxManage modifyvm "VM name" --natdnsproxy1 on

      2. Using the host's resolver as a DNS proxy in NAT mode
        VBoxManage modifyvm "VM name" --natdnshostresolver1 on

      You need to add these lines in Vagrantfile.
      Please do let know if you still have any issues.

      Thanks
      Vivek

Login with Twitter or Google to leave a comment