Özgür Demirtaş
Bimar Teknoloji Blog
2 min readAug 1, 2023

--

Dosya Senkronizasyonu ve Örnek Kullanım Senaryoları

Net Core tabanlı ve dağıtık bir uygulama üzerinde çalışıyorsanız DevOps süreçlerinizde tablo replikasyonu veya dosya senkronizasyonu konuları gündeminize gelebilir. Veri replikasyonu araçlarıyla sunulabilen dosya senkronizasyonu özelliği PowerShell komutlarını uzak ortamlarda çalıştırmayı olanaklı duruma getirebiliyor.

Yapımıza Yukarıdan Bir Bakış

Açık kaynak kodlu “Symmetric-ds” aracının “File Synchronization” özelliği sayesinde merkezi bir sunucudan ona bağlı istemcilerde komut çalıştırabilmek mümkün. İşleme ait sonuçlar ise tablo senkronizasyonu ile tekrar merkezi ortama raporlanabiliyor.

Sunucu sistem aşağıdaki gibi birden çok istemci sistem ile bağlantı durumunda olabilir:

File Trigger” konfigürasyonunda son adım olarak tanımlanabilen Bean Shell “After Copy Script” hedef ortamdaki herhangi bir PowerShell scriptini tetiklemekte kullanılabilir.

Bean Shell “File Trigger After Copy Script” Şablonu

Aşağıdaki örnekteki gibi ana sunucu üzerindeki c:\Nodes dizini altındaki dosya hareketleri “File Synchronization” ile yakalanabilir, bu dosyalar dev1 , dev 2 gibi “node” sistemlere gönderilebilir ve istenirse dosya kopyalamanın son adımında iletilen dosyalara ait komutlar çalıştırılabilir.

(https://github.com/JumpMind/symmetric-ds)

Şimdi gelelim kullanım senaryolarına. Bu yöntem farklı gereksinimler için zenginleştirilerek özelleşmiş komutlar onlarca farklı sistemde aşağıdakiler gibi farklı amaçlar için kullanılabilir:

1) Ölçeklenebilir Versiyon Yönetimi : Deniz filosu gibi çok sayıda “node” içerebilen ve online/offline durumda olabilen sistemlere asenkron veri gönderimi

2) .NET Core Migrasyon Transferi ve uzaktan çalıştırma : Veritabanı şema yapısının onlarca sistem arasında aynı tutulması

3) Uzaktan SSL otomasyonu : Sertifika süreleri bitmekte olan sistemlere uzaktan güncel sertifika eklenmesi

4) .NET Core Api servis konfigürasyonlarının uzaktan güncellenmesi : Çevik süreçlere ait modül geçişlerinde appsettings.json dosyası gibi noktalarda servis ayarlarının özelleştirilmesi

5) On-prem IIS pool ayarlarının güncellenmesi: Internet bağlantıları nedeniyle sistemlere anlık erişimin mümkün olmadığı durumlarda web server gibi bileşenlere ait ayarların uzaktan güncellenmesi

--

--