Derinlemesine yazılım eğitimleri için kanalımı takip edebilirsiniz...

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.

Dockerfile, Docker Image, Docker Registry ve Docker Container Kavramları Nelerdir?
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.
Docker'da Üretilen Verilerin Kalıcılığını Sağlama

  • Bind Mount
    Container tarafından üretilen dataların ana makinadaki işletim sistemi üzerinde oluşturulan bir alanda depolanmasıdır. Bir image’den oluşturulan tüm containerlar aynı alanda depolama yapacağı için bir containerın kaydettiği dataya diğer containerlarda erişebilecek ve müdahalede bulunabilecektir. Böylece her bir containerın bağımsız bir data üretmesi engellenmiş ve datanın koyulduğu yer merkezileştirilmiş olacaktır.

    Bind Mount, ana makine üzerinde depolama yaptığı için yönetimde Docker CLI komutları kullanılamamaktadır. İşletim sistemi üzerinden manuel bir yönetim gerekmektedir.

  • Volume
    Container tarafından üretilen dataların işletim sistemi üzerinde değil Docker’ın kendi içerisindeki bir alanda kalıcı olarak tutulmasıdır. Volumler Docker içerisinde olmasından dolayı CLI ile yönetilirler. Docker seviyesinde olduklarından dolayı backup alınmaları, restore edilmeleri ve hatta migrate edilmeleri oldukça kolaydır. Bind Mount’a nazaran cloud’da tutulabilirler ve böylece Docker’ın bulunduğu sunucunun çökebilmesi yahut fiziksel bir zarar görebilmesi ihtimaline karşı önlem alabilirler. Ayrıca hem Windows hem de Linux işletim sistemlerinde çalışabilmektedirler.
  • TMPFS Mount
    Container tarafında üretilen dataların memory’e geçici olarak kaydedilmesidir. Genellikle ana makinada yahut containerda geçici olarak saklanacak veriler için tercih edilmektedir.

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…

Bunlar da hoşunuza gidebilir...

4 Cevaplar

  1. Kamil Yasin dedi ki:

    Teşekkürler

  1. 01 Nisan 2020

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

  2. 03 Nisan 2020

    […] önceki Docker’da Üretilen Verilerin Kalıcılığını Sağlama başlıklı makalemde Docker’da containerlarda ayağa kaldırılan uygulamalarda üretilen […]

  3. 03 Nisan 2020

    […] içeriğimizde Docker’da Üretilen Verilerin Kalıcılığını Sağlama başlıklı yazımızın ikinci yöntemi olan Docker Volume ile containerda üretilen verilerin […]

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir