Is Serverless the end of Docker?
This was a topic of conversation at Dockercon this year. It started with the argument that Serverless will be the end of Docker which I disagree is the case because Docker (or at least containerization) powers Serverless. Take AWS Lambda for example (same likely applies to GCP Functions) in the backend they’re running containers to launch the functions deployed on the service. In that respect Serverless and Docker are quite symbiotic.
The question I think becomes more relevant when you consider the customer. For a public cloud provider like AWS, Google or Microsoft who provide Serverless services to their customers, Docker is very much relevant and a key technology to their business. However for a typical enterprise, medium or small business is that really the case? Let’s face it, Docker isn’t as seamless as some may think, meaning you do need to learn and understand Docker in order to use it, so is it worth having your engineers invest that time, in addition to honing their development skills to write code which they’ll deploy on Docker or is it a better use of their time to focus on improved development skills alone and instead deploy on Serverless infrastructure? Let’s assume that the learning curve to Serverless is much steeper, given that for the most part the service just runs your code as is.
I wouldn’t proclaim to be a futurist but I do believe that Docker has a more steady long term future with large cloud providers than they do with everyone else and that Serverless is more compelling for that every one else group. This argument reminds me of one from 5 years ago about the relevancy of servers. Yes, their mostly irrelevant to small and medium sized business but to cloud providers that’s far from the truth. This I really do believe is a similar comparison to Docker vs Serverless.
In a continuum of application development cycles where legacy is considered baremetal application deployments, then the evolution of Virtual Machines, Containers were the next in that scale and more recently Serverless. There will come a time where most engineers will be developers, it’s happening more and more every day and as that happens Serverless will be a natural deployment practice.