ASSISTOTECH

YENİ PROJELER İÇİN TEKLİF ALIYORUZ

Altyapı & Güvenlik

Sunucu ve veritabanı seçimi: küçük ve orta işletmeler için rehber

Paylaşımlı hosting, VPS, bulut ve yönetilen servisler; PostgreSQL, MySQL ve NoSQL karşılaştırması; yedekleme, izleme ve maliyet kontrolü.

Kod ekranı ve test telefonlarıyla çalışan geliştirici

Kısa cevap

Küçük ve orta ölçekli bir işletme için doğru altyapı çoğu zaman ihtiyaca göre büyütülebilen bir VPS ya da bulut sunucu ile ilişkisel bir veritabanıdır; birçok iş uygulaması için PostgreSQL güçlü ve ücretsiz bir varsayılandır. Seçimde belirleyici olan işlemci gücünden çok yedekleme, izleme, güvenlik güncellemeleri ve bu işleri kimin yapacağıdır. Kişisel veri işleniyorsa sunucunun konumu KVKK açısından da önem taşır.

Yeni bir web sitesi, iş uygulaması ya da SaaS ürünü planlarken "nerede çalışacak, veri nerede duracak?" sorusu genellikle son ana bırakılır. Oysa bu karar; uygulamanın hızını, kesinti riskini, aylık maliyeti ve kişisel verilerle ilgili yükümlülükleri doğrudan etkiler.

Bu yazıda sunucu seçeneklerini, veritabanı türlerini ve altyapıda en sık atlanan konular olan yedekleme ile izlemeyi karşılaştırmalı olarak anlatıyoruz.

Sunucu seçenekleri nelerdir?

Uygulamanızı barındırmak için dört temel seçenek vardır. Aralarındaki fark, ne kadar kontrol size ait olduğu ve ne kadar işi sağlayıcının üstlendiğidir.

Seçenek Ne sunar? Uygun olduğu durum Dikkat edilecek nokta
Paylaşımlı hosting Aynı sunucuyu çok sayıda siteyle paylaşırsınız Basit tanıtım siteleri, küçük WordPress kurulumları Kaynak sınırlı, özel yazılım çalıştırma esnekliği düşük
VPS (sanal sunucu) Size ayrılmış sanal bir sunucu, tam yönetici erişimi Özel uygulamalar, küçük ve orta SaaS ürünleri Güncelleme, güvenlik ve yedek sizin sorumluluğunuzda
Bulut sunucu ve platformlar Talebe göre büyüyüp küçülebilen kaynaklar, çok sayıda yönetilen servis Değişken yük, hızlı büyüme, çok bölgeli yapı Fiyatlandırma karmaşık, kullanım izlenmezse maliyet sürpriz yapabilir
Fiziksel (dedicated) sunucu Donanımın tamamı size ait Yüksek ve sabit yük, özel donanım ihtiyacı Donanım arızası ve kapasite planlaması daha önemli hale gelir

Çoğu işletme uygulaması için iyi yapılandırılmış bir VPS ya da bulut sunucu yeterli başlangıçtır. Yük arttığında sunucuyu büyütmek ya da veritabanını ayrı bir sunucuya taşımak mümkündür.

Yönetilen servis mi, kendi kurulumunuz mu?

Yönetilen servis (managed service), veritabanı ya da uygulama altyapısının kurulum, güncelleme, yedekleme ve yüksek erişilebilirlik gibi işlerinin sağlayıcı tarafından üstlenildiği hizmet modeli demektir. Kendi kurulumunuzda ise aynı veritabanını bir sunucuya kendiniz kurar ve yönetirsiniz.

  • Yönetilen veritabanı daha pahalıdır ama otomatik yedek, belirli bir zamana geri dönme ve sürüm güncellemesi gibi işleri hazır sunar. Ekibinizde altyapıyla düzenli ilgilenecek kimse yoksa bu fark çoğunlukla ödemeye değer.
  • Kendi kurulumunuz daha ucuz ve esnektir; buna karşılık yedeklerin gerçekten alındığını, geri dönülebildiğini ve güvenlik güncellemelerinin yapıldığını sizin ya da bakım ekibinizin takip etmesi gerekir.

Docker gibi konteyner araçları ve kendi sunucunuzda çalışan uygulama yönetim panelleri, kendi kurulum seçeneğini eskisine göre çok daha düzenli hale getirdi. Araç ne olursa olsun yedek ve izleme disiplini ayrıca kurulmalıdır.

PostgreSQL mi, MySQL mi, NoSQL mi?

Veritabanı seçimi, verinizin yapısına ve uygulamanın nasıl sorgu yapacağına göre yapılır. İş uygulamalarının büyük kısmında veri; müşteriler, siparişler, ürünler, faturalar gibi birbirine bağlı tablolardan oluşur ve bu yapı ilişkisel veritabanlarına doğal olarak uyar.

