From the CEO’s Desk: DevOps with Microsoft Azure part 2 – VSTS and TFS
In my last blog, I talked about “how Microsoft is trying to change its perception in the open source world and how the recent acquisitions are making it a formidable force in the DevOps space?” I mentioned the services from Microsoft Azure that are cementing its position as a DevOps amicable technology. Out of those VSTS and TFS are widely used, for the wide range of tools they have and their rapport with third-party tools. If I am to start by explaining all the third-party tools, I will have to start a different blog-series altogether. I would have loved to do that, but for now, I will restrict myself to VSTS and TFS only.
As mentioned in the last blog, VSTS is available in two different forms viz. on-premises and online. The on-premise version is called Team Foundation Server (TFS), while the latter form is called Visual Studio Team Services (formerly Visual Studio Online) which is a cloud offering for more scalability. The cloud service is backed by Microsoft’s cloud platform- Azure. Apart from this, there are few highlighting features that separate VSTS and TFS. Microsoft is slowly shifting its focus from TFS to VSTS. As a result of which, more and more customers are switching from TFS to VSTS. So, exactly what do the VSTS and TFS offer?
Visual Studio Team Services (VSTS)
Visual Studio Team Services (VSTS), formerly known as Visual studio online, is an extension to Visual Studio with agile tools and continuous integration services. It is a hosting service that supports work on major programming languages and allows your teams to collaborate. With VSTS, you get an arsenal of tools and platforms for most of the DevOps phases starting from planning to build, test, and release management to support continuous integration and faster delivery of the application. These tools include Git repository for tracking your code, Agile tools to support planning and tracking your work, code defects, and issues using Kanban and Scrum methods, a variety of tools to test your apps including manual/exploratory testing, load testing, and continuous testing, highly customizable dashboards for sharing progress and trends, plus a built-in wiki for sharing information with your team. And the best thing is, you get an option to integrate external progress tracking tools for teams such as Campfire, Slack, Trello, UserVoice, etc. You can also develop your own custom integrations. So, your architects, developers, testers, and operations personnel will love VSTS, for obvious reasons.
Team Foundation Server (TFS)
TFS, which stands for Team Foundation Server, is an on-premise version of VSTS when you don’t want your code or data to leave your network. It provides a set of collaborative software development tools that integrate with your existing IDE or editor, thus enabling your cross-functional teams to work effectively on software projects. You can integrate build server to support on-premises and cloud-hosted builds, SQL Server and SQL Analysis Server to support SQL Server reports.
To get started with TFS you can download and Install TFS, create a team project, specify a repository, upload the code and start making changes. You can track your work using Scrum, Kanban, or combination of both.
Difference between VSTS and TFS
Most of the services offered by TFS are same as in VSTS. There are certain add-ons in VSTS which come with the scalable, reliable, and globally available hosted service which are as follows:
- Advantages of Cloud: As VSTS is a hosted service, it has almost all the inherent advantages a typical cloud service has over an on-premise system. This includes scalability, freedom from maintenance of servers, OS, backups, DRs, and reliability.
- Server management and accessibility: Compared to TFS, VSTS has a simplified server management and being a hosted service means you can access it from remote sites.
- Updates: The biggest advantage of going for VSTS instead of TFS is, Microsoft ships updates to VSTS with every sprint cycle. This simply means, you will get new features every three weeks. And since you already have the new features, you never have to worry about the upgrading it manually.
- Scoping and scaling: VSTS only has two options for scoping and scaling data accounts and team projects whereas, TFS has three options deployments, team project collections, and team projects.
- Authentication: Security is an important aspect of any IT service and authentication is an integral part of it. In TFS, you can use Windows Authentication along with your Active Directory domain credentials while connecting to the intranet server. In VSTS, you can use Microsoft Account credentials or Azure Active Directory account credentials while connecting through the public internet.
- Users and groups: You can provide users or groups access to deployments by adding them to Active Directory groups and adding these Active Directory Groups to various TFS groups in case of TFS. For VSTS, you can add users or groups to Azure Active Directory groups.
Why VSTS over TFS?
As you can see, VSTS has lots of benefits over TFS. But, there are few features that are present in TFS and missing in VSTS like SharePoint integration and SQL Reporting Services (warehouse and cube). To compensate for this, you can integrate Power BI from Microsoft in addition to the built-in reporting. TFS is typically used by developers working on .NET frameworks. But, why would someone want to keep looking at the little spinning icon for some time while you rename or modify the file? Why set values in different status fields to track a single bug fix? Why worry about the bad merge? Why waste your time fixing all the things manually? Why keep one eye on update releases and other on installing them manually every time? Isn’t it directly conflicting with what you are preaching i.e. Automation? Therefore, you can see a lot of us moving to VSTS. So, how do you move your data and files from TFS to VSTS?
Migration from TFS to VSTS
Whenever you are moving your application, the most important thing is the data associated. It includes existing code, work items, data logs, configuration files, and other assets. The fidelity of data migration and the complexity of the process of actual transfer are important things to consider while migrating the data. According to Microsoft, there are three migration options:
- Manual copying: Copy the most important assets manually and move them from Team Foundation Version Control (TFVC) to Git in the VSTS environment
- TFS/VSTS product team’s service: A high fidelity TFS Database Import Service from the product team that operates at a database level
- Public API-based tools: Choose from a variety of tools that use public APIs to move data, provides extra fidelity beyond a manual copy.
VSTS is nothing but a hosted SaaS service with a motive to plan, code, and ship applications faster by helping teams to collaborate on all fronts of application development. But, what are the exact services for different phases? Well, the answer to this question will be in my next blog. Stay tuned!