Kubeless — Kubernetes Native Serverless Framework
What is the Kubernetes Native Serverless Framework?
Serverless Framework is serverless computing to build and run applications and services without thinking about the servers. In this Serverless computing, there is the abstraction of servers and infrastructure and Operating Systems. To build serverless apps, don’t need to provision and manage any servers. Serverless allows focussing from the server-level to the task-level.
Click here to know more about Serverless Computing.
What is Kubeless?
Kubeless is an open-source serverless computing framework run on top of Kubernetes. Kubeless allows deploying code without having to worry about infrastructure. Kubeless uses Kubernetes resources to provide auto-scaling, routing, monitoring, and troubleshooting. The requirement is to create and deploy function exposed via three possible types of trigger mechanisms.
- pubsub triggered
- HTTP triggered
- schedule triggered
Pubsub triggered managed with Kafka cluster, a built-in component in Kubeless installation package while HTTP triggered, exposed with Kubernetes services and schedule function translates to a job. Python, NodeJS, and Ruby and.Net core are supported currently.
How Kubeless Works?
Kubeless creates a Custom Reference Definition called Function, create a function as a common Kubernetes resource, in the background a controller forms, it will watch over these custom resources and will launch on-demand. Some basic knowledge of Kubernetes concepts is required. A working Kubernetes cluster and Minikube. Kubectl CLI gets installed.
- Client Application — The User Interface of the application is the best-rendered client-side in Javascript to use a simple and static web-server.
- Web Server — In AWS there is a service named Amazon S3 to provide a robust and straightforward web-server. The static website of files like HTML, and Js for the application server from simple storage service.
- FaaS Solution — FaaS is the way to enable in Serverless. Examples of FaaS are AWS Lambda, Google Cloud, and Microsoft Azure Function. In AWS there is also service called AWS lambda used for this framework. It is an application service for logging in and accessing data built as a Lambda function. Therefore more functions will read and write from a database and provide JSON responses.
- Security Token Services (STS) — It will generate temporary AWS credentials for users of the application. These temporary credentials used by the client application to invoke the AWS API.
- User Authentication — AWS Cognito, an identity service integrated with AWS Lambda. With Amazon Cognito, easily adds user Sign up and Sign in to mobile and web apps. It also has the option to authenticate users through social identity providers such as Facebook, Twitter, or Amazon.
- Database — In AWS there is also a service named AWS DynamoDB which provides fully managed databases.
Why Kubeless Matters?
Serverless Framework Computing is all about services. Nowadays, the world of IT is moving at some pace away from Iaas and the next Paas. PaaS is not concerned about the physical infrastructure; its focus is on providing a discrete capability. Everything depends upon which type of services used.
- Serverless services cost as peruse.
- Failover or backup systems are not often required.
- No need to pay to produce or maintain Hardware or Software or other Virtual.
- Well defined SLA’s.
- Quickly deploy, build, release.
- The software scales up/down according to business needs.
- Easily to work on it.
Benefits of Kubeless
Easier Operational Management — It provides a separation between the infrastructure service and application running on it. Automatic Scaling functionality of FaaS reduces not only computation cost but also reduces Operational Management overheads. System Engineers and SRE’s focuses on managing and running the underlying platform and core services such as databases and load balancers while product engineers manage the functions running on the top of the platform.
Faster Innovation — Product engineers innovate at a rapid pace as Serverless has the problems of system engineering in the platform. Thus less time for operations translates into a smooth application of DevOps and Agile methodologies. Demand Management and storage of applications using FaaS.
Reduced Operational Costs — Similar to IaaS and PaaS, infrastructure and human resource cost reduction is the primary advantage of the serverless architecture logic. In Serverless solution, pay to manage the servers, the databases, and application logic.
How to Adopt Kubeless?
Originally published at https://www.xenonstack.com on November 7, 2018.