Skip to content

Azure/DevBoxAccelerator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

23 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Welcome to the Microsoft Dev Center Landing Zone Accelerator (LZA)

Overview

The purpose of this accelerator is to provide a starting point for customers looking to use Microsoft Dev Center to improve developer productivity in Azure.

The current focus is on Dev Box, with Bicep IaC samples designed to accelerate adoption and expedite the build process. However, the repository will expand over time to include support for Azure Deployment Environments and additional tooling. Various scenarios will be provided to help customers at different stages of their Dev Center journey. Anonymous customer feedback will be continuously reviewed and incorporated to refine and improve the repository as it evolves.

Architectural Diagram

The Dev Center accelerator slots into the wider enterprise-scale landing zone architecture as seen below. Enterprise-scale is an architectural approach that leverages modular designs and reference implementations to help organizations manage and scale their Azure environments to meet their evolving business needs. This approach aligns with the Azure roadmap and the Cloud Adoption Framework for Azure.

DevBox High-Level Architecture

Download the Visio diagram for this architecture here.

The accelerator is mainly concerned with what gets deployed in the landing zone subscription highlighted by the red boxes in the picture above. It is assumed that an appropriate platform foundation is already setup which may or may not be the official ESLZ platform foundation. This means that policies and governance should already be in place or should be setup after this implementation and are not a part of the scope this reference implementation. The policies applied to management groups in the hierarchy above the subscription will trickle down to the Dev Center Landing Zone Accelerator landing zone subscription. Having a platform foundation is not mandatory, it just enhances it. The modularized approach used in this program allows the user to pick and choose whatever portion is useful to them. You don't have to use all the resources provided by this program.

๐Ÿ” Design Areas

Dev Box Design Areas

If you're new to Dev Box, watch this video for a high-level overview of the architecture.

Dev Box overview

Design Area Considerations Recommendations
Management Design Considerations Design Recommendations
Governance TBC Design Recommendations
Identity and Access Management Design Considerations Design Recommendations
Network Topology and Connectivity Design Considerations Design Recommendations
Security TBC TBC
Micrsoft Intune Integration Design Considerations Design Recommendations
Application Management TBC TBC
Image Management TBC Design Recommendations

๐Ÿš€ Deployment Scenarios

This repo contains Dev Center reference implementations, all with supporting Infrastructure as Code artifacts. The scenarios covered are:

More reference implementation scenarios will be added as they become available.

Getting Started

Prerequisites

To deploy the reference implementations you will need the following tooling installed:

  1. Azure CLI.
  2. Bicep CLI
  3. JQ

Important

You must have contributor rights on the subscriptions where the Dev Center and Dev Center project resources will be deployed to. Typically, as-per the Azure Landing Zone architecture, Dev Center is deployed to a platform subscription and Dev Center Projects are deployed to a separate workload/app subscription. However, you can use the same subscription for both deployments if you do not have a platform foundation in place.

Deploying Reference Implementations

The Dev Center and Dev Center project deployments are performed separately as standalone actions in this example.

This landing zone accelerator uses a configuration-based deployment approach. The JSON configuration files provided are specific to each scenario (see Deployment scenarios) and are specified as command line parameters when executing the deployment scripts. The steps are otherwise consistent for all scenarios.

Predeployment Steps

  1. If you have not done so already, clone this repository.
git clone https://github.com/your-repo/devboxaccelerator.git
  1. Change the directory to the root of the repository.

  2. Create your scenario-specific configuration files for the Dev Center and Dev Center project deployments using the samples provided, named with the .sample suffix, as a starting point. You can create configuration files within the existing config folders for convenience as they should be git ignored.

  3. Login to your Azure account:

    az login

    [!NOTE] If you have multiple tenants, consider targeting a specific tenant using the --tenant TENANT_ID option to ensure you are logging into the correct one and deploying resources within that tenant's context.

Deployment Steps

Ensure you have completed the requisite predeployment steps before executing the Dev Center or Dev Center project deployments.

Deploy Dev Center
  1. Change directory to the dev-center folder.

  2. Execute the deployment script specifying the target subscription (e.g., the platform subscription) and the Dev Center configuration file you had created for the scenario you're targeting.

    ./deploy.sh -s <subscription_id> -c <configuration_filepath>
    
  3. Make note of any values written to the .output file for convenience, such as devCenterId, for use with the Dev Center project. This file is named after the configuration file used for the deployment.

Note

You can optionally update the placeholder subscriptionId in the config with your own value to avoid the need for the -s option.

Deploy Dev Project

To run these steps, you will need to have a Dev Center resource deployed. You can use a Dev Center that was not deployed via the deployment script provided in this repo. However, you must ensure it is configured appropriately for the chosen deployment scenarios.

Important

If you have not done so already, you should ensure your Dev Center project configuration file is referencing the appropriate Resource ID values for any existing resources it has a dependency on. For example, the devCenterId along with any networks to be connected.

  1. Change directory to the dev-project folder.

  2. Execute the deployment script specifying the target subscription (e.g., the workload/application subscription) and the Dev Center Project configuration file you had created for the scenario you're targeting.

    ./deploy.sh -s <subscription_id> -c <configuration_filepath>
    

Dev Project Post-deployment

  1. Grant access to the dev box project by assigning users to the built-in Dev Center Dev Box User role.

Give Feedback

Please leverage issues if you have any feedback or request on how we can improve on this repository.


Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.

When you submit a pull request, a CLA bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.

Trademarks

This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft's Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party's policies.

About

No description, website, or topics provided.

Resources

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published