Sunday, 19 May 2024

An Introduction to Azure App Services

 

Azure App Services: An Overview

Azure App Services provides the platform to build and deploy web, mobile, or integration applications. We can build robust cloud-native apps that can scale as per the need and with complex architecture and secure connections for any platform or device without worrying about the Virtual machine that will host. It also offers to accommodate previously built applications to migrate and run as one of the app service types. App Service runs and maintains with the help of Azure service fabric that takes care of running the application and its availability.

In this Azure Tutorial, we will explore more about Azure App Services which will include Microsoft Azure App Service, Introduction to Azure App Services, Azure App service tutorial, implementing Azure App services, and Azure App service plan. Consider our Azure Certification Course for a better understanding of all Azure concepts.

Types of Azure App Services

  1. Web Apps

  2. API Apps

  3. Logic Apps

  4. Mobile Apps

  5. Function Apps

Types of Azure App Services

Web Apps

  • Web Apps enable us to host our web applications without risk about the infrastructure plumbing that is required. I
  • In a hosting mechanism, we need to make sure the Server is up, the OS is updated and IIS is running
  • Hosting in the Azure web app removes all this burden and the Service fabric layer below it makes sure that the app is up and running.
  • Deploying applications in web app service in Azure helps developers focus on delivering business values rather than consuming time on severe updates or OS patches.
  • Web apps not only support applications but also support Node.js, Java, PHP, or Python.
  • Azure promises to make web apps up and running with 99.95 % SLA.
  • It also provides a provision to attach custom domains and SSL certificates with the web app.
  • We can also have multiple deployment slots so that we can test our app in Staging or the pre-prod environment.
  • This also helps in moving new changes to production with no downtime.
  • Moreover, we also get the flexibility to revert a deployment.
  • This is made possible by swapping the virtual IP addresses of the slots.
  • And the staging site goes live seamlessly.
  • Web apps also come with a feature of manual or auto-scaling.
  • We can configure authentication and authorization out of the box like Azure AD.
  • We can also load balance traffic apps with traffic management.
  • Web apps can also access data that lies outside Azure like an on-premise data source with some hybrid connections.

API Apps

API apps are offering of App Service that helps to host Web APIs. This enables us to expose existing or new APIs. This is also a part of the platform as a service and we don’t need to worry about infrastructure plumbing to bring our APIs up and running. It also supports identity providers to secure the APIs. The API Apps support, Java, Python, and Node.js to build and deploy Web APIs. It also comes with an inbuilt swagger implementation which helps in API definition and creating client apps.

Logic Apps

Logic apps enable us to create functional workflows by orchestrating software as a service component. These are basically used to connect different components of a solution to manage and trigger events and perform the desired action on some other service. For example, we can build a logic app that triggers an event of a new file uploaded on a blob storage and performs an action of sending a notification to a user. In many complex solutions, logic apps act as a communication channel for various services in a microservice architecture.


Logic apps facilitate workflows by using triggers, connectors, and actions.

  1. Logic apps can be triggered manually, or at any scheduled time. Moreover, logic apps can also be triggered on the basis of some event on any connected component.

  2. To support various kind of workflows, logic apps also have something called conditions. This is a logical section to validate a few data based on some condition and we can perform the specific action on each result of the condition.

  3. Logic apps internally use connectors to connect to different components. These connectors may connect to Azure SQL DB, Mail Exchange, SharePoint, blob storage, or API Apps.

Mobile Apps

Mobile Apps enable us to build a backend for Mobile applications. It can provide capabilities to mobile client applications. This can be considered to be the same as a web service to support mobile client scenarios. The client can be Windows Universal apps, IOS apps, windows apps etc. They use Mobile app SDK to connect with the backend. There are certain unique capabilities with mobile apps:

  1. They are cross-platform. That means Apps built for any platform – Android, Windows, IOS can consume them.

  2. Mobile Apps also support secured client connection for client applications to connect with the default identity providers like Active Directory and Microsoft accounts.

  3. Offline Sync – This feature enables the client applications to work with data when they are offline and sync it when they are online.

  4. Push Notifications – The Mobile apps can be used to send push notifications to the client applications.

Azure Functions

Azure Functions are event-driven components that eliminate the need for a server to host a piece of logical code and process. Azure functions are used to intercept events occurring in any Azure service third-party service or on-prem system as well. They are an evolution of Azure web jobs which is a feature of Azure App Services.

