Guide to Building Serverless Applications on Azure - XenonStack

Overview of Azure Platform

Azure is a platform or service of cloud computing; basically, it is created or build by Microsoft. It is used for testing, building, managing applications, and deploying. It provides software as a service (SaaS), Infrastructure as a service (IaaS) and Platform as a service (PaaS) and supports many different programming languages, tools, and frameworks. Software-as–a-Service (SaaS) refers to software that is deployed on host service and is accessible on the Internet. It allows providing software application as a service to the end-users.Platform-as-a-Service offers development and deployment tools required to develop applications. It also provides the runtime environment for applications. Infrastructure-as-a-Service allows access to vital resources such as physical machines, virtual machines, virtual storage.

Serverless Computing

The serverless application allows us to focus on your application logic without worrying about any servers, A third-party service host application. It is also known as FaaS (function as a service).There are no servers to maintain, software to manage, and no hardware to upgrade — the software built-in with high availability and fault tolerance.

Benefits of Serverless Computing

  • No servers to manage.
  • It is easy and efficient scaling, and Serverless applications can be scale automatically.
  • Server Application built-in high availability.
  • No-ideal, as the user pay only or what the user used.
  • It reduces devops needs, which means you have a faster time to market.

How does Serverless or FaaS Differ from PaaS?

With FaaS, we can build our application into an individual, as an autonomous function. Every function is hosted by the FaaS provider and could be scaled automatically. You only pay for
what you use.With PaaS, we can deploy the application as a single unit, and it is developed traditionally, by using some web framework. A framework like Flask, Ruby on Rails, Java Servlets, etc. scaling is done at the entire application level only.

Serverless Framework

Serverless Framework is used to develop and deploy Serverless applications using Azure Functions. It is a CLI (command-line interface) that offers structure, automation. It also allows us to focus on building sophisticated, event-driven, serverless architectures.The Serverless Framework is much different from other application frameworks because –

  • It manages your code and your infrastructure.
  • It supports multiple languages like (Node.js, Python, Java, and more)

Serverless Components in Azure

Azure Function

The Azure function allows you to run your custom code on-demand without having to worry about where it is running or scalability.

Azure Logic Application

Logic application is a visual workflow designer. It lets you design workflows and Microsoft and other third-party services, including azure function. This is codeless.

Event Grid

The event grid manages all the events that configure your code and your logic.Consider an example, people upload pictures to your website, and you automatically resize your image. That is where the azure function comes in. Azure function listens for upload events, and as soon as someone uploads an image, it automatically resizes the image for you.

Different Options Available for Monitoring Azure Serverless Components

Application Insights

It is a monitoring service in Azure, which enables the developers to monitor their application on-premise in Azure. This service is an offer to developers to allowing them to monitor performance and detect issues. Developers can set up the Application Insights in Azure by provisioning an instance of the service. It can be done by installing a package inside the application or attaching it up with an Azure Service like Functions. The package in our application will send telemetry data to Application, Insights just like performance counters,
Docker logs, and diagnostic logs.

Kudu

It is the engine in git deployment and various other features in Azure Web Sites. It can be useful when you want to look at deployment logs, and individual function runs. It is not a monitoring tool. It helps in troubleshooting.

Log Analytics

It is the service that collects all the data into a single workspace. Log Analytics can collect the log files and then analyses log files from various Azure and on-premise resources. Log Analytics is a monitoring service in Azure. It provides a query language to query the consumed data.

Operations Management Suite

It is a service in Azure that collects capabilities like log analytics, IT automation, backup and recovery, security, and compliance tasks.

Azure Monitor

It provides base-level infrastructure metrics and logs for most services in Azure. The solution offers –

  • Activity Log – It has information of all types of an event occurring within an Azure such as subscription – for instance, VM activities such as starting or stopping of a VM, etc.
  • Diagnostic Settings – It has the Information about events occurring inside a particular resource in an Azure such as subscription – for instance, retrieving a secret from Key Vault.
  • Metrics – It is used to performance counters in a Windows Server. These metrics are available by default.
  • Alerts – The alerts section can be accessed in various Azure Resources. In this, we can view and manage all Azure alerts. In this, we can create alert rules, which can send an email, SMS, WebHook, or to third party IT Service Management.

Azure Service Health

It offers the user with insights into maintenance schedules. It provides the following views –

  • Services Issues
  • Planned Maintenance
  • Resource Health
  • Health Alerts

Azure Advisor

It is a service on the platform that can support us in following the best practices for deployment in Azure. The service checks the current configuration of all the Azure resources.The service offers –

  • High Availability
  • Security
  • Performance
  • Costs

Implementation of Serverless Application in Azure

