IVR Azure communication services bot deployment

Julio Fonseca Caballero 20 Reputation points
2024-04-08T21:09:31.3333333+00:00

Hi,

The question is about deploying an app that uses Azure Communication Services

In Azure, what would be the recommended way of deploying a .NET core IVR bot built in Azure Communication Services (ACS), Azure AI Services (Cognito services) and Open AI? The IVR bot is based on this tutorial https://github.com/Azure-Samples/communication-services-dotnet-quickstarts/blob/main/callautomation-openai-sample-csharp/README.md

Azure app service?
AKS?
Azure functions?

What are the pros and cons? The call volume is large

Thanks

Azure Communication Services
Azure Communication Services
An Azure communication platform for deploying applications across devices and platforms.
859 questions
0 comments No comments
{count} votes

Accepted answer
  1. Grmacjon-MSFT 17,886 Reputation points
    2024-04-09T04:50:50.1266667+00:00

    Hi @Julio Fonseca Caballero without knowing many details about your scenario here are a few things to keep in mind for deploying a .NET Core IVR bot built using Azure Communication Services (ACS), Azure AI Services (Cognitive Services), and OpenAI. I would highly recommend reading the Azure Communication Services Architecture Design to get a better understanding of ACS.

    Pros of using Azure Functions:

    1. Scalability: Azure Functions can automatically scale up or down based on the incoming call volume, making it a suitable choice for handling large call volumes.
    2. Serverless: Azure Functions is a serverless compute service, which means you don't have to manage the underlying infrastructure. This simplifies deployment and reduces the overhead of managing virtual machines or containers.
    3. Event-driven: Azure Functions is designed to be event-driven, which aligns well with the nature of an IVR bot that responds to incoming calls.
    4. Integration with Azure Services: Azure Functions integrates seamlessly with other Azure services, such as ACS and Cognitive Services, making it easier to build and deploy the IVR bot.
    5. Cost Optimization: Azure Functions charges based on the actual execution time and resources consumed, which can be cost-effective for applications with variable or unpredictable usage patterns, like an IVR bot.

    Cons of using Azure Functions:

    1. Cold Start: Azure Functions can sometimes experience a "cold start" when the function is not in use, which can lead to a slight delay in the initial response. However, this can be mitigated by using strategies like pre-warming the function.
    2. Stateful Scenarios: If your IVR bot requires maintaining state across multiple interactions, you may need to use additional services like Azure Blob Storage or Cosmos DB to store and retrieve the state, which adds some complexity.

    While Azure App Service is a viable option, it may not be as optimized for the event-driven nature of an IVR bot. App Service requires you to manage the underlying virtual machines, which can be more resource-intensive for applications with variable load.

    AKS could be used to deploy the IVR bot, but it may be overkill for a single application and would require more complex management of the Kubernetes cluster.

    Hope that helps. Let us know if you have further questions.

    -Grace

    1 person found this answer helpful.

0 additional answers

Sort by: Most helpful

Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.