Rootconf 2014

On devops and cloud infrastructure

vivek parihar

@vparihar

How fast can you onboard a new team member

Submitted Jan 21, 2014

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.

Outline

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

Login to leave a comment

  • SB

    Sreekandh Balakrishnan

    @gnuyoga

    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 ?

    Posted 10 years ago
  • vp

    vivek parihar

    @vparihar Submitter

    Hey Vivek J,
    Please find my answers below-:

    1. 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.
    2. 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

    Posted 11 years ago (edited 11 years ago)

Hosted by

We care about site reliability, cloud costs, security and data privacy