Azure Resource Manager

I. Resource Manager

Cơ sở hạ tầng của ứng dụng có thể được tạo nên từ nhiều thành phần: virtual machine, storage account, virtual network, web app, database,…

Vấn đề: Các thành phần này không hoạt động độc lập. Chúng phụ thuộc lẫn nhau và tạo thành một khối tổng thể. Bạn muốn triển khai, quản lý và giám sát tất cả các thành phần này cùng một lúc, như một nhóm.

Azure Resource Manager (ARM) cho phép triển khai và quản lý tất cả các thành phần như một nhóm.

Cách tất cả các công cụ tương tác với cùng một API Azure Resource Manager:

Azure Resource Manager (ARM)

II. Lợi ích của Resource Manager

Trình quản lý tài nguyên cung cấp một số lợi ích:

  • Nhóm các nguồn lại: Thay vì xử lý từng nguồn riêng lẻ. ARM cho phép triển khai, quản lý và giám sát tất cả các tài nguyên dưới dạng một nhóm.
  • Đảm bảo tính nhất quán: Bạn có thể triển khai lại giải pháp của mình nhiều lần trong suốt vòng đời phát triển. Điều này giúp loại bỏ các lỗi cấu hình và đảm bảo giải pháp của bạn hoạt động như mong đợi mỗi lần.
  • Sử dụng template thay cho script: Bạn có thể quản lý cơ sở hạ tầng của mình thông qua các template thay vì các script phức tạp.
  • Quản lý thứ tự triển khai: Bạn có thể xác định các phụ thuộc giữa các tài nguyên để chúng được triển khai theo đúng thứ tự. Điều này đảm bảo rằng các nguồn lực cần thiết có sẵn trước khi triển khai các nguồn khác, giúp tránh các lỗi phụ thuộc.
  • Kiểm soát truy cập: ARM tích hợp sẵn kiểm soát truy cập dựa trên vai trò (RBAC) vào nền tảng quản lý. Điều này cho phép bạn dễ dàng áp dụng kiểm soát truy cập cho tất cả các dịch vụ trong nhóm tài nguyên của mình, đảm bảo chỉ những người dùng được ủy quyền mới có thể truy cập vào các nguồn đó.
  • Sắp xếp logic: Bạn có thể gắn thẻ cho các nguồn để sắp xếp logic tất cả các nguồn trong đăng ký của mình. Điều này giúp bạn dễ dàng tìm thấy các nguồn cụ thể và hiểu mối quan hệ giữa chúng.
  • Theo dõi chi phí: Bằng cách xem chi phí cho một nhóm các nguồn chia sẻ cùng một thẻ, bạn có thể làm rõ hóa việc thanh toán cho tổ chức của mình.

III. Một số thuật ngữ

  • Resource: Là một số tài nguyên như máy ảo, tài khoản lưu trữ, ứng dụng web, cơ sở dữ liệu và mạng ảo, …
  • Resource group: là nhóm của các resource.
  • ARM Template: là một tệp được viết theo định dạng JSON (JavaScript Object Notation). Về cơ bản, nó định nghĩa cơ sở hạ tầng bạn muốn thiết lập trong môi trường đám mây Azure
  • Declarative syntax: Cú pháp khai báo để mô tả cái mà bạn muốn tạo mà không cần lập trình từng bước xây dựng lên nó. Ví dụ: Bạn chỉ cần nói “Tôi muốn tạo một máy ảo với 2 CPU và 8GB RAM” thay vì phải viết ra từng bước để cài đặt hệ điều hành, phân bổ tài nguyên
  • Resource Providers: giống như một bộ phận cung cấp các dịch vụ cho một mảng trên Azure. Ví dụ: Chẳng hạn, nếu bạn muốn lưu trữ key và secret (mật khẩu): Resource provider Microsoft.KeyVault. Resource provider này cung cấp một loại tài nguyên gọi là vaults (kho lưu trữ) để bạn tạo ra kho lưu trữ key Microsoft.KeyVault/vaults.

IV. Resource Group Deployment

1. Một số lưu ý đối với resource group

  • Resource chỉ có thể xuất hiện ở trong 1 Resource Group
  • Không thể đổi tên resource group
  • Resource Group có thể có nhiều loại resource khác nhau
  • Resource Group có thể có nhiều loại resource ở các khu vực khác nhau
  • Tất cả resource trong resource group có chung 1 vòng đời: Triển khai, cập nhật và xóa cùng nhau.
  • Thêm và xóa resource vào resource group bất cứ lúc nào.
  • Có thể di chuyển resource từ resource group này sang resource group khác.
  • Resource Group có thể được sử dụng để kiểm soát truy cập xem ai có thể truy cập và thực hiện các hành động quản trị đối với các resource đó.
  • Các resource có thể tương tác với các resource ở trong group khác. Ví dụ web app kết nối với database.

2. Resource Manager Locks

Resource Manager Locks ngăn chặn việc vô tình xóa resource trong Azure.

Các tính chất:

  • Có thể khóa các subscription, resource group, resource.
  • Các resource con sẽ kế thừa khóa của resource cha.

3. Lock types

Có 2 loại resource locks:

  • Read-Only locks: ngăn chặn bất kỳ thay đổi nào đối với tài nguyên.
  • Delete locks: ngăn chặn việc xóa đối với resource.

4. Moving Resource

Khi di chuyển resource từ resource group nguồn sang resource group đích thì cả 2 group đều bị khóa tạm thời. Các hoạt động thêm mới, cập nhật hoặc xóa sẽ đều bị ngăn chặn. Tuy nhiên, resource sẽ không bị chặn và sẽ vẫn hoạt động bình thường trong quá trình di chuyển. 

5. Removing resource and resource group

Khi xóa resource group, các resource con sẽ bị xóa theo.

Using PowerShell to delete resource groups: Remove-AzResourceGroup -Name “ContosoRG01”

Nguyễn Tiến Trường

Mình viết về những điều nhỏ nhặt trong cuộc sống, Viết về câu chuyện những ngày không có em