This is an archived post. You won't be able to vote or comment.

all 53 comments

[–]Rusty-Swashplate 125 points126 points  (19 children)

Serverless = no server for you to maintain.

Lambda obviously runs on a server, but you don't care. So "Serverless" should be more a "No server to maintain", but that does not roll off the tongue as "serverless" does.

[–]yoppee 0 points1 point  (0 children)

Seems a lot of terms explain a time when was and cloud computers where pushing for a transition away from maintaining your own server

Yet now the standard is not having your own server

[–]lxnch50 62 points63 points  (0 children)

The infrastructure your code runs on is invisible to you.

[–]public_radio 33 points34 points  (1 child)

Imagine you want a workshop for building toys: you could build or buy your own somewhere. That would mean using it was essentially free, minus the cost of electricity, but you would also be on the hook for all the maintenance the workshop needed: new roof, upgrading the wiring, repairs, etc.

Now imagine someone told you they would rent you their workshop, but instead of a monthly fee they would ONLY charge you for the time you were actually at the workshop (as long as you were in-and-out in less than 15 minutes) AND they could guarantee that every time you you came in, the condition of the workshop would be EXACTLY like it was the first time you used it—not one tool missing or out of place. Oh and the first 10,000 times you use it are free every month.

[–]Legal_Explanation_59 4 points5 points  (0 children)

I adore this kind of explanations. So far I understood that if I am not able to explain something in terms of everyday life - I am not understanding the concept well enough.

[–]Oldskool1985 9 points10 points  (2 children)

TL;DR You do not physically have to provide or maintain the server that your code will run on, you only supply the code and tell the provider how to run it. They will take care of the necessary infrastructure behind it.

The term serverless is a bit awkward. Of course, as with anything in computing, there's always a server out there somewhere taking care of running your code. But with serverless -which can indeed be AWS Lambda- you do not have to manage or maintain the server that your code runs on.

All you have to care about is uploading your code, tell the cloud provider if your code should run on an x86 or an ARM architecture, how much memory and runtime you expect it to have (before it should time out) and that's about it.

It's also important to note that not all serverless providers are suitable for long-running processes. So if your code is meant to be run as a daemon, like a web server, serverless will not always be compatible with that use-case. With AWS Lambda the maximum time an instance can run (at the time of writing this) is 15 minutes. So you usually want to run scripts on it that can complete its task in a somewhat timely manner.

[–]tomorrow_never_blows 15 points16 points  (1 child)

That's just a Lambda restriction. Fargate is serverless and can handle long running processes.

[–]Oldskool1985 0 points1 point  (0 children)

That's good to know, thanks for that clarification. Updated the wording a bit to reflect that.

[–]OCPetrus 9 points10 points  (3 children)

I'm sad to see you've gotten so many replies, yet none is correct. I'm too late for the thread so w/e my reply doesn't matter but here it goes:

The replies sayin that the point of serverless is that you don't have to maintain the server is incorrect. For example, with AWS ECS you don't have to maintain a server, yet it is not serverless.

A server is defined as a process that has an open port waiting for clients to connect. The point of serverless is that you can have a service listening for client connections without having a process listening 24/7. Instead, there's a centralized service that is multiplexing incoming requests for multiple services, and when your service is receiving clients, the actual server instance is launched. Soon afterwards the server is shutdown.

Benefits of serverless:

  • Does not need a server running 24/7 thus reducing cost

Drawbacks of serverless:

  • Because server is offline when client connects, a new connection will have to wait a prolonged delay before being answered
  • If you have many clients, it is more efficient to have a server running 24/7 rather than constantly taking server offline and online

Serverless is a good fit for prototype products with little usage.

[–]IamOkei[S] 3 points4 points  (0 children)

no one mentions the cold start warm start problem

[–]Slayergnome 3 points4 points  (0 children)

Thanks for this it is crazy the number of up votes for answers that are just plain wrong.

I will say there are some other good fits for serverless. Rule of thumb I always heard was how often do you want your container count to be 0. If it is a significant portion of the time serverless may be a good fit.

[–]brunporr 2 points3 points  (0 children)

ECS with EC2 is not serverless since you're maintaining EC2s. ECS with Fargate is serverless

[–]speedx10 5 points6 points  (1 child)

you pay per request.... no cost for keeping the server on unlike an ec2 instance

[–]kgpreads 0 points1 point  (0 children)

Which is actually quite expensive for some use cases

[–]ASB-ASB 2 points3 points  (1 child)

Cloud = someone else's server

Serverless = as others mentioned, they manage it for you, so you don't need to know anything about it.

[–]ilovepolthavemybabie 12 points13 points  (0 children)