For example, Azure Functions can be triggered on Event Hubs, Service Bus topics or queues, or via a timer.

  1. An Azure function can run any executable. Azure Functions are also referred to as Serverless. It's not that Azure functions do not run on servers. They do. They run on Azure service fabric. But We do not need to manage the server. Azure functions consume the memory only when it runs and scales automatically by making the replica of instances.

  2. Serverless Azure functions are not fully featured applications but a short-lived tasks in an application that does a specific job. We can also chain different Functions together to make some comprehensive solutions.

  3. Azure functions are supported in multiple languages like C#, F#, Node.js, Python, PHP, batch, bash, and any executable file format. In terms of security, they can be secured with OAuth systems and other identity providers like Azure AD.

App Service Plan

All the apps that run under app service are governed and observed by a contract with the cloud service provider known as the App Service plan. This acts as a container for the applications and defines the boundary limitations of resources available to consume and scale. An app service plan comes with measured compute resources that keep our app running. These compute resources include fixed computing power which can be consumed by different applications deployed in the same app service plan. The amount of computing power defines how much we need to pay for the plan.

The app service plan is categorized by its pricing tiers as below:

  1. Free

    This App Service plan uses a single VM for multiple app service plans and can host multiple applications with some limited computing power. Also, we cannot scale our apps in this app service plan and applications deployed in this plan cannot be provided with custom domain names.

  2. Shared

    The shared app service tier runs in a similar environment as that of a Free tier. This tier allocates CPU quotas to each app that runs on the shared resources, and the resources cannot scale out. We can add a custom domain to the apps in this tier.

  3. Dedicated

    The Dedicated tiers run apps on dedicated Azure VMs. The apps within the same app service plan can share the resources and power. This comes with 99.95% SLA and scaling options. This tier is further divided into Basic, Standard, and Premium with increasing computing power and features.

    • Basic

      The basic app service tier is generally used in dev and test environments during development and does not support auto-scale. Applications can be scaled out manually up to 3 instances.

    • Standard

      The standard tier features 5 deployment slots and can be configured to auto-scale on increasing traffic and load on the application. The production environment case fits into the standard tier plan.

    • Premium

      The premium tier is suitable for large scale comes with 20 deployment slots and can be taken backup 50 times a day.

  4. Isolated

    The isolated tier runs dedicated Azure VMs on dedicated Azure Virtual Networks. This means that we run a private instance of all web app infrastructure deployed in an isolated virtual network. This type of environment is also known as running in an App Service Environment (ASE).

App Service Pricing and Tiers

Source: https://azure.microsoft.com

App Service Scaling

Web apps offer 2 types of scaling based on our needs – Vertical Scaling (Scale up, scale down) and Horizontal Scaling(Scale Out and Scale In). Scaling is important for couple of reasons:

  1. As users accessing our app grow, we want them to have a seamless experience with the app.

  2. We only want to pay for the amount of computing power we use

Vertical Scaling

  1. Scale up

    Increasing the computing power of infrastructure to support heavy workloads by increasing the CPU power and storage efficiency.

  2. Scale Down

    Decreasing the computing power of infrastructure in case the website hit goes down by decreasing the CPU power and storage efficiency.

Horizontal Scaling

  1. Scale-Out

    This is also called horizontal scaling. The number of instances of the app is increased to distribute the traffic load.

  2. Scale In

    The number of instances of the app is decreased to reduce cost in the off-season when traffic on the web app goes low.

Limitations of Azure App Service

Though App Service comes with a lot of benefits and ease of doing cloud-native development and deployments, there are a few limitations that should be understood well.

  1. No Remote Desktop Connection- Since app services are part of the broader platform as a service modal, and we have very limited access to the infrastructure on which it runs. This makes it difficult to troubleshoot issues related to performance as we cannot log into the server and see log files or event viewer.

  2. No support for third-party Software management tools- Since we do not have to manage the server at all, we have no authority to install any monitoring tools like Dynatrace or Splunk.

  3. Performance Counters not visible- In order to keep the healthy state of an application, we always tend to see the performance indexes on key workloads like IIS queues but with app service in Azure, this is still not available.

Conclusion:

So in this article, we have learned about Azure App Services. I hope you enjoyed learning these concepts while programming with Azure. Feel free to ask any questions from your side. Your valuable feedback or comments about this article are always welcome. Level up your career in Azure with our Azure Fundamental Course.

No comments:

Post a Comment