You will learn how to architect a geo-redundant Azure serverless solution that handles commands from a Slack App built to randomly choose a channel member to perform a code review for your team.

Flow

  • User installs app into their workspace from the Slack App directory
  • An Azure Function stores permission tokens for the user in Azure Cosmos DB
  • User types /codereview into a Slack channel
  • Slack posts request to Azure Traffic Manger
  • Traffic Manager chooses an Azure Function endpoint based on "Performance"
  • The Azure Function adds a message to an Azure Service Bus queue and returns 200 OK to Slack
  • Another Azure Function processes the service bus message and uses Slack APIs to read the channel members, randomly choose one, and then posts its choice back to Slack

DevOps

The code will be stored in an Azure Git repository. Azure DevOps pipelines will be used to setup a continuous integration / continuous deployment to Azure on code commits. Attendees will be provided a link to download the code and presentation.