Skip to content

Commit 9d6af73

Browse files
authored
Merge pull request #79153 from spelluru/labdistcollab0606
new article on distributive collaborative dev env
2 parents 1d524c1 + 42e6da7 commit 9d6af73

File tree

3 files changed

+65
-1
lines changed

3 files changed

+65
-1
lines changed

articles/lab-services/TOC.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,9 @@
4949
- name: DevTest Labs
5050
items:
5151
- name: DevTest Labs concepts
52-
href: devtest-lab-concepts.md
52+
href: devtest-lab-concepts.md
53+
- name: Best practices for distributed and collaborative development
54+
href: best-practices-distributive-collaborative-development-environment.md
5355
- name: Scenarios
5456
items:
5557
- name: Popular scenarios for using DevTest Labs
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
---
2+
title: Distributed collaborative development of Azure DevTest Labs resources | Microsoft Docs
3+
description: Provides best practices for setting up a distributed and collaborative development environment to develop DevTest Labs resources.
4+
services: devtest-lab,lab-services
5+
documentationcenter: na
6+
author: spelluru
7+
manager: femila
8+
editor: ''
9+
10+
ms.service: lab-services
11+
ms.workload: na
12+
ms.tgt_pltfrm: na
13+
ms.devlang: na
14+
ms.topic: article
15+
ms.date: 06/10/2019
16+
ms.author: spelluru
17+
18+
---
19+
20+
# Best practices for distributed and collaborative development of Azure DevTest Labs resources
21+
Distributed collaborative development allows different teams or people to develop and maintain a code base. To be successful, the development process depends on the ability to create, share, and integrate information. This key development principle can be used within Azure DevTest Labs. There are several types of resources within a lab that are commonly distributed between different labs within an enterprise. The different types of resources are focused into two areas:
22+
23+
- Resources that are internally stored within the lab (lab-based)
24+
- Resources that are stored in [external repositories that are connected to the lab](devtest-lab-add-artifact-repo.md) (code repository-based).
25+
26+
This document describes some best practices that allow collaboration and distribution across multiple teams while ensuring customization and quality at all levels.
27+
28+
## Lab-based resources
29+
30+
### Custom virtual machine images
31+
You can have a common source of custom images that are deployed to labs on a nightly basis. For detailed information, see [Image factory](image-factory-create.md).
32+
33+
### Formulas
34+
[Formulas](devtest-lab-manage-formulas.md) are lab-specific and don't have a distribution mechanism. The lab members do all the development of formulas.
35+
36+
## Code repository-based resources
37+
There are two different features that are based on code repositories, artifacts and environments. This article goes over the features and how to most effectively set up repositories and workflow to allow the ability to customize the available artifacts and environments at the organization level or team level. This workflow is based on standard [source code control branching strategy](/devops/repos/tfvc/branching-strategies-with-tfvc?view=azure-devops).
38+
39+
### Key concepts
40+
The source information for artifacts includes metadata, scripts. The source information for environments includes metadata and Resource Manager templates with any supporting files like PowerShell scripts, DSC scripts, Zip files, and so on.
41+
42+
### Repository structure
43+
The most common configuration for source code control (SCC) is to set up a multi-tier structure for storing code files (Resource Manager templates, metadata, and scripts) that are used to in the labs. Specifically, create different repositories to store resources that are managed by the different levels of the business:
44+
45+
- Company-wide resources.
46+
- Business unit/Division-wide resources
47+
- Team-specific resources.
48+
49+
Each of these levels link to a different repository where the master branch is required to be of the production quality. The [branches](/devops/repos/git/git-branching-guidance?view=azure-devops) in each repository would be for development of those specific resources (artifacts or templates). This structure aligns well with DevTest Labs as you can easily connect multiple repositories and multiple branches at the same time to the organization’s labs. The repository name is included in the user interface (UI) to avoid confusion when there are identical names, description, and publisher.
50+
51+
The following diagram shows two repositories: a company repository that is maintained by the IT Division, and a division repository maintained by the R&D division.
52+
53+
![A sample distributive and collaborative development environment](./media/best-practices-distributive-collaborative-dev-env/distributive-collaborative-dev-env.png)
54+
55+
This layered structure allows for development while keeping a higher level of quality at the master branch while having multiple repositories connected to a lab allows for greater flexibility.
56+
57+
## Next steps
58+
See the following articles:
59+
60+
- Add a repository to a lab using either the [Azure portal](devtest-lab-add-artifact-repo.md) or via [Azure Resource Management template](add-artifact-repository.md)
61+
- [DevTest Labs artifacts](devtest-lab-artifact-author.md)
62+
- [DevTest Labs environments](devtest-lab-create-environment-from-arm.md).
Loading

0 commit comments

Comments
 (0)