Yesterday, I talked about the hosting option for front-end apps that don’t require server rendering. Azure Static Web Apps takes care of that. Today, we’ll explore a hosting offering that does support server rendering – Azure App Service!
Disclaimer: I am a contributor to some of these docs and their sample code. I am also a consumer of their docs. My PHP + Azure client involves portals in Azure App Service, and I have spent a lot of time looking into Azure App Service Environments back when I was a web dev who had to deploy to them. Azure App Service and I have grown together.
What is Azure App Service?
Suppose you have a Django (Python) application or maybe a Ruby on Rails application. Maybe you have a Java or .NET application that you want to show. Or perhaps you have a containerized application. These are all applications that rely on server rendering. Azure App Service can host your application and manage the underlying hosting stack.
There are a variety of tiers to fulfill your geolocation, compute, and memory needs. From a free tier to production-level to tiers that support advanced networking and isolated requirements, there are a variety of pricing tiers to meet your needs. Your web apps in Azure App Service can be hosted in Linux or Windows environments.
Runtime Language Options
With regards to the specific languages and frameworks including .NET, Java, Python, Ruby, PHP, and Node, Azure App Service takes care of picking the appropriate image to host your application. It works with the power of Kudu and handles builds with Oryx.
You can also bring your own container to Azure App Service, and multi-containers is in preview!
Deployment Options
You can publish and deploy your app through options such as FTP, Visual Studio, Visual Studio Code, or Git integration. When you create a web app in Azure App Service, you can set up GitHub Actions integration on creation for many of the runtimes. Post-creation, Azure App Service does support CI/CD with GitHub, Azure DevOps, Bitbucket, and many others.
Microsoft has a guide for deployment best practices when working with Azure App Services.
Note: The docs have all sorts of guidance when working with their services, so be sure to search the side bar in the Azure App Service section for your needs.
What are App Service Environments?
Azure App Service Environments (ASEs) allow you to run Azure App Service in an isolated and dedicated environment. ASEs are deployed in a single tenant and run on your virtual network. If you have an app that has high resource requirements (memory, requests, and scaling) or requires isolation via networking, ASEs are appropriate. They can host Windows or Linux apps as well as Functions and Logic apps.
They have evolved a lot since the v1 I used. If you want to know how v3 differs from previous versions of ASEs, check out this list of feature differences.
To learn more about ASEv3, check out this Azure Friday episode with an introduction to App Service Environments v3.
Additional Resources
You’ve heard a lot about what Azure App Service can do. Now go on and try it out! These are some resources to help you get started using Azure App Service today.
- Microsoft Learn: AZ-204: Create Azure App Service web apps (learning path)
- Microsoft Learn: Deploy a website to Azure App Service (learning path)
- Microsoft Learn: Choose the right Azure service for deploying your Java application (module)
- Microsoft Learn: Host a web application with Azure App Service (module)
- Build your first web app with Microsoft Azure
- Azure App Service Quickstarts:
- ASP.NET/.NET Core
- Java – including JBoss EAP, Tomcat, and Java SE
- Ruby on Rails
- PHP
- Python – including Django and Flask
- Node
- Custom Containers
- Multi-containers