General Availability of Azure Functions on Azure Container Apps

Apps on Azure Blog > General Availability of Azure Functions on Azure Container Apps

https://techcommunity.microsoft.com/t5/apps-on-azure-blog/general-availability-of-azure-functions-on-azure-container-apps/ba-p/4145577

Modern cloud-native applications are a blend of container-based applications, event-driven serverless functions, and cloud-native services for data, security, and observability, all working together. There is a need for platforms that empower developers to swiftly construct robust and scalable cloud-native microservices. These platforms should abstract the complexities of managing, scaling container clusters and handling of underlying infrastructure configurations.


 


The Announcement


 


We are thrilled to announce the general availability of Azure Functions for cloud-native microservices hosted on Azure Container Apps.  This allows you to leverage the Azure Functions programming model to rapidly develop event-driven, serverless, cloud-native function apps. You will have the flexibility to run functions alongside other microservices, APIs, websites, workflows, or custom libraries packaged as container-hosted programs on this fully supported offering. This eliminates the need to manage the underlying infrastructure or configure network and observability settings, as these are shared with other apps in the Container App environment. By leveraging the best practices for distributed application development offered by  Dapr, you can build resilient, secure apps. Function apps can auto-scale all the way down to zero, becoming inactive, or scale up to handle high loads with dozens of containers. You pay for what you use on a per-second basis based on the number of vCPU-s and GiB-s allocated to your applications.


 


One of our primary goals is to achieve greater autonomy for the development teams, which demands a seamless process for integrating new microservices. The platform’s flexibility and robust capabilities help to minimize the touch points necessary with operations to get new services up and running. Our ability to use the familiar Azure Functions model on Azure Container Apps helps flatten the learning curve for development of event driven workflows and meet our resiliency goals.” Dustin Kester, Director of Software Engineering, Paychex, Inc.


 


Azure Functions for cloud native microservices hosted on Azure Container Apps was released in public preview during May 2023 at Build. We have enabled client tooling experiences for deploying and managing Azure Function resources on Azure Container Apps. This includes the use of Azure CLI, Azure portal, Azure Functions Core Tools, ARM/Bicep templates and Azure Developer CLI (azd). And CI/CD tools like GitHub Actions and tasks. We have also enabled support for Azure Functions triggers and bindings, Dapr extension for Azure Functions in public preview along with specific powered by KEDA for triggers such as HTTP, Azure Queue Storage, Azure Service Bus, Azure Event Hubs, Kafka and Timer trigger including support of workload profiles with Consumption and dedicated plans.


For the General Availability (GA) release, in addition to transitioning current preview features to GA, we’re excited to announce Managed Identity support for Azure Functions. which allows your function app to access Microsoft Entra protected Azure resources like Azure Key Vault and Azure Storage etc. We’re also enabling VNET Internal support soon for deploying Azure Function resources in internal environments with private IP addresses and no public endpoints. Going forward function resources can be deployed to VNet Internal or External configured container app environments based on your requirements. Furthermore, we’ve enabled deploying Functions on ACA using developer tools such as VScode, Maven, AzPowerShell, and Terraform.


Azure Functions on Azure Container Apps is now more enterprise ready and developer friendly. It offers the flexibility to host event-driven functions on containers supporting any programming language or custom libraries. This makes it an ideal environment for deploying your production workloads.


 


“Switching to Azure Function on Azure Container Apps was just an architecture evolution that was very easy to perform because, as there is no need to manage the container infrastructure or no code change in Azure Functions or Observability stack for the DevOps team. Azure Functions on Azure Container Apps and its ecosystem is aligned with our cloud-native vision” – Benoît SAUTIERE – Senior Technical Officer Container Platform


 


Scenarios for Azure Functions on Azure Container Apps


 


