

Developers frequently compose solutions as patterns that hybridize different approaches to developing, hosting and managing application resources.
Any solution pattern may be hybridized, with the approach usually contingent on the developer having access to an abstraction layer designed to enable the complex application environment of interest. In cloud computing, we increasingly see hybridization in the form of public and private clouds interoperating to handle transactions, analytics, integration and other complex workloads.
At the platform-as-a-service level, we also see it at the level of cloud-native computing hybrids that federate two or more Kubernetes clusters that run on distinct clouds or application platforms. In these established patterns, the abstraction layer consists of the cloud-native containerization, orchestration and other interfaces provided in an integration toolkit, such as the recently launched IBM Multicloud Manager.
Where serverless computing is concerned, though, Wikibon hasn’t yet seen a significant push toward hybridization of two or more public or premises-based function-as-a-service clouds. But that sort of hybridization is certainly possible and in fact, is anticipated in several industry initiatives within the cloud-native computing community. Indeed, it’s almost inevitable, considering the development simplicity, operating efficiency and scale economies of serverless computing as an alternative to full-blown containerization and orchestration, a la Kubernetes, Docker and kindred projects in the cloud-native stack.
For example, one might build cloud-native applications that call the application programming interfaces of two more public serverless offerings, such as AWS Lambda, Azure Functions, Google Functions or IBM Cloud Functions. Likewise, it’s even possible to have more complex hybrids that encompass public serverless environments and various premises-based serverless environments, such as Oracle Fn and Red Hat OpenShift Cloud Functions.
Considered in this context, the serverless hybridization possibilities fall into three broad categories:
Building hybrid serverless apps would be simpler if developers were able to access these patterns inside their cloud-native coding workbenches. And that, in fact, is the genesis for the Virtual Kubelet specification. This abstracts the core Kubernetes kubelet function — an agent that runs on all Kubernetes nodes to manage workload lifecycles — so that it can connect orchestrated, containerized microservices to other APIs, such as those exposed by serverless environments.
Within this abstraction, Virtual Kubelet is an application that runs inside a container within a Kubernetes cluster, masquerades itself as a node and interfaces via the Kubernetes API to external serverless and other pluggable application environments. It exposes a pluggable provider interface so that practically any serverless environment can be set up to directly invoke and be invoked by any containerized microservice running on a Kubernetes-orchestrated cloud-native fabric. Currently, the Virtual Kubelet abstraction enables interoperability between Kubernetes and serverless offerings from several cloud providers, including Alibaba Cloud, Amazon Web Services and Microsoft Azure.
However, Virtual Kubelet isn’t yet broadly adopted in cloud developer toolkits. Consequently, developers who want to build apps that tap into two or more serverless clouds should consider writing and deploying function-as-a-service logic from within infrastructure-as-code power tools such as HashiCorp Terraform or Gloo, which have hooks into different serverless cloud platforms.
When looking for tooling to monitor, manage and secure hybrid serverless environments, cloud administrators should explore the open-source Knative project. Developed by Google in collaboration with Pivotal, IBM, Red Hat and SAP, Knative is a Kubernetes-based platform for driving DevOps workflow around the unified development of serverless and containerized apps for deployment across heterogeneous public and private cloud platforms.
Going forward, Wikibon expects that Knative, in conjunction with Virtual Kubelets, will catalyze the development of more varied and sophisticated hybridizations of serverless and containerized cloud-native applications. We urge the Knative community to submit the project to the Cloud Native Computing Foundation so that it can be developed as a core component of tomorrow’s multicloud computing architectures.
THANK YOU