Skip to content

Commit 241b23c

Browse files
Merge pull request #296383 from RoseHJM/mdb-customizations-concept-article-update
MDB - Customizations concept article update
2 parents 7077273 + 9275b64 commit 241b23c

File tree

2 files changed

+98
-53
lines changed

2 files changed

+98
-53
lines changed
Lines changed: 98 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -1,91 +1,136 @@
11
---
2-
title: Streamline Your Workflow with Dev Box Team Customizations
3-
description: Understand how to use Dev Box team customizations to create ready-to-code configurations for your development teams.
2+
title: Streamline Your Workflow with Dev Box customizations
3+
description: Understand how to use Dev Box customizations to create ready-to-code configurations for your development teams and individual developers.
44
author: RoseHJM
55
ms.author: rosemalcolm
66
ms.service: dev-box
77
ms.custom:
88
- ignite-2024
99
ms.topic: concept-article
10-
ms.date: 01/29/2025
10+
ms.date: 04/18/2025
1111

12-
#customer intent: As a Dev Center Admin or Project Admin, I want to understand how to use Dev Box team customizations so that I can create efficient, ready-to-code configurations for my development teams.
12+
#customer intent: As a Dev Center Admin or Project Admin, I want to understand how to use Dev Box customizations so that I can create efficient, ready-to-code configurations for my development teams.
1313
---
1414

15-
# Microsoft Dev Box team customizations
15+
# Microsoft Dev Box customizations
1616

17-
Getting developers started on a new project or team can be complex and time-consuming. The Microsoft Dev Box *team customizations* feature helps you streamline setup of the developer environment. With team customizations, you can configure ready-to-code workstations with necessary applications, tools, repositories, code libraries, packages, and build scripts.
17+
Starting developers on a new project or team is often complex and time consuming. The Microsoft Dev Box customizations feature helps you streamline the setup of the developer environment. With customizations, you can configure ready-to-code workstations with the necessary applications, tools, repositories, code libraries, packages, and build scripts.
1818

19-
You can use team customizations to define a shared Dev Box configuration for each of your development teams without having to invest in setting up an imaging solution like Packer or Azure virtual machine (VM) image templates. Team customizations provide a lightweight alternative that allows central platform engineering teams to delegate Dev Box configuration management to the teams that use them.
19+
Dev Box customizations let you:
20+
- Install the necessary tools and applications.
21+
- Enforce organizational security policies.
22+
- Ensure consistency across dev boxes.
2023

21-
Team customizations also offer an in-built way of optimizing your team's Dev Box customizations by flattening them into a custom image. You use the same customization file, without the need to manage added infrastructure or maintain image templates.
24+
Microsoft Dev Box offers two ways to use customizations. Team customizations are used to create a shared configuration for a team of developers. Individual customizations are used to create a personal configuration for an individual developer. The following table summarizes the differences between the two types of customizations.
25+
26+
| Feature | Team customizations | Individual customizations |
27+
|-----------------------------|---------------------------|---------------------------|
28+
| **Configure on** | Dev box pool | Dev box |
29+
| **Customizations apply to** | All dev boxes in pool | Individual dev box |
30+
| **Easily shareable** | Yes | No |
31+
| **Customizations file name**| imagedefinition.yaml | myfilename.yaml |
32+
| **Sourced from** | Catalog or personal repository | Uploaded or from personal repository |
33+
| **Supports key vault secrets** | Yes | Yes |
34+
35+
## What is a customization file?
36+
37+
Dev Box customizations use a YAML-formatted file to specify a list of tasks to apply from the dev center or a catalog when developers are creating a dev box. These tasks identify the catalog task and provide parameters like the name of the software to install. Developers create their own customization files or use shared ones.
38+
You can use secrets from your Azure key vault in your customization file to clone private repositories, or with any custom task you author that requires an access token.
39+
40+
## What are tasks?
41+
42+
Dev Box customization tasks are wrappers for PowerShell scripts. You use them to define reusable components that your teams can use in their customizations.
43+
WinGet and PowerShell tasks are available through the platform, and new ones can be added through a catalog.
44+
Tasks run in either a system context or a user context after sign-in.
45+
Team customizations are defined by project admins and can use both custom and built-in tasks.
46+
User customizations can only use system tasks if the user is an administrator, or if the tasks are custom tasks preapproved by through a catalog.
47+
When you're creating tasks, determine which of them need to run in a system context and which of them can run in a user context (after sign-in).
48+
When creating tasks, determine which need to run in a system context and which run in a user context after sign-in.
49+
50+
## Differences between team customizations and individual customizations
51+
52+
Individual developers can upload a customization file when creating their dev box to control the development environment. Developers should use individual customizations only for personal settings and apps. Tasks specified in the individual customization file run only in the user context, after sign-in.
53+
Developers use individual customizations only for personal settings and apps.
54+
Sharing common YAML files among developer teams is inefficient, leads to errors, and violates compliance policies. Dev Box team customizations allow developer team leads and IT admins to preconfigure customization files, eliminating the need for developers to find and upload these files when creating a dev box.
55+
56+
## How do customizations work?
57+
Team customization and individual customizations are both YAML-based files that specify a list of tasks to apply when creating a dev box. Select the appropriate tab to learn more about how each type of customization works.
58+
59+
# [Team customizations](#tab/team-customizations)
60+
### How do team customizations work?
2261

