I’m really excited to talk about a new Twitter sentiment release gate extension in the Visual Studio Team Services (VSTS) marketplace today.
Before I say more, let me step back and give some context…
Any responsible DevOps practice uses techniques to limit the damage done by bugs that get deployed into production. One of the common techniques is to break up a production environment into a set of separate instances of an app and then configure deployments to only update one instance at a time, with a waiting period between them. During that waiting period, you watch for any signs (telemetry, customer complaints, etc.) that there is a problem and if so, halt the deployment, fix the issue and then continue the deployment. This way, any bug you deploy only affects a small fraction of your user base. In fact, often, the first product environment in the sequence is often one only available to internal people in your organization so you can validate the changes before they hit “real” customers. None-the-less, sometimes issues make it through.
Release gates are a new VSTS Release Management feature that we announced at our Connect(); event in November. Release gates automate the waiting period between environments. They enable you to configure conditions that will cause the release wait. Out of the box, we provided two conditions – Azure monitoring alerts and Work item queries. Using the first, you can have your release hold if your monitoring alerts are indicating that the environments you’ve already deployed to are unhealthy. And the second allows you to automatically pause releases if anyone files a “blocking bug” against the release.
However, one of the things I’ve learned is that no amount of monitoring will catch every single problem and, particularly, if you have a popular application, your users will know within seconds and turn very quickly to Twitter to start asking about the problem. Twitter can be a wonderful “alert” to let you know something is wrong with your app.
The Twitter sentiment release gate we released today enables exactly this. It leverages VSTS, Azure functions and Microsoft AI to analyze sentiment on your Twitter handle and gate your release progress based on it. The current implementation of the analysis is relatively simple and serves as a sample as much as anything else. It shows how easy it is to extend VSTS release gates to measure any signal you choose and use that signal to manage your release process.
Once you install the Twitter sentiment extension from the marketplace, you’ll need to follow the instructions to configure an Azure function to measure and analyze your sentiment. Then you can go into your VSTS release definition and you will find a new release gate enabled.
Start by clicking on Post-deployment conditions on one of your environments.
Then enable the release gates.
Then choose the Twitter Sentiment item and configure it.
Check it out. It’s very cool. And feel free to experiment with other ideas you have for creating interesting release gates.
Note, right now the marketplace extension says it works for TFS. Actually it doesn’t. I’m working to get that fixed. TFS doesn’t support Release Gates yet. It will in a TFS 2018 Update but not yet.