What exactly is “DevOps”?

670 views

I don’t quite understand how devops is different from software development. They’re closely related, but I’m just kinda stupid. Please explain it to me

In: Engineering

6 Answers

Anonymous 0 Comments

Traditionally, an IT company had two fully separate departments and processes. Development, and operations. Dev was responsible for writing, testing, debugging and maintaining the software. Dev was staffed by programmers and software engineers. Ops, in turn, was responsible for taking Dev’s finished product, the completed software, and setting it up on servers to run it. They would take care of the server’s operating system, and any networking services it depends on, and they would be responsible for stuff like capacity and load management. Ops was mostly staffed by sysadmins and networking/infrastructure engineers.

This way of doing things worked well for a long time because these were quite different problem domains requiring different expertise. The role divisions were clean: Dev produces the software, Ops runs it. If a bug in the software was found in production, Ops would report it back to Dev and they would address the bug in their next version release, which Ops would then install.

But nowadays, the stuff which Ops engineers are responsible for, has started to look more and more like what the Dev engineers work with. Instead of physical servers, they’re dealing with virtual machines. And starting/stopping those virtual machines is done using automated, programmed API calls. And the code to do all that stuff is increasingly being treated just like the software that Dev is writing. The connectivity between servers and their storage backends is no longer described by a wiring diagram, but by a structured document which *tells* the VM host how to hook it up. They call this type of thing ‘infrastructure as code’.

So: Devops. It’s a management and workflow philosophy in IT where ‘ops’, the process of getting the software hosted and running on a server, or a cluster of servers with load balancing or whatever, is treated as continuous with the software development process, instead of distinct from it.

You are viewing 1 out of 6 answers, click here to view all answers.