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 tim 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 enables the easy deployment of serverless functions on any Kubernetes cluster. Functions execute logically discrete, short-life tasks and can currently be used to deploy simple applications. Developing more complex applications leveraging the serverless paradigm requires orchestration of interacting serverless functions. This packaging has typically been a complex and time consuming process.
Fission Workflows enables orchestration of a sequence of serverless functions to create an application and significantly accelerates the creation of applications using serverless functions.
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