Kudos to the author for writing this. Serverless is a thing, but Docker definitely isn't it. Nor is AWS lambda. Serverless is client-only code, or even Peer-to-Peer between self-coordinating clients. There's a lot of stuff that overlaps in this domain, including microservices, containers, serverless, and if we want to talk about them we should use the right terminology.
>Serverless is client-only code, or even Peer-to-Peer between self-coordinating clients. That's a valid definition but it's just one of many. The Function-as-a-Service has also been called "serverless" . Your definition of "serverless" demarcates on where the code runs. The FaaS "serverless"[1] differentiates on what part of the stack you don't have to manage the housekeeping for. With FaaS-serverless, you don't worr…
If I think of the most basic, abstract definition of a server I can, I'd say it's a piece of software at a known location outside of the client process, to which a client goes to transmit a message (and optionally have future messages back and forth in the same "session").
I would say Lambda is not serverless because it depends on software outside of the client process, and I know where it is.
X is not serverless because the client process is separate from the server.
SQLite is serverless because my process is calling the sqlite library.
Torrenting initially has a server (clients need a way to find peers) but very quickly becomes serverless.
So I'd say my definition isn't about where it runs, but who is running it and in what context.
That's my thoughts on it anyway.