Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Sandbox] SlimFaas #119

Open
2 tasks done
guillaume-chervet opened this issue Aug 21, 2024 · 0 comments
Open
2 tasks done

[Sandbox] SlimFaas #119

guillaume-chervet opened this issue Aug 21, 2024 · 0 comments
Labels
New New Application Runtime

Comments

@guillaume-chervet
Copy link

guillaume-chervet commented Aug 21, 2024

Application contact emails

guillaume.chervet@axa.fr,guilllaume.chervet@gmail.com,antoine.blancke@axa.fr,guillaume.delahaye@axa.fr,lilian.delouvy@axa.fr

@g7ed6e @lilian-delouvy @antoineblancke @guillaume-chervet

Project Summary

The slimest and simplest Function As A Service

image

Project Description

SlimFaas act as a very small proxy to add into your Kubernetes namespace, it provide :

  • Scale to 0 after a period of inactivity (work with deployment and statefulset)
  • Scale up/out (comming soon)
  • Synchronous HTTP calls
  • Asynchronous HTTP calls
    • Allows you to limit the number of parallel HTTP requests for each underlying function
  • Synchronous Publish event via HTTP calls (events) to every replicas which deployment subscribe to the event name
  • Retry: 3 times with graduation: 2 seconds, 4 seconds, 8 seconds
  • Private and Public functions
    • Private functions can be accessed only by internal namespace http call from pods
  • Mind Changer: REST API that show the status of your functions and allow to wake up your infrastructure
    • Very useful to inform end users that your infrastructure is starting
  • Plug and Play: just deploy a standard pod
    • No impact on your current kubernetes manifests: just add an annotation to the pod you want to auto-scale
  • Very Slim and very Fast

Org repo URL (provide if all repos under the org are in scope of the application)

https://github.com/AxaFrance

Project repo URL in scope of application

https://github.com/AxaFrance/SlimFaas

Additional repos in scope of the application

No response

Website URL

https://github.com/AxaFrance/SlimFaas

Roadmap

https://github.com/AxaFrance/SlimFaas/issues?q=is%3Aissue+is%3Aopen+Feature

Roadmap context

  • Aggregate functions swagger
  • Web Interface from swagger
  • Async call Scale up/out
  • Sync call Scale up/out

Contributing Guide

https://github.com/AxaFrance/SlimFaas/blob/main/CONTRIBUTING.md

Code of Conduct (CoC)

https://github.com/AxaFrance/SlimFaas/blob/main/CODE_OF_CONDUCT.md

Adopters

No response

Contributing or Sponsoring Org

AXA

Maintainers file

https://github.com/AxaFrance/SlimFaas/blob/main/MAINTAINERS.md

IP Policy

  • If the project is accepted, I agree the project will follow the CNCF IP Policy

Trademark and accounts

  • If the project is accepted, I agree to donate all project trademarks and accounts to the CNCF

Why CNCF?

Being part of the CNCF will help SlimFaas gain visibility, more feedback, support and consumers. We built it in response to a series of needs.

Benefit to the Landscape

Our history:

6 years ago, we chose OpenFaas for our data science production project (in test and learn mode). It worked pretty well. Over time, we learned that OpenFaas was not compatible with our way of building and deploying projects (1 namespace per project). The configuration was too complex and tightly coupled with OpenFaas. We had to deploy one OpenFaas instance per project. Monitoring was not compatible with our internal system, and the license was too expensive. We tried to switch to Knative, but it was not compatible with our internal security and Kubernetes management methods. So we started building a proxy to replace OpenFaas without making any breaking changes in our application. This proxy was designed to work with Keda for scaling up and down. However, we realized that it was very easy to scale up/down directly from this small proxy without any dependencies. SlimFaas was born. It is a very simple Function as a Service, very light and simple to install and use within your namespace whithout any magic and the most important : with no coupling. We saved a lot of time and money!

Cloud Native 'Fit'

It is a proxy, but it aim to bring better scale up/down (scale to 0).
It is a kind of a Function As A Service but whithout the magic behind. It aim to be really plug and play with few annotations to add to your kube configuration.

Cloud Native 'Integration'

N/A

Cloud Native Overlap

N/A

Similar projects

The most similar project is OpenFaas.
Also Keda and knative would be some alternatives.

Landscape

No

Business Product or Service to Project separation

N/A

Project presentations

https://github.com/AxaFrance/SlimFaas

Videos

Project champions

May be @scraly in the future if she is interrested by the project.

Additional information

No response

@guillaume-chervet guillaume-chervet added the New New Application label Aug 21, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
New New Application Runtime
Development

No branches or pull requests

3 participants