Continuous deployment between TFS and AWS - amazon-web-services

I'm working for a company where we're using on-prem TFS for dev and continuous build, however our environments are hosted on AWS. We need to setup a continuous deployment pipeline from our build servers to AWS.
Any recommendation for an enterprise continuous deployment tool for such an environment? We've already done a POC with Octopus Deploy. Is it possible to set up a continues deployment pipeline using just Microsoft tools? Any pointers and documentation with examples would be highly appreciated.

Octopus Deploy is indeed a good choice. Octopus Deploy and TFS/VSO can work together to make automated, continuous delivery easy. For more information, see the Octopus Deploy documentation at http://docs.octopusdeploy.com/display/OD/Team+Foundation+Server
It's also possible to set up a continues deployment pipeline using just Microsoft tools. You need to use Microsoft Release Managerment.It can Run automations to deploy your app to each environment.
If you are working on vNext build, just like James mentioned, this is only support for Team Foundation Server 2015 (update 2 and above) and Visual Studio Team Services. Detail features you can refer this link:Release Management vNext
If you are working on XAML build, here is a good documentation about Continuous Integration, Continuous Deployment with Team Foundation Server 2013 & VS 2013

You can easily integrate the new Release Management tools from Microsoft with TFS.
!!Release Management tools in TFS 2015 Update 2
The easy way would be to install the TFS 2015 Update 2 RC. It's fully supported by MS and works great.
http://nkdagility.com/the-high-of-release/
!!Release Management in VSTS with TFS
An alternative until Update 2 is to use VSTS Release Management Online to do the deployments from your local TFS.
https://blogs.msdn.microsoft.com/visualstudioalm/2015/11/28/deploy-artifacts-from-onprem-tfs-server-with-release-management-service/
I would recommend that you use one of the two above methods or move your TFS server to VSTS in it's entirety.
!!Release Management Server for TFS
For now the released version of RM is available for download and install. It's not as good as the new one, but also works fine.
http://nkdagility.com/create-release-management-pipeline-professional-developers/

You can do it without octopus. All you need is an EC2 based build agent with (PAT) authentication and you can deploy almost any artifact. How to do this is given in following tutorials.
How to Build a CI/CD Pipeline Using AWS CodeDeploy and Microsoft Team Foundation Server (TFS)
(For hybrid/complex deployments, you can use this. You can deploy IIS websites, MSI packages, services, exe). The beauty of this is that with a single deployment you can deploy to both on premises and cloud environment.
https://www.youtube.com/watch?v=MIE0P3m9eEY
How to Integrate AWS Elastic Beanstalk with Microsoft Team Foundation Server (TFS) or (VSTS)
(for IIS websites/batch jobs you can use this)
https://www.youtube.com/watch?v=nRLZZefLDqU
How to Integrate AWS Cloudformation with Microsoft Team Foundation Server (TFS)
(fully infrastructure automation and manage infrastructure as code)
https://www.youtube.com/watch?v=WU93NJT0_3s

Related

Visual Studio 2017 Install Error at Microsoft.ClickOnce.BootStrapper.Msi

