7 ms·
> I was never quite sure why we got the name “serverless”, or where it came from Serverless refers to the software not being a server (usually implied to be a
by randomdata 2y ago
> I was never quite sure why we got the name “serverless”, or where it came from
Serverless refers to the software not being a server (usually implied to be a HTTP server), as was the common way to expose a network application throughout the 2010s, instead using some other process-based means to see the application interface with an outside server implementation. Hence server-less.
It's not a new idea, of course. Good old CGI is serverless, but CGI defines a specific protocol whereas serverless refers to a broad category of various implementations.
- bloppe 2y agoPedantry police here. I would define serverless to mean that all the hardware is completely abstracted away. For instance, on EC2, you have to pick an instance type. You pick how much memory and compute you need. On a managed kuberenetes cluster, you still have to think about nodes. On a serverless platform, though, you have no idea how many computers or what kinds of computers are actually running your code. It just runs when it needs to. Of course there's still an HTTP server somewhere, though. So, you could run a CGI script on a serverless platform, or a "serverful" one. You could even run it locally. https://en.wikipedia.org/wiki/Serverless_computing https://en.wikipedia.org/wiki/Serverless_computing Per wikipedia: "Serverless is a misnomer in the sense that servers are still used by cloud service providers to execute code for developers. However, developers of serverless applications are not concerned with capacity planning, configuration, management, maintenance, fault tolerance, or scaling of containers, virtual machines, or physical servers."
- randomdata 2y agoFor all intents and purposes, when is the hardware not fully abstracted away? Even through the 2010s when running as a server was the norm, for the most part you could throw the same code onto basically any hardware without a second thought. But pedantically, serverless is to be taken literally. It implies that there is no server in your application.
- bloppe 2y agoEC2 and managed kubernetes are two examples where you still have to think about hardware.
- deleted 2y ago[deleted]
- randomdata 2y agoNot really. The application doesn't care. Hell, many of these modern serverless frameworks are built so that they can run both server and serverless from the very same codebase, so it is likely you can take the same code built to run on someone's MacBook running macOS/ARM and run it on an EC2 instance running Linux/amd64 and then take it to a serverless provider on any arbitrary hardware without any code modification at all! I've been around the web since Perl was the de facto way to build web apps, and it has always been an exceptional situation to not have the hardware fully abstracted away. Typically, if it will run on one system, it will run on any system. The move away from CGI/FastCGI/SCGI to the application being the server was a meaningful shift in how web applications were developed. Now that we've started adopting the server back out of the application in favour of the process-based model again, albeit now largely through propriety protocols instead of a standard like CGI, serverless has come into use in recognition of that. We don't want to go back to calling it CGI because CGI is no longer the protocol du jour.
- chubot 2y agoFWIW I agree with you -- serverless does not refer to "web server", it refers to "linux server machine" (whether it's physical or virtual) You don't care about the specific machine, the OS kernel, the distro, the web server, or SSL certificates when you're doing "serverless" And the SAME was true of "PaaS" This whole subthread just proves that the cloud is a mess -- nobody knows what "serverless" is or that App Engine / Heroku already had it in 2008 :)
- bloppe 2y agoI agree the "serverless" is not a good name. But hey, it stuck :/ I also can't come up with one that's significantly better.
- randomdata 2y ago> it refers to "linux server machine" (whether it's physical or virtual) No, "server" most definitely refers to software that listens for network requests. Colloquially, hardware that runs such software is often also given the server moniker ("the computer running the server" is a mouthful), but that has no applicability within the realm of discussion here. If you put the user in front of that same computer with a keyboard and mouse controlling a GUI application, it would no longer be considered a server. We'd call it something like a desktop. It is the software that drives the terminology. > nobody knows what "serverless" is or that App Engine / Heroku already had it in 2008 :) Hell, we were doing serverless in the 90s. You uploaded your CGI script to the provider and everything else was their problem. The difference back then was that everyone used CGI, and FastCGI later on, so we simply called it CGI. If you are old enough to recall, you'll remember many providers popped up advertising "CGI hosting". Nowadays it is a mishmash of proprietary technologies, so while technically no different than what we were doing with CGI back in the day, it isn't always built on literal CGI. Hence why serverless was introduced as a more broad term to capture the gamut of similar technologies.
- chubot 2y agofly.io is "serverless", but there are HTTP servers inside your Docker container, so I don't agree -- in that case it refers to the lack of pinning to a physical machine https://fly.io/blog/the-serverless-server/ https://fly.io/blog/the-serverless-server/ Pretty sure Lambda has an option for that too -- you are responsible for the HTTP server, which is proxied, yet it is still called serverless --- On the second point, I wrote a blog post about that - https://www.oilshell.org/blog/2024/06/cgi.html https://www.oilshell.org/blog/2024/06/cgi.html It would make for a much more interesting conversation if you cite some definitions/sources, as others have done here, rather than merely insisting that everyone thinks of the terms as you think of them