Martin Rylko
  • Služby
  • Blog
  • O mně
  • Kontakt
  • Spolupráce
Martin Rylko

Senior Cloud Architect & DevOps Engineer. Specializace na Microsoft Azure, IaC, Cloud Security a AI.

Navigace

  • Služby
  • Blog
  • O mně
  • Kontakt

Spolupráce

Hledáte zkušeného architekta pro Váš Azure projekt? Ozvěte se.

rylko@cloudmasters.cz

© 2026 Martin Rylko. Všechna práva vyhrazena.

Buduji v cloudu. Nasazuji přes Azure Static Web Apps.

Domů/Blog/Azure Functions Flex Consumption: Kdy nahradit Premium plan v 2026
Všechny článkyRead in English

Azure Functions Flex Consumption: Kdy nahradit Premium plan v 2026

30. 5. 2026 4 min
#Azure#Functions#Serverless#FinOps

Azure Functions Flex Consumption: Kdy nahradit Premium plan v 2026

Když Microsoft v roce 2024 GA-oval Flex Consumption plan pro Azure Functions, většina enterprise týmů na to nezareagovala – Premium plan byl zaběhlý, fungoval a nikdo nechtěl měnit fungující věc. V Christie's jsme v Q2 2026 udělali FinOps audit serverless workloadů a Flex se ukázal jako nezamýšlený šampion: 60 % našich Premium Function Apps mohlo jít na Flex za polovinu ceny bez ztráty funkcionality.

Tenhle článek je rozbor, kdy a jak Flex použít.

Rychlé srovnání tří plánů

VlastnostConsumptionFlex ConsumptionPremium (EP1+)
Cena (idle)0 EUR0 EUR~120 EUR/měsíc
Cena (active)Per-GBsPer-second per instanceFixed per plan
VNet integrationNeAnoAno
Cold start2–10 s0–1 s (always-ready)0 s
Max execution time10 min60 min60 min
Always-ready instances00–N (configurable)1+ (built into SKU)
HTTP scale-out limit2001 000Per SKU
Deployment slotsNeLimited (1)Ano
Custom domain + SSLAnoAnoAno
Zone redundancyNeAnoAno (zone redundant)

Tři skutečné game changers Flex oproti Consumption:

  1. VNet integration – Flex umí privátní endpointy, Consumption ne. Pro PE-only architektury (viz článek z června 2026) je to volba mezi „použitelné" a „nepoužitelné"
  2. Pre-warmed instances – minimum 0, maximum 100. Zmizí cold start anxiety
  3. Per-second billing s GB-second – pro burst workloady levnější než Premium per-plan

Reálný cost příklad: Christie's REST API

Workload: REST API pro internal reporting tool. ~200 requestů/hod během pracovní doby, 0 mimo. p95 latency requirement: 500 ms.

PlánMěsíční cenaKomentář
Consumption~25 EURNelze – API potřebuje VNet pro DB connection
Premium EP1 (1 instance)~120 EURFunguje, ale 20 hodin denně idle
Premium EP1 zone-redundant~360 EURHigh availability, drahé
Flex Consumption (1 always-ready)~52 EURVNet + bez cold startu, paid jen za real usage
Flex Consumption (0 always-ready)~18 EURBez cold start guarantee

Pro tohle API jsme migrovali na Flex s 1 always-ready instancí – úspora 68 EUR/měsíc oproti Premium EP1, plus 308 EUR oproti EP1 zone-redundant. Naškálováno přes 15 podobných API: ~1 000 EUR/měsíc úspora.

Flex Consumption v Bicepu

// Server farm s Flex SKU
resource flexPlan 'Microsoft.Web/serverfarms@2024-04-01' = {
  name: 'asp-api-flex-prod'
  location: location
  sku: {
    tier: 'FlexConsumption'
    name: 'FC1'
  }
  properties: {
    reserved: true  // Linux
  }
}
 