VS 2017 Setup is throwing error at Microsoft.ClickOnce.BootStrapper.Msi. Below is the log file contents :
Something went wrong with the install.
You can troubleshoot the package failures by:
1. Search for solutions using the search URL below for each package failure
2. Modify your selections for the affected workloads or components and then retry the installation
3. Remove the product from your machine and then install again
If the issue has already been reported on the Developer Community, you can find solutions or workarounds there. If the issue has not been reported, we encourage you to create a new issue so that other developers will be able to find solutions or workarounds. You can create a new issue from within the Visual Studio Installer in the upper-right hand corner using the "Provide feedback" button.
================================================================================
Package 'Microsoft.ClickOnce.BootStrapper.Msi,version=15.0.26621.2' failed to install.
Search URL
https://aka.ms/VSSetupErrorReports?q=PackageId=Microsoft.ClickOnce.BootStrapper.Msi;PackageAction=Install;ReturnCode=1335
Details
MSI: C:\ProgramData\Microsoft\VisualStudio\Packages\Microsoft.ClickOnce.BootStrapper.Msi,version=15.0.26621.2\Microsoft.ClickOnce.BootStrapper.Msi.msi, Properties: REBOOT=ReallySuppress ARPSYSTEMCOMPONENT=1 MSIFASTINSTALL="7" VSEXTUI="1"
Return code: 1335
Return code details: The cabinet file 'cab1.cab' required for this installation is corrupt and cannot be used. This could indicate a network error, an error reading from the CD-ROM, or a problem with this package.
Log
C:\Users\Abhilash\AppData\Local\Temp\dd_setup_20170926021659_255_Microsoft.ClickOnce.BootStrapper.Msi.log
Impacted workloads
.NET Core cross-platform development (Microsoft.VisualStudio.Workload.NetCoreTools,version=15.0.26720.2)
.NET desktop development (Microsoft.VisualStudio.Workload.ManagedDesktop,version=15.0.26606.0)
ASP.NET and web development (Microsoft.VisualStudio.Workload.NetWeb,version=15.0.26724.1)
Azure development (Microsoft.VisualStudio.Workload.Azure,version=15.0.26711.1)
Data storage and processing (Microsoft.VisualStudio.Workload.Data,version=15.0.26621.2)
Universal Windows Platform development (Microsoft.VisualStudio.Workload.Universal,version=15.0.26720.2)
Impacted components
.NET desktop development tools (Microsoft.VisualStudio.Component.ManagedDesktop.Prerequisites,version=15.0.26621.2)
ASP.NET and web development tools (Microsoft.VisualStudio.Component.Web,version=15.0.26606.0)
ASP.NET and web development tools (Microsoft.VisualStudio.ComponentGroup.Web,version=15.0.26606.0)
Azure Cloud Services core tools (Microsoft.VisualStudio.Component.Azure.Waverton,version=15.0.26208.0)
Azure Cloud Services tools (Microsoft.VisualStudio.ComponentGroup.Azure.CloudServices,version=15.0.26504.0)
Azure Data Lake and Stream Analytics Tools (Microsoft.Component.Azure.DataLake.Tools,version=15.0.26730.0)
Azure development prerequisites (Microsoft.VisualStudio.ComponentGroup.Azure.Prerequisites,version=15.0.26711.1)
Azure Resource Manager core tools (Microsoft.VisualStudio.Component.Azure.ResourceManager.Tools,version=15.0.26504.0)
Azure Resource Manager tools (Microsoft.VisualStudio.ComponentGroup.Azure.ResourceManager.Tools,version=15.0.26711.1)
ClickOnce Publishing (Microsoft.Component.ClickOnce,version=15.0.26208.0)
Cloud Explorer (Microsoft.VisualStudio.Component.CloudExplorer,version=15.0.26711.1)
Data sources for SQL Server support (Microsoft.VisualStudio.Component.SQL.DataSources,version=15.0.26621.2)
Managed Desktop Workload Core (Microsoft.VisualStudio.Component.ManagedDesktop.Core,version=15.0.26419.1)
Microsoft Azure WebJobs Tools (Component.Microsoft.VisualStudio.Web.AzureFunctions,version=15.0.26720.2)
Microsoft Azure WebJobs Tools (Microsoft.VisualStudio.ComponentGroup.AzureFunctions,version=15.0.26720.2)
Redgate ReadyRoll Core (Component.Redgate.ReadyRoll,version=1.14.2.3918)
Redgate SQL Prompt Core (Component.Redgate.SQLPrompt.VsPackage,version=8.0.2.1513)
Redgate SQL Search (Component.Redgate.SQLSearch.VSExtension,version=2.4.2.1439)
SQL Server Data Tools (Microsoft.VisualStudio.Component.SQL.SSDT,version=15.0.26208.0)
Universal Windows Platform tools (Microsoft.VisualStudio.Component.UWP.Support,version=15.0.26621.2)
Universal Windows Platform tools for Cordova (Microsoft.VisualStudio.ComponentGroup.UWP.Cordova,version=15.0.26711.1)
Universal Windows Platform tools for Xamarin (Microsoft.VisualStudio.ComponentGroup.UWP.Xamarin,version=15.0.26606.0)
I am trying to install on Windows 10 64 bit running on VMWare from a Mac.
Has anybody encountered this issue? If so how did you resolve it?
Thanks in Advance

How to trigger a TeamCity project to deploy to a server

I am using TeamCity (version 9.1.5 if that matters) and I am trying to figure out how to create a trigger that deploys the project to a server. Or maybe there is a way to deploy a project to a server without using a trigger on TeamCity.
It's a very broad question, but I will share the approaches I have used in a couple of scenarios:
1) To deploy when a code checkin is performed, I have setup a build configuration that does the deployment, added the build configuration that does the compiling & packaging as a snapshot and artefact dependency which is then triggered with a Finish Build Trigger https://confluence.jetbrains.com/display/TCD9/Configuring+Finish+Build+Trigger
2) To deploy at a given time of the day but only when new code has been checked in, I have setup a build configuration as above but triggered with a Schedule Trigger https://confluence.jetbrains.com/display/TCD9/Configuring+Schedule+Triggers ensuring to select the dependent build in the Build Changes section.
With regards to how to perform the deployment there are many options, I have used WebDeploy for ASP.Net applications and MSI packages executed by Remote Powershell scripts for Windows Services, but other options are also available depending on the technology you have.
JetBrains provide an end to end example for ASP.Net in their on-line documentation, search for "Continuous Delivery to Windows Azure Web Sites (or IIS)"

