Protobox is a open source tool from Evocode, used to generate lightweight, reproducible, and portable development environments. It is a layer on top of Vagrant and uses Ansible to provision the virtual machine. It also offers a web interface to generate the configuration for Vagrant and Ansible. Evocode has consulted with many development teams and they all had a common problem. They needed a consistent development environment where anyone from a novice to a senior developer can make changes without having to dig into configuration, devops, vagrant, or ansible.

Tool Review

Before building protobox, we looked at all existing tools, but they all fell short. One of the most popular tools used puppet as a provisioner and we use Ansible and Salt which offer a host of improvements over puppet. That same tool generated a static zip file, locking the team to a specific configuration, without the ability to share it. So we set out to build something to solve this problem.

A New Solution

Protobox is our solution to this configuration problem. Using the protobox web interface, a less technical developer can add and configure the database, webserver, and a dozen other services. The output a YAML file that contains the entire state of the server which can be committed to version control or easily shared. You can simply drag and drop an existing protobox YAML file onto the website and you can continue editing from the previous state.

Under the surface it uses Ansible as a provisioner, also YAML based, and has proven to be an invaluable educational tool for beginners to pick up on an advanced configuration management tool.

The Result

In the past year, the protobox web interfaced was used by over 45,000 developers from all around the world. Protobox has been featured on prominent web publications such as site point, dev metal, php the right way, among others. The best part is that protobox continues to help development teams stay productive and focused on building things.