Rassco - FOTOLIA

Learn DevOps techniques and tools in this home lab setup

This DevOps lab uses Linux VMs and Docker containers to teach administrators the basics of immutable infrastructure, configuration automation and other modern IT concepts.

One of the best ways to learn about new technologies is to build them yourself.

We can't learn DevOps, containers or related new skills by fiddling with production servers; and companies don't invest in training excursions for IT pros as much today as in the past. So, individual staff members are responsible for their own training in their own time. Embrace continuous learning and build a DevOps lab.

The following DevOps lab runs with a single laptop and a series of free tools. With my infrastructure background, I have laid out the exercises and trials to help you learn DevOps from the infrastructure side of things, rather than the developer side. These steps introduce infrastructure and operational concepts, such as immutable infrastructure, configuration automation and containerization.

The simplest home lab is a single computer -- quite possibly a gaming computer that serves double duty. The DevOps lab requires a reasonably powerful workstation, with a multicore CPU and at least 8 GB of RAM. A solid-state drive is required for a serious home lab. The DevOps lab itself runs on virtual machines on top of the host PC. And you want as much automation as possible. It should be easy to recreate the lab after a mistake, and just as easy to start or stop the lab in a few minutes.

To learn DevOps most effectively, use its principles to build this lab. A build process delivers an immutable infrastructure, which is described in some files. This manner of constructing an IT deployment is called infrastructure as code. A version control system protects and manages these code files. In the following steps, I'll demonstrate how to use files pulled from my GitHub repository.

Follow along with the DevOps lab setup in four parts:

1. Start here to install HashiCorp Vagrant and spin up the Linux virtual machines that comprise the home lab with a consistent workflow.

2. Move on to pick up Git version control techniques, describing your infrastructure to allow repeatable deployments and controlled change.

3. Next, install Ansible so you can configure VMs more easily using automation instead of manual effort.

4. Now you're ready to spin up Docker containers and discover this new layer of abstraction for production workloads.

The lab we build today is not the end; it's a starting point for more DevOps learning. Use the lab to dig deeper into configuration management capabilities or as a basis to learn about Kubernetes or Mesos container orchestration platforms, for example.

Next Steps

Plethora of DevOps tools has ops teams seeking order

The skills to land DevOps engineer jobs

What to call IT ops in the DevOps future

Dig Deeper on IT operations careers and skills

Software Quality
App Architecture
Cloud Computing
Data Center