Serverless for all developers: bringing Azure Functions to Linux, Mac, planet scale NoSQL, real-time analytics, and productivity apps

Publicado el 25 septiembre, 2017

Principal PM Manager, Azure Functions

With the increased popularity of serverless, we hear from developers from all kinds of backgrounds and preferences. Many of them are building truly impressive serverless applications. The innovative scenarios for which they are using our platform constantly amaze us.

Customers have taken notice of the increased velocity of building apps, benefits of reduced maintenance, and overall cost effectiveness. This really motivates our team to constantly look for ways to enrich the platform further to unleash more scenarios and applications. So today, I’m happy to announce new capabilities and advancements in a few key areas:

  • Azure Cosmos DB Trigger: Azure Functions provides a capability called triggers which allows serverless code to be executed in response to events. The recent announcement of Azure Event Grid opened many interesting possibilities for serverless applications to build upon. Today, we are extending our trigger support to include Azure Cosmos DB, a globally distributed, massively-scalable, multi-model database service. Azure Cosmos DB is fully managed and therefore a perfect database ally for your serverless applications. You can read more about this functionality in the blog post about Cosmos DB trigger for Azure Functions. Below is an example architecture of an order management system where incoming orders are stored in Cosmos DB, and that triggers multiple serverless functions to perform different operations like payment processing, fulfillment, etc.

Serverless_1

Figure 1: Example event-driven architecture for e-commerce order management

  • Microsoft Graph bindings: Azure Functions support a unique capability called bindings to simplify communication with other services. This allows developers to focus on their problems rather than learning tedious configuration / initialization tasks required when talking to other services. Today we are extending the binding support to include a set of Microsoft Graph bindings. These new bindings are simple to configure, yet very powerful. They will enable your functions to easily talk to OneDrive, Excel, Outlook, and the Microsoft Graph with just a few lines of code, allowing you to quickly build interesting functionality for millions of users in the Microsoft cloud. Here is how this functionality works:

Try for yourself using the instructions in Functions bindings for Microsoft Graph.

  • Cross-platform developer experience: We want all developers, irrespective of their development environment preferences, to be successful with Azure Functions. We have in the past provided a superb local development experience for functions before they are deployed to the cloud. Today, we are happy to extend that experience to developers on MacOS and Linux as well. This is due to the migration of our runtime to cross-platform .NET Core 2.0. The same runtime which powers your cloud apps also provides the local development experience. This would also allow developers to utilize their code assets, built for .NET Core, to be utilized in their serverless applications. Pick your favorite development environment, and give Azure Functions a spin. See cross platform tooling for Azure Functions for more details and a preview below:

Serverless_2

Figure 2: Creating and running Azure Functions locally on a Mac

  • Monitoring with Azure Application Insights GA: An essential element of running high-quality production apps is the ability to monitor them and collect rich data about them. Advanced monitoring has been a constant ask from our customers building serverless apps. To address this need, Azure App Insights support in functions is now generally available. This includes the full set of features introduced in the preview including live metrics streaming, tracing through ILogger, custom telemetry support in C# and JavaScript, improved portal integration, and metrics on functions proxies executions. Head over to Monitoring Azure Functions docs to learn more and get started!

ai_screenshot

  • Integration with Azure Stream Analytics: Performing real-time analytics on streams of data is a necessity today with a growing variety and number of devices, sensors and applications producing massive volumes of telemetry data round the clock. Azure Stream Analytics is a highly scalable, fully managed serverless PaaS offering for real-time analytics on Azure. Today, Azure Stream Analytics is introducing support to trigger serverless code in Azure Functions in response to analytics queries in real-time. This would allow developers to insert custom logic into their stream analytics pipelines. For example, you could send an email or a notification when certain pre-defined conditions are observed in the streaming data, egress to certain output targets not supported out-of-the-box, or you could author a custom post-processing step for the data being received. To learn more about this powerful combination of serverless analytics and compute, please see Azure Stream Analytics: Output to Azure Functions.

It's great to see so many customers achieve their goals with Azure Functions. Companies like FUJIFILM, Quest, Plexure and several others have enabled amazing serverless scenarios. What would your story be?

We are very excited to bring these new capabilities into your hands and look forward to hearing from you through our Forums, StackOverFlow, or Uservoice.