The melding of containers and serverless computing frameworks advanced this week with the release of a CloudEvents v0.1 draft specification crafted by the Serverless Working Group within the Cloud Native Computing Foundation (CNCF), which promises to foster interoperability between frameworks.
Announced in advance of the KubeCon + CloudNativeCon EU 2018 conference, the goal of the specification is to make it seamless for developers to invoke any serverless computing framework on demand, says Dan Kohn, executive director of CNCF. The cloudevents.io project is expected to be formally proposed as a CNCF sandbox project in June.
Developers then would have the option of choosing to either run their containerized applications on a traditional server or take advantage of serverless frameworks that use event-driven architecture to make IT infrastructure resources available on demand, says Kohn. In effect, functions as a service provided by serverless computing frameworks will be available both in the cloud and on-premises, he says. This approach not only prevents organizations from getting locked into a specific serverless computing frameworks, it also leaves the decision of when to employ a serverless framework within the context of a containerized application up to individual developer.
Kohn says he’s further encouraged by a decision by AWS to extend AWS Fargate support to virtual-kubelet to help Kubernetes users run containers without needing to manage or scale clusters or servers. Virtual-kubelet is an open source tool that allows Kubernetes worker nodes to be powered by any compute resource. AWS has written a plugin that allows virtual-kubelet to create Fargate tasks, and which has been added to the virtual-kubelet project on Github. The result is an ability to use AWS Fargate beyond deployments of containers on the AWS cloud.
Kubernetes has emerged as the standard for orchestrating containers and it provides the potential to advance hybrid cloud computing once distributions of Kubernetes become widely deployed. To advance that goal, CNCF is focusing on interoperability standards that would result in the development of either additional Kubernetes application programming interfaces (APIs) or complementary technologies that could be layered on top of Kubernetes. The degree to which application workloads may be portable across multiple clouds may still be impacted by the level of integration any cloud provider decides to provide between Kubernetes and their underlying storage and networking services. But, in theory at least, applications running on top of Kubernetes should be highly portable.
In addition, it should become much easier to invoke cloud bursting across distributed instances of Kubernetes. Today, cloud bursting is not widely employed because each cloud provider has standardized on its own virtual machine.
Kohn says the level of effort being poured into Kubernetes by engineering teams from 40 different vendors is unprecedented. Not many IT organizations today have the skills required to deploy and manage Kubernetes in a production environment. But as engineering teams continue to contribute code, it’s now only a matter of time before Kubernetes becomes easier for the average IT organization to manage on an ongoing basis.