New Project: FaaSO
Because yes, all self-hosted FaaS solutions suck this weekend I wrote the beginnings of a new one, called FaaSO.
Is it going to be great? Probably not, but it's going to do exactly what I need it to do. Because the best part of reinventing the wheel is that by the second left elbow of Kali, this wheel is going to be exactly the shape I like.
FaaSO has very strict design constraints:
- It needs to be easy to use. I need to be able to write a funko (function in FaaSO parlance) in a minute and deploy it with one command, and I won't have to configure anything for that funko to work.
- It will run in a single machine, it will deploy in a minute, and it will be ready to take new deployment requests right away.
- It will have some sort of secret management API
- It will support multiple languages, because I want to use different languages.
- It will have very little magic. It will not lock you into needing it.
- You should be able to take a funko and make it a separate app in a minute
- You should be able to control what you are running, and how it runs, and monitor it and so on without going through the tool if you want.
- It will be small. My current goal is under 1500 LOC.
- It's aimed at deploying one tenant. It will not protect one funko from a hostile funko running in the same system. It will not protect you from yourself.
- In the same way, it will be as secure as I can make it against external threats, but it's not going to protect you from someone with access to the same system.
- It will be light. I am writing it in Crystal so it's native code and runs with very limited dependencies and little overhead.
Can I do all that? Maybe. The current prototype does about half of what I want, so there is only another 90% of the work left :-)
If you want to check the prototype, it's here, I am not looking for contributors now because I want a free hand on sudden redesign.
There is some documentation about how it works here and some braindump about the secret management as well as the initial braindump about design