{"id":12446,"date":"2017-06-14T09:30:29","date_gmt":"2017-06-14T16:30:29","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/visualstudio\/?p=12446"},"modified":"2019-03-01T22:47:02","modified_gmt":"2019-03-02T06:47:02","slug":"take-your-web-app-to-azure","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/visualstudio\/take-your-web-app-to-azure\/","title":{"rendered":"Take your web app to Azure"},"content":{"rendered":"<p>You\u2019ve built your web app. It\u2019s running, and getting good traffic. Now you need to move on to solving the \u2018good problems\u2019 to have. You want to scale your app to support more users, but only at peak times. Or you need better hardware and simply don\u2019t want to manage that hardware\u2026 or software, or even the network. What if you just want to improve your app\u2019s reliability? Any of these may be reasons to look at hosting your app in Azure. Azure gives you a variety of hosting options so you can balance cost, performance, and ease of management; and Visual Studio makes it simple to deploy and manage your apps in Azure.<\/p>\n<p>Visual Studio 2017 gives you options to publish your app directly from your desktop, or to use Visual Studio Team Services to setup a <a href=\"https:\/\/aka.ms\/vstscicd\">CI\/CD pipeline<\/a>. Need to add monitoring and diagnostics to your app? Right click to connect to the <a href=\"https:\/\/azure.microsoft.com\/en-us\/services\/application-insights\/\">Application Insights<\/a> service. Want to secure your app with <a href=\"https:\/\/azure.microsoft.com\/en-us\/services\/active-directory\/\">Azure Active Directory<\/a>? Right click and add. Need to add a <a href=\"https:\/\/azure.microsoft.com\/en-us\/services\/sql-database\/\">SQL Database<\/a> to your Azure app? You can easily make it part of your publishing process.<\/p>\n<h2>Publishing to Azure<\/h2>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/4\/2019\/06\/Take-your-web-app-to-Azure-Publishing-to-Azure.png\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" class=\"\" style=\"float: right;\" title=\"Publishing to Azure\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2017\/06\/Take-your-web-app-to-Azure-Publishing-to-Azure-1857.png\" alt=\"Publishing to Azure\" width=\"326\" height=\"294\" align=\"right\" \/> <\/a><\/p>\n<p>Publishing your Visual Studio 2017 app to Azure is as simple as right-clicking your app\u2019s project node and choosing to publish. From there you can choose to create new resources in Azure or select from existing resources to update your existing application. To make this work, you only need an Azure subscription, which you can set up for free with <a href=\"https:\/\/www.visualstudio.com\/dev-essentials\/\">Visual Studio Dev Essentials<\/a> (which will also get you access to training materials and other tools) or the <a href=\"https:\/\/azure.microsoft.com\/free\/\">free Azure trial<\/a>.<\/p>\n<p>Now that you are set to publish we can publish to existing resources, or we can create new resources. Choosing new resources is simple and straightforward, just find them in your subscription and you are all set. Follow the publishing steps, and in a few minutes your app will be deployed.<\/p>\n<p>But what if you need to create new resources, how do you decide what resources to create? It all depends on you and your app, there is no right or wrong answer. Since the publishing steps are pretty much the same, let\u2019s look at some of the capabilities of each hosting option:<\/p>\n<table style=\"width: 760px;\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td style=\"width: 25%;\" valign=\"top\"><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/4\/2019\/06\/Take-your-web-app-to-Azure-Virtual-Machines.png\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" class=\"aligncenter\" title=\" Virtual Machines\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2017\/06\/Take-your-web-app-to-Azure-Virtual-Machines-1857.png\" alt=\"Virtual Machines\" width=\"150\" height=\"125\" \/><\/a><\/td>\n<td style=\"width: 25%;\" valign=\"top\"><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2017\/06\/Take-your-web-app-to-Azure-App-Service-2.png\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" class=\"wp-image-223304 aligncenter\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2019\/02\/Take-your-web-app-to-Azure-App-Service-2.png\" alt=\"\" width=\"133\" height=\"105\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2019\/02\/Take-your-web-app-to-Azure-App-Service-2.png 1193w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2019\/02\/Take-your-web-app-to-Azure-App-Service-2-300x236.png 300w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2019\/02\/Take-your-web-app-to-Azure-App-Service-2-768x603.png 768w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2019\/02\/Take-your-web-app-to-Azure-App-Service-2-1024x804.png 1024w\" sizes=\"(max-width: 133px) 100vw, 133px\" \/><\/a><\/td>\n<td style=\"width: 25%;\" valign=\"top\"><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/4\/2019\/06\/Take-your-web-app-to-Azure-Service-Fabric-e1497331818671.png\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" class=\"aligncenter\" title=\"Service Fabric\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2017\/06\/Take-your-web-app-to-Azure-Service-Fabric-e1497331818671-1857.png\" alt=\"Service Fabric\" width=\"150\" height=\"141\" \/><\/a><\/td>\n<td style=\"width: 25%;\" valign=\"top\"><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/4\/2019\/06\/Take-your-web-app-to-Azure-Docker-and-Containers.png\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" class=\"aligncenter\" title=\"Docker and Containers\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2017\/06\/Take-your-web-app-to-Azure-Docker-and-Containers-1857.png\" alt=\"Docker and Containers\" width=\"150\" height=\"130\" \/><\/a><\/td>\n<\/tr>\n<tr>\n<td style=\"width: 25%; text-align: center;\" valign=\"top\"><span style=\"font-size: 10pt;\"><a href=\"https:\/\/azure.microsoft.com\/en-us\/services\/virtual-machines\/\">Virtual Machines<\/a><\/span><\/td>\n<td style=\"width: 25%; text-align: center;\" valign=\"top\"><span style=\"font-size: 10pt;\"><a href=\"https:\/\/azure.microsoft.com\/en-us\/services\/app-service\/\">App Service<\/a><\/span><\/td>\n<td style=\"width: 25%; text-align: center;\" valign=\"top\"><span style=\"font-size: 10pt;\"><a href=\"https:\/\/azure.microsoft.com\/en-us\/services\/service-fabric\/\">Service Fabric<\/a><\/span><\/td>\n<td style=\"width: 25%; text-align: center;\" valign=\"top\"><span style=\"font-size: 10pt;\"><a href=\"https:\/\/azure.microsoft.com\/en-us\/services\/container-service\">Docker &amp; Containers<\/a><\/span><\/td>\n<\/tr>\n<tr>\n<td style=\"width: 25%;\" valign=\"top\">\n<ul>\n<li><span style=\"font-size: 10pt;\">Infrastructure as a Service (IaaS)<\/span><\/li>\n<li><span style=\"font-size: 10pt;\">Supporting Linux and Windows VM\u2019s<\/span><\/li>\n<li><span style=\"font-size: 10pt;\">Quickly move existing applications to the cloud, because you have full control over the configuration of the Virtual Machine<\/span><\/li>\n<li><span style=\"font-size: 10pt;\">See how to deploy your app to a Virtual Machine at: <a href=\"http:\/\/aka.ms\/deployvm\">aka.ms\/deployvm<\/a><\/span><\/li>\n<\/ul>\n<\/td>\n<td style=\"width: 25%;\" valign=\"top\">\n<ul>\n<li><span style=\"font-size: 10pt;\">Platform as a Service (PaaS)<\/span><\/li>\n<li><span style=\"font-size: 10pt;\">Supporting Linux and Windows OS\u2019s<\/span><\/li>\n<li><span style=\"font-size: 10pt;\">Unified development and management experiences eliminate the confusion of disparate services and providers, resulting in less navigation and lower overhead<\/span><\/li>\n<li><span style=\"font-size: 10pt;\">See how to deploy your app to App Services at: <a href=\"http:\/\/aka.ms\/deployappservice\">aka.ms\/deployappservice<\/a><\/span><\/li>\n<\/ul>\n<\/td>\n<td style=\"width: 25%;\" valign=\"top\">\n<ul>\n<li><span style=\"font-size: 10pt;\">Platform as a Service (PaaS)<\/span><\/li>\n<li><span style=\"font-size: 10pt;\">Build and operate always-on, scalable, distributed applications<\/span><\/li>\n<li><span style=\"font-size: 10pt;\">Deliver low-latency performance and efficiency at massive scale<\/span><\/li>\n<li><span style=\"font-size: 10pt;\">Download the Service Fabric SDK from <a href=\"http:\/\/aka.ms\/servicefabricsdk\">aka.ms\/servicefabricsdk<\/a><\/span><\/li>\n<li><span style=\"font-size: 10pt;\">See how to create your Service Fabric cluster at: <a href=\"http:\/\/aka.ms\/createservicefabriccluster\">aka.ms\/createservicefabriccluster<\/a><\/span><\/li>\n<li><span style=\"font-size: 10pt;\">See how to deploy your app to Service Fabric at: <a href=\"http:\/\/aka.ms\/deployservicefabric\">aka.ms\/deployservicefabric<\/a><\/span><\/li>\n<\/ul>\n<\/td>\n<td style=\"width: 25%;\" valign=\"top\">\n<ul>\n<li><span style=\"font-size: 10pt;\">Build and operate always-on, scalable, distributed applications<\/span><\/li>\n<li><span style=\"font-size: 10pt;\">Package dependencies with your apps in Docker containers for portability and predictability during development, testing, and production deployments<\/span><\/li>\n<li><span style=\"font-size: 10pt;\">See how to deploy your containers to Azure at: <a href=\"http:\/\/aka.ms\/deploycontainer\">aka.ms\/deploycontainer<\/a><\/span><\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Setting up a CI\/CD pipeline to Azure<\/h2>\n<p>&nbsp;<\/p>\n<p>Publishing from your desktop works, but isn\u2019t the best solution for every circumstance. For example, if you want to get your app published with every <img decoding=\"async\" class=\"alignright wp-image-22983 size-medium\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2017\/06\/Take-your-web-app-to-Azure-Config-CICD-300x291.png\" alt=\"\" width=\"300\" height=\"291\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2017\/06\/Take-your-web-app-to-Azure-Config-CICD-300x291.png 300w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2017\/06\/Take-your-web-app-to-Azure-Config-CICD.png 392w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/>commit \/ check-in, or if you want to make sure every publish includes all the code from multiple developers, there is a simpler way to publish. In Visual Studio 2017 you can simply right-click on the solution and select <b><a href=\"http:\/\/aka.ms\/vstscicd\">Configure Continuous Delivery<\/a><\/b> to setup that CI\/CD pipeline in Visual Studio Team Services, and get your app flowing to Azure on a consistent basis.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<h2>Extending your app with Connected Services<\/h2>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/4\/2019\/06\/Take-your-web-app-to-Azure-Connected-Services.png\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" class=\"\" title=\"Connected Services\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2017\/06\/Take-your-web-app-to-Azure-Connected-Services-1857.png\" alt=\"Connected Services\" width=\"250\" height=\"223\" align=\"right\" \/><\/a><\/p>\n<p>Publishing an app is only part of the benefit of leveraging Azure. As a developer, you are concerned with things like application performance and storage. You also may want to do things like expand your app with Office 365 APIs. In Visual Studio 2017, Connected Services let you easily adopt key services in Azure by right-clicking and adding those services. These become a natural extension of your application, and configuration is completed as they are added \u2013 no need to bounce between the portal and IDE to get them setup. Keep an eye on the list of services as we are going to continue to add services and make it faster and easier to extend your app with Azure.<\/p>\n<p>&nbsp;<\/p>\n<h2>That\u2019s all it takes<\/h2>\n<p>Publishing your app to Azure, or extending your app with Azure services is simple to do through Visual Studio 2017 or Visual Studio Team Services. Take a look at a cropped version of our infographic.\u00a0<a href=\"https:\/\/aka.ms\/visualstudio2017-azure-poster-pdf\">You can also download the complete infographic<\/a>.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/4\/2019\/06\/Poster-Visual-Studio-Tools-for-Azure-cropped.png\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" class=\"aligncenter\" title=\"Visual Studio 2017 Toosl for Azure Poster\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2017\/06\/Poster-Visual-Studio-Tools-for-Azure-cropped-1856.png\" alt=\"Visual Studio 2017 Toosl for Azure Poster\" width=\"476\" height=\"918\" \/> <\/a><\/p>\n<p>Now that your app is running in Azure, you might need to do some troubleshooting. Check out the <a href=\"https:\/\/azure.microsoft.com\/en-us\/blog\/snapshot-debugger-for-azure\/\">post from Dan Taylor on the Snapshot Debugger<\/a> to see one of the powerful diagnostics experiences you can get when hosting your .NET app in Azure. Stay tuned for more great diagnostics experiences.<\/p>\n<p>Let us know what you think. You can report problems via the <a href=\"https:\/\/docs.microsoft.com\/en-us\/visualstudio\/ide\/how-to-report-a-problem-with-visual-studio-2017\">Report a Problem <\/a>option in the upper right corner, either from the installer or the Visual Studio IDE itself, and then track your feedback on the <a href=\"https:\/\/developercommunity.visualstudio.com\/index.html\">developer community portal<\/a>. For suggestions, let us know through <a href=\"http:\/\/visualstudio.uservoice.com\/forums\/121579-visual-studio\">UserVoice<\/a>.<\/p>\n<table border=\"0\" width=\"600\" cellspacing=\"0\" cellpadding=\"2\">\n<tbody>\n<tr>\n<td valign=\"top\" width=\"150\"><img decoding=\"async\" class=\"alignnone size-full wp-image-22990\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2017\/06\/Brian-Moore.jpg\" alt=\"\" width=\"1000\" height=\"1000\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2017\/06\/Brian-Moore.jpg 1000w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2017\/06\/Brian-Moore-150x150.jpg 150w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2017\/06\/Brian-Moore-300x300.jpg 300w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2017\/06\/Brian-Moore-768x768.jpg 768w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/><\/td>\n<td valign=\"top\" width=\"450\"><strong>Brian Moore<\/strong>, Senior Program Manager, Azure Tools<\/p>\n<p>Brian is a Senior Program Manager working on the Azure Tools Team in the Cloud &amp; Enterprise Division.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n","protected":false},"excerpt":{"rendered":"<p>You\u2019ve built your web app. It\u2019s running, and getting good traffic. Now you need to move on to solving the \u2018good problems\u2019 to have. You want to scale your app to support more users, but only at peak times. Or you need better hardware and simply don\u2019t want to manage that hardware\u2026 or software, or [&hellip;]<\/p>\n","protected":false},"author":13,"featured_media":255385,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1085,1196,472,155,1029],"tags":[237,242,137,185,1046,357,182,156,377],"class_list":["post-12446","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cloud","category-desktop","category-gaming","category-visual-studio","category-web","tag-net","tag-azure","tag-html","tag-node-js","tag-service-fabric","tag-sql","tag-unity","tag-visual-studio-2017","tag-visual-studio-dev-essentials"],"acf":[],"blog_post_summary":"<p>You\u2019ve built your web app. It\u2019s running, and getting good traffic. Now you need to move on to solving the \u2018good problems\u2019 to have. You want to scale your app to support more users, but only at peak times. Or you need better hardware and simply don\u2019t want to manage that hardware\u2026 or software, or [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/posts\/12446","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/users\/13"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/comments?post=12446"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/posts\/12446\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/media\/255385"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/media?parent=12446"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/categories?post=12446"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/tags?post=12446"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}