Alex the founder of OpenFaaS shares his highlights for the project from the year of 2021.

A few days ago, I shared Seven of My Personal Highlights from 2021 and wrote a similar post for the inlets project - “Tunnels Reimagined for Cloud Native”. So it seems only right that I should do the same for the OpenFaaS community.

OpenFaaS Highlights

In this post, I’ll share highlights from the OpenFaaS project itself and from related community efforts like K3sup and Arkade. So whether you’re a seasoned OpenFaaS practitioner or just curious, then I’m sure there’s something for you here.

Going to production

The Open Source version of OpenFaaS is really meant for developers, but we also continue to see teams going to production.

That’s where OpenFaaS Pro - a commercially licensed distribution of OpenFaaS starts to make sense.

This year we saw more uptake of OpenFaaS Pro and extended the feature-set:

  • Tuned the Kafka connector with a customer to support jobs processing millions of messages at a time
  • Added retries to enable concurrency limited jobs (think one or N invocation(s) per container)
  • Added a new SQS event connector for customers on AWS to trigger functions from AWS services
  • Added PKCE support to the SSO / OpenID Connect support

One of our customers also needed to build hundreds, if not thousands of functions and wondered how they could achieve this without overloading their GitLab or Jenkins servers. That’s where the Pro Function Builder came in. It provides a HTTP API that can build functions using OpenFaaS templates or Dockerfiles and upload the resulting container image to your registry.

We also did some tuning work for a client who needed to run jobs for long periods of time: Improving long-running jobs for OpenFaaS users

In February, I invited David Flanagan to join me for a deep dive into use-cases for OpenFaaS and functions.

Check out the blog post and live-stream:

We also covered several case-studies and configuration pieces on the blog:

If you’d like to know about running in production - or integration with any of these tools, feel free to reach out to speak to us.

Find out more about going to production here: OpenFaaS in Production

OpenFaaS gets its own manual

In January I launched my first eBook named Serverless For Everyone Else

In Serverless for Everyone Else, you’ll learn practical use-cases for Serverless Functions, how to build and deploy your own functions that you can run anywhere at a low, predictable cost.

The examples are geared around JavaScript and Node.js and cover a the fundamentals that you’ll need to build useful functions. Things like databases, APIs, unit-testing, customising templates and scheduled tasks. On an operational level, it also covers monitoring & dashboards, deployment with faasd and how to set up TLS.

Example on Postgresql

One of the examples on Postgresql and MongoDB.

I consider the book to be “the” manual for OpenFaaS, so if you’re looking to learn or go deeper, it’s likely that you’ll learn something that you didn’t know about the project already.

It’s available on Gumroad.

You can read a bit more about the launch here: My first eBook launch - results & feedback (10k USD in 27 days)

faasd - 20,000 functions on one host

This was the year of faasd. Not only did it get featured extensively in Serverless For Everyone Else, but we focused on bringing its feature set in-line with OpenFaaS on Kubernetes, to the point that we are now hosting some of our own functions using faasd.

faasd can now limit the memory used by functions, supports multiple namespaces and has certifier tests that check it for compliance.

These features were all important for some research I did for Equinix Metal’s Proximity event:

Join Alex from the OpenFaaS project as he presents a deep-dive into how moving closer to the metal gave the new faasd project superpowers that were not available in Kubernetes.

faasd gets closer to its containers by removing clustering altogether and working directly with containerd. Cold starts are a thing of the past, idle functions can be frozen and immediately thawed out, 20x more containers can be packed into a single host, stateful workloads can be co-located for low latency, and bare-metal makes secure VM isolation practical at scale.

Learn what happens when you challenge the assumptions of the status quo, and what kinds of benefits you can get from running workloads closer to the metal.

In the talk I explain why faasd is so much faster than Kubernetes and show how I patched the Linux kernel to deploy 20,000 functions on a single bare-metal host. In contrast, Kubernetes has a default limit of ~ 100 functions per host and a cold-start time of ~ 1-2 seconds as a minimum.