This hosting solution is suitable for a variety of scenarios, including but not limited to the following:



  • Workloads on Azure Container Apps: Event-driven applications can utilize the Azure Functions programming model and be deployed in the same container app environment as other microservices, APIs, and container workloads. This allows for shared network and observability features


      Ramya_Oruganti_0-1716173024735.png



  • AI Chatbots, RAG, Text completion, LLM skills development workloads using the openAI extension for Azure Functions


       Ramya_Oruganti_2-1716173226239.png



  • GPU Compute Needs: This is ideal for processing tasks involving videos, images, transcripts, and AI models that require GPU compute. This is possible with the support of workload profiles – Dedicated planRamya_Oruganti_3-1716173315066.png

  • Data Migration Workloads: It’s perfect for data ingestion, streaming, and processing workloads that are being migrated from on-premises, legacy, or monolithic applications to cloud-native microservices on containers.Ramya_Oruganti_4-1716173358879.png

  • Packaging Custom Libraries: You can package custom libraries or packages along with Functions scenarios like Line-of-Business (LoB) applications.


 


“At Cloudigy, we primarily focus on the capabilities within the Microsoft Power Platform. When we reach the limits of these capabilities, we quickly turn to the possibilities offered by the Microsoft Azure Platform. To help our client realize and optimize a unique business process, we are pleased to have utilized Azure Functions on ACA in collaboration with Microsoft. The project not only streamlined the client’s operations by automating the anonymization of Dutch citizen service numbers but also ensured compliance with privacy regulations.


This collaboration with Microsoft ensured the success of this project and allows us, as a partner, to offer this solution to other organizations as well.” Dennis Blotenburg, Founder and CEO, Cloudigy


 


What’s new!


 


Here is the quick sneak peek into new feature releases


A new portal create experience to easily create and deploy Azure Function resources on Azure Container App environments:


Azure Functions on Azure Container Apps - Create ExperienceAzure Functions on Azure Container Apps – Create Experience


Managed Identity is now supported for Azure Functions on Azure Container apps!  A managed identity from Microsoft Entra ID allows your functions app to easily access other Microsoft Entra protected resources such as Azure Key Vault. The identity is managed by the Azure platform and does not require you to provision or rotate any secrets. Support for both system and user-assigned managed identity is enabled. Managed Identities can be used for triggers & bindings, storage account, pull images from Azure Container Registry ACR or fetch secrets from Azure Key Vault. To know more about managed identities in Microsoft Entra ID, see Managed identities for Azure resources.


Check out Managed Identity samples here.


Here is an Azure Function hosted on Azure Container apps with system assigned – Managed Identity enabled :


Ramya_Oruganti_1-1716173690348.png


Azure Functions support for VNet Internal environments that have no public endpoints and are deployed with a virtual IP (VIP) mapped to an internal IP address will be available soon. The internal endpoint is an Azure internal load balancer (ILB) and IP addresses are issued from the custom VNet’s list of private IP addresses. You can integrate with your own private VNet which will enable you to secure the endpoints of your apps  without exposing to public networks.  Read more.


Samples for this scenario are available here.


Here is an Azure Functions on Azure Container Apps resource configured with VNet Internal network:


Ramya_Oruganti_2-1716173777341.png


We are excited to announce the GA launch of Dapr extension for Azure Functions and the seamless integration with Azure Functions on Azure Container Apps. This enables you to build Dapr apps using Azure Functions programming model​ and write minimal code to use Dapr capabilities with its bindings and triggers attributes.​ These capabilities will enable functions to seamlessly interact with Dapr, facilitating the development of cloud-native applications.


Find out about samples here


Here is an example architecture workflow diagram of Azure Function apps using Dapr extension using the service invoke and secure state store in Redis deployed into a container app environment with App insights turned on for observability:


Ramya_Oruganti_3-1716173845409.png


You can now create and run load tests directly from Function App resources in Azure portal. ​An In-context experience is enabled  to create, run and analyze load tests for any HTTP function. This offers rich reports with client-side & Function App metrics, to identify performance bottlenecks. You can continuously monitor function performance with test run history.


Here is the view on a successful execution of load test results of a Http Azure Function app showing throughput and avg response time metrics:.


Ramya_Oruganti_4-1716173887485.png


Getting Started with Azure Functions on Azure Container Apps.


Deploy your apps to Azure Functions for cloud-native microservices today!


Refer to below resources to learn about current and new updates /enhancements to the service.




  • Help us improve by taking this short survey.


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


Leave a comment