Các công cụ quản lý cấu hình đóng vai trò gì trong cơ sở hạ tầng bất biến?


12

Nếu tôi đang sử dụng các máy chủ / container bất biến , tôi có cần các công cụ như Chef, Puppet, Ansible hoặc Salt không? Những công cụ quản lý cấu hình được thiết kế để thiết lập cấu hình và sau đó duy trì nó.

Nếu tôi đang triển khai các máy chủ bất biến, tôi có nên sử dụng các công cụ quản lý cấu hình chỉ để cung cấp ban đầu không?

Câu trả lời:


12

Có một vài câu trả lời cho điều đó:

  1. Một cái gì đó cần để xây dựng những hình ảnh bất biến. Chắc chắn sẽ dễ dàng hơn khi sử dụng kịch bản thủ tục kiểu trường học cũ để xây dựng một cái gì đó khi bắt đầu từ trạng thái bắt đầu đã biết nhưng điều này vẫn có thể trở nên rất khó sử dụng theo thời gian (ví dụ: Dockerfiles), đặc biệt là khi bạn muốn có một ma trận lớn các hình ảnh khác nhau cho những thứ như các phiên bản khác nhau của phần mềm, môi trường khác nhau, v.v. Trình đóng gói và các công cụ xây dựng hình ảnh khác tích hợp độc đáo với Chef, Ansible, Puppet, Salt, v.v.

  2. Bất biến là một phổ, không phải là nhị phân. Ngay cả trong một triển khai "rất bất biến", không có gì lạ khi có một số tệp cấu hình cần quản lý thời gian chạy. Đây cũng là nơi bạn có thể sử dụng các công cụ CAPS, mặc dù các tùy chọn có trọng lượng nhẹ hơn như Mẫu lãnh sự hoặc vvd có thể có ý nghĩa hơn tùy thuộc vào tổng thể. Nếu bạn đang làm các máy chủ ứng dụng bất biến nhưng các máy chủ cơ sở dữ liệu của bạn được quản lý theo cách truyền thống hơn bằng cách sử dụng Chef, thì có thể sử dụng Chef ngay cả ở khía cạnh bất biến cho các nhiệm vụ quản lý nhỏ.

  3. Quản lý không ngày. Tính bất biến là tốt, nhưng bạn sẽ làm gì khi OpenSSL 0day tiếp theo giảm? Nếu bạn có đường dẫn xây dựng của mình ở một vị trí để tạo hình ảnh hotfix ngay lập tức và triển khai chúng, thì thật tuyệt vời. Nhưng nhiều người có thể sẽ không có khả năng quay đầu nhanh như vậy.

  4. Những thứ không thể thay đổi. Câu trả lời không trả lời, nhưng toàn bộ thông tin hiếm khi bất biến 100%. Những thứ như máy chủ cơ sở dữ liệu và máy trạm của nhà phát triển (vâng, đó là một phần của infra của bạn) nằm ở đâu đó giữa khó khăn và không thể thực hiện được.


Bạn đang đưa ra khá nhiều giả định về "nhiều người". Những người không thể tạo hình ảnh cho cơ sở hạ tầng bất biến của họ, hầu hết có lẽ không có cơ sở hạ tầng bất biến để bắt đầu.
Evgeny

Có một khoảng cách lớn giữa "có thể triển khai bằng cách sử dụng các thùng chứa bất biến" và "có thể xây dựng lại và triển khai lại mọi container trong vòng 6 giờ ngay cả khi đang triển khai các tiến trình khác".
coderanger

Và theo kinh nghiệm của tôi, khi bạn có khoảng cách đó (6 giờ), bạn không thể có cơ sở hạ tầng bất biến. Có máy chủ bất biến và xây dựng máy chủ bất biến nhanh chóng không phải là khả năng giống hệt nhau, nhưng chúng có liên quan chặt chẽ với nhau.
Evgeny

Nhiều người nói rằng "chúng tôi chạy các container bất biến" không nằm trong danh mục đó. Do đó, chỉ ra rằng đó là một vấn đề cần giải quyết, đó là toàn bộ vấn đề.
coderanger

Bạn có thể định nghĩa "không thay đổi" có nghĩa là "không có ai SSH và thực hiện thay đổi thủ công", bởi vì điều đó không thể có nghĩa là hoàn toàn không thay đổi, vì chúng tự thay đổi trong các hoạt động bình thường. Ngay cả viết một pidfile là một đột biến.
Gaius

0

Môi trường hoàn toàn bất biến là một ý tưởng tồi, tôi nghĩ vậy.

Các công cụ CM như Ansible, Chef, Puppet có thể hữu ích trong nhiều trường hợp bao gồm cả của bạn.

Tôi đang sử dụng ansible để cung cấp ban đầu các phiên bản VM trong GCP.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.