The quickest way to learn some unfamiliar software technology is to dive right in and try it out. There will always be plenty of time to read the “Getting Started” page later.
But since installing new software usually involves messing with your own workstation’s configuration, it’s only a matter of time before your system stability is broken beyond repair. Of course, there’s nothing wrong with reformatting your drive and starting over from scratch – in fact, enjoying a nice fresh beginning every now and again can be liberating – but most of us would probably rather not have to rebuild our digital lives more than once a year or so.
If you can see yourself benefiting from access to fast-loading, isolated, and completely disposable working environments – known as sandboxes – where you can fearlessly test to your heart’s content, then here are some virtualization tools you’ll love.
LXC (LinuX Containers)
Working from a Linux terminal shell? Install the LXC userspace tool and run any number of independent (but networked) virtual machines on your own workstation. Besides two flavors of Ubuntu, my Ubuntu 14.04 system lets me choose from more than a dozen templates, including CentOS, Fedora, Gentoo, and OpenSUSE. All it takes is a single lxc-create command and about three minutes’ wait, and you’ll be inside a fully-functioning Linux environment.
You can install and remove packages (either manually or through the normal managed software repositories), edit configuration files, explore file systems and generally make yourself at home. Something went wrong? No problem. lxc-destroy is only as far away as your keyboard…as is another round of lxc-create.
Interested? Read my 60 second orientation tour of LXCs in the introduction to my “Teach Yourself Linux Administration and Prepare for the LPIC-1 Certification Exams” book.
- Speed (a container will often reboot in less time than it takes me to retype my password)
- Light footprint (I’ve never come close to hitting a limit to the number of containers I can run at the same time).
- While you can run any operating system for which you have a template, you can only use those releases built for your host system’s kernel. If you need to use earlier or later releases, you’re out of luck.
- Even if there are hacks, LXCs are not ideal for applications requiring a GUI desktop.
- Will only run on Linux hosts (which, to be honest, I consider a feature rather than a weakness).
- You have only limited control over the boot process (i.e., there’s no real GRUB implementation).
Oracle’s free virtualization manager has become something of a standard in the computing world. It runs on just about anything (Linux, Windows, Mac) and supports a huge range of client OS images. VirtualBox provides a very close approximation of the full OS experience, but running safely in a window on your desktop.
- You get a GUI interface (if necessary) and the ability to customize the installation process.
- VB is not nearly as quick and light as LXC.
- Networking can be a bit more complex.
Assuming that you’ve already got an Amazon AWS account, you can have a hosted EC2 (Elastic Compute Cloud) virtual machine – called an “instance” in AWS terms – up and running in the cloud in less than a minute. And if your AWS account is less than twelve months old, your instance could be covered under their free tier, so it won’t cost you anything either.
But why would you want to? Because this “sandbox” won’t be running in some cave deep in the dark recesses of your home PC, but at the heart of the busiest cloud on earth. Does your experimental project only make sense if you can test it out over the real Intertubes? Do you need to work with a very wide range of real-world security, storage, and data tools? Would you like to be SSH-ing into your own cloud server running one of hundreds of pre-built OS images designed for just about any general or specific use you can imagine within 90 seconds? Consider EC2.
Amazon EC2 Strengths:
- Considering it’s not running on your hardware, it won’t slow you down.
- Perfectly painless startup. Perfectly painless shutdown.
- Huge range of freely-available OS images and storage, networking, and compute tools.
Amazon EC2 Weaknesses:
- The life cycle process isn’t quite as quick as LXC, and the getting-started learning curve is a bit steeper.
- This isn’t really a weakness but, since you’ll be in the real cloud, you have to be much more conscious of security and cost issues than on your own PC: AWS is a bit less of a sandbox.