Functions, serverless, and Kubernetes—when you’re preparing to build your first containerized application, these tools and their underlying concepts can blur together. In this post, we’ll demystify these essential topics for building scalable cloud-native applications.
What is Kubernetes?
Kubernetes is a container orchestration used to manage the lifecycle of containers and the nodes they run on.
- In general, a container is an application packaged with its dependencies that do not rely on the underlying OS for additional libraries.
- Containers are grouped into pods that run on nodes.
- A node is a unit of compute, often a VM running Linux (but technically, any virtual or physical server in your cluster running your Pods or groups of containers).
Kubernetes will orchestrate the creation of nodes and deploy, destroy, and move containers and pods around to nodes based on criteria defined by the developer.
Kubernetes is crucial to building and automating containerized applications for scale and high availability. If you’re new to Kubernetes, we have lots of educational content to help you get started.
Kubernetes is very different from serverless functions and FaaS but often used to power the backend that makes these architectures feasible.
What is Serverless?
Serverless is a development model that enables developers to focus on shipping code via containers without the need to manage servers or other cloud infrastructure. The cloud provider is responsible for managing everything from the server/OS level and down to provide a highly streamlined environment for developers to write and deploy code.
What is a Function?
Building out modular components for an application, typically referred to as microservices, enables developers to segment “chunks” of code for functionalities that are frequently used. These chunks are known as functions, which are executed when triggered by an event.
Any user activity that triggers an event or a series of events can be deployed as a function. For instance, a user signing up on your website may trigger a database change, which may, in turn, trigger a welcome email. A chain of serverless functions can handle the backend work.
What is Functions as a Service (FaaS)?
The “as a Service” moniker is used for almost everything in our industry today. Generally speaking, anything as a Service means a cloud provider handles all of the backend infrastructure to provide streamlined access to a feature. FaaS enables developers to build and run functions with no infrastructure to maintain. FaaS offerings typically charge by execution time, meaning you’re only billed while a slice of code is running. This can be very cost-effective compared to running a server 24/7.
FaaS platforms make functions easy to deploy and manage by building them on top of a specific infrastructure technology like Kubernetes or providing a GUI to create functions and connect them to applications without writing any code. (Learn more about low-code and “no-code” applications.)
Community-submitted functions make it easier to find and implement logic to optimize application performance. FaaS is a popular product offered by many cloud providers, which allows users to manage functions and application infrastructure all in one.
Interested in Functions on Akamai?
If you currently use functions from any provider as part of your application development, we want to hear from you. Akamai cloud computing services is exploring adding functions to our cloud platform. Take the survey to let us know what you’re looking for, or sign up to be contacted when a functions service is available in beta.