Penjelasan terbaik dapat ditemukan (seperti biasa) pada artikel bliki Martin Fowler tentang Server Tidak Berubah .
Server, baik itu perangkat keras atau server virtual di cloud, biasanya memiliki sistem operasi dan aplikasi yang berjalan di atasnya.
Seringkali aplikasi, dan komponen dari sistem operasi, memerlukan konfigurasi dan memerlukan perubahan untuk diterapkan. Misalnya tambalan keamanan, penyebaran versi baru aplikasi dan perubahan konfigurasi.
Ketika Anda menganggap bahwa setiap perubahan adalah mutasi pada keadaan server, istilah itu immutable
mulai lebih masuk akal. Ini berarti bahwa tidak ada mutasi yang diizinkan pada server seperti itu.
Ini sering terjadi, ketika orang terlibat dalam mengubah keadaan server - baik itu penyebaran versi, atau perubahan konfigurasi, atau jalur keamanan. Hasilnya adalah server yang tidak lagi berfungsi seperti yang diharapkan. Misalnya, aplikasi mungkin tidak berjalan sekarang karena kesalahan konfigurasi, dll.
Inilah sebabnya mengapa praktik untuk membuat server yang tidak dapat diubah didirikan. Dengan server yang tidak dapat diubah , gambar server dibuat dengan semua konfigurasi, tambalan, versi aplikasi yang dibundel. Kemudian gambar server itu dapat digunakan untuk membuat server di berbagai lingkungan.
Lingkungan pertama di mana gambar tersebut digunakan, akan menjadi lingkungan di mana gambar dapat diuji untuk bekerja. Setiap kelainan terdeteksi, dan hanya dengan demikian gambar tersebut dapat dipromosikan ke lingkungan produksi untuk menggantikan server di sana dengan versi baru (yang diketahui bekerja dengan baik).
Setelah proses membuat gambar dan mempromosikan gambar diotomatiskan, Anda mendapatkan proses yang sangat tahan terhadap kegagalan yang melibatkan sedikit usaha manusia dan peluang yang sangat rendah untuk memperkenalkan kegagalan ke dalam layanan Anda.
Seringkali server yang tidak dapat diubah bahkan tidak menyertakan cara untuk "memasukkan" mereka, seperti misalnya server ssh tidak ada. Dalam hal ini juga sering terjadi bahwa semua metrologi server (metrik, log) dikirimkan ke sistem di luar seperti database metrik atau layanan agregasi log.
Dengan kontainer (lihat: Docker ) ada juga proses untuk membuat gambar, dan kemudian memunculkannya ke dalam wadah yang sedang berjalan. Ini cukup sering digantikan oleh wadah baru berdasarkan gambar yang diperbarui, dan tidak pernah bermutasi. Artinya tidak ada manusia yang masuk ke dalam wadah untuk "memperbaiki sesuatu" dengan memperkenalkan perubahan.