Serverless is one of the significant trends of the moment in software development and deployment. A promising technology, Serverless Computing is developing very quickly in companies.
Other rising technologies are having the same great potential, like Kubernetes. But who says that you must choose between Kubernetes and Serverless for your next application while you can deploy efficient and stable Serverless applications on Kubernetes?
In this blog post, we are going to discover some tools that allow you to run your Serverless functions on a Kubernetes cluster.
Fission is an open source serverless framework released by Platform9 and is based on Kubernetes. It allows developers to concentrate on coding and takes care of the plumbing with Kubernetes. It offers language flexibility and supports HTTP events and can be set-up easily.
Knative is an open source initiative that combines Kubernetes with Serverless and is largely supported by Google engineers. It provides a platform to build serverless solutions on top of Kubernetes. Knative supports autoscaling, in-cluster builds, and eventing framework for cloud-native applications on Kubernetes.
Kubeless is an open source serverless framework that supports functions and is designed to be deployed on a Kubernetes cluster. It supports Python, Node.js, Ruby, PHP, Golang, .NET, Ballerina, and custom runtimes. Triggers are supported through the Kafka messaging system and HTTP events. Monitoring is supported through Prometheus. The drawback of Kubeless is that it is not adequately represented by a developer community or documentation.
OpenFaas a brainchild of Alex Ellis, is an open source serverless platform that supports serverless functions deployed on Docker Swarm or Kubernetes. The code can be written in any language inside the containerized functions. It is easy to set up as it offers a default configuration but is also customizable. There is no limit on runtime for functions. Since the application is containerized, it offers high portability.
IBM OpenWhisk is based on Apache OpenWhisk and supports multiple languages like Node.js, Swift, Java, PHP, Python, and additional languages via Docker containers. It integrates with other services like IBM Cloudant database, IBM EventStreams, and IBM Watson APIs, which provides natural language processing and AI capabilities. Monitoring and Logging capabilities are provided through IBM Cloud Monitoring. There is no time limit on single function invocation, which makes it suitable for long-time invocation.
Nuclio is another open source serverless platform targeted at applications that require high data-processing capabilities as it supports persistent connections. It can run over Docker or Kubernetes and is portable without any vendor lock-in. It supports multiple event sources like HTTP Events, Kinesis, Kafka, Rabbit MQ etc.. and multiple log destinations.
Fn Project supported by Oracle provides a way to create and run serverless functions on Docker. They can be tested and run locally or on any cloud environment with a Docker engine. The runtime itself supports all languages, but deeper functionality is available for Java, Go, Python, and Ruby.
IronFunctions is an open source Functions as a Service (FaaS) platform that you can run anywhere. This platform is compatible with Kubernetes, Docker Swarm, and Mesosphere. Iron is also currently hosting Functions for select customers.
Mixing Kubernetes and Serverless is taking advantage of the speed of prototyping Serverless applications and the performance offered by Kubernetes. However, each technology brings possible downsides if it is not well handled. The pitfalls of Serverless and Kubernetes Failure Stories can illustrate this.
Get similar stories in your inbox weekly, for free
Share this story with your friends
The improved AWS feature allows users to trigger Lambda functions from an SQS queue.
United States Defense Department Asks Amazon, Google, Microsoft, and Oracle to Bid on the JWCC Program
DoD looking to entrust cloud security to multiple vendors.
Google makes fuzzing easier and faster with ClusterFuzzLite
HTTP-based autoscaling and scale to zero capability on a serverless platform