Kedua istilah itu sangat berbeda.
Mari kita mulai dengan immutability
, yang secara harfiah berarti "tidak ada mutasi" atau "tidak ada perubahan". Dalam arti DevOps, itu berarti bahwa setelah Anda membuat artefak, baik itu gambar kontainer, atau gambar VM, atau mungkin paket dari kode yang dikompilasi - Anda menyatakan bahwa Anda tidak akan pernah mengubahnya. Seringkali jika ada perubahan yang diperlukan, Anda menyatakan bahwa versi "barang" baru akan dibuat sebagai gantinya.
Istilah ini idempotence
berarti bahwa ketika perubahan diterapkan beberapa kali, negara dimutasi (diubah) hanya sekali . Pertama, itu sudah mengasumsikan bahwa akan ada perubahan yang diterapkan yang berarti bahwa Anda tidak dapat memiliki sesuatu yang abadi dan memiliki tindakan idempoten dilakukan untuk itu (tidak ada tindakan yang dilakukan untuk itu dengan kontrak).
Dalam penggunaan alat manajemen konfigurasi, idempotence
digunakan dalam beberapa kasus ketika menerapkan perubahan yang sama beberapa kali. Seperti menambahkan baris yang mengatakan localhost
ke /etc/hosts
file, Anda tidak benar-benar membutuhkan banyak baris seperti itu dan jika sudah ada, aman untuk tidak mencoba menambahkan lagi.
Juga idempotent
merupakan istilah yang digunakan untuk menggambarkan tindakan yang berusaha mengubah sesuatu, sementara immutable
digunakan untuk menggambarkan kata benda (objek) yang diatur terhadap perubahan yang dilakukan padanya.
Mengapa immutable
objek bermanfaat? Karena ketika Anda menyalinnya, misalnya dari lingkungan pengembang ke qa ke produksi. Anda sudah tahu cukup banyak (tetapi tidak semuanya) tentang bagaimana hal itu akan berperilaku. Dalam banyak kasus, bagian-bagian yang bekerja akan konsisten, dan bagian-bagian yang rusak akan konsisten juga.
Mengapa idempotent
tindakan bermanfaat? Karena ketika Anda ingin mengubah keadaan suatu objek, dalam banyak kasus, hanya berguna untuk memverifikasi bahwa perubahan tersebut telah diterapkan dan menerapkan perubahan jika diperlukan. Misalnya, ketika item konfigurasi dalam file hilang atau memiliki nilai yang salah, ada baiknya menambahkannya sekali saja atau mengubahnya sekali saja saat menerapkan tindakan beberapa kali. Dalam banyak kasus lain, seperti file log , Anda tidak ingin memiliki tindakan idempoten karena Anda sering ingin menambahkan baris lain setiap kali beberapa peristiwa terjadi.
the state is not changed.
tetapi sebaliknya bahwa keadaan tetap seperti yang ditentukan oleh sistem manajemen konfigurasi. Oleh karena itu, sistem idempoten satu arah dan sistem yang tidak dapat diubah serupa