Azure Functions has been gaining traction among developers, mostly led by .NET developers. Microsoft offers many different application deployment platforms including containers, PaaS, WebApps, Azure Functions, Azure Logic Apps and others. With such diverse portfolio, Microsoft is positioning Azure Functions as an enterprise grade Serverless offering. As a follow up to our posts on the pros and cons of AWS Lambda and Google Functions, this post will highlight how Microsoft’s Serverless platform fits the developer needs.
Unlike AWS Lambda, Microsoft’s serverless offering has gained slower adoption among the developers but the platform has a strong support from .NET developers who are comfortable with Microsoft’s development toolchain. Azure Functions is a polyglot platform supporting .NET, Java, Node.js and Python. It is well integrated with Github, Visual Studio and Visual Studio code as well as their DevOps offering, Azure Pipelines. The platform supports wide range of use cases from Web applications to APIs to machine learning workflows. Like Catalyst platform which is integrated with Zoho Create low code platform, Azure Functions is also integrated with Azure Power Apps, Microsoft low code platform.
Azure Functions Advantage
- Azure is more enterprise focussed than the Functions as a Service (FaaS) offerings from AWS and Google Cloud. It offers support for stateful applications using Durable Functions extension. Most enterprises want to deploy stateful applications using Serverless and the platform is well suited to support this need. When compared to the support for long running jobs and always on instance support in their higher cost plans, Microsoft is positioning Azure Functions as the enterprise grade serverless platform
- Support for .NET languages and deeper integration with the toolkits used by these developers, Microsoft is targeting the enterprise developers
- Authentication is configured by default, removing the additional overhead on enterprise developers
- Along with hosted Azure Functions offerings, the function code can be deployed on App Service (PaaS), Kubernetes, Azure Stack and IoT Edge, making this a versatile platform for cloud, hybrid cloud, on-premises, edge and IoT deployments
- The pricing model is complex. While the premium plan and Dedicated plans are targeted towards enterprise customers who are not so strict about costs, they could turn out to be expensive. Turning on the always on instance setting will defeat the cost advantage associated with Functions as a Service. The low end consumption plan has some pretty severe limitations in features supported. Also, the pricing associated with storage is not clear and users may be in for surprises based on how they use the services. Beware of hidden costs like adding a Storage Account with the functions compute
- There are some limitations on scaling with consumption plan and even premium plan also has an upper bound of 100 on the number of App Functions. Be aware of these limitations while picking the right plan
While Azure Functions is more suitable for enterprise customers, it is not as developer friendly as some of the competing offerings in the market. With a complex pricing model and limited set of features in the on-demand version, Azure Functions is not suitable for individual developers and smaller companies. Offerings like AWS Lambda or Catalyst are suitable for these developers. However, if you are an enterprise customer using Azure or an enterprise customer having infrastructure across cloud, edge and IoT, Azure Functions is well suited for your needs.