An (absolute) beginners guide to DevOps
What an earth does DevOps mean? tech experts often debate what the exact answer to this question should be - so if you're a little unsure where to start, you're in good company.
There are many articles and blogs which claim to offer a basic 'idiot's guide' to the term, but most seem to assume the reader is equipped with a basic level of technical understanding, and therefore take little time to lose the tech newbies in a maze of jargon.
If you're an absolute beginner - no more knowledgeable on the subject as an alien that has fallen to earth - this article may be of some help.
First things first: DevOps is not as exciting as it probably sounds. It's not some kind of covert online hacking software. In fact, it's not really a piece of software at all.
Really, DevOps is a way of organising a team. In this context, the team will be looking to produce some software and, once developed, will want to make sure that this software is being used to it's full capability.
There is no single formulae to follow. It's not an exact science, and there is no complete blueprint for how to organise a DevOps-proficient team.
Rather, it's a philosophy; a general approach and culture in which all the team players must appreciate and be willing to promote in everything they do.
But just as being a conservative or a liberal in politics doesn't inform every political opinion a person may have, being pro-DevOps doesn't map out every step in the process of developing software. Teams in this field of work can feasibly be fill on DevOps, a little DevOps, or not very DevOps at all.
So, DevOps is a way of organising a software development team. Now let's put a little bit more flesh on the bone.
The process of developing and using software involves some people called developers and some people called operations. See what they've done there? DevOps.
Anyway, developers are involved with making software, whereas operations work with that software on a day to day basis and ensure it stays in good working order for whoever is using it.
These two groups of people are said to have very different mindsets. Developers generally like change - driven by innovation they're always trying to improve things - while operations are adverse to it. These guys are tasked with the responsibility of keeping the ship steady, and change implies instability.
The mismatch between the attitudes of developers and operations creates what is known as the 'wall of confusion'. The aim of DevOps is to break this wall down.
Indeed, the core principle of DevOps is that developers and operations should work closer together. They should be in regular communication, sharing information and tools.
Rather than finishing a piece of software and saying, "hey operations, it's over to you", developers should be involved in a conversation that flows back and forth.
The aim is not that development and operations becomes merged into a single role, but that regularly trodden bridges are established between the two.