TLDR: A place where you can deploy and run your web-app. Of course there is a ton of things one can configure but that’s the main reason why App Service exists. Azure will give you some space, where you upload your web-application files, and a public url where your application can be reached. There is a free tier available, so you can experiment all you want without paying a penny!
What’s so cool with it?
Well, many things, to name a few:
- You can deploy directly from Visual Studio. You can have your app up & running in less than a minute. It goes without saying that pipeline deploys are also fully supported.
- You can chose Windows or Linux OS and shared ($) or isolated ($$$) host.
- In my eyes, it really is a value for money choice. You get some space on a Linux machine, with 1 vCore, 1.75GB RAM & 10GB of storage space for less than 15$/month.
- Fully integrated with Application Insights where you can monitor everything.
- You can avoid the cold starts by turning on the Always On-flag.
- You can deploy containerized apps. Personally, I always try to exhaust the App Service option, before starting to think about Kubernetes.
- Scalable to infinity. Your app will go full Goliath-mode if needed, and will return to David-mode when the dust settles.
What’s the catch?
- Not really a disadvantage, but if your high traffic comes & goes, and you don’t have the need to be stateful forever, then you can get by much cheaper with Azure Functions.
- Smart scaling apps like KEDA is not available for App Services. I would like to be able to scale proactively and not only rely on CPU & Memory exhaustion.
- The cool staging-environment feature is only available in the (slightly) more expensive plans Standard, Premium, or Isolated.
Verdict
It is my go to for development-purposes. They are light, easy and most importantly FREE, until you need to do serious stuff. However, like everything else, App Services is not a Swiss knife and not the suitable solution for every scenario. The fact that you can do most things with App Services, doesn’t mean that you should. I would use an App Service for a stateful web-application, but I would definitely prefer an Azure Function for a simple stateless Restful API.
Disclaimer 1: URLs last checked 2022-10-27. Drop me a line if you find a broken link please.
Disclaimer 2: It’s never my intention to create a parallel wiki, I try to write my own experiences and the way I see things, not copy official documentation or Stack Overflow.