I'm surprised a Berkeley survey would neglect to mention PiCloud, which may be defunct but cloudpickle is still used heavily today (e.g. in Spark). The paper also appears to neglect the issue of code deployment, which can be a major undertaking and hidden cost of any web-based application, especially if the app has particular system dependencies. There are (private) solutions out there for moving parts of running JVM…
moving parts of running programs across machines Why is this desirable and what is the magnitude of the benefit?
Cloud Programming Simplified: A Berkeley View on Serverless Computing
21–30 of 43 posts
Re: Cloud Programming Simplified: A Berkeley View on Serverless Computing
#22It’s also great for vendor lock in and rent extraction. At least in its current iterations. I’m fairly certain Amazon isn’t going to make it easy to run your “serverless” applications on anything but their infrastructure. What would be more interesting would be languages and runtimes that run on the next network that is distributed, peer-to-peer, and able to be trusted. And easier to program for than they are today i…
The interface between Lambda and your business logic is usually very thin so in case of simple REST APIs migrating from platform (as long as the target platform has a compatible language runtime) to another or to be executed in a web app framework is rather easy. Serverless applications' reliance on other proprietary services like Cognito, DynamoDB etc is another thing however...
There's also the fact that most of the code isn't really gone, it's just transformed from web server logic to lambda deployment/configuration logic.
The biggest win all told seems to be security - at least with Lambda you don't need to worry about staying on top of OS updates and the likes. I'm not at all convinced that we gained much of anything else.
Oh, and one thing that's rarely discussed is how much development&qa costs skyrocket when you have a larger team developing a fully serverless application, each with their own setup and running a few performance tests every few months...
Re: Cloud Programming Simplified: A Berkeley View on Serverless Computing
#23>[serverless computing] closely parallels past advances in programmer productivity, such as the transition from assembly language to high-level programming languages Is this serious? The author seems to imply that we can just abstract away the entire internet in the same way we abstracted away copper wires.
Re: Cloud Programming Simplified: A Berkeley View on Serverless Computing
#24Does anyone else not feel so good about a future of computing where everything but the application layer is rented from Jeff Bezos?
Re: Cloud Programming Simplified: A Berkeley View on Serverless Computing
#25Earlier quoted context omitted.
But, the thing is so much code is removed in serverless. I'm not saying cloud providers aren't fighting to lock you in. It is just so much easier to switch if you have 1% of the code you used to.
I’m asking this from a place of genuine curiosity. Since the whole serverless thing has been gaining momentum, I’ve been mostly working on embedded stuff and haven’t been back to see what the new hotness is over in web land. What code gets eliminated in serverless? I have historically done most of my http backends using things like Flask or Sinatra or Elixir or Go (with net/http), and I’ve never felt like there’s a w…
The downside is that you then need to call them via Lambda instead of using some kind of REST API -- however at least in my case, this turns out to be the much lesser evil as I'm only using them internally, and have my own code that makes the calls. My "lock in" is that I would have to change that code, but it's trivial.
Re: Cloud Programming Simplified: A Berkeley View on Serverless Computing
#26It’s also great for vendor lock in and rent extraction. At least in its current iterations. I’m fairly certain Amazon isn’t going to make it easy to run your “serverless” applications on anything but their infrastructure. What would be more interesting would be languages and runtimes that run on the next network that is distributed, peer-to-peer, and able to be trusted. And easier to program for than they are today i…
The interface between Lambda and your business logic is usually very thin so in case of simple REST APIs migrating from platform (as long as the target platform has a compatible language runtime) to another or to be executed in a web app framework is rather easy. Serverless applications' reliance on other proprietary services like Cognito, DynamoDB etc is another thing however...
I feel like even this lock-in is overstated. Those other services are billed based on usage and are completely separate from each other. Your migration path away would be one service at a time.
That's in no way comparable to traditional lock-in, which is like a decades-old Oracle database with high licensing fees paid annually and depended upon by dozens of complex business processes interacting directly and indirectly with each other. You don't really have a migration path in that case because there's not enough time / resources to decouple everything and migrate to something else, so you're stuck.
And that doesn't touch on the reality that if you're not relying on AWS for Lambda, DynamoDB, Kinesis, etc., then you're maintaining something yourself, which itself is not free from lock-in. Building a system that heavily utilizes Cassandra or Kafka may not have an annual licensing cost, but absolutely imposes a cost in terms of maintenance, team expertise, and (of course) makes moving away from them look not much different than moving from DynamoDB or Kinesis.
Re: Cloud Programming Simplified: A Berkeley View on Serverless Computing
#27Does anyone else not feel so good about a future of computing where everything but the application layer is rented from Jeff Bezos?
The significance is where the line of abstraction is drawn, as has been the case every time programming moves up an abstraction layer.
Re: Cloud Programming Simplified: A Berkeley View on Serverless Computing
#28It’s also great for vendor lock in and rent extraction. At least in its current iterations. I’m fairly certain Amazon isn’t going to make it easy to run your “serverless” applications on anything but their infrastructure. What would be more interesting would be languages and runtimes that run on the next network that is distributed, peer-to-peer, and able to be trusted. And easier to program for than they are today i…
With no code changes, you can deploy a standard Node/Express app as either a lambda service or a standard Express app.
There are a frameworks like this from AWS for all supported languages. It’s well documented how to use the API Gateway lambda proxy feature.
For non API lambdas. The only thing you have to do is add an entry point method that takes has two arguments - a JSON event object and a lambda context.
I have another app that can be deployed as a Windows .Net Core service or lambda based on the CI/CD pipeline.
Re: Cloud Programming Simplified: A Berkeley View on Serverless Computing
#29It’s also great for vendor lock in and rent extraction. At least in its current iterations. I’m fairly certain Amazon isn’t going to make it easy to run your “serverless” applications on anything but their infrastructure. What would be more interesting would be languages and runtimes that run on the next network that is distributed, peer-to-peer, and able to be trusted. And easier to program for than they are today i…
The interface between Lambda and your business logic is usually very thin so in case of simple REST APIs migrating from platform (as long as the target platform has a compatible language runtime) to another or to be executed in a web app framework is rather easy. Serverless applications' reliance on other proprietary services like Cognito, DynamoDB etc is another thing however...
It is a drop in replacement for dozens of other authentication providers.
Re: Cloud Programming Simplified: A Berkeley View on Serverless Computing
#30Earlier quoted context omitted.
The interface between Lambda and your business logic is usually very thin so in case of simple REST APIs migrating from platform (as long as the target platform has a compatible language runtime) to another or to be executed in a web app framework is rather easy. Serverless applications' reliance on other proprietary services like Cognito, DynamoDB etc is another thing however...
The problem is also that Lambda works really poorly with anything that is NOT Cognito and DynamoDB. For example, we were using some CouchBase we deployed ourselves - however, that meant that the Lambda now had a network interface in a private subnet, and start times skyrocketed, especially for concurrent access. When we also started doing our own authentication with yet another Lambda, request times for cold lambdas…