The (Futile) Resistance to Serverless
I gave a talk at O'Reilly Media’s Velocity Conference this week, in which I argued that serverless architectures are a huge innovation and will take over and everyone is just scared and why is everyone messing around with containers, it’s stupid. It was not very well received…
However, I stand by my position. When we get comfortable building mainstream web apps on serverless platforms, the impact to productivity will be really, really big — bigger pound-for-pound than original-flavor cloud. Between industrial-scale resource management, the power of replacing many small choices with one big one (technical decision making, as I pointed out, is very expensive), and eliminating whole functions of a typical technology organization, we’ll see much more impact than we have from lovingly recreating our datacenters in… other datacenters.
To be clear, serverless for me means any platform that provides utility while completely abstracting scaling and reliability. It includes simple services like edge caches or hosted DNS, fully managed complex services like Cloud Spanner or Big Query, SaaS stuff (I suppose), and runtime-as-a-service things like App Engine. No, it’s not coincidence that a bunch of the stuff I named is GCP stuff. FaaS, sure but I think is kind of a fad that may have a niche but isn’t the point. (Deepak Singh calls FaaS “modern day Perl” which I quite like. And I like Perl ;).
I’m confused by the lack of enthusiasm and focus in the community — perhaps I am wrong but that is how it seems. My theory is that there’s a host of factors that knock out constituencies that otherwise might be more vocal.
Systems/Ops people don’t have much to say because, in this world, they don’t have much to do (unless you are on the inside, and then you have a hell of a lot to do). SaaS builders have a conundrum in that if part of their value was providing infrastructure, it isn’t any more. This is the “Dropbox problem”.
There’s a massive loss of perceived control, that doesn’t sit well with the hardcore engineers. In general, they see a lot to poke holes in and don’t value the gains of simplicity so much.
And to be fair, it’s new and raw — meaning really the synthesis hasn’t really happened. Many building blocks are there but the whole is not, and there are not many complex examples/success stories.
Yet. It’s just a matter of time, in my opinion. Why isn’t there more appetite to like, be one of those?
One issue is that the cloud crew is not leading here. Fully acknowledging some great individual, sort of prototypical steps, such as Lambda, Kinesis, GAE, etc., and the fairly new emergence of truly serverless data infrastructure, they haven’t told the story. Serverless is more marketing concept than roadmap to them. I can see why — the cloud business right now is dead easy if all you do is steal datacenter work, so why try hard to explain, let alone actually figure out, this stuff.
That will change, and fast. The challengers will figure out that this is a way to steal the march on AWS, and their stories will start to come together. Azure may lead the way…
There are 50 other ways in which this is a huge, huge deal — the secondary effects on how we build software and even what engineers do will reverberate for quite a while.
Anyway, I’m a believer, and this should be really, really fun, both as pure change, to watch this unfold, and as a CTO, to reap the benefits. It should be fun for engineers, once they get past the resistance of how much this changes what they actually do. If I could figure out how to trade on this trend, I would (ideas anyone??? ;).
For my part, I’m throwing it out to my team at New York Times Open that we commit to this. We’ve put some apps on GAE already (see this by JP Robinson). First we just have to finish our 1.0 cloud migration and containerization (ARG!!!!). My goal is all new apps are serverless by 2019. We’ll get there.