Có thể tìm thấy lời giải thích tốt nhất (như mọi khi) trên bài viết bliki của Martin Fowler về Máy chủ bất biến .
Một máy chủ, có thể là phần cứng hoặc máy chủ ảo trên đám mây, thường có hệ điều hành và ứng dụng chạy trên nó.
Thông thường ứng dụng và các thành phần của hệ điều hành, yêu cầu cấu hình và yêu cầu thay đổi để được áp dụng. Ví dụ: bản vá bảo mật, triển khai các phiên bản mới của ứng dụng và thay đổi cấu hình.
Khi bạn cho rằng bất kỳ thay đổi nào là đột biến ở trạng thái của máy chủ, thuật ngữ này immutable
bắt đầu có ý nghĩa hơn. Nó có nghĩa là không có đột biến được cho phép trên một máy chủ như vậy.
Thông thường, khi mọi người tham gia vào việc thay đổi trạng thái của máy chủ - có thể là triển khai phiên bản hoặc thay đổi cấu hình hoặc đường dẫn bảo mật. Kết quả là một máy chủ không còn hoạt động như mong đợi. Ví dụ: ứng dụng có thể không chạy ngay bây giờ do cấu hình sai, v.v.
Đây là lý do tại sao một thực hành để tạo các máy chủ bất biến được thiết lập. Với sự bất biến các máy chủ , hình ảnh của một máy chủ được tạo với tất cả các cấu hình, bản vá, phiên bản ứng dụng được đóng gói. Sau đó, hình ảnh máy chủ đó có thể được sử dụng để tạo máy chủ trong các môi trường khác nhau.
Môi trường đầu tiên mà một sử dụng hình ảnh sẽ là môi trường mà hình ảnh có thể được kiểm tra để hoạt động. Bất kỳ sự bất thường nào cũng được phát hiện và chỉ sau đó một hình ảnh như vậy mới có thể được quảng bá đến môi trường sản xuất để thay thế các máy chủ ở đó bằng phiên bản mới (được biết là hoạt động tốt).
Khi quá trình tạo hình ảnh và quảng bá hình ảnh được tự động hóa, bạn sẽ nhận được một quy trình chống thất bại rất ít liên quan đến nỗ lực của con người và cơ hội rất thấp để đưa thất bại vào dịch vụ của bạn.
Thông thường các máy chủ bất biến thậm chí không bao gồm bất kỳ cách nào để "nhập" chúng, chẳng hạn như máy chủ ssh bị thiếu. Trong trường hợp này, thông thường tất cả các phép đo của máy chủ (số liệu, nhật ký) được chuyển đến các hệ thống bên ngoài như cơ sở dữ liệu số liệu hoặc dịch vụ tổng hợp nhật ký.
Với các thùng chứa (xem: Docker ) cũng có một quy trình để tạo hình ảnh, và sau đó sinh ra chúng vào các container đang chạy. Chúng thường được thay thế bởi các container mới dựa trên hình ảnh được cập nhật và không bao giờ bị thay đổi. Có nghĩa là không có con người đi vào container để "sửa chữa một cái gì đó" bằng cách giới thiệu một sự thay đổi.