From b90148f7f7f2408f7384dbf1a67fdfc8251e76ba Mon Sep 17 00:00:00 2001 From: Florian Wagner Date: Fri, 20 Dec 2019 18:21:55 +0900 Subject: [PATCH] Updating Documenation (#10) Signed-off-by: Florian Wagner --- Doc/img/architecture.png | Bin 0 -> 117633 bytes GeoBot/GeoBot.Tests/README.md | 59 -------------- GeoBot/GeoBot/README.md | 96 ----------------------- LetsEncrypt/Archive/README.md | 16 +++- README.md | 140 +++++++++++++++++++++++++++------- 5 files changed, 126 insertions(+), 185 deletions(-) create mode 100644 Doc/img/architecture.png delete mode 100644 GeoBot/GeoBot.Tests/README.md delete mode 100644 GeoBot/GeoBot/README.md diff --git a/Doc/img/architecture.png b/Doc/img/architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..0b92d51695173985e24c1cca8b49016871273938 GIT binary patch literal 117633 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 z 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

0V#g`{P&mHgi`z;cx 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

t-EwNo!QsT_NmG@TQ{)luaU2JBj zX$zavAqzh#hS>&lquGYRZf`IY*``q{oSTUw>x|3_Rt;5 zkn*{-OR_zVwUbls27`Ph&H~*1Z@St=@05SzGZ2|!1tIE$mvm(QZlq7}DlThw=1RpbsYFi*av?id0WY zY!@LKYg~r4x{x(+p~$%P^1(cDAQs{jl-*m5SD1b!Xb@Uhmpjy~v;Ob9qOoW6(U+wR zieJ9)+l~+yr-)vQ(GOzM(Jn7>c8X3+%uN_k<0~mKuPj;rKKsD@LWZ)7TXyd1KjMqC zUsopSe$LLSTIginEAEKtf^}3`5*2+--ol)Qqk2|!lox+*=R?9Xf%R?COnX?tmtM3x zKb)$P)Wen}(34H!@UFN~cQ!5gp1wZ$r}p~w&_#=g;0U7Q=~yR^&Mq!igJ4Py(ki8J zH8wUj7al)-n5N_BhVH4JF!gZ%q4#bdqc5vf`P#@7uB=X%s z7p6;J(ZKfC3s)O2Rwq@WURI+f^iB(0cJcKj(xWnk#87aZ?j zioLtmHNX6`VJs|bXVx)}J62KSC!dllokRgR@|gRI*vnGt(pa+u{l+GTHeP)`{pPm4 z#OU0-D;lQG`dh!N&bkiXHu~Dz%{Kp0fxD+?RVBY4Zoe@OxmxID&cVgi3q1x|FpvtN z&3HPzf4�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 Jf?LLq{vWOY;duZ6 literal 0 HcmV?d00001 diff --git a/GeoBot/GeoBot.Tests/README.md b/GeoBot/GeoBot.Tests/README.md deleted file mode 100644 index 0a8f96e..0000000 --- a/GeoBot/GeoBot.Tests/README.md +++ /dev/null @@ -1,59 +0,0 @@ - -# GeoBot.Tests - -Bot Framework v4 core bot tests sample. - -This project uses the [Microsoft.Bot.Builder.Testing](https://www.nuget.org/packages/Microsoft.Bot.Builder.Testing/) package, [XUnit](https://xunit.net/) and [Moq](https://github.com/moq/moq) to create unit tests for the [CoreBot](../13.core-bot) bot. - -This project shows how to: - -- Create unit tests for dialogs, bots and controllers -- Create different types of data driven tests using XUnit `Theory` tests -- Create mock objects for the different dependencies of a dialog (i.e. LUIS recognizers, other dialogs, configuration, etc.) -- Assert the activities returned by a dialog turn against expected values -- Assert the results returned by a dialog - -## Overview - -In this sample, dialogs are unit tested through the `DialogTestClient` class which provides a mechanism for testing them in isolation outside of a bot and without having to deploy your code to a web service. - -This class is used to write unit tests for dialogs that test their responses on a turn-by-turn basis. Any dialog built using the botbuilder dialogs library should work. - -Here is a simple example on how a test that uses `DialogTestClient` looks like: - -```csharp -var sut = new BookingDialog(); -var testClient = new DialogTestClient(Channels.Msteams, sut); - -var reply = await testClient.SendActivityAsync("hi"); -Assert.Equal("Where would you like to travel to?", reply.Text); - -reply = await testClient.SendActivityAsync("Seattle"); -Assert.Equal("Where are you traveling from?", reply.Text); - -reply = await testClient.SendActivityAsync("New York"); -Assert.Equal("When would you like to travel?", reply.Text); - -reply = await testClient.SendActivityAsync("tomorrow"); -Assert.Equal("OK, I will book a flight from Seattle to New York for tomorrow, Is this Correct?", reply.Text); - -reply = await testClient.SendActivityAsync("yes"); -Assert.Equal("Sure thing, wait while I finalize your reservation...", reply.Text); - -reply = testClient.GetNextReply(); -Assert.Equal("All set, I have booked your flight to Seattle for tomorrow", reply.Text); -``` - -The project includes several examples on how to test different bot components: - -- [CancelAndHelpDialogTests](Dialogs/CancelAndHelpDialogTests.cs) shows how to write a simple data driven test for `CancelAndHelpDialog` using `InlineData`. -- [BookingDialogTests](Dialogs/BookingDialogTests.cs) shows how to write `Theory` tests using the `MemberData` attribute that call a helper `BookingDialogTestsDataGenerator` class to generate the test cases. -- [MainDialogTests](Dialogs/MainDialogTests.cs) showcases how to use mock objects to mock the dialog's LUIS and `BookingDialog` dependencies to test `MainDialog` in isolation. -- [DialogAndWelcomeBotTests](Bots/DialogAndWelcomeBotTests.cs) provides an example on how to write a test for the bot's `ActivityHandler` using `TestAdapter`. - -## Further reading - -- [How to unit test bots](https://aka.ms/cs-unit-test-docs) -- [XUnit](https://xunit.net/) -- [Moq](https://github.com/moq/moq) -- [Bot Testing](https://github.com/microsoft/botframework-sdk/blob/master/specs/testing/testing.md) diff --git a/GeoBot/GeoBot/README.md b/GeoBot/GeoBot/README.md deleted file mode 100644 index 5362c08..0000000 --- a/GeoBot/GeoBot/README.md +++ /dev/null @@ -1,96 +0,0 @@ -# GeoBot - -Bot Framework v4 core bot sample. - -This bot has been created using [Bot Framework](https://dev.botframework.com), it shows how to: - -- Use [LUIS](https://www.luis.ai) to implement core AI capabilities -- Implement a multi-turn conversation using Dialogs -- Handle user interruptions for such things as `Help` or `Cancel` -- Prompt for and validate requests for information from the user - -## Prerequisites - -This sample **requires** prerequisites in order to run. - -### Overview - -This bot uses [LUIS](https://www.luis.ai), an AI based cognitive service, to implement language understanding. - -### Install .NET Core CLI - -- [.NET Core SDK](https://dotnet.microsoft.com/download) version 2.1 - - ```bash - # determine dotnet version - dotnet --version - ``` - -### Create a LUIS Application to enable language understanding - -The LUIS model for this example can be found under `CognitiveModels/FlightBooking.json` and the LUIS language model setup, training, and application configuration steps can be found [here](https://docs.microsoft.com/en-us/azure/bot-service/bot-builder-howto-v4-luis?view=azure-bot-service-4.0&tabs=cs). - -Once you created the LUIS model, update `appsettings.json` with your `LuisAppId`, `LuisAPIKey` and `LuisAPIHostName`. - -```json - "LuisAppId": "Your LUIS App Id", - "LuisAPIKey": "Your LUIS Subscription key here", - "LuisAPIHostName": "Your LUIS App region here (i.e: westus.api.cognitive.microsoft.com)" -``` - -## To try this sample - -- In a terminal, navigate to `GeoBot` - - ```bash - # change into project folder - cd GeoBot - ``` - -- Run the bot from a terminal or from Visual Studio, choose option A or B. - - A) From a terminal - - ```bash - # run the bot - dotnet run - ``` - - B) Or from Visual Studio - - - Launch Visual Studio - - File -> Open -> Project/Solution - - Navigate to `GeoBot` folder - - Select `GeoBot.csproj` file - - Press `F5` to run the project - -## Testing the bot using Bot Framework Emulator - -[Bot Framework Emulator](https://github.com/microsoft/botframework-emulator) is a desktop application that allows bot developers to test and debug their bots on localhost or running remotely through a tunnel. - -- Install the Bot Framework Emulator version 4.5.0 or greater from [here](https://github.com/Microsoft/BotFramework-Emulator/releases) - -### Connect to the bot using Bot Framework Emulator - -- Launch Bot Framework Emulator -- File -> Open Bot -- Enter a Bot URL of `http://localhost:3978/api/messages` - -## Deploy the bot to Azure - -To learn more about deploying a bot to Azure, see [Deploy your bot to Azure](https://aka.ms/azuredeployment) for a complete list of deployment instructions. - -## Further reading - -- [Bot Framework Documentation](https://docs.botframework.com) -- [Bot Basics](https://docs.microsoft.com/azure/bot-service/bot-builder-basics?view=azure-bot-service-4.0) -- [Dialogs](https://docs.microsoft.com/en-us/azure/bot-service/bot-builder-concept-dialog?view=azure-bot-service-4.0) -- [Gathering Input Using Prompts](https://docs.microsoft.com/en-us/azure/bot-service/bot-builder-prompts?view=azure-bot-service-4.0&tabs=csharp) -- [Activity processing](https://docs.microsoft.com/en-us/azure/bot-service/bot-builder-concept-activity-processing?view=azure-bot-service-4.0) -- [Azure Bot Service Introduction](https://docs.microsoft.com/azure/bot-service/bot-service-overview-introduction?view=azure-bot-service-4.0) -- [Azure Bot Service Documentation](https://docs.microsoft.com/azure/bot-service/?view=azure-bot-service-4.0) -- [.NET Core CLI tools](https://docs.microsoft.com/en-us/dotnet/core/tools/?tabs=netcore2x) -- [Azure CLI](https://docs.microsoft.com/cli/azure/?view=azure-cli-latest) -- [Azure Portal](https://portal.azure.com) -- [Language Understanding using LUIS](https://docs.microsoft.com/en-us/azure/cognitive-services/luis/) -- [Channels and Bot Connector Service](https://docs.microsoft.com/en-us/azure/bot-service/bot-concepts?view=azure-bot-service-4.0) diff --git a/LetsEncrypt/Archive/README.md b/LetsEncrypt/Archive/README.md index 8713aad..1463705 100644 --- a/LetsEncrypt/Archive/README.md +++ b/LetsEncrypt/Archive/README.md @@ -14,4 +14,18 @@ I tested this approach and while it is working fine (also for Custom DNS Name if - Bad Hack to get the file back to the client (but maybe interesting in some ACI troubleshooting hacks, that is why I save this work here) - Overall maybe a not so ideal solution from a security perspective to save the SSL certificate locally and chain it back to the Terraform script. -I will come up with a better more reproducible solution. \ No newline at end of file +I will come up with a better more reproducible solution. But until then: + +```bash +cd LetsEncrypt\Archive + +az group create -name rg-geobot-global -location japaneast + +.\IssueSSLCertificate.ps1 -YOUR_CERTIFICATE_EMAIL -YOUR_DOMAIN .trafficmanager.net -BOT_NAME -PFX_EXPORT_PASSWORD +``` + +Known issues/drawbacks/things to be reminded of for this script: + +- __the BotName has to be unique__ since several Azure services will use it as prefix. Stick to lowercase no dashes and special chars and less than 20char. e.g. **myfirstname1234** +- due to a bug in the current setup a complex password with special characters **may not work** as expected +- the Terraform script in [Step 3](#3-deploy-the-solution) was created before realizing the need of creating a trusted SSL certificate, we will already deploy the TrafficManager in this step. In order to match with the default values of the current Terraform script, the resource group `rg-geobot-global` and location `japaneast` are correct. If you modify these values of the Terraform script either delete it (the resource group) after Step 2 before running Step 3 or match the values accordingly diff --git a/README.md b/README.md index 96530b0..ab53a06 100644 --- a/README.md +++ b/README.md @@ -1,31 +1,80 @@ -# Azure Bot Framework based Geo Distributed Bot with failover capability +# Azure Bot Framework based Geo Distributed Bot with failover capability -## EXPLAIN WHY THIS IS NEEDED -## INCLUDE HIGH LEVEL ARCHITECTURE +This repo contains deployment scripts and a sample bot to spin up a geo distributed and geo failover capable bot, which can be accessed like any other Azure Bot Framework Service based bot via the Bot Framework Service Channels (Directline/WebChat and may more). -## INCLUDE OPEN POINTS -## INCLUDE NEXT STEPS +The idea of this repo is to give you a full working starting point for a Azure Cloud Native architecture pattern from where you can customize it for your Bot and your needs. -## Tasks and order of execution +This repo focuses on the surrounding architectural aspects rather than to have a good conversational AI experience. + +Things you can learn about (most are Bot unrelated): + +- **Centralized and secure** configuration of services +- Simple but powerful **Auto-Failover** capabilities by cloud architecture design +- **Advanced Terraform** functionalities like __for_each__ and __dynamic__ +- Fully **automated LUIS deployment** for CI/CD pipelines +- Automated Let's encrypt certification issuing + +## Why should I care? + +Most bot projects focusing on the user experience and natural language processing and other AI capabilities of the bot. +But as this bot becomes a main core service of your organization it will be critical that you can provide a **globally spanning bot service** and have a **integrated failover/always-on architecture** or strategy even in the (unlikely) downtime of a whole Azure region. + +Since there is limited guidance on how to create such an architecture we started creating this repo as an idea book. + +## The big picture + +We don't claim that this is the only valid architecture. There are a lot of ways to build this and to customize and improve from this base architecture on. + +![The used architecture](Doc/img/architecture.png) + +### Architecture explanation + +Your client apps or channels (Teams, Slack, Facebook Messenger) connect via the Azure Bot Frameworks Server (BFS), a already globally distributed service, to your bot. We configure BFS to use a Traffic Manager endpoint with 'Performance' mode. So Traffic Manager will lookup the bot which is nearest to the current connected BFS instance, which should be the same as the nearest to the client/user. TrafficManager is also capable of doing a healthcheck on the registered endpoints, which allows the regional failover by design. + +Doing this comes actually with a price, BFS by design requires the Bot endpoint to have a valid trust chain SSL certificate in place, so we can not just create a self-signed SSL for a test run or demo. + +In order to easily deploy the bot (and to be able to create a lean CI/CD pipeline), the bot(s) will reference a central configuration store, KeyVault to retrieve all configuration. The bot will be deployed as a .NET Core application into WebApps (on App Service). + +For each region where we deploy a bot we also use the LUIS service in the same region to get a good latency. For storing the state of the conversations we are using CosmosDB in MultiMaster mode, so that even in case of failover the conversation can continue from the point where it was. + +To ease out additional complexity overhead we introduced a healthcheck API within the bot which checks for availability of LUIS and CosmosDB. In case of one failure of one component the whole region will be failed-over which is maybe a bit harsh. You can extend each individual service to provide more regional failover and high availability, but as introduced we have to draw a line somewhere. + +We are not using any other global or reginal services but for a better visualization they are displayed in the architecture picture. + +### Design decisions + +- Using TrafficManager with Performance profile in order to "dispatch" to the nearest available region/bot. +- Using KeyVault as central configuration store even for non-secret config (App Configuration Services can be used also but is still in preview and to keep the amount of services low) +- Using MultiMaster CosmosDB as state store, maybe you won't need a global MultiMaster CosmosDB, maybe for a bigger geographical region like North America or Europe separate CosmosDB MultiMaster clusters would be just fine. +- Placing all global services (management pane - Traffic Manager, Bot Registration) into a separate Azure region +- Putting the Healthcheck API within the bot (to reduce complexity/additional code and services) + +## Try it yourself + +Please report any problems you face under issues! + +### Prerequisites for all tasks -Prerequisites for all tasks: - PowerShell Core >6.2.3 - Terraform >0.12.17 - Azure CLI >2.0.71 - Be logged into Azure CLI and having Subscription Level Owner or Contributor rights on the "isDefault" marked subscription -1. Creation of AAD AppId and Secret (All AAD Tenants and Microsoft Personal Accounts) including a Service Principal (Enterprise App) -2. Issuing a SSL certificate for the .trafficmanager.net domain +### Summary of steps + +1. Creation of AAD AppId and Secret (Bot Framework requires the App to be available for AAD all tenants) +2. Issuing a SSL certificate for the `yourbotname`.trafficmanager.net domain, or your custom domain (WIP) 3. Deploying the Infrastructure & Sample Bot 4. Testing Bot and Failover 5. Destroying the Infrastructure +6. Deploy it again ---- +### 1. Creation of AAD AppId -1. Creation of AAD AppId +Your bot will need a AAD Application registered as a prerequisite for Bot Framework. -```pwsh -# Create AAD application +```bash +# Create AAD application az ad app create --display-name --available-to-other-tenants --reply-urls 'https://token.botframework.com/.auth/web/redirect' # Retrieve Application Id @@ -33,20 +82,26 @@ $appId=$(az ad app list --display-name --query '[0].appId' -o tsv) # Create Application Password $appPassword=$(az ad app credential reset --id $appId --query 'password' -o tsv) + +# Echo AppId and Password/Secret +echo "Your Bot's`nApp ID: $appId`nSecret: $appPassword" ``` -2. Issuing a SSL Certificate +### 2. Issuing a SSL Certificate + +You can use the script provided [here](LetsEncrypt\Archive). Searching another/better pattern to do it. -You can use the script provided [here](LetsEncrypt\Archive\). Searching another/better pattern to do it. +For testing/demoing `Let's Encrypt` is a good way but it has rate limitations (top level domain 50 per week more info [here](https://letsencrypt.org/docs/rate-limits/)). -For testing/demoing `Let's Encrypt` is a good way but it has rate limitations (top level domain 50 per week). -So use it wisely and try to reuse the SSL certificate. For `Production` environments we strongly recommend a Custom Domain Name and to use certificate issuing via [AppServices](https://docs.microsoft.com/en-us/azure/app-service/configure-ssl-certificate) or your preferred CA (Certificate Authority). +So use it wisely and try to reuse the SSL certificate. Even this architecture is capable of handling and be easily scaled out for production environments we strongly recommend a Custom Domain Name and to use certificate issuing via [AppServices](https://docs.microsoft.com/en-us/azure/app-service/configure-ssl-certificate) or your preferred CA (Certificate Authority). -For testing/demoing - -__The BotName has to be unique since several Azure services will use it as prefix. Stick to lowercase no dashes and special chars and less than 20char. e.g. myfirstname1234__ +Known issues/drawbacks: -__due to a bug in the current setup a complex password with special characters may not work as expected__ -```pwsh +- __the BotName has to be unique__ since several Azure services will use it as prefix. Stick to lowercase no dashes and special chars and less than 20char. e.g. **myfirstname1234** +- due to a bug in the current setup a complex password with special characters **may not work** as expected +- the Terraform script in [Step 3](#3-deploy-the-solution) was created before realizing the need of creating a trusted SSL certificate, we will already deploy the TrafficManager in this step. In order to match with the default values of the current Terraform script, the resource group `rg-geobot-global` and location `japaneast` are correct. If you modify these values of the Terraform script either delete it (the resource group) after Step 2 before running Step 3 or match the values accordingly + +```bash cd LetsEncrypt\Archive az group create -name rg-geobot-global -location japaneast @@ -54,18 +109,27 @@ az group create -name rg-geobot-global -location japaneast .\IssueSSLCertificate.ps1 -YOUR_CERTIFICATE_EMAIL -YOUR_DOMAIN .trafficmanager.net -BOT_NAME -PFX_EXPORT_PASSWORD ``` -3. Deploy the Solution +### 3. Deploy the Solution + +The solution will deploy to three Azure regions: + +- Global/central artifacts: __japaneast__ +- Bot: __koreacentral__ and __southeastasia__ + +You can easily expand the amount of regions by adding regions to the terraform variable [file](Deploy/IaC/variables.tf). +The only requirement is that in that region both LUIS and AppService are available. -__The BotName has to be the same as in Step 2.__ +Things to keep in mind: -__The PFX password has to be the same as in Step 2.__ -```pwsh +- __The BotName has to be the same as in Step 2.__ +- __The PFX password has to be the same as in Step 2.__ +```bash cd ..\..\Deploy .\OneClickDeploy.ps1 -BOT_NAME -MICROSOFT_APP_ID -MICROSOFT_APP_SECRET -PFX_FILE_LOCATION ..\LetsEncrypt\Archive\letsencrypt.pfx -PFX_FILE_PASSWORD ``` -4. Testing Bot and Failover +### 4. Testing Bot and Failover Grab your Directline key from the [Bot Channel Registration pane](https://docs.microsoft.com/en-us/azure/bot-service/bot-service-channel-connect-directline?view=azure-bot-service-4.0). @@ -74,8 +138,26 @@ Use the provided Test Webchat static [index.html](WebChat\index.html) and paste Break something (removing LUIS Endpoint Key in luis.ai, Stop the WebApp your bot responds from) -5. Destroying everything +### 5. Destroying everything + +There are currently 2 dependency issues between how Azure works and how Terraform resolves dependencies while destroying an environment. In order to get a clean destroy we need to delete first the TrafficManager and the KeyVault and then going through the Terraform destroy phase. For Terraform, it needs the same parameters as in the __apply__ step, that is why you have to provide these details again. -```pwsh +```bash .\OneClickDestroy.ps1 -BOT_NAME -MICROSOFT_APP_ID -MICROSOFT_APP_SECRET -PFX_FILE_LOCATION ..\LetsEncrypt\Archive\letsencrypt.pfx -PFX_FILE_PASSWORD -``` \ No newline at end of file +``` + +__Remark: the AAD Application does not get deleted__ + +### 6. Deploying again + +Please reuse your AppID/Password and the Let's Encrypt certificate (it is valid for 3 months). So just skip [Step 1](#1-creation-of-aad-appid) and [Step 2](#2-issuing-a-ssl-certificate). + +## Open points and next steps + +Listing up various things from different domain/view angles: + +- Refactoring Deployment process to better include reuse of created SSL certificates and custom domain names, improve security aspects (no local download of PFX file) and some issues with resource naming in the current version +- Extend Bot with Geo distributed Speech service +- Include scripts to simulate different type of failures +- Create a containerized version where AppService will be replaced with Azure Kubernetes Service or Azure Container Instances +- Create a version where LUIS and Speech service runs on the same AKS as the bot \ No newline at end of file