Devops in undeniably a hot topic right now, and with good reason — speed is the new IT currency:
In today’s competitive markets, businesses must be fast. Technology needs to deliver against user needs — and do so quickly.
It is no longer feasible for projects to be stalled for weeks or even months while tasks like installing servers, provisioning VMs and configuring new services are undertaken. New techniques and ideas need to be brainstormed, tested and proved or disproved in days or hours.
When implemented in conjunction with IaaS or PaaS, DevOps can effectively remove the roadblocks to a speedy delivery of a project. The elephant in the room is the question of who is upskilling to deliver these efficiencies? Are developers expected to perform the role of ops, or are ops employees expected to learn how to write code?
What does it take to spin up your average enterprise service, like a database server? Knowing what a database server is, and having the ability to use a Linux package manager actually gets you a default installation that serves 90% of a developer’s needs during the development phase. Knowing how to follow the steps in a performance tuning and hardening guide will get you 80% of an enterprise’s needs in production. Throw in some monitoring, backups and scaling, and you have the kind of database that most enterprises will put into production.
In years gone by, getting from “good enough for development” to “good enough for production” was a time consuming and specialized task. With platforms like AWS, that work is now exposed as a series of checkboxes.
What does it take to deploy your average enterprise customer facing application. Knowing what a web application is and having the ability to configure a development environment gets you, well, maybe a boilerplate hello world application. Knowing how to follow an online programming tutorial gives you a rudimentary web app performing CRUD processes against a database.
The reality is that it takes a few years of experience to take business requirements and turn them into custom applications that can be deployed in production. AWS is not going to help someone with rudimentary development skills pump out their first application.
Thanks to the commoditization of common infrastructure and the relative ease with which production ready instances can be created and customised, there is an increasing pressure on developers to upskill themselves to take advantage of platforms like AWS, Azure, and Google Cloud. The reverse is not true for traditional ops folks though, simply because the barrier to entry with respect to custom development has not changed.
This new expectation on developers is a blessing and a curse. It does mean that the time it takes to spin up new infrastructure drops to minutes, removing a potentially deadline breaking roadblock. The flip side of that coin is that developers may well find themselves pushing both their code and infrastructure into production. No matter how easy delivering infrastructure through a PaaS or IaaS is, any move into production still requires a keen eye for monitoring, security and scalability and high availability.
With great power comes great responsibility, and developers should keep in mind that a lot of the responsibility in the DevOps model will fall on their shoulders. Treating code and infrastructure as a single deliverable will save time and money, but developers will be expected to ensure that both are production ready.