Azure Functions Introduction

network

As a budding software engineer, I had always heard Azure around the office. But, I didn't quite understand what the offering was. Perhaps I didn't even know that a product was offered and it was just jargon people used to sound intelligent. I finally had my interest sparked so I took a look around the internet for more information about Azure. The 20 minutes of reading was quite revealing. Companies were, and still are, building tools for subscription usage. Traditionally infrastructure setup was a long-term play for an organization. Investing in hardware, then the time to install and configure said hardware. It was not a quick, nor an easy process to set the stage. That does not even include the ongoing maintenance for this hardware, the space, or other networking equipment needed. It can be quite the endeavor to a project off the ground.

It has been several years since that initial investigation. In that time, I had used some of the Azure services, but they were never something I was directly involved in configuring. More so, they were just a container for me to deploy code to. So I still did not have much context for what was all offered by the platform. That has all changed in the past 2 years.

I was thrust into an environment where everything was hosted in Azure. I mean EVERYTHING. Using a large variety of services. In this time, there has been one particular service that has attracted my attention the most. Azure Functions. I could not believe just how flexible the service offering is. As time has gone on they are becoming more and more flexible to suit the needs of dynamic organizations.

For the next short series of informational guides. I am going to dive deep into Azure Functions, detailing some interesting use cases for the service. This time I am planning on providing working code samples for each post. This is all an experiment, so we will see how it all shakes out.

What are Azure Functions?

Azure Functions is a service provided in the Azure infrastructure, that provides event-driven serverless computing.

What is event-driven?

Event-driven is a programming paradigm in which the software responds to an event. As you will see in this series, the events will originate from many different sources. Some of which will be user actions, some scheduling mechanisms, and many other sources.

What is serverless computing?

Serverless computing is a cloud execution model where the service provider, in this case, Azure, provisions server resources for on-demand consumption. Meaning the organization subscribing to the service does not have to concern itself with the maintenance of the underlying resources. Nor do they have to be concerned with capacity planning of the resources.

What languages does this service support?

At the time of writing this, Azure Functions supports 5 options for development.

  1. .NET
  2. NodeJS
  3. Java
  4. PowerShell
  5. Python

In the next post, we will cover some more of what the Azure Functions service has to offer. Plus, the advantages of choosing this paradigm.