Azure Functions CLI - such a pretty logo for such an awesome functionality

Ignite 2018 recap: What’s new for Azure Functions?

Ignite 2018 is done and dusted, and it’s a good time to quickly recap what’s new for Azure Functions in the coming months. They’ve certainly been getting a lot of love from Microsoft, which is GREAT!

New features for Azure Functions

There was a bunch of exciting new things announced! Not all of the things in this blog post are necessarily completely new – but rather reached General Availability. Let’s go through them one by one…

New “Premium Consumption” pricing tier

This was a completely new thing, and while really useful, was kind of a curve ball. If you ask me, this might be the biggest new announcement for a lot developers harnessing Azure for their workloads, since it opens up new scenarios. The Premium Consumption plan for Azure Functions brings you the “Best of both worlds” -option between Consumption and App Service Plans. In a nutshell:

Scaling of the Consumption plan (way better than App Service plan) with the Always On and unlimited execution duration of the App Service plan.

“Premium Consumption plan” for Azure Functions in a nutshell

This new pricing tier for Azure Functions is now in private preview. Most important features with some comparisons to current functionality:

  • No cold start – it’s always on
    • Basically has a dedicated core
    • Fast scale out – will warm up new cores as load increases
  • Unlimited execution duration
    • Vs. 5 or 10 minutes on consumption, or practically unlimited on App Service plan
    • Note, though, that for stateful functions and richer orchestration, you might still want to take a look into Durable Functions
  • VNet connectivity
    • Enables you to limit access to your Azure Function to a certain, “internal” Virtual Network – and optionally, connect your on-premises resources to this VNet using a VPN connection. This has already been possible with App Service plan, but it’ll be possible for the Premium Consumption plan as well!

See below for a great Twitter conversation about the new feature.

If you’re interested in getting in the preview, you can sign up here.

Azure Functions CLI/SDK v. 2.0

A couple of other highlights in this post actually culminate into v. 2.0 being out (especially the cross-platform support!), but I think it’s worth mentioning just in general – Azure Functions v. 2.0 has now reached GA (General Availability), and should be the default environment to develop your functions in.

Also, PowerShell support should be “coming back” later in 2018! See (or listen) more here: https://youtu.be/7mAzMYOP9NY?t=2807

Upgrading from 1.x to 2.0: https://docs.microsoft.com/azure/azure-functions/functions-versions#migrating-from-1x-to-2x and https://www.koskila.net/fixing-the-following-functions-are-in-error-object-reference-not-set-to-an-instance-of-an-object-error-in-azure-functions/

More info about 2.0: https://azure.microsoft.com/en-us/blog/introducing-azure-functions-2-0/

Better tooling for Azure Functions

This is also partially thanks to Azure Functions v. 2.0 reaching GA – the tooling is now GA, too! Using Azure CLI – or, awesomely enough, Azure Cloud Shell, you can provision and manage Azure Functions.

See more: https://docs.microsoft.com/en-us/azure/azure-functions/functions-create-first-azure-function-azure-cli

Better support for Application Insights

Dependencies and resources are automatically tracked and shown in Application Map. That makes it easier to pinpoint issues like bottlenecks in your code – and it also looks pretty 🙂

Application Insights Application map for Azure Functions. Picture source: https://docs.microsoft.com/en-us/azure/azure-functions/functions-monitoring
Application Insights Application map for Azure Functions. Picture source: https://docs.microsoft.com/en-us/azure/azure-functions/functions-monitoring

New availabilities for different platforms

Microsoft is pushing hard to bring Azure Functions available on as many platforms as possible. The 2.0 runtime runs on .NET Core 2.1, which is cross-platform – so pushing the new version out enables customers to run and develop their Azure Functions workloads on Linux (and to some extent on MacOS

Dependency Injection

Dependency injection makes it (finally conveniently) possible for your Azure Function to change the implementation of a method during runtime – so basically execute different functionality in just one function based on which DLL has been injected to the process.

This should make reusing your functions a lot easier, and maybe ease the implementation of more complex orchestration scenarios.

This is available later 2018.

This session has more information and a live demo around 0:40:00 – check it out! https://medius.studios.ms/Embed/Video/IG18-BRK4020?w=193&h=24&Autoplay=1

That’s all, folks!

The following two tabs change content below.

Antti K. Koskela

Solutions Architect / Escalations Engineer at Koskila / Norppandalotti Software / Valo Solutions
Antti Koskela is a proud digital native nomadic millenial full stack developer (is that enough funny buzzwords? That's definitely enough funny buzzwords!), who works as a Solutions Architect for Valo Intranet, the product that will make you fall in love with your intranet. Working with the global partner network, he's responsible for the success of Valo deployments happening all around the world. He's been a developer from 2004 (starting with PHP and Java), and he's been bending and twisting SharePoint into different shapes since MOSS. Nowadays he's not only working on SharePoint, but also on .NET projects, Azure, Office 365 and a lot of other stuff. This is his personal professional (e.g. professional, but definitely personal) blog.

Let me know your thoughts!