Lộ trình
Google CloudAssociateTuần 4: Tối ưu & vận hànhBài 25 / 30

Ngày 25: Deployment Manager & Terraform

Thời lượng: 45 phút
Mục tiêu: 2 nhiệm vụ chính
Tiến độ lộ trình
gcp-acengày 25
hoàn thành25 / 30 bài
Bối cảnh bài học

Dùng IaC trên GCP bằng model desired state, dependency, plan/apply, state, drift, IAM và cleanup; đặt Deployment Manager/Terraform vào đúng bối cảnh.

đọc hiểuthực hànhcheckpoint
Bài giảng hôm nay

Học hiểu, rồi mới thực hành

Dùng IaC trên GCP bằng model desired state, dependency, plan/apply, state, drift, IAM và cleanup; đặt Deployment Manager/Terraform vào đúng bối cảnh.

Bắt đầu đọc bài giảng

Nhiệm vụ bài học hôm nay

  • Tìm hiểu Infrastructure as Code trên GCP
  • Xem qua ví dụ Deployment Manager template
Instructor walkthrough

Bài giảng chi tiết: từ bài toán đến bằng chứng

Scenario xuyên suốt

Một team tạo resource bằng Console, Terraform state không được bảo vệ và Deployment Manager template cũ vẫn được chạy trong project nhầm. Bài học giúp chọn IaC workflow có review, state ownership, drift detection và rollback.

01Đọc bài toán

Xác định actor, workload, constraint và trạng thái cuối cần đạt.

02Vẽ luồng / boundary

Chỉ ra request, dependency, identity và failure domain trước khi chọn công cụ.

03Chọn và thực hành

Thay đổi nhỏ nhất trong lab cô lập; command nào cũng phải nói rõ nó kiểm tra điều gì.

04Kiểm chứng / recovery

Đối chiếu trạng thái thực tế, tạo một failure variant và ghi cách hoàn tác.

Cách nối lý thuyết với thực tế
  • Declarative IaC mô tả desired state; tool tính dependency/plan nhưng không xóa rủi ro nếu target, state hoặc permissions sai.
  • Terraform quản lý provider/resource/state; Deployment Manager là legacy GCP IaC option và cần kiểm tra lifecycle/support hiện hành trước adoption.
  • State chứa resource mapping và có thể chứa sensitive values; remote backend/locking/access control/versioning/secret handling là production concern.
  • Plan/diff/what-if, policy validation, approval và apply evidence tạo change control; import/drift cần xử lý có chủ đích.

IaC là change control, không chỉ file cấu hình

Desired state, provider target và state mapping phải được review cùng nhau. validate kiểm tra syntax/schema; plan cho thấy diff; approval mới cho phép apply; verify phải kiểm tra actual resource và outputs. State remote cần lock, access control, version/backup và tránh credential/sensitive data rò rỉ.

Drift và lifecycle

Drift xảy ra khi Console/khác tool thay đổi resource. Không tự động overwrite; trước hết thu evidence, quyết định source of truth, import/reconcile hoặc rollback. Deployment Manager là lựa chọn legacy cần kiểm tra support/lifecycle trước khi dùng; Terraform không phải lý do bỏ qua governance.

Bài tập

Viết design-only Terraform runbook cho resource GCP lab, so sánh với Deployment Manager, tạo plan/evidence template và drift response. Nếu có sandbox, dùng backend an toàn và resource nhỏ; cleanup scoped, kiểm tra state và residual resources.

Terminal reference

Command list và cách dùng

Chạy từng lệnh theo đúng thứ tự. Trước các lệnh có thể tạo hoặc thay đổi tài nguyên, hãy kiểm tra profile, account và region.

Commands · read-only checkpoints
terraform fmt -check && terraform validate
terraform plan -out=tfplan
gcloud deployment-manager deployments list --project=LAB_PROJECT_ID --format="table(name,description,operation.operationType,operation.status)"
gcloud projects get-iam-policy LAB_PROJECT_ID --format="yaml(bindings)"
Hands-on lab

Thực hành theo scenario

  1. Chọn một resource nhỏ làm design lab: project/region/labels, provider auth, backend/state, variables, resource dependency, outputs và cleanup policy.
  2. Viết plan runbook: fmt/validate → init → plan → review → approval → apply → verify → state backup/lock → destroy/cleanup; không commit credentials/state thật.
  3. So sánh Terraform với Deployment Manager qua matrix: lifecycle, state, ecosystem, drift, team workflow và migration/support risk.
  4. Mô phỏng drift bằng thay đổi read-only hoặc design record; xác định import/plan/remediation và evidence trước khi sửa.
Evidence checkpoint

Kiểm chứng kết quả

Không coi lệnh chạy thành công là đủ. Hãy đối chiếu output với trạng thái mong đợi:

  • Phân biệt desired state/state/remote resource/drift.
  • Provider target/IAM/backend có safety checks.
  • Plan/approval/apply/verify có evidence.
  • State/secret/lock/backup safety rõ.
  • Cleanup scoped và không destructive ngoài lab.
Transfer to exam / production

Bẫy thường gặp và trade-off

ACE có thể hỏi IaC benefit nhưng vẫn kiểm tra project/region/IAM/state. “Terraform tự an toàn” là sai nếu backend, credentials, plan review và target không được bảo vệ.

Checkpoint · 3 phút

Kiểm tra nhanh

Câu hỏi: Terraform plan cho thấy sẽ xóa resource production vì state trỏ nhầm project. Hành động đúng là gì?

Kết thúc bài

Checklist trước khi sang Ngày 2