DevOps for bots: Sprinkling some devops on your bot

Hackfests are great mechanisms to kickstart the minimum viable product (mvp) for many bots/agents in a very short time.  However, just because you are working to a tight timescale doesn't mean you should sacrifice good engineering practices.  So if you're building a bot and want some assistance, checkout the resources below.

This isn't an exhaustive list, so if you find anything useful in this space that you'd like me to add, let me know in the comments.

Agile & DevOps

VSTS Agile planning for a bot hackfest/mvp: https://channel9.msdn.com/Events/UKDX/March-Uk-Hack-Fest/Agile-Planning-with-VSTS

Tips for what you should consider from building the Skyscanner bot: https://blogs.msdn.microsoft.com/jamiedalton/2016/08/12/bot-development-tips/

Intro to the bot framework from a devops perspective: https://channel9.msdn.com/Series/DevOps-for-the-Bot-Framework

Development & Getting Started

If you like to learn by example, then checkout the open source samples in the following github repos:

BotFramework C# Samples: https://github.com/Microsoft/BotBuilder/tree/master/CSharp

BotFramework Node.js Samples: https://github.com/Microsoft/BotBuilder/tree/master/Node

Bot Framework Scenario based samples: https://github.com/Microsoft/BotBuilder-Samples

Testing

Make sure your bot is fit for purpose:

Using ngrok for locahost testing: https://blogs.msdn.microsoft.com/jamiedalton/2016/07/29/ms-bot-framework-ngrok/

Unit and functional testing for bots: https://channel9.msdn.com/Series/DevOps-for-the-Bot-Framework/Testing-the-Bot-Framework

BotInsightsTests - sample code from the above video: https://github.com/nzthiago/BotInsightsTests

Unit testing for bots: https://www.microsoft.com/reallifecode/2017/01/20/unit-testing-for-bot-applications/

See how unit testing is done in the BotBuilder SDK: https://github.com/Microsoft/BotBuilder

Telemetry & Dashboards

Track how users are engaging with your bot in production:

Adding custom telemetry to your bot: https://blogs.msdn.microsoft.com/jamiedalton/2016/07/11/ms-bot-framework-formflow-build-and-deploy-a-bot-with-ease/

Visualising telemetry in your bot with Application Insights Analytics and PowerBI: https://blogs.msdn.microsoft.com/jamiedalton/2017/04/03/telemetry-in-your-bot-with-application-insights-analytics-and-powerbi/

Custom Dashboard for bots using App Insights: https://channel9.msdn.com/Series/DevOps-for-the-Bot-Framework/Telemetry-for-the-Bot-Framework

Bot Analytics Dashboard: https://channel9.msdn.com/events/Build/2017/P4160

Bot Analytics Dashboard repo: https://github.com/CatalystCode/ibex-dashboard

Continuous Integration & Continuous Deployment

Time to deploy:

CI/CD bot -> Azure walk through: https://blogs.msdn.microsoft.com/jamiedalton/2017/03/08/devops-with-bots-cicd-pipeline-with-the-botframework-and-azure-end-to-end-walkthrough/

Implementing Continuous Integration Builds for bots:  https://channel9.msdn.com/Series/DevOps-for-the-Bot-Framework/Continuous-Integration-for-the-Bot-Framework https://channel9.msdn.com/Series/DevOps-for-the-Bot-Framework/Continuous-Deployment-and-Release-Management-for-the-Bot-Framework

People and Process

Bots enable automation and can simulate conversation, so invariably they are going to have an effect on how people use them and the types of process they automate.  Take for example an IT Support center that uses a bot for triaging calls.  What happens if the bot is unable to resolve the end-user issue?  Is the user left hanging?  In some cases there is a need to supervise what the bot is doing/saying.

Supervising conversations with bot to human hand-off: https://blogs.msdn.microsoft.com/jamiedalton/2017/08/10/microsoft-bot-framework-handing-off-to-a-human-for-agentssupervisors-with-c-and-the-botbuilder-sdk/

Infinity & Beyond

Managing security tokens, LUIS retraining etc..

LUIS app secrets: https://blogs.msdn.microsoft.com/jamiedalton/2017/07/13/using-luisdialog-with-configurationmanager-or-environment-variables-for-your-keyssecrets/

Advanced considerations: https://channel9.msdn.com/Series/DevOps-for-the-Bot-Framework/More-Bot-Demos-and-Advanced-Considerations

Want more help?  For a wide ranging, list of other bot resources checkout my colleague Simon Michael's page: https://blogs.msdn.microsoft.com/smich/2016/09/30/microsoft-bot-framework-resources/