Ölçüt PostgreSQL MySQL / MariaDB NoSQL (ör. MongoDB)
Veri modeli İlişkisel, güçlü JSON desteğiyle İlişkisel Doküman, anahtar-değer vb.
Tutarlılık ve işlemler Güçlü, ACID Güçlü, ACID (InnoDB) Modele ve yapılandırmaya göre değişir
Gelişmiş özellikler Satır düzeyi güvenlik, zengin indeks türleri, uzantılar Yaygın barındırma desteği, geniş ekosistem Esnek şema, yatay ölçekleme
Uygun olduğu iş İş uygulamaları, SaaS, raporlama Web siteleri, içerik yönetim sistemleri Şeması sık değişen veri, çok yüksek yazma hacmi
Lisans Açık kaynak (PostgreSQL License) Açık kaynak (GPL) ve ticari sürüm Ürüne göre değişir

Yeni bir iş uygulaması için bizim varsayılan tercihimiz genellikle PostgreSQL'dir: ilişkisel veriyi sağlam tutar, JSON alanlarıyla esnek veriyi de taşıyabilir ve çoklu kiracı yapılarında satır düzeyi güvenlik gibi ek koruma katmanları sunar. MySQL, özellikle hazır içerik yönetim sistemleri ve yaygın barındırma ortamlarında hâlâ çok iyi bir seçenektir. NoSQL ise belirli bir ihtiyaç olduğunda (çok yüksek hacimli olay kaydı, şeması belirsiz veri) ilişkisel veritabanının yanına eklenen bir araç olarak daha anlamlıdır.

Sunucu kapasitesi nasıl belirlenir?

Kapasiteyi tahmin etmek için önce uygulamanın yükünü anlamak gerekir. Şu sorular iyi bir başlangıç noktasıdır:

  1. Aynı anda kaç kullanıcı aktif olacak, yoğun saatler ne zaman?
  2. Uygulama ağırlıklı olarak okuma mı yapıyor, yazma mı?
  3. Rapor, dışa aktarma, görsel işleme gibi ağır işler var mı?
  4. Veritabanı bir yılda ne kadar büyüyecek?
  5. Dosya ve görseller nerede saklanacak?

Kesin rakamlar ancak ölçümle ortaya çıkar. Bu yüzden makul bir başlangıç boyutu seçip izleme kurmak ve yükü gördükçe büyütmek, baştan büyük ve pahalı bir sunucu almaktan daha sağlıklıdır. Ağır işleri arka plan kuyruğuna taşımak ve sık okunan veriyi önbelleğe almak, donanım büyütmeden önce denenmesi gereken adımlardır.

Yedekleme nasıl yapılmalı?

Yedekleme, altyapıda en çok ertelenen ama kayıp yaşandığında en pahalıya patlayan konudur. Yaygın kabul gören 3-2-1 kuralı iyi bir çerçeve sunar: verinin en az üç kopyası, iki farklı ortamda, bir kopya da farklı bir konumda tutulur.

