Skip to content

Public repository to provide guidance and examples for people to start learning IaC. This repository also contains some open-hack style labs and labs used in Microsoft workshops.

License

Azure/azure-iac-workshop-content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Azure Infrastructure As Code Workshop Content

Overview

This repository contains labs to help people learn how to write and work with infrastructure as code in Azure. If you're new to Infrastructure as Code, start by reviewing the following IaC concepts.

Custom labs, open-hack style challenges and other content will be added overtime.

Note: Currently the repository only provides learning guidance for developing IaC in Bicep using related Microsoft tooling.


Content

Visual Studio Code

Lab Overview Link
Tooling with Visual Studio Code Learn how to install and configuration of Visual Studio Code. Then walk through cloning a git repository using VSCode VSCode Overview
VsCode Setup
Git Install
VsCode Extensions

Bicep

Note: If you're new to IaC follow the labs based on their order in the table.

Fundamentals

Lab Overview Link
Introduction to Bicep Templates Define Azure resources within a Bicep template. Improve the consistency and reliability of your deployments, reduce the manual effort required, and scale your deployments across environments. Your template will be flexible and reusable by using parameters, variables, expressions, and modules. Lab Part 1
Lab Part 2
Build Reusable Bicep Templates by using Parameters Use Bicep parameters to provide information for your template during each deployment. Add decorators to make your parameters easy to understand and work with, and to protect secret data. Provide parameter values at the command line and by using parameter files. Lab
Build flexible Bicep Templates by using Conditions and Loops Deploy resources only when specific constraints are in place. Use loops to deploy multiple resources that have similar properties. Lab
Create composable Bicep files using modules Design and build reusable modules to simplify your Bicep templates. Compose multiple modules into templates by using parameters and outputs. Lab

Intermediate

Lab Overview Link
Deploy child and extension resources Deploy a variety of Azure resources in your Bicep code. Define and use child and extension resources. Work with resources that you created outside a Bicep template or module. Lab
Structure Bicep for Collaboration Build Bicep files that support collaborative development and follow best practices. Plan your parameters to make your templates easy to deploy. Use a consistent style, clear structure, and comments to make your Bicep code easy to understand, use, and modify. Lab
Manage changes to your Bicep code by using Git Track of changes to your Bicep code and view the history of the files you've changed. Use branches to develop multiple versions of your code at the same time. Publish your repository to support collaboration. Lab
Review Azure infrastructure changes by using Bicep and pull requests Avoid unintended changes and poorly written Bicep code by using pull requests. Use branching strategies to protect your main branch from accidental changes. Understand what you should look for when you review Bicep code. Lab
Preview Azure deployment changes by using what-if Preview the effects of your deployments. Understand the types of changes detected by the what-if operation. Deploy your templates using incremental and complete mode. Lab
Migrate Azure Resources and ARM templates to Bicep Export and convert your Azure resources to Bicep files, and migrate your JSON Azure Resource Manager templates (ARM templates) to Bicep. Refactor your Bicep files to follow best practices. Test your Bicep files and deploy them to production. Lab

Advanced

Lab Overview Link
Deploy resources to subscriptions, management groups and tenants Deploy Azure resources at the subscription, management group, and tenant scope. Understand how Azure resources are deployed at different scopes, why this is important, and how to create Bicep code to deploy them. Create a single set of Bicep files that you can deploy across multiple scopes in one operation. Lab
Extend Bicep using deployment scripts Add custom steps to your Bicep or JSON Azure Resource Manager templates (ARM templates). Integrate deployment scripts with your deployment by using parameters and outputs. Lab
Shared Bicep modules by using a private registry Reuse Bicep modules to reduce code duplication and increase the quality of your deployments. Create a private registry for your organization. Publish shared modules to the registry, and consume them in multiple deployments. Lab
Publish Libraries of reusable infrastructure as code using template specs Reuse and share your ARM templates across your organization. Publish template specs that deploy resources pre-configured for your organization's requirements. Control access and safely update template specs by using versions. Lab

CICD Tools

Lab Overview Link
Azure DevOps Gain all of the benefits of infrastructure as code by using an automated pipeline to deploy your Bicep templates, and integrate other deployment activities with your pipelines. You'll build pipelines using Azure Pipelines. Lab
GitHub Actions Gain all of the benefits of infrastructure as code by using an automated workflow to deploy your Bicep templates, and integrate other deployment activities with your workflows. You'll build workflows using GitHub Actions. Lab
Defender for DevOps Learn how to leverage the new Defender For DevOps tool to securely protect and scan your Infrastructure as Code. GitHub Lab
Azure DevOps Lab

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

Public repository to provide guidance and examples for people to start learning IaC. This repository also contains some open-hack style labs and labs used in Microsoft workshops.

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •