The next set of blog posts will be devoted to the connection between Azure and TFS released as part of the June 2012 features. Many people are talking about publishing websites using Git, WebDeploy, and FTP. There is one more option for doing deployments, TFS. More specifically TFS Online from tfspreview.com. Currently this functionality does not exist in the on-premises version of TFS 2012.
How it works
If you go to tfspreview.com and create a new account (which you can do now, it is no longer invite only) you have the key component for deploying to Azure. The Azure build template, which should be in source control under $/<projectName>/BuildProcessTemplates/AzureContinuousDeployment.11.xaml
The next piece requires you to setup the connection between TFS Online and Azure. If you are setting up a cloud service deployment you need to deploy something there first. You should see this link.
A background service in TFS connects to Azure on you behalf. If you co to the Collection Administration area of TFS you should see a Services tab.
The final component should have been created automatically. Under the project you connected there should be a new CI build and a deployed tab in the projects build area.
This will show you when the application has been deployed to Azure.
With this connection made, the build process retrieves account details from the TFS service and performs the deployment operations. The Continuous Deployment build trigger will run this build every time you check-in code to TFS.
I will go into all of these areas in the second post when I go through setting up a new deployment. Then further in the third part, where I will dig into the build definition and show how the deployment is done.
Team-Oriented – Compared to the Git and WebDeploy solutions which use a single set of credentials for all of the sites for the subscription, TFS can be connected to a team project and incorporated into the builds for that project. This allows you to control access to who has the ability to run this build, or even check in code. In order to deploy to Azure, the user does not need access to the Azure Subscription or credentials that could update other sites.
Automated Testing – The deployment of your website or cloud service depends on the result of your unit tests. This gives you an easy quality gate that the code has to pass through before deployment.
Extensibility – The TFS deployments use a TeamBuild CI (Continuous Integration) trigger on a fairly standard build template (which I will go through in the next post). Once you understand how the workflow is performing the deployment it can be modified or extended to do multiple deployments, testing, or any extra operations that may accompany your product.
TFS Preview – Currently the out-of-the-box functionality is only available with tfspreview.com. Right now as far as I know the long term pricing for this service is unknown. Also, if you have current Azure projects that use TFS 2010 you will have to use traditional means for Azure deployment. TFS Online looks like a great service, even though there are some feature gaps with on-premises like Lab Management and Work Item customization, I think it will cover the vast majority of TFS users.
Please leave a comment or email me if you have a question. This is part 1 in a 3 part series on TFS and Azure.
- Setup a Cloud Service deployment
- Under the hood