OpenSource Azure with TFS online
As you may know; Azure is an open platform enabling deployments from many programming languages including PHP, NodeJS and various operating systems.
There is a scenario which I have been trying to experiment with. This is enabling Visual Studio Online for non-TFS projects. This would enable me to throw a PHP project without Source Control Explorer or Visual Studio onto the repository and have somehow the deployment automagically get pushed to my linked Azure site.
The ALM powers of TFS Online are simply hard to resist for me. Some of them include.
- Managing development teams and collaboration.
- Managing backlogs iterations and project tasks.
- Bug tracking
- Version control (you can use git for this if you want)
- Managing builds and continuous testing and deployment
- From the control panel, it seems there is extensibility on the services. Currently I see the Azure service. We are probably going to see more services there, hopefully it'd also be possible for third party companies to add services on the control panel.
While this list is not exhaustive of the features you get from TFS online, it presents some of the things I need if I'm developing any project.
You may recall the Windows Azure Websites already supports deployment through git. This option enables you to collaboratively work with your co-admins to continuously work an push changesets onto Azure.
I spent a while with my friends who wanted to use the features of both TFS online and Azure in one seamless process. They wanted to consolidate their tasks into one portal which would give them a window into how the project is running, prevent delays and present the true picture of the project that can be communicated to their customers, while enabling linkages with code, bugs and visibility on all the finer intricacies. They were tired of using spreadsheets which are not up-to-date and the disconnect caused by the fact that developers don't want to document stuff and there was no clear picture of what they were doing. There was no clear bug management system, putting a lot of mental pressure on developers to remember bugs, their location and status :).
These guys are strictly Linux/PHP/MySQL and have a beautiful solution. We had to host it in a powerful platform.
APPROACH TO SOLUTION
The natural approach was to create a new team project in tfs.visualstudio.com and link it to azure website. But remember this project is not a Visual Studio project and the developers had no Team/Build Explorer and develop their sites mostly using Notepad like IDEs. First of all, when you create a project on tfs.visualstudio.com, the build is disabled by default - I 'm not sure why it is like this. Secondly, if you somehow install a Team Explorer plugin and enable it remotely you will get the following error message.
TF277005 : Access Denied.
From this, I suspected that if you are not using Visual Studio tooling and possibly the MSBuild files, you may not succeed in this approach. I stand to be corrected on this.
We then decided to come up with a simple solution presented by Scott Hanselman here.
We simply created two remote locations. One for Windows Azure and the other for TFS online. We then created simple bash scripts that push to both repositories. We them later improved the scripts so that deployment to Azure was a specific process, which was done through a specific one-click script. We did not like the idea of pushing changes and they are immediately reflected without proper sanctioning by all the stakeholders.
I hope in the near future we will have a standard set of commands that can be remotely executed to enable tests and build scenarios of non-MS Build projects in TFS Online.
You can get more information from below