VSTS is now Azure DevOps. What has changed and why?

Posted by: Sandeep Chadda , on 1/10/2019, in Category DevOps
Views: 5675
Abstract: Microsoft recently launched Azure DevOps (formerly known as VSTS) that comprises of 5 different services that span the breadth of the value chain of product development. This article dives into what is the Azure DevOps offering and how is Microsoft uses Azure DevOps to build its own products.

DevOps brings together people, processes and technology, automating software delivery to provide continuous value to your users. In other words, it enables any developer to ship customer value faster, more reliably, and with better quality.

Editorial Note: If you are interested in a story of how 84,000+ Microsoft engineers moved to Visual Studio Team Services (VSTS) to create unparalleled value for their customers using DevOps, read Microsoft’s Devops story.

Azure DevOps

Azure DevOps (formerly known as VSTS) is everything you need to build your software product from beginning to end. Azure DevOps is a one stop shop that helps every developer on this planet to plan projects using Agile tools, manage code using Git, test the application, and deploy code using the best CI/CD system.

Azure DevOps comprises of 5 services that span the breadth of the development cycle. Let me delve deep into some of these services and then get to the why aspect of this change.

azure-devops

This tutorial is from the DotNetCurry(DNC) Magazine with in-depth tutorials and best practices in JavaScript and .NET. This magazine is aimed at Developers, Architects and Technical Managers and covers C#, Design Patterns, .NET Core, MVC, Azure, DevOps, ALM, Angular, React, Vue.js and more. Subscribe to this magazine for FREE and receive all previous, current and upcoming editions, right in your Inbox. No Spam Policy.

Azure Boards

boards-logo

Azure boards helps you to track work with Kanban boards, backlogs, and custom reporting.

azure-boards

How we use it?

In Microsoft, the Azure DevOps team follows a 3-week sprint boundary where we ship at the end of each sprint. We have cross discipline teams of 10-12 people with clear charters and goals.

Teams use Kanban Boards to manage backlogs that ensure team autonomy while we use Plans to help us align with the leadership and the overall objectives of the product. We use queries extensively to track work and dashboards for real time reporting and tracking the work in progress.

One feature that is a personal favorite is traceability in work items. i.e. Updates to the work item as it progresses through the dev and release cycle is automated thus ensuring that the status of a work item is always available and accessible to other stakeholders. Now I can view the commit, PR, build and release of a task from the work item itself.

Looking at this task below, I know that the commit was created on 10/23 – the PR was approved the same day and this fix was integrated in the build by 10/25.

traceability

Azure Repos

repos-logo

Azure Repos provides you with UNLIMITED Git repos. That means you can create a project in Azure DevOps and create as many repositories as you need and collaborate with your team members to build code with pull requests and advanced file management.

azure-repos

Microsoft enhanced git to scale to enterprise needs and invested in GVFS (Git Virtual File Systems) - https://gvfs.io/. GVFS helps in managing massive enterprise scale repositories. The Windows code base which is nearly 400GB in size is hosted on Azure Repos. A simple git clone command on the windows repo with git would take 12+ hours; but with GVFS it takes around 4-5 minutes.

How we use it?

In Azure DevOps, we use git in Azure Repos to maintain our code and use a combination of small commits, branch policies, PR reviews, and test with each check-in to ensure our code in master is always shippable.

We work out of a single master, that helps us to eliminate merge debt. Considering that Azure DevOps has nearly 800 engineers, merge debt can be a potentially big problem. Using the pull requests acts as forcing factor to test and review our code, helping us to detect errors in the pipeline.

We run a bunch of tests with every merge to master thereby helping us ensure that master is pristine

build-validation

Azure Pipelines

pipelines-logo

Azure pipelines allow you to build, test, and deploy with CI/CD that works with any language, platform, and cloud. You can use Azure Pipelines to connect to GitHub or any other Git provider and deploy continuously.

azure-pipelines

An interesting take on Azure Pipelines is that when it says any platform it means it. You can get cloud-hosted pipelines for Linux, macOS and Windows. It can help you to test and deploy Node.js, Python, Java, PHP, Ruby, C/C++, .NET, Android and iOS apps. To sweeten the deal, you also get unlimited minutes and 10 free parallel jobs for open source. With the latest support to push images to container registries like Docker Hub and Azure Container registry, it is a considerably powerful CI/CD solution in the market.

How we use it?

