Tóm tắt nhanh

  • Hỗ trợ native Terraform modules của Pulumi cho phép đánh giá một lớp tài sản IaC có thể tái sử dụng trước khi quyết định đổi công cụ toàn diện. Module là nơi cần kiểm tra kỹ input, output, provider và hành vi phụ thuộc.
  • Nhiều tổ chức đã đầu tư lớn vào module dùng chung. Tái sử dụng có kiểm chứng có thể tạo lộ trình chuyển đổi thực tế hơn so với viết lại toàn bộ.
  • Lập danh mục module dùng chung, chọn một module phổ biến nhưng ít rủi ro và kiểm thử contract cùng plan trong sandbox.

Điều gì đã xảy ra

Kho Terraform hiếm khi chỉ là các file resource độc lập. Giá trị của nó thường nằm trong module dùng chung: mạng, định danh, Kubernetes hoặc các mẫu triển khai dịch vụ. Vì vậy, hỗ trợ native Terraform modules của Pulumi đáng chú ý hơn một cuộc tranh luận đơn thuần về HCL so với ngôn ngữ lập trình.

Pulumi cho biết họ đã bổ sung hỗ trợ native Terraform module, bên cạnh HCL GA và khả năng dùng Pulumi Cloud làm Terraform backend. Đây tạo ra một điểm bắt đầu hẹp hơn cho đội ngũ đang cân nhắc tương tác.

Tái sử dụng module khác với tương thích toàn bộ estate

Một module đóng gói interface: biến đầu vào, giá trị đầu ra, provider, resource và quan hệ phụ thuộc. Module chạy được là tín hiệu tốt, nhưng chưa đủ để kết luận toàn bộ repository có thể chuyển luồng vận hành mà không có khác biệt.

Minh họa kiểm thử module hạ tầng với các liên kết phụ thuộc và điểm đối chiếu.
Minh họa kiểm thử module hạ tầng với các liên kết phụ thuộc và điểm đối chiếu.

Bài hướng dẫn của Pulumi đặt module interop cạnh state, remote execution và HCL. Cách đặt vấn đề này hợp lý: module chỉ có ý nghĩa thực tế khi nó hoạt động trong cùng luồng state và chạy mà tổ chức cần.

Nhóm nên kiểm tra những gì?

  • Kiểm tra contract của module: input bắt buộc, default, output và kiểu dữ liệu.
  • Chạy module với provider và phiên bản đã được khóa trong môi trường thử nghiệm.
  • So sánh plan trước và sau, nhất là thay đổi tài nguyên thay thế hoặc thứ tự phụ thuộc.
  • Thử module lồng nhau và những module chứa logic cục bộ mà đội ngũ sử dụng nhiều.

Giá trị cho đội ngũ nền tảng

Nếu module dùng chung là chuẩn nội bộ, khả năng dùng lại chúng có thể giúp giảm chi phí phối hợp giữa đội platform và đội ứng dụng. Đội platform có thể thử lớp điều phối hoặc engine khác mà không bắt đầu bằng việc yêu cầu mọi consumer thay interface module.

Tuy nhiên, đây là nhận định chiến lược, không phải cam kết tương thích từ Pulumi. Các nhóm nên đo lường bằng danh mục module của mình, ưu tiên module có mức sử dụng cao nhưng blast radius thấp.

Đừng bỏ qua OpenTofu

Pulumi cũng mô tả Pulumi HCL là runtime tương thích OpenTofu và công bố cách họ kiểm thử tương thích. Điều đó mở rộng câu hỏi từ “có đọc HCL không?” sang “ngữ nghĩa nào được xác nhận qua kiểm thử?”.

Trong 5 phút

  • Module là đơn vị pilot tự nhiên cho estate Terraform lớn.
  • Native module support không đồng nghĩa với tương thích vô điều kiện cho mọi repository.
  • Kiểm tra contract, provider, dependency và plan trên module thật.
  • Đặt kết quả module trong bối cảnh state và execution thực tế.

Nguồn tham khảo

Vì sao developer cần quan tâm

Nhiều tổ chức đã đầu tư lớn vào module dùng chung. Tái sử dụng có kiểm chứng có thể tạo lộ trình chuyển đổi thực tế hơn so với viết lại toàn bộ.

  1. 1Lập danh mục module dùng chung, chọn một module phổ biến nhưng ít rủi ro và kiểm thử contract cùng plan trong sandbox.