5 ms·
This misses the main factor, I think: Vendor lock-in. There is no unification of APIs - every provider has their own bespoke abstractions typically requiring h
by baobun 2y ago
This misses the main factor, I think: Vendor lock-in.
There is no unification of APIs - every provider has their own bespoke abstractions typically requiring heavy integration into further vendor-specific services - moreso if you are to leverage USPs.
Testing and reproducing locally is usually a pipe-dream (or take significantly more effort than the production deploy). Migrating to a different cloud usually requires significant rewrites and sometimes rearchitecturing.
- jjice 2y agoThis the reason I tend to not use a serverless solution in most cases. I want my code to be written and executed on my machine in a way that can at least kind of resemble the production execution environment. I want a binary that gets run and some IO access, most of the time. If I have a VM or a "serverless"-style compute like Fargate on ECS, I can define an entry point, some environment variables, and we're off to the races in a very similar environment to my local (thank god for containers and VMs). The _idea_ of lambda and the similar services is awesome to me, but it's just such a PITA to deal with as a developer, at least in my experience.
- nilamo 2y agoThere are a few platform abstractions. Quarkus, a Java framework, has Funqy, an extension that abstracts the differences between something like aws Lambda and Knative triggers, and feels quite easy to use. https://quarkus.io/guides/funqy https://quarkus.io/guides/funqy
- tomnicholas1 2y agoIn python there is lithops, which provides nice Executor primitives that can run on a wide range of cloud services (AWS lambda, GCF etc.) https://github.com/lithops-cloud/lithops https://github.com/lithops-cloud/lithops
- nilamo 2y agoOmg the Python code examples are center aligned. But it looks sweet
- pjc50 2y agoThat's extremely funny in the one language that cares about alignment. (& the argument that I keep using against significant whitespace, which is that all sorts of other tools assume it can mess around with it with no downsides)
- Izkata 2y agoPeople should probably click before downvoting... this is what it looks like in the README: from lithops import FunctionExecutor def hello(name): return f'Hello {name}!' with FunctionExecutor() as fexec: f = fexec.call_async(hello, 'World') print(f.result()) If you copy/paste it the indentation is correct, it's just the display formatting for some reason.
- deleted 2y ago[deleted]
- icy 2y agoI’m building a serverless platform with the familiar interface of Kubernetes: https://kapycluster.com https://kapycluster.com. Does this fit your expectations?
- baobun 2y agoIt does look like it! Personally I'm off the k8s train and don't currently have a use-case but best of luck! feedback: why make a clear distinction between "magic node" and "BYON"? Two new concepts to learn when I feel a value-prop for some users would be to not have think about these distinctions? (Just talking about wording and communication here - can you get the value prop across with less reification?)
- icy 2y agoThanks for the feedback! I’ve been thinking about the wording too—and you might be right, perhaps highlighting the Magic Node as the mainstay vs BYON being a smaller, side feature might help sell the main value prop. I’ll try clearing that up! Thanks again!
- Vt71fcAqt7 2y agoGoogle cloud run and Azure container apps both let you run an arbitrary docker image without having to deal with custom setups. Both scale automatically so they are serverless. AWS has apprunner but it doesn't scale to zero.[0] [0] https://github.com/aws/apprunner-roadmap/issues/9 https://github.com/aws/apprunner-roadmap/issues/9 (amusingly the issue OP posts on HN)
- nunez 2y agoLambda does as well. You can even use their runtime interface client to run your function within the same wrapped that Lambda uses irl
- Vt71fcAqt7 2y agoCan I upload my web server as a docker to Lambda and have it run forever there? I though Lambdas were supposed to be more short lived (like a couple hours), is that not the case? It's been a while since I actually looked at Lambda because GCP run is so clean.
- nunez 2y agoIf you're married to running your own Web server, you could use schedules to run your Lambda every 15 mins....but you might as well use Fargate at that point (easier and probably cheaper). If you're not married to running your own Web server, you can use API gateway with your Lambda functions, which is the traditional approach. Your frontend and it's assets can be served from an S3 bucket with Lambdas powering your backend. Cold start times will be a concern with this approach, but there are "warm-up" strategies you can employ to prevent that.
- woleium 2y agoThere is also knative, which cloud run is based on
- pjmlp 2y agoExample, Vercel and Nelify, both running on top of AWS, yet their serverless offering is a tiny subset of Lambda capabilites.