What is DevOps?

The DevOps buzzword has been growing at an insane rate over the last ten years. But what is it? Is it automation? Scripting? Programming? Programmers that know networking and server administration? Google engineers? A business unit? A team of specialists?

No, DevOps is a culture. The culture can encompass all of the things mentioned above, but the root of the movement started as a culture.

There was an Agile meeting in 2008 that no one showed up to. A couple of guys were having a conversation about “Agile, but for sysadmins”. They made some decent progress at the idea and created a Google group. After that, one of the people from the Agile meeting showed up to Velocity 2009 where two employees of Flickr discussed performing 10 deployments per day to production.

10 times a day, the development and operations teams would push code changes into production. That was not a typo.

John Allspaw and Paul Hammond, the Flickr people, did some role playing about how traditional Ops and Dev worked together. They mentioned the “throwing the code over the wall” method. With this strategy, the development team would make code changes and send it to the Ops team, throwing the code over the metaphorical wall that separated Dev and Ops, and go home for the weekend. The Ops folks would be working night and day trying to get the code deployed and working in production. It was a pretty toxic environment, as you can probably imagine, and it still happens in a lot of organizations today.

At Flickr, they did things differently. Development and Operations worked together to plan, build, and release the code into production. There were insane improvements into the existing workflow, reducing bugs, roll backs, time to resolve failures, and an increase in resilience and robust applications. Thus, enabling ten deployments per day. Note, some companies have exceeded this more than ten times that amount. If you’re interested in the science and research behind it, check out Accelerate by Dr. Nicole Forsgren.

Remember that guy from the Agile 2008 discussion? That’s Patrick Debois. He was blown away by what Flickr and team had done. He started a new conference called DevOpsDays, unofficially officially coining the term DevOps. DevOpsDays is an international annual conference.

Since DevOpsDays and the term DevOps, companies all over have been attempting to change the way they deploy and release into production. Some have been successful, some have not. Some are still working on it.

The primary topics surrounding a DevOps culture or role involve packing and deploying software, often referred to as build/release engineering, automating the deployment process and pipeline, so with one click or one command the entire deployment occurs, and providing stable, consistent monitoring and feedback once the application is in production.

There are a lot more than that, too. Some DevOps roles are deep into the networking and systems administration component. Some focus just on writing out the infrastructure, usually dubbed “Infrastructure as Code”. If you’ve ever heard Chef, Puppet, Ansible, SaltStack, Terraform, those are common Infrastructure as Code frameworks/DSL. Technically, the’re configuration management, but this thread isn’t really for semantics.

Anyway, I assume @Goalkeeper wanted myself or @SgtAwesomesauce to start contributing to this section, so here you go lol. Note that DevOps isn’t just about automating things, or deploying things, or monitoring. It is about culture and working as a single cohesive unit, despite your role and job title. Finance is DevOps, development is DevOps, marketing is DevOps, I.T. is DevOps. An important note is that most research into the culture suggests that management is a large component, and most teams or organizations fail because of the management team’s lack of faith or enthusiasm. This isn’t limited to DevOps, in my experience, but noteworthy nonetheless.

14 Likes

Great post, I couldn’t have said it better myself. Teams should be divided on the product they produce not by their technological area. Devops gives the responsibility and power to the developers to control their product and gives incentive to design code and infrastructure that is resilient and available to make the overall product good for what they are making.

6 Likes

I’ll do you one better, why is DevOps?!

Er, I mean what is DevSecOps?

4 Likes

InfoSec scrubs trying to get a piece of the glory :wink:

Nah, part of the dev -> test -> build process in a DevOps culture started involving InfoSec. Why release an insecure application into production? Why are we doing a vulnerability assessment when we’re live and in prod? These are the questions that were being answered. So, penetration tests and vulnerability assessment is being done during the development phase. DevSecOps is an emphasis on this, but DevOps is enough to encompass InfoSec :slight_smile:

6 Likes

Fantastic post. As DevOps myself I usually explain what I do with a “the person/team that drastically speeds up the way developers churn out their software”. Or “the ones that optimise the Develop-Test-Release-Monitor cycle of developers through automation and process”, those are my one-sentence explanations, I think that’s enough for people to get a general idea, since a lot aren’t really sure what DevOps does :smiley:

1 Like

Interesting post, I have been reading some stories and horror stories lately as I get bored working on windows platform :slight_smile:

I used to be a contractor working as a sysadmin for linux-based projects: CentOS, Debian and Apache.

From all that description it sounds like DevOps is just the modern version of sysadmins trying to figure out a way out an impossible job. The reason I went “nuts” and ended up working for corporate team using horrible windows :smiley:

I wonder how much of DevOps is the clutter of delivering results fast - the nightmare culture sysadmins dread over 10 years ago, when speed of HW growth outran the growth of admins.
But to fair the most I wonder if I can go back to this world professionally as the money and infrastructure is there and I do not have argue to even get paid for “free” software.

I will follow this thread with glee.

Out of curiosity how does a DBA fit into the mix of all things DevOps? I recently saw an article grouping them into Data Science and DevOps along with R and thought I’d ask all you.

Column a and column b. Where I work currently they’re more on the Ops side, setting up the server with the infrastructure team, performance tuning, writing scripts, etc. At my last gig they were both, they’d write the queries, provision with awscli, administer the server, move to RDS/EC2, whatever the solution called for.

2 Likes

It depends. We don’t have DBAs. We mostly use managed databases and where we don’t our SREs handle them.

2 Likes

@AnotherDev

Would it be safe to say that DBA is a buzzword or not so much? Any time I’ve tried to find out career paths for them, etc. it’s all just a bunch of smoke and mirrors.

@ibreakthings

Okay I see, that sheds some light on what I was seeing. Perhaps that position is not all these sites make it cracked up to be haha.

I would say its a thing. I work at a big company and we have real DBAs, they only DBA and nothing else.

I would wager at smaller companies you start to get ‘jack of all trades’ requirements from sysadmins.

1 Like

That makes a lot of sense actually. I appreciate the response, it helps me understand it more! So many different job fields, so many different responsibilities, just tying to make sense of it all haha.

Thinking about switching focus from full-stack web-development (something like software engineer I guess) to DevOps.

Thing is: most companies around here use Windows Server (what got me a bit confused since it’s so expensive, but whatever).

I’m learning .NET (yeah, I’m referring more to the stack than C# itself, but C# is the language), but what tools can I use to familiarize with Win Server?

PowerShell.

Definitely going to be the best interface for a Windows Server operating system. Getting used to Server Manager, Group Policy, and Windows Firewall are probably going to be useful as well.

For DevOps/full-stack you’ll want to check out IIS with something like Nginx or HAProxy. You can get an evaluation or Express license of SQL Server for free. Having an IIS server talk to a SQL server will be good practice.

For RDP/scp/ssh/whatevs I like MobaXTerm.

You can use Terraform and Packer to provision on Hyper-V or Windows Server on AWS or Azure. So that’s something to consider for provisioning/infrastructure as code. Look at making registry edits with Chef or Puppet, too, which is pretty common and something nice to be familiar with.

3 Likes

You see… that’s why I leaned much towards .NET, there’s a whole environment for it, MS done it right, I guess…