DevOps 101

Victoria Guido
4 min readOct 22, 2018

by the end of this article you’ll be able to define DevOps, or at least have an argument with someone about it

Background

We designed a DevOps 101 talk for Women Who Code DC as a way to get women excited about a promising new field in technology and demystify some of the language around it in a safe, friendly environment.

DevOps is one of those things people LOVE to argue about. For this reason we approach it from a historical perspective and bring it into a larger discussion of how applications and systems get made and run, with a large grain of salt for anyone who claims expertise in the subject.

What it is

The term “devops” surfaced when IT startups were the new big thing, and you had a very small team, maybe 3 developers, doing the work normally done by large teams of IT system operations people. Devs started to apply the same processes and principles of coding into Ops — automation, scripting, version control, etc.

DevOps* has since evolved into a cultural movement or practice that emphasizes the collaboration and communication of both software developers and other [IT] professionals while automating the process of software delivery and infrastructure changes.

*You’ll notice the wikipedia page as of 10/8/2018 is asking for more reliable sources for the page, an indication for why arguing about what DevOps is, isn’t, or should be is a favorite hobby for those practicing DevOps.

If you are just starting a career in technology, the cultural background of how different IT teams work together is important. Knowing how each team or role contributes to large projects, systems, and applications can be critical to your own success.

Before DevOps

The Development (Dev) Teams are responsible for creating change, new features, enhancements, and functionality. Operations (Ops) teams are responsible for keeping the system stable, running efficiently, and available.

These teams were separated, silo-ed, even contractually not allowed to talk to each other in some situations. Developers would “throw code over the wall” to the ops teams, termed “the wall of confusion”. Many memes ensued. Worked fine in dev, ops problem now. See also It worked on my machine and every job in IT ever.

Wall of Confusion between Development and Operations

DevOps as a concept focuses on breaking down traditional barriers between developers and operations teams. It evolves with the team’s maturity, but it can start with simple business and technical processes to remove obstacles and improve the flow of code and communication between the teams who make software and those who deploy and manage it, often represented by infinity loops.

Infinity loop for DevOps

DevOps Thought Lord

Many people have written a lot about DevOps. A few key authors and concepts to know or name drop, especially if you’re interviewing for a “DevOps” role, are:

After reading all of these you might need a laugh and you should check out the MOST important DevOps Thought Lord Jon Hendren

But what is a DevOps role? Some would argue against using a title such as “DevOps Engineer” because it is not so much about languages or tools, but culture and disciplines to keep systems and their resources running, and how can that be any one person’s job? The truth is it varies from one organization to another.

You might be called a DevOps person if you know about:

  • Operating Systems (Linux, Windows, etc)
  • Docker, containers, kubernetes
  • AWS, Azure, Google Cloud
  • Python, GoLang
  • Chef, Ansible, Puppet
  • Jenkins, Maven, Travis CI
  • Monitoring, logs, system performance

I recommend reading any DevOps job description very carefully. It is most common, from my experience, to see the word “DevOps” in job titles that particularly focus on Chef, Ansible, and Puppet (infrastructure automation or configuration management tools).

Before we get too excited about the technology, remember it’s about the process. Ask, what is your build process? How does software get into production? Even if you end up building and focusing on tools it comes back to these questions.

Sprinkle on the DevOps

If you have a project and want to sprinkle on some devops, check out this awesome Periodic Table of DevOps tools developed by Xebia labs. It does not include ALL the tools (because there’s about a million new ones every day)but you can easily hover over options like “Free” and “Open Source” for ideas to integrate into your own personal projects. It is also a VERY entertaining graphic and they did a good job 👏.

But wait, there’s more

We could go on and on, but let’s take a break for now. More to come soon. Here’s some great references we stole ideas from!

Reference

https://www.udacity.com/course/intro-to-devops–ud611

https://en.wikipedia.org/wiki/DevOps

--

--