23-
[!INCLUDE [customizations-preview-text](includes/customizations-preview-text.md)]
62+
You can use team customizations to define a shared Dev Box configuration for each of your development teams without having to invest in setting up an imaging solution like Packer or Azure virtual machine (VM) image templates. Team customizations provide a lightweight alternative that allows central platform engineering teams to delegate Dev Box configuration management to the teams that use them.
2463

25-
## How do Dev Box team customizations work?
64+
Team customizations also offer an in-built way of optimizing your team's Dev Box customizations by flattening them into a custom image. You use the same customization file, without the need to manage added infrastructure or maintain image templates.
2665

2766
When you configure Dev Box team customizations for your organization, careful planning and informed decision-making are essential. The following diagram provides an overview of the process and highlights key decision points.
2867

68+
2969
:::image type="content" source="media/concept-what-are-team-customizations/dev-box-customizations-workflow.svg" alt-text="Diagram that shows the workflow for Dev Box team customizations, including steps for planning, configuring, and deploying customizations." lightbox="media/concept-what-are-team-customizations/dev-box-customizations-workflow.svg":::
3070

31-
- **Configure your dev center**:
32-
- Enable project-level catalogs.
33-
- Assign permissions for project admins.
34-
- **Decide whether to use a catalog with custom reusable components**:
35-
- Dev center:
36-
- Use PowerShell or WinGet statements.
37-
- Your own catalog:
38-
- Host in Azure Repos or GitHub.
39-
- Add tasks.
40-
- Attach to a dev center or project.
41-
- **Create a customization file:**
42-
- Create a customization file called imagedefinition.yaml.
43-
- **Specify an image in a dev box pool:**
44-
- Create or modify a dev box pool and specify imagedefinition.yaml as the image definition.
45-
- **Choose how you'll use the image definition:**
46-
- Optimize for team customization.
47-
- Build each time you create a dev box.
48-
- **Create dev box:**
49-
- Create your dev box from the configured pool by using the developer portal.
71+
#### Configure your Dev Box service for team customizations
5072

51-
## What is a customization file?
73+
To set up your Dev Box service to support team customizations, follow these steps:
5274

53-
Dev Box customizations use a YAML-formatted file to specify a list of tasks to apply from the catalog when developers are creating a dev box. These tasks identify the catalog task and provide parameters like the name of the software to install. You then make the customization file available to the developers.
75+
1. **Configure your dev center**:
76+
a. Enable project-level catalogs.
77+
b. Assign permissions for project admins.
5478

55-
You can use secrets from your Azure key vault in your customization file to clone private repositories, or with any custom task you author that requires an access token.
79+
1. **Decide whether to use a catalog with custom reusable components**:
80+
a. **Built-in**:
81+
b. Use PowerShell or WinGet statements.
82+
c. **Catalog**:
83+
d. Host in Azure Repos or GitHub.
84+
e. Add tasks.
85+
f. Attach to a dev center.
5686