// Function App
resource flexFunc 'Microsoft.Web/sites@2024-04-01' = {
  name: 'func-api-flex-prod'
  location: location
  kind: 'functionapp,linux'
  identity: { type: 'SystemAssigned' }
  properties: {
    serverFarmId: flexPlan.id
    virtualNetworkSubnetId: functionSubnet.id
    vnetRouteAllEnabled: true
    publicNetworkAccess: 'Disabled'
    functionAppConfig: {
      deployment: {
        storage: {
          type: 'blobContainer'
          value: '${storageAccount.properties.primaryEndpoints.blob}deployments'
          authentication: {
            type: 'SystemAssignedIdentity'
          }
        }
      }
      scaleAndConcurrency: {
        instanceMemoryMB: 2048
        maximumInstanceCount: 100
        alwaysReady: [
          {
            name: 'http'
            instanceCount: 1   // 1 vždy připravená pro HTTP triggery
          }
        ]
      }
      runtime: {
        name: 'dotnet-isolated'
        version: '9.0'
      }
    }
  }
}

Tři důležité parametry oproti Premium:

  1. functionAppConfig.deployment.storage – Flex deployuje balíky do Blob containeru přes MSI, ne klasickou WEBSITE_RUN_FROM_PACKAGE SAS URL
  2. scaleAndConcurrency.instanceMemoryMB – musíte si vybrat memory tier (2048, 4096), per-second billing pak odpovídá
  3. alwaysReady – per-trigger nastavení (HTTP vs queue), pro každý trigger jiný count

Deployment přes GitHub Actions

name: Deploy Flex Function
on:
  push:
    branches: [main]
 
permissions:
  id-token: write
  contents: read
 
jobs:
  deploy:
    runs-on: ubuntu-latest
    environment: production
    steps:
      - uses: actions/checkout@v4
 
      - uses: actions/setup-dotnet@v4
        with:
          dotnet-version: '9.0.x'
 
      - name: Build and package
        run: |
          dotnet publish src/Api.csproj -c Release -o output
          cd output
          zip -r ../app.zip .
 
      - uses: azure/login@v2
        with:
          client-id: ${{ secrets.AZURE_CLIENT_ID }}
          tenant-id: ${{ secrets.AZURE_TENANT_ID }}
          subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
 
      - name: Upload to Flex deployment container
        run: |
          az storage blob upload \
            --account-name "${{ vars.STORAGE_NAME }}" \
            --container-name "deployments" \
            --name "app-${{ github.sha }}.zip" \
            --file app.zip \
            --auth-mode login \
            --overwrite
 
      - name: Sync Flex Function App
        run: |
          az functionapp deployment source config-zip \
            --resource-group "${{ vars.RG_NAME }}" \
            --name "${{ vars.FUNC_NAME }}" \
            --src "https://${{ vars.STORAGE_NAME }}.blob.core.windows.net/deployments/app-${{ github.sha }}.zip" \
            --build-remote false

Pozor: Flex nemá Kudu pro file inspection ani SCM endpoint pro klasické Zip Deploy. Deployment teče přes Blob storage s MSI authentication. Pokud máte legacy CI/CD pipeline, která spoléhá na az functionapp deployment source config-zip s SAS URL, musíte upravit.

Kdy NEpřepínat z Premium na Flex

Tři scénáře, kdy Premium zůstává správná volba:

  1. In-memory state / cache mezi requesty – Flex pre-warm instances neagrégují state perfectly, periodický shutdown unset memory. Premium s alwaysOn=true má persistentní instance
  2. Workloady s 24/7 fixní zátěží – pro stabilní 5+ instance load vyjde Premium 3Y reserved levněji než Flex per-second
  3. Deployment slots pro blue/green – Flex má pouze 1 slot (production). Pokud děláte slot swap, zůstaňte na Premium

Migration playbook: Premium → Flex za 1 sprint

V Christie's jsme migration udělali per Function App takhle:

  1. Den 1 – nová Flex Function App vedle existující, deployment stejného code, smoke test
  2. Den 2 – přepojení integration testů na Flex, performance comparison (p50, p95, p99 latency)
  3. Den 3 – Front Door / APIM route 10 % trafficu na Flex, monitoring 24h
  4. Den 4 – 50 % trafficu, ověření cost projekce
  5. Den 5 – 100 % cutover, ponechat Premium 7 dní jako rollback
  6. Den +7 – smazat Premium plan

Klíčové: deployment přes blob storage s MSI vyžaduje úpravu deployment pipeline (~2 hodiny). Vše ostatní je beze změny – stejný runtime, stejný code, stejné app settings.

Limity, které stojí za zmínku

LimitFlex ConsumptionWorkaround
Max execution time60 minStejné jako Premium
Concurrent HTTP requests1 000Naškálováno přes instances
Memory per instance512 MB – 4 GBVětší = vyšší cena
Deployment slots1Použít Front Door staging slot
Connected to App Service EnvironmentNePoužít Premium v ASE
Custom container imagesNePouze managed runtime

