Jacob's Azure Lab

About the Lab

Welcome to the technical breakdown! This page details how this lab is architected, the Azure services used, and how everything is tied together using Terraform and CI/CD.

Architecture Overview

Key Features & Practices

Infrastructure Diagrams

Terraform to Azure CI/CD Flow

  • Make Terraform changes locally in VSCode on my machine.
  • Run terraform plan to review proposed changes and verify syntax.
  • My account reaches out to the storage account hosting the Terraform state file for planning.
  • Access is managed via RBAC permissions on the storage account.
  • Once satisfied with the plan, push changes to my GitHub repo.
  • GitHub Actions workflow is triggered, running terraform apply against the Azure environment.
  • GitHub Actions uses RBAC permissions (service principal) to deploy/update resources in Azure.

Web Deployment Flow

  • Make website .html, .js, .css changes with the help of AI overlords (I don’t know js or html really; I’m a network/systems engineer who just learned terraform and python some).
  • Run git add
  • Run git commit -m "notes on commit here"
  • Run git push
  • GitHub Actions uses RBAC permissions (service principal) to deploy/update resources in Azure.
  • Website is updated!

More Details

Source Code & Infrastructure

All code and Terraform for this project is public: GitHub Repository

What’s Next? I'm going to keep adding diagrams on information flow and keep adding complexity. (logging, pushing azure app data to website, making snake game better, etc)