Kinvolk on Arm: Can’t Stop a Lokomotive
At Kinvolk, the team focuses on maintaining and implementing open…
In 2016, when Alex Ellis began seriously tinkering with serverless architecture, he quickly found problems to solve.
The veteran software developer and Docker Captain was experimenting with Docker Swarm as a way to use self-hosted Docker containers for serverless functions, but he kept bumping up against the limitations of the available tooling in the then nascent serverless ecosystem. After brainstorming with Justin Cormack, Ellis outlined the “watchdog” concept, which ultimately morphed into a prototype that he called “FaaS” (Functions as a Service). Working on the project in his personal GitHub account, Alex iterated on the concept for a few months, focusing on simplicity and usability as his grounding principles.
In 2017, OpenFaaS won Docker’s “Cool Hacks” contest and he presented it on stage during the closing keynote at DockerCon. The visibility helped kickstart what is now a thriving community around the project. Shortly after DockerCon, Alex added support for Kubernetes, and the ball just kept rolling from there.
Late in 2017 the project got a logo, and working with OpenFaaS became Alex’s full-time gig.
“When I started the project, I wanted developers to be able to get serverless functions working on any infrastructure quickly and easily—whether bare metal from Packet, virtual machines at AWS or even a set of Raspberry Pi’s on their desk,” says Alex.
Jacob Smith, a co-founder at Packet who was active in the cloud native ecosystem, caught wind of Alex’s work and reached out to see if more powerful infrastructure (including Packet’s Arm-based servers) would be of interest.
“Obviously that was really exciting, especially the opportunity to elevate Arm to a first-class citizen,” says Alex. As he developed the project, it became clear that working with multiple architectures and devices was inline with the emerging multi-cloud world. “I started writing blog posts about cool things you could do with powerful bare metal Arm servers, and how that compared to the Raspberry Pi clusters I had in my house,” says Alex.
An important accelerator was the knock-out punch that Works on Arm (a collaboration between Arm and Packet) provided—easy, automated access to powerful servers from Ampere and others, as well as expertise and a growing community.
Software engineers took note.
“Serverless is something that really captures the imagination of developers because it’s like the internet is our computer,” adds Alex, who has worked to keep the OpenFaaS software and surrounding systems portable to x86, 32-bit Arm, and arm64 systems. “Now you get to take back control, and you can effectively have cloud-style inside your house, or anywhere.”
Today OpenFaaS is a production-grade, cloud-native Functions as a Service (FaaS) platform that offers an ecosystem of cross-architecture tools for managing and operating on Kubernetes. In short: it provides serverless functions without the complex hoops required by many other platforms.
The project also includes OpenFaaS Cloud, an automated build and management system for serverless functions with native integrations into source-control management systems in GitHub or GitLab.
Among the primary features OpenFaaS offers is a command line interface (CLI) that can be used to create new functions using templates provided in the project’s template store. “Whether you’re a Java or Bash developer or you work in C#, you can just pull in the appropriate template and get started,” says Alex.
“It’s very hackable,” he adds. “You can change stuff around, write your own template and contribute it back, or go directly to building out a function or a microservice. It’s quite flexible.”
In addition to ease of use, OpenFaaS focuses on efficiency by incorporating auto-scaling capabilities. So when there’s no demand, the cluster will run idle, but if there’s a spike in traffic (which is common with serverless workloads), it has the ability to manage the uptick automatically.
OpenFaaS also has its own ecosystem, like the function store, which Alex says is an easy way for the community to share pre-built functions for re-use, and includes quite a few machine learning models. “For example, if you have something that checks whether images are safe for work, you can then push that up to the Docker hub and submit it to the store,” says Alex. “Then anybody in the world who has OpenFaaS can pull down a function and start making use of it.”
Since the very beginning, OpenFaaS has been well known for its community. Today, there are more than 21,000 GitHub stars on the project, and over 250 contributors. Whether it’s fixing a typo or adding a core feature, Alex says, the contributions of each user brings something valuable to the project.
“People have come in at all sorts of levels—some have been around for years, while others have come on for the duration of a project, or maybe because it suited their circumstances to contribute.”
To continue growing the community, Alex sends out a premium email about once a week, and it covers updates on open source projects. The weekly missive has attracted a wide audience. “Even if they’re not users of our software, people find value in a curated list of blog posts and tutorials, special offers, and information that you need to know if you’re interested in cloud native software.”
Deepening community roots has also led to brand loyalty. Alex adds. The software developer and burgeoning entrepreneur recently launched a swag store where people can buy branded T-shirts, hoodies, and coffee mugs. “It’s a way for them to show their support and expand the community.”
As CEO of what is now OpenFaaS Ltd., Alex works to ensure that companies using OpenFaaS in production—from universities to cybersecurity firms—can use the service, confident that it will be updated by a dedicated team.
“I’m trying to run a business and an open source project at the same time,” says Alex, who is funding his company via GitHub sponsors and by expanding the company’s service offerings. “One of the things I’m doing this year is working on different commercial and closed source add-ons that companies value.” Often these production use cases inspire new features or projects.
A recent example is Inlets, a cloud native tunnel that allows developers to transmit messages to their machines—whether it’s a laptop, Raspberry Pi, or a Packet machine—without exposing those machines directly to the internet.
While many closed-source services exist for this purpose, Inlets is an open source approach that allows users to connect all of their infrastructure from anywhere in the world and easily manage traffic through firewalls or restrictive network conditions.
Investing again in Arm just made sense. “Inlets benefits from access to Works on Arm resources because it means that we can build binaries that will work on a wide variety of devices,” says Alex.
This is important beyond the homelab, he adds. Millions of IoT devices, connected cars, and smart homes all leverage Arm-based processors, and management of those devices is increasingly “cloud first.”
After working with Packet and Arm on various projects, Alex took it upon himself to become an ambassador of Arm enablement with the Arkade project. Arkade helps developers easily install apps on Kubernetes clusters, regardless of the size, architecture, or hardware. What normally can take up to a dozen commands, takes just one with Arkade.
“Making sure that software works on ever-changing hardware isn’t easy, and can create a subpar ‘unboxing’ experience for new users,” says Ellis. “For instance, many people who have tried to deploy applications to Arm would run into a simple error and give up because they didn’t understand why.”
Alex is trying to streamline the process of adopting Arm and other new technologies. By simply encoding the correct values, Arkade makes it much easier for developers to get any software up and running in a short period of time on Arm-based devices.
After spending years at the cutting edge of both cloud native software and Arm hardware, Alex believes the time for Arm has truly come. “With edge computing, 5G, IoT and cloud native ecosystems colliding, we’re on the cusp of mainstream adoption of Arm64. I feel like it’s strategically important for the industry and I want to be one of the people who’s ready for when that comes.”