Fission: Serverless Functions for Kubernetes
--------------
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
=================
* [Fission: Serverless Functions for Kubernetes](#fission-serverless-functions-for-kubernetes)
* [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)
* [Get Help & Community Meeting](#get-help--community-meeting)
* [Official Releases](#official-releases)
* [Sponsors](#sponsors)
* [Licensing](#licensing)
## 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.
# License
Fission is licensed under the Apache License 2.0 - see the [LICENSE](./LICENSE) file for details