Choosing between consumption plans and traditional ones

Azure Functions and Azure API Management are two examples of Azure services that can be run in a pure serverless way (using the consumption plan) or in a traditional PaaS way (using traditional plans).

With consumption plans, you don't pay for dedicated or provisioned resources, but you use resources from a pool managed by Azure, and you only pay for the number of times you use the resources, or for other metrics (for example, in Azure Functions, you also pay for the memory allocated by every function app over time). If you don't use a resource, you won't pay anything.

With traditional plans, you have dedicated resources (for example, virtual machines) that run your workloads, and you pay even when you're not using those resources.

Other Azure services are now starting to offer consumption plans that are serverless—for example, Azure SQL Database has a serverless compute tier in preview (for more information, go to https://docs.microsoft.com/en-us/azure/sql-database/sql-database-serverless).

The ability to choose between serverless and traditional PaaS plans is crucial in many scenarios because it allows us to design a solution using serverless services and principles, but run them in a traditional way if needed, without changing the code (in most cases).