Azure Container Apps is a container orchestration platform for deploying modern applications and microservices. With Azure Container Apps you can deploy your containerized apps without the need to take on the overhead of managing the infrastructure of the underlying systems. This service is still in preview, but provides you with the ability to use your preferred language or framework to build microservices with support for Distributed Application Runtime (Dapr). There's also scaling of your containers with Kubernetes Event-Driven Autoscaling (KEDA).
The Comparing Container Apps with other Azure container options article on Microsoft docs lists the major features of Azure Container Apps, including:
- Optimized for running general purpose containers, especially for applications that span many microservices deployed in containers.
- Powered by Kubernetes and open-source technologies like Dapr, KEDA, and envoy.
- Supports Kubernetes-style apps and microservices with features like service discovery and traffic splitting.
- Enables event-driven application architectures by supporting scale based on traffic and pulling from event sources like queues, including scale to zero.
- Support of long running processes and can run background tasks.
Some of the key concepts of Azure Container Apps include:
- Environments - isolated boundary around container apps
- Containers - grouping pods together inside revision snapshots
- Revisions - an immutable snapshot of a container app
Access to your logs for Azure Container Apps can be managed thanks to the Azure Monitor service, Log Analytics. Log Analytics collects and aggregates logs from your Azure Container Apps instance for you to use for troubleshooting or monitoring purposes. Use Kusto Query Language (KQL) to edit and run queries against your logs for specific details about your application's performance.
But isn't there a service already for deploying containers to Azure? Sure, there are several but Azure Container Apps provides you with much of the benefits of using Azure Kubernetes Service, just without the native Kubernetes APIs for management. This means even a team without a large amount of experience using container orchestration can still build rich microservice applications on a platform that doesn't require you to understand all of the bits and pieces that come along with using Kubernetes.
This service is currently in preview and has some limitations around what regions you can deploy applications to as well as the Microsoft Preview SLA.
I recently spent some time working with Azure Container Apps and recorded a demo on how to deploy a very simple "Hello World!" containerized app. You can follow along and set up your own deployment, or just watch me and see how easy it is to get started using Azure Container Apps.
Steps will be:
- Create a resource group
- Create ACR
- Create a service principal ID for our deployments
- Build our container
- Configure Azure Container App
- Enable CI/CD to build on a push to the GitHub repo
- Review and update revisions.
The app is available here: https://github.com/jaydestro/demo-app
Thanks for reading and watching. Keep your eyes on the Azure Updates website for details on new features and general availability.
Docs for this session:
Azure Container Apps Preview documentation
Quickstart: Create a private container registry using the Azure CLI
Create an Azure service principal with the Azure CLI
Tutorial: Build and deploy container images in the cloud with Azure Container Registry Tasks
Quickstart: Deploy an existing container image in the Azure portal
Publish revisions with GitHub Actions in Azure Container Apps Preview