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 a fast serverless framework for Kubernetes with a focus on developer productivity and high performance. 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 ================= - [Table of Contents](#table-of-contents) - [Performance: 100msec cold start](#performance-100msec-cold-start) - [Kubernetes is the right place for Serverless](#kubernetes-is-the-right-place-for-serverless) - [Getting Started](#getting-started) - [Learn More](#learn-more) - [Contributing](#contributing) - [Sponsors](#sponsors) - [License](#license) ## 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 ```bash # Add the stock NodeJS env to your Fission deployment $ fission env create --name nodejs --image 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 - Understand [Fission Concepts](https://fission.io/docs/concepts/). - See the [installation guide](https://fission.io/docs/installation/) for installing and running Fission. - You can learn more about Fission and get started from [Fission Docs](https://fission.io/docs). - See the [troubleshooting guide](https://fission.io/docs/trouble-shooting/) for debugging your functions and Fission installation. ## Contributing Check out the [contributing guide](CONTRIBUTING.md). ## 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](./LICENSE) file for details