Limitations of Web App for Containers in Azure - azure-web-app-service

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.

Related

Why should I prefer Azure App Service over .NET REST Web API?

Why should I use Azure App Service and not just implement a common .NET RESTful Web API backend?
What's the explicit benefit of this service compared to a common .NET RESTful Web API backend hosted on Azure?
An Azure App Service is a place to host your web application or API. Normally when you have a .NET web API you host it behind IIS or something on a virtual machine.
Azure helps you with these common scenarios wit Platform as a Service (PaaS). An App Service completely abstracts the operating system and the way you host your web application.
App Service can host web apps both on Windows and Linux. You can use all kinds of frameworks such as PHP, .NET or Java. You can even host containers without worrying about the host.
A good sample to start with hosting your .NET Web App on Azure App Services can be found here: Quickstart: Create an ASP.NET Core web app in Azure
Yes, there is a huge difference between Azure App Service and .Net REST WebAPI backend on Azure.
Hosting on Azure can be done using two ways
Create your own VM, then install IIS and do all the required stuff
Use AppService Plan
AppService Plan allows you to leverage the powerful functionality of Azure. Here a separate VM is not assigned to you. Azure App service can scale automatically depending upon the Scaling rule which is not present in restful API hosted on Azure VM.
My question blatantly was a stupid Newbie question, and as such, I'm afraid it is non-sense, which I now know by the answers you've given.
I'm currently reading the book "Azure and Xamarin Forms" to learn Xamarin and Azure. Apparently it's outdated. It suggests to "create a Mobile App on Azure". From the book that Mobile App is just a plain App Service running a RESTful Web API with EF, but utilizing completely different namespaces to do so.
My question targeted towards these other namespaces. I didn't see a reason for them.
Apparently, Microsoft noticed the same. There is no "Mobile App" available in the Azure Marketplace anymore.
Azure App Service is a PaaS solution from Microsoft hosted on Azure. You can think of Azure App Service as some sort of "Micrsoft Heroku", because they work on a similar fashion. For many REST Projects, it can save you hours, if not DAYS of development. It has automatic TLS like heroku, but it is hosted on Azure instead of AWS and it can integrate very well with your existing Azure resources. One common pattern is to host the REST API on App Service and use a database service from Azure such as Azure SQL or Cosmos DB (which is a NoSQL service that, from the point of view of your app, it operates as MongoDB, but can be configured to behave as other DBMS).

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 App Services and Web App for Containers

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.

deploying frontend and backend to the same web service on azure

i have a web app that has a seperate nodejs backend and angular frontend.
is it possible to make them both run on the same azure web service? or do i need a stand alone service for each?
my nodejs server is just a light API that feeds my angular app with some statistical data to render it. if it is possible what would be the way to do it?
since i am using typescript i know i need to push my nodejs using zipdeployment and i know i need to use visual studio to push my angular project to azure. but when i want to run both on the same service, how do i do it?
is it possible to make them both run on the same azure web service? or do i need a stand alone service for each?
If you choose the Web App on Windows OS, IIS allows you to configure multiple virtual applications within a single website. For this approach, you could follow Deploying multiple virtual directories to a single Azure Website. Note: The multiple virtual applications would share the same application pool.
As kim mentioned, you pay for the App Service Plan, not for the Web App. You could also host nodejs backend and angular frontend in different web apps under the same app service plan.
For the deployment, you could leverage VS publish wizard or manually upload your files via KUDU or FTP. Moreover, you could also follow Deploy the app section about various approaches for deployment.
You can run multiple web sites in different web apps in Azure so that they are sharing the same Azure App Service.
You can think of the App Service as a virtual machine offering resources for your applications. How many web apps you can run simultaneously depends on the size of your plan, see this page for details.
This way you can deploy them separately, manually or automatically using e.g. VSTS.

Web API app with OWIN 'SystemWeb' on Azure App Service

I am creating app which uses Identity 2.1.0 framework in .NET. I started project in Visual Studio 2015 as Empty Web App (template). Now, I use Microsoft.AspNet.WebApi.Owin, and also Microsoft.Owin.Host.SystemWeb NuGet packages in my project. I understand that OWIN is a specification made to avoid monolithic frameworks and to specify how smaller application components interact with servers. However, I have requirement to deploy to Azure App Services.
I have found examples (blogs) where people deploy OWIN Web Api app as self-hosted to the Azure Cloud Services worker role. But I don't want this, as I don't use Cloud Service.
Since I am using Microsoft.Owin.Host.SystemWeb, am I going to be able to deploy this to Azure App service (which I assume manages internal IIS instance) ?
.NET ecosystem newbie here - so please excuse me for any possible redundancies in the question.
Microsoft.Owin.Host.SystemWeb is designed for hosting in IIS and all Azure App Service web apps are hosted in IIS, so this is exactly what you want (In fact, self-hosting likely won't work with Azure App Service).

Resources