Skip to content

Commit 9534aa9

Browse files
committed
ADO Workloads
1 parent 7ba4e35 commit 9534aa9

File tree

4 files changed

+802
-0
lines changed

4 files changed

+802
-0
lines changed
Lines changed: 195 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,195 @@
1+
# yaml-language-server: $schema=https://aka.ms/configuration-dsc-schema/0.2
2+
#
3+
# Backend Development Configuration Sample for .NET Engineers
4+
# =============================================
5+
#
6+
# Purpose:
7+
# This DSC configuration installs essential tools for Azure backend development including:
8+
# - Source control tools (GitHub Desktop)
9+
# - Azure command-line tools (CLI, AZD, Bicep)
10+
# - Local development emulators for Azure services
11+
#
12+
# Best Practices:
13+
# - All tools are installed via WinGet for consistent versioning
14+
# - Dependencies are explicitly declared to ensure proper installation order
15+
# - Tools are grouped logically by purpose
16+
# - Configuration should be version controlled and tested in CI/CD pipelines
17+
# - Regular updates to ensure latest security patches and features
18+
# - Separation of development tools from production configurations
19+
#
20+
properties:
21+
configurationVersion: "0.2.0"
22+
resources:
23+
#----------------------------------------------
24+
# Azure Command-Line Tools
25+
#----------------------------------------------
26+
# Resource: Azure CLI
27+
# Azure CLI is the foundation for Azure management and serves as a dependency for other Azure tools.
28+
# It provides command-line access to nearly all Azure service operations.
29+
#
30+
# Key Azure integration points:
31+
# - Unified authentication with Microsoft Entra ID (formerly Azure AD)
32+
# - Support for service principals and managed identities
33+
# - JSON-based output for automation and scripting
34+
# - Cross-platform compatibility for consistent workflows
35+
#
36+
# Security best practices:
37+
# - Use 'az login --tenant' to explicitly specify tenants
38+
# - Leverage managed identities where available
39+
# - Apply RBAC with principle of least privilege
40+
# - Use service principals with certificate-based auth for automation
41+
# - Regularly update CLI using 'az upgrade' command
42+
# - Avoid storing credentials in CLI cache in shared environments
43+
# - Configure CLI to use your organization's approved proxy if required
44+
#
45+
# Common development scenarios:
46+
# - Resource provisioning via templates and scripts
47+
# - Querying resource status and configurations
48+
# - Integrated deployment workflows with CI/CD
49+
# - Management of secrets and connection strings
50+
#
51+
# DSC-specific notes:
52+
# - WinGet ensures automatic updates to secure versions
53+
# - Installation is idempotent and will not reinstall if present
54+
# - Consider adding environment PATH validation during configuration testing
55+
#
56+
# Reference: https://learn.microsoft.com/en-us/cli/azure/
57+
- resource: Microsoft.WinGet.DSC/WinGetPackage
58+
id: Microsoft.AzureCLI
59+
directives:
60+
allowPrerelease: true
61+
description: Install Azure CLI for managing Azure resources from the command line
62+
settings:
63+
id: Microsoft.AzureCLI
64+
65+
# Resource: Azure Developer CLI (azd)
66+
# Azure Developer CLI (azd) simplifies application development workflow with templates
67+
# and integrated deployment capabilities.
68+
#
69+
# Key Azure integration points:
70+
# - End-to-end application development lifecycle management
71+
# - Built-in templates for common Azure architectural patterns
72+
# - Automated environment provisioning with infrastructure as code
73+
# - Integration with GitHub Actions and Azure DevOps for CI/CD
74+
# - Application monitoring and logging setup
75+
#
76+
# Development best practices:
77+
# - Use environment variables for secrets ('azd env set')
78+
# - Leverage service templates for consistent architecture
79+
# - Implement standardized application structures
80+
# - Follow Azure landing zone principles for environments
81+
# - Store azd environment configurations in version control
82+
# - Use azd pipeline integration for repeatable deployments
83+
# - Include .env.template file but exclude .env files from source control
84+
#
85+
# Common development scenarios:
86+
# - Setting up complete development environments
87+
# - Implementing production-ready services with best practices
88+
# - Consistent local-to-cloud development experience
89+
# - Orchestrating multi-service deployments
90+
#
91+
# DSC-specific notes:
92+
# - Dependency on Azure CLI is explicitly declared
93+
# - Installation validates presence of required prerequisites
94+
# - Consider adding post-install validation of azd version
95+
#
96+
# Reference: https://learn.microsoft.com/en-us/azure/developer/azure-developer-cli/
97+
- resource: Microsoft.WinGet.DSC/WinGetPackage
98+
id: Microsoft.Azd
99+
directives:
100+
allowPrerelease: true
101+
description: Install Azure Developer CLI (azd) for end-to-end application development
102+
settings:
103+
id: Microsoft.Azd
104+
dependsOn:
105+
- Microsoft.AzureCLI # AZD requires Azure CLI to function properly
106+
107+
# Resource: Bicep CLI
108+
# Bicep provides a domain-specific language for deploying Azure resources
109+
# with improved syntax over ARM templates.
110+
#
111+
# Key Azure integration points:
112+
# - Native integration with Azure Resource Manager
113+
# - Support for all Azure resource types and apiVersions
114+
# - Resource visualization capabilities
115+
# - Module composition for reusable infrastructure
116+
# - Built-in functions for dynamic deployments
117+
#
118+
# IaC best practices:
119+
# - Use modules for reusable components
120+
# - Implement parameterization for environment flexibility
121+
# - Apply Azure Policy as Code for governance
122+
# - Use symbolic references instead of string manipulation
123+
# - Implement deployment validation with 'what-if'
124+
# - Structure Bicep modules with clear separation of concerns
125+
# - Validate Bicep files with 'bicep build' before deployment
126+
# - Use linting tools to enforce conventions and best practices
127+
# - Test deployments in isolation before integrating
128+
#
129+
# Common development scenarios:
130+
# - Defining infrastructure as code for Azure environments
131+
# - Creating reusable infrastructure modules
132+
# - Setting up complex multi-resource deployments
133+
# - Implementing infrastructure governance
134+
#
135+
# DSC-specific notes:
136+
# - Bicep CLI is installed via Azure CLI extension
137+
# - Installation updates to latest version automatically
138+
# - Consider adding VS Code extension for Bicep in developer environments
139+
#
140+
# Reference: https://learn.microsoft.com/en-us/azure/azure-resource-manager/bicep/
141+
- resource: Microsoft.WinGet.DSC/WinGetPackage
142+
id: Microsoft.Bicep
143+
directives:
144+
allowPrerelease: true
145+
description: Install Bicep CLI for Infrastructure as Code development on Azure
146+
settings:
147+
id: Microsoft.Bicep
148+
dependsOn:
149+
- Microsoft.AzureCLI # Bicep extensions use Azure CLI for deployment
150+
151+
#----------------------------------------------
152+
# Local Development Emulators
153+
#----------------------------------------------
154+
# Resource: Azure Storage Emulator
155+
# Azure Storage Emulator provides a local environment for testing Azure Storage applications
156+
# without requiring an Azure subscription for development.
157+
#
158+
# Key Azure integration points:
159+
# - Local emulation of Blob, Queue, and Table storage
160+
# - Development connection string compatibility with Azure Storage
161+
# - Support for Azure Storage SDK integration
162+
# - Local debugging of storage-dependent applications
163+
# - Reduced development costs by minimizing cloud resource usage
164+
#
165+
# Development best practices:
166+
# - Use consistent connection strings between local and cloud
167+
# - Validate local operations match cloud behavior
168+
# - Implement proper exception handling for both environments
169+
# - Test with both emulator and actual Azure resources before deployment
170+
# - Create automated tests that work with both environments
171+
# - Consider using Azurite (newer emulator) for feature parity
172+
# - Configure proper data persistence for development data
173+
# - Document how to initialize the emulator in your project
174+
#
175+
# Common development scenarios:
176+
# - Building applications using Azure Storage
177+
# - Performing rapid iterative development
178+
# - Unit and integration testing without cloud dependencies
179+
# - Offline development scenarios
180+
# - Cost optimization during development phases
181+
#
182+
# DSC-specific notes:
183+
# - Installation may require administrator privileges
184+
# - Consider validating emulator is running after installation
185+
# - May need to configure firewall exceptions
186+
# - Check SQL Server dependency is met (LocalDB)
187+
#
188+
# Reference: https://learn.microsoft.com/en-us/azure/storage/common/storage-use-emulator
189+
- resource: Microsoft.WinGet.DSC/WinGetPackage
190+
id: Microsoft.Azure.StorageEmulator
191+
directives:
192+
allowPrerelease: true
193+
description: Install Azure Storage Emulator for local development
194+
settings:
195+
id: Microsoft.Azure.StorageEmulator

0 commit comments

Comments
 (0)