As the use of Visual Studio Team Services continues to grow and larger teams migrate more of their projects to the cloud we have been working to better support their scenarios. Today, I want to share some thoughts about how we see the service evolving during 2016, in order to address one of our most voted UserVoice stories (#4 at the moment).
If you have been with us for a while you know that Team Foundation Server (TFS) on-premises supports three core concepts:
- Team Project Collection: The primary isolation, movable and administrative unit. A collection on-premises maps 1:1 with a database, and as such its main use is to provide hard isolation between team projects and to seamlessly scale out a deployment across many SQL Servers.
- Team Project: used to encapsulate software artifacts (source code repos, work items, build, releases, etc.) Within organizations a project usually maps to a product or to a group of related products.
- Teams: Group of people that work together, usually mapping to feature or product teams.
VS Team Services, our cloud offering, maintains these concepts but it does so with a couple of differences. One of those is the introduction of Accounts and its relationship to Collections. When signing up to use the service you first have to create an Account, which automatically creates a default Collection. The Account is an encapsulation unit that for the most part behaves like an single on-premises TFS server, providing a unique domain name (xyz.visualstudio.com), commerce support and other core management features. For small software teams the simplicity of just creating an Account and working with the Projects inside resonates. For organizations, with many teams and projects, this single isolation unit doesn’t scale well, and hence all of the votes on the UserVoice story.
Over the course of several months we have met with many customers to learn more about their scenarios and validate possible solutions. One theme that recurred in the conversations was the geo-distributed nature of these organizations. Given the architecture of Accounts and their affinity to one datacenter, it was clear to us that we could not support all of the scenarios by just introducing multiple Collections per Account.
Instead, we need to introduce a logical concept that groups our isolation unit (Account/Collection) with no affinity to a particular datacenter. We are calling this new logical entity an Organization. This means, that a company like Microsoft could create the Microsoft organization and then have multiple “Accounts” located in West US, East US, Europe or any other datacenter location that we support.
So what does this mean for you then? Well, to start, it means that we will NOT be introducing the concept of multiple Collections per Account. Instead, we will begin to collapse the concepts of the Collection and Account into one “entity”, naming still to be determined – ideas are welcomed :). We will then introduce the concept of a logical Organization, which allows you to encapsulate these isolation units and perform really cool operations in the future.
Over the first half of the year you will see use make the following changes:
- Merging the Account and Collection concepts causing “Default Collection” to disappear from the account Url
- Introduction of the Organization concept
- Support added for licenses across all accounts in a single organization
- The ability to set security policies (like disabling alternate authentication credentials) at the Organization level and have it applied to all Accounts
The good news is that this is just the beginning. We have many features planned centering around rich discovery and sharing experiences within your Organization. There are also more “enterprise focused features” in the backlog for those companies that need a higher degree of control and auditing across all of their teams.
Since this is a journey, we plan to come back regularly to this blog and share with you progress, experience flows, guidance and other information as the vision starts taking shape. We look forward to hearing from you along the way.
Group Program Manager