We love a good tool at DevOpsGuys, whether it be something for building software, releasing software or a combination of the two. One such tool that has been on the market for a while now is Microsoft’s Visual Studio Team Services (VSTS for short). Originally starting it’s life as an on-premise solution (TFS), and later moving to a SaaS offering (named Visual Studio Online at first), VSTS has grown in popularity over the last couple of years, and many clients we speak too are interesting in using it and want to know more.
Learning is a key part of our DNA at DevOpsGuys, and we like to regularly arrange training and coaching sessions so the team get the chance to learn about new tools that they might not get to use every day. So, as part of our DevOps gold partnership we have with Microsoft, we arranged a day for our delivery team to spend some time with Giles from the VSTS team, and learn a little more about what it has to offer, and certainly how it shapes up against other tools that we use.
Rather the provide a full blown review, or listing every feature, we decided to list our collective top 10 takeaways we took from the session:
1. VSTS is an example of tooling convergence done properly
The feature set of VSTS covers source control, issue tracking, continuous integration and release management (with more features to come in the future). While all of these components fully interact with each other as you would expect, what surprised me is how well Microsoft have embraced support for 3rd party components as well. External git repositories and non-Microsoft build tools slot into VSTS seamlessly, in a way that we would not have thought possible 5 years ago.
2. Workflow customisation is top-notch
The level of customisation present really shows that Microsoft have worked closely with Dev and QA engineers. Adding templates to work item fields and creating new fields is a breeze in VSTS. The kanban board customisation options are very broad, allowing you to style different sets of cards as you wish, and you can even change the amount of detail present at a glance within each task card. Work in progress limits are unfortunately not enforced, but VSTS does warn you if you’re working on too much at once.
3. The features shown were intuitive, and easy to use
We were really impressed with how often VSTS is updated (the team at Microsoft work to a 3 week release cadence – you can check out what they release at https://www.visualstudio.com/en-us/articles/news/features-timeline) and that they actually listen to their user suggestions, even if they don’t make it into the final product. if you’ve got an idea head over to https://visualstudio.uservoice.com/forums/121579-visual-studio-ide and submit away!
4. Build is for Build, Orchestration is done by release manager
The big mindset change from other CI / CD systems is that the build area should just be used to build, unit test, package and publish artefacts. The orchestration of the pipeline should be done in the release area of VSTS. You can build work-flows that enable CD, these work-flows can be complex if needed and allow for Manual Intervention and pre and post deployment checks.
5. Focus is on extensible features
6. A solid tool that can be used end to end
Rather than having to swap between tools to manage all aspects of a project, due to the great feature set and the extensions available, VSTS can be used as an end to end solution straight out of the box if need be. A great example of this is not having to worry about spinning up build agents (due to hosted being available). We can certainly see ourselves using this in the future, however the only real missing feature at present is a wiki (similar to Confluence) but they mentioned this is in preview at the moment and will be released very soon.
7. Fantastic Git integration
Integration with Git and the ability to associate work items with git branches makes the whole experience more intuitive. Branches can be created directly from work items via the GUI or command line, or via a commit by using a #workID syntax.
8. Intelligent processes and controls
Mapping work items to builds and using intelligent process controls to automatically determine the next stage of the pipeline is a very powerful feature.
9. Simple to setup and use dashboards
We love (and promote the use of) information radiators wherever we can. The dash boarding in VSTS was really simple to setup and looked awesome, with loads of extensions available. Not only was it great in the tool, but the ability to extract the metrics out of VSTS to visualise in a tool such as Power BI gives you the power to bring together infrastructure metrics with build metrics in one place. The new pipeline feature that is coming soon will make the visualisation in VSTS even better (https://blogs.msdn.microsoft.com/devops/2017/05/26/new-release-definition-editor-in-team-services/).
10. Unlimited private Git repositories
One stand out feature was the ability to have unlimited git repositories with a free account. Microsoft say themselves they are not out to compete with GitHub (they are one of their biggest contributors), but we see this as a massive win to organisations that don’t want to open source any of their code but don’t want to end up paying a lot of money.
In summary, VSTS is a rapidly maturing tool. The flexibility it offers around the features you can use means it is suitable not only for technical teams (such as development or operations), but also for marketing or sales teams. It has everything you need if you want to run it as a full, end to end tool, but equally it works perfectly if you want to run it alongside existing tool sets, such as Jenkins, GitHub or Octopus Deploy, and it will seamlessly integrate with many others too.