Derek, our community bot was migrated from Docker Swarm to faasd.

I moved my own sponsors notifications to faasd: alexellis/sponsors-functions

And wrote new functions to extend Gumroad’s marketplace functionality, so that I could run custom promotions that Gumroad could not support out of the box: alexellis/gumroad-custom-workflow

The Sponsors’ portal aka Treasure Trove runs on faasd also, you can log in with your GitHub Account for discounts and to book a 1:1 with me: https://insiders.alexellis.io

For more of an overview of OpenFaaS, see Ivan Velichko’s thread on Twitter:

Ivan also has a very detailed blog post: OpenFaaS - Run Containerized Functions On Your Own Terms

What’s made by OpenFaaS, but isn’t OpenFaaS?

K3sup

k3sup (~4.3k GitHub stars) is one of the easiest ways to get a development or production-ready Kubernetes cluster using the K3s project.

Someone recently asked me what K3sup did that installing K3s via curl does not, here’s a quick overview:

  • It builds Highly-Available clusters through a simple install and join command
  • It fetches and updates the Kubeconfig file for you, updating the permissions and the cluster address
  • It merges the new clusters into your kubeconfig file

Through the use of SSH and Go, the experience of building a Kubernetes cluster couldn’t get much simpler.

This year, I continued to maintain K3sup and extend it to support changes in the latest versions of K3s.

If you use K3sup, you can support that work via GitHub

Arkade

Arkade (~2.4k GitHub stars) is a Kubernetes marketplace, which is open-source and unlike proprietary cloud-based offerings, it works on any cluster.

The tool also ships with a way to install CLI commands that is much faster than Brew. It’s smart enough to download the latest binary available, and for your Operating System and your CPU (think Apple M1 vs Raspberry Pi vs. Windows Intel Core i7).

It’s a lot of work to maintain arkade, and the community is a big part of what makes that possible.

I also want to thank the Kasten and Venafi for being our first two sponsored apps in the marketplace:

You can now propose your project or product as a Sponsored App. Sponsored Apps work just like any other app that we’ve curated, however they will have a note next to them in the app description (sponsored) and a link to your chosen site upon installation. An app sponsorship can be purchased for a minimum of 12 months and includes development of the Sponsored App, with ongoing support via GitHub for the Sponsored App for the duration only.

arkade can download all the CLIs that you’ll need to use openfaas:

arkade get \
  faas-cli \
  kubectl@v1.21.1 \
  helm \
  k3s \
  kubectx \
  terraform

You can also use it in CI/CD pipelines to fetch CLI tools that you need to build your own projects and functions.

Hand-made swag

Throughout the summer, I got the bug for woodworking and through random chance figured out that I could make branded wrist rests for mechanical keyboards and matching wooden coasters.

Leonidas' wrist-rest

Leonidas’ wrist-rest

Dennis' coasters - sent all the way to Russia

Dennis’ coasters - sent all the way to Russia

You can purchase either in the store: Buy hand-made OpenFaaS merchandise

Thanks to the community

OpenFaaS at GopherCon - 0 to 60 months

In the early years of OpenFaaS I used to talk about going from Zero to Serverless in 60 seconds as a reference to how quickly you could install the platform and get a function up and running.

OpenFaaS at GopherCon

My first time attending and speaking at a GopherCon event.

At Gophercon, I gave the closing keynote and told the story of our project over the last 5 years or 60 months. I told it through the lens of the contributors - how the project had lifted them up, given them opportunities and earned them large salary increases.

What does 2022 hold?

If it wasn’t clear enough from my Gophercon talk, this project wouldn’t be possible without the support of the community, customers and sponsors on GitHub. Thank you to everyone who’s been involved with the project in some way this year.

We need your continued support to stay in the business of making portable, developer-friendly and cloud-agnostic functions possible in 2022 and beyond.

Alex Ellis

Founder of @openfaas.