Microsoft recently announced Azure Container Apps in Preview – a new serverless container platform. The idea behind this offering is to run your microservices style applications without needing to focus on the infrastructure and is built on top of industry standard Kubernetes. This platform provides value added services like out of the box Ingress, Auto Scale, Dapr integration with features like pubs/sub, service invocation and CI/CD pipeline support. In this blog post, we will cover how to create an Azure Container App and walk through its various features.
Azure container apps are packaged as traditional containers deployed with any runtime/programming model. With the container apps, the platform handles the orchestration details with primary focus on the application deployment. Here is an example scenario from here.
Let’s start by creating an Azure Container App in the Azure portal. We can create the container app with either Azure Bicep or Azure Cli. Before we create the container app, we create a container environment. Container environment defines an isolation and observability boundary around a collection of container apps. You can bring your own virtual network for the Container Environment.
Once the container environment is created, let us finish setting up the container app. As you can see, we define the container image(s), resources for the containers and ingress settings, scale rules.
Once the container app is created you can see different capabilities like Ingress, Revision Management, Continuous deployment, Scaling option and Secrets management.
Revision Management includes revisions which are immutable snapshots of a container app. You can learn more about Revision Management here.
You can manage secrets and leverage secrets securely using the Azure container apps. Here are some of the key features.
- Secrets are scoped to an application, outside of any specific revision of an application.
- Adding, removing, or changing secrets does not generate new revisions.
- Each application revision can reference one or more secrets.
- Multiple revisions can reference the same secret(s).
With Ingress enabled, you can leverage the following characteristics of the ingress solution.
- Supports TLS termination
- Supports HTTP/1.1 and HTTP/2
- Supports WebSocket and gRPC
- Endpoints always use TLS 1.2, terminated at the ingress point
- Endpoints always expose ports 80 (for HTTP) and 443 (for HTTPS)
Azure Container Apps manages automatic horizontal scaling through a set of declarative scaling rules. As a container app scales out, new instances of the container app are created on demand.
Hope this provides a good start to explore the Azure container apps. You can get started on Azure container apps here – https://aka.ms/containerapps