When working with Azure Container Apps, one topic that often causes confusion is the difference between plans and environment types. At first glance they might seem related or interchangeable, but they actually represent two different layers of how Azure Container Apps works.

In this post, I walk through the difference between Consumption and Dedicated plans, and explain how they relate to Container Apps environments.

Azure Container Apps topic visual.
Plans (how resources are billed) Environments (where apps run) Consumption - Serverless, scales to zero - Pay per vCPU / memory / seconds - Best for variable traffic Dedicated - Uses workload profiles - Reserved managed capacity - Predictable performance Consumption-only env - Runs Consumption plan apps only - No workload profiles Workload profiles env - Runs both Consumption and Dedicated - Supports mixed workloads supported in also supported in supported in

Azure Container Apps Plans

Azure Container Apps provides two main pricing and execution models: Consumption and Dedicated.

Consumption Plan

The Consumption plan follows a serverless model. You do not reserve infrastructure or capacity ahead of time. Instead, Azure automatically allocates the resources required when your application runs.

Billing in the consumption plan is based on:

  • vCPU usage
  • Memory usage (GiB)
  • Execution time in seconds

One of the biggest advantages of this model is that applications can scale to zero. If there are no incoming requests or workloads, container instances stop running and you do not pay for compute during idle periods.

This plan works well for:

  • Event-driven applications
  • APIs with unpredictable traffic
  • Microservices that do not require constant compute capacity

Dedicated Plan

The Dedicated plan provides a managed but reserved infrastructure environment. Instead of paying only for usage, you allocate resources using workload profiles.

A workload profile defines the amount of:

  • CPU
  • Memory
  • Instance capacity

Multiple applications can run inside the same workload profile and share allocated resources. Billing is based on resources allocated to each workload profile rather than individual app consumption.

Even though this plan reserves capacity, applications can still scale down to zero instances if they are not actively running.

This model is more suitable for workloads that require:

  • Predictable performance
  • Consistent resource allocation
  • Dedicated compute capacity for multiple applications

Understanding Container Apps Environments

The other concept that often gets mixed up with plans is the environment type.

A Container Apps environment is the boundary where container apps run. It provides networking, observability, and isolation for applications deployed inside it.

There are two environment types.

Consumption-only Environment

A Consumption-only environment supports only the Consumption plan.

This means:

  • All applications run in serverless mode
  • Workload profiles are not available
  • Dedicated resources cannot be configured

This type of environment is simpler and is typically used when all workloads follow the serverless model.

Workload Profiles Environment

A Workload profiles environment is more flexible. It supports both:

  • Consumption plan applications
  • Dedicated plan applications that use workload profiles

In this setup, some applications can run in serverless mode while others run on dedicated resources within workload profiles. This allows teams to mix different workload requirements inside the same environment.

Key Differences to Remember

A simple way to think about this is:

  • Plans define how resources are billed and allocated
  • Environments define where container apps run

Another useful rule:

  • A Consumption-only environment supports only the Consumption plan
  • A Workload profiles environment supports both Consumption and Dedicated plans

Final Thoughts

Understanding the distinction between plans and environment types is important when designing containerized applications on Azure. The choice depends largely on workload characteristics.

If your application benefits from serverless scaling and unpredictable traffic patterns, the Consumption plan is usually the best fit. If you need predictable compute capacity and want to run multiple applications on reserved resources, then Dedicated with workload profiles may be a better choice.

Choosing the right combination can help balance cost, performance, and operational flexibility.

References


Continue this learning path: Azure Developer Associate Journey