Azure Cloud Finally Sports Lambda Alternative

It was inevitable that the final shoe would drop: Microsoft finally announced a competitive alternative to the Amazon Web Services Inc. (AWS) Lambda service, making it the last major cloud rival to play catch-up in serverless, event-driven, pay-as-you-go computing.

During its Build developer conference, Microsoft introduced the Azure Functions service for its Azure cloud, now in preview stage.

AWS, the original cloud computing pioneer, was also the first to let developers run code without provisioning or managing servers with its AWS Lambda service. Requiring no administration, it lets users run event-driven code for pretty much any kind of application or back-end service while paying only for used compute time.

As we detailed earlier, IBM was the most recent rival to catch up with its OpenWhisk service, following on the heels of Google's Cloud Functions offering. That left everyone wondering about a response from Microsoft, which has delivered.

"Azure Functions is an event-driven, compute-on-demand experience that extends the existing Azure application platform with capabilities to implement code triggered by events occurring in Azure or third-party service as well as on-premises systems," Microsoft said in a blog post. "Azure Functions allows developers to take action by connecting to data sources or messaging solutions thus making it easy to process and react to events. Developers can leverage Azure Functions to build HTTP-based API endpoints accessible by a wide range of applications, mobile and IoT devices. Azure Functions is scale-based and on-demand, so you pay only for the resources you consume."

Through a browser-based interface, users can develop schedules or triggers for code implementations using many different programming languages -- such as JavaScript, C#, Python and PHP -- or through scripts developed with tools such as Bash, Batch and PowerShell.

"Azure Functions make it simpler than ever to not only trigger code based on data in other services, but also to access and process that data," Microsoft said. "With Functions bindings, developers can simply interact with other data sources and services through their Function without worrying about how the data flows to and from a Function. Bindings make tasks like adding a message to a queue or fetching a Blob as simple as passing JSON to a Function output variable or reading the Blob from a Function input variable. With this capability, developers need to know very little about the underlying services they're interacting with, making it simple to swap out later for a different service."

When a reader asked in the comments section of the blog if this is similar to AWS Lambda, Microsoft's Chris Anderson replied: "There are some similarities in that we both support a pay-as-you-go model and can respond to events, but Azure Functions is based on the WebJobs SDK model, so also has lots of additional features like input and output bindings which makes for simpler, easier to write code."

About the Author

David Ramel is the editor of Visual Studio Magazine.