Fission is the leading open-source Functions as a Service (FaaS) serverless framework for Kubernetes. Built by Platform9 and many contributors in the Kubernetes community, fission focusses on developer productivity and high performance. Fission allows developers to write short lived functions in any language, and map them to triggers (message queues, timers, HTTP requests or other event triggers).
Fission works on any Kubernetes cluster that is deployed anywhere: in your private datacenter, in a public cloud and even on your laptop. Fission is extensible to any language. Fission is open source under the Apache License.
The use of containers with Kubernetes as an orchestration solution increases the flexibility and velocity associated with application development, while offering greater abstraction compared to a traditional VMs. Still, there is significant amount of software “plumbing” to be built before deploying an application even with Kubernetes. The code/function has to be written, the code has to deployed, containers need to be built and registered and then various configuration steps on Kubernetes (e.g. deploy, service, ingress, auto-scaling, logging) have to be carried out. The “plumbing” that needs to be managed has decreased with Kubernetes but not gone away.
Fission was born with a vision to significantly reduce the time and effort spent on “plumbing” while developing applications. Functions are deployed instantly with one command. There are no containers to build and no Docker registries to manage. The operational focus of a developer using Fission is only on “the code”. The complex steps involved in packaging, deploying and managing applications are automated by Fission while being entirely native to Kubernetes.
Both serverless/FaaS-style solutions as well as microservice-based architectures can be deployed on the same cluster. The benefits of this approach are as follows:
Fission Workflows enable the orchestration of a sequence of serverless functions to create an application. Workflows make it easy and fast for developers to create more complex applications without needing to be Kubernetes experts.
Workflows present an elegant way for integrating and orchestrating serverless functions together by defining a sequence of tasks, decisions, and loops. Functions can be orchestrated either in sequence or parallel. The output of a function can be sent to the inputs of another function, “if” statements, loops, and even functions that operate on other functions.
Fission Workflows abstracts complexity in orchestration of functions