Azure Functions est une plateforme serverless largement adoptée par les entreprises de toutes tailles pour exécuter du code severless, sans se soucier de l’infrastructure sous-jacente. Jusqu’à récemment, le plan Consommation était l’option par défaut pour les applications ayant des charges de travail intermittentes. Cependant, ce plan présentait certaines limitations qui pouvaient impacter les performances et la flexibilité des applications.
Limitations du plan Consommation
Le plan Consommation offre une mise à l’échelle automatique et un modèle de facturation basé uniquement sur l’utilisation, mais il impose plusieurs contraintes :
- Démarrage à froid : Lorsqu’une fonction n’est pas exécutée pendant un certain temps, son environnement est libéré. Lorsqu’elle est invoquée à nouveau, un délai est introduit pour redémarrer l’instance. Ce qui est parfois agaçant pour certains clients.
- Timeout limité : Par défaut, l’exécution d’une fonction ne peut pas dépasser 60 minutes.
- Mise à l’échelle limitée : La montée en charge est rapide mais peut être contrainte par un nombre maximal d’instances (200 par région).
- Connectivité réseau restreinte : L’intégration avec des réseaux privés (VNET) est impossible et nécessite souvent un passage au plan Premium pour des fonctionnalités avancées.
Ces limitations rendaient le plan Consommation inadapté pour les applications nécessitant des exécutions longues, des performances prévisibles ou une connectivité réseau avancée.
A causes de ces limitations de nombreux utilisateurs étaient obligés de se diriger vers les plans Premium ou App Service qui permettent de prévenir le démarrage à froid et de disposer de l’isolation réseau. Mais, vous devez payer en tout tant une instance au minimum qui doit être réservée. Ce qui rend le service bien plus onéreux.
Introduction du plan Consommation Flexible
Face à ces défis, Microsoft a introduit le plan Consommation Flexible, il y’a quelques mois lors de sa conférence Ignite. Il s’agit d’une évolution du modèle qui offre plus de contrôle et réduit certaines des limitations du plan Consommation classique.

Principales nouveautés
- Réduction des démarrages à froid : Possibilité de définir un nombre minimal d’instances toujours actives, garantissant une latence réduite à l’exécution.
- Timeout amélioré : Par défaut, le timeout est fixé à 60 minutes, ce qui permet l’exécution de workloads plus longs sans nécessité de passer au plan Premium.
- Mise à l’échelle plus contrôlée : Contrairement au plan Consommation classique, ce nouveau modèle permet une montée en charge plus progressive et mieux adaptée aux charges prévisibles.
- Connectivité réseau améliorée : Intégration plus fluide avec Azure VNET sans nécessiter un passage au plan Premium, permettant des connexions sécurisées aux ressources privées.
Les instances sont créées avec 2048 MB de mémoire et il est possible d’avoir même des instances avec 4096 MB de mémoire.

Une fois l’application de fonction créée, il est possible de contrôler le nombre maximum d’instances (on peut aller jusqu’à 1000) :

La définition du nombre d’instances toujours prêtes se fait en fonction de chaque fonction de l’application. On peut donc définir par exemple un nombre d’instances prêtes uniquement pour les applications de fonction avec déclencheur http.

A date, juste les déclencheurs HTTP, blob et durable fonctions sont supportés. D’autres déclencheurs seront ajoutés au courant de l’année.
Avantages du plan Consommation Flexible
Le plan Consommation Flexible est particulièrement adapté aux cas d’usage suivants :
- Applications nécessitant une exécution sans démarrage à froid : En maintenant des instances préchauffées, les temps de réponse sont optimisés.
- Workloads avec des pics d’utilisation prévisibles : La mise à l’échelle progressive assure une meilleure gestion des ressources et des coûts.
- Applications nécessitant une connectivité réseau privée : Plus besoin de passer au plan Premium pour bénéficier d’une connectivité sécurisée.
Conclusion
Avec l’introduction du plan Consommation Flexible, Microsoft améliore l’offre serverless en répondant aux limitations du modèle précédent. Ce plan permet une réduction des démarrages à froid, une meilleure gestion des exécutions longues, et une intégration réseau plus poussée, tout en conservant un modèle de facturation basé sur l’utilisation.
Pour les développeurs et entreprises cherchant à optimiser leurs workloads serverless, cette nouvelle option apporte une flexibilité et une performance accrues, sans nécessiter un passage aux plans Premium ou Dédiés.
Toutefois la nouveauté n’est pas encore disponible dans plusieurs régions dont le Canada. Cette dernière sera ajoutée d’ici la fin de cette année.