• basit şekliyle, altyapınızı configuration management araçlarıyla modifiye ederek değil, ihtiyaç halinde build ettiğiniz altın imajlarla kurduğunuz bir yaklaşım. bir sunucu deploy edeceğiniz zaman, var olan bir sunucuda değişiklik çalıştırmıyorsunuz, eskiyi atıp yeni build ettiğiniz imajdan yeni sunucu ayağa kaldırıyorsunuz.

    böylece sunucunun yaşam döngüsü basitleşiyor, kısa ömürlü, sağında solunda çer çöp kalmamış, tam olarak ne state 'de olduğunu bildiğiniz sunucularınız oluyor.

    mesela diyelim ki önceden ansible gibi bir araçla, hazır ayağa kaldırılmış makineleri modifiye ediyordunuz. bu makineler zamanla birbirinden ufak farklarla ayrışmaya başlayabiliyordu, ya da belki de playbookunuz 100 makinede istediğinizi verirken 101. cide atıyorum ağ kaynaklı bir sorundan ufak bir fark oluşabiliyordu vs. eğer makineleri hiç atmıyor, hep reuse ediyorsanız ömürleri ilerledikçe bu ufak farklar gittikçe artabiliyordu.

    bunun yerine, yazılımınız her yeni sürüm çıktığında, dependencyleri, os 'u, paketleri maketleriyle bir imaj build ediyorsunuz. bu imaj artık byte byte aynı imaj her yerde. yeni makine gerektikçe bu imajdan açıyorsunuz. (ya da doğrusu, otomatik açılıyor) eskiye ihtiyaç kalmayınca şak diye siliniyor. yarın bir şeyi değiştirdiniz, yeni bir imaj build ediyorsunuz, 100 instance 'ın durumunu düşünmek yerine bu imajı test ediyorsunuz. bu imajla açıyorsunuz artık makineleri. baktınız bir sorun var, hemen önceki imaja dönüyorsunuz. tabii bu imajları build etmeyi de aklı başında adamsanız elle yapmıyorsunuz, bir continuous integration süreci olarak tanımlıyorsunuz.

    daha adam gibi, grafikli mrafikli özenilmiş anlatımı:
    https://martinfowler.com/…liki/immutableserver.html
hesabın var mı? giriş yap