Veritabanı yedeklemesinde iki yöntem birlikte kullanılabilir:

  • Mantıksal yedek: PostgreSQL'de pg_dump gibi araçlarla alınan, veritabanının içeriğini dışa aktaran yedekler. Taşıma ve kısmi geri dönüş için pratiktir.
  • Fiziksel yedek ve zamana geri dönme: Veritabanı dosyalarının ve işlem günlüklerinin (PostgreSQL'de WAL) arşivlenmesiyle, belirli bir ana geri dönmek mümkün olur. Yanlışlıkla silinen bir tabloyu silinmeden hemen önceki ana döndürmek için gereklidir.

En önemli kural: geri dönmeyi denenmemiş yedek, yedek sayılmaz. Belirli aralıklarla yedekten ayrı bir ortama geri yükleme yapıp uygulamanın çalıştığını doğrulamak gerekir. Yedekler de şifrelenmeli ve erişimi sınırlandırılmalıdır.

İzleme ve güvenlik için neler gerekli?

Bir sunucunun çalıştığını müşteriden duymak, izleme eksikliğinin en tipik belirtisidir. Temel bir izleme kurulumu şunları kapsamalıdır:

  • Erişilebilirlik: Site ya da API dışarıdan düzenli aralıklarla kontrol edilir, cevap vermezse uyarı gider.
  • Kaynak kullanımı: İşlemci, bellek ve disk doluluğu izlenir; disk dolması veritabanını durdurabilir.
  • Uygulama hataları: Hata kayıtları merkezi bir yerde toplanır ve yeni hata türleri bildirilir.
  • Sertifika ve alan adı: TLS sertifikasının ve alan adının süresi takip edilir.

Güvenlik tarafında ise veritabanını internete doğrudan açmamak, SSH erişimini anahtarla sınırlandırmak, güvenlik duvarında yalnızca gerekli portları açık tutmak ve işletim sistemi ile yazılım güncellemelerini düzenli yapmak temel adımlardır. Kullandığınız veritabanı sürümünün hâlâ desteklenip desteklenmediğini de takip edin; PostgreSQL topluluğu her ana sürümün ne zamana kadar güncelleme alacağını resmi sitesinde yayımlar.

Sunucu konumu ve KVKK

Kişisel veri işleyen bir uygulamada sunucunun hangi ülkede olduğu yalnızca hız meselesi değildir. Yurt dışında barındırılan sunuculara kişisel veri aktarımı, 6698 sayılı Kanun'un 9. maddesindeki şartlara tabidir. Türkiye'deki bir veri merkezinde barındırma bu yükü önemli ölçüde azaltır; yurt dışı tercih ediliyorsa uygun güvencelerin (ör. standart sözleşme) planlanması gerekir. Ayrıntılar için KVKK uyumlu yazılım geliştirme kontrol listemize bakabilirsiniz.

Altyapı kurulduktan sonra da düzenli bakım gerekir; bunun bir sözleşmede nasıl tanımlanacağını yazılım bakım ve destek sözleşmesi yazımızda anlattık. Sunucu, veritabanı ve yedekleme kurulumu için veritabanı ve altyapı hizmet sayfamıza göz atabilirsiniz.

Sık sorulan sorular

Küçük bir işletme için VPS mi, bulut mu daha uygun?

Yükü öngörülebilir olan çoğu küçük işletme uygulaması için tek bir VPS ekonomik ve yeterlidir. Yükün ani değiştiği, birden fazla bölgeye hizmet verilen ya da yönetilen servislere ihtiyaç duyulan projelerde bulut platformları daha esnektir. Hangi seçenek olursa olsun yedekleme ve izleme ayrıca planlanmalıdır.

PostgreSQL ücretsiz mi?

Evet, PostgreSQL açık kaynaklıdır ve PostgreSQL License ile ticari kullanım dahil ücretsiz kullanılabilir. Ücret ödenen kısım genellikle onu çalıştırdığınız sunucu ya da yönetilen veritabanı hizmetidir. Lisans maliyeti olmaması, özellikle SaaS ürünlerinde önemli bir avantajdır.

Veritabanı yedeği ne sıklıkla alınmalı?

Bu, ne kadar veri kaybını tolere edebileceğinize bağlıdır. Günlük yedek, bir günlük veri kaybını kabul etmek demektir; sipariş ve ödeme gibi kritik veriler için işlem günlüklerinin sürekli arşivlenmesiyle belirli bir ana geri dönülebilen yapı daha uygundur. Hangi sıklık seçilirse seçilsin, geri yükleme düzenli olarak test edilmelidir.

Veritabanı ile uygulama aynı sunucuda olabilir mi?

Küçük projelerde başlangıç için mümkündür ve maliyeti düşürür. Yük arttığında, güvenlik gereksinimleri yükseldiğinde ya da veritabanının ayrı ölçeklenmesi gerektiğinde ayrı sunucuya ya da yönetilen veritabanına taşımak gerekir. Bu geçişi kolaylaştırmak için bağlantı bilgilerini baştan ortam değişkenlerinde tutmak iyi bir alışkanlıktır.

Sunucumu Türkiye'de mi barındırmalıyım?

Kişisel veri işliyorsanız Türkiye'de barındırma, KVKK'nın yurt dışı aktarım şartlarıyla uğraşma ihtiyacını büyük ölçüde ortadan kaldırır ve Türkiye'deki kullanıcılar için gecikmeyi azaltabilir. Yurt dışı sağlayıcıların sunduğu servisler daha cazipse, aktarımın hukuki dayanağı ayrıca planlanmalıdır. Karar verirken hukuki yükümlülükleri ve teknik ihtiyaçları birlikte değerlendirmek gerekir.

Kaynaklar

  1. PostgreSQL belgeleri: Yedekleme ve geri yükleme
  2. PostgreSQL sürüm destek politikası
  3. PostgreSQL: Row Security Policies
  4. 6698 sayılı Kişisel Verilerin Korunması Kanunu (Mevzuat Bilgi Sistemi)

AssistoTech Ekibi

İstanbul'da web, mobil, masaüstü, oyun, SaaS ve kurumsal yazılım geliştiren ekibiz. Bu yazı, kendi ürünlerimizde ve müşteri projelerinde edindiğimiz deneyime dayanır. Projeniz için bize yazın.

DEVAMINI OKUYUN

İlgili yazılar

PROJENİZİ
KONUŞALIM

UÇTAN UCA YAZILIMİSTANBUL · TÜRKİYE

OFİS

  • İstanbul

    Denizköşkler Mah. Ferah Çıkmazı Sk.
    No: 2 İç Kapı No: 1
    Avcılar / İstanbul

  • Uzaktan

    Türkiye genelinde ve
    yurt dışındaki müşterilerle
    uzaktan çalışıyoruz

Formu göndererek kişisel verilerinizin KVKK Aydınlatma Metni kapsamında işlenmesine ilişkin bilgilendirmeyi okuduğunuzu kabul edersiniz.