• 4 min read

Break through the serverless barriers with Azure Functions

Serverless technologies have hit a high level of maturity and awareness where several new customers from a diverse range of industries and geographies, are confidently going to production with it...

Serverless technologies have hit a high level of maturity and awareness where several new customers from a diverse range of industries and geographies, are confidently going to production with it. While customer adoption rapidly increases (check out the stories on Stylelabs, direct.one, DEIF and NAVITIME going all serverless on Azure recently), a whole new set of scenarios is emerging where serverless is a great fit. Due to such trends, Azure serverless products are constantly innovating with new capabilities and taking existing ones to production-level, by making them generally available.

One particular area of focus for us is developer productivity, not only while writing code, but also when maintaining production apps. With this purpose, we have been working on new monitoring and diagnostics features, aiming on giving you all the resources to make your code more reliable and give you the ability to better identify and fix potential failures on your solution. Serverless is all about making developers life easier, and so are we!

In this post, I’m happy to share with you some significant advancements we made recently:

Durable Functions reach general availability

We always listen to our customers to find new ways to improve our services together, and something we learned down the road was that lacking support for stateful applications and long running operations was limiting the scenarios you could build on. This motivated us to preview Durable Functions, an extension of the Durable Task framework that allows for defining your workflow in code and call other Functions, while maintaining state across executions. Thanks to Durable Functions, several design patterns are now possible, such as Function chaining, Map-Reduce, Async HTTP APIs, and human input orchestration.

Today we’re announcing Durable Functions as generally available! This has been Azure Functions most successful preview feature, that counted on plenty of customer feedback and community contribution directly to our repository. A big thanks goes to all of you that contributed!

In addition to build regular Functions in JavaScript, developers can now also write orchestrator functions in JavaScript. This functionality is in Public Preview, as it requires Azure Functions v2 runtime, so feel free to check the Durable Functions for Node.js repo and reach out with any feedback!

Enhanced Functions monitoring experience

Any developer that has mission-critical serverless apps running in production needs a solid monitoring experience. In Azure Functions, this rich monitoring experience is already provided with Application Insights, but today we are announcing further integration with Application Insights making it the default monitoring experience.

When creating Function apps, we’re now defaulting to creating a matching Application Insights instance, and the Functions monitoring blade in the Azure portal is now powered by Application Insights. This revamped blade works faster, and it is more reliable and much more extensible:

FunctionsAIMonitoring

The execution counters displayed are now accurate even at high scale thanks to Application Insights telemetry, and logs are sampled with a configurable sampler to predictably balance billing and log verbosity. Curious to know what’s happening behind the scenes? You can sneak-peak into the queries behind those charts to learn more about that data or aggregate other information.

Go through all the details on how to enable this enhanced monitoring experience, either on a new or on any of your existing Functions, and give it a try starting today.

Diagnose and solve your issues with Functions Diagnostics

Serverless customers also experience cases in which code doesn’t work as expected. In order to make it easier to diagnose and solve problems, Functions now leverages the App Service Diagnostics, an intelligent and guided troubleshooting experience. Through this feature we made troubleshooting friendlier and more interesting, as you can interact with Genie, a virtual assistant who will suggest some problem categories to help you diagnose errors and performance issues on your Functions.

As an example, you can click on Functions Health Checkup to analyze number of invocations, as well as CPU and memory usage over the last 24 hours. If your Function isn’t running as expected, is experiencing scaling issues, or you just want peace of mind, select the tile shortcut that corresponds to the problem category that you’re interested in and go through the insights provided by this diagnostics tool.

Check out Functions Diagnostics (Preview) by selecting Diagnose and solve problems from the Functions portal, and learn more in our documentation.

FunctionsDiagnostics

Serverless is more than just Azure Functions

Azure Event Grid has also shown great adoption since we announced general availability. We keep getting great feedback on what you want to accomplish with your event-driven architectures, and always aim to improve the user experience. With that in mind, today we are happy to share with you an expanded list of Azure services that natively integrate with Event Grid, as well as new functionality to deeply embrace standards that allow cross-cloud interop. You can learn more about these announcements on the Event Grid announcements blog post and our post from last week on the CNCF CloudEvents support on Event Grid.

Last but not least, you can now find a new event-first experience for your integrated resources creation from different services, as part of our efforts to make Event Grid the perfect glue for your event-driven solutions. This will allow you to quickly create a Logic App by choosing a pre-built scenario or starting from a trigger, authoring this Logic App preconfigured against the event source you use (let’s say a Blob Storage trigger). The beauty of this new capability is that it allows you to easily try different event-driven scenarios without having to create the consuming resource in advance, just start from the event and choose the right scenario for your needs.

logicappseventgrid

We love everyone’s excitement around serverless, so whenever you get around to trying our latest features please get in touch with the team via Forums, StackOverFlow, or Uservoice.

In case you need some extra motivation to try things out…how about a little bit of competition? Join our IoT on Serverless online hackathon, which just started accepting submissions on May 2nd, and get the chance to make some money while building your coolest IoT app using your favorite serverless technologies. This is not only a chance to earn money, but also fame awaits you as we will feature the winning projects on the Azure blog to spread the word on the awesome serverless solutions you are building on Azure. Don’t miss your chance!