Defining the Ops in DevOps

devops

So what does DevOps mean exactly? What is the Ops in DevOps?  Operations can mean a lot of things and even different things to different people. DevOps is becoming more and more popular but a lot of people are confused to exactly what it is. So let’s make a list of all the things operations traditionally does and figure out what developers should be doing, and  which if any responsibilities should be shared.

Operations responsibilities

  • IT buying
  • Installation of server hardware and OS
  • Configuration of servers, networks, storage, etc…
  • Monitoring of servers
  • Respond to outages
  • IT security
  • Managing phone systems, network
  • Change control
  • Backup and disaster recovery planning
  • Manage active directory
  • Asset tracking

Shared Development & Operations duties

  • Software deployments
  • Application support

Some of these traditional responsibilities have changed in the last few years. Virtualization and the cloud have greatly simplified buying decisions, installation, and configuration. For example, nobody cares what kind of server we are going to buy anymore for a specific application or project. We buy great big ones, virtualize them, and just carve out what we need and change it on the fly. Cloud hosting simplifies this even more by eliminating the need to buy servers at all.

So what part of the “Ops” duties should developers be responsible for?

  • Be involved in selecting the application stack
  • Configure and deploy virtual or cloud servers (potentially)
  • Deploy their applications
  • Monitor application and system health
  • Respond to applications problems as they arise.

Developers who take ownership of these responsibilities can ultimately deploy and support their applications more rapidly. DevOps processes and tools eliminate the walls between the teams and enables more agility for the business. This philosophy can enable the developers to potentially be responsible for the enter application stack from OS level and up in more a self service mode.

So what does the operations team do then?

  • Manage the hardware infrastructure
  • Configure and monitor networking
  • Enforce policies around backup, DR, security, compliance, change control, etc
  • Assist in monitoring the systems
  • Manage active directory
  • Asset tracking
  • Other non production application related tasks

Depending on the company size the workload of these tasks will vary greatly. In large enterprise companies these operations tasks become complex enough to require specialization and dedicated personnel for these responsibilities. For small to midsize companies the IT manager and 1-2 system administrators can typically handle these tasks.

DevOps is evolving into letting the operations team focus on the infrastructure and IT policies while empowering the developers to exercise tremendous ownership from the OS level and up. With a solid infrastructure developers can own the application stack, build it, deploy it, and cover much if not all of its support. This enables development teams to be more self-service and independent of a busy centralized operations team. DevOps enables more agility, better efficiency, and ultimately a higher level of service to their customers.

  • http://Website Srini Balan

    Hi Matt
    Looking at the diagram at the top of he page, a thought struck me.
    Is there a case for BizDev like DevOps?
    Business needs in a “natural” language converted to Development “Requirements” in a structured machine-readable language facilitating DevOps?

  • http://www.optimaworldwide.com Kyle Claypool

    Hi Srini – what you’re describing sounds like the role of a Project Manager, unless I misunderstand. The PM breaks business goals down into development tasks for the dev team. As for making those requirements machine readable, I suppose that’s where programmers come in. Did you have something more specific in mind?

  • Pingback: Agile DevOps on Openstack - DigitalCIO.ca

  • Pingback: Agile DevOps on Openstack