---
id: iac-deployment-manager
title: "Deployment Manager"
shortTitle: "Deployment Manager"
track: iac
trackTitle: "Infrastructure as Code"
order: 4
level: normal
status: published
estimatedMinutes: 25
prerequisites:
  - iac-cloudformation
next: config-ansible
reviewedAgainst: 2026-10-12
sources:
  - title: "Deployment Manager deprecation"
    url: https://cloud.google.com/deployment-manager/docs/deprecations
  - title: "Infrastructure Manager"
    url: https://cloud.google.com/infrastructure-manager/docs/overview
---

# Deployment Manager

Google Cloud Deployment Manager là IaC cũ của GCP, file YAML. Google đã ngừng hỗ trợ từ 1 tháng 4 năm 2026. Bài này để đọc một deployment đang sống và không tạo deployment mới.

## Để làm gì

Bạn nhận ra một config Deployment Manager, và chuyển việc tạo resource mới sang Terraform hoặc Infrastructure Manager.

## Gồm những gì

- `resources` và `type` trong YAML.
- Mốc ngừng hỗ trợ và ngày tắt dịch vụ.
- Infrastructure Manager chạy Terraform, là đường thay thế trên GCP.

Đừng chạy `gcloud deployment-manager deployments create`, và đừng chạy DM Convert trên project thật.

## Dùng khi nào

Repo hoặc runbook còn file Deployment Manager. Bạn cần hiểu resource nào nó đang giữ để migrate, không phải để thêm resource.

Đừng bật API Deployment Manager cho một project mới. Từ 30 tháng 6 năm 2026, khách hàng mới bị chặn lần tạo deployment đầu. Dịch vụ còn chạy cho khách đang dùng tới 30 tháng 6 năm 2027, rồi tắt. Mốc này lấy từ trang deprecation của Google, đối chiếu 12 tháng 10 năm 2026.

## Kiến thức cốt lõi

Một config khai `resources`. Mỗi resource có `name` và `type`, ví dụ `compute.v1.instance`. Deployment là lần áp config đó lên project. Xóa deployment có thể xóa resource bên dưới. Khi migrate, abandon deployment để resource còn lại, rồi để Terraform nhận. Đừng xóa production nhầm. Trang DM Convert của Google mô tả hướng đó.

Infrastructure Manager nhận cấu hình Terraform và chạy trên GCP. Bạn vẫn viết HCL như bài Terraform, không viết YAML của Deployment Manager nữa.

Hai công cụ không nên cùng sửa một resource. Chọn Terraform, abandon deployment cũ khi đã import xong.

## Lệnh và code mẫu

Đọc, không áp:

```yaml
resources:
  - name: lab-network
    type: compute.v1.network
    properties:
      autoCreateSubnetworks: false
```

Việc nên làm với hệ mới nằm ở bài Terraform, không có lệnh `gcloud` trong lab này.

## Thực hành

1. Chỉ `name` và `type` trong YAML.
2. Ghi ngày bạn không còn tạo deployment mới: hỗ trợ đã dừng 1 tháng 4 năm 2026.
3. Không bật API và không convert project của công ty trong lúc học.

## Kết quả mong đợi

Resource tên `lab-network`, type `compute.v1.network`. Bạn không gọi GCP.

## Checklist

- [ ] Resource mới trên GCP viết bằng Terraform, không thêm file Deployment Manager.
- [ ] Trước khi xóa deployment, biết resource bên trong có bị xóa theo không.
- [ ] Đọc lại trang deprecation nếu ngày làm việc đã qua 2027.

## Lỗi thường gặp

**Tạo deployment cho lab cho biết.** Project mới có thể bị chặn, hoặc bạn vừa đưa thêm một công cụ phải migrate. Dùng Terraform.

**Xóa deployment để dọn YAML.** Resource production trong deployment đó có thể bị xóa theo. Abandon khi đang chuyển sang Terraform, đúng hướng dẫn migrate, và làm trên bản sao trước.

## Nguồn

1. [Deployment Manager deprecation](https://cloud.google.com/deployment-manager/docs/deprecations) — ngày ngừng hỗ trợ và ngày tắt.
2. [Infrastructure Manager overview](https://cloud.google.com/infrastructure-manager/docs/overview) — Terraform được GCP chạy.

## Tiếp theo

[Ansible: inventory và ad-hoc](../config/01-ansible.md)
