News

Microsoft Targets Amazon's 'Event-Driven' Computing Service

Microsoft fired another volley against cloud rival Amazon Web Services Inc. (AWS) at its Build conference last week, announcing the preview release of its new Azure Functions service.

Azure Functions presents a competitive alternative to AWS' Lambda service, which, since its debut in 2014, has pioneered the market of serverless, event-driven, pay-as-you-go computing. Lambda was the first service to let developers run code without provisioning or managing servers. Requiring no administration, Lambda lets users run event-driven code for pretty much any kind of application or back-end service while paying only for used compute time.

Recently, Lambda has faced competition from IBM's OpenWhisk service and Google's Cloud Functions offering. Microsoft is the latest to join the fray with Azure Functions.

"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 UI architect 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.