Making Developers More Productive with Vagrant, VirtualBox, and Docker

Thursday, December 8, 2016 - 4:00pm5:30pm

John J. Rofrano, IBM T.J. Watson Research Center


One of the biggest time sinks in development is setting up your development and test environment. Whether you are a new to a project and need to set up your workstation with everything you need for the first time to start coding, or you just need a clean environment to test in, installing all of the software required to create a complete development environment is always time consuming. Every hour installing software is an hour you’re not delivering value to the customer. Learn how to leverage the powerful trio of Vagrant, VirtualBox, and Docker containers to create instant development and test environments right on your laptop with this mini-tutorial by John Rofrano.

This tutorial covers the fundamentals needed to understand and leverage each of the three technologies:

Vagrant and VirtualBox:

  • Installing VirtualBox and Vagrant on your laptop
  • Getting started with Vagrant basic commands
  • Understanding how to modify your Vagrantfile
  • Set up a visual network and forward ports so that it looks like your application is running locally on your laptop
  • Techniques and strategy for installing the required software for development
  • Using a shared filesystem to keep your code physically on your laptop so that you can edit with your favorite desktop editor while running it virtually in a VM

Docker Containers:

  • Using Docker containers with Vagrant for supplying middleware
  • Getting started with Docker basic commands
  • Docker command line parameters for share the file system and redirecting ports
  • Linking Docker containers to your code

Putting it all together:

  • Getting in and running your application
  • Delivering Vagrantfiles and Dockerfiles as part of your git repo
  • Documenting how new developers can easily get started with two commands!
  • Blow it all away and do it again

I have used these technologies with several DevOps projects at IBM Research, and my teams have always been very productive from the very first day on the project. I never publish a project to github without having these tools in place.

Who should attend:
The target audience for this tutorial is primarily developers and team leaders who need to work on Linux server environments on their laptop but don’t want to install all of the software physically on their laptop, or cannot because they don’t use Linux as their desktop OS. This would also be helpful to development managers who want to make their teams instantly more productive.

Take back to work:
Attendees should bring back the knowledge of how to make themselves and their development teams more productive including knowledge of:

  • How to install VirtualBox and Vagrant
  • How to set up Vagrant to spin up virtual development environments
  • How to find and leverage Docker containers to provide instant middleware
  • How to document procedures for developers to get up and running quickly

Topics include:
Topics covered in this mini-tutorial include learning how to use:

  • VirtualBox
  • Vagrant
  • Docker
  • Git repos

John J. Rofrano, IBM T. J. Watson Research Center

John Rofrano is a Senior Technical Staff Member at IBM T.J. Watson Research Center where he leads a team of researchers working on cloud native migration technologies leveraging IBM Bluemix, Cloud Foundry, Docker, DevOps pipelines, and building microservices using Python/Flask. He is part of a elite team of DevOps Champions that are fostering the DevOps culture at IBM.

John is also an Adjunct Professor at New York University teaching DevOps and Cloud courses. He is the author of numerous papers and patents in the field of computer science and several books on video editing and music creation.

@conference {208453,
author = {John J. Rofrano},
title = {Making Developers More Productive with Vagrant, {VirtualBox}, and Docker},
year = {2016},
address = {Boston, MA},
publisher = {USENIX Association},
month = dec