News for hackers. Stuff that matters.
Re:The Serverless Revolution Has Stalled by noncoml on Tuesday October 13, 2020 @03:11AM (#24763068)
> developers can produce generic code

There is nothing generic about the code that runs on serverless services. It’s the ultimate lock in.

Re:The Serverless Revolution Has Stalled by gorbypark on Tuesday October 13, 2020 @05:22AM (#24763750)
I use Google Cloud Run to run my serverless code for exactly this reason. GCR is literally just a container that runs on demand (with scaling to 0). Literally the only GCR specific part is making sure the service listens on the PORT env. If I was so inclined, I could deploy the exact same container on any number of services, host it myself and/or run it on my laptop for development purposes. There's also Kubernetes Knative which is basically (afaik) self hosted GCR.
Re:The Serverless Revolution Has Stalled by Can_Not on Tuesday October 13, 2020 @11:02AM (#24766228)
Cloud Run is excellent if I wrote my own application. My biggest issue is that most off the shelf open source software that has a docker container often use a complicated docker compose file so if they can be deployed, they might be waiting on each other's cold starts (which can be very long and expensive) and/or need more databasesish things than I want. So obvious mistakes and unrealistic expectations aside, I have several nodejs and crystal apps on cloud run which is running well and just the concept "lambda for docker containers" is pretty awesome. Cold starts are pretty harsh ATM, hopefully they improve.
Re:The Serverless Revolution Has Stalled by jononor on Tuesday October 13, 2020 @09:09AM (#24765204)
How is the spin-up time for such a container?
Re:The Serverless Revolution Has Stalled by ko5ta on Tuesday October 20, 2020 @09:27PM (#24844020)
It varies massively based on the tech stack. I have seen both simple Spring Boot and Quarkus apps take in excess of 10 seconds to start up in JVM mode. However, Quarkus compiled to native binary with GraalVM starts consistently under a second (in the ~500ms range). This is still brutal compared to running it on a vanilla MacBook which usually takes less than 20ms.
Re:The Serverless Revolution Has Stalled by Simon321 on Tuesday October 13, 2020 @10:23AM (#24765809)
Re:The Serverless Revolution Has Stalled by nikon on Tuesday October 13, 2020 @10:05AM (#24765643)
In my experience pretty good, even for a Django app. I believe the container sticks around for a while and is throttled to 0 CPU.
Re:The Serverless Revolution Has Stalled by dbergamin on Tuesday October 13, 2020 @04:06AM (#24763350)
I don't agree, serverless code in itself tends to be portable. It's the surrounding services that lock you in.
Re:The Serverless Revolution Has Stalled by thinkharderdev on Tuesday October 13, 2020 @10:10AM (#24765681)
That depends a lot on the use case. The ephemeral nature of serverless environment generally require you to proprietary solutions by the cloud provider to have things like DB access and such. So you end up using DynamoDB instead of Postgres (as an example). You CAN make portable serverless code but it generally requires a fair amount of work to do so.
Re:The Serverless Revolution Has Stalled by reilly3000 on Tuesday October 13, 2020 @03:16AM (#24763084)
Most actual FaaS code is quite portable; the configuration is what can’t move easily. And things like OpenFaaS and kNative make self-hosted runtimes completely flexible- it’s just a short-lived container.
Re:The Serverless Revolution Has Stalled by jfoster on Tuesday October 13, 2020 @03:19AM (#24763098)
At the moment.

Is there anything stopping an organisation from defining some standard types of serverless environments?

Is there anything stopping someone from turning that standard into implementations to help cloud providers offer it, or even be a fallback option that could be deployed on any generic cloud infrastructure?

I think those are the way forward from here.

Re:The Serverless Revolution Has Stalled by toyg on Tuesday October 13, 2020 @04:33AM (#24763505)
The point of serverless for vendors is lock-in. Everything else about it is an annoyance, from their side (having to manage lifecycle, controlling load in shared engines, measuring resource usage...). But it locks people in and can be slapped with basically-arbitrary prices. The incentives to set standards are exactly zero, because once all providers support them and easy portability is achieved, it becomes a race to the bottom on price. Unless vendors can come up with some extra value-added service on top and choose to commoditize away the serverless layer, there won’t be any standard.
Re:The Serverless Revolution Has Stalled by rzwitserloot on Tuesday October 13, 2020 @05:23AM (#24763757)
> Is there anything stopping an organisation from defining some standard types of serverless environments?

Yes. Basic economics. There is nothing _technical_ stopping 'an organisation' from making a federated twitter or facebook. But there are (evidently) insurmountable non-technical reasons: It hasn't happened / there have been attempts which have all effectively failed (in the sense that they have made no significant dent in these services' user numbers).

Why would e.g. Amazon (AWS) attempt to form a consortium or otherwise work together or follow a standard, relegating their offerings to the ultimate in elasticity? Economically speaking, selling grain is a bad business: If someone else sells it for 1ct less per kilo then the vast majority of your customers will go buy from someone else, there's no product differentiation.

Serverless lockin (such as GAE or AWS Lambda) is the opposite. No matter how expensive you make the service, your users will stay for quite a while. But make a universal standard and you fly in one fell swoop to the other end of the spectrum. If I have a serverless deployment and the warts of serverless are fixed (which would, presumably, involve the ability to go to my source repo, run a single command, give it some credentials, and my service is now live after some compilation and uploading occurs) - then if someone else offers it 1ct cheaper tomorrow I'll probably just switch for the month. Why not?

This cycle can be broken; but you're going to have to paint me a picture on how this happens. Government intervention? A social movement amongst CEOs (After the war, there was a lot of this going around)? A social movement amongst users so aggressive they demand it? Possible, but that would require that we all NOT go to serverless until the services offering it come up with a workable standard and make commitments to it.

Re:The Serverless Revolution Has Stalled by jfoster on Tuesday October 13, 2020 @10:57PM (#24772684)
I think it can happen simply through one serverless offering becoming very popular and other services (or open source projects) trying to reimplement the API of that offering. To some extent, this happened with Google App Engine. (AppScale)

I think cloud customers are savvy to the lock-in. That we're having this conversation in evidence of that. Perhaps AWS can achieve adoption of Lambda without needing to cater to customers who are cautious about getting locked in, but any challenger might find that it's much easier to gain customers if they also provide some form of an escape hatch.

As Jeff Bezos would say about retail, "your margin is my opportunity."

Re:The Serverless Revolution Has Stalled by chriswarbo on Tuesday October 13, 2020 @05:58AM (#24763953)
> Is there anything stopping an organisation from defining some standard types of serverless environments?

We have some already, e.g. RFC3875 and its descendents https://tools.ietf.org/html/rfc3875

Re:The Serverless Revolution Has Stalled by technimad on Tuesday October 13, 2020 @03:22AM (#24763114)
That standard could be something like CloudABI [1] which already exists, but is too limited (no networking) to replace generic serverless workloads.

[1] https://lwn.net/Articles/674770/

Re:The Serverless Revolution Has Stalled by methodin on Tuesday October 13, 2020 @03:35AM (#24763182)
I disagree. Every AWS Lambda function I've ever written can be ran as a regular node/python process. The lambda-specific part is miniscule. If I wanted to run these on Azure or Google only the most inconsequential parts of the function would need to be changed.
Re:The Serverless Revolution Has Stalled by michaelt on Tuesday October 13, 2020 @03:55AM (#24763284)
In my experience, having started and abandoned side projects in both aws lambda and google app engine, half your project becomes:

* Well, obviously we use a hosted database

* And obviously, AWS provides our logging and all our analytics.

* Obviously when people call our lambda functions, they do so either through an AWS-specific API, or one constrained to a very limited set of forms.

* Of course, we can't blindly let everything access everything, so naturally we have IAM roles and permissions for every lambda function.

* Well, the cloud provider will look after secrets and things like that for us, no need for us to worry about database passwords.

* Naturally, with all these functions and IAM roles to look after, and we need tagging for billing. We should define it all with CloudFormation scripting.

* Well, the nosql database the they provide comes with their specific library. And as it shards things like this, and doesn't let you index things like that, you've got to structure your data this specific way if you want to avoid performance problems.

* You don't want your function to take 200ms+ to respond, your users will notice how slow it is. So no installing things with apt-get or pip for you, let me get you a guide on how to repackage those into the vendor-specific bundle format.

* You want to test your functions locally, with access to an interactive debugger? You're living in the past, modern developers deploy to a beta environment and debug exclusively with print statements.

* And so on.

In this case, a lot of the 'complexity' one hoped to eliminate has just been moved into XML files and weird console GUIs.

Re:The Serverless Revolution Has Stalled by nicbou on Tuesday October 13, 2020 @05:45AM (#24763887)
This, but it was told by serverless experts, on stage, in front of hundreds of people. If that was their sales pitch, their reality was likely even less impressive.
Re:The Serverless Revolution Has Stalled by C1sc0cat on Tuesday October 13, 2020 @09:11AM (#24765223)
This sounds a bit like the posh workshop I went to on WAP (wireless access protocol) years ago when I worked for BT.

It was a complete omnishambles - to the point I avoided the fancy lunch and went to the Pub for a ploughman's lunch, In case I suddenly blurted out "this is all S*&T" and caused a political row with the mobile side of the company I worked for.

Re:The Serverless Revolution Has Stalled by blablabla123 on Tuesday October 13, 2020 @08:53AM (#24765108)
Never tried something marketed as Serverless but Google App Engine. If you wanted any performance, you had to follow the Guidelines really closely. Which could be legit, if it's worth the effort but I think it isn't. I think people under-estimate the effort and that the code will require much more not so nice optimizations than expected. That includes very verbose logging. It's sold as carefree and elegant but it only works when using patterns that nobody enjoys. I really liked the log browser and Dashboard though ;) It's like a stripped down version of New Relic and Elastic Search combined.
Re:The Serverless Revolution Has Stalled by methodin on Tuesday October 13, 2020 @02:15PM (#24768216)
Most of your points are not relevant to my original statement of the code being generic - they are talking more about the architectural decisions. If I want to use DynamoDB I can do so in EC2 or Lambda, serverless doesn't dictate that. You also seem to believe one chooses Lambda because of complexity reduction and that's not really the only reason. I can very easily port a node/express API backend that connect to RDS to any other cloud provider. What about serverless makes you think that's not the case?
Re:The Serverless Revolution Has Stalled by selfhoster11 on Tuesday October 13, 2020 @11:24AM (#24766470)
Then your service becomes just a tiny stub of vestigial logic buried under layers and layers of YAML, vendor libraries and locked assumptions.
Re:The Serverless Revolution Has Stalled by thinkharderdev on Tuesday October 13, 2020 @10:11AM (#24765691)
Or even worse, giant yaml config files
Re:The Serverless Revolution Has Stalled by dragonwriter on Tuesday October 13, 2020 @03:56AM (#24763290)
> Every AWS Lambda function I've ever written can be ran as a regular node/python process. The lambda-specific part is miniscule.

Of the actual function code, sure.

Of course, if you aren't manually configuring everything and are doing IaC, that isn't generic. And if you are supporting the Lambda with any other AWS serverless services, the code interfacing with them is pretty AWS specific.

Re:The Serverless Revolution Has Stalled by methodin on Tuesday October 13, 2020 @02:16PM (#24768251)
I was only talking about function code. It should be painfully obvious to anyone that if you opt to leverage other AWS services that those are things you would ultimately have to replace but those decisions have nothing to do with serverless.
Re:The Serverless Revolution Has Stalled by dragonwriter on Tuesday October 13, 2020 @03:32PM (#24769335)
> but those decisions have nothing to do with serverless.

Sure they do.

Because if you need a DB for persistence you are either setting up a server for it (and therefore not serverless, even if part of your system uses a Lambda) or consuming a serverless DB service. And so on for other parts of the stack. On AWS, for DB, that might be Dynamo (lock-in heavy) or, say, Aurora Serverless (no real lock-in if you don't use the RDS Data API but instead use the normal MySQL or Postgres API, but that's higher friction—more involved VPC setup—to use from Lambda than RDS Data API is, so the path of least resistance leads to lockin.)

Lambda or other FaaS is often part of a serverless solution, but is rarely a serverless solution by itself.

Re:The Serverless Revolution Has Stalled by Lucasoato on Tuesday October 13, 2020 @03:51AM (#24763263)
Using a stack like serverless framework the amount of lock-in is negligible.