I get a LOT of notifications. Everything from text messages with two-factor authentication codes, to Slack alerts from my team, to every mobile app telling me something I don’t actually need to know. But it’s indicative of a larger, positive trend in technology: event-driven systems. In such systems, something happens, and actions take place. These systems are always thriving with activity and responding to events in real-time by updating databases, training machine learning models, and yes, sending me notifications.
A function-as-a-service (FaaS) runtime—often referred to as a “serverless” system—is an ideal host for these event-driven systems. Deploy functions quickly with no infrastructure configuration. Define triggers that initiate an autoscaled function. And shut down functions when their work is complete.
Today, each public cloud offers powerful, albeit non-uniform, experiences for functions. But not everything is going to run in a single cloud. We hear that every day from the biggest companies in the world. So what’s your smartest path forward? Wait to use FaaS until you decide, if ever, to move all your critical workloads to a single cloud? That doesn’t sound like a great outcome for your developers or customers.
No, what you’re after is a consistent functions experience for your event-driven workloads on any IaaS with very little operational effort. That’s Pivotal Function Service, and it’s available as an alpha release today.
What is Pivotal Function Service?
Pivotal Function Service is a Kubernetes-based, multi-cloud function service. It’s part of the broader Pivotal vision of offering you a single platform for all your workloads on any cloud. Databases, batch jobs, web APIs, legacy apps, and event-driven functions, you name it. You deploy and operate these workloads the same way everywhere, thanks to the Pivotal Cloud Foundry (PCF) platform, comprised of Pivotal Application Service (PAS), Pivotal Container Service (PKS), and now, Pivotal Function Service (PFS).
Why does PFS matter? It’s open and gives you the same developer and operator experience on every cloud, public or private. It’s event-oriented with built-in components that make it easy to architect loosely coupled, streaming systems. It’s developer-centric with buildpacks that simplify packaging, and operator-friendly with a secure, low-touch experience running atop Kubernetes. And it’s from Pivotal, a company laser-focused on customer outcomes and helping you become amazing at designing, building, deploying, and operating software that your customers love.
West Corp runs in every cloud, including our own private cloud. That's strategic to our business. Our developers build great software for our customers and I think the serverless paradigm opens up even more options for us, especially when available on-premises. I'm excited about Pivotal Function Service because it runs wherever we have infrastructure, and offers a consistent way for developers and operators to use event-driven computing.
- Thomas Squeo, CTO of West Corporation
PFS is Enterprise-Ready Knative
PFS is the first multi-cloud packaging of the Knative project, an initiative led by Google, Pivotal, and others. Knative forms the foundation of Project riff, a Pivotal-led open source project that extends Knative with developer and operator tooling. Riff simplifies the Knative installation experience, and adds key user experience components. The Knative team (including Pivotal) has been hard at work improving and hardening Knative since it was announced in July of 2018, and we’ve been keeping Project riff in lockstep.
“In July we introduced Knative, an open-source serverless platform based on Kubernetes that provides critical building blocks for modern serverless applications. Throughout the four months we have seen tremendous enthusiasm from contributing companies, many of whom are furthering Knative as the serverless standard for hybrid and multi-cloud users,” said Eric Brewer, VP of Infrastructure and Google Fellow. “Pivotal has been a leading contributor to Knative since its founding. We are pleased to support the announcement of PFS leveraging Knative components as an outcome of our open- source collaboration.”
Knative and riff are now ready for you to try in the form of the PFS alpha release. So what does PFS include?
An environment for running, scaling, and updating functions. PFS takes function source code and deploys it. If a previous version of the function exists, the new version supersedes it, while PFS keeps the previous version available in case of rollback. The software-defined-networking layer handles all the route adjustments with no disruption. Functions scale down to zero instances when inactive, and scale up based on traffic. None of these activities require manual intervention, so this feels truly serverless to the developer.
Native eventing components that enable composable, reactive systems. Functions respond to events. Those events may come from outside in the form of HTTP(S) requests. Or, the completed work of one function may be the event that triggers another function. Consider the case when one function cleans up a customer’s submitted mailing address by fixing the postal code. Another function that stores the mailing address in your database waits for an event telling it that the address is properly formatted. These sorts of loosely coupled relationships are the hallmark of a dynamic architecture.
Easy installation on any Kubernetes environment. Install with a single
pfs system installcommand. We’ve got installation docs today for PKS, GKE, and even a local Minikube. Even more Kubernetes targets (such as Azure Kubernetes Service and VMware Cloud PKS) are on the way!
Buildpacks that consistently and securely package functions. Developers just want to write their business logic, and not get stuck with a complex function packaging routine. With PFS, we’ve baked in Cloud Native Buildpacks which detect dependencies and automatically build your functions into runnable artifacts. The developers never interact with buildpacks; they simply issue a
pfs function createcommand that points at their source code. But buildpacks are a game-changer for security-conscious operators. Because of the layered approach applied by buildpacks, you can transparently patch images without impacting the function itself.
About the Author