Pro 95 % workloadů jsou limity nepodstatné. Custom container support je největší miss – pokud máte Function s custom Docker image, Flex není volba.

Závěr

Flex Consumption je v květnu 2026 nejvíc opomíjená optimalizace v Azure FinOps audit checklistu. Pro většinu Premium Function Apps poskytuje stejnou funkcionalitu za 30–50 % ceny. Migration je 1-sprint záležitost, deployment pipeline jediná změna.

V Christie's a CostSentry.AI jsme přepnutím 70 % Premium Function Apps ušetřili řády stovek EUR měsíčně bez kompromisu na latenci nebo SLA.

Pokud auditujete vlastní serverless stack a chcete identifikovat Flex Consumption kandidáty, podívejte se na naše služby cloudové architektury nebo se ozvěte pro FinOps review.

Tagy:#Azure#Functions#Serverless#FinOps
LinkedInX / Twitter

O autorovi

Martin Rylko

Martin Rylko

Senior Cloud Architect & DevOps Engineer

Více než 14 let v IT – od on-premises datacenter a Hyper-V clusteringu po cloudovou infrastrukturu v Microsoft Azure. Specializuji se na Landing Zones, IaC automatizaci, Kubernetes a bezpečnostní compliance.

Email LinkedInCelý profil

Nejcastejsi dotazy

V čem se Flex Consumption liší od klasické Consumption?▾
Flex Consumption má dvě klíčové výhody nad Consumption: nativní VNet integration (Consumption ji nemá vůbec) a per-second billing pro paměťovou instanci (Consumption má billing s zaokrouhlením). Plus Flex zaručuje instance pre-warming – první request po idle nemá cold start trvající 5+ sekund. Cena je trochu vyšší než Consumption, ale výrazně nižší než Premium.
Kdy zvolit Flex Consumption a kdy Premium plán?▾
Flex pro většinu webových API a event-driven workerů, které potřebují VNet, ale neřeší 24/7 zátěž. Premium pro workloady s minimálně 1 always-on instancí (kvůli warm cache, in-memory state) nebo s předvídatelnou stálou zátěží, kde Premium 3-year reservation vyjde levněji. Z mé praxe v Christie's je 70 % funkcí kandidát na Flex; jen long-running workery a high-frequency triggers zůstávají na Premium.
Jak Flex Consumption řeší cold starts?▾
Přes konfigurovatelné instance pre-warming. Nastavíte always-ready instances (od 0 do N), které mají kód načtený a čekají na invocation. Cena: ~30 % standardní per-second sazby, ale bez startup overhead. Pro produkční API s p99 latency požadavky doporučuji 1–2 always-ready instances. Pro event-driven worker bez SLA latence stačí 0 a Flex naškáluje na žádost.
Funguje Flex Consumption s Bicepem a Deployment Stacks?▾
Ano, plně. Resource type je Microsoft.Web/sites s kind=functionapp,linux a server farm SKU FC1. Veškeré standardní Function App parametry fungují – app settings, deployment slots (omezené pro Flex), VNet integration. Stack adoption pro existing Premium Function App vyžaduje recreation, protože nelze měnit SKU plánu přes update. Migration path: nový Function App s Flex, swap přes Front Door, smazat starý.

Mohlo by vás zajímat

Azure Private Endpoints všude: Refactor serverless pipeline z APIM na PE-only

Praktický refactor serverless e-mailové pipeline z APIM-fronted architektury na private endpoint-only end state. Shared PE subnet, Function Apps Premium, Service Bus a Log Analytics bez veřejného povrchu.

Číst

Azure Cosmos DB cost optimization: 8 pák, jak snížit RU/s účet

Praktický průvodce snížením nákladů Azure Cosmos DB. Provisioned vs Serverless, autoscale tuning, indexing policy, TTL a multi-region trade-offs s reálnými čísly z CostSentry.AI provozu.

Číst

Microsoft Build 2026: Foundry, FOCUS 1.3 a Agent Cost Trace

Můj recap Microsoft Build 2026 z pohledu cloud architekta. Foundry rebrand, FOCUS 1.3 GA, Agent Cost Trace pro AI workloady a tři praktické dopady na enterprise zákazníky.

Číst