- Simon Waight
Like any cloud platform, Microsoft Azure is always shipping new features and services regularly. In this post I've pulled out a few highlights from the last few months that I think are worth looking at if you're a developer building serverless solutions. I've tried to ringfence the content to developer-centric capabilities, as you could argue that any PaaS service could be classified as 'serverless' 🙂
Azure Static Web Apps
This service combines many attributes people may be familiar from platforms such as Vercel and Netlify with the power of Azure's serverless Functions for APIs. You have been able to run static websites on Azure Storage for a while now, but Azure Static Web Apps takes the experience to a new level, providing PR-based previews in staging environments, custom domains and in-built authentication and authorisation support for multiple identity providers.
You can build your APIs using a range of Azure Functions first-party languages (Python, Node and .NET at present), or point your solution at an existing Azure Functions solution. Common static site generators are supported (Gatsby, Hugo, VuePress and Jeckyll), along with frameworks such as Next.js, Nuxt.js and Blazor.
The best bit about this service? There's a free tier that offers custom domain and staging environment support, so you can get going quickly with that side hack project!
Azure Functions Updates
There is an ever-ongoing set of enhancements to Azure Functions, so I will only call out a few here.
- v4 runtime: The Azure Functions runtime is written in .NET Core (runs on Linux or Windows) which has sometimes caused issues for .NET Azure Functions in the past. The new v4 runtime introduces an isolated-process mode which helps avoid these problems, and also allows Azure Functions to ship same-day support for each new release of .NET. Read more on the announcement page.
- Durable Functions extension - new persistent storage approach. This change allows you to select one of two new storage providers for your long-running workflows - Netherite or Microsoft SQL Server. SQL Server opens up cloud, on-premises and on-edge hosting for Durable Functions as a possibility. Read more on the announcement page.
Azure Logic Apps Updates
The big recent change for Azure Logic Apps is the ability to build and run Logic Apps in a new "Signle-tenant" mode. Azure Logic Apps have historically been a Low-code serverless integration solution running on Azure where you don't even worry about hosting infrastructure attributes of your solution at all.
Logic Apps are parallelised by default and the hosting infrastructure scales to meet the demands placed on it. The downside has been that you have only ever been able to run Logic Apps in Azure. Not too much of an issue unless you are looking for hybrid or multi-cloud support. As part of the work to enable Logic Apps on the new App Services Kubernetes extensions (see below), the engineering team revisited the runtime implementation and moved it to run on top of Azure Functions.
This new capability is called "Single-tenant" Logic Apps and means you can now spin up and run a Logic App in a range of places outside of Azure. Additionally, with this new offering you have a much richer editor experience in Visual Studio Code as you can run the full Logic Apps experience locally using the Azure Functions Core Tools.
Azure Container Apps
This feels like the next iteration of Azure's amazing App Services, but built for modern microservices applications. While Azure Container Apps runs on top of Kubernetes you don't have to manage the cluster. Through the use of various open source technologies such as Dapr, KEDA and envoy, Azure Container Apps gives you a place to run your polyglot microservices solutions without the overhead of managing Kubernetes. Capabilities such as scale-to-zero, event-driven programming, traffic splitting and service discovery are all baked in. Read more on Microsoft Docs. At the time of writing this capability is in preview.
Invariably adding another container-enabled service begs the question - where's the best place to run a container on Azure? Microsoft has published guidance that is worth reviewing if you're trying to make a decision.
Azure Serverless anywhere (on Kubernetes)
You've had the freedom to host the Azure Functions runtime in many locations for a while now, but this new offering really takes the flexibility to a new level, as well as bringing a few other great Azure services along for the ride!
You can enable this capability through the deployment of the Azure App Services extensions to any CNCF-compliant Kubernetes cluster that is managed by Azure Arc. The documentation covering the extension is available on Microsoft Docs. Once the extension is deployed you can create a custom location to which you can deploy Azure App Service (Web Apps, API Apps, Azure Functions and Azure Logic Apps). At the time of writing this capability is in preview.
So there's a whirlwind trip through the "what's new" of Azure's serverless capabilities. Did I miss something you've seen, or do you have any questions? If so, leave a comment below and I'll be happy to answer! You can catch the video talk, including the demo in the video from the meetup.