I am sure people have said this but it's "serverless" from the perspective of the user (who is a developer in this case). The developer doesn't have to deal with servers/infrastructure so for them the system is serverless.
I guess it's like wireless... Something could be wireless from the perspective of the end user but there are still wires actually there.
I honestly think that serverless is a lot less ambiguous and misleading than something like "cloud" which is completely abstract.
> I guess it's like wireless... Something could be wireless from the perspective of the end user but there are still wires actually there.
It's a bad analogy. As a developer you are supposed to know they are wires somewhere. That's why all this marketing is dangerous. the obfuscation which makes everything sound like "voodoo and black magic".
> The developer doesn't have to deal with servers/infrastructure so for them the system is serverless.
Yes he does, he has to configure and manage the whole thing on Amazon dashboard. Sure he doesn't have to spin upcontainers, but autoscaling doesn't make something "serverless". And again, you need API gateway to communicate with the outside world. So there is still a server fronting the whole thing.
I think we might be thinking about Serverless slightly differently. To me serverless is not just AWS Lambda. It's a broader theme that encompasses Function-as-a-Service technologies like Lambda and Backend-as-a-Service technologies like Firebase & Auth0.
Combining FaaS, BaaS, and using certain techniques and patterns is what makes Serverless. As a developer I am plenty aware that there are servers - I don't feel that there is any voodoo or black magic. However, when someone says that they have a serverless system I immediately understand what they are trying to say. They are saying that they don't need to manage, provision, scale, and look after servers. Honestly, the world "serverless" is a lot less confusing than "cloud".
I am not sure what you mean by "there is still a server fronting the whole thing". You don't need to scale the API Gateway yourself (again it's a managed service). Same goes for Azure functions, Google Cloud Functions and OpenWhisk as they all have HTTP listeners built in.
> However, when someone says that they have a serverless system I immediately understand what they are trying to say.
Obviously we don't as I don't consider the expression "serverless" accurate in describing what is really happening. Call it what it really is : pubsub, calling it "serverless" is misleading marketing.
> You don't need to scale the API Gateway
You still need API Gateway to communicate with the outside world, here is your server, you know exactly what I mean. What you call "serverless" didn't invent autoscaling in PAAS.
It's interesting by the way that you keep using product names "Lambda", "API Gateway" which aren't concepts but Amazon products. That's marketing. It's like calling all social networks "Facebooks". "Serverless" is a marketing device to sell Amazon services, I think people get it by now.
> It's interesting by the way that you keep using product names "Lambda", "API Gateway" which aren't concepts but Amazon products. That's marketing. It's like calling all social networks "Facebooks". "Serverless" is a marketing device to sell Amazon services, I think people get it by now.
Amazon is a leader in this area right now but let's not use them. We can talk about Microsoft, IBM, or Google. They use "serverless" to describe their products. Google calls cloud functions a "serverless platform" and "serverless microservices" (https://cloud.google.com/functions/).
Azure functions talk about "processing events with serverless code" and so on. I only meant to use Amazon is an example because people are more familiar with their products.
Serverless is just a descriptor for these kinds of technologies and patterns.
Both serverless and cloud are words that essentially mean that you are running back-end stuff on someone else's computer. That's not necessarily a problem, but these words appear chosen for their hype value and lack of actual semantic meaning. They are also irksome and downright impractical when you want to get down to what it really is or does due to all the marketing fluff and misinterpretation surrounding them.
If you want to talk nuts and bolts about some cool technology or interesting concept; why not use an unambiguous term that means just that one thing — e.g., platform-as-a-service (PaaS), function-as-a-service (FaaS), or simply a hosted solution.
> I am sure people have said this but it's "serverless" from the perspective of the user (who is a developer in this case).
It's specifically not server-less. The developer is writing code that will be run on a server. They just don't control that server. That is literally no different than people who push regular Ruby/Python/PHP/NodeJS/Perl/etc apps to platforms platforms like Heroku, or like developers pushing CGI/PHP scripts to regular shared-hosting providers via FTP back in the day.
In all cases, the developer has very limited, if any control over the server, and just uploads their code to run.
> I guess it's like wireless... Something could be wireless from the perspective of the end user but there are still wires actually there.
No, it fucking isn't. "Wireless" describes a specific type of connectivity - either WiFi/Bluetooth style short-range local networking, or Cellular/WiMax style long-range "last mile" networking. For the specific connectivity that is described as "Wireless" THERE ARE NO FUCKING WIRES. It is very possible to operate a 100% wireless network - e.g. bluetooth device networking, or wifi LAN networking. You will only be able to connect to other devices on the same network, but internet access isn't what's being claimed, and it will be completely wireless.
In the single specific definition of the "serverless" architecture, there is very much a server (and more than likely several), and without that server, you have nothing.
> I honestly think that serverless is a lot less ambiguous and misleading than something like "cloud" which is completely abstract.
With terms like Cloud, the term has actual technical background. Network diagrams often include a "cloud" component, which literally signifies something you don't control, usually a WAN/internet connection. See for example, this diagram with reference to a local IPX network (the page it's from isn't in English but references 1996): http://soback.kornet.net/~silicon/network/Tunneling.files/im...
Yes, the term has been expanded upon but there is still a basis of the same concept in its use: something you just use, you don't manage/control.
"Serverless" is a technically incorrect and very misleading term. The term would be better applied to something like HTML/JS Single-Page Apps that use things like offline storage/etc to allow truly offline browser based apps.
That is literally no different than people who push regular Ruby/Python/PHP/NodeJS/Perl/etc apps to platforms platforms like Heroku
It is different. On Heroku, you have to think (a little) about server configuration, and (especially) about how many servers you need.
In the 'cloud', they're someone else's servers, but they're at least somewhat visible to you. In 'serverless', you don't see them and don't have to worry about them (one hopes).
I guess it's like wireless... Something could be wireless from the perspective of the end user but there are still wires actually there.
I honestly think that serverless is a lot less ambiguous and misleading than something like "cloud" which is completely abstract.