Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News Microsoft Launches Cloud Bot-as-a-Service Platform

Microsoft Launches Cloud Bot-as-a-Service Platform

This past November, Microsoft launched, what it is calling, the "Industry’s First Cloud Bot-as-a-Service" platform. Bots, and more specifically conversational apps, have been a very popular subject of late with both Amazon and Google also having recent deep learning announcements.

The Azure Bot Service is powered by the Microsoft Bot Framework and has a serverless compute back-end built on Azure Functions. Using the bot service allows developers to build conversational applications that plug into many popular chat applications including Slack, Facebook Messenger, Skype, Microsoft Teams, Kik and Office 365. It also has support for text/sms messaging and can be embedded within custom websites.

Lili Cheng, distinguished engineer within the Artificial Intelligence and Research Group at Microsoft, explains why Microsoft has decided to build this service:

For software developers, creating a conversational experience requires a shift in the way we design and build software. It turns out, it’s pretty difficult to do well. Conversation is inherently fluid and tangents are the norm.

While task completion apps tend to be developed for mobile platforms, there are some people, including Carine Carmy, head of marketing at Amino, calling for the end of mobile apps in favor messaging bots. This decry is largely related to the friction involved in finding the right mobile app:

Mobile apps are great for retention, poor for acquisition.

Lars Liden, principal software development engineer at Microsoft, describes some of the challenges that developers face when building traditional mobile experiences:

The problem with apps is that a user has to go out and install them on their phone. Realistically people use maybe 5 or 6 apps on their phone. As a developer, developing apps across platforms is very painful. It is a lot of work. What is great about bots is you build it once and it is available everywhere. It makes your life a lot easier. Most people spend most of their time in chat apps when they are on their phone. So while people are inside their chat app, they can just request information from that bot service.

As developers transition to conversational apps, there are some pitfalls that developers can run into. When building a bot, developers typically spend their time in two areas including building out bot logic, or intelligence, and wiring up your bot to different services so it can be exposed to users. Liden, suggests: 

Most developers spend 80% of their time in the muck trying to connect their bot to various services when they really want to spend their time working on the actual bot.

The Microsoft Bot-as-a-Service platforms aims to simplify the experience for developers. To accelerate the development process, Microsoft has included samples, Visual Studio and Visual Code support, templates and an integrated chat window that can all be used for testing locally before you publish your bot to Azure. Once your bot has been published to Azure, it can scale on-demand by leveraging capabilities found in Azure Functions. Continuous deployment support is also enabled through Git and Visual Studio Online.

Image Source: (screenshot)

Microsoft supports integration into third party channels and other APIs like Microsoft’s Cognitive Services. By plugging into Cognitive Services, developers can take advantage of Microsoft’s natural language processing investments to detect key phrases, sentiment analysis, language detection or topic detection. Developers can also create Language Understanding Intelligent Service (LUIS) models which allow for contextual-aware and self-learning conversations within the bot.

A language understanding example, that Microsoft has discussed is a chat application that can retrieve stock quotes. While building an application that takes in a fixed stock quote symbol and returns a result is not overly challenging, it can be if users are given a free form text box. Using LUIS, developers can train machine learning algorithms to understand variations of a stock price request sentence. This is accomplished by defining Intents and Entities within the LUIS console. Developers can then train and test their models before making it available to a bot application.

Image Source: (screenshot)

When using the Azure Bot-as-a-Service offering, developers only pay for the resources their app consumes. This includes the compute related to Azure Functions and any Cognitive Services API calls that have been made by the bot. More information related to pricing can be found here.

Rate this Article