A couple of weeks back, I took a trip to London after work to attend the latest CloudCamp meet-up. It’s been a while since I last went to CloudCamp but I was intrigued by the title of the event: “Serverless and the death of DevOps?”. The death of DevOps? Surely not. Most organisations I’m working with are only just getting their heads around what DevOps is. Some are still confusing a cultural change with some tools (hey, we’ll adopt some new tools and rebrand our AppDev function as DevOps). If anything, DevOps is at the top of the hype curve; it can’t possibly be dead!
Well, 5 minutes into the event and, after Simon Wardley (@SWardley)’s introduction, I could see where he was coming from. Mix the following up with some “Wardley Mapping” and you can see that what’s being discussed is not really the death of DevOps (as a concept where development and operations teams work in a more integrated fashion) but it may well be a new cloud computing paradigm, in the form of “serverless” computing (AWS Lambda, Azure Functions, etc.):
- Back in the beginning of computing, systems were hard-wired (e.g. Colossus).
- Then, they evolved and we had custom-built computing (e.g. Leo) with the concept of applications and an operating system.
- This evolved and new products (like the IBM 650) were born with novel architectural practices, based around the concept of compute as a product.
- These systems had a high mean time to recover (MTTR) so the architecture of the day was designed around N+1, DR tests, scaling up.
- Evolution continued and novel architectural practices became emerging, then good. Computing became more resilient.
- Next came frameworks. We had applications and an emerging coding practice based around these frameworks, running on an operating system using good architectural practice, all built around the concept of compute as a product (a server).
- All was happy.
- Then along came the cloud. Compute was no longer a product but a utility. It brought new benefits of efficiency, pooling resources, agility. Computing had new sources of worth.
- And organisations said “make my legacy cloudy” [actually, this is as far as many have got to…].
- Some people asked “but shouldn’t architecture evolve too?” And, after the initial cries of “burn him, heretic”, a new novel architectural practice emerged, built around a low MTTR. It took seconds to get a new virtual machine, distributed systems were designed for failure, indeed chaos monkeys were introduced to the environment to introduce failure and ensure resilience. We introduced co-evolution (which has been practiced in other fields throughout history) and we called it DevOps.
- This evolved until it became good architectural practice for the utility world and the old practices for a product world became legacy.
- The legacy world was held back by inertia but the cloud was about user needs, measurement, automation, collaboration and fast feedback.
- Then a new tribe began to rise up. Using commodity operating systems and functions as a framework. This framework is becoming a utility. And it will move from emerging to good practice, then best practice and “serverless” will be the future.
- The old world will become legacy. Even the wonderful world of “DevOps”.
- But, for now, if we say that “DevOps” is legacy, the response will be “burn him, heretic”.
So that’s the rise of serverless and the “death of DevOps”.
— Simon Clifford (@simonaclifford) July 6, 2017
[Simon Wardley does a much better job of this… hopefully, there’s a video out there of him explaining the above somewhere…]