Microsoft Azure Functions
Azure Functions is Microsoft’s serverless compute offering, announced in spring of 2016.
Process events with a serverless code architecture. An event-based serverless compute experience to accelerate your development. Scale based on demand and pay only for the resources you consume.
The platform includes the following products and services:
- Functions - serverless compute
- LogicApps - orchestrated workflows visual designer
- Flow - higher abstraction on top of LogicApps
- WebJobs - run scripts or programs as background processes
How It Works
[insert diagram to showcase usage]
Language Support
Supports C#, F#, Node.js, Python, PHP, batch, bash, or any executable.
Security
Protect HTTP-triggered functions with OAuth providers such as Azure Active Directory, Facebook, Google, Twitter, and Microsoft Account.
Tooling
Azure Portal, Azure Powershell, Azure CLI, and Azure SDK
Supports coding functions directly in the portal, or through Visual Studio Team Services or others IDEs like Xcode, Eclipse, and IntelliJ IDEA. Visual Studio supports all three deployment processes (FTP, Git, and Web Deploy), while other IDEs can deploy to App Service if they have FTP or Git integration. See deployment processes overview for details.
Monitoring, Logging & Alerting
Functions integrates with Azure Application Insights, the Azure APM service. It includes metrics, traces, exception tracking, dependencies and user data. Despite the serverless abstraction, App Insights lets users see server-level metrics down into individual VMs such as the CPU usage. See monitoring overview for details.
Application Insights Analytics gives detailed information about diagnostic data for an application.
Azure Audit Logs is a data source that provides a wealth of information on the operations on your Azure resources. The most important data within Azure Audit Logs is the operational logs from all your resources.
Alerts are available across different services, including, Application Insights, Log Analytics, and Azure Monitor.
Debugging & Diagnostics
The Azure Functions CLI provides local debugging support. But, since Azure Functions is built on top of Azure App Service, remote debugging support is built-in.
With the help of a few tools and components like Visual Studio, Visual Studio Tools for Azure Functions and Cloud Explorer extension, it is possible to set breakpoints and step through code via the debugger. Note: Although these tooling experience is currently in preview.
Pricing
See Azure Functions pricing page for details.
Limitations
The limitations are not really documented but gathering from user experiences, it seems Azure Functions allow only 10 concurrent executions per function. There is also no limitations on max. execution time limit, but you will be billed for any accidental loops.
Resources
Credits: Rupak Ganguly (@rupakg) ***