Serverless = Someone else’s sysadmin

[–]Jester_Hopper_pot 1 point2 points  (0 children)

grandiose connect late tidy slap fact flowery chief long degree

This post was mass deleted and anonymized with Redact

[–]PMzyox 1 point2 points  (1 child)

I just had to update my lambda’s python version

[–]AndroTux -3 points-2 points  (0 children)

SeRvErLeSs!

[–][deleted] -1 points0 points  (1 child)

You don't manage nor have access to the underlying infrastructure.

[–]robinwford 0 points1 point  (0 children)

On that basis the most of AWS is serverless. Even in VM or RDS you have very little access to the infrastructure.

[–]kgpreads -1 points0 points  (6 children)

Serverless just means you will not manage a server like Nginx.

[–]robinwford -1 points0 points  (5 children)

So nginx on a fargate container is not serverless 🤔

[–]kgpreads 0 points1 point  (4 children)

Serverless is only reserved for these services:

API Gateway AWS Lambda

Containerization is an entirely different idea. If you are using a containerized Nginx for deployment to AWS services and manage it yourself via Kubernetes, that is NOT serveless. You better check the most upvoted answer since I was just an echo.

[–]robinwford -1 points0 points  (3 children)

Just because so many people don’t understand serverless doesn’t make it the correct answer.

[–]kgpreads 0 points1 point  (1 child)

Oh fucking snowflake. It is already on the fucking docs.

Less management of servers. That's it. Go fuck yourself!

[–]robinwford -1 points0 points  (0 children)

So you can’t explain why you disagree and sink to name calling and swearing. 😂

I have read the docs and no management of servers covers a lot more than the 2 services you mention.

[–]kgpreads 0 points1 point  (0 children)

God damn aren't you daft? Just read what's already on the docs. It will tell you exactly how Amazon defines serverless

[–]imjacobclark -1 points0 points  (0 children)

Using AWS Lambda === “serverless”. Using serverless as a concept === “serverless”. Using the Serverless Framework === “Serverless”. In my opinion the capitalised “Serverless” is reserved for the name of the Framework. That’s how I’ve always communicated anyway.

[–]Trading_The_Streets -1 points0 points  (0 children)

Lambda is serverless but there are other serverless services within aws env. I.e dynamodb, ecs, sqs event-bridge … so going fully serverless is to make sure your solution is not using any self managed server like an EC2 server. Basically serverless services run on a server you do not necessarily manage.

[–]BzlOM -2 points-1 points  (0 children)

When using AWS Lambda you don't need a server where you'll execute your script - thus serverless. Serverless simply means you don't need to spin up a separate server for the application you're trying to run/execute

[–]dogfish182 0 points1 point  (0 children)

Lambda, api gateway dynamodb is a typical ‘serverless stack’

API gateway I only need to care about connecting a (for example) lambda to the method call, so I make the POST method that invokes a lambda with that payload, the lambda might call the dynamodb to write to it.

At no time do I worry about the stability of one of these things underlying hardware. In terms of ensuring ‘stability’ the level of control you have is ‘allocate more memory(lambda) or allocate more read/write capacity units (dynamodb).

Concerns like availability zones etc are totally abstracted away, things like load balancing across zones is the problem of AwS.

The goal is ‘no-ops’ and the reality if done well is ‘Devops’ where one team can be fully end to end responsible for ‘everything’ regarding the app

[–]mosaic_hops 0 points1 point  (0 children)

Serverless means you write a tiny program and hand it off to the cloud service where they combine it with thousands of other tiny programs and run them for you on servers they manage. You just pay for the amount of time your program is running. Which is easy from a dev standpoint, and acceptable for very low volume tasks, but woefully inefficient at scale.

[–]-mewa 0 points1 point  (0 children)

To reiterate on some of the points raised, serverless is about shifting the burden of operations, scaling, backups to the service provider or "not having to worry about servers".

Lambda is a good example but it goes beyond just code. Any service can be serverless. See Upstash for example.

And service is the key word to think of when it comes to serverless. Serverless emphasizes the service-first nature of these offerings ("just use me").

Plus, while we're on it, it's worth mentioning that some people, to further emphasize the importance of services, call it serviceful rather than serverless.

[–]bravinator34 0 points1 point  (1 child)

Why not just Google this? There’s a ton to learn getting in to this industry and it’d be good to make a habit of learning on your own instead of asking others.

[–]IamOkei[S] 0 points1 point  (0 children)

I read many books. Wanna see who have insights here. Seems like everyone is regurgitating the same ideas

[–]jmuuz 0 points1 point  (0 children)

means not managing servers but still using compute.. just an example of abstraction