Skip to main content

App Services in Microsoft Azure

1- Azure App Services provides the platform to build and deploy web, mobile or integration applications.
2- 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.
3- App Service also offers to accommodate previously built applications to migrate and run as one of the app service types
4- App Service runs and maintains with the help of Azure service fabric that takes care of running the application and its availability.
After login in Azure portal search/find the App Services, a marketplace window will open, there are lots of services available, I will explain about some services mentioned below.
1.     Web Apps
2.     API Apps
3.     Logic Apps
4.     Mobile Apps
5.     Function Apps

Web Apps
Web App provides the infrastructure for hosting our web application, you don’t need to worry about the maintenance of the infrastructure, and it all things are taken care of by the service provider. In traditional hosting, we need to very much sure about server like the server is up, OS is updated supported software is upgraded and IIS is running etc.. while hosting on Azure can reduce that type of burden and Service fabric layer below it makes sure that the app is up and running.
Azure Web App not only the .NET but also support the Node.js, Java, PHP or Python etc. Azure promises to make web apps up and running with 99.95 % SLA. It also provides 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. 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 is also provided the infrastructure to host Web APIs like Web Apps. API Apps enable to expose existing or new APIs. Like same as Web Apps we no need to worry about infrastructure maintenance, all things are taken care of by the cloud provider. It also supports identity providers to secure the APIs. The API Apps supports.Net, Java, Python, 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
Azure Logic Apps is a cloud service that helps you automate and orchestrate tasks, business processes, and workflows when you need to integrate apps, data, systems, and services across enterprises or organizations. Logic Apps simplifies how you design and build scalable solutions for app integration, data integration, system integration, enterprise application integration (EAI), and business-to-business (B2B) communication, whether in the cloud, on-premises, or both.
For example, here are just a few workloads you can automate with logic apps:
1-    Process and route orders across on-premises systems and cloud services.
2-    Send email notifications with Office 365 when events happen in various systems, apps, and services.
3-    Move uploaded files from an SFTP or FTP server to Azure Storage.
4-    Monitor tweets for a specific subject, analyze the sentiment, and create alerts or tasks for items that need review.
5-    Logic apps facilitate workflows by using triggers, connectors, and actions.
6-    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.
7-    To support various kinds 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.
8-    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-    Build native and cross-platform apps: Whether you're building native iOS, Android, and Windows apps or cross-platform Xamarin or Cordova (PhoneGap) apps, you can take advantage of App Service by using native SDKs.
2-    Connect to your enterprise systems: With the Mobile Apps feature, you can add corporate sign-in in minutes, and connect to your enterprise on-premises or cloud resources.
3-    Build offline-ready apps with data sync: Make your mobile workforce more productive by building apps that work offline, and use Mobile Apps to sync data in the background when connectivity is present with any of your enterprise data sources or software as a service (SaaS) APIs.
4-    Push notifications to millions in seconds: Engage your customers with instant push notifications on any device, personalized to their needs, and sent when the time is right.

Function Apps
Azure Functions are event-driven components that eliminate the need for a server to host a piece of logical code and process. Basically, Azure functions are used to intercept events occurring in any Azure service or third-party service or on-premise 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.
An Azure function can run any executable. Azure Functions are also referred to as Server less. 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.
Server-less Azure functions are not fully featured applications but a short-lived task in an application that does a specific job. We can also chain different Functions together to make some comprehensive solution.
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.
1-    Choice of language - Write functions using your choice of C#, F#, or Javascript. See Supported languages for other options.
2-    Pay-per-use pricing model - Pay only for the time spent running your code. See the Consumption hosting plan option in the pricing section.
3-    Bring your own dependencies - Functions supports NuGet and NPM so you can use your favorite libraries.
4-    Integrated security - Protect HTTP-triggered functions with OAuth providers such as Azure Active Directory, Facebook, Google, Twitter, and Microsoft Account.
5-    Simplified integration - Easily leverage Azure services and software-as-a-service (SaaS) offerings. See the integrations section for some examples.
6-    Flexible development - Code your functions right in the portal or set up continuous integration and deploy your code through GitHub, Azure DevOps Services, and other supported development tools.
7-    Open-source - The Functions runtime is open-source and available on GitHub.
App Service Scaling
Web apps offer 2 types of scaling based on our need – Vertical Scaling (Scale up, scale down) and Horizontal Scaling (Scale Out and Scale In). Scaling is important for a couple of reasons: 1- As users accessing our app grows, we want them to have a seamless experience to the app. 2- 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 workload 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. The number of instances of the app is increased to distribute the traffic load.
Scale In
The number of instances of the app is decreased to reduce cost in off seasons when traffic on web app goes low.

Some Disadvantage of App Services
1-    Though App Service comes with a lot of benefits and ease of doing cloud-native development and deployments, there are a few limitations which should be understood well.
2-    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.
3-    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.

4-    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.