Fastly and the Linux kernel
Tags: linux, fastly, opensource, fastforward
Published: 2024-06-24 15:16:00

Today, Fastly [announced a $40M commitment of free CDN, compute, and security services to the Linux Foundation’s ecosystem of maintainers](https://www.fastly.com/blog/fast-forward-were-here-for-the-maintainers/), furthering our shared mission of sustaining free and open source software. To celebrate, we wanted to highlight an essential component of the Fastly platform and part of the Linux Foundation’s original raison d’être: the Linux kernel.

When we launched Fastly 13 years ago, our founders were fueled by a vision to create a radically different kind of platform—faster and more efficient than its predecessors, utilizing specific hardware and a foundation built on open source software. The tools they reached for? [SSDs](https://www.youtube.com/watch?v=H7PJ1oeEyGg), [Varnish](https://www.slideshare.net/slideshow/varnish-oscon-2009/1761244), and the [Linux kernel](https://youtu.be/oebqlzblfyo?t=147&si=evu_qAG0NvfXFaLj).

Our founders opted for open source, like the Linux [kernel](https://en.wikipedia.org/wiki/Kernel_(operating_system)), whenever possible for the same reasons anyone does. We could quickly fix bugs without needing to call a support line or wait on a ticket. We could change the kernel’s code so that it was even better suited to our needs. Perhaps one of the most important reasons is that we could not only stand on the shoulders of giants but contribute alongside them, too. Throughout the Linux Foundation’s almost 25-year history, the organization has provided vital support and resources to the maintainers and contributors that build some of the most important and impactful technologies of our time. As of 2023, the Linux Foundation is home to over 1,000 active projects and foundations ranging in focus from cloud computing and web development to visual effects and IoT devices.

The open source projects Fastly uses and the foundations we partner with are vital to Fastly’s mission and success. Here's an unscientific list of projects and organizations supported by the Linux Foundation that we use and love: [The Linux Kernel](https://www.kernel.org/), [Kubernetes](https://kubernetes.io/), [containerd](https://containerd.io/), [eBPF](https://ebpf.io/), [Falco](https://falco.org/), [OpenAPI Initiative](https://www.openapis.org/), [ESLint](https://eslint.org/), [Express](https://expressjs.com/), [Fastify](https://fastify.dev/), [Lodash](https://lodash.com/), [Mocha](https://mochajs.org/), [Node.js](http://Node.js), [Prometheus](https://prometheus.io/), [Jenkins](https://www.jenkins.io/), [OpenTelemetry](https://opentelemetry.io/), [Envoy](https://www.envoyproxy.io/), [etcd](https://etcd.io/), [Helm](https://helm.sh/), [osquery](https://osquery.io/), [Harbor](https://goharbor.io/), [sigstore](https://www.sigstore.dev/), [cert-manager](https://cert-manager.io/), [Cilium](https://cilium.io/), [Fluentd](https://www.fluentd.org/), [Keycloak](https://www.keycloak.org/), [Open Policy Agent](https://www.openpolicyagent.org/), [Coalition for Content Provenance and Authority (C2PA)](https://c2pa.org/), [Flux](https://fluxcd.io/), [gRPC](https://grpc.io/), [Strimzi](https://strimzi.io/), [Thanos](https://thanos.io/), [Linkerd](https://linkerd.io/), [Let’s Encrypt](https://letsencrypt.org/), [WebAssembly](https://tag-runtime.cncf.io/wgs/wasm/charter/). And the list goes on! 

Because the Foundation is a fundamental component of Fastly’s tech stack, we are delighted to give back to the community that maintains and supports it. We do that in several ways, the chief of which is our donation of free services to various projects under the Foundation. Since 2015, Fastly has served nearly 35,000 terabytes to Linux Foundation projects, including the Linux Kernel, Kubernetes, jQuery, and Jenkins. We’ve heard that the projects we support have done [wonders for their peace of mind and the continued sustainability](https://dev.to/fastly/this-is-your-sign-to-update-your-kubernetes-download-workflow-5hf2) of their projects, so we’re recommitting to our existing partners and extending our commitment to any other projects or nonprofits that can benefit from our support. 

We contribute back to the Linux ecosystem in other ways, too. Beyond our in-kind donation, we encourage our employees to submit bug fixes upstream and employ several engineers who contribute to various projects, including [Linux kernel contributor Joe Damato](https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git/log/?qt=author&q=Damato). His contributions are focused on improving the granularity and ease of customizing and optimizing the data path, among other things:

* Recently, Joe upstreamed [a major and widely anticipated new interface to the kernel](https://lore.kernel.org/netdev/20240213061652.6342-4-jdamato@fastly.com/T/), allowing programs to control network socket busy polling behavior more simply and closely. [This new interface](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/fs/eventpoll.c?h=v6.9&id=18e2bf0edf4dd88d9656ec92395aa47392e85b61) allows Fastly and the open source community to build and control latency-sensitive programs far more easily.
* Joe recently [upstreamed a change to the Mellanox mlx5 driver](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=f25e7b82635f59af87bd720bbb8c2ea19e8e0f67), which creates a mapping between hardware network queues on the device, their associated interrupt number, and the kernel’s internal NAPI ID. This change allows users to access this helpful information via a [new netlink interface added to the kernel by Intel](https://lore.kernel.org/netdev/170147307026.5260.9300080745237900261.stgit@anambiarhost.jf.intel.com/T/#mf82b92c584173f9542c222429a10d2183bfc5d00).
* Another recent highlight among Joe’s many contributions is a kernel change that allows users to set [a custom flow hash on custom RSS contexts](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=0212e5d915a293dcde06415f8c82d31576576a97) if the driver supports it. This change also allows network device driver maintainers to support this for their devices, providing users more flexibility in how network flows are mapped to device queues.

And as far as Fastly’s kernel goes, it’s laser-focused on instant speed. Suresh Bhogavilli is the distinguished engineer who leads our Edge Host Networking team, which is tasked with optimizing our kernel and reducing latency by every zeptosecond possible: 

> 
To significantly reduce [round-trip time](https://en.wikipedia.org/wiki/Transmission_time#:~:text=order%20of%20milliseconds.-,Roundtrip%20time,received%20at%20the%20same%20node.) and improve customer connectivity to Fastly’s edge we developed our [Precision Path](https://www.fastly.com/blog/improving-network-availability-with-precision-path/) and [Fast Path Failover](https://www.fastly.com/blog/traffic-delivery-reliability-improvements/) technologies. We use them to tune TCP window parameters per destination, improving TCP connectivity between caches at our own PoPs [[Points of Presence](https://www.fastly.com/network-map/)]. Linux also helps power our ingress traffic engineering tool, called Harmonizer, which allows us to carry traffic to the PoP that is most optimal to serve that customer request.