Điểm:0

Làm cách nào để viết mẫu Terraform có thể bảo trì

lá cờ cn

đối với công ty của mình, tôi đã được giao nhiệm vụ tạo cấu hình và mẫu tiêu chuẩn cho cụm Kubernetes (EKS) trong Terraform có thể được triển khai bằng GitLab CI/CD. Việc triển khai và cấu hình đã được thực hiện trong một thời gian, nhưng tôi đã gặp khó khăn với khía cạnh mẫu của mọi thứ.

Đây là nhiệm vụ của tôi: tạo một dự án/repo mẫu với cấu hình mà người khác có thể sao chép và chỉnh sửa.

Tuy nhiên, sau đó tôi cần có thể cập nhật cấu hình của mình để phù hợp với các phiên bản hoặc tính năng mới trong tương lai và sau đó họ cần sao chép/sao chép/hợp nhất mẫu của tôi trở lại cấu hình của họ mà không ghi đè lên cấu hình cụ thể của họ.

Tôi đã xin lời khuyên từ một trong những nhà phát triển cấp cao hơn và anh ấy đã khuyên tôi nên tạo một loại tệp cấu hình (chẳng hạn như tệp .tfvars cho Terraform) nơi cấu hình cụ thể có thể được đưa vào, sau đó tôi có thể trừu tượng hóa mẫu của mình và cập nhật nó mà không ảnh hưởng đến cấu hình trong tương lai. Điều này sẽ hoạt động trên bề mặt và hiện tại, nhưng khi các tính năng được thêm vào và các yêu cầu cụ thể hơn đối với tôi xuất hiện, điều này sẽ ngày càng trở nên khó kiểm soát hơn trong tương lai.
Một tùy chọn khác là sử dụng các mô-đun Terraform, nhưng điều này có cùng tác dụng phụ có thể xảy ra là phát triển thành một mớ hỗn độn không thể bảo trì sau này.

Vì vậy, tôi thua lỗ ở đây.Điều này dường như không thể duy trì được đối với tôi hoặc họ trong tương lai. Quan trọng nhất, khi một bản cập nhật phiên bản chính xảy ra cho mẫu của tôi, cấu hình của chúng chắc chắn sẽ bị hỏng mà tôi không có cách nào khắc phục mà không cần thực hiện nhiều thao tác thủ công. Tôi muốn thực hiện nhiều công việc hơn một chút ngay bây giờ để có thể duy trì nó trong tương lai với càng ít công việc càng tốt, nhưng dường như tôi không thể tìm ra giải pháp tốt.

Vì vậy, câu hỏi của tôi dành cho tất cả các bạn là: Làm cách nào để tạo đúng mẫu cụm Terraform Kubernetes có thể bảo trì mà tôi có thể cập nhật với ít nỗ lực nhất có thể trong tương lai?

Điểm:1
lá cờ ph

Các mô-đun Terraform là cơ chế dự định để đóng gói một tập hợp các khai báo thành một biểu mẫu có thể sử dụng lại.

Bạn đã đề cập rằng mối quan tâm chính của bạn là các tính năng được thêm sau này có thể khiến mô-đun phát triển thành một "mớ hỗn độn không thể sửa chữa". Đó là một vấn đề thiết kế điển hình mà những người bảo trì bất kỳ mã có thể tái sử dụng nào phải xử lý: đối với mỗi tính năng mới mà ai đó yêu cầu, bạn sẽ cần tìm cách tích hợp nó vào thiết kế hiện có hoặc tuyên bố tính năng đó nằm ngoài phạm vi và cung cấp một giải pháp riêng cho vấn đề đó, chẳng hạn như một mô-đun khác dự định sẽ được sử dụng cùng với mô-đun đầu tiên.

Không thể có câu trả lời chung cho vấn đề duy trì liên tục mã được chia sẻ, cho dù đó là ở Terraform hay cách khác, nhưng phần tài liệu Terraform Thành phần mô-đun mô tả một số mẫu để chia vấn đề thành các phần nhỏ hơn mà có thể được kết hợp với nhau theo những cách khác nhau.

Đó là cách phổ biến mà các tác giả mô-đun tránh được vấn đề mà bạn lo lắng về việc một mô-đun đơn lẻ ngày càng phát triển để bao gồm nhiều hơn những gì nó được thiết kế ban đầu để bao gồm: thay vào đó, bạn có thể cung cấp cho người dùng của mình nhiều mô-đun mà họ có thể kết hợp với nhau theo những cách khác nhau để xử lý các tình huống khác nhau để những người dùng không cần một số tính năng cụ thể có thể bỏ qua việc đưa vào mô-đun tương ứng của nó trong khi vẫn sử dụng các mô-đun khác.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.