Azure App Service has garnered immense popularity as an HTTP-based service that excels in hosting web applications, REST APIs, and mobile backends. This comprehensive platform allows developers to code in their preferred language, ranging from .NET and .NET Core to Java, Node.js, PHP, and Python. With the ability to effortlessly run and scale applications on both Windows and Linux-based environments, Azure App Service adds extensive value to your application through its integration with Microsoft Azure.
The Key Advantages of App Service
Versatility and Language Support
App Service offers incomparable support for a wide range of languages and frameworks, including ASP.NET, ASP.NET Core, Java, Ruby, Node.js, PHP, and Python. It even allows the execution of PowerShell scripts and other executables as background services.
Effortless Management
App Service optimizes and streamlines the management process by automatically patching and maintaining the operating systems and language frameworks for you. This means you can focus on writing exceptional applications while Azure handles the underlying platform.
Containerization and Docker
App Service empowers developers to containerize their applications and easily host custom Windows or Linux containers. It facilitates the seamless deployment of multi-container apps using Docker Compose. Migrating Docker skills to App Service is a smooth, hassle-free process.
DevOps Integration
With App Service, setting up continuous integration and deployment is a breeze. Benefit from the effortless integration of Azure DevOps, GitHub, BitBucket, Docker Hub, or Azure Container Registry. Easily promote updates through test and staging environments. Manage your applications using Azure PowerShell or the cross-platform command-line interface (CLI).
Global Scalability and High Availability
App Service grants you the freedom to manually or automatically scale your applications. Host your apps anywhere within Microsoft’s global datacenters, assuring high availability thanks to the reliable App Service service level agreement (SLA).
Seamless Integration with SaaS Platforms and On-Premises Data
App Service offers seamless integration capabilities with a vast array of connectors for your enterprise systems (e.g., SAP), SaaS services (e.g., Salesforce), and internet services (e.g., Facebook). Tap into the power of Hybrid Connections and Azure Virtual Networks to access on-premises data.
Robust Security and Compliance
Take advantage of the extensive security and compliance measures provided by App Service. It is ISO, SOC, and PCI compliant, ensures IP address restrictions, and offers managed service identities. Additionally, App Service helps prevent subdomain takeovers.
Simplified Authentication
App Service simplifies user authentication through its built-in authentication component. Authenticate users using Azure Active Directory, Google, Facebook, Twitter, or Microsoft accounts.
Application Templates
Explore a vast collection of application templates available on the Azure Marketplace, including popular options like WordPress, Joomla, and Drupal. These templates simplify and accelerate the application development process.
Integrated Development with Visual Studio
Leverage the dedication tools integrated within Visual Studio and Visual Studio Code. These powerful tools significantly streamline the creation, deployment, and debugging of your applications.
API and Mobile Features
App Service not only supports turn-key CORS for RESTful API scenarios but also simplifies mobile app development. Benefit from built-in features like seamless authentication, offline data sync, and push notifications to enhance your mobile app experience.
Serverless Code Execution
Run your code on-demand without explicit provisioning or infrastructure management. With App Service, you only pay for the compute time your code actually utilizes (consider Azure Functions).
Apart from App Service, Azure offers various other services for hosting websites and web applications. App Service remains the top choice for most scenarios, while Azure Spring Apps and Service Fabric suit microservice architecture requirements. If you require greater control over the virtual machines running your code, Azure Virtual Machines is worth considering. For more detailed information on selecting among these Azure services, please refer to the Azure App Service, Virtual Machines, Service Fabric, and Cloud Services comparison guide.
App Service on Linux
App Service goes beyond Windows environments and excels in hosting web apps natively on Linux. Supported application stacks enable the seamless running of custom Linux containers, also known as Web App for Containers.
Built-in Languages and Frameworks
App Service on Linux provides support for several language-specific built-in images. Deploy your code hassle-free. Supported languages include Node.js, Java (8, 11, and 17), Tomcat, PHP, Python, .NET Core, and Ruby. Use the command “az webapp list-runtimes -os linux” to explore the latest languages and supported versions. In the event that the runtime your application requires is not supported within the built-in images, you can still deploy it using a custom container.
Do note that outdated runtimes are periodically removed from the Web Apps Create and Configuration blades in the Azure portal. This approach ensures that deprecated runtimes or those with significant vulnerabilities are no longer displayed, promoting the use of the latest and most successful runtimes.
When an outdated runtime becomes hidden from the portal, your existing sites that use that particular version will continue to operate normally. If a runtime is fully removed from the App Service platform, your Azure subscription owner(s) will receive advanced notice via email about the impending removal.
Should you need to create another web app using an outdated runtime version that is no longer present on the portal, please consult the language configuration guides for detailed instructions on how to retrieve the runtime version of your site. You have the option to use the Azure CLI to create a new site with the same runtime or resort to the “Export Template” button on the web app blade within the Azure portal. This button downloads an ARM template of your site that can be reused to deploy a new site featuring the same runtime and configuration.
Limitations
Please be aware of the following limitations associated with App Service on Linux:
- Shared pricing tier is not compatible with App Service on Linux.
- Features available for Linux apps are solely displayed within the Azure portal. As additional features are enabled, they will be activated on the portal.
- When deploying your code and content using built-in images, a storage volume is allocated for web content, backed by Azure Storage. It is essential to note that the disk latency of this volume is higher and more variable compared to the latency of the container filesystem. If your applications necessitate heavy read-only access to content files, consider the custom container option as it places files within the container filesystem rather than the content volume.
Next Steps
Get started by creating your first web app on Azure App Service.