From e80d4a7492d0c5fad0666549631e645c2994d8e7 Mon Sep 17 00:00:00 2001 From: Soam Vasani Date: Tue, 8 Nov 2016 00:40:55 -0800 Subject: [PATCH] README updates --- README.md | 60 ++++++++++++++++++++++++++++++++++++------------------- 1 file changed, 40 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index 714d3a70..4620d47f 100644 --- a/README.md +++ b/README.md @@ -4,14 +4,11 @@ Fission Fission is a fast serverless framework for Kubernetes with a focus on developer productivity and high performance. -It's heavily customizable (but with sensible defaults), extensible to -any language, and interoperates well with other infrastructure. +It's customizable (with sensible defaults), extensible to any +language, and interoperates well with other infrastructure. -You can create and edit functions throughs a web UI, or you can use -your favorite editor and upload them using a CLI. You can trigger these -functions via HTTP requests to paths, or by timers. +See https://fission.io for more. -Try it out at http://demo.example.com Running Fission =============== @@ -21,32 +18,55 @@ On your own Kubernetes cluster ### Setup Kubernetes +On your laptop: + https://github.com/kubernetes/minikube +Or use Google Container Engine. + +### Verify access to the cluster + + $ kubectl version + ### Get and Run Fission - $ wget http://example.com/fission.yaml - $ kubectl create -f fission.yaml +If you're using GKE, use the fission.yaml unmodified. If you're using +minikube, change all instances of LoadBalancer services to NodePort. + $ curl http://fission.io/fission.yaml | kubectl create -f - + + $ kubectl --namespace fission get services + +Save the external IP addresses of controller and router services in +FISSION_URL and FISSION_ROUTER, respectively. + +### Install the client CLI + + $ curl http://fission.io/fission > fission + $ chmod +x fission + $ sudo mv fission /usr/local/bin/ + +### Run an example + + $ fission env create --name nodejs --image fission/node-env + $ echo 'module.exports = function(context, callback) { callback(200, "Hello, world!\n"); }' > hello.js + $ fission function create --name hello --env nodejs --code hello.js + $ fission route create --method GET --url /hello --function hello + $ curl http://$FISSION_ROUTER/hello + Hello, world! + Status ====== -Fission is in early alpha. +Fission is in early alpha. Watch this space for announcements soon! Performance =========== -The goal is to have less than 1 second latency for requests that don't -have a running instance. In practice, benchmarks show this latency at -TODO msec for the NodeJS environment. +The alpha release has focussed on cold-start latency performance. For +requests that don't have a running instance, i.e. a "cold start", +fission has a latency overhead of less than 100 msec for the NodeJS +environment. -Here's a simple hello world benchmark on NodeJS: TODO. It achieves -TODO requests per second on a TODO-node Kubernetes cluster. - - -Contributions -============= - -TODO