It was inevitable that the last shoe would drop: Microsoft finally announced a competitor to Amazon Web Services Inc. (AWS), Lambda service. This makes it the last major cloud rival to catch up in serverless, event-driven and pay-as you-go computing.
Microsoft launched the Azure Functions service to its Azure cloud during its Build developer conference. It is currently in preview stage.
AWS, the original pioneer in cloud computing, was also the first company to allow developers to run code without having to provision or manage servers through its AWS Lambda service. It requires no administration and allows users to run event-driven codes for almost any type of back-end service or application. They pay only for the compute time used.
We mentioned earlier that IBM was the latest competitor to catch up with OpenWhisk, following closely on Google’s Cloud Functions offering. Everyone was left wondering what Microsoft would do to address this situation.
Microsoft stated in a blog post that Azure Functions is an event-driven, computation-on-demand experience. It extends the Azure application platform with the capabilities to implement code triggered in Azure or third party services as well as on-premises system. Azure Functions allows developers to connect to data sources and messaging solutions, making it easy to process events and respond to them. Azure Functions allows developers to create HTTP-based API endpoints that can be accessed by a wide variety of mobile, IoT and desktop applications. Azure Functions is scale-based, on-demand, and you only pay for what you use.
A browser-based interface allows users to create triggers or schedules for code implementations using many programming languages, such as JavaScript and C#. This interface can also be used by scripts created with tools like Bash, Batch, and PowerShell.
Microsoft stated that Azure Functions make it easier than ever to not only trigger codes based on data from other services but also to access and process this data. Functions bindings allow developers to interact with other data sources and services via their Function, without having to worry about how the data flows between them. Bindings make it easy to add a message to a queue, fetch a Blob, or read the Blob from an input variable. This capability allows developers to learn very little about the underlying services that they interact with. It makes it easy to swap out later for another service.
A reader asked Chris Anderson in the comments section if this was similar to AWS Lambda. Chris Anderson replied that there were some similarities, in that both support a pay as you go model and can respond events. However, Azure Functions is built on the WebJobs SDK model so has many additional features such as input and output bindings. This makes it easier to write code.