İçeriğe geç
parazade

Monolitik Mimari Nedir?

İngilizce: Monolithic Architecture

Yayın: · Son güncelleme:

Monolitik Mimari Nedir? Kısaca

Monolitik mimari, bir uygulamanın arayüz, iş mantığı ve veri erişimi dâhil tüm parçalarının tek bir kod tabanında geliştirildiği ve tek bir birim olarak derlenip sunucuya dağıtıldığı yazılım mimarisidir.

Monolitik Mimari nedir?
İçindekiler
  1. Monolitik mimari nedir?
  2. Avantajları neler?
  3. Büyüdükçe hangi sorunlar çıkar?

Monolitik mimari nedir?

Monolitik mimaride uygulama tek parçadır. Kullanıcı girişi, ürün listesi, ödeme ve raporlama gibi tüm özellikler aynı projede yazılır ve tek bir paket olarak sunucuya yüklenir. Genellikle tek bir veritabanı kullanılır.

Kulağa eski moda gelse de pek çok başarılı ürün bu şekilde başlamıştır. Yeni bir projenin ilk sürümü için çoğu zaman en hızlı ve en ucuz yoldur.

Avantajları neler?

Tek kod tabanı geliştirmeyi basitleştirir. Projeyi bilgisayarınıza indirip tek komutla çalıştırabilir, hatayı tek yerde arayabilirsiniz. Dağıtım da kolaydır; bir sunucuya tek paket yüklemek yeterlidir.

Örneğin küçük bir butik için hazırlanan sipariş takip sistemini düşünün. Günde birkaç yüz siparişin işlendiği bu sistemde ürün, müşteri ve fatura modüllerini ayrı servislere bölmek, ağ trafiği ve izleme yükü dışında bir şey kazandırmaz.

Büyüdükçe hangi sorunlar çıkar?

Kod tabanı yüz binlerce satıra ulaştığında küçük bir değişiklik bile tüm uygulamanın yeniden derlenip dağıtılmasını gerektirir. Bir modüldeki bellek sızıntısı tüm sistemi durdurabilir. Ekip büyüdükçe aynı dosyalar üzerinde çalışan geliştiriciler birbirini bekler.

Ölçekleme de bütün hâlinde yapılır. Yalnız ödeme modülü yoğun olsa bile tüm uygulamanın kopyasını çalıştırmanız gerekir. Bu noktada ekipler ya kodu iyi ayrılmış modüllere böler (modüler monolit) ya da bazı parçaları mikroservis olarak ayırır. Projenize başlarken düzenli bir klasör ve modül yapısı kurmak, ileride bu ayrımı çok kolaylaştırır.

Sıkça Sorulan Sorular

Monolitik mimari kötü bir seçim mi?

Hayır. Küçük ve orta ölçekli projelerde, özellikle ilk sürümde çoğu zaman en mantıklı seçimdir. Sorunlar genellikle uygulama ve ekip çok büyüdüğünde ortaya çıkar.

Modüler monolit nedir?

Tek parça olarak dağıtılan ama içinde birbirinden net sınırlarla ayrılmış modüller barındıran uygulamadır. Monolitin sadeliğini korurken ileride servislere bölmeyi kolaylaştırır.

İlgili terimler

Mikroservis(Microservices)Mikroservis, bir uygulamanın her biri tek bir işe odaklanan, kendi başına geliştirilip dağıtılabilen ve birbiriyle genellikle API ya da mesaj kuyruğu üzerinden haberleşen küçük servislere bölündüğü mimari yaklaşımdır.Yazılım Mimarisi(Software Architecture)Yazılım mimarisi, bir yazılım sisteminin ana bileşenlerini, bu bileşenlerin birbiriyle nasıl iletişim kurduğunu ve sistemin hangi ilkelere göre büyüyeceğini belirleyen üst düzey yapı ve kararlar bütünüdür.Modüler Yapı(Modular Design)Modüler yapı, bir yazılımın her biri belirli bir işi üstlenen, net bir arayüzle dışarıya açılan ve diğer parçalardan olabildiğince bağımsız çalışan modüllere bölünerek tasarlanmasıdır.Deploy(Deployment)Deploy (deployment), yazılımın hazırlanan sürümünün bir sunucuya ya da platforma kurularak çalışır ve erişilebilir hâle getirilmesidir. Türkçede dağıtım, yayına alma ya da canlıya alma olarak geçer.Fatura(Invoice)Fatura, satılan mal ya da yapılan hizmet karşılığında müşterinin borçlandığı tutarı göstermek üzere satıcı tarafından düzenlenip alıcıya verilen ticari ve vergisel belgedir. Vergi Usul Kanununda düzenlenir.Bellek Sızıntısı(Memory Leak)Bellek sızıntısı (memory leak), bir programın artık ihtiyaç duymadığı belleği serbest bırakmaması sonucu RAM kullanımının zamanla sürekli artmasıdır. Uzun süre çalışan uygulamalarda yavaşlamaya ve çökmelere yol açar.Modül(Module)Modül, belirli bir işe ait fonksiyonları, sınıfları ve değişkenleri bir arada tutan, programın geri kalanından ayrı bir kod birimidir. Genellikle tek bir dosyadır ve başka dosyalardan import edilerek kullanılır.