57-
## What are tasks?
87+
1. **Create a customization file**:
88+
a. Create a YAML file named `imagedefinition.yaml`.
5889

59-
Dev Box customization tasks are wrappers for PowerShell scripts. You use them to define reusable components that your teams can use in their customizations. WinGet and PowerShell are available as primitive tasks.
90+
1. **Specify an image in a dev box pool**:
91+
a. Create or modify a dev box pool and specify `imagedefinition.yaml` as the image definition.
6092

61-
When you're creating tasks, determine which of them need to run in a system context and which of them can run in a user context (after sign-in). Team customizations can run in both contexts. Individual customizations can run only in a user context.
93+
1. **Choose how you'll use the image definition**:
94+
a. Build the image each time you create a dev box.
95+
b. Optimize the image for team customizations.
6296

63-
## Differences between team customizations and individual customizations
97+
1. **Create a dev box**:
98+
a. Use the developer portal to create your dev box from the configured pool.
99+
100+
For more information, see [Write a team customization file](how-to-write-customization-file.md).
64101

65-
Individual developers can attach a YAML-based customization file when creating their dev box to control the development environment. Developers should use individual customizations only for personal settings and apps. Tasks specified in the individual customization file run only in the user context, after sign-in.
102+
# [Individual customizations](#tab/individual-customizations)
103+
### How do individual customizations work?
104+
Individual developers can attach a YAML-based customization file when creating their dev box to control the development environment. Developers use individual customizations only for personal settings and apps.
66105

67-
Although teams of developers can share common YAML files, this approach can be inefficient and error prone. It can also be against compliance policies. Dev Box team customizations provide a workflow for developer team leaders, project admins, and dev center administrators to preconfigure customization files in dev box pools. This way, a developer who's creating a dev box doesn't need to find and upload a customization file.
106+
:::image type="content" source="media/concept-what-are-team-customizations/individual-customizations-workflow.png" alt-text="Diagram that shows the workflow for Dev Box individual customizations, including steps for planning, configuring, and deploying customizations." lightbox="media/concept-what-are-team-customizations/individual-customizations-workflow.png":::
68107

69-
## Key terms
108+
#### Configure your Dev Box service for individual customizations
70109

71-
When you're working with Dev Box team customizations, you should be familiar with the following key terms:
110+
To set up your Dev Box service to support individual customizations, follow these steps:
72111

73-
- **Catalog**:
74-
- Stored in your code repository or in a separate repository of customization files.
75-
- Hosted on GitHub or Azure Repos.
76-
- Attached to a dev center or project to make tasks accessible to the developer team.
77-
- **Task**:
78-
- Performs specific actions, like installing software.
79-
- Consists of one or more PowerShell scripts and a task.yaml file.
80-
- **Customization file**:
81-
- Defines tasks for dev boxes and is YAML based.
82-
- Provides an image definition when shared across a team by specifying the base image and customization options for a dev box.
83-
84-
You can find instructions for creating a customization file in the [Write a customization file for a dev box](how-to-write-customization-file.md) article, along with links to example customization files.
112+
1. **Use a PowerShell and WinGet tasks**:
113+
a. Platform supports PowerShell and WinGet.
114+
b. No catalog required.
115+
c. No further configuration required.
116+
117+
1. **Create a customization file**:
118+
a. Create a YAML-based customization file.
119+
120+
1. **Create a dev box**:
121+
a. Use the developer portal to create your dev box from the configured pool.
122+
b. Upload and validate your customization file during the dev box creation process.
123+
124+
1. **Dev box creation**:
125+
a. The dev box is created with the specified customizations.
126+
127+
For more information, see [Write an individual customization file](how-to-write-customization-file.md).
128+
129+
---
85130

86131
## Related content
87132

88133
- [Quickstart: Create a dev box by using team customizations](quickstart-team-customizations.md)
89134
- [Write a customization file for a dev box](how-to-write-customization-file.md)
90135
- [Configure imaging for Dev Box team customizations](how-to-configure-customization-imaging.md)
91-
- [Create tasks for Dev Box team customizations](how-to-create-customization-tasks-catalog.md)
136+
30.6 KB
Loading

0 commit comments

Comments
 (0)