Live data from Hacker News

XFaaS: Hyperscale and Low Cost Serverless Functions at Meta

micahlerner.com

51–60 of 79 posts

Re: XFaaS: Hyperscale and Low Cost Serverless Functions at Meta

#51

> Furthermore, XFaaS explicitly does not handle functions and the path of a user-interaction The wording of this is a little strange, but does this really mean that XFaaS is not used to serve end-user traffic at all? The general approach here is interesting. I've always thought that there are two potential benefits for Function-based hosting ("Serverless") – low cost of components via scale-to-zero infrastructure (go…

Author of the paper summary here - my understanding is that XFaaS doesn't run functions that are run in response to user input (e.g. XFaaS does not execute code that fetches and returns data because a user clicked on a button).

Re: XFaaS: Hyperscale and Low Cost Serverless Functions at Meta

#52

> Furthermore, XFaaS explicitly does not handle functions and the path of a user-interaction The wording of this is a little strange, but does this really mean that XFaaS is not used to serve end-user traffic at all? The general approach here is interesting. I've always thought that there are two potential benefits for Function-based hosting ("Serverless") – low cost of components via scale-to-zero infrastructure (go…

I think they are trying to hammer home that its not a realtime system. Anything you pass into will be executed at some point in the future. so if you want something synchronous, its not the tool to use.

Re: XFaaS: Hyperscale and Low Cost Serverless Functions at Meta

#53

Inovation regarding FaaS comes from BigTechs. I wish we had more OpenSource FaaS solutions, albeit OpenFaas amazing achievements still lacks more robust ecosystem.

There is the fn project: https://fnproject.io/

There's also Dapr. https://dapr.io/

Re: XFaaS: Hyperscale and Low Cost Serverless Functions at Meta

#54
I'm curious whether their "Locality Groups" concept can be implemented using stock AWS. Imagine you have 1000 type of tasks that can be called millions of times by users; each node can do any task but resource usage would be better if same task was performed on a node that already has done it. Sticky sessions is not it, as the same task can be initiated by different users.

Re: XFaaS: Hyperscale and Low Cost Serverless Functions at Meta

#55

Earlier quoted context omitted.

Isn't it that you don't have to set up and maintain a kubernetes cluster?

If setting up a Kubernetes cluster isn't a terrible overhead for us, switching to FaaS would mean we would have more control or less control? I am thinking mainly of migration to another provider. Maybe we would benefit more if we would have large spikes in resource usage, but we don't.

FaaS is an abstraction over a (several) managed k8s clusters. Like most abstractions, you're trading convenience for power/flexibility.

Re: XFaaS: Hyperscale and Low Cost Serverless Functions at Meta

#56

Intuitively, the popularisation of FaaS feels inevitable as lower level technical challenges get solved and give way to abstractions like this. Who knows though what our stack will look like in 20 years.

As Gibson said, "The future is already here, it's just not very evenly distributed". And in IT, sometimes the future takes a long nap. I wouldn't be too surprised if e.g. descendants of Linda spaces get re-discovered because external circumstances favor that model.

Although with FaaS, I don't see anything particularly new from a development perspective. It's, well, functions. Most of the time they aren't communicating in any kind of novel way, and often they're doing the decade-old stuff of reading files and slurping databases. The abstraction being more on the operational side of things this time.

Not that I'm complaining or doing the "it's just CGI" dance. Compared to other "cloudy" tech, there's actually potential for simplifying things and not just simulated VAX computers with more effort…

Re: XFaaS: Hyperscale and Low Cost Serverless Functions at Meta

#57

Earlier quoted context omitted.

Self-hosted FaaS is only worth it if you are at the same size as Meta. If smaller companies do this, it would be a big red flag for me.

It is literally "worth it" for companies much smaller than Meta due to the reduced infra management costs plus increased hardware utilization. A few hundred unique VMs is a boatload of work (even if you distribute it down to the dev teams), and most of those VMs will be sitting idle most of the time, just burning electricity to keep the RAM on.

But you would still need a boatload of a hundred unique VMS to run your serverless functions, right?

If you have a big enough SRE team to manage your serverless stack, economy of scale means that development teams utilising these can reduce their infra management costs. It is about the ratio of engineers utilising the stack compared to those that need to maintain it.

Re: XFaaS: Hyperscale and Low Cost Serverless Functions at Meta

#58
post #45

Earlier quoted context omitted.

A server idling on Function A can't be called for Function B. 144 servers idling for 10 minutes each before expiring makes up a day of compute-time for 1 server. For every 144 expected idle servers, Meta needs to purchase and maintain an additional physical machine to keep up with healthy throughput on xfaas. Every 15 minutes, the 100k server network has 1,500,000 compute-minutes available. For an extreme example, ev…

> A server idling on Function A can't be called for Function B why not?

The server in this context is a "warmed" Function VM. The first time a VM instantiates, it goes through all of the setup required to run a function. That includes generic reusable stuff like Operating System setup, but also Function-specific things like JIT compilation of the Function software, library loading, language loading, all of which are specific to the Function being executed.

The Function VM is hyper-optomised to that one Function's task. There's compute-time costs in changing its role from Function A to Function B. In the public cloud, the only cost you save on is starting up the OS, if both Functions happen to use the same OS. It's faster in most public FaaS infrastructure settings to just destroy a Function VM than it is to transfer a VM from Function A's configuration into Function B's configuration. Similarly, it's faster to just leave the VM running for a little while, just in case the Function is invoked again.

When the paper discusses VMs idling, that's the scenario they describe, where servers (or more accurately software VMs inside of physical servers), are locked into a specific function for some number of minutes. These minutes are dead computing time.

Meta, as a private cloud provider to themselves, can do some interesting things to reduce the cold-start of their Functions, meaning they can run more efficient clouds if they choose, by massively reducing the idle-time that's an industry standard in the public cloud.

Re: XFaaS: Hyperscale and Low Cost Serverless Functions at Meta

#59
post #25

Earlier quoted context omitted.

Isn't that just functions?

Isn't FaaS just wrapping around functions and their deployment?

Yes, but I'm just confused because saying "Why isn't there an open source FaaS for on prem that shares hardware" makes no sense. At that point, you're just talking about regular coding with functions. Unless there's something I'm missing.

Re: XFaaS: Hyperscale and Low Cost Serverless Functions at Meta

#60
post #44

Earlier quoted context omitted.

The pendulum has swung (is swinging?) for many companies back to on-prem for cost savings. Self-hosted FAAS allows your developers to retain the abstraction over the compute platform (a step beyond what containers provide), and grants those running the physical infra significant flexibility in managing it. It's also arguably less complex than k8s for basically everyone, if your use case supports short-lived functions…

> The pendulum has swung (is swinging?) for many companies back to on-prem for cost savings. This is only true of very large companies, so it doesn't change anything about this thread, which was saying that FaaS only makes sense if you're a public cloud or a large company with many on-prem servers.

I guess it depends on your definition of "very large". You don't need a large company to have a large tech footprint, e.g. the Internet Archive.
Post reply on HN