{"id":13796,"date":"2017-12-15T10:42:13","date_gmt":"2017-12-15T15:42:13","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/bharry\/?p=13796"},"modified":"2019-02-27T06:04:12","modified_gmt":"2019-02-27T06:04:12","slug":"twitter-sentiment-as-a-release-gate","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/bharry\/twitter-sentiment-as-a-release-gate\/","title":{"rendered":"Twitter sentiment as a release gate"},"content":{"rendered":"<p>I&#8217;m really excited to talk about a new <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=ms-devlabs.vss-services-twittersentimentanalysis\">Twitter sentiment release gate extension<\/a> in the <span style=\"float: none; background-color: transparent; color: #333333; cursor: text; font-family: Georgia,'Times New Roman','Bitstream Charter',Times,serif; font-size: 16px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; line-height: 24px; text-align: left; text-decoration: none; text-indent: 0px;\">Visual Studio Team Services (VSTS)<\/span> marketplace today.\nBefore I say more, let me step back and give some context&#8230;<\/p>\n<p>Any responsible DevOps practice uses techniques to limit the damage done by bugs that get deployed into production.\u00a0 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.\u00a0 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.\u00a0 This way, any bug you deploy only affects a small fraction of your user base.\u00a0 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 &#8220;real&#8221; customers.\u00a0 None-the-less, sometimes issues make it through.<\/p>\n<p>Release gates are a new VSTS Release Management feature that we announced at our <a href=\"https:\/\/www.microsoft.com\/en-us\/connectevent\/default.aspx\">Connect(); event<\/a> in November.\u00a0 Release gates automate the waiting period between environments.\u00a0 They enable you to configure conditions that will cause the release wait.\u00a0 Out of the box, we provided two conditions &#8211; Azure monitoring alerts and Work item queries.\u00a0 Using the first, you can have your release hold if your monitoring alerts are indicating that the environments you&#8217;ve already deployed to are unhealthy.\u00a0 And the second allows you to automatically pause releases if anyone files a &#8220;blocking bug&#8221; against the release.<\/p>\n<p>However, one of the things I&#8217;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.\u00a0 Twitter can be a wonderful &#8220;alert&#8221; to let you know something is wrong with your app.<\/p>\n<p>The Twitter sentiment release gate we released today enables exactly this.\u00a0 It leverages VSTS, Azure functions and Microsoft AI to analyze sentiment on your Twitter handle and gate your release progress based on it.\u00a0 The current implementation of the analysis is relatively simple and serves as a sample as much as anything else.\u00a0 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.<\/p>\n<p>Once you install the <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=ms-devlabs.vss-services-twittersentimentanalysis\">Twitter sentiment extension<\/a> from the marketplace, you&#8217;ll need to follow the instructions to configure an Azure function to measure and analyze your sentiment.\u00a0 Then you can go into your VSTS release definition and you will find a new release gate enabled.\nStart by clicking on Post-deployment conditions on one of your environments.\n<a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/8\/2019\/02\/PostDeployment.png\"><img decoding=\"async\" class=\"alignnone wp-image-13805\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/8\/2019\/02\/PostDeployment.png\" alt=\"\" width=\"516\" height=\"237\" \/><\/a><\/p>\n<p>Then enable the release gates.\n<a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/8\/2019\/02\/EnableGates.png\"><img decoding=\"async\" class=\"alignnone wp-image-13806\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/8\/2019\/02\/EnableGates.png\" alt=\"\" width=\"544\" height=\"91\" \/><\/a><\/p>\n<p>Then choose the Twitter Sentiment item and configure it.\n<a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/8\/2019\/02\/AddTwitter.png\"><img decoding=\"async\" class=\"alignnone wp-image-13816\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/8\/2019\/02\/AddTwitter.png\" alt=\"\" width=\"579\" height=\"324\" \/><\/a><\/p>\n<p>Check it out.\u00a0 It&#8217;s very cool.\u00a0 And feel free to experiment with other ideas you have for creating interesting release gates.<\/p>\n<p>Note, right now the marketplace extension says it works for TFS.\u00a0 Actually it doesn&#8217;t.\u00a0 I&#8217;m working to get that fixed.\u00a0 TFS doesn&#8217;t support Release Gates yet.\u00a0 It will in a TFS 2018 Update but not yet.<\/p>\n<p>Thanks,\nBrian<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;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&#8230; Any responsible DevOps practice uses techniques to limit the damage done by bugs that get deployed into production.\u00a0 One of the [&hellip;]<\/p>\n","protected":false},"author":244,"featured_media":14617,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[9,21],"class_list":["post-13796","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","tag-vs-team-services","tag-vsts"],"acf":[],"blog_post_summary":"<p>I&#8217;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&#8230; Any responsible DevOps practice uses techniques to limit the damage done by bugs that get deployed into production.\u00a0 One of the [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/bharry\/wp-json\/wp\/v2\/posts\/13796","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/bharry\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/bharry\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/bharry\/wp-json\/wp\/v2\/users\/244"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/bharry\/wp-json\/wp\/v2\/comments?post=13796"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/bharry\/wp-json\/wp\/v2\/posts\/13796\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/bharry\/wp-json\/wp\/v2\/media\/14617"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/bharry\/wp-json\/wp\/v2\/media?parent=13796"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/bharry\/wp-json\/wp\/v2\/categories?post=13796"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/bharry\/wp-json\/wp\/v2\/tags?post=13796"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}