Serverless & Container Modernization

Azure Container Apps – Serverless Container Deployment & Automation

Azure Container Apps runs containerized APIs and microservices on a fully managed, serverless platform. There are no clusters or servers to operate, applications scale automatically with KEDA-based rules, including down to zero when idle, and each deployment creates a new revision that can be rolled back instantly. Placed behind Azure Application Gateway with Web Application Firewall and connected privately to Azure SQL Database, the platform combines serverless simplicity with enterprise-grade security and networking.

Azure Container Apps + KEDA + Azure DevOps CI/CDDenver AWS Cloud Engineering
Azure Container Apps – Serverless Container Deployment & Automation - Architecture Diagram

Benefits

99.999%

uptime, backed by multi-AZ task placement and ECS automated recovery

30%

faster deployment speed with automated blue/green pipelines

20%

improvement in engineering team efficiency on AWS Fargate

Serverless Containers

Run containers without managing Kubernetes clusters, nodes, or virtual machines

Scale to Zero

The Consumption plan scales apps down to zero replicas when idle, so there is no charge for unused compute

Event-Driven Scaling

KEDA-based rules scale on HTTP traffic, CPU, memory, or queue length

Revision-Based Releases

Every deployment creates an immutable revision, with traffic splitting and instant rollback

Private Backend

The Container Apps environment and Azure SQL are reachable only inside the virtual network, behind the WAF

Passwordless Access

Managed identities pull images, read Key Vault secrets, and connect to Azure SQL without stored passwords

Overview

Containers make applications portable, but running them in production usually brings a new layer of infrastructure to manage. Teams either keep containers on virtual machines that must be patched and sized by hand, or operate full Kubernetes clusters that demand specialist skills for upgrades, node pools, ingress, and autoscaling. Small and medium workloads end up paying for capacity that sits idle most of the day, and every release replaces the running version with no simple way back.

Azure Container Apps removes this operational burden. Users reach the application through a domain in Azure DNS and Azure Application Gateway with Web Application Firewall in a public subnet. Requests are forwarded privately to an internal Container Apps environment in a private subnet, where the API container app scales automatically with KEDA-based rules on the Consumption plan, down to zero when there is no traffic. The app connects to Azure SQL Database over a private endpoint. Azure DevOps pipelines build images from GitHub, push them to Azure Container Registry, and deploy new revisions, while managed identities, Azure Key Vault, Azure Monitor, and Application Insights keep the platform secure and observable.

About Azure Container Apps

Azure Container Apps is a fully managed, serverless container platform built on open-source technologies including Kubernetes, KEDA, Envoy, and Dapr, without exposing the underlying cluster. Apps run inside a Container Apps environment, a secure boundary that shares a virtual network and logging configuration. Environments support a serverless Consumption profile, billed per second for the resources each replica uses, and dedicated workload profiles for apps that need reserved or larger compute. Each app scales between a configured minimum and maximum number of replicas using HTTP, TCP, CPU, memory, or KEDA event-driven scale rules, and each change creates a new revision that can receive all or part of the traffic.

Opportunity: Moving Beyond Over-Provisioned Container Hosting

Running containers on fixed virtual machines means paying for peak capacity around the clock, even when traffic is low overnight or at weekends. Scaling up for busy periods is manual and slow, and operating system patches, container runtimes, and monitoring agents all need ongoing maintenance.

Moving to a full Kubernetes cluster solves scaling but adds complexity that many teams do not need: control plane upgrades, node pool sizing, ingress controllers, and cluster security all become their responsibility. At the same time, applications are often exposed directly to the internet, databases accept public connections, and credentials for registries and databases are kept in pipeline variables or configuration files.

Organizations in this position need a container platform that scales automatically with real demand, charges only for what is used, keeps the application and database private, and makes releases and rollbacks simple, without having to operate Kubernetes.

The Solution

1

DNS and Edge Protection

The application domain is hosted in Azure DNS and resolves to Azure Application Gateway (WAF v2) in the public subnet. The Web Application Firewall runs in Prevention mode with the Microsoft-managed Default Rule Set to block OWASP Top 10 attacks such as SQL injection and cross-site scripting, along with custom rules for rate limiting. Application Gateway terminates TLS using certificates stored in Azure Key Vault and redirects HTTP to HTTPS.

2

Internal Container Apps Environment

The Container Apps environment is deployed into its own dedicated subnet with internal-only ingress, so it has no public IP address. Application Gateway forwards traffic to the environment through its private address, resolved by an Azure Private DNS zone for the environment domain. Only requests that have passed the WAF can reach the application.

3

API Container App on the Consumption Plan

The API runs as a container app on the serverless Consumption profile. CPU and memory are allocated per replica, billing is per second of actual use, and there are no servers, node pools, or clusters to size, patch, or upgrade. Dedicated workload profiles can be added to the same environment for services that need reserved capacity or larger instances.

4

KEDA-Based Autoscaling and Scale to Zero

Scale rules powered by KEDA add replicas when concurrent HTTP requests, CPU, memory, or queue length cross defined thresholds, and remove them when demand falls. Background and event-driven services scale to zero replicas when idle, while latency-sensitive APIs can keep a minimum of one replica to avoid cold starts. Maximum replica limits keep costs predictable.

5

Revisions and Safe Rollouts

