Blog Post

Azure Arc Blog
5 MIN READ

Bringing Azure application services to Kubernetes with Azure Arc

EamonOReilly's avatar
EamonOReilly
Icon for Microsoft rankMicrosoft
May 25, 2021

Customers have been taking advantage of Azure application platform services for the last few years to develop modern apps for their organization. These purpose-built services enabled developers and operations teams to focus on the business requirements and not have to spend additional resources managing the infrastructure behind these services.

 

We have however heard feedback from our customers that the large increase in productivity their teams have experienced is only available when running in Azure and that they have a significant part of their workloads that need to still run on premises. They also have given feedback that they sometimes need additional control over the infrastructure to meet security, compliance, or workload specific requirements of their organization. This has often led to a disparate development and operations experience when updating or building new applications that has led to increased processes and reduction in portability of their applications.

 

Today, we announced that we have addressed these challenges by bringing our application platform services to Kubernetes and making these available anywhere through Azure Arc. This enables the flexibility and control those customers need on where their applications are hosted combined with increased productivity and operations that customers experience when leveraging native platform services in Azure.

 

The services that are made available as part of public preview are Azure Web Apps, Functions, and Logic Apps for hosting workloads as well as the integration services of API Management gateways and Event Grid topics.

 

The process to get started with application services on Kubernetes with Azure Arc requires three steps.

  1. Register a Kubernetes cluster with Azure Arc so it can be managed from Azure.
  2. Install the relevant Azure application services on the cluster.
  3. Create a custom location as a target to deploy resources to the cluster.

Once these steps are completed, the same developer and operations experience that are available when hosting the applications in Azure are now available if it is running in Azure Kubernetes clusters, on-premises, or in 3rd party clouds.

 

Registering a Kubernetes cluster with Azure Arc

To have a common management experience across services running in Azure or on a Kubernetes cluster, it is required to register the cluster with Azure Arc so that applications can be managed through Azure resource manager in a consistent way. You can go to the Azure Arc center in the portal, click on Kubernetes clusters under the infrastructure section and register the cluster with Arc. This will make it possible to deploy the application services onto the cluster.

Register kubernetes cluster with Azure Arc

 

Install the relevant Azure application services on the cluster

Once the cluster is registered with Azure Arc, you can now deploy the services you want to make available using the extensions capability on the cluster. Navigate to the cluster under the Kubernetes view in the portal, click on the Arc enabled cluster, and then click into the Extensions (preview) setting and click Add.

 

Install App development bundle

 

The available application services that can be deployed using the extension are:

  • Azure app development bundle - contains the Azure web apps, Logic Apps, and Functions capabilities.
  • Azure API Management gateway – configures an APIM gateway to be deployed on the cluster.
  • Azure Event Grid – installs the Event Grid topics service on the cluster.

You can then walk through the wizard experience to get instructions to install the services in the cluster and have them show up as installed and available.

 

Installed extension

 

Create a custom location as a target to deploy resources to the cluster

The last step in the process is to create a custom location that can be used as a target to deploy any of the installed services when creating new apps through Azure resource manager. This is currently done through the Az cli and is described when installing the services on the cluster. You can then view these custom locations within the portal by navigating to the custom location view.

 

Custom location

 

Now that the above steps have been followed, the same development experience that is used when developing and deploying applications hosted on Azure, are now available to teams who need to deploy these on their managed Kubernetes clusters. You can see these show up as custom locations in the region dropdown when creating resources through the portal as shown below.

 

Create Function with custom location

 

All the steps above are also available through the Azure CLI so the process can be automated for clusters that need to be configured within the organization.

 

A key benefit of using Azure application services is that the inner loop of developing and testing applications has been optimized for developers to quickly validate their logic. This is made possible by having integration with IDE tools like VS Code, Visual Studio, Eclipse, IntelliJ  as well as CLI experiences when developing applications. These same great experiences can still be used when developing applications that will be installed on the Kubernetes environment since the development teams don’t need to develop or learn a new application platform that is Kubernetes specific.

 

Logic app in VS Code

 

The other benefit us using Azure application services on Kubernetes with Azure Arc is that the continuous deployment capabilities that are available today on Azure for development and operations teams are also available. An example of this is the Accelerator sample templates that were announced at BUILD to make it easy to develop and deploy applications hosted on Azure are also available when deploying to Kubernetes. This allows organizations to have a common platform for all their applications independent of where they need to be hosted.

 

Accelerators

Another benefit of using application services on Kubernetes is that operations teams can standardize their Kubernetes by taking advantage of the enhanced managed capabilities like monitoring, security, policy, and role based access control that they have developed for applications in Azure even though they are now running on their Kubernetes environments. This is made possible by having a consistent management plane with Azure resource manager and using the same data plane experiences that are available when running in Azure.

 

Policy

 

With today’s announcement, developers can save time building hybrid applications using the portable application services enabled by Azure Arc.  When combined with the use of Arc-enabled data services like Azure PostgreSQL and Azure SQL, applications and their data can now run anywhere using fully managed cloud services -- an industry first. 

 

You can learn more about these Azure applications services and get started with the following information.

Learn more about Azure Arc enabled Kubernetes: 

Learn more about Azure Arc enable application services

Register for our upcoming Hybrid and Multicloud Digital Event on June 29th!

 

 

Updated May 21, 2021
Version 1.0
  • Game changer, a revolution in IT... I see this going places. For example, Azure Stack Hub AKS to deliver magic!!!

     

    Have to say - THIS IS FABULOUS!!! Well done and thank you!

     

    Happy Azure Stacking!!!

     

     

  • andyboothrepl's avatar
    andyboothrepl
    Copper Contributor

    What the status of storage using Azure Functions or Azure Logic Apps on K8s with Azure Application Services as above? I thought these currently required Azure Storage for Blob/Table/Queues in their runtimes.