readme updates
This commit is contained in:
@@ -5,13 +5,15 @@ Fission is a fast serverless framework for Kubernetes with a focus on
|
|||||||
developer productivity and high performance.
|
developer productivity and high performance.
|
||||||
|
|
||||||
Fission operates on _just code_: Docker and Kubernetes are abstracted
|
Fission operates on _just code_: Docker and Kubernetes are abstracted
|
||||||
away.
|
away under normal operation, though you can use both to extend Fission
|
||||||
|
if you want to.
|
||||||
|
|
||||||
Fission is extensible to any language. It currently supports NodeJS
|
Fission is extensible to any language; the core is written in Go,
|
||||||
and Python, with more languages coming soon.
|
language-specific parts are isolated in something called
|
||||||
|
_environments_ (more below). Fission currently supports NodeJS and
|
||||||
|
Python, with more languages coming soon.
|
||||||
|
|
||||||
100msec cold start
|
### Performance: 100msec cold start
|
||||||
------------------
|
|
||||||
|
|
||||||
Fission maintains a pool of "warm" containers that each contain a
|
Fission maintains a pool of "warm" containers that each contain a
|
||||||
small dynamic loader. When a function is first called,
|
small dynamic loader. When a function is first called,
|
||||||
@@ -19,32 +21,50 @@ i.e. "cold-started", a running container is chosen and the function is
|
|||||||
loaded. This pool is what makes Fission fast: cold-start latencies
|
loaded. This pool is what makes Fission fast: cold-start latencies
|
||||||
are typically about 100msec.
|
are typically about 100msec.
|
||||||
|
|
||||||
|
### Kubernetes is the right place for Serverless
|
||||||
Kubernetes is the right place for Serverless
|
|
||||||
--------------------------------------------
|
|
||||||
|
|
||||||
We're built on Kubernetes because we think any non-trivial app will
|
We're built on Kubernetes because we think any non-trivial app will
|
||||||
use a combination of serverless functions and more conventional
|
use a combination of serverless functions and more conventional
|
||||||
microservices, and Kubernetes is a great framework to bring these
|
microservices, and Kubernetes is a great framework to bring these
|
||||||
together seamlessly.
|
together seamlessly.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Fission Concepts
|
Fission Concepts
|
||||||
================
|
----------------
|
||||||
|
|
||||||
A _function_ is a piece of code with an entry point.
|
A _function_ is a piece of code that follows the fission function
|
||||||
|
interface.
|
||||||
|
|
||||||
An _environment_ is a container with a webserver and dynamic loader
|
An _environment_ contains the language- and runtime-specific parts of
|
||||||
for functions. Today, Fission comes with NodeJS and Python
|
running a function. Fission comes with NodeJS and Python
|
||||||
environments. You can also add your own: for example, if you want to
|
environments; you can also extend environments or create entirely new
|
||||||
add a binary to your Python image, you can edit the Python
|
ones if you want. (An environment is essentially just a container
|
||||||
environment's Dockerfile, rebuild it, and add your new environment to
|
with a webserver and dynamic loader.)
|
||||||
Fission.
|
|
||||||
|
|
||||||
A _trigger_ is something that maps an event to a function; Fission
|
A _trigger_ is something that maps an event to a function; Fission
|
||||||
supports HTTP triggers today, with upcoming support for other types of
|
supports HTTP routes as triggers today, with upcoming support for
|
||||||
event triggers.
|
other types of event triggers, such as timers and Kubernetes events.
|
||||||
|
|
||||||
|
Fission 101
|
||||||
|
-----------
|
||||||
|
|
||||||
|
```bash
|
||||||
|
|
||||||
|
# Add the stock NodeJS env to your Fission deployment
|
||||||
|
$ fission env create --name nodejs --image fission/node-env
|
||||||
|
|
||||||
|
# A one-liner that prints "hello world"
|
||||||
|
$ echo 'module.exports = function(context, callback) { callback(200, "Hello, world!\n"); }' > hello.js
|
||||||
|
|
||||||
|
# Upload your function code to fission
|
||||||
|
$ fission function create --name hello --env nodejs --code hello.js
|
||||||
|
|
||||||
|
# Map GET /hello to your new function
|
||||||
|
$ fission route create --method GET --url /hello --function hello
|
||||||
|
|
||||||
|
# Run the function. This takes about 100msec the first time.
|
||||||
|
$ curl http://$FISSION_ROUTER/hello
|
||||||
|
Hello, world!
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
Running Fission on your Cluster
|
Running Fission on your Cluster
|
||||||
|
|||||||
Reference in New Issue
Block a user