A popular term that popped up in the age of lightweight, NoSQL databases was "accidental DBAs," in which developers took charge of running the databases underneath their applications. Now, cloud may be turning developers into ops people as well.
In a new article over at The Register, Trevor Pott, talks about the new skillsets required for cloud. Or, perhaps this would more appropriately called converged skillsets.
For years, he argues, the IT world had a distinct separation of duties. Developers didn't worry about the systems their applications eventually ran on, and systems administrators didn't worry about coding.
Cloud is making such a divide impracticable, however. We see it at software development houses, in which previously, code was put onto a CD and shipped out to all buyers. Now, independent software developers need to run (or contract for) 24x7 data centers, providing their applications on demand. That also applies to internal corporate developers that need to keep things up and running for their users across the enterprise.
At the same time, cloud makes it easier for developers to provide services directly to end users. Potts predicts that operations will no longer function as a distinct, separate discipline, but, rather, meld with development. This all fuels the growth of DevOps. "The entire discipline of IT operations is in transition," he says. "Operations will fade away as their knowledge is imparted to developers and procurement staff. Operations as we know it will shard into support and incident response."
Developers will see their jobs change as well. They're going to have to worry more about issues such as uptime, performance, provisioning, security, security, and security.
This DevOps soup is creating a range of new types of positions. Steve Hall, writing at the ScriptRock site, provides details on what it will take to run DevOps:
DevOps automation engineer: "Analyze, design, implement and validate strategies for continuous deployment to both host- and cloud-based infrastructure while ensuring high availability on both production and pre-production systems."
Release manager: Addresses "the need of managing software released from development stage to software release." Addresses requirements that "software products in a DevOps world are in a continuous cycle of development, testing, and release."
Cloud architect: Constructs meta-architecture, or "these fields of resources upon which applications are dynamically developed and deployed." Also handles security.
Integration specialist: Enables the DevOps team "to integrate and build code regularly and efficiently, to move code from workstations to integration servers to QA to staging to live."