16
NovAn 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
Web Apps
API Apps
Logic Apps
Mobile Apps
Function Apps
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.
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.
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.
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:
They are cross-platform, which means Apps built for any platform—Android, Windows, or iOS —can consume them.
Mobile Apps also support secured client connections, which allow client applications to connect with the default identity providers, such as Active Directory and Microsoft accounts.
Offline Sync – This feature enables the client applications to work with data when they are offline and sync it when they are online.
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. They can intercept events occurring in any Azure service, third-party service, or on-prem system. They are an evolution of Azure web jobs, which are 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.
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 memory only when they run and scale automatically by replicating instances.
Serverless Azure functions are not fully featured applications but short-lived tasks in an application that do a specific job. We can also chain different Functions together to make comprehensive solutions.
Azure functions are supported in multiple languages, including C#, F#, Node.js, Python, PHP, batch, bash, and any executable file format. They can also 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:
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.
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.
Dedicated
The Dedicated tiers run apps on dedicated Azure VMs. Apps within the same app service plan can share resources and power. This tier comes with a 99.95% SLA and scaling options. It is further divided into Basic, Standard, and Premium, each 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 with increasing application traffic and load. The production environment case fits into the standard tier plan.
Premium
The premium tier is suitable for large scale deployment. It comes with 20 deployment slots and can be backed up 50 times a day.
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:
As users accessing our app grow, we want them to have a seamless experience with the app.
We only want to pay for the amount of computing power we use
Vertical Scaling
Scale up
Increasing the computing power of infrastructure to support heavy workloads by increasing the CPU power and storage efficiency.
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
Scale-Out
This is also called horizontal scaling. To distribute the traffic load, the number of app instances is increased.
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 offers many benefits and makes cloud-native development and deployments easy, there are a few limitations that should be understood.
No Remote Desktop Connection—Since app services are part of the broader platform as a service modal, we have very limited access to the infrastructure on which they run. This makes it difficult to troubleshoot issues related to performance as we cannot log into the server and see log files or event viewer.
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.
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.
FAQs
Take our Azure skill challenge to evaluate yourself!
In less than 5 minutes, with our skill challenge, you can identify your knowledge gaps and strengths in a given skill.