This example can show implementation, every time a person tweets with an image and pre-define hashtag and analyze the image and send the age of the person in an e-mail.This can be done without any code –

Step 1 – Create the face API

You can do that by going to cognitive services and choosing the face API option. Once the face API is created, then we move to Step 2.

Step 2 – Create the logic app and link the twitter account.

We can do it by going to the logic app tab and creating a new logic app. Once the deployment of the logic app is successful. It will take you to the logic app visual designer page. You need to sign in a twitter account to authorize your app to use twitter. Once authorization is done, you can click continue to go to the next step. You will then fill in the filter words for which the azure logic app will listen ON.

Step 3 – Link face API to the logic app and complete the visual workflow You can do that by clicking the new step and then action from the list of connectors you can select face API and configure your face API by providing the required key which you got from the previously face API.

Then, you can add the image from the tweet as input for the phase API. You will then send the email of the output of face API, by linking the office 365 outlook account. Once you have link the email, you have the several parameters from face API and then, save and run.

Building Serverless Application on Azure

Step 1. Building the Azure Storage Account

Create a resource group for storing the resources for the application.


az group create --location  --name 

Now create the storage account.
Building the Azure Storage Account

Once the storage account has been created, now enable the static website hosting by running the following command to install the extension.


az extension add --name storage-preview

Now, enable the static website hosting.
Enable static hosting

Step 2. Building the Azure Function App

To build the Azure function App, make sure you update all the values and then run the command to create the function app.
Building the Azure Function App

After the function app has been created, update the Cross-Origin Resource Sharing (CORS) configuration. It is a mechanism that tells a web browser that one domain is connected to access resources on another server.

Cross-Origin Resource Sharing

Step 3. Creating an Azure Function

The Azure CLI makes function easy to create the function app from the command-line. We can use other tools to create our functions.

Step 4. Configuring the HTML Front-end

The HTML form for the app is In this at lines

Configuring the HTML Front-end

In Line 4, there is an empty output div, updation is based on the response from the Azure function and we grab the value of the input field in the HTML form

In Line 7, this is the input field where the user submits their name. In this, the id is set to name, and we will grab the value from the input and send it along with the request to the Azure Function.

In Line 9 – When the user clicks the submit button, it will post the form to the Azure function.

Step 5. Deploying the HTML Front-end

There is a need to upload the file or blob to the $web container, to upload the file into the Azure Storage account.The Fetch API is used to facilitate the request or response process.

Deploying Applications- Azure

Step 6. Testing the Serverless Web Application

In this, we check our serverless application. We navigate to the static website’s primary endpoint URL to view our application.

The client-side JavaScript that calls our serverless function is shown below –

This is a JavaScript function that will be called when the user clicks the Submit button.

In Line 12, the value for the name input is sent as part of the body of the POST request.

In Line 15, the fetch () function returns a promise containing the response, and that gets passed to another client-side function, which is known as process Response (), which updates the UI.

Azure Serverless Solutions

The serverless application allows us to focus on your application logic without worrying about any servers. With FaaS, we can build our application into individuals, as an autonomous function. With PaaS, we can deploy the application as a single unit, and it is developed traditionally, by using some web framework. Serverless Framework is used to develop and deploy serverless applications using Azure Functions. Serverless Components in Azure: Azure function allows you to run your custom code on-demand without having to worry about where it is running or scalability. Logic application is a visual workflow designer. The event grid manages all the events that configure your code and your logic.

Available for Monitoring Azure Serverless Components: Application Insights is a monitoring service in Azure, which enables the developers to monitor their application on-premise in Azure. Kudu is the engine in git deployment and various other features in Azure Web Sites. Log Analytics is the service that collects all the data into a single workspace. Operations Management Suite is a service in Azure that collects capabilities like log analytics, IT automation, backup and recovery, security, and compliance tasks. Azure Monitor provides base-level infrastructure metrics and logs for most services in Azure. Azure Service Health offers the user with insights into maintenance schedules. Azure Advisor is a service on the platform that can support us in following the best practices for deployment in Azure. Implementation of Serverless Application in Azure: Step 1: Create the face API, Step 2: Create the logic app and link the twitter account, Step3: Link face API to the logic app, and complete the visual workflow.

A Holistic Strategy

Azure is a platform or service of cloud computing; it is created or builds by Microsoft. Software-as–a-Service (SaaS) refers to software that is deployed on host service and is accessible on the Internet. Platform-as-a-Service offers development and deployment tools required to develop applications. Infrastructure-as-a-Service allows access to vital resources such as physical machines, virtual machines, virtual storage.



Leave a Comment

Name required.
Enter a Valid Email Address.
Comment required.(Min 30 Char)