Yazılım Mimarileri ve Tasarım Desenleri Üzerine

Docker’da Üretilen Verilerin Kalıcılığını Sağlama

Merhaba,

Biliyoruz ki; Docker, içerisinde uygulamayı çalıştıracak tüm ortamı barındıran containerlar aracılığıyla uygulamayı ayağa kaldıran bir sanallaştırma platformudur. Bu containerlar çalıştırıldığında içerisindeki uygulama algoritmik tüm işlevselliğini gösterebildiği gibi yaptığı faaliyete göre fiziksel verilerde üretebilmektedir. Bizler şu ana kadar containerlar içerisinde üretilen bu verilerin akıbetleri hakkında herhangi bir yorumda bulunmuş değiliz. İşte bu yazımızda containerlar içerisinde üretilen verilerin ahvaline dair kalem oynatacağız.

Öncelikle container içerisinde üretilen verilerden kastımızın ne olduğuna dair yorumda bulunmakta fayda var. Bir container içerisinde ayağa kaldırılan herhangi bir uygulamanın zamanın olabildiğince küçük bir parçasında milyarlarca veri üretebileceğini düşünürsek eğer elbette bu verilerden hangilerinin ahvalini sorguladığımızı iyi ayırt etmemiz gerekmektedir. Bizler, ne belirli bir amaca hizmet eden operasyonlarda üretilen anlık verilerin, ne de run time’da veritabanına kaydedilen statik verilerin ahvalinden bahsetmiyor, uygulamada üretilen yahut yayın esnasında dış kaynaklar tarafından dahil edilen fiziksel dosyalardan bahsediyoruz.

Evet, amacımız fiziksel dosyaların kalıcılığını sorgulamak. Docker’da çalıştırılan bir container içerisinde ayağa kaldırılmış uygulamamızın ürettiği fiziksel dosyaların kalıcılığının containerın çalışması sona erdiğinde yahut container silindiğinde ne olduğunu konuşacağız.


Hatırlarsanız eğer image üzerinden bir container ayağa kaldırıldığı zaman image üzerindeki katmanların üstüne bir okunabilir ve yazılabilir katman eklenmekteydi. İşte bu katman container üzerinde çalışan uygulamanın yayın esnasında ürettiği verileri içerisinde tutmakta lakin container kapatıldığında silindiğinden dolayı tüm kayıtlar geri dönüşsüz kaybolmaktadır.

Docker belli başlı yöntemlerle içerisinde üretilen dataları kalıcı kılmakta ve böylece test süreçlerindeki verisel açıdan yaşanan karmaşıklığı önleyerek sürecin eşzamanlı bir şekilde olmasını sağlamakla birlikte bir yandan da veri kayıplarını engellemektedir.

Docker tarafından üretilen dataların kalıcılığının sağlanması için aşağıdaki üç farklı yöntem geliştirilmiştir.

Böylece Docker’da üretilen verilerin kalıcılığının nasıl sağlandığı hakkında teorik bir açıklamada bulunmuş olduk. Sonraki içeriklerimizde bu yöntemleri tek tek pratik olarak ele alacağız.

İlgilenenlerin faydalanması dileğiyle…
Sonraki yazılarımda görüşmek üzere…
İyi çalışmalar…

Mobil sürümden çık