At Microsoft Build 2021, Microsoft just announced the availability of Azure Arc enabled Application services. This allows you to deploy Azure application services such as Azure App Service, Functions, Logic Apps, Event Grid, and API Management anywhere, on-premises, edge locations, or any other cloud provider. This is great if you are building and running cloud-native applications on Azure PaaS services and want them to run outside of Azure without rearchitecting them. With the new Platform-as-a-Service (PaaS) services and the existing Azure Arc enabled Data services, and Azure Arc enabled Kubernetes, you get a powerful platform to run your cloud-native applications in a consistent way in your hybrid or multicloud environment.
To learn more about Azure Arc, check out the Microsoft Docs.
Azure Arc enabled Application Services
These are the new Azure Arc enabled Application services announced at Microsoft Build 2021. These allow you to run Azure PaaS services on-premises and at other cloud providers.
- Azure App Service makes building and managing web applications and APIs easy with a fully managed platform and features like autoscaling, deployment slots, and integrated web authentication.
- Azure Functions makes event-driven programming simple, with state-of-the-art autoscaling, and triggers and bindings to integrate with other Azure services.
- Azure Logic Apps produces automated workflows for integrating apps, data, services, and backend systems with a library of more than 400 connectors.
- Azure Event Grid simplifies event-based applications with a single service for managing the routing of events from any source to any destination.
- Azure API Management provides a unified management experience and full observability across all internal and external APIs.
Azure Arc enabled Data Services
The applications services can be combined with the Azure Arc enabled Data services which inlcuded:
- Azure Arc enabled Azure SQL Managed Instance – Azure Arc enabled SQL Managed Instance has near 100% compatibility with the latest SQL Server database engine, and enables existing SQL Server customers to lift and shift their applications to Azure Arc data services with minimal application and database changes while maintaining data sovereignty. At the same time, SQL Managed Instance includes built-in management capabilities that drastically reduce management overhead.
- Azure Arc enabled Azure PostgreSQL Hyperscale – This is the hyperscale form factor of the Postgres database engine that is available with Azure Arc enabled data services. It is also powered by the Citus extension that enables the hyperscale experience. In this form factor, our customers provide the infrastructure that hosts the systems and operate them.
Azure Arc enabled Infrastructure
Azure Arc enabled infrastructure allows you to manage and operator Linux and Windows Servers as well as Kubernetes clusters outside of Azure.
- Azure Arc enabled Kubernetes – With Azure Arc enabled Kubernetes, you can attach and configure Kubernetes clusters located either inside or outside Azure. You can benefit from Azure Management services such as Azure Monitor, Azure Policy, Azure Defender for Kubernetes, and many more. You can deploy applications and apply configuration using GitOps-based configuration management.
- Azure Arc enabled Servers – enables you to manage your Windows and Linux physical servers and virtual machines hosted outside of Azure, on your corporate network, or other cloud provider. This management experience is designed to be consistent with how you manage native Azure virtual machines. When a hybrid machine is connected to Azure, it becomes a connected machine and is treated as a resource in Azure. That includes an Azure Managed Identity which can be used for Azure AD authentication within your apps.
How to run Azure Application Services anywhere
To run the Azure Application on-premises or at another cloud provider you will need an Azure Arc enabled Kubernetes cluster. On this cluster you can then deploy the Azure Application services. Azure Arc enabled Kubernetes works with any Cloud Native Computing Foundation (CNCF) certified Kubernetes clusters. The Azure Arc team has worked with key industry partners to validate conformance of their Kubernetes distributions with Azure Arc enabled Kubernetes.
How to connect a Kubernetes cluster to Azure using Azure Arc
To connect a Kubernetes cluster using Azure Arc you can follow the following Microsoft Docs article.
Deploy App Service extensions
Now navigate to the Azure Arc enabled Kubernetes cluster you want to deploy the Azure Application services on.
In the navigate to Extensions, and select add.
Select the Azure service you want to enable.
In my case I select Application services, which includes Azure Web Apps, Functions, and Logic Apps.
Click on Create to open the wizard which will help you deploy the Application services extension.
Define the instance name and select a custom location if you already have one. The custom location in an Azure Arc enabled Kubernetes cluster. This can then be used instead of an Azure region when you deploy a service.
Now you can find your new custom location in the custom locations list in the Azure Arc Center. You can see, in my list, I have Kubernetes clusters running on-premises or at another cloud provider.
I can now navigate to App services so add a new Web App.
When I select the Region, I can now not just select the Azure Regions, but also my custom locations.
I hope this blog gave you a quick overview on how you can create and run your cloud-native applications running on Azure PaaS Services using Azure Arc. This is ideal for you to build applications running on modern services in hybrid and mutlicloud environments using a single architecture. If you have any questions feel free to leave a comment.