Live data from Hacker News

Docker isn't serverless

serverlesscode.com

31–40 of 67 posts

Re: Docker isn't serverless

#32
post #5

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…

The only thing serverless about AWS lambda is the pricing model.

Re: Docker isn't serverless

#33
post #5

Earlier quoted context omitted.

>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…

I think the deeper we go into this discussion the more philosophically ambiguous it gets. 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…

I always understood a 'server' to be the process (or machine) that accepts the connection; the client is the process (or machine) that initiates the connection. Sometimes the same machine can be both the client and server. In your BitTorrent example, users are both clients and servers.

Re: Docker isn't serverless

#34
I agree that Docker is not serverless, but I think that it does replace the need for serverless services if coupled with an orchestrator such as Kubernetes, Swarm or Mesos.

The first bullet point in the article is true when taken in its entirety but it's also misleading because using Docker with an orchestrator like Kubernetes does significantly reduce the need for maintenance - You do have to design your apps in a particular way (so that they can auto-scale themselves - And this is no small feat) but once you do, it's really easy on the maintenance side. I think it's a matter of time before open source projects start to become 'built for Kubernetes' - I already did this with my own project https://github.com/SocketCluster/socketcluster and I know lots of big open source developers who are also doing the same. Kubernetes/Swarm/Mesos are becoming 'cloud' operating systems - Once their popularity reaches a critical threshold, developers will build apps on top of Kubernetes or Swarm in the same way that developers today build apps to run on Linux or OSX.

Eventually, when people ask "What OS does your software run on?", the most common answer will probably be "Kubernetes" or "Swarm" - Instead of saying "Linux", "OSX" or "Windows".

The second point is also correct when taken literally but also misleading. While Docker doesn't use third-party services to reduce the amount of code... It does allow you to use third-party Docker images to reduce the amount of code... Same result, different approach. I think the second approach is better (and cheaper sine you don't have to pay ongoing costs).

The third point makes sense but the concept of 'lambda functions' is completely redundant in a self-orchestrated Docker environment. Lambda functions were invented to fix a problem which BaaS introduced - By the very fact that it doesn't offer you direct access to the backend. In my opinion, Lambdas are not as good a solution as having your own backend code running in auto-orchestrated containers (Lambdas often have lots of limits related to resource usage, timeouts, including third-party modules, etc...).

I think that until now, BaaS providers have had the upper hand because they're really easy to use, but I'm certain that Docker/Kubernetes/Mesos will win out in the end for the simple fact that they are decentralized, that they are way more flexible, that they leverage open source technology and that ultimately they will cost much less (because of their high flexibility, customizability and composability).

There are lots of great teams building new platforms on top of Docker which will make it easier to use than BaaS.

Re: Docker isn't serverless

#35

Earlier quoted context omitted.

I think the deeper we go into this discussion the more philosophically ambiguous it gets. 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…

I always understood a 'server' to be the process (or machine) that accepts the connection; the client is the process (or machine) that initiates the connection. Sometimes the same machine can be both the client and server. In your BitTorrent example, users are both clients and servers.

If you try to nail it down to a specific definition, you'll wind up in contradictions. English doesn't work like that; when I use a word, it means just what I choose it to mean, no more and no less.

Re: Docker isn't serverless

#36
post #13

Earlier quoted context omitted.

I think the deeper we go into this discussion the more philosophically ambiguous it gets. 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…

>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, But you're trying to reduce it down to a perfect singular definition. English doesn't work like that and we'll just end up in contradictions as I will demonstrate further down in my comment. >I would say Lambda is not serverless because it depends on software outsid…

> If we insist on 1 definition, we will have contradictions.

Yeah, the thing with using a clear language is that what you say may be wrong. If we grow out of our clarity prison we'll be able to babble any combination of words, and still not be wrong!

Re: Docker isn't serverless

#37
post #10
post #7

I kind of feel that Erlang programmers are shaking their heads in frustration at all this and saying "we've been doing things this way since the 80s and saying they're great but nobody listens".

Erlang programmers aren't shaking their heads. They're too busy writing useful things to pay attention to each and every fad.

My Erlang friend is definitely shaking his head.

Re: Docker isn't serverless

#38

I can understand why people try to come up with a definitive definition of "serverless" but.... "Serverless" is an adjective. Adjectives are used to provide auxiliary meaning to the noun it's attached to, which means it depends on context. It could be a "serverless website", it could be a "serverless hosting", it could even be a "serverless diner"!

It's funny to watch people debate the meaning of this word as though it's some rigorously technical term that has been around forever. It's just the latest buzz word for the latest evolution in simplifying/hiding operations from developers.

Re: Docker isn't serverless

#39
Serverless is a word that only has meaning within the existing paradigms of web development. A "Server" is nothing more than a metaphor for a machine with stuff a "client" (another machine) can request. Everyone acts confused/amazed at what is essentially semantics for describing infinitely more complex systems.

It's the same process with any buzzword. They're terms that are so all-encompassing that, yeah, every sensible, modern project operating in a related space could probably be described by them. Like horoscopes for engineering.

Re: Docker isn't serverless

#40
post #38

I can understand why people try to come up with a definitive definition of "serverless" but.... "Serverless" is an adjective. Adjectives are used to provide auxiliary meaning to the noun it's attached to, which means it depends on context. It could be a "serverless website", it could be a "serverless hosting", it could even be a "serverless diner"!

It's funny to watch people debate the meaning of this word as though it's some rigorously technical term that has been around forever. It's just the latest buzz word for the latest evolution in simplifying/hiding operations from developers.

You echoed my thoughts exactly!
Post reply on HN