Thiết kế multi-cloud landing zone (diagram-as-code)
🎯 Mục tiêu: Vẽ sơ đồ phân cấp account/subscription/project cho một doanh nghiệp 3 team (platform, app-a, app-b) trên cả AWS và Azure; xác định boundary, IAM scope, policy scope.
🧰 Công cụ / nền tảng: VS Code + extension "Markdown Preview Mermaid Support", Git.
📦 Chuẩn bị: Cài VS Code extension bierner.markdown-mermaid; có tài khoản GitHub.
▶️ Các bước:
# 1. Tạo workspace
mkdir landing-zone-design && cd landing-zone-design
git init
# 2. Tạo file design
code landing-zone.md
Nội dung landing-zone.md — phân cấp AWS Organizations:
## AWS Organizations Structure
```mermaid
graph TD
Root["Root (Management Account)"]
Root --> OU_Prod["OU: Production"]
Root --> OU_NonProd["OU: NonProd"]
Root --> OU_Shared["OU: Shared Services"]
OU_Prod --> Acc_ProdAppA["Account: prod-app-a"]
OU_Prod --> Acc_ProdAppB["Account: prod-app-b"]
OU_NonProd --> Acc_DevAppA["Account: dev-app-a"]
OU_NonProd --> Acc_Staging["Account: staging-app-a"]
OU_Shared --> Acc_LogArchive["Account: log-archive (IMMUTABLE)"]
OU_Shared --> Acc_Security["Account: security-tooling"]
OU_Shared --> Acc_Network["Account: network-hub"]
```
## Azure Management Group Structure
```mermaid
graph TD
Tenant["Azure AD Tenant (Root MG)"]
Tenant --> MG_Prod["MG: Production"]
Tenant --> MG_NonProd["MG: NonProd"]
Tenant --> MG_Platform["MG: Platform"]
MG_Prod --> Sub_ProdAppA["Subscription: prod-app-a"]
MG_Prod --> Sub_ProdAppB["Subscription: prod-app-b"]
MG_NonProd --> Sub_Dev["Subscription: dev-shared"]
MG_Platform --> Sub_Connectivity["Subscription: connectivity-hub"]
MG_Platform --> Sub_Management["Subscription: management (logs)"]
```
# 3. Bổ sung bảng decision matrix: khi nào dùng Account vs OU
cat >> landing-zone.md << 'EOF'
## Decision: Khi nào tạo Account/Subscription riêng?
| Tiêu chí | Tạo Account mới |
|-----------------------|----------------|
| Môi trường khác nhau | Luôn luôn |
| Team/BU khác nhau | Khuyến nghị |
| Compliance riêng biệt | Bắt buộc |
| Chi phí cần tách biệt | Khuyến nghị |
EOF
# 4. Commit
git add .
git commit -m "lab-061: multi-cloud landing zone design diagram"
🖥️ Đối chiếu GUI: Ctrl+K V trong VS Code để preview Mermaid diagram trực tiếp.
✅ Kết quả mong đợi: 2 sơ đồ render đúng; phân biệt rõ Management Account/Subscription và Workload Account/Subscription; bảng decision matrix đầy đủ.
🧹 Cleanup: giữ lại repo làm tài liệu thiết kế.