Tuesday 23 June 2015

Vagrant vs. VirtualBox ? - A false contradiction

"Why should I use Vagrant instead of just VirtualBox?" - There are quite a lot of questions and answers of that type  in the net. The questioners seem to belong to the group of operations engineers, e.g. application supporters, database administrators, etc. The answerers seem to belong to the group of developers. Hence my first clue on this queer debate is, that it may be a question of conflicting priorities in the field of the Devops movement.

In place of many other Devops representatives I would like to refer to What is this Devops Thing Please note in this document the emotional connotation like "Fear of Change", "Risky Deployments", etc.

In place of many other questions and answers I would like to refer to superuser. Please note the concern to demonstrate the technical superiority of Vagrant over VirtualBox.

I personally typify three groups, developers and operations engineers, because I have worked for many years as developer of database appplications and for the last 10 years exclusively as database administrator. The third group, where my conceptual roots are founded, are the philosophers. This may explain a little bit my point of view, that we deal with a false contradiction here.

False contradictions have occupied since over 2000 years theologians, philosophers, logicians in the Far East and in the West. They have developed conceptual instruments to recognise, analyse and resolve them. In the West they are called "aporias" or "dilemmas". Famous western examples are Ockham's razor, Kant's resolution of  Cognitive Dilemmas and Ethical Dilemmas, Russel's and Whitehead's resolution of  contradictions in mathematics. Famous eastern examples are Nagarjuna's resolution of extreme postions in the Middle Way, Chandrakirti's resolution of the Two Truths, Lobsang Tarchin's Pointing the Way to Reasoning.

Why is the contraposition of Vagrant vs. VirtualBox a false contradiction? 

Because Vagrant is a tool for managing VirtualBoxes. From Vagrant's point of view - VirtualBox is just one provider among others like VMware, AWS, etc. Vagrant makes use of other industry-standard provisioning tools such as shell scripts, Chef, or Puppet to automatically install and configure software on the Virtual Machine. There is even a provisioner for Docker, which installs and configures Docker containers.

Seen that, it is clear, that providers like VirtualBox and shell scripts etc,  are not able to automatically install anything in a VirtualMachine. No matter who you are, a developer, an operations engineer or a designer - if you only want to use shell scripts, Chef, Puppet or a VM, that's perfectly OK. No matter who you are - if you want to install something in the VM, you need to use tools like Vagrant or Docker.

Our training project train.oracle12.migration is all about that. We want young people interested in Oracle to install, reinstall, explore, practice anything about Oracle12 upgrade and consolidation. That is why we have decided to practice upgrading with Oracle11.2.01, because they can download it with a simple standard developer license. If a student is in the happy position to dispose about an extended license, he may download Oracle11.2.0.3 up to Oracle11.2.07 and install it in the VM provided by our project.

Other training projects seem to follow the same path, e.g. Franck Pachot's Docker-Container

No comments: