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/