OpenFaaS - Serverless Functions Made Simple for Docker and Kubernetes

The true Cloud Native Functions as a Service built by Alex Ellis. No more vendor lock-in with Serverless or super complex deployments. Run it on any infrastructure on Docker or Kubernetes.

The true Cloud Native Functions as a Service built by Alex Ellis. No more vendor lock-in with Serverless or super complex deployments. Run it on any infrastructure on Docker or Kubernetes

OpenFaaS GitHub - https://github.com/openfaas/faas

Episode Transcription

Welcome back to The Byte. In this episode, we're gonna talk about OpenFaaS. OpenFaaS or Open Functions as a Service was first brought up and designed by one of our colleagues, Alex Ellis, based in the UK. He came up with this awesome framework, basically, that allows us to have an open-source serverless framework, and he built it in such a way before everyone else did that basically allows us to have his product, his OpenFaaS, which is open-source obviously, run on any platform. So it can run on Docker, it can run on Kubernetes, and then he has an abstraction on top of this, that has an API gateway, and a function watchdog, which then watches all the processes and containers that are starting and stopping.

Included with this is also Prometheus. Prometheus allows you to see function invocations, how long it takes to run a process, etc. And his project, his OpenFaaS project, at one time was one of the most popular projects on GitHub. I mean, it's up over 13000 stars, thousand forks, and he has quite the following going on with this. And I must say, Alex is one of the first ones to actually incorporate any new technologies, so if he finds new technology, product, whatever, he'll make it a serverless function, and add it to his catalog of resources in OpenFaaS.

OpenFaaS actually has a nice catalog of functions already, so you can do basically image manipulation, so it transforms it from one format to another. You can do all sorts of Bash scripts. And the brilliant thing is, is you can have any type of framework, so it doesn't matter if it's Java, Python, etc., or it can even be binaries, or a Bash script, so anything can run as a function, and it works really well. It's easy to set-up, I mean, he took after kinda Kelsey Hightower's take on building things, and it has to be simple and easy to use. And he really delivered on this.

So he has it on the website, if you go to actually the OpenFaaS/FaaS on GitHub, you can see quickly how to get it up and running. It's just basically one Docker-Compose that you take down and it can start up, and it's running. And then you can start passing things to it OpenFaaS, you have a nice UI so you can actually see the statistics, you can jump in and out of the actual functions, and see everything that's going on.

It also has auto-scaling built in, so you can autoscale on demand, so as more processes are invoked, if it hits a certain threshold, it can spawn a new container and actually load balance more functions. So all these things that were getting with Lambda, he's built into OpenFaaS. Which is brilliant, because we don't have vendor-lockin, so this is an extraction layer on top of whatever stack you want. If you want it on-prem, if you want it on Amazon, or do you want a mixture of both, you can really take it with you. And that's kind of the issue here, is with Lambda, it's a great service, but it's only tied to Amazon. And if I ever wanted to go on-prem, or to a different provider, you're really in a hard situation, that you don't have a serverless framework. So, the OpenFaaS framework allows you to take it with you. So the cloud native approach.

Also, just recently, my understanding is Alex Ellis has submitted this to the Cloud Native Foundation, and it's going through the incubator process. So that means, hopefully, it'll go through a graduation process, and be one of the actual projects of Cloud Native Foundation. And he's working on this full-time, so if he was working for VMware sponsored to work on this completely dedicated to this, he has the resources. And now he's spawned off, and I think he's going more cloud-native direction, which would be great for the community.

I've used it, I've done some demos with it. It works really well. I've done some of the image manipulations. He also has a great demo where when you click a star on the GitHub page, it actually kicks off the OpenFaaS function, it does a whole process, and it takes your GitHub profile picture and tweets it out automatically. And he shows how this whole entire thing goes into an entire stream of events. And each process is a container, and it's really, really quite interesting how this all works.
If you get a chance, go check it out. [OpenFaaS.com](https://www.openfaas.com/) or on [GitHub](www.GitHub.com/openfaas/faas),. That's all for this episode, we'll see you next time.


Brian Christner