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.
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 🙂
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
- Developing Azure Functions on Linux or MacOS
- An example: https://blogs.msdn.microsoft.com/atverma/2018/09/26/azure-functions-2-0-create-debug-and-deploy-to-azure-kubernetes-service-aks/
- Azure Functions—Consumption plan for Linux in preview
- Azure Functions 2.x now supports Python!
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!
Latest posts by Antti K. Koskela (see all)
- How to fix an Office Group with no Owners - November 14, 2018
- Help! My “Content and Structure” page in SharePoint Online is gone! - November 7, 2018
- Thanks for coming to my session at SPS New England 10/20 ! - October 20, 2018
- Speaking at SPS New England on 10/20! - October 17, 2018