Serverless computing on public cloud platforms is quickly becoming one of the most popular cloud computing models because it is scalable, reduces complexity and saves money. But colocated infrastructure may be a better way to host serverless computing for companies that need more control and flexibility.
What Is Serverless Computing?
Serverless computing is a model of cloud computing that lets developers and companies focus on writing and running code without having to manage, provision or maintain any infrastructure, even cloud infrastructure. Instead of deploying cloud servers or containers to run their code, developers simply write functions that are triggered under certain conditions. Serverless computing is often referred to as “Functions as a Service” (FaaS).
Serverless computing works best for applications that are “event-driven,” which means that they are triggered by a certain action or event. Examples of event-driven applications include image processing, webhooks, real-time analytics and mobile back-end services.
Serverless Functions in the Cloud
Serverless computing was first offered by the large cloud platform vendors. AWS was the innovator with AWS Lambda. Microsoft Functions and Google Cloud Functions quickly followed. These operate along the same lines.
They give developers a set of programming language environments where they can run small pieces of code. The platform executes the code in response to events that happen on other services. For instance, AWS Lambda can run functions when a file is uploaded to an S3 bucket or when Amazon Kinesis takes in sensor data.
The main benefit of serverless functions is that the platform handles infrastructure provisioning. There’s no need to set up virtual machines or containers ahead of time or plan for traffic and load. Whenever the event occurs, the platform builds the environment and runs the code, whether it’s once or ten thousand times a day.
Serverless Functions on Colocated Servers
As Data Center Knowledge pointed out in a recent article, serverless computing doesn’t have to run on a public cloud platform. There are several serverless frameworks, such as Qinling for OpenStack and Apache OpenWhisk for Kubernetes, that can be used to set up serverless computing on a private cloud platform.
You might be wondering why you’d want to run serverless on your own servers. After all, isn’t the whole point to have someone else take care of the infrastructure? That’s right, but the benefit of serverless is primarily felt by developers. No matter where the infrastructure is hosted, serverless technology can make developers more agile, flexible and productive. Companies that run private clouds on servers can provide the same serverless benefits to developers as public cloud platforms.
Running serverless functions on hardware you control has several advantages, not the least of which are security and compliance. Plus, if you already operate a private cloud platform, deploying a serverless environment is a relatively small additional expense compared to the potential benefits.
Self-hosted FaaS is not right for every company. It brings with it a maintenance burden that many would rather avoid. But companies that prefer to run code on colocated infrastructure don’t have to miss out on the benefits of server less computing.