Each deployment creates a new, immutable revision of the container app. In multiple revision mode, traffic can be split between revisions by percentage to release a new version gradually, and revision labels provide stable test URLs before a version goes live. If a problem appears, traffic is moved back to the previous revision immediately, without rebuilding or redeploying.

6

Private Azure SQL Database

Application data is stored in Azure SQL Database with public network access disabled. The app connects through a private endpoint in a separate private subnet, resolved through a private DNS zone, so database traffic never leaves the virtual network. The container app authenticates with its managed identity using Microsoft Entra authentication, removing SQL passwords entirely. Transparent data encryption protects data at rest, and automated backups provide point-in-time restore.

7

Images with Azure Container Registry

Container images are stored in Azure Container Registry with unique version tags. The container app pulls images using its managed identity with the AcrPull role, so no registry credentials are stored in the app or the pipeline.

8

Secrets with Azure Key Vault and Managed Identities

Any remaining secrets, such as third-party API keys, are stored in Azure Key Vault. Container Apps secrets reference Key Vault directly and are retrieved with the app’s managed identity, then exposed to the container as environment variables or mounted files, so sensitive values never appear in images, source code, or pipeline definitions.

9

CI/CD with GitHub, Azure DevOps, and ACR

Source code lives in GitHub. On every merge, an Azure DevOps build pipeline runs tests, builds the container image, and pushes it to Azure Container Registry. An Azure DevOps release pipeline then updates the container app to the new image, creating a new revision, with approvals and checks before production. Pipelines authenticate to Azure through service connections that use workload identity federation, avoiding long-lived secrets.

10

Monitoring with Azure Monitor and Application Insights

Container console and system logs are sent to a Log Analytics workspace and queried with Kusto Query Language (KQL). Azure Monitor metrics show replica counts, requests, CPU, and memory for each app and revision. Application Insights, through OpenTelemetry instrumentation, traces requests from the API to Azure SQL and records failures and response times, and alert rules notify the team when error rates or latency rise.

Results

No Infrastructure to Operate

Containers run on a fully managed platform with no clusters, nodes, or operating systems to patch, so engineering time goes into the application.

Pay Only for What Runs

Per-second billing and scale-to-zero on the Consumption plan remove the cost of idle capacity, while replica limits keep spending predictable.

Automatic Response to Demand

KEDA-based rules add replicas as traffic or queue depth grows and remove them as it drops, keeping response times steady without manual scaling.

Low-Risk Releases

Immutable revisions, gradual traffic splitting, and instant rollback make every deployment reversible.

Private by Design

The Container Apps environment and Azure SQL have no public endpoints, and all user traffic passes through Application Gateway and its Web Application Firewall.

No Passwords to Leak

Managed identities handle image pulls, secret retrieval, and database authentication, removing stored credentials from apps and pipelines.

End-to-End Visibility

Logs, metrics, and distributed traces from the edge to the database are available in Azure Monitor and Application Insights.

Architecture Stack

AWS Services Used

Core AWS building blocks powering high availability, elastic scaling, security, and automated deployments.

Azure Container Apps

Fully managed serverless container runtime running microservices with built-in revision management, traffic splitting, and zero-cluster overhead.

Container Apps Environment (Consumption)

Secure networking and logging perimeter hosting container applications with per-second billing and automatic scale-down to zero instances when idle.

KEDA Scale Rules

Kubernetes Event-driven Autoscaling (KEDA) integration scaling container replicas dynamically based on real-time HTTP throughput, queue backlog, or system metrics.

Azure Application Gateway (WAF v2)

Layer 7 edge load balancer terminating TLS and enforcing managed OWASP Top 10 rules before routing traffic into the internal Container Apps environment.

Azure DNS + Private DNS

Public custom domain routing paired with internal Azure Private DNS zones resolving secure Container Apps environment and database addresses.

Azure Virtual Network

Multi-subnet isolated virtual network segmenting public edge gateways from private serverless container subnets and database endpoints.

Azure SQL Database

Fully managed relational database secured with Private Link, automated backups, and passwordless Microsoft Entra ID authentication.

Azure Private Link

Keeps application-to-database traffic strictly on the Microsoft cloud backbone, eliminating public IP exposure.

Azure Container Registry (ACR)

Enterprise OCI-compliant registry providing secure, versioned storage for container images with integrated vulnerability scanning.

Azure DevOps Pipelines

Automated CI/CD workflows building Docker containers, running quality tests, and deploying new revisions with automated verification.

GitHub

Central Git repository managing application source code and infrastructure definitions with automated pipeline triggers.

Managed Identities

Microsoft Entra system/user-assigned identities providing secure, passwordless authentication across cloud resources without hardcoded credentials.

Azure Key Vault

Cloud hardware-backed secret management holding application API keys and SSL/TLS certificates mounted directly to container runtimes.

Azure Monitor + Log Analytics

Centralized telemetry collection aggregating container console logs, HTTP traffic trends, and proactive alert rules.

Application Insights

Distributed application performance monitoring capturing end-to-end transaction traces, latency bottlenecks, and error rates.

Contact Us

Send Us a Message

Ready to bring your ideas to life? Tell us about your project and our team will get back to you within one business day.

Office
7535 East Hampden Avenue, Suite 400
Denver, CO 80231

No obligation. We never share your information.