Azure Functions embraces a code-first approach to developing enterprise-grade solutions in Azure. Like other serverless platforms, Azure Functions is a powerful framework available in Microsoft Azure, where you can run your code on demand and pay only for your resource consumption.
The Azure Functions runtime supports multiple languages. When developing custom code for integration, developers can use the language of their choice, such as .NET, Node.js, Java, PowerShell, and more. When it comes to hosting, you can host your Azure Functions in any environment, such as Kubernetes, Windows, or a Linux environment. With various available application bindings, Azure Functions also follow a reactive programming model and can be used in a plethora of use cases. On the development front, you can either use the Azure portal to develop your Azure Function, or you can embrace development environments such as Microsoft Visual Studio or Visual Studio Code:
You can combine the workflow capabilities of Logic Apps and the code-first execution of Azure Functions to develop enterprise-grade integration solutions without worrying about the infrastructure implementation. Alternatively, you can develop your lightweight API though Azure Functions and leverage the capabilities of API Management to expose your API to the outside world.
When you have a huge workload running on an Azure Functions runtime, you can concern yourself with latency rather than changing your design patterns. There are also various pricing models for Azure Functions, such as fixed-price application plans or the premium runtime environment. All of these considerations are essential architecture decisions, and this book will help you to get the most out of Azure Functions through a chapter dedicated entirely to it.
We also suggest that as you go through this book, you keep yourself informed by reading the Azure Functions documentation: https://docs.microsoft.com/en-au/azure/azure-functions/.
The Azure Functions runtime is a great platform for processing data, offering capabilities to integrate systems through input and output bindings, while also suiting big data ingestion use cases such as the Internet of Things (IoT) and Azure Data Factory.