Multiple Web Apps in Azure's Basic Tier - azure

I'm new to Azure, and a stronger developer than a network guy. I have read that you can host multiple websites/domains in each Basic plan.
I choose the B1 Basic plan for one of my web apps and it is deployed. I have others currently under the free option, all in the same resource group.
Do I just upgrade the others to B1 Basic, and it will treat them as one financially?
When reading online I see references to VMs and instances...which confuse me. So I'm not sure if its more complicated than that, requiring additional components and/or configuration?
A thorough explanation would be great.

The cost of Web Apps, or any other app that's part of App Service, is tied to something called App Service Plans. Apps are always associated with one App Service Plan and you are billed for the App Service Plans in your subscription, e.g. you will be billed for the same amount regardless if you have one Web App in a Free tier App Service Plan and one Web App in a Basic tier or if the Basic tier App Service Plan contained 10 Web Apps.
The number of apps you can host within an App Service Plan depends on your requirements and the pricing tier, see the documentation for subscription limits.
Apps can also be freely moved between App Service Plans, so if your apps need to the use the features offered in the Basic tier you can move them into a Basic tier App Service Plan.

Related

App Service Plan and Reservation App Service

I am curious about the difference is when creating an App Service in the reservations for 3 years and just having an App Service Plan which I can add multiple App Services to ?
The cost is much lower than an App Service Plan, but I was wondering if its the exact same concept as an App Service Plan ?
Meaning I can create multiple App Services and have them all in the same App Service Plan ?
Or is the Reservation App Service for a single app alone ?
Yes, you can deploy multiple App Services in the same App Service Plan though it is normal or reserved.
You can also create multiple App Services within the same region or across regions supported by Azure in which this flexibility makes ASEs ideal for horizontal scaling feature.
Features of Normal ASP and Reserved ASP were almost same, and you'll get some discount on the Reserved ASP cost.
In the Middle of Reserved ASP, you can increase the Number of instances in that ASP based on your requirement or load balancing.
Refer to Azure App Service Pricing doc and How Reservation works in Azure App Service for more information.

What is different azure function app and app service plan?

What is different azure function app and app service plan ?
I think;
Function app is a core layer - where hosted code and execute
App service plan is higher layer of function app - it can be covering function app. For example, it can cover network layer for function app.
But I see in function app has Vnet integration feature and app service plan has virtual network integration too.
I am confused with it.
What is different azure function app and app service plan in network part ?
p/s: I have created virtual network and assign app service plan to that VNET. then I deployed a function app into app service, but this function does not stay in that VNET. how to verify that ?
There are a few things that will help you to understand this little better and you can also verify through Azure Portal. After all, it's all the hosting plan you want to use.
App Service Plan: This is something a root consumption plan you are paying for. kind of resources you want for much of your work. (I would say - choose this wisely)
Function App: This resource has 3-4 different kinds of hosting plan options
(i) Consumption plan (ii) Premium Plan (iii) App Service Plan (iV) ASE.
now, if you have notice - App Service Plan (item iii) is also one of the options. Not necessary that is only an option. So, in other words; Function App can sit outside the App Service plan (like Consumption plan) where it will deploy separately.
At this moment Question might come - what could be a difference. for that visit Microsoft's well-documented link here which states you are paying and resources are getting allocated during the function real-use whereas, App Service Plan uses your own app Dedicated service plan which you already have decided a lot earlier in the cycle.
Your last question - How do we confirm? well, Open App Service Plan inside Azure Portal and there is an essential section where you will find App(s)/ Slot(s). Click on that you will see how many app services/ function apps already sharing that specific App Service Plan like below:
An App Service Plan is the environment which you pay for.
You can then run different workloads including function apps within the App Service Plan. Grouping workloads in a single App Service Plan can save you money compared with having different App Service Plans for each App Function.
The VNET configuration is both at the App Service Plan and the App Service / Function App level. You do not necessarily want all App Services / Function Apps in the same App Service Plan to run on the same VNET.
The consumption plan is based on function runtime, which means only when your function is running else no.
Premium plan you need to specify prewarmed instances that will always be online. so it's kind of minimum fixed billing and it can go beyond if you use it for resources.
The app service plan (Dedicated plan) is Running function like other apps. It will use the same app service plan.
Refer to this documentation for more details.

Can Azure Functions live on the same App Service as a WebAPI, for example?

I want to consolidate a collection of Azure Functions and a WebAPI on the same App Service. Can't figure out the best way to go about it and be able to manage both solutions in the portal.
An App Service plan supports multiple resources deployed to it: Function apps, Api apps, Web apps, etc. There shouldn't be any issue doing this.
Each app deployed to a service plan will get its own uri and local storage, but will share the app service plan's capacity (e.g. if you have an S2 plan running on 3 instances, all of your deployed apps to that App Service plan will run on all 3 instances, utilizing the resources of the S2-based instances).
Instances of the same app share disk resources. Your different apps are isolated from each other.
You can't run them in the same site (ie, with the same URL like mysite.azurewebsites.net). Although you could use Function Proxies to forward out part of the function url namespace to the WebAPI. Your azure function and WebAPI would be 2 separate entities in the portal, similar to having 2 separate WebAPIs.
As others have said, this is possible.
For the function app, you need to choose "app service plan", not "consumption based".
You also need to have an app service plan which isn't on the Free or Shared tier. i.e. it has to be a minimum of B1 - no minutes/hour usage limits.

Set up an azure botframework application to be 'always on'

When I configure a new azure bot service application on Azure, it creates it as a consumption pricing tier application. This seems to possibly be causing issues on cold starts where the application takes quite a long time (in comparison to a running application) to respond.
I would like to configure the application to use a resource group that is on an basic plan so that I can make it 'always on'.
Is there a setting I am missing or is this just not possible at this time?
Edit: I am OK with paying for the ability to enable "Always On" like I can with the typical Azure Function/web apps. At this point I do not see a way to configure a bot application to allow it to be anything but a consumption based application.
Edit2: clarified that this is an azure bot service application
Are you creating an SDK bot, or an Azure Bot Service bot? SDK bots are just web applications, and can be in any consumption pricing plan (including Always On): https://learn.microsoft.com/en-us/azure/app-service-web/web-sites-configure
Azure Bot Service bots are function applications. They should also be provisional within an App Service plan: https://learn.microsoft.com/en-us/azure/azure-functions/functions-scale
Edit:
From above documentation: you will need to setup a VM to host an Azure Function as Always On.
App Service plan
In the App Service plan, your function apps run on dedicated VMs on
Basic, Standard, and Premium SKUs, similar to Web Apps. Dedicated VMs
are allocated to your App Service apps, which means the functions host
is always running. Consider an App Service plan in the following
cases: You have existing, underutilized VMs that are already running
other App Service instances. You expect your function apps to run
continuously, or nearly continuously. You need more CPU or memory
options than what is provided on the Consumption plan. You need to run
longer than the maximum execution time allowed on the Consumption
plan. A VM decouples cost from both runtime and memory size. As a
result, you won't pay more than the cost of the VM instance that you
allocate. For details about how the App Service plan works, see the
Azure App Service plans in-depth overview.

How does scaling out work in Azure App Services?

I am trying to wrap my head around the concept of Azure App Service plan and Azure App Services, with no luck.
My understanding is that an App Service Plan defines the capacity and the pricing, all apps assigned to a specific App Service plan will share the same resources, is that right?
If that is right, then what is the benefit of the scaling-out? If the scale out will create more instances of the same app which at the end will be hosted on the same App Service Plan (sharing the same resources)?
I read almost all the official and non-official documentation about Azure App Service plan and App Services but couldn't find an answer to this question, they are all saying that scaling is working on the app level (not the app service plan) and at the same time saying that the apps assigned to the same app service plan are actually sharing the same resources, so what is the benefit of the scale-out feature?
Regards,
My understanding is that an App Service Plan defines the capacity and
the pricing, all apps assigned to a specific App Service plan will
share the same resources, is that right?
Yes.
If that is right, then what is the benefit of the scaling-out? If the
scale out will create more instances of the same app which at the end
will be hosted on the same App Service Plan (sharing the same
resources)?
No one forces you to put all your apps on the same App Service Plan. When you create an App you put it into some App Service Plan. All the Apps on that (and only that) App Service Plan would share resources, but you could create a lot of App Service Plans.
Also, when you scale out you create more PaaS instances of the VM's hosting your App, so when you scale out you are not getting another App Pool in the same IIS, you are getting another App Pool on the other IIS on the other VM.
edit: to clarify the comment, the App Service Plan is a collection of Windows VM's with IIS installed on them. All the Apps assigned to that App Service Plan are hosted on ALL the instances of those VM's, when you scale out or scale up you change the number or capacity of those VM's.
There's no temporary App Service Plan. You pay for the Service Plan, not for the App. Apps cost nothing, they are simply consuming resources on the Service Plan, its the Service Plan that "eats" money. You are getting billed according to the Service Plan tier and scale.
Pricing is based on the size and number of VM instances you run.
As I know, the scale out would create multiple copies of your web app and add a Load Balance to distribute the requests between them automatically. And you don't need to configure the load balance separately by yourself.
Assuming that you create a website (a windows server with IIS), then your website would has the App Pool which defines the available resources for your website. Each instance could handle a limited number of requests, in order to reduce the response time, you could scale out your website into multiple instances, then each web-server could split the work load. For more details, you could refer to Scaling Up and Scaling Out in Windows Azure Web Sites and this tutorial for a better understanding of Azure Web App auto scale.
As #4c74356b41 said when you scale out you are going to get more physical resources (i.e VM's with more compute, memory and storage). Also one correction as per Azure documentation, scale out is going to effect all apps in app service plan. see below link and the point to note is
"The scale settings take only seconds to apply and affect all apps in your App Service plan. They do not require you to change your code or redeploy your application" -
https://azure.microsoft.com/en-us/documentation/articles/web-sites-scale/
The docs answer this clearly: https://learn.microsoft.com/en-us/azure/app-service/overview-hosting-plans#how-does-my-app-run-and-scale
In this way, the App Service plan is the scale unit of the App Service apps. If the plan is configured to run five VM instances, then all apps in the plan run on all five instances. If the plan is configured for autoscaling, then all apps in the plan are scaled out together based on the autoscale settings.

Resources