# adibuzz/it7027c-cloud-infra-tech-assignments architecture

> Architecture diagram of the GitHub repository adibuzz/it7027c-cloud-infra-tech-assignments, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-10-01). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/adibuzz/it7027c-cloud-infra-tech-assignments
- Repository: https://github.com/adibuzz/it7027c-cloud-infra-tech-assignments

## Overview

This repository is a hands-on cloud-infrastructure curriculum: users apply isolated Terraform labs to create and explore specific infrastructure patterns. The graph preserves the documented module capabilities and their outcomes; relationships are based on the README, since only the Lambda handler source was excerpted. The README also describes a capstone, but its files are absent from the supplied tree, so it is not mapped.

Main entry points: [`Module-10-Lab/main.tf`](https://github.com/adibuzz/it7027c-cloud-infra-tech-assignments/blob/main/Module-10-Lab/main.tf) (HAProxy balancing), [`Module-6-Lab/main.tf`](https://github.com/adibuzz/it7027c-cloud-infra-tech-assignments/blob/main/Module-6-Lab/main.tf) (Serverless function), [`Module-7-Lab/main.tf`](https://github.com/adibuzz/it7027c-cloud-infra-tech-assignments/blob/main/Module-7-Lab/main.tf) (Vault secrets), [`Module-3-Lab/main.tf`](https://github.com/adibuzz/it7027c-cloud-infra-tech-assignments/blob/main/Module-3-Lab/main.tf) (Messaging services)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_containers["Containers and networking"]
  node_m1["Docker deployment<br/>[main.tf]"]
  node_m2["IaaS and PaaS<br/>[main.tf]"]
  node_m4["Tiered networks<br/>[main.tf]"]
  node_m10["HAProxy balancing<br/>[main.tf]"]
  node_backends["NGINX backends<br/>[main.tf]"]
  node_proxy["HAProxy config<br/>[haproxy.cfg]"]
end

subgraph group_aws["AWS emulation and storage"]
  node_m3["Messaging services<br/>[main.tf]"]
  node_sns["SNS and SQS<br/>[main.tf]"]
  node_m5["Object storage<br/>[main.tf]"]
  node_m6["Serverless function<br/>[main.tf]"]
  node_dynamo[("DynamoDB table<br/>[main.tf]")]
  node_lambda["Lambda handler<br/>[lambda_function.py]"]
  node_m8["Remote state<br/>[main.tf]"]
  node_m13["Pipeline verification<br/>[main.tf]"]
  node_m14["Regional recovery<br/>[main.tf]"]
end

subgraph group_platform["Platform and security"]
  node_m7["Vault secrets<br/>[main.tf]"]
  node_vault[("Vault")]
  node_postgres[("PostgreSQL container<br/>[main.tf]")]
  node_m9["Kubernetes workload<br/>[main.tf]"]
  node_m11["Hybrid cloud<br/>[main.tf]"]
end

subgraph group_operations["Observability and recovery"]
  node_m12["Observability stack<br/>[main.tf]"]
  node_prometheus["Prometheus scraping<br/>[prometheus.yml]"]
end

node_learner(("Learner"))
node_terraform["Terraform CLI"]

node_learner -->|"runs"| node_terraform
node_terraform -->|"applies"| node_m1
node_terraform -->|"applies"| node_m2
node_terraform -->|"applies"| node_m3
node_terraform -->|"applies"| node_m4
node_terraform -->|"applies"| node_m5
node_terraform -->|"applies"| node_m6
node_terraform -->|"applies"| node_m7
node_terraform -->|"applies"| node_m8
node_terraform -->|"applies"| node_m9
node_terraform -->|"applies"| node_m10
node_terraform -->|"applies"| node_m11
node_terraform -->|"applies"| node_m12
node_terraform -->|"applies"| node_m13
node_terraform -->|"applies"| node_m14
node_m10 -->|"balances"| node_backends
node_m10 -->|"configures"| node_proxy
node_m3 -->|"provisions"| node_sns
node_m6 -->|"provisions"| node_dynamo
node_m6 -->|"deploys"| node_lambda
node_m7 -->|"reads secret"| node_vault
node_m7 -->|"passes secret"| node_postgres
node_m12 -->|"configures scrape"| node_prometheus

click node_m1 "https://github.com/adibuzz/it7027c-cloud-infra-tech-assignments/blob/main/Module-1-Lab/main.tf"
click node_m2 "https://github.com/adibuzz/it7027c-cloud-infra-tech-assignments/blob/main/Module-2-Lab/main.tf"
click node_m4 "https://github.com/adibuzz/it7027c-cloud-infra-tech-assignments/blob/main/Module-4-Lab/main.tf"
click node_m10 "https://github.com/adibuzz/it7027c-cloud-infra-tech-assignments/blob/main/Module-10-Lab/main.tf"
click node_backends "https://github.com/adibuzz/it7027c-cloud-infra-tech-assignments/blob/main/Module-10-Lab/main.tf"
click node_proxy "https://github.com/adibuzz/it7027c-cloud-infra-tech-assignments/blob/main/Module-10-Lab/haproxy.cfg"
click node_m3 "https://github.com/adibuzz/it7027c-cloud-infra-tech-assignments/blob/main/Module-3-Lab/main.tf"
click node_sns "https://github.com/adibuzz/it7027c-cloud-infra-tech-assignments/blob/main/Module-3-Lab/main.tf"
click node_m5 "https://github.com/adibuzz/it7027c-cloud-infra-tech-assignments/blob/main/Module-5-Lab/main.tf"
click node_m6 "https://github.com/adibuzz/it7027c-cloud-infra-tech-assignments/blob/main/Module-6-Lab/main.tf"
click node_dynamo "https://github.com/adibuzz/it7027c-cloud-infra-tech-assignments/blob/main/Module-6-Lab/main.tf"
click node_lambda "https://github.com/adibuzz/it7027c-cloud-infra-tech-assignments/blob/main/Module-6-Lab/lambda_function.py"
click node_m8 "https://github.com/adibuzz/it7027c-cloud-infra-tech-assignments/blob/main/Module-8-Lab/main.tf"
click node_m13 "https://github.com/adibuzz/it7027c-cloud-infra-tech-assignments/blob/main/Module-13-Lab/main.tf"
click node_m14 "https://github.com/adibuzz/it7027c-cloud-infra-tech-assignments/blob/main/Module-14-Lab/main.tf"
click node_m7 "https://github.com/adibuzz/it7027c-cloud-infra-tech-assignments/blob/main/Module-7-Lab/main.tf"
click node_postgres "https://github.com/adibuzz/it7027c-cloud-infra-tech-assignments/blob/main/Module-7-Lab/main.tf"
click node_m9 "https://github.com/adibuzz/it7027c-cloud-infra-tech-assignments/blob/main/Module-9-Lab/main.tf"
click node_m11 "https://github.com/adibuzz/it7027c-cloud-infra-tech-assignments/blob/main/Module-11-Lab/main.tf"
click node_m12 "https://github.com/adibuzz/it7027c-cloud-infra-tech-assignments/blob/main/Module-12-Lab/main.tf"
click node_prometheus "https://github.com/adibuzz/it7027c-cloud-infra-tech-assignments/blob/main/Module-12-Lab/prometheus.yml"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_m1,node_m2,node_m4,node_m10,node_backends,node_proxy toneBlue
class node_m3,node_sns,node_m5,node_m6,node_dynamo,node_lambda,node_m8,node_m13,node_m14 toneAmber
class node_m7,node_vault,node_postgres,node_m9,node_m11 toneMint
class node_m12,node_prometheus toneRose
class node_learner,node_terraform toneIndigo
```

## Components

### Containers and networking

- [Docker deployment](https://github.com/adibuzz/it7027c-cloud-infra-tech-assignments/blob/main/Module-1-Lab/main.tf): `Module-1-Lab/main.tf`
- [IaaS and PaaS](https://github.com/adibuzz/it7027c-cloud-infra-tech-assignments/blob/main/Module-2-Lab/main.tf): `Module-2-Lab/main.tf`
- [Tiered networks](https://github.com/adibuzz/it7027c-cloud-infra-tech-assignments/blob/main/Module-4-Lab/main.tf): `Module-4-Lab/main.tf`
- [HAProxy balancing](https://github.com/adibuzz/it7027c-cloud-infra-tech-assignments/blob/main/Module-10-Lab/main.tf): `Module-10-Lab/main.tf`
- [NGINX backends](https://github.com/adibuzz/it7027c-cloud-infra-tech-assignments/blob/main/Module-10-Lab/main.tf): `Module-10-Lab/main.tf`
- [HAProxy config](https://github.com/adibuzz/it7027c-cloud-infra-tech-assignments/blob/main/Module-10-Lab/haproxy.cfg): `Module-10-Lab/haproxy.cfg`

### AWS emulation and storage

- [Messaging services](https://github.com/adibuzz/it7027c-cloud-infra-tech-assignments/blob/main/Module-3-Lab/main.tf): `Module-3-Lab/main.tf`
- [SNS and SQS](https://github.com/adibuzz/it7027c-cloud-infra-tech-assignments/blob/main/Module-3-Lab/main.tf): `Module-3-Lab/main.tf`
- [Object storage](https://github.com/adibuzz/it7027c-cloud-infra-tech-assignments/blob/main/Module-5-Lab/main.tf): `Module-5-Lab/main.tf`
- [Serverless function](https://github.com/adibuzz/it7027c-cloud-infra-tech-assignments/blob/main/Module-6-Lab/main.tf): `Module-6-Lab/main.tf`
- [DynamoDB table](https://github.com/adibuzz/it7027c-cloud-infra-tech-assignments/blob/main/Module-6-Lab/main.tf): `Module-6-Lab/main.tf`
- [Lambda handler](https://github.com/adibuzz/it7027c-cloud-infra-tech-assignments/blob/main/Module-6-Lab/lambda_function.py): `Module-6-Lab/lambda_function.py`
- [Remote state](https://github.com/adibuzz/it7027c-cloud-infra-tech-assignments/blob/main/Module-8-Lab/main.tf): `Module-8-Lab/main.tf`
- [Pipeline verification](https://github.com/adibuzz/it7027c-cloud-infra-tech-assignments/blob/main/Module-13-Lab/main.tf): `Module-13-Lab/main.tf`
- [Regional recovery](https://github.com/adibuzz/it7027c-cloud-infra-tech-assignments/blob/main/Module-14-Lab/main.tf): `Module-14-Lab/main.tf`

### Platform and security

- [Vault secrets](https://github.com/adibuzz/it7027c-cloud-infra-tech-assignments/blob/main/Module-7-Lab/main.tf): `Module-7-Lab/main.tf`
- **Vault**
- [PostgreSQL container](https://github.com/adibuzz/it7027c-cloud-infra-tech-assignments/blob/main/Module-7-Lab/main.tf): `Module-7-Lab/main.tf`
- [Kubernetes workload](https://github.com/adibuzz/it7027c-cloud-infra-tech-assignments/blob/main/Module-9-Lab/main.tf): `Module-9-Lab/main.tf`
- [Hybrid cloud](https://github.com/adibuzz/it7027c-cloud-infra-tech-assignments/blob/main/Module-11-Lab/main.tf): `Module-11-Lab/main.tf`

### Observability and recovery

- [Observability stack](https://github.com/adibuzz/it7027c-cloud-infra-tech-assignments/blob/main/Module-12-Lab/main.tf): `Module-12-Lab/main.tf`
- [Prometheus scraping](https://github.com/adibuzz/it7027c-cloud-infra-tech-assignments/blob/main/Module-12-Lab/prometheus.yml): `Module-12-Lab/prometheus.yml`

### Other components

- **Learner**
- **Terraform CLI**

## Connections

- Learner → Terraform CLI: runs (evidence: `README.md`)
- Terraform CLI → Docker deployment: applies (evidence: `README.md`)
- Terraform CLI → IaaS and PaaS: applies (evidence: `README.md`)
- Terraform CLI → Messaging services: applies (evidence: `README.md`)
- Terraform CLI → Tiered networks: applies (evidence: `README.md`)
- Terraform CLI → Object storage: applies (evidence: `README.md`)
- Terraform CLI → Serverless function: applies (evidence: `README.md`)
- Terraform CLI → Vault secrets: applies (evidence: `README.md`)
- Terraform CLI → Remote state: applies (evidence: `README.md`)
- Terraform CLI → Kubernetes workload: applies (evidence: `README.md`)
- Terraform CLI → HAProxy balancing: applies (evidence: `README.md`)
- Terraform CLI → Hybrid cloud: applies (evidence: `README.md`)
- Terraform CLI → Observability stack: applies (evidence: `README.md`)
- Terraform CLI → Pipeline verification: applies (evidence: `README.md`)
- Terraform CLI → Regional recovery: applies (evidence: `README.md`)
- HAProxy balancing → NGINX backends: balances (evidence: `README.md`)
- HAProxy balancing → HAProxy config: configures (evidence: `README.md`)
- Messaging services → SNS and SQS: provisions (evidence: `README.md`)
- Serverless function → DynamoDB table: provisions (evidence: `README.md`)
- Serverless function → Lambda handler: deploys (evidence: `README.md`)
- Vault secrets → Vault: reads secret (evidence: `README.md`)
- Vault secrets → PostgreSQL container: passes secret (evidence: `README.md`)
- Observability stack → Prometheus scraping: configures scrape (evidence: `README.md`)
