The cloud platform wars aren't just about costs: They're also about features, particularly ones that support new types of applications and deliver increased productivity and flexibility for developers. Along these lines, Google has quietly announced Cloud Functions, which bears a strong resemblance in approach to Amazon Web Services' Lambda. Here's the description from Google's website:
Google Cloud Functions is a lightweight, event-based, asynchronous compute solution that allows you to create small, single-purpose functions that respond to cloud events without the need to manage a server or a runtime environment.
Cloud Functions are written in Javascript and execute in a managed Node.js environment on Google Cloud Platform. Events from Google Cloud Storage and Google Cloud Pub/Sub can trigger Cloud Functions asynchronously, or you can use HTTP invocation for synchronous execution.
Cloud Events are things that happen in your cloud environment. These might be things like changes to data in a database, files added to a storage system, or a new virtual machine instance being created.
Events occur whether or not you choose to respond to them. Creating a response to an event is done with a Trigger. A trigger is a declaration that you are interested in a certain event or set of events. You create triggers to capture events and act on them.
Cloud Functions are the mechanism you use to respond to events. Your Cloud Functions contain the code that executes in response to a Trigger in order to process an Event.
Analysis: Cloud Functions Just the Latest In A Coming Wave of Lambda Competitors
Both Lambda and Cloud Functions represent an important evolution of cloud applications, wherein developers don't have to provision and manage servers. They simply write code and the cloud service handles the rest, running the code whenever an event triggers it.
This is not only convenient but cost-effective, as Lambda only bills when the code is executing. While Cloud Functions is currently in alpha, one would expect Google to take a similar approach to pricing upon general availabilty.
Lambda provides "a very elegant approach to bring code to the data and scale up in a very elastic fashion," says Constellation Research VP and principal analyst Holger Mueller. "Fifteen months later, we're seeing a solid but not massive uptake of developers building next-generation apps with Lambda. Google adding similar capabilities is a good move."
However, AWS has a major head start on Google, with support for more languages than just JavaScript, including Java and Python. Amazon also introduced a range of other enhancements to Lambda during the re:Invent conference in October.
There are tradeoffs to consider with Lambda and Cloud Functions. While both offer the advantage of integration with other AWS and Google services, this is turn adds to the lock-in equation.
One alternative is a similar platform offered by startup Iron.io, which can be run on-premises or in the cloud. Microsoft will likely offer its own Lambda-like offering through Azure Service Fabric, which is now in preview.
It will also be important to watch how IBM and Oracle respond, given how strong their ambitions are for IaaS and PaaS. Finally, an open-source version of Lambda could be created under the auspices of OpenStack or Cloud Foundry.
The bottom line? AWS might have made the biggest splash in "serverless" application development, but cloud customers are going to have plenty of choices besides Lambda moving forward.
Reprints
Reprints can be purchased through Constellation Research, Inc. To request official reprints in PDF format, please contact Sales.