Skip to content

openfaas/faasd

Repository files navigation

faasd - a lightweight and portable version of OpenFaaS

faasd is OpenFaaS reimagined, but without the cost and complexity of Kubernetes. It runs on a single host with very modest requirements, making it fast and easy to manage. Under the hood it uses containerd and Container Networking Interface (CNI) along with the same core OpenFaaS components from the main project.

faasd logo

Features & Benefits

  • Lightweight - faasd is a single Go binary, which runs as a systemd service making it easy to manage
  • Portable - it runs on any Linux host with containerd and CNI, on as little as 2x vCPU and 2GB RAM - x86_64 and Arm64 supported
  • Easy to manage - unlike Kubernetes, its API is stable and requires little maintenance
  • Low cost - it's licensed per installation, so you can invoke your functions as much as you need, without additional cost
  • Stateful containers - faasd supports stateful containers with persistent volumes such as PostgreSQL, Grafana, Prometheus, etc
  • Built on OpenFaaS - uses the same containers that power OpenFaaS on Kubernetes for the Gateway, Queue-Worker, Event Connectors, Dashboards, Scale To Zero, etc
  • Ideal for internal business use - use it to build internal tools, automate tasks, and integrate with existing systems
  • Deploy it for a customer - package your functions along with OpenFaaS Edge into a VM image, and deploy it to your customers to run in their own datacenters

faasd does not create the same maintenance burden you'll find with installing, upgrading, and securing a Kubernetes cluster. You can deploy it and walk away, in the worst case, just deploy a new VM and deploy your functions again.

You can learn more about supported OpenFaaS features in the ROADMAP.md

Getting Started

There are two versions of faasd:

  • faasd CE - for non-commercial, personal use only licensed under the faasd CE EULA
  • OpenFaaS Edge (faasd-pro) - fully licensed for commercial use

You can install either edition using the instructions in the OpenFaaS docs.

You can request a license for OpenFaaS Edge using this form

Further resources

There are many blog posts and documentation pages about OpenFaaS on Kubernetes, which also apply to faasd.

Videos and overviews:

Use-cases and tutorials:

Additional resources:

Deployment tutorials

Terraform scripts:

Training / Handbook

You can find various resources to learn about faasd for free, however the official handbook is the most comprehensive guide to getting started with faasd and OpenFaaS.

"Serverless For Everyone Else" is the official handbook and was written to contribute funds towards the upkeep and maintenance of the project.

You'll learn how to deploy code in any language, lift and shift Dockerfiles, run requests in queues, write background jobs and to integrate with databases. faasd packages the same code as OpenFaaS, so you get built-in metrics for your HTTP endpoints, a user-friendly CLI, pre-packaged functions and templates from the store and a UI.

Topics include:

  • Should you deploy to a VPS or Raspberry Pi?
  • Deploying your server with bash, cloud-init or terraform
  • Using a private container registry
  • Finding functions in the store
  • Building your first function with Node.js
  • Using environment variables for configuration
  • Using secrets from functions, and enabling authentication tokens
  • Customising templates
  • Monitoring your functions with Grafana and Prometheus
  • Scheduling invocations and background jobs
  • Tuning timeouts, parallelism, running tasks in the background
  • Adding TLS to faasd and custom domains for functions
  • Self-hosting on your Raspberry Pi
  • Adding a database for storage with InfluxDB and Postgresql
  • Troubleshooting and logs
  • CI/CD with GitHub Actions and multi-arch
  • Taking things further, community and case-studies

View sample pages, reviews and testimonials on Gumroad:

"Serverless For Everyone Else"