Cost Estimates - engagesquared/microsoft-teams-apps-company-communicator GitHub Wiki

Assumptions

The estimate below assumes:

  • 1000 users in the tenant
  • 1 message sent to all users each week (~5/month)
  • Administrator opts to create a custom domain name and obtain an SSL certificate for the site.
    • When purchased through Azure, this is typically ~$12 for a domain name, and $75/year for the SSL certificate.
    • If you choose to use Azure Front Door, that adds a monthly cost of $46 (for 2 routing rules + minimal bandwidth consumption).

The template defaults to using Azure Front Door, to reduce the cost of trying out and experimenting with the template, rather than requiring you to get a custom domain outright. For instance, you can run your instance for a few days, then turn off the services, and only pay for your actual Azure usage when the services were on.

We ignore:

  • Operations associated with app installations, as that happens only once per user/team
  • Operations associated with the authors viewing the tab, given the assumption that they are sending only 5 messages/month.
  • Executions associated with Prep or Send function, as the execution count is trivial to the calculations.

SKU recommendations

The recommended SKUs for a production environment are:

  • App Service: Standard (S1)
  • Service Bus: Basic

Estimated load

Number of messages sent: 1000 users * 5 messages/month = 5000 messages

Data storage: 1 GB max

  • Messages are on the order of KBs

Table data operations:

  • Prep function

    • (3 read * 5000 messages) = 15000 reads
  • Send function

    • (4 read * 5000 messages) = 20000 reads
    • (1 write * 5000 messages) = 5000 writes
  • Data function

    • Aggregating status: (1 read * 5000 messages) = 5000 reads

Service bus operations:

  • ((1 write + 1 read) operations/sent message * 5000 messages) = 10000 operations

Azure Function:

For Gb-sec pricing calculation, please refer this formula. (Memory Size * Execution Time * Execution Count)/1024000. Min. memory size = 128 Mb. Min. execution time = 100 ms.

  • Send function
    • (1 invocation * 5000 messages) = 5000 invocations
    • (128 Mb * 3000 * 5000 messages)/1024000 = 1875 Gb-sec

Estimated cost

IMPORTANT: This is only an estimate, based on the assumptions above. Your actual costs may vary. Prices listed in AUD.

Prices were taken from the Azure Pricing Overview on 5 May 2021, for the Australia Southeast region.

Use the Azure Pricing Calculator to model different service tiers and usage patterns.

Resource Tier Load Monthly price
Storage account (Table) Standard_LRS < 1GB data, 45000 operations $0.07 + $0.01 = $0.07
Bot Channels Registration F0 N/A Free
App Service Plan S1 744 hours $128.71
App Service (Bot + Tab) - (charged to App Service Plan)
Azure Function Dedicated 10000 executions (free up to 1 million executions)
Service Bus Basic 10000 operations $0.07
Application Insights - < 5GB data (free up to 5 GB)
Total $128.85