Reputation: 145
I would like to understand what Azure does while creating a Web App Bot in Portal.
An Azure Bot Service Bot deployed to an Azure App Service Web App...
After creating a bot with Azure Bot Service i got the following ressources:
What's the difference or the connection between the resources (Web App Bot and App Service)?
The code should be located in Web App Bot right? Here the magic happens, development, channels, etc.
The user is interacting with the App Service throw an HTTP call. What happens if App Service receives the call?
And why I could configure CD on the App Service instead of Web App Bot?
From my understanding, the Web App Bot is the "locale" Bot I'm publishing to App Service to make him available?
Can anyone help me out to get a clear understanding?
Upvotes: 0
Views: 867
Reputation: 722
I think Peter Bons' accepted answer is so much over-simplified that it is already misleading. Azure's App Service Plan is not (really) a web server.
My answer is also going to be simplified, but I hope I'll be able to describe the real situation somewhat better.
To answer your question, there are two main issues/topics to consider:
Let's discuss the individual points.
Which infrastructure/software/components does a web application need in order to work
First of all, your chatbot is a web application. This means it is a program that exposes an API with certain routes, and each route is connected to a function that does something useful. Incoming HTTP requests, handled by the web server that hosts the web application, trigger API routes, which execute their correspondingly linked functions. Each web application API route returns the value of the executed function to the web server, and the server sends it wherever it belongs, we do not really care about it right now. Morevoer, each function triggered by an API route can also have side-effects (i.e. writing to a DB, logging, etc).
Secondly, we see that for this to happen, your web application has to be hosted in a web server. The web server receives incoming requests, handles them, forwards them to the corresponding web app API route, collects return values, sends them over, delivers CSS content, etc. It also will take care of having an IP address and/or URL that the user can access via a web browser (this is not really done by the web server, but it doesn't matter now. FWIW, important is to know that, once working, the URL endpoint will be a property of the web server).
And lastly, this web server, which is a program, runs on a machine. A machine that has a certain OS, it has available ports, a disk, etc. It is a program and, as such, it runs on infrastructure.
Now that we understand the basic components playing a role in the functioning of a web app, let's see:
How does Microsoft group and bundle all these necessary components into Azure Services
Azure Bot
is the web app. That is pretty easy, one-to-one.App Service
is the web server that hosts your chatbot i.e. web app. (and this is the main point that is wrong with Peter Bons' answer). It will handle requests, present an endpoint accessible via web browser etc.App Service Plan
is the Azure service that actually provisions the infrastructure on which the web server is going to run. That means it will provision a certain VM with certain computing characteristics, OS Version, etc. Moreover, because you will be charged by running a web application, the App Service Plan
also contains the pricing schema by which you are going to be charged for your web app.I hope this clarifies it a little bit.
Upvotes: 0
Reputation: 29711
Let us break down the different components involved.
The Web Bot (which is a web application) needs a web site to be deployed to. That is the App Service. That web site needs a web server to run on. That is the App Service Plan.
The Web Bot is the main part which you configure. The other components are infrastructure components and you don't need to worry about them much.
Upvotes: 2
Reputation: 18387
Your bot is actually an API, which will be hosted on App Service. So in case your bot receives many requests, You'll scale App Service to handle that.
Web App Bot is where you enable and configure the channels your bot will work with (e.g. Direct Line for voice)
Upvotes: 2