Difference between Azure App Services and Web App for Containers - azure

I was looking to use Azure App Services and noticed Azure now offers Web App for Containers, now I wonder what's the difference between them? And couple more questions come to my mind
Assuming I choose Web App for Containers, who is going to manage the container updates?
Is the deployment differs from App Services to Web App for Containers, from application perspective?

Web App for Containers is one of the offerings in Azure App Service. It allows you to deploy containerized applications on Linux and Windows (the latter is in preview).
The platform automatically takes care of OS patching, capacity provisioning, and load balancing. But, the container updates are up to you.
The deployment differs in that you will be deploying your application inside a Docker container instead of deploying directly like you do in a Web App.

Related

How many different ways are there to deploy a website under azure portal?

Good day dear community,
i have a smaller project where i need to search for different possibilities to deploy a website under azure portal.
Personally i found 4 different ways how to do it.
App services
App functions Serverless (which i dont understand how to deploy there a website)
Install a VM and then deploy a website
Use docker to deploy your code
Question:
Are there any more ways to deploy a website under azure and can somebody explain the deployment of websites with serverless as i dont understand how to publish a website there. i just managed to get the httptriggers and i am confused with that.
Thanks in advance
sorry for any spelling mistakes.
You can deploy to a website to a VM. But first you will have to setup the VM to be a web server. There are many different pre-configured images with either Linux or Windows OS. This will require you manage the OS of the VM.
An Azure App Service will abstract the OS and VM away from you. The OS will be managed for you and you can configure many settings through the Azure Portal. There are different plans that allow you to use more compute and/or memory. You can also setup Authentication through the portal. You can also elect to deploy you website inside a container to an App Service.
There are also Azure Function Apps which can be used. Azure Function Apps are not intended to serve as the backend to a website, but it can be. These are meant to serve only one purpose, not many like the backend of a whole website ( for example, you might use a different function app to serve content each page of a website instead of just one app service having multiple endpoints serving all pages of a website). With Azure function apps, you can deploy in a container or not in a container.
I am not sure what you mean by number 4, Container over docker. You can deploy a docker container an App Service or a Function App. You can deploy the container to docker hub or azure container registry (to name a couple), but that will not deploy your website so that it is accessible.

Limitations of Web App for Containers in Azure

We are planning to develop a new web application in Java or .NET. The application should be containerized using docker in Azure cloud platform and it should be scalable (user base at pick is about 80-90). Since, there is no need to develop a Microservice based application we have have planned to develop REST services in back end and Angular JS in front end as the application architecture.The Service back end will be deployed in web server and will run in one container and the Angular JS front end in another.
In this context will Web App for container in Azure App service would be the right choice?
What are the limitations of Web App for containers?
Is there any limitations with Web App for containers in Azure App service if the application is developed using Java Spring Boot?
Yes, it's a good choice to develop a web application in Java or .NET and containerized it for deployment easier.
The limitation, please refer to the section App Service limits of the offical document Azure subscription and service limits, quotas, and constraints.
And there is not any limits for using Java Spring Boot with WebApp for container on Linux. it's also same as do developing on Docker.
Additionally, just considered for developing REST service in back, I recommended you may use Azure Functions in Java that I think easier.
If you want to run just Spring Boot, you can also use the "Java SE" offering which is available for Windows or Linux in App Service. In this case you just deploy your code and you don't need to worry about managing containers, like updating the JRE version, etc.
However, if you are interested in deploying a containerized app, you can use Windows Containers or Linux Containers in Azure App Service.

Do we need iis server installed in azure cloud to host a web app in azure

If I need to host a web app in azure cloud, do I need to install windows server and iis in a VM or is there any other option like the web service running separately?
I have read azure app service while googled, if it's been used, Will it serve all the purpose of an iis?
In most scenarios you do not have to host a VM with IIS to host a web app in Azure. You can, but unless you want or need to manually manage a VM because you for instance need to install software on the server, there are simpler hosting alternatives.
Have a look at Azure App Service
Azure App Service is a service for hosting web applications, REST APIs, and mobile back ends. You can develop in your favorite language, be it .NET, .NET Core, Java, Ruby, Node.js, PHP, or Python. Applications run and scale with ease on both Windows and Linux-based environments.
EDIT:
As far as monitoring goes: there is a lot available to monitor the performance of an App Service. For instance:
Application Insights
Monitor apps in Azure App Service
EDIT2:
Will it serve all the purpose of an iis?
Are you looking for a specific purpose? Azure App Service brings you a LOT of possibilities. Sure, it's PaaS and therefore you're bound by the options available for the specific service. But you're also getting a lot of extra's IIS doesn't provide (out of the box). And when you're running a website that doesn't require you to install any COM stuff or something specific like that, there's nothing App Service doesn't provide.

Difference between Azure Container Service and Web App for Containers

What is the difference between Azure Container Service and Web App for Containers?
They both seem to offer a fully managed platform on which we can deploy containers. I feel that Web App for Containers must be offering something more, but I don't see it. I've read the Azure Container Service FAQ and the Web App for Containers intro page, but the difference is not obvious to me.
Web App for Containers lets you run your custom Docker container which hosts your Web Application. By default the Web App Service with Linux OS provides built-in Docker images like PHP 7.0 and Node.js 4.5. But by following the instructions from this webpage you can also host your custom docker images which allows you to define your own SW-Stack. The limitation is that you can only deploy one docker image to an App Service. You can scale the App Service to use multiple instances, but each instance will have the same docker image deployed. So this allows you to use Docker as a Service, but isn't intended for deploying Microservices.
Container Services (ACS), Kubernetes Service (AKS) and Service Fabric allow you to deploy and manage multiple (different) Docker containers which might also need to communicate with each other. Let's say you implement a shopping website and want to build your web application based on a Microservices architecture. You end up having one Service (= container) which is used for registration & login of users and another Service which is used for the visitors' shopping carts and purchasing items. Additionally you have many further small services for all the other needed tasks. Because the purchasing service is used more frequently than the sign-up/sign-in service, you will need, for example, 6 instances of the sign-up/sign-in service and 12 instances of the cart service. Basically, ACS, AKS and Service Fabric let you deploy and manage all those different Microservices.
If you want to know the difference between ACS/AKS and Service Fabric you might want to have a look here.

Azure Virtual Machine as Worker Roles inside an App Service Environment

I would like to run Virtual Machines as Worker Role inside an Azure App Service Environment. I think I've tried and read everything. Is this scenario supported at all?
The short answer is no. Azure VM's, worker roles (cloud services), and App Services are three different hosting offerings.
Virtual Machines are an Infrastructure as a Service (IaaS) solution. Think of it as your own server in the cloud. It is the most most flexible option. However, you are responsible for managing and patching it.
Cloud Services are a Platform as as Service (PaaS). Your concerns are limited to building and deploying your application. Microsoft manages updating the underlying VM.
App Services are a higher level of PaaS. Specifically, you can think of Web Apps (formerly Web Sites) as a hosted IIS. You have the least amount of control compared to the other platform offerings, but it is the easiest way to get started.
I would suggest trying to run your application first in an App Service, then moving to a cloud service if you need more control, and finally to a VM when even more flexibility is required.
More information:
http://robertgreiner.com/2014/03/windows-azure-iaas-paas-saas-overview
http://blogs.msdn.com/b/hanuk/archive/2013/12/03/which-windows-azure-cloud-architecture-paas-or-iaas.aspx

Resources