{"id":41519,"date":"2026-04-30T21:03:07","date_gmt":"2026-04-30T18:03:07","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/konteynerler-ve-veritabanlari-her-yerde-konteyner-gunleri-veritabaniyla-bulustugunda-bolum-2\/"},"modified":"2026-04-30T21:03:07","modified_gmt":"2026-04-30T18:03:07","slug":"konteynerler-ve-veritabanlari-her-yerde-konteyner-gunleri-veritabaniyla-bulustugunda-bolum-2","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/konteynerler-ve-veritabanlari-her-yerde-konteyner-gunleri-veritabaniyla-bulustugunda-bolum-2\/","title":{"rendered":"Konteynerler ve Veritabanlar\u0131: &#8216;Her Yerde Konteyner&#8217; G\u00fcnleri Veritaban\u0131yla Bulu\u015ftu\u011funda &#8211; B\u00f6l\u00fcm 2"},"content":{"rendered":"<pre><code class=\"language-html\"><body>\n    <h2>Konteynerler ve Veritabanlar\u0131: 'Her Yerde Konteyner' G\u00fcnleri Veritaban\u0131yla Bulu\u015ftu\u011funda - B\u00f6l\u00fcm 2<\/h2>\n\n    <p>Modern yaz\u0131l\u0131m geli\u015ftirmenin vazge\u00e7ilmez iki unsuru: konteynerler ve veritabanlar\u0131. Peki ya bu iki g\u00fc\u00e7l\u00fc teknolojiyi bir araya getirdi\u011fimizde neler olur? Konteynerlerin esnekli\u011fi ve veritabanlar\u0131n\u0131n veri y\u00f6netimi konusundaki g\u00fcc\u00fc birle\u015fti\u011finde ortaya \u00e7\u0131kan senaryolar\u0131, zorluklar\u0131 ve \u00e7\u00f6z\u00fcmleri bu makalede derinlemesine inceleyece\u011fiz. \u00d6zellikle ilk b\u00f6l\u00fcmde temel kavramlara de\u011finmi\u015ftik; \u015fimdi ise i\u015fin biraz daha mutfa\u011f\u0131na inip, bu entegrasyonun pratik y\u00f6nlerine odaklanaca\u011f\u0131z. Verilerinizi konteynerler i\u00e7inde g\u00fcvenli ve verimli bir \u015fekilde y\u00f6netmek i\u00e7in bilmeniz gereken her \u015fey burada!<\/p>\n\n    <h2>Konteynerler \u0130\u00e7inde Veritaban\u0131 Y\u00f6netimi: Neden \u00d6nemli?<\/h2>\n\n    <p>G\u00fcn\u00fcm\u00fcz\u00fcn \u00e7evik yaz\u0131l\u0131m geli\u015ftirme s\u00fcre\u00e7lerinde, uygulamalar\u0131n h\u0131zl\u0131ca devreye al\u0131nmas\u0131, \u00f6l\u00e7eklendirilmesi ve y\u00f6netilmesi b\u00fcy\u00fck \u00f6nem ta\u015f\u0131yor. \u0130\u015fte tam bu noktada konteyner teknolojileri, yani Docker gibi ara\u00e7lar devreye giriyor. Bir uygulaman\u0131n t\u00fcm ba\u011f\u0131ml\u0131l\u0131klar\u0131, k\u00fct\u00fcphaneleri ve ayarlar\u0131yla birlikte izole bir ortamda paketlenmesini sa\u011flayan konteynerler, uygulamalar\u0131m\u0131z\u0131 her yerde ayn\u0131 \u015fekilde \u00e7al\u0131\u015ft\u0131rma garantisi sunuyor. Ancak, bir uygulaman\u0131n \u00e7al\u0131\u015fmas\u0131 i\u00e7in veri depolama ihtiyac\u0131 da ka\u00e7\u0131n\u0131lmazd\u0131r. \u0130\u015fte bu veri depolama ihtiyac\u0131n\u0131 kar\u015f\u0131layan temel yap\u0131 ta\u015flar\u0131ndan biri de veritabanlar\u0131d\u0131r. Konteynerler i\u00e7inde veritaban\u0131 \u00e7al\u0131\u015ft\u0131rmak, geli\u015ftirme ve \u00fcretim ortamlar\u0131nda tutarl\u0131l\u0131k sa\u011flamak, ba\u011f\u0131ml\u0131l\u0131klar\u0131 y\u00f6netmek ve \u00f6l\u00e7eklenebilirli\u011fi art\u0131rmak gibi bir\u00e7ok avantaj sunar. \u00d6rne\u011fin, bir geli\u015ftirici yerel makinesinde bir veritaban\u0131 sunucusunu kurup yap\u0131land\u0131rmak yerine, veritaban\u0131n\u0131 i\u00e7eren bir Docker imaj\u0131n\u0131 \u00e7ekip an\u0131nda kullanmaya ba\u015flayabilir. Bu, geli\u015ftirme s\u00fcrecini \u00f6nemli \u00f6l\u00e7\u00fcde h\u0131zland\u0131r\u0131r ve \"benim makinemde \u00e7al\u0131\u015f\u0131yordu\" gibi sorunlar\u0131n \u00f6n\u00fcne ge\u00e7er. \u00dcretim ortamlar\u0131nda ise, talebin artmas\u0131yla birlikte veritaban\u0131 \u00f6rneklerini kolayca \u00e7o\u011faltabilir ve y\u00fck\u00fc da\u011f\u0131tabilirsiniz. Bu esneklik, \u00f6zellikle y\u00fcksek trafikli web siteleri ve mikroservis mimarileri i\u00e7in hayati \u00f6nem ta\u015f\u0131r. Konteynerler, veritaban\u0131 sunucular\u0131n\u0131 ba\u011f\u0131ms\u0131zla\u015ft\u0131rarak, ana uygulamadan ayr\u0131 olarak g\u00fcncellemeler yap\u0131lmas\u0131na veya farkl\u0131 veritaban\u0131 s\u00fcr\u00fcmlerinin ayn\u0131 anda \u00e7al\u0131\u015ft\u0131r\u0131lmas\u0131na olanak tan\u0131r. Bu da sistem bak\u0131m\u0131n\u0131 ve g\u00fcncellemelerini daha az riskli hale getirir. Ayr\u0131ca, konteyner orkestrasyon ara\u00e7lar\u0131 (Kubernetes gibi) ile veritaban\u0131 \u00f6rneklerinizin yedeklenmesi, kurtar\u0131lmas\u0131 ve y\u00fcksek eri\u015filebilirlik senaryolar\u0131n\u0131n y\u00f6netilmesi de otomatize edilebilir.<\/p>\n\n    <h3>Konteynerlerde Veritaban\u0131 Kullanman\u0131n Avantajlar\u0131 Nelerdir?<\/h3>\n\n    <p>Konteynerler i\u00e7inde veritaban\u0131 \u00e7al\u0131\u015ft\u0131rman\u0131n sundu\u011fu temel avantajlar\u0131 birka\u00e7 ba\u015fl\u0131k alt\u0131nda toplayabiliriz. Bu avantajlar, hem geli\u015ftirme hem de operasyonel ekipler i\u00e7in \u00f6nemli faydalar sa\u011flar:<\/p>\n\n    <ul>\n        <li><strong>Tutarl\u0131l\u0131k ve \u0130zole Ortamlar:<\/strong> Her veritaban\u0131 \u00f6rne\u011fi, kendi ba\u011f\u0131ml\u0131l\u0131klar\u0131 ve yap\u0131land\u0131rmas\u0131yla birlikte izole bir konteynerde \u00e7al\u0131\u015f\u0131r. Bu, farkl\u0131 ortamlarda (geli\u015ftirme, test, \u00fcretim) tutarl\u0131l\u0131k sa\u011flar ve \"benim ortam\u0131mda \u00e7al\u0131\u015f\u0131yordu\" sendromunu ortadan kald\u0131r\u0131r. Geli\u015ftiriciler, veritaban\u0131 sunucusunun i\u015fletim sistemi veya di\u011fer yaz\u0131l\u0131mlarla \u00e7ak\u0131\u015fmas\u0131 endi\u015fesi duymadan kendi ortamlar\u0131nda \u00e7al\u0131\u015fabilirler.<\/li>\n        <li><strong>H\u0131zl\u0131 Kurulum ve Da\u011f\u0131t\u0131m:<\/strong> Veritaban\u0131 imajlar\u0131 genellikle \u00f6nceden yap\u0131land\u0131r\u0131lm\u0131\u015f olarak gelir. Bu sayede, bir veritaban\u0131 sunucusunu s\u0131f\u0131rdan kurmak ve yap\u0131land\u0131rmak yerine, sadece birka\u00e7 komutla \u00e7al\u0131\u015f\u0131r hale getirebilirsiniz. Bu, \u00f6zellikle h\u0131zl\u0131 prototipleme ve geli\u015ftirme s\u00fcre\u00e7lerinde b\u00fcy\u00fck zaman kazand\u0131r\u0131r. Bir PostgreSQL veritaban\u0131n\u0131 Docker ile aya\u011fa kald\u0131rmak, manuel kurulumdan \u00e7ok daha h\u0131zl\u0131d\u0131r.<\/li>\n        <li><strong>\u00d6l\u00e7eklenebilirlik ve Esneklik:<\/strong> Konteyner orkestrasyon ara\u00e7lar\u0131 (Kubernetes gibi) ile veritaban\u0131 \u00f6rneklerini kolayca \u00f6l\u00e7eklendirebilirsiniz. Talebin artmas\u0131 durumunda yeni veritaban\u0131 konteynerleri ekleyebilir, talebin azalmas\u0131 durumunda ise gereksiz kaynaklar\u0131 serbest b\u0131rakabilirsiniz. Bu dinamik \u00f6l\u00e7eklendirme, maliyetleri optimize etmeye yard\u0131mc\u0131 olur.<\/li>\n        <li><strong>Kolay Y\u00f6netim ve Otomasyon:<\/strong> Konteyner teknolojileri, veritaban\u0131 yedekleme, geri y\u00fckleme, g\u00fcncelleme ve izleme gibi operasyonel g\u00f6revleri otomatize etmeyi kolayla\u015ft\u0131r\u0131r. Orkestrasyon ara\u00e7lar\u0131, veritaban\u0131 y\u00fcksek eri\u015filebilirli\u011fini ve hata tolerans\u0131n\u0131 sa\u011flamak i\u00e7in gereken karma\u015f\u0131k yap\u0131land\u0131rmalar\u0131 y\u00f6netebilir.<\/li>\n        <li><strong>Ba\u011f\u0131ml\u0131l\u0131k Y\u00f6netimi:<\/strong> Uygulaman\u0131z\u0131n gerektirdi\u011fi belirli bir veritaban\u0131 s\u00fcr\u00fcm\u00fcn\u00fc veya yap\u0131land\u0131rmas\u0131n\u0131 bir konteyner imaj\u0131na sabitleyebilirsiniz. Bu, uygulaman\u0131z\u0131n her zaman beklendi\u011fi gibi \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flar ve gelecekteki g\u00fcncellemelerden kaynaklanabilecek uyumluluk sorunlar\u0131n\u0131 en aza indirir.<\/li>\n    <\/ul>\n\n    <h2>Veritaban\u0131 Verilerini Kal\u0131c\u0131 Hale Getirme: Konteynerlerin S\u0131n\u0131r\u0131<\/h2>\n\n    <p>Konteynerlerin en temel \u00f6zelliklerinden biri ge\u00e7ici olmalar\u0131d\u0131r. Bir konteyner silindi\u011finde, i\u00e7indeki t\u00fcm veriler de kaybolur. Bu, veritaban\u0131 gibi kal\u0131c\u0131 veri depolamas\u0131 gerektiren uygulamalar i\u00e7in ciddi bir sorundur. Neyse ki, bu sorunu \u00e7\u00f6zmek i\u00e7in birka\u00e7 etkili y\u00f6ntem bulunmaktad\u0131r. Bu y\u00f6ntemler, verilerin konteyner ya\u015fam d\u00f6ng\u00fcs\u00fcnden ba\u011f\u0131ms\u0131z olarak g\u00fcvenli bir \u015fekilde saklanmas\u0131n\u0131 sa\u011flar.<\/p>\n\n    <h3>Veri Hacimleri (Volumes) Nedir ve Nas\u0131l Kullan\u0131l\u0131r?<\/h3>\n\n    <p>Docker'da veri hacimleri (volumes), konteynerlerin d\u0131\u015f\u0131ndaki depolama alanlar\u0131n\u0131 ifade eder. Bu alanlar, konteyner silinse bile verilerin kal\u0131c\u0131 olmas\u0131n\u0131 sa\u011flar. Veri hacimleri, Docker ana makinesinde belirli bir dizine veya y\u00f6netilen bir depolama alan\u0131na ba\u011flanabilir. Bu sayede, konteyner i\u00e7inde \u00e7al\u0131\u015fan veritaban\u0131, verilerini bu hacimlere yazar ve konteyner yeniden ba\u015flat\u0131ld\u0131\u011f\u0131nda veya silinip yeniden olu\u015fturuldu\u011funda ayn\u0131 verilere eri\u015fmeye devam eder. Veri hacimleri, veritaban\u0131 verilerini y\u00f6netmenin en yayg\u0131n ve \u00f6nerilen yoludur.<\/p>\n\n    <p>\u00d6rne\u011fin, bir PostgreSQL veritaban\u0131n\u0131 bir veri hacmi ile \u00e7al\u0131\u015ft\u0131rmak i\u00e7in a\u015fa\u011f\u0131daki gibi bir komut kullanabilirsiniz:<\/p><\/pre>\n<p><\/code>html<\/p>\n<div class=\"code-container\">\n<pre><code>docker run --name my-postgres -e POSTGRES_PASSWORD=mysecretpassword -v pgdata:\/var\/lib\/postgresql\/data -d postgres<\/pre>\n<p><\/code>\n    <\/div>\n<pre><code class=\"language-plaintext\"><p>Bu komutta:<\/p>\n    <ul>\n        <li><code>--name my-postgres<\/code>: Konteynerimize bir isim veriyoruz.<\/li>\n        <li><code>-e POSTGRES_PASSWORD=mysecretpassword<\/code>: PostgreSQL i\u00e7in \u015fifre belirliyoruz.<\/li>\n        <li><code>-v pgdata:\/var\/lib\/postgresql\/data<\/code>: Buras\u0131 en kritik k\u0131s\u0131m. <code>pgdata<\/code> ad\u0131nda bir veri hacmi olu\u015fturuyor ve bunu PostgreSQL'in veri dizini olan <code>\/var\/lib\/postgresql\/data<\/code>'ya ba\u011fl\u0131yoruz. Docker, <code>pgdata<\/code> ad\u0131nda bir hacim yoksa otomatik olarak olu\u015fturacakt\u0131r.<\/li>\n        <li><code>-d postgres<\/code>: Arka planda \u00e7al\u0131\u015facak PostgreSQL imaj\u0131n\u0131 belirtiyoruz.<\/li>\n    <\/ul>\n\n    <p>Bu komutu \u00e7al\u0131\u015ft\u0131rd\u0131ktan sonra, <code>pgdata<\/code> hacmi Docker ana makinenizde olu\u015fturulacak ve PostgreSQL veritaban\u0131 t\u00fcm verilerini bu hacme yazacakt\u0131r. Konteyneri silseniz bile, <code>pgdata<\/code> hacmi varl\u0131\u011f\u0131n\u0131 s\u00fcrd\u00fcrecektir. Yeni bir PostgreSQL konteyneri ba\u015flatt\u0131\u011f\u0131n\u0131zda ve ayn\u0131 <code>pgdata<\/code> hacmini ba\u011flad\u0131\u011f\u0131n\u0131zda, veritaban\u0131n\u0131z kald\u0131\u011f\u0131 yerden devam edecektir.<\/p>\n\n    <h3>Ba\u011flant\u0131l\u0131 Birimler (Bind Mounts) vs. Veri Hacimleri<\/h3>\n\n    <p>Veri hacimlerine benzer bir ba\u015fka kal\u0131c\u0131l\u0131k y\u00f6ntemi de ba\u011flant\u0131l\u0131 birimlerdir (bind mounts). Ba\u011flant\u0131l\u0131 birimler, Docker ana makinesindeki belirli bir dizini do\u011frudan bir konteyner i\u00e7indeki bir yola ba\u011flar. Veri hacimleri Docker taraf\u0131ndan y\u00f6netilirken, ba\u011flant\u0131l\u0131 birimler kullan\u0131c\u0131n\u0131n ana makinedeki dizin yap\u0131s\u0131n\u0131 do\u011frudan kullan\u0131r.<\/p>\n\n    <p>Ba\u011flant\u0131l\u0131 birim kullanman\u0131n bir \u00f6rne\u011fi:<\/p><\/pre>\n<p><\/code>html<\/p>\n<div class=\"code-container\">\n<pre><code>docker run --name my-mysql -e MYSQL_ROOT_PASSWORD=mysecretpassword -v \/path\/on\/host\/mysql-data:\/var\/lib\/mysql -d mysql<\/pre>\n<p><\/code>\n    <\/div>\n<pre><code class=\"language-plaintext\"><p>Burada <code>\/path\/on\/host\/mysql-data<\/code>, Docker ana makinenizdeki bir dizindir. Bu y\u00f6ntem, geli\u015ftirme s\u0131ras\u0131nda yap\u0131land\u0131rma dosyalar\u0131n\u0131 veya ba\u015flang\u0131\u00e7 betiklerini kolayca konteynere enjekte etmek i\u00e7in kullan\u0131\u015fl\u0131 olabilir. Ancak, veri hacimleri genellikle veritaban\u0131 verileri i\u00e7in daha iyi bir se\u00e7enektir \u00e7\u00fcnk\u00fc Docker'\u0131n depolama y\u00f6netimini kullan\u0131r ve platformlar aras\u0131 ta\u015f\u0131nabilirlik konusunda daha esnektir.<\/p>\n\n    <p>Veri hacimleri, Docker'\u0131n kendi i\u00e7indeki depolama s\u00fcr\u00fcc\u00fclerini kullanarak verileri y\u00f6netti\u011fi i\u00e7in genellikle daha g\u00fcvenli ve performansl\u0131d\u0131r. Ba\u011flant\u0131l\u0131 birimler ise ana makinedeki dosya sistemiyle do\u011frudan etkile\u015fim kurar, bu da izin sorunlar\u0131na veya farkl\u0131 i\u015fletim sistemleri aras\u0131nda uyumluluk sorunlar\u0131na yol a\u00e7abilir. Veritaban\u0131 verilerinin kal\u0131c\u0131l\u0131\u011f\u0131 s\u00f6z konusu oldu\u011funda, veri hacimleri genellikle daha sa\u011flam ve y\u00f6netilebilir bir \u00e7\u00f6z\u00fcmd\u00fcr.<\/p>\n\n    <h2>Veritaban\u0131 Verilerini Yedekleme ve Geri Y\u00fckleme Stratejileri<\/h2>\n\n    <p>Konteynerler i\u00e7inde \u00e7al\u0131\u015fan veritabanlar\u0131n\u0131n verilerini kal\u0131c\u0131 hale getirmek \u00f6nemli olsa da, veri kayb\u0131 riskini tamamen ortadan kald\u0131rmak i\u00e7in etkili bir yedekleme ve geri y\u00fckleme stratejisine sahip olmak da ayn\u0131 derecede kritiktir. Donan\u0131m ar\u0131zalar\u0131, insan hatalar\u0131 veya k\u00f6t\u00fc niyetli sald\u0131r\u0131lar her zaman olas\u0131l\u0131k dahilindedir. Bu nedenle, d\u00fczenli ve g\u00fcvenilir yedeklemeler, i\u015f s\u00fcreklili\u011fi i\u00e7in vazge\u00e7ilmezdir.<\/p>\n\n    <h3>Otomatik Yedekleme Scriptleri Olu\u015fturma<\/h3>\n\n    <p>Konteyner tabanl\u0131 veritabanlar\u0131 i\u00e7in otomatik yedekleme scriptleri olu\u015fturmak, operasyonel y\u00fck\u00fc azalt\u0131r ve yedekleme i\u015fleminin d\u00fczenli olarak yap\u0131lmas\u0131n\u0131 sa\u011flar. Bu scriptler, veritaban\u0131 imaj\u0131n\u0131n sa\u011flad\u0131\u011f\u0131 komut sat\u0131r\u0131 ara\u00e7lar\u0131n\u0131 veya \u00f6zel yedekleme ara\u00e7lar\u0131n\u0131 kullanabilir.<\/p>\n\n    <p>\u00d6rne\u011fin, PostgreSQL i\u00e7in bir yedekleme scripti \u015fu \u015fekilde olabilir:<\/p><\/pre>\n<p><\/code>html<\/p>\n<div class=\"code-container\">\n<pre><code>#!\/bin\/bash\n\n      CONTAINER_NAME=\"my-postgres\"\n      BACKUP_DIR=\"\/path\/to\/your\/backups\"\n      DATE=$(date +\"%Y%m%d_%H%M%S\")\n      BACKUP_FILE=\"${BACKUP_DIR}\/${CONTAINER_NAME}_${DATE}.sql.gz\"\n\n      echo \"Starting backup for ${CONTAINER_NAME}...\"\n\n      docker exec ${CONTAINER_NAME} pg_dumpall -U postgres | gzip > ${BACKUP_FILE}\n\n      if [ $? -eq 0 ]; then\n        echo \"Backup successful: ${BACKUP_FILE}\"\n      else\n        echo \"Backup failed!\"\n        exit 1\n      fi\n\n      # Eski yedekleri temizleme (iste\u011fe ba\u011fl\u0131)\n      find ${BACKUP_DIR} -type f -name \"${CONTAINER_NAME}_*.sql.gz\" -mtime +7 -delete\n      echo \"Old backups cleaned.\"\n\n      exit 0<\/pre>\n<p><\/code>\n    <\/div>\n<pre><code class=\"language-plaintext\"><p>Bu script:<\/p>\n    <ul>\n        <li>Belirtilen konteynerin ad\u0131n\u0131 al\u0131r.<\/li>\n        <li>Yedeklerin saklanaca\u011f\u0131 dizini belirler.<\/li>\n        <li>Tarih ve saat damgas\u0131 ile benzersiz bir yedekleme dosyas\u0131 ad\u0131 olu\u015fturur.<\/li>\n        <li><code>docker exec<\/code> komutu ile konteyner i\u00e7indeki <code>pg_dumpall<\/code> komutunu \u00e7al\u0131\u015ft\u0131r\u0131r ve \u00e7\u0131kt\u0131y\u0131 <code>gzip<\/code> ile s\u0131k\u0131\u015ft\u0131rarak belirtilen dosyaya yazar.<\/li>\n        <li>Yedeklemenin ba\u015far\u0131l\u0131 olup olmad\u0131\u011f\u0131n\u0131 kontrol eder.<\/li>\n        <li>\u0130ste\u011fe ba\u011fl\u0131 olarak, 7 g\u00fcnden eski yedekleri silerek disk alan\u0131n\u0131 y\u00f6netir.<\/li>\n    <\/ul>\n\n    <p>Bu scripti bir cron job ile belirli aral\u0131klarla \u00e7al\u0131\u015ft\u0131rarak otomatik yedekleme sa\u011flayabilirsiniz.<\/p>\n\n    <h3>Veri Hacimlerinin Yedeklenmesi<\/h3>\n\n    <p>Yukar\u0131da bahsetti\u011fimiz gibi, veritaban\u0131 verileri genellikle veri hacimlerine yaz\u0131l\u0131r. Bu veri hacimlerinin kendisini yedeklemek de etkili bir stratejidir. Bu, ana makinedeki veri hacmi dizinini kopyalamak veya \u00f6zel yedekleme ara\u00e7lar\u0131 kullanmak suretiyle yap\u0131labilir. \u00d6rne\u011fin, e\u011fer veri hacminiz ana makinede belirli bir dizine ba\u011fl\u0131ysa (ba\u011flant\u0131l\u0131 birimler durumunda oldu\u011fu gibi) veya Docker'\u0131n y\u00f6netti\u011fi hacimlerin fiziksel konumunu biliyorsan\u0131z, bu dizinleri d\u00fczenli olarak yedekleyebilirsiniz.<\/p>\n\n    <p>Daha geli\u015fmi\u015f senaryolarda, veritaban\u0131 sa\u011flay\u0131c\u0131s\u0131n\u0131n sundu\u011fu \u00f6zel yedekleme ara\u00e7lar\u0131 (\u00f6rne\u011fin, MySQL'in <code>mysqldump<\/code>'\u0131 veya MongoDB'nin <code>mongodump<\/code>'\u0131) konteyner i\u00e7inde \u00e7al\u0131\u015ft\u0131r\u0131larak elde edilen yedek dosyalar\u0131n\u0131n, ana makinedeki kal\u0131c\u0131 bir depolama alan\u0131na (bulut depolama, a\u011f depolama vb.) aktar\u0131lmas\u0131 sa\u011flanabilir. Bu, hem veri b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc korur hem de yedeklerin co\u011frafi olarak farkl\u0131 bir yerde saklanmas\u0131n\u0131 sa\u011flayarak felaket kurtarma senaryolar\u0131nda ek bir g\u00fcvenlik katman\u0131 sunar.<\/p>\n\n    <h3>Geri Y\u00fckleme Prosed\u00fcrleri ve Testleri<\/h3>\n\n    <p>Yedekleme ne kadar \u00f6nemliyse, geri y\u00fckleme prosed\u00fcrlerinin de ayn\u0131 derecede iyi tan\u0131mlanm\u0131\u015f ve test edilmi\u015f olmas\u0131 gerekir. Bir felaket an\u0131nda, yedekleme dosyalar\u0131n\u0131z\u0131n do\u011fru \u015fekilde \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan ve verileri ba\u015far\u0131yla geri y\u00fckleyebilece\u011finizden emin olmal\u0131s\u0131n\u0131z. Bu nedenle, d\u00fczenli olarak geri y\u00fckleme testleri yapmak hayati \u00f6nem ta\u015f\u0131r.<\/p>\n\n    <p>Geri y\u00fckleme prosed\u00fcr\u00fc genellikle \u015fu ad\u0131mlar\u0131 i\u00e7erir:<\/p>\n    <ol>\n        <li>Yeni bir veritaban\u0131 konteyneri ba\u015flat\u0131n (veya mevcut olan\u0131 durdurup temizleyin).<\/li>\n        <li>Veri hacmini veya yedekleme dosyas\u0131n\u0131 konteynere ba\u011flay\u0131n\/aktar\u0131n.<\/li>\n        <li>Veritaban\u0131 sa\u011flay\u0131c\u0131s\u0131n\u0131n geri y\u00fckleme komutlar\u0131n\u0131 \u00e7al\u0131\u015ft\u0131r\u0131n (\u00f6rne\u011fin, PostgreSQL i\u00e7in <code>psql<\/code> veya <code>pg_restore<\/code>).<\/li>\n        <li>Verilerin do\u011fru \u015fekilde geri y\u00fcklendi\u011fini do\u011frulay\u0131n.<\/li>\n    <\/ol>\n\n    <p>Bu testlerin d\u00fczenli olarak yap\u0131lmas\u0131, hem prosed\u00fcrlerin do\u011frulu\u011funu teyit eder hem de operasyonel ekiplerin bu s\u00fcrece hakim olmas\u0131n\u0131 sa\u011flar. Unutmay\u0131n, bir yedekleme yaln\u0131zca geri y\u00fcklenebildi\u011fi s\u00fcrece de\u011ferlidir.<\/p>\n\n    <h2>G\u00fcvenlik Hususlar\u0131: Konteynerlerde Veritaban\u0131 G\u00fcvenli\u011fini Sa\u011flama<\/h2>\n\n    <p>Veritabanlar\u0131, hassas bilgilerin depoland\u0131\u011f\u0131 yerlerdir. Bu nedenle, konteynerler i\u00e7inde veritaban\u0131 \u00e7al\u0131\u015ft\u0131r\u0131rken g\u00fcvenlik en \u00fcst d\u00fczeyde tutulmal\u0131d\u0131r. G\u00fcvenlik a\u00e7\u0131klar\u0131, veri ihlallerine, sistem kesintilerine ve itibar kayb\u0131na yol a\u00e7abilir. Konteynerlerin getirdi\u011fi baz\u0131 avantajlar olsa da, kendi g\u00fcvenlik risklerini de beraberinde getirebilirler.<\/p>\n\n    <h3>Varsay\u0131lan \u015eifreleri De\u011fi\u015ftirme ve Eri\u015fim Kontrol\u00fc<\/h3>\n\n    <p>Konteyner imajlar\u0131 genellikle varsay\u0131lan veya \u00f6rnek \u015fifrelerle birlikte gelir. Bu \u015fifrelerin hemen de\u011fi\u015ftirilmesi, en temel g\u00fcvenlik ad\u0131mlar\u0131ndan biridir. \u00d6rne\u011fin, yukar\u0131daki PostgreSQL \u00f6rne\u011finde <code>POSTGRES_PASSWORD<\/code> ortam de\u011fi\u015fkenini kullanarak g\u00fc\u00e7l\u00fc bir \u015fifre belirledik. Benzer \u015fekilde, MySQL, MongoDB gibi di\u011fer veritabanlar\u0131 i\u00e7in de varsay\u0131lan kullan\u0131c\u0131 ad\u0131 ve \u015fifreleri hemen de\u011fi\u015ftirilmelidir.<\/p>\n\n    <p>Eri\u015fim kontrol\u00fc de kritik \u00f6neme sahiptir. Veritaban\u0131na kimlerin eri\u015febilece\u011fi ve hangi yetkilere sahip olaca\u011f\u0131 dikkatlice belirlenmelidir. Konteyner i\u00e7inde \u00e7al\u0131\u015fan veritaban\u0131 i\u00e7in, a\u011f eri\u015fimini k\u0131s\u0131tlamak, yaln\u0131zca gerekli portlara izin vermek ve g\u00fc\u00e7l\u00fc kimlik do\u011frulama mekanizmalar\u0131 kullanmak \u00f6nemlidir.<\/p>\n\n    <h3>A\u011f G\u00fcvenli\u011fi ve Port Y\u00f6nlendirme<\/h3>\n\n    <p>Konteynerler, kendi izole a\u011flar\u0131na sahip olabilirler. Veritaban\u0131 konteynerinin d\u0131\u015f d\u00fcnyaya veya di\u011fer konteynerlere nas\u0131l eri\u015fti\u011fini yap\u0131land\u0131rmak, g\u00fcvenlik a\u00e7\u0131s\u0131ndan \u00f6nemlidir. Genellikle, veritaban\u0131 sunucusu do\u011frudan internete a\u00e7\u0131k b\u0131rak\u0131lmaz. Bunun yerine, yaln\u0131zca belirli uygulamalar\u0131n veya servislerin eri\u015fimine izin verilir. Docker'da port y\u00f6nlendirme (port mapping) kullan\u0131l\u0131rken, yaln\u0131zca g\u00fcvenilir kaynaklardan gelen ba\u011flant\u0131lara izin vermek ve gereksiz portlar\u0131 kapatmak \u00f6nemlidir.<\/p>\n\n    <p>\u00d6rne\u011fin, bir web uygulamas\u0131n\u0131n veritaban\u0131na eri\u015fmesi gerekiyorsa, veritaban\u0131 konteynerinin portu (\u00f6rne\u011fin, PostgreSQL i\u00e7in 5432) yaln\u0131zca web uygulamas\u0131 konteynerinin eri\u015febilece\u011fi \u015fekilde yap\u0131land\u0131r\u0131labilir. Bu, do\u011frudan internetten gelen yetkisiz eri\u015fimleri engeller.<\/p>\n\n    <h3>G\u00fcvenlik Yamalar\u0131 ve G\u00fcncellemeler<\/h3>\n\n    <p>Konteyner imajlar\u0131 ve i\u00e7erdikleri yaz\u0131l\u0131mlar d\u00fczenli olarak g\u00fcncellenmelidir. Veritaban\u0131 yaz\u0131l\u0131mlar\u0131ndaki g\u00fcvenlik a\u00e7\u0131klar\u0131, zamanla ke\u015ffedilebilir ve bu a\u00e7\u0131klar\u0131 kapatmak i\u00e7in g\u00fcvenlik yamalar\u0131 yay\u0131nlan\u0131r. Konteyner tabanl\u0131 bir ortamda, bu g\u00fcncellemeleri takip etmek ve imajlar\u0131 g\u00fcncel tutmak, g\u00fcvenlik duru\u015funu g\u00fc\u00e7lendirir. G\u00fcvenlik a\u00e7\u0131klar\u0131 bilinen eski imajlar\u0131 kullanmak, sisteminizi sald\u0131r\u0131lara kar\u015f\u0131 savunmas\u0131z b\u0131rak\u0131r.<\/p>\n\n    <p>D\u00fczenli olarak imajlar\u0131 g\u00fcncellemek ve yeni s\u00fcr\u00fcmleri test etmek, g\u00fcvenlik risklerini azaltman\u0131n \u00f6nemli bir yoludur. Ayr\u0131ca, konteyner g\u00fcvenlik tarama ara\u00e7lar\u0131 kullanarak imajlar\u0131n\u0131zdaki potansiyel g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 tespit edebilirsiniz.<\/p>\n\n    <h2>Vaka Analizi: Mikroservis Mimarisinde Veritaban\u0131 Y\u00f6netimi<\/h2>\n\n    <p>Bir e-ticaret platformunu ele alal\u0131m. Bu platform, kullan\u0131c\u0131 y\u00f6netimi, \u00fcr\u00fcn katalo\u011fu, sipari\u015f i\u015fleme ve \u00f6deme gibi farkl\u0131 i\u015flevleri yerine getiren bir\u00e7ok mikroservisten olu\u015fmaktad\u0131r. Her mikroservisin kendi veritaban\u0131 ihtiyac\u0131 olabilir ve bu veritabanlar\u0131n\u0131n konteynerler i\u00e7inde y\u00f6netilmesi ka\u00e7\u0131n\u0131lmazd\u0131r.<\/p>\n\n    <h3>Senaryo: Her Mikroservis Kendi Veritaban\u0131na Sahip<\/h3>\n\n    <p>Bu e-ticaret platformunda, her mikroservis kendi veritaban\u0131n\u0131 y\u00f6netebilir. \u00d6rne\u011fin:<\/p>\n    <ul>\n        <li><strong>Kullan\u0131c\u0131 Servisi:<\/strong> Kullan\u0131c\u0131 bilgilerini (ad, soyad, e-posta, \u015fifre vb.) depolamak i\u00e7in PostgreSQL gibi ili\u015fkisel bir veritaban\u0131 kullanabilir.<\/li>\n        <li><strong>\u00dcr\u00fcn Katalo\u011fu Servisi:<\/strong> \u00dcr\u00fcn detaylar\u0131n\u0131, stok bilgilerini ve kategorileri depolamak i\u00e7in yine PostgreSQL veya daha esnek bir NoSQL veritaban\u0131 (\u00f6rne\u011fin, MongoDB) kullanabilir.<\/li>\n        <li><strong>Sipari\u015f Servisi:<\/strong> Sipari\u015f detaylar\u0131n\u0131, durumlar\u0131n\u0131 ve ge\u00e7mi\u015fini depolamak i\u00e7in ili\u015fkisel bir veritaban\u0131 tercih edebilir.<\/li>\n        <li><strong>\u00d6deme Servisi:<\/strong> \u00d6deme i\u015flemleriyle ilgili hassas verileri (kredi kart\u0131 bilgileri olmamal\u0131, tokenlar saklanmal\u0131) g\u00fcvenli bir \u015fekilde y\u00f6netmek i\u00e7in \u00f6zel bir veritaban\u0131 \u00e7\u00f6z\u00fcm\u00fc kullanabilir.<\/li>\n    <\/ul>\n\n    <p>Her bir veritaban\u0131, kendi Docker konteynerinde \u00e7al\u0131\u015ft\u0131r\u0131l\u0131r. Veri hacimleri kullan\u0131larak veriler kal\u0131c\u0131 hale getirilir. Bu, her servisin kendi veritaban\u0131 \u00fczerinde tam kontrole sahip olmas\u0131n\u0131 sa\u011flar ve bir servisteki veritaban\u0131 sorununun di\u011fer servisleri etkilemesini engeller. \u00d6rne\u011fin, \u00fcr\u00fcn katalo\u011fu veritaban\u0131 bak\u0131ma al\u0131n\u0131rken veya yeniden ba\u015flat\u0131l\u0131rken, kullan\u0131c\u0131 servisi veya sipari\u015f servisi etkilenmez.<\/p>\n\n    <h3>Orkestrasyon ve \u00d6l\u00e7eklendirme Zorluklar\u0131<\/h3>\n\n    <p>Bu t\u00fcr bir mikroservis mimarisinde, y\u00fczlerce veya binlerce konteynerin y\u00f6netilmesi gereklili\u011fi ortaya \u00e7\u0131kar. \u0130\u015fte burada Kubernetes gibi konteyner orkestrasyon ara\u00e7lar\u0131 devreye girer. Kubernetes, veritaban\u0131 konteynerlerinin da\u011f\u0131t\u0131m\u0131n\u0131, \u00f6l\u00e7eklendirilmesini, kendi kendini iyile\u015ftirmesini ve a\u011f ileti\u015fimini otomatikle\u015ftirir.<\/p>\n\n    <p>\u00d6rne\u011fin, bir indirim kampanyas\u0131 s\u0131ras\u0131nda \u00fcr\u00fcn katalo\u011fu veritaban\u0131na olan y\u00fck artt\u0131\u011f\u0131nda, Kubernetes otomatik olarak daha fazla veritaban\u0131 \u00f6rne\u011fi ba\u015flatabilir (replication) ve y\u00fck\u00fc bu \u00f6rneklere da\u011f\u0131tabilir. Ayn\u0131 \u015fekilde, bir veritaban\u0131 konteyneri \u00e7\u00f6kerse, Kubernetes otomatik olarak yeni bir \u00f6rnek ba\u015flat\u0131r ve veri hacmini bu yeni konteynere ba\u011flar. Bu, y\u00fcksek eri\u015filebilirlik ve kesintisiz hizmet sa\u011flar.<\/p>\n\n    <p>Veri yedekleme ve geri y\u00fckleme de Kubernetes i\u00e7inde y\u00f6netilebilir. \u00d6zel operator'ler veya cron job'lar arac\u0131l\u0131\u011f\u0131yla d\u00fczenli yedeklemeler al\u0131nabilir ve felaket kurtarma senaryolar\u0131 i\u00e7in haz\u0131rl\u0131k yap\u0131labilir. Bu karma\u015f\u0131k ortamda veritaban\u0131 y\u00f6netimi, sadece do\u011fru teknolojileri se\u00e7mekle kalmaz, ayn\u0131 zamanda bu teknolojileri etkin bir \u015fekilde otomatize etmekle de ilgilidir.<\/p>\n\n    <h2>Sonu\u00e7: Konteynerler ve Veritabanlar\u0131 Gelece\u011fin Temeli<\/h2>\n\n    <p>Konteyner teknolojilerinin y\u00fckseli\u015fiyle birlikte, veritabanlar\u0131n\u0131 bu modern altyap\u0131 paradigmalar\u0131na entegre etmek art\u0131k bir zorunluluk haline gelmi\u015ftir. Konteynerler, geli\u015ftirme s\u00fcre\u00e7lerini h\u0131zland\u0131r\u0131r, uygulamalar\u0131n ta\u015f\u0131nabilirli\u011fini art\u0131r\u0131r ve \u00f6l\u00e7eklenebilirlik avantajlar\u0131 sunar. Veritabanlar\u0131 ise bu esnek yap\u0131n\u0131n kalbinde yer alan, verilerin kal\u0131c\u0131l\u0131\u011f\u0131n\u0131 ve g\u00fcvenli\u011fini sa\u011flayan temel bile\u015fenlerdir.<\/p>\n\n    <p>Veri hacimleri, ba\u011flant\u0131l\u0131 birimler ve etkili yedekleme\/geri y\u00fckleme stratejileri, konteynerler i\u00e7inde veritaban\u0131 y\u00f6netmenin temel ta\u015flar\u0131d\u0131r. G\u00fcvenlik duvarlar\u0131n\u0131 g\u00fc\u00e7lendirmek, varsay\u0131lan \u015fifreleri de\u011fi\u015ftirmek ve d\u00fczenli g\u00fcncellemeler yapmak, hassas verilerinizi korumak i\u00e7in at\u0131lmas\u0131 gereken ad\u0131mlard\u0131r. Mikroservis mimarileri gibi karma\u015f\u0131k senaryolarda, Kubernetes gibi orkestrasyon ara\u00e7lar\u0131, veritaban\u0131 y\u00f6netimini otomatize ederek operasyonel verimlili\u011fi art\u0131r\u0131r.<\/p>\n\n    <p>Konteynerler ve veritabanlar\u0131 aras\u0131ndaki bu g\u00fc\u00e7l\u00fc birliktelik, g\u00fcn\u00fcm\u00fcz\u00fcn dinamik yaz\u0131l\u0131m geli\u015ftirme d\u00fcnyas\u0131nda yenilik\u00e7ili\u011fin ve verimlili\u011fin anahtar\u0131d\u0131r. Bu teknolojileri do\u011fru anlamak ve uygulamak, hem geli\u015ftiriciler hem de operasyon ekipleri i\u00e7in \u00f6nemli avantajlar sa\u011flayacakt\u0131r.<\/p>\n\n    <h3>S\u0131k\u00e7a Sorulan Sorular<\/h3>\n\n    <ul>\n        <li><strong>Konteynerler i\u00e7indeki veritaban\u0131 verileri kaybolur mu?<\/strong> Hay\u0131r, veri hacimleri (volumes) veya ba\u011flant\u0131l\u0131 birimler (bind mounts) kullanarak verileri kal\u0131c\u0131 hale getirebilirsiniz. Konteyner silinse bile bu depolama alanlar\u0131ndaki veriler korunur.<\/li>\n        <li><strong>Hangi veritabanlar\u0131 konteynerler i\u00e7inde \u00e7al\u0131\u015ft\u0131r\u0131labilir?<\/strong> Neredeyse t\u00fcm pop\u00fcler veritabanlar\u0131 (PostgreSQL, MySQL, MongoDB, Redis vb.) Docker imajlar\u0131 arac\u0131l\u0131\u011f\u0131yla konteynerler i\u00e7inde \u00e7al\u0131\u015ft\u0131r\u0131labilir.<\/li>\n        <li><strong>Konteynerlerde veritaban\u0131 g\u00fcvenli\u011fi nas\u0131l sa\u011flan\u0131r?<\/strong> Varsay\u0131lan \u015fifreleri de\u011fi\u015ftirmek, g\u00fc\u00e7l\u00fc eri\u015fim kontrolleri uygulamak, a\u011f g\u00fcvenli\u011fini sa\u011flamak ve yaz\u0131l\u0131mlar\u0131 g\u00fcncel tutmak temel g\u00fcvenlik ad\u0131mlar\u0131d\u0131r.<\/li>\n        <li><strong>Kubernetes ile veritaban\u0131 y\u00f6netimi nas\u0131l yap\u0131l\u0131r?<\/strong> Kubernetes, veritaban\u0131 konteynerlerinin da\u011f\u0131t\u0131m\u0131n\u0131, \u00f6l\u00e7eklendirilmesini, y\u00fcksek eri\u015filebilirli\u011fini ve kendi kendini iyile\u015ftirmesini otomatikle\u015ftirir. \u00d6zel operator'ler veya StatefulSets gibi yap\u0131lar veritaban\u0131 y\u00f6netimi i\u00e7in kullan\u0131l\u0131r.<\/li>\n        <li><strong>Veri hacimleri ve ba\u011flant\u0131l\u0131 birimler aras\u0131ndaki temel fark nedir?<\/strong> Veri hacimleri Docker taraf\u0131ndan y\u00f6netilen depolama alanlar\u0131d\u0131r ve genellikle veritaban\u0131 verileri i\u00e7in daha uygundur. Ba\u011flant\u0131l\u0131 birimler ise ana makinedeki belirli dizinleri do\u011frudan konteynere ba\u011flar ve daha \u00e7ok yap\u0131land\u0131rma dosyalar\u0131 i\u00e7in kullan\u0131l\u0131r.<\/li>\n    <\/ul>\n\n    #Konteyner #Veritaban\u0131 #Docker #Kubernetes #Yaz\u0131l\u0131mGeli\u015ftirme #VeriY\u00f6netimi\n<\/body><\/pre>\n<p><\/code><\/p>\n","protected":false},"excerpt":{"rendered":"Konteynerler ve Veritabanlar\u0131: &#8216;Her Yerde Konteyner&#8217; G\u00fcnleri Veritaban\u0131yla Bulu\u015ftu\u011funda &#8211; B\u00f6l\u00fcm 2 Modern yaz\u0131l\u0131m geli\u015ftirmenin vazge\u00e7ilmez iki unsuru: konteynerler ve veritabanlar\u0131.","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1],"tags":[],"class_list":{"0":"post-41519","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-genel","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Konteynerler ve Veritabanlar\u0131: &#039;Her Yerde Konteyner&#039; G\u00fcnleri Veritaban\u0131yla Bulu\u015ftu\u011funda - B\u00f6l\u00fcm 2 - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/konteynerler-ve-veritabanlari-her-yerde-konteyner-gunleri-veritabaniyla-bulustugunda-bolum-2\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Konteynerler ve Veritabanlar\u0131: &#039;Her Yerde Konteyner&#039; G\u00fcnleri Veritaban\u0131yla Bulu\u015ftu\u011funda - B\u00f6l\u00fcm 2\" \/>\n<meta property=\"og:description\" content=\"Konteynerler ve Veritabanlar\u0131: &#039;Her Yerde Konteyner&#039; G\u00fcnleri Veritaban\u0131yla Bulu\u015ftu\u011funda - B\u00f6l\u00fcm 2 Modern yaz\u0131l\u0131m geli\u015ftirmenin vazge\u00e7ilmez iki unsuru: konteynerler ve veritabanlar\u0131.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/konteynerler-ve-veritabanlari-her-yerde-konteyner-gunleri-veritabaniyla-bulustugunda-bolum-2\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-04-30T18:03:07+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"17 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/konteynerler-ve-veritabanlari-her-yerde-konteyner-gunleri-veritabaniyla-bulustugunda-bolum-2\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/konteynerler-ve-veritabanlari-her-yerde-konteyner-gunleri-veritabaniyla-bulustugunda-bolum-2\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Konteynerler ve Veritabanlar\u0131: &#8216;Her Yerde Konteyner&#8217; G\u00fcnleri Veritaban\u0131yla Bulu\u015ftu\u011funda &#8211; B\u00f6l\u00fcm 2\",\"datePublished\":\"2026-04-30T18:03:07+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/konteynerler-ve-veritabanlari-her-yerde-konteyner-gunleri-veritabaniyla-bulustugunda-bolum-2\/\"},\"wordCount\":20,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/konteynerler-ve-veritabanlari-her-yerde-konteyner-gunleri-veritabaniyla-bulustugunda-bolum-2\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/konteynerler-ve-veritabanlari-her-yerde-konteyner-gunleri-veritabaniyla-bulustugunda-bolum-2\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/konteynerler-ve-veritabanlari-her-yerde-konteyner-gunleri-veritabaniyla-bulustugunda-bolum-2\/\",\"name\":\"Konteynerler ve Veritabanlar\u0131: 'Her Yerde Konteyner' G\u00fcnleri Veritaban\u0131yla Bulu\u015ftu\u011funda - B\u00f6l\u00fcm 2 - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-04-30T18:03:07+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/konteynerler-ve-veritabanlari-her-yerde-konteyner-gunleri-veritabaniyla-bulustugunda-bolum-2\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/konteynerler-ve-veritabanlari-her-yerde-konteyner-gunleri-veritabaniyla-bulustugunda-bolum-2\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/konteynerler-ve-veritabanlari-her-yerde-konteyner-gunleri-veritabaniyla-bulustugunda-bolum-2\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Konteynerler ve Veritabanlar\u0131: &#8216;Her Yerde Konteyner&#8217; G\u00fcnleri Veritaban\u0131yla Bulu\u015ftu\u011funda &#8211; B\u00f6l\u00fcm 2\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Konteynerler ve Veritabanlar\u0131: 'Her Yerde Konteyner' G\u00fcnleri Veritaban\u0131yla Bulu\u015ftu\u011funda - B\u00f6l\u00fcm 2 - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/konteynerler-ve-veritabanlari-her-yerde-konteyner-gunleri-veritabaniyla-bulustugunda-bolum-2\/","og_locale":"tr_TR","og_type":"article","og_title":"Konteynerler ve Veritabanlar\u0131: 'Her Yerde Konteyner' G\u00fcnleri Veritaban\u0131yla Bulu\u015ftu\u011funda - B\u00f6l\u00fcm 2","og_description":"Konteynerler ve Veritabanlar\u0131: 'Her Yerde Konteyner' G\u00fcnleri Veritaban\u0131yla Bulu\u015ftu\u011funda - B\u00f6l\u00fcm 2 Modern yaz\u0131l\u0131m geli\u015ftirmenin vazge\u00e7ilmez iki unsuru: konteynerler ve veritabanlar\u0131.","og_url":"https:\/\/fatihsoysal.com\/blog\/konteynerler-ve-veritabanlari-her-yerde-konteyner-gunleri-veritabaniyla-bulustugunda-bolum-2\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-04-30T18:03:07+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"17 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/konteynerler-ve-veritabanlari-her-yerde-konteyner-gunleri-veritabaniyla-bulustugunda-bolum-2\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/konteynerler-ve-veritabanlari-her-yerde-konteyner-gunleri-veritabaniyla-bulustugunda-bolum-2\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Konteynerler ve Veritabanlar\u0131: &#8216;Her Yerde Konteyner&#8217; G\u00fcnleri Veritaban\u0131yla Bulu\u015ftu\u011funda &#8211; B\u00f6l\u00fcm 2","datePublished":"2026-04-30T18:03:07+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/konteynerler-ve-veritabanlari-her-yerde-konteyner-gunleri-veritabaniyla-bulustugunda-bolum-2\/"},"wordCount":20,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/konteynerler-ve-veritabanlari-her-yerde-konteyner-gunleri-veritabaniyla-bulustugunda-bolum-2\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/konteynerler-ve-veritabanlari-her-yerde-konteyner-gunleri-veritabaniyla-bulustugunda-bolum-2\/","url":"https:\/\/fatihsoysal.com\/blog\/konteynerler-ve-veritabanlari-her-yerde-konteyner-gunleri-veritabaniyla-bulustugunda-bolum-2\/","name":"Konteynerler ve Veritabanlar\u0131: 'Her Yerde Konteyner' G\u00fcnleri Veritaban\u0131yla Bulu\u015ftu\u011funda - B\u00f6l\u00fcm 2 - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-04-30T18:03:07+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/konteynerler-ve-veritabanlari-her-yerde-konteyner-gunleri-veritabaniyla-bulustugunda-bolum-2\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/konteynerler-ve-veritabanlari-her-yerde-konteyner-gunleri-veritabaniyla-bulustugunda-bolum-2\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/konteynerler-ve-veritabanlari-her-yerde-konteyner-gunleri-veritabaniyla-bulustugunda-bolum-2\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Konteynerler ve Veritabanlar\u0131: &#8216;Her Yerde Konteyner&#8217; G\u00fcnleri Veritaban\u0131yla Bulu\u015ftu\u011funda &#8211; B\u00f6l\u00fcm 2"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/41519","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=41519"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/41519\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=41519"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=41519"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=41519"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}