{"id":28235,"date":"2017-03-03T02:50:23","date_gmt":"2017-03-03T10:50:23","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/visualstudioalm\/?p=28235"},"modified":"2019-02-14T15:55:47","modified_gmt":"2019-02-14T23:55:47","slug":"deployment-groups","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/devops\/deployment-groups\/","title":{"rendered":"Agent-based deployment in Release Management"},"content":{"rendered":"<p>Release Management now supports robust in-the-box multi-machine deployment. You\u00a0can now orchestrate \u00a0deployments across multiple machines, perform rolling updates while ensuring high availability of the application throughout.<\/p>\n<p>Agent based deployment\u00a0capability relies on the same build and deployment agents. However, unlike the current approach, where you install the build and deployment agents on a set of proxy servers in an agent pool and drive deployments to remote target servers, you install the agent on each of your target servers directly and drive rolling deployment to those servers.<\/p>\n<p><strong>Preview<\/strong><\/p>\n<p>Agent based deployment feature is currently in early adopter phase.\u00a0Submit requests\u00a0for participation and suggestions <a href=\"mailto:roopesh.nair@microsoft.com\">here<\/a><span>.<\/span><\/p>\n<p><strong>Deployment Group<\/strong><\/p>\n<p>Deployment group is a logical group of targets (machines) with agents installed on each of them.\u00a0Deployment groups represent your physical environments\u00a0like single box Dev, multi-machine QA or farm of machines for UAT\/Prod.\u00a0They also specify the security context for your physical environments.<\/p>\n<p><strong><\/strong>Here are a few\u00a0screenshots to explain how this experience is shaping up.<\/p>\n<ul>\n<li><strong>Create<\/strong>\u00a0your &#8216;Deployment Group&#8217;, \u00a0register your machines with the cmdlet.<img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2017\/03\/CreateDeploymentGroup.png\" alt=\"createdeploymentgroup\" width=\"2559\" height=\"1253\" class=\"aligncenter wp-image-28245 size-full\" \/><\/li>\n<\/ul>\n<ul>\n<li><strong>Author release definition: <\/strong>If you are deploying to farm of servers, you can use deployment configuration options viz., one target\u00a0at a time, or half the targets at a time, or deploy to all targets at once, or use custom value.\u00a0<a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/6\/2019\/05\/DeploytoDeploymengGroup1.png\">\n<\/a><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/6\/2019\/05\/DeploymentGroupPhase.png\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2017\/03\/DeploymentGroupPhase.png\" alt=\"deploymentgroupphase\" width=\"2555\" height=\"1251\" class=\"aligncenter wp-image-28265 size-full\" \/><\/a><\/li>\n<li><strong>Deploy:\u00a0<\/strong>view live logs for each server, download logs for all servers. Track your deployments steps for each server using Release log view.<a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/6\/2019\/05\/DeploymentGroupLiveLogs.png\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2017\/03\/DeploymentGroupLiveLogs.png\" alt=\"deploymentgrouplivelogs\" width=\"2539\" height=\"1258\" class=\"aligncenter wp-image-28275 size-full\" \/><\/a><\/li>\n<li><strong>Manage: <\/strong>Track the deployments down to each machine. Tag the machine in the group so that you can deploy to the targets having specific tags.<a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/6\/2019\/05\/DeploymentGroups.png\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2017\/03\/DeploymentGroups.png\" alt=\"deploymentgroups\" width=\"2555\" height=\"1252\" class=\"aligncenter wp-image-28255 size-full\" \/><\/a><\/li>\n<\/ul>\n<p><strong>Bootstraping agents:\u00a0<\/strong>We have made bootstrapping the agents on the target simpler. You can just copy-paste the cmdlet appropriate for the OS and it will take care of downloading, installation and configuring the agent against the deployment group. It even has an option to generate the cmdlet with &#8216;Personal Access Token&#8217; with right scope so that you don&#8217;t have to.<\/p>\n<ul>\n<li>If it is Azure, you can do it on-demand using Team Services extension for the VM or use Azure PowerShell\/CLI to add the extension which will bootstrap the deployment agent. Or you can automate using resource extension in the Azure template json.<\/li>\n<li>We plan to enhance &#8216;Azure Resource Group&#8217; task to dynamically bootstrap agents on the newly provisioned \/ pre-existing Virtual Machines on Azure.<a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/6\/2019\/05\/TeamServicesAgent.png\"><img decoding=\"async\" width=\"1678\" height=\"930\" class=\"wp-image-26365 alignnone\" alt=\"teamservicesagent\" src=\"https:\/\/devblogs.microsoft.com\/devops\/wp-content\/uploads\/sites\/6\/2017\/03\/TeamServicesAgent.png\" \/><\/a><\/li>\n<\/ul>\n<p>With this you can use the same proven cross-platform agent and its pull-based execution model to easily drive deployments on a large number of servers no matter which domain they are on, without having to worry about the myriad of pre-requisites.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Release Management now supports robust in-the-box multi-machine deployment. You\u00a0can now orchestrate \u00a0deployments across multiple machines, perform rolling updates while ensuring high availability of the application throughout. Agent based deployment\u00a0capability relies on the same build and deployment agents. However, unlike the current approach, where you install the build and deployment agents on a set of proxy [&hellip;]<\/p>\n","protected":false},"author":62,"featured_media":45953,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[224,226,1],"tags":[],"class_list":["post-28235","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-azure","category-ci","category-devops"],"acf":[],"blog_post_summary":"<p>Release Management now supports robust in-the-box multi-machine deployment. You\u00a0can now orchestrate \u00a0deployments across multiple machines, perform rolling updates while ensuring high availability of the application throughout. Agent based deployment\u00a0capability relies on the same build and deployment agents. However, unlike the current approach, where you install the build and deployment agents on a set of proxy [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/posts\/28235","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/users\/62"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/comments?post=28235"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/posts\/28235\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/media\/45953"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/media?parent=28235"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/categories?post=28235"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/devops\/wp-json\/wp\/v2\/tags?post=28235"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}