The Azure DevOps team ensures that a CI build is triggered for every check-in done into the master branch of the Azure DevOps git repository in master, which runs a bunch of unit tests.

ci-build-trigger

Last I wrote on Azure DevOps in the month of march, we had 71k unit tests running with each PR. Now the new number is nearly 83,500 unit tests running in only 8 minutes. Measuring test failures is important for us and we ensure that there is a great debugging experience for test failure for developers to be productive.

test-results

While debugging failures help address immediate issues, failure trends help us identify hidden patterns e.g. test that have failing continuously. We rely on Analytics to identify these patterns.

test-failures

We also practice safe deployment i.e. stage-wise deployment of our products with adequate checks and balances in place to limit the blast radius of any impact due to an issue during deployment.

Safe deployment practice adopted by Azure DevOps team to deploy Azure DevOps to its users in stages

safe-deployment

Azure Test Plans

test-plans-logo

You can use Azure Test Plans to run manual tests for your web and desktop applications and also log defects. . You can track and assess quality throughout your testing lifecycle that help you to get end to end traceability.

test-plan

How we use it?

In Azure DevOps team, every engineer is responsible for code and test. We call this as combined engineering which improves accountability and incentive for developers to write better tests and more automation. We stringently adopted a three fold mantra to ensure quality in code:

1) Developers owns code quality

2) Master is always healthy and shippable. Shift-left for testing i.e. greater emphasis for unit tests and eliminate flaky tests

3) Shift right in production i.e. Ensure quality in production by rolling out changes in a progressive and controlled manner. Also do fault injections and chaos engineering to see how the system behaves under failure condition.

Azure Artifacts

artifacts-logo

Azure Artifacts helps you to create and share Maven, npm, and NuGet package feeds from public and private sources – fully integrated into CI/CD pipelines.

azure-artificats

How we use it?

Azure Artifacts pretty much completes our offering end to end. It is now a one stop shop for managing universal packages. It is the backbone for inner sourcing in Microsoft where-in a team in Windows creates a package that is shared across teams and it becomes a source of consumption.

Why Azure DevOps?

We made this change since it was just the right thing to do for our customers. While Azure DevOps is an integrated suite to provide end to end DevOps capability for large enterprises, it is also nimble for organizations who want to use only few services e.g. you can host your code in a git repository in GitHub and use only Azure Pipelines for build and deploy.

Azure DevOps now allows you to select the services that you want to use for your organization.

Select the service that matter the most to you in Azure DevOps

devops-services

Microsoft is steadfast to make Azure DevOps, the best end to end DevOps offering and would love to hear from you on how they can make it better.

Suggestions: Post your suggestions to help Microsoft improve Azure DevOps on their dev community.

https://developercommunity.visualstudio.com/spaces/21/index.html

Special thanks to all the reviewers: Divya Vaishnavi, Jaiprakash Sharma, Mahathi Mahabhashyam, Vinod Joshi

This article has been editorially reviewed by Suprotim Agarwal.

Absolutely Awesome Book on C# and .NET

C# and .NET have been around for a very long time, but their constant growth means there’s always more to learn.

We at DotNetCurry are very excited to announce the The Absolutely Awesome Book on C# and .NET. This is a 500 pages concise technical eBook available in PDF, ePub (iPad), and Mobi (Kindle).

Organized around concepts, this eBook aims to provide a concise, yet solid foundation in C# and .NET, covering C# 6.0, C# 7.0 and .NET Core, with chapters on .NET Standard and the upcoming C# 8.0 too. Use these concepts to deepen your existing knowledge of C# and .NET, to have a solid grasp of the latest in C# and .NET OR to crack your next .NET Interview.

Click here to Explore the Table of Contents or Download Sample Chapters!

What Others Are Reading!
Was this article worth reading? Share it with fellow developers too. Thanks!
Share on LinkedIn
Share on Google+

Author
Sandeep is a practicing program manager with Microsoft | Visual Studio Team Services. When he is not running or spending time with his family, he would like to believe that he is playing a small part in changing the world by creating products that make the world more productive. You can connect with him on twitter: @sandeepchads. You can view what he is working on right now by subscribing to his blog: aka.ms/devopswiki/.


Page copy protected against web site content infringement 	by Copyscape




Feedback - Leave us some adulation, criticism and everything in between!

Categories

JOIN OUR COMMUNITY

POPULAR ARTICLES

C# .NET BOOK

C# Book for Building Concepts and Interviews

Tags

JQUERY COOKBOOK

jQuery CookBook