C++ in the cloud. Casablanca REST Service on Microsoft Azure

Hello fellow Azure users. I have created quite an extensive C++ REST service using the CasaBlanca REST SDK. When I began working on this project I as lead to believe that I could run it in the Cloud (Azure) . Please explain how best I can get this service to run on Microsoft Azure. I can't afford to re-program the entire project in another language like C# or Java. Thanks in advance!
If you're wondering why I believed CasaBlanca was meant for the Cloud:
http://channel9.msdn.com/Events/TechEd/Australia/2012/AZR331
-Seth
Looking at the TechEd video I can see that they are using the SpeechService demo which you can find the source of here: https://hg.codeplex.com/microsoftcasablanca so you can understand how they performed the deployment to Azure.
Looking at the code I can see the solution is designed to be deployed to a Cloud Service Worker Role and includes a "Cloud Service" project in the Visual Studio solution - this is the project type which gives the "Deploy To Cloud" option which you see in the video.
Given that the demo is from 2012 there will have been many Azure SDK releases since then so the demo code may require an update, but the deployment method from Visual Studio 2012 and 2013 remains essentially unchanged.
Regardless how you're using casablanca, c++ applications can be run on Virtual Machines, web/worker role (stateless) VMs in cloud services, probably websites... Choosing between these is a matter of opinion (or at least dependent on the app you're building), and there's no single right answer.

Looking for a .NET BuildServer SaaS

I've a question regarding Build Servers for .NET Projects. Currently I'm using TeamBuild in conjunction w/ TFS 2010 to do automated builds in the .NET world. Some older projects are built using plain old MSBuild scripts.
To get rid of the administrative effort I'm currently moving my sources to github. Github offers, as many other sites service hooks to trigger build servers for doing automated builds such as CI or nightly builds.
Sure I could use TeamCity OnPremise and dynamically create Build Agents in Windows Azure using VMRole and Virtual Disks, but I think this hybrid solution is a little bit moronic.
So what are your thoughts about the following architectural idea?
Let's say you're using github as source control platform. When commiting sources to your repository an Azure WebRole hosting a WCF Service will be triggered.
The WebRole itself will just use the Azure API to fire up a new instance of a custom Azure VMRole.
The Azure VMRole itself will use some kind of buildscript such as Rake or MSBuild to have as few developer tools installed on the build agent as needed. After building the entire project the artifacts will be published to Azure BlobStorage and the WebRole hosting the WCF service will be called again, but right now the Azure WebRole is going to terminate the BuildAgent.
While using such a setup you could minimize the costs for the build agent and build nearly any kind of project as far as you're able to install the required element for the build by using PowerShell.
So in bottom line: what are your thoughts on this architecture? Other Ideas? Is there an existing service offering such a solution?
Thorsten
have you looked at https://appharbor.com ? I know a number of people who are using it to do exactly what you are doing.
Check out Team Foundation Service as it can do the following:
Continuous Delivery to Azure
Deploy to production on Windows Azure with two clicks from Visual Studio, or automatically as part of your build process.
Just found this one http://www.appveyor.com/ AppVeyor is also free for OpenSource projects.

How to setup Continuous Integration and Continuous Deployment for Django projects?

I am researching about how to set up CI and continuous deployment for a small team project for a Django based web application. Here are needs:
Developer check in the code into a hosted SVN server (unfuddle.com)
A CI server detects new checkin, check out the source, build, run functional tests.
If tests all passed, deploy the code to the webserver on Amazon EC2.
For now, the CI server is also responsible to run the functional tests. I figured out that I can use Husdon as the CI server, use Selenium to run functional tests, and use Fabric to deploy the build to remote web server in Amazon cloud.
I am new to Django development and not very familiar with opensource tools. My questions are:
I can find some information to integrate hudson with selenium, but I couldn't find much information on how to integrate Fabric to Hudson as well. Is this setup viable? Do you see problems?
How do I integrate and deploy database changes? Most likely in the early stage we will change database schema very often with code changes. I used to use Visual Studio and the database project made it very simple to deploy. I wonder if there is "established, well-supported" way to do that.
Thanks!!
Can't help you very much with continuous integration/deployment - at my work we used CruiseControl and it acted very much as you describe, but I didn't have anything to do with setting it up.
However in answer to your second question, on database changes, the current state of the art in Django is to use South, which has just released version 0.7. It works well in a CI environment, as db migrations are stored alongside the code for each app, so the CI server can be set to run them automatically before running the tests.