What is Microsoft Azure Functions, and how does it compare to Azure Automation?

As Microsoft Azure continues to be developed and more automation options become available; Azure Automation, Logic Apps, ARM (Azure Resource Manager) and Azure Functions to name a few, the question is quickly turning from ‘how do I automate with Azure?’ to ‘what automation type do I use in Azure?’ Across our next few blogs, we will seek to delve into the options available and define how they stack up against Azure Automation.

What are Azure Functions?
Azure Functions are a Serverless compute, Platform as a Service (PaaS), which provides an event-driven compute-on-demand programming model. Like Azure Automation and Logic Apps, it can help you automate and orchestrate tasks, business processes, and workflows.

Azure Functions are small code components that execute in the cloud; they are aimed primarily at developers rather than automation engineers. That doesn’t mean that you can’t exploit them as part of an automation solution, just expect a steep learning curve unless you are familiar with writing code in one of the supported languages.

Azure Functions are event-driven. The initial event that invokes the function can come from various sources, for example, an HTTP trigger, the creation of a file in a blob store or event subscription from the event hub. Typically, these are not events that have been directly created by an end-user; instead, the Azure Function is a sub-component within a larger data flow.

What are the benefits?
Like Azure Automation, the upfront costs for Azure Functions are typically quite low due to the cheap running costs of Microsoft Azure, and the Pay-per-use pricing model for Azure Functions.

Azure Functions offer a choice of languages (C#, F#, or JavaScript) with a longer list of experimental language support (including PowerShell, and Batch files). The development model is flexible, and functions runtime is Open-source.

Azure Functions can be integrated with Azure Services, and software-as-a-service (SaaS) offerings see Integrations.

Disadvantages?
Like Azure Automation and Logic Apps, Azure Functions facilitate serverless workloads; however, Azure Functions is a serverless compute service rather than a serverless workflow.  Azure functions are better exploited as a low-level component, rather than managing an Orchestrated solution’s overall flow. For example, the best practices for Azure Functions recommends avoiding large, long-running functions.

With the focus on developers and the writing code, rather than the visual approach of Graphical Azure Automation Runbooks or logic apps, there will be a high development effort to build, support and deploy an Azure Function solution.

What is Azure Automation?
Azure Automation is a cloud service that provides a cost-effective, utility priced Automation as a Service platform that allows you to automate all those error-prone, time-consuming IT tasks, improving efficiency and lowering your operational costs.

Azure Automation is compatible with multiple vendors, multiple cloud platforms and on-premise systems and is based on PowerShell so has a huge reach of integration opportunities.

Benefits
As Azure Automation is a Cloud Service deployment is simple and speedy and can be set up worldwide at the click of a button.

Azure Automation has a meagre upfront cost. It is charged on a pay-as-you-go model, where costs are only incurred whilst automation is executing. As Microsoft provides you with the first 500 minutes free, this significantly minimises your initial outlay to achieve automation benefits.

With over 300 PowerShell Integration Modules available, there are many options for integration covering both Microsoft products and services and other companies’ services.   Increasingly vendors are releasing PowerShell modules for their existing platforms as well.

Not only does Azure Automation leverage the existing PowerShell Modules but it also offers different programming options to extend the usability options further;

 Disadvantages?

Like Azure Automation and Logic Apps, Azure Functions facilitate serverless workloads; however, Azure Functions is a serverless compute service rather than a serverless workflow.  Azure functions are better exploited as a low-level component, rather than managing an Orchestrated solution’s overall flow. For example, the best practices for Azure Functions recommends avoiding large, long-running functions.

With the focus on developers and the writing code, rather than the visual approach of Graphical Azure Automation Runbooks or logic apps, there will be a high development effort to build, support and deploy an Azure Function solution.

What is Azure Automation?
Azure Automation is a cloud service that provides a cost-effective, utility priced Automation as a Service platform that allows you to automate all those error-prone, time-consuming IT tasks, improving efficiency and lowering your operational costs.

Azure Automation is compatible with multiple vendors, multiple cloud platforms and on-premise systems and is based on PowerShell so has a huge reach of integration opportunities.

Benefits
As Azure Automation is a Cloud Service deployment is simple and speedy and can be set up worldwide at the click of a button.

Azure Automation has a meagre upfront cost. It is charged on a pay-as-you-go model, where costs are only incurred whilst automation is executing. As Microsoft provides you with the first 500 minutes free, this significantly minimises your initial outlay to achieve automation benefits.

With over 300 PowerShell Integration Modules available, there are many options for integration covering both Microsoft products and services and other companies’ services.   Increasingly vendors are releasing PowerShell modules for their existing platforms as well.

 Disadvantages

In an event driven code execution use case, Azure Automation does not have the same level of programming language support and maybe incur more overhead than using a Function App.

What are the differences between Azure Functions and Azure Automation?
Both Azure Functions and Azure Automation capabilities overlap along with other Azure technologies such as Logic Apps which we have reviewed in previous blogs.

When looking at which route to go down, the choice you make will typically depend on the scope of use cases your looking to implement.   Are you looking to provision and manage virtual or physical infrastructure? Or automatically fulfil User Service Requests?  Or automate a complex decision based manual process where you can stop and then resume following a time delay or external input?  If so you want to be looking towards Azure Automation.

If, on the other hand, you are looking to automate a single component, or an action using an event driven approach and have the necessary development skills then Azure Functions will help you get the job done.

Comparison
Considering a hybrid approach, using Azure Automation for the high-level processing and overall management, with Azure Functions to carry out some of the low-level tasks may make sense, but obviously with any hybrid approach adding additional technologies will increase complexity.

From a suitability of automation point of view, Azure Functions and Azure Automation currently provide platforms for very different automation tasks; one is better suited to IT infrastructure and service automation whilst the other is aimed at developers building serverless capabilities.

Logic Apps, Azure Automation Runbooks, Azure Service Bus and Azure Function Apps all contribute to the broad automation capability available from the Azure Cloud.

Next Steps

If you are considering using Azure Automation to automate service requests, be sure to reach out to Kelverion. We have over a decade of experience in automation both on-premise and with Azure Automation. The Kelverion Runbook Suite, which has been specially created to enable organisations to harness the power of Azure Automation is formed of 4 parts:

The Runbook Studio: A ‘click and configure’ graphical authoring environment in which to create and modify the automation processes, that will save your business hundreds of ‘man-hours’. Similar to a Visio diagram, this image-based approach means users don’t need to write lines of code.

Integrations: We’re proud that our products wrap around your existing ITSM and connect automation through our ‘smart discovery’ technology. Take a look at our Integration library.

Solution packs: pre-built automation solutions, ready to be deployed and tweaked to the exact requirements of your organisation.

Automation Portal: For those customers who don’t have a self-service portal within their service desk, we have built an automation portal; empowering end-users to complete their own service requests and fulfilling these requests with automation.

For more information, to arrange a discovery call or to see a demonstration please contact our helpful team today via info@kelverion.com.