Hãy tưởng tượng một hệ thống có số lượng lớn máy chủ. Mỗi người trong số họ có một số cài đặt:
- Một số cụ thể cho máy chủ
- Một số cụ thể cho khu vực
- Một số phổ biến trên tất cả chúng
- Có lẽ bạn có thể có một số nhóm tùy chỉnh, như nhóm máy chủ này chỉ để đọc
- Vân vân.
Thực tế hiện tại tôi có trong đầu là một cấu trúc tài sản đơn giản với khả năng vượt trội.
Hãy lấy máy chủ của Google cho mục đích của ví dụ. Mỗi người trong số họ có một danh sách các cài đặt để tải.
Ví dụ: máy chủ Luân Đôn có thể có:
rootsettings.properties
, europesettings.properties
, londonsettings.properties
, searchengine.properties
,, Vv
Trong đó mỗi tệp chứa một tập các thuộc tính và trình tự tải cho phép bạn ghi đè các thuộc tính, bạn càng đi xa hơn.
Ví dụ: rootsettings.properties
có thể có accessible=false
mặc định, nhưng được ghi đè searchengine.properties
bằngaccessible=true
Vấn đề tôi gặp phải với cấu trúc này là rất dễ thoát khỏi tầm kiểm soát. Nó hoàn toàn không có cấu trúc, có nghĩa là bạn có thể xác định bất kỳ tài sản nào ở mọi cấp độ và nhiều mặt hàng có thể trở nên lỗi thời.
Hơn nữa, việc thay đổi mức trung bình trở nên bất khả thi khi mạng phát triển, vì hiện tại bạn ảnh hưởng đến một số lượng lớn máy chủ.
Cuối cùng nhưng không kém phần quan trọng, mỗi trường hợp riêng lẻ có thể cần 1 thuộc tính đặc biệt, nghĩa là cây của bạn kết thúc với một cấu hình cho mỗi máy chủ, làm cho nó không phải là giải pháp tối ưu.
Tôi sẽ đánh giá rất cao nếu bạn có bất kỳ đề xuất / ý tưởng nào về kiến trúc quản lý cấu hình tốt hơn.