OpenFaaS: Serverless for Containers Made Easy

If you’re not familiar with Alex Ellis, you should at least be familiar with his project OpenFaaS. He developed it as a serverless framework for containers, basically letting you run functions based on code and little else. He recently gave an overview of it at DockerCon Europe, and watching it, it’s hard not to get excited by the simplicity of it all.

But Alex isn’t content to merely create this framework, he also has a series of posts on how to put together your own personal cluster using everyone’s favorite diminutive ARM-based SoC, a Raspberry Pi! He walks through how to put get Docker Swarm up and running. In his most recent, he focuses on Kubernetes (which Docker now supports, so you’re good either way).

The point of this isn’t that a 5-node Raspberry Pi cluster is the best way to run your serverless functions. It’s almost certainly not. Down the road you’ll probably run into compatibility issues, and a lack of I/O, memory, and compute make it more of an academic exercise. But that’s also kind of the point. Between OpenFaaS and the Pi tutorials, the barrier to entry to start testing out serverless functions is minimal.

It does make me wonder how atomistic IT will be able to go. I’m sure someone thought of this when microservices were the new hotness, but what lies below the function as a paradigm? Can I be the first to coin the term “microfunction”? I have no idea what that functionally means, but that won’t stop me from taking credit.

OpenFaaS is written in Go, but includes templates for six of the most popular languages, with examples in more languages, even COBOL(#respect)! You’ll probably be able to get off the ground running with OpenFaaS pretty quick.

Alex and the vibrant community around the project have a number of interesting example put together, both to show on a technical level how functions are constructed, but also to get your mind around what this enables developers to do. That’s what gets me really exciting. In the video demo, Alex uses an Amazon Dot to integrate with an ADP HR backend to check on PTO and schedule time off. Looking at these demos on GitHub, while I couldn’t have done this (I’ve only just mastered Hello World in Python), conceptually it’s a very basic process of stringing together a few functions.

I really enjoyed what I saw from this project. Plus any excuse I have to play around with several Raspberry Pis is always great in my book.

Update October 19, 2017: Piece was updated to reflect OpenFaaS support for additional programming languages. The original piece indicated only Python was supported.

About Rich Stroffolino

Rich has been a tech enthusiast since he first used the speech simulator on a Magnavox Odyssey². Current areas of interest include ZFS, the false hopes of memristors, and the oral history of Transmeta.