FaaSO: a function-as-a-service system

Hi there!

Because of personal pain I decided I would write my own self-hosted FaaS solution (think a very poor man’s AWS lambda) and after a couple days work, here’s FaaSO

It’s very early days, but the most basic functionality is in place:

  • You can define funkos (like a lambda) in crystal (other runtimes to follow)
  • FaaSO will build docker images out of them
  • FaaSO will orchestrate them, reverse-proxy them, deploy them, etc so they are reachable in a server (or locally)

The guiding principle is that you should never be locked in.

  • You can export a funko as a complete zero-magic containerized app
  • You can create a funko image or start a funko container without ever using any of the FaaSO tooling, it’s all based on conventions and naming.
  • You can manage everything using Docker and not use the FaaSO proxy, or do everything through the proxy
  • Remote and local development are as similar as possible (usually it’s just using --local or not)

While nowhere near done, I am quite happy with how this is looking, so any comments are much appreciated.

7 Likes

A comment about what’s really important:
Function as a Service, Obviously

And now that you replied I can finally say “they’re talking about faaso” :-D

1 Like

As a serious update, it’s grown in scope quite a bit. It has load balancing, automatic SSL, a web admin interface, and a bunch of other things.

3 Likes

Great to see that it’s working great with Kemal :slight_smile:

I really like it!

Maybe add something in the docs about how to do streaming responses by using env.response.print and env.response.flush? I spent a day googling how to do that :-D

1 Like

And FaaSO has reached version 0.1.0 which is “feature complete enough that I am using it”.

You can use it to build and deploy apps written in NodeJS, Python or Crystal and deploy them to your own infra and manage them via its web control panel.

More information at https://faaso.ralsina.me

2 Likes

The links in the introduction:

Your next steps are probably to set up a faaso proxy, and learn how to write code to run on it.

are empty pages. Is this expected?

Nope, broken links. Fixing it.

They are all here, looks like I dropped some files when reorganizing the site at release:

1 Like