Azure Functions: overview of concepts
Tags: azure, serverless, azurefunctions
Published: 2022-09-25 07:04:47

---
title: Azure Functions: overview of concepts
published: true
date: 2022-09-24 13:21:35 UTC
tags: #azure #serverless #azurefunctions
canonical_url: https://blog.cloudbuff.in/azure-functions-part-1
---

This is the first in a [series](https://dev.to/sjejurkar/up-and-running-with-azure-functions-1m8p) of articles to help get started with Azure Functions. We begin our journey with a brief overview of concepts.

## Serverless Computing and FaaS

As cloud usage has increased in the past few years, one of the features that has gained popularity is [serverless computing](https://en.wikipedia.org/wiki/Serverless_computing).

**Serverless** doesn't mean that there are no servers. It simply means that server infrastructure is managed by the cloud provider. As developers, we can focus on creating applications without worrying about managing the infrastructure to run those applications.

While **serverless** covers many cloud services, the one that is most widely used (or at least has the most mind-share) is Function-as-a-Service (FaaS). A **function** is a piece of code written for a single, specific purpose. Think of it as a small program meant to respond to a specific event - an event handler.

## Azure Functions

[Azure Functions](https://azure.microsoft.com/en-us/products/functions/#overview) is the implementation of FaaS in Microsoft Azure cloud.

### Triggers

A function runs in response to a trigger. A trigger is an event like HTTP request, file upload etc. Below are some of the common triggers for Azure Functions:

| Type | Triggering Event |
| ---- | ---------------- |
| HTTP | HTTP request is received |
| Timer | Time as per a predefined schedule |
| Blob | File is uploaded to Storage Container |
| Storage Queue | Message arrives in Storage Queue |
| Service Bus | Message arrives a Service Bus queue or topic |
| Event Hub | Event arrives into an Event Hub |

### Supported languages

Azure Functions supports several programming languages. We can develop functions using any of the following:

- C# (.Net)
- JavaScript (NodeJS)
- Python
- Java
- Powershell
- TypeScript
- F#

### Advantages

Using Azure Functions offers several benefits.

#### Development speed

Since we don't have to worry about managing the underlying infrastructure, we can focus on developing our application. This is particularly helpful when developing event-driven applications. Also, tools like Visual Studio Code offer excellent development support for Azure Functions.

#### Scalability

Since Functions are managed by Azure itself, they can scale automatically based on load or demand.

#### Cost Optimization

Azure Functions help us optimize cost and we can choose to only pay for compute resources when our functions are running.

### Disadvantages

The primary disadvantage of using Azure Functions is that we have very little control over the underlying environment. For instance, only certain versions of a language or framework may be supported. If using a specific version is required, it may not be supported. Similarly, we may not be able use Azure Functions if there are special hardware or licensing requirements.

## Conclusion

That was a quick look at the concepts for understanding Azure Functions. In the [next article](azure-functions-part-2), we will jump into development create our first Azure Function.