Home > Research > Provisioning Servers for Serverless Computing – What?

Provisioning Servers for Serverless Computing – What?

Functions-as-a-Service (FaaS) for so-called serverless computing is a hot emerging trend led by growing use of Amazon’s Lambda functions. But in a hybrid and multi-cloud future, serverless computing will not be restricted to external public cloud. It could also extend to your on-premises private cloud. This leads to the apparent contradiction of provisioning servers for serverless computing.

The contradiction is only an apparent one because of the confusing nature of the term “serverless.” Of course there are servers involved in serverless computing, even off in the fuzzy Neverland of a public cloud. The servers are just hidden from the developer under layers of abstraction.

The developer’s point of view is the key here. For the developer, “serverless” means that they can create code to invoke actions (functions) without having to manage, control, or even know about the servers that are powering it all.

For operations you do need to know something about the underlying infrastructure for monitoring, security, availability, and cost optimization. For more on that see Info-Tech’s Rethink Operations for a Serverless World.

Serverless and the Hybrid Cloud

So why would you need to consider serverless functions on the private cloud? The answer to that comes from a discussion of hybrid cloud and the role of your private cloud in a hybrid and multi-cloud environment. That, plus a dash of edge computing.

The holy grail of hybrid cloud is that two or more clouds are integrated to a degree of commonality that applications and data can live wherever is best for cost, performance, and risk management. For this you require a common platform or “wrapper” across the multi-cloud.

In IaaS, that common thread has largely been the hypervisor and the virtual machine. But increasingly higher levels of abstraction have been taking off. In particular the code container has been a hot trend. The common layer across clouds is increasingly becoming not the hypervisor but the container hosting and orchestration environment such as Kubernetes.

In a modern hybrid cloud, the developer can wrap their code in a container and then move that code to whatever cloud makes sense, or to multiple clouds. So if you want your private cloud to be part of the hybrid, you need to learn about container environments.

Taking It to the Edge

The goal is parity. The extent to which the private cloud and the public cloud are different worlds is the chasm that must be bridged for hybrid cloud. So what if your developers are starting to use FaaS on the public cloud? Can you bring that world to the private side of your hybrid?

For example, FaaS is being deployed to back-end mobile applications. What if you want to have your back-end functions and data in your private cloud for an internal-use-only mobile app?

Mobility and the internet of things (IoT) is currently driving a trend to edge computing. Given the advance in storage and computational power on edge devices, it makes sense in many cases to move the app and data to the edge and out of the centralized datacenter. Here too there is an opportunity to build services with functions and data closer to the edge, in the private cloud.

Servers for Serverless: Where to Start

The good news is that if you are already delving into container hosting for your private cloud you have a good start. A lot of serverless function frameworks leverage the Kubernetes container orchestration platform.

FaaS are typically stateless; that is, they appear on the infrastructure long enough to execute the function and then they go poof. A typical way of doing that is to run the function in a container that is instantiated just long enough to run the function.

Another route to serverless functions on the private cloud is to extend the serverless service of the public cloud to on-premises servers. Microsoft’s Azure Stack, for example, turns the on-premises infrastructure into an Azure node. This includes Azure services such as Azure Functions. Amazon extends Lambda functions to the private cloud with a product called Greengrass.

Recommendations

  1. Start with your developers and public cloud. Info-Tech believes that a hybrid cloud future will include ever higher levels of abstraction and “as-a-service.” Is your application team actively exploring serverless computing in the public cloud? Chances are good that they are. What is the benefit of extending the block and tackle of serverless development to your private cloud? More specifically, are there on-premises hosted app projects, like internal mobile apps, that could benefit from serverless development?
  2. Explore the emerging solutions for serverless on premises. Serverless is an emerging trend, and serverless on premises is even more nascent. It is worthwhile to dig a little deeper into serverless frameworks to understand the shape of things to come. Here are some references to explore:
    • Fission.io: This is a framework for serverless functions running on Kubernetes.
    • IBM Serverless Framework and OpenWhisk: This serverless framework can be deployed on any OpenWhisk platform on the IBM cloud or the private cloud.
    • AWS Greengrass: “Connected devices can run AWS Lambda functions, keep device data in sync, and communicate with other devices securely – even when not connected to the Internet.”
    • Azure Functions on Azure Stack: Azure functions are part of the on-premises Azure Stack.
    • VMware Dispatch: “Dispatch is a framework for deploying and managing serverless style applications.” Through its AWS partnership VMware has Greengrass for vSphere but also has this Kubernetes-based framework. Open source available on GitHub.
  3. Look to containers first. Stateless functions are often instantiated in stateless containers. Your multi-cloud and private cloud strategy will very likely have a container component. Kubernetes is the emerging container orchestration platform. A hybrid future will very likely include traditional hypervisored virtual machines, application code–carrying containers, and FaaS frameworks.

Bottom Line

The hybrid and multi-cloud future will likely have higher levels of service abstraction such as Containers-as-a-Service and Functions-as-a-Service for cloud-based application and services development. If the goal is continuity of service from cloud to cloud, and if you do have developers eyeing the cloud, then provisioning for serverless on premises is in your future.


Want to Know More?

Serverless Computing: Cool Technology With a Confusing Name
Public Cloud Services Market Trends and Buyer’s Guide
Want to Migrate to Cloud IaaS? What Is Your Hurry?