Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

tl;dr Low-latency native (i.e. VM-less) development workstation vs. higher latency VM-centric workstation?

Hey StackExchange, I'm unsure of whether or not I should be using a VM for development, as opposed to running a native configuration on a distribution certified for use with Oracle 11g (as opposed to Debian).

As it stands, my options are as follows:

  • Current development system (see below) + Oracle Virtualbox + prebuilt Oracle VM
  • New development system (OS + software) certified for use with Oracle 11g
  • Current development system + haphazard compatibility hacks to remedy Oracle 11g's cantankerous disposition towards Debian-based distributions

Motivation:

  • Difficulty of Oracle 11g on Debian-based systems
  • Expected difficulty of subsequent Oracle installations
  • University studies are Java + PL/SQL centric

Current development system (laptop):

  • OS: Linux Mint 14
  • CPU: i3-2310M @ 2.1GHz
  • RAM: 6GB
  • Development languages:

    • PL/SQL (11g R2)
    • MySQL
    • Java
    • C++
    • R

Any thoughts on whether or not I should vie for a higher latency VM-centric deployment as opposed to a low-latency, native workstation?

VM-centric pros:

  • I don't have to install Oracle 11g.
  • Separation-of-duty (VMs for: pentesting, Oracle development, Windows applications)
  • Portability of development system

VM-centric cons:

  • Higher latency
  • Narrow application base (as opposed to [Debian|Ubuntu]) for non-Oracle software
  • Lack of install candidates for Debian-based development software in OEL5/RHEL5

Main concerns:

  1. Lack of install candidates for software
  2. Inability to efficiently install complicated Oracle software
  3. Lack of accessibility to applications in other VMs
  4. High latency
  5. Lack of bleeding edge software for OEL/RHEL

Oracle Database 11g certified distributions (if going native):

  • Oracle Linux 5
  • RHEL 5
  • SUSE Linux Enterprise Server 10

So, realistically my options (if taking the native, certified distribution route) are:

  • CentOS {5,6}
  • Oracle Linux 5
  • OpenSUSE

Otherwise:

  • Fedora 17 + hacks
  • Linux Mint 14 + m0ar hacks

Should I go with a low-latency, Oracle-based development system (thus starting over), or go with multiple, higher-latency Oracle VMs?


Thank you.

PS: Note that this is not intended as a shopping question.

share|improve this question
add comment

1 Answer

up vote 2 down vote accepted

Unless your intention is to run OLTP benchmarks, I doubt you're going to be able to see much in the way of latency on modern hardware. Between native virtualization support in recent Intel and AMD chips, lots of RAM, and mature VM systems, VMs run quite well these days.

You do have to configure the VM to fully use the native hardware, of course. This means giving the VM 8 "CPUs" on a 4-core Hyperthreaded box, for example. If you're using VMware or Parallels, there are tools you have to install into the VM to get the best performance, for another example.

Justification: I've gotten my development environment down to just a few real hardware boxes:

  • one full-size main server, where most development takes place; it also serves as the release build system for the OS the box happens to be running

  • a laptop running VMware Fusion, for testing on other platforms, and building release binaries

The only reason I use two physical machines and put the VMs on a laptop instead of running everything on the big server is simply that I want access to the VMs while away from the office, too, without drilling holes in the corporate firewall. The laptop is plenty fast enough for most purposes.

Important caveat: I'm a command line type of guy, using GUI systems mainly for running tabbed Terminal apps, plus auxiliary apps like file managers and web browsers. Point being, I access my VMs through efficient SSH connections almost all the time. If your use will require a lot of GUI access, then you will likely notice the latency. But, if you can do the GUI stuff on the native side, and leave VMing to SSH connections for the most part, you'll be fine.

All is not lost if you need GUI access to the VMs, as long as you're using a "workstation" class VM system, like Parallels {Workstation, Desktop}, VMware {Workstation, Fusion}, or VirtualBox. You just do the GUI through the VM system, rather than via a remote X11 connection. It's still a bit slower than native, but still quite usable.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.