fission is a free, open source cloud infrastructure management project written in Go and released under Apache-2.0. It has 8,920 GitHub stars, 794 forks and 50 open issues, and was last pushed 3 days ago. On this registry it ranks #25 of 70 tracked projects in Cloud Infrastructure Management, with 5 head-to-head comparisons available.

What is fission?

Fission is an open-source, Kubernetes-native serverless framework that lets developers deploy functions triggered by HTTP requests, message queue messages, or scheduled tasks without managing the underlying infrastructure.

What it is

Fission is a functions-as-a-service framework written in Go and licensed under Apache-2.0, built to run serverless functions on a Kubernetes cluster. Its core promise is that it operates on just the code: Docker and Kubernetes are abstracted away under normal operation, although both remain available for anyone who wants to extend the system. Language-specific behaviour is isolated into units the project calls environments, so the core stays small and each runtime is packaged separately.

The concrete problem it solves is the packaging and cluster plumbing that normally sits between a developer's function and a running endpoint. Rather than reasoning about container images and Kubernetes objects for every new function, a developer creates an environment once, points Fission at a source file, and gets a callable function. Fission lives in the cloud-native and Kubernetes ecosystem and is tagged for containers, DevOps, Docker, and faas work. It targets teams that already run Kubernetes and want function deployment on top of it rather than on a separate proprietary platform.

Key capabilities

  • Warm container pool with a small dynamic loader: when a function is first called, a running container is chosen and the function is loaded, giving cold-start latency of typically about 100msec.
  • Environments isolate language runtimes, created with commands such as fission env create --name nodejs --image ghcr.io/fission/node-env.
  • Functions deploy from a code reference, as in fission function create --name hello --env nodejs --code https://raw.githubusercontent.com/fission/examples/master/nodejs/hello.js.
  • Direct invocation for testing with fission function test --name hello, which prints the function output.
  • Event triggers covering HTTP requests, message queue messages, and scheduled tasks.
  • Automatic scaling up and down based on demand with no additional configuration.
  • Language coverage spanning NodeJS, Python, Ruby, Go, PHP, Bash, and any Linux executable, with the framework extensible to any language.

Who uses it and how

  • Companies listed as users include Apple, Unilever, BD, Biofourmis, Babylon, Armo, Gadget, CinnamonAI, Fareye, iQuanti, The Social Audience, and KubeML, plus a large telecom CSP.
  • Teams that mix serverless functions with more conventional microservices on the same Kubernetes cluster, which is the reason the project gives for building on Kubernetes at all.
  • Operators who reuse existing cluster tooling: monitoring and log aggregation set up for the cluster also helps with operations on a Fission deployment.
  • Engineers working across several runtimes, who use environments to keep NodeJS, Python, Go, and other languages on one deployment.
  • Hacktoberfest participants and outside contributors, since the project carries the hacktoberfest topic and publishes a contributing guide.

Getting started

Installation follows the guide at fission.io/docs/installation/. From there, add an environment with fission env create using the image ghcr.io/fission/node-env, create a function with fission function create, and run it with fission function test.

How it compares

The facts provided name no comparable tools for this category, so Fission stands alone in this registry entry on that axis. What can be said from its own material is that it is Apache-2.0 licensed, self-hosted on a Kubernetes cluster the operator already runs, and free of a vendor's per-invocation billing model.

When to use it — and when not to

A self-hoster must supply and operate a working Kubernetes cluster, because Fission runs natively on Kubernetes and provides nothing below that layer. Anyone without Kubernetes, or unwilling to run it, should not choose Fission; the abstraction hides Docker and Kubernetes only during normal operation, and extending the framework requires understanding both. The licence is recorded here as Apache-2.0 from repository metadata, since the README excerpt is truncated mid-sentence at the licence line, so confirm terms in the repository before relying on them.

project readme (upstream, from github) — read inline


Fission: Serverless Functions for Kubernetes

Fission Licence Fission Releases go.dev reference Go Report Card Fission contributors Commit Activity
Fission website Fission slack Fission twitter GitHub Repo stars


Fission is an open-source, Kubernetes-native serverless framework that simplifies the deployment of functions and applications on Kubernetes. With Fission, developers can easily create and deploy serverless functions that can be triggered by a variety of events, such as HTTP requests, messages from a message queue, or scheduled tasks.

Fission provides a simple, easy-to-use interface for developers to create serverless functions in their language of choice, without having to worry about the underlying infrastructure. The framework also offers automatic scaling, so functions can scale up or down based on demand, without any additional configuration.

Fission operates on just the code: Docker and Kubernetes are abstracted away under normal operation, though you can use both to extend Fission if you want to.

Fission is extensible to any language; the core is written in Go, and language-specific parts are isolated in something called environments (more below). Fission currently supports NodeJS, Python, Ruby, Go, PHP, Bash, and any Linux executable, with more languages coming soon.

Table of Contents

Performance: 100msec cold start

Fission maintains a pool of "warm" containers that each contain a small dynamic loader. When a function is first called, i.e. "cold-started", a running container is chosen and the function is loaded. This pool is what makes Fission fast: cold-start latencies are typically about 100msec.

Kubernetes is the right place for Serverless

We're built on Kubernetes because we think any non-trivial app will use a combination of serverless functions and more conventional microservices, and Kubernetes is a great framework to bring these together seamlessly.

Building on Kubernetes also means that anything you do for operations on your Kubernetes cluster — such as monitoring or log aggregation — also helps with ops on your Fission deployment.

Getting Started

  # Add the stock NodeJS env to your Fission deployment
  $ fission env create --name nodejs --image ghcr.io/fission/node-env

  # Create a function with a javascript one-liner that prints "hello world"
  $ fission function create --name hello --env nodejs --code https://raw.githubusercontent.com/fission/examples/master/nodejs/hello.js

  # Run the function.  This takes about 100msec the first time.
  $ fission function test --name hello
  Hello, world!

Learn More

Contributing

Check out the contributing guide.

Who is using Fission?

Sponsors

The following companies, organizations, and individuals support Fission's ongoing maintenance and development. If you are using/contributing to Fission, we would be happy to list you here, please raise a Pull request.

InfraCloud Srcmesh

License

Fission is licensed under the Apache License 2.0 - see the LICENSE file for details

Frequently asked questions

Is fission free to use?

fission is open source under the Apache-2.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does fission do?

Fast and Simple Serverless Functions for Kubernetes

What is fission written in?

fission is primarily written in Go. Its source is publicly available at https://github.com/fission/fission, and it has 8,920 GitHub stars.