32

I'm quite new to Azure, trying to learn how to explore what are the possibilities of publishing a website on azure, to be a bit more at ease to do the the AZ-204.

On the azure dashboard, I can create "Azure web apps", "Azure app service"(not mentionning CI/CD and serverless). enter image description here

What are the difference between the two? I initially taught the azure web app was code driven(connected to git) and "App Service" one was docker-based.

But for both option, when you move to next step, you can choose if you publish the code or the docker container:

enter image description here

Can some body explain what is the difference between the two? And/or the most important advantage of one over the other?

I've searched for a while, but it's not the same product name everytime and I'm really sure it's still the same product.

J4N
  • 19,480
  • 39
  • 187
  • 340
  • 1
    Technically, [Web App Service](https://azure.microsoft.com/en-in/services/app-service/web/) is a part of [App Service](https://azure.microsoft.com/en-in/services/app-service/). (Just look at the URLs / navigation path.) Moreover, when you create a web app it will basically create an "app service plan". – brc-dd Mar 03 '21 at 16:25
  • @brc-dd Okay thanks, but why does it asks me to create one or the other? I guess there should be some usecases where one is doing more than the other? – J4N Mar 03 '21 at 19:45
  • Where are you getting an option to create an "app service"? There is no such thing on the marketplace. When you search app service on the portal it will lead you to already created app services, which are the ones created when you create a Web App or Static Web App and their variations (like Bot, with Database - SQL/PostgreSQL, and for containers). Please comment the create link of App Service if you are seeing it. Create link is like this: `https://portal.azure.com/#create/Microsoft.WebSite`. – brc-dd Mar 04 '21 at 04:09
  • I saw your comment on an answer, the preference is yours whether you want to create a container or directly deploy using code. There are certain benefits of using container which you can easily find on the internet. Moreover, with regard to my previous comment, when you try [deploying an ASP.NET application from VS itself](https://learn.microsoft.com/en-us/aspnet/core/tutorials/publish-to-azure-webapp-using-vs), it will show you an option to create an App Service, but what it is creating is basically a Web App only. Although I can't find one in the portal itself. – brc-dd Mar 04 '21 at 04:22
  • 1
    **TL;DR** - Use Web App (`Microsoft.WebSite`) if you have created an ASP.NET Core Web Application. Use API App (`Microsoft.ApiApp`) if you have created an ASP.NET Core Web API. Both will create an App Service Plan for you. Deploy using code if you have nothing environment specific in your code and don't want to write Docker configs, else deploy using container if you are comfortable in doing the latter. – brc-dd Mar 04 '21 at 04:28
  • PS: Now I reread your question, the thing that you are being shown on your dashboard are `Microsoft.WebSite` (left) and `Microsoft.AppSvcLinux` (right). Your title is deceptive. It should be _what is the difference between "[Web App Service](https://azure.microsoft.com/en-in/services/app-service/web/)" and "[App Service - Web App for Containers](https://azure.microsoft.com/en-in/services/app-service/containers/)"_. – brc-dd Mar 04 '21 at 05:04
  • One of the differences I'm able to find is that in the right one, when you will create it, by default the selector will be on "Docker Container" with option for "Windows" as OS disabled. But you can then select "Code", option for "Windows" will unlock, select that, and again select "Docker Container", it will work xD. – brc-dd Mar 04 '21 at 05:20
  • If only focus on your title, we should know what is azure web app and azure app service first, and then we could know what's the difference. As @brc-dd said above, azure web app is a kind of service contained in azure app service, except azure web app, there are api app, mobile app, just what Sajeetharan said below. I think you've read some docs on it, and I also had the same question as you. BTW, there's another concept called 'app service plan', it's needed when creating a web app in azure, because this plan decides where your web app is deployed, how much you need to pay etc. Hope it helps – Tiny Wang Mar 04 '21 at 05:55

5 Answers5

11

There is no difference. To quote the documentation:

The only difference between the three app types (API, web, mobile) is the name and icon used for them in the Azure portal.

Behind the scene it is already using app service all the time. If you consider WebApp and WebApp for containers is a part of Appservice, you don't actually pay for webApps, but you pay for the Appservice plan!

Sajeetharan
  • 216,225
  • 63
  • 350
  • 396
  • 2
    I think there is a misunderstanding, I'm not asking the difference between API, web and mobile, but between "App service" and "azure web app". – J4N Mar 03 '21 at 19:42
  • Still the answer , there is no difference, you could consider AppService as a parent here and then azure web app as a part of it to host your apps – Sajeetharan Mar 04 '21 at 01:56
  • 6
    Okay, but what is the point of having two options here then? There has to be some differences even if it uses the same component under the hood? – J4N Mar 04 '21 at 05:58
  • Web app for containers is about hosting your applicaton as a container – Sajeetharan Mar 04 '21 at 06:00
  • 7
    @J4N As of now there is no difference, earlier there was. Azure Web Apps (formerly Azure Websites) had no support for Linux nor Containers. Then Microsoft planned on including them also, they did this though a new solution - Web App for Containers (internally, App Service Linux). This was in preview for some time, and was made generally available on September 2017. Later they tried working on Windows containers. This was in private preview for some time. And then all three were merged to Azure Web App Service. – brc-dd Mar 04 '21 at 06:24
  • They probably haven't removed it from the marketplace yet because certain enterprise licenses extend up to 3 years. Removing the functionality may have broken their solutions. Although when you visit the overview section of Web App for Containers, it shows a link that redirects you to try App Service (Web). And all the official documentation now creates Azure Web App Service using `az webapp config container ...`. – brc-dd Mar 04 '21 at 06:29
  • 1
    @Sajeetharan do you mind to add a reference to that quote from the online documentation? – Alberto De Caro Dec 26 '21 at 19:51
3

If you go to the Azure Web Apps site and click on the Documentation tab, it will take you to the MS Documentation for App Service Overview. Furthermore take a look at the MS Documentation Choose an Azure compute service for your application. This is a decision flowchart to host your application code. Azure Web Apps does not appear in the decision tree. Next take a look at the following subtopic Create and deploy web app service with Azure CLI command. The CLI command is as follows: "az webapp up --name <your_app_name> --logs --launch-browser". A little confusing but not if you look at the following documentation Azure CLI Documentation: Azure Web Apps, which shows the following commands:

az staticwebapp - Manage static apps.
az webapp - Manage web apps.

Finally, look at the following MS Documentation: CLI samples for Azure App Service. This is a list of numerous scripts for creating an Azure Service Plan and App Service. They ALL use either "az staticwebapp" or "az webapp". So the documentation use the term "Azure App Service" but the CLI command does not. There is no separate MS product for Azure Web Apps!

Ananize Scott
  • 901
  • 1
  • 8
  • 11
1

Web app is a part of App service.

There are 4 types of App Services:

  1. Web App – used for hosting websites and web applications (previously Azure Websites)
  2. API App – used for hosting the RESTful APIs
  3. Logic App – used for business process automation, system integration and sharing data across clouds
  4. Mobile App – used for hosting mobile app back ends (previously delivered by Azure Mobile services)
Jeremy Caney
  • 7,102
  • 69
  • 48
  • 77
1

'Azure Web App' versus 'Azure App Service'

Microsoft keeps creating confusion by mixing these names and services together, which cross-over into numerous definitions inside and outside of Microsoft and their Azure cloud platform.

Azure App Services is a specific type of Azure cloud service used to host web applications and non-web application types stored and displayed on their cloud platform. It includes hosting of web apps, web api's, and other online applications that use the Http protocol. These all becomes Azure "applications" or "app services" once hosted there. Because "services" include lots of other features, like load balancing, memory management, security, CI/CD, etc. it becomes more than just a service application and more of a broader hosting service definition or wrapper around larger cloud concepts. When they start talking about it as a Web App then confusion sets in.

Azure Web Apps is NOT A SERVICE or even application but a word for a subtype of an HTTP application you can host under Azure App Services that forms a type of application hosted there. A "web application" in Microsoft's world means any application that shares web pages with viewers versus a Web API that shared structured data as an API endpoint.

Code versus Container type Web API's is another subtype of Azure App Service and controls how the VM or Host manages the servers and code uploaded to that service. Many choose "code" for web applications and containers for web api's to manange microservices, but Azure allows you the flexibility to creatively change those designs.

Stokely
  • 12,444
  • 2
  • 35
  • 23
0

Azure runs App Services on a fully managed set of virtual machines in either a dedicated or shared mode, based on your App Service Plan. ... Web App – used for hosting websites and web applications (previously Azure Websites) API App – used for hosting the RESTful APIs.

  • 1
    Not sure to understand the difference? If I've an Asp.Net Core website,for what I see, I can use the two, as container or as code, so what is the difference? When should I use which? – J4N Mar 03 '21 at 19:44