SOA, Monolitik ve Mikroservis Mimarileri: Nedir, Neden Ortaya Çıktılar ve Hangi Durumlarda Kullanılırlar?
Yazılım Mimarisinin Evrimi: Neden Tek Bir Doğru Yok?
Bir yazılıma başlarken verilen mimari karar, bir binanın temeli gibidir. Yanlış temel üzerine gökdelen dikemezsiniz, ama iki katlı bir bağ evi için de gökdelen temeli kazmak sadece vakit ve nakit kaybıdır. Yazılım dünyası yıllar içinde "her şeyi tek sepete koymaktan", "her meyveye ayrı sepet" mantığına evrildi. Peki ama neden?
1. Monolitik Mimari: Tek Parça, Dev Güç
Monoliti sadece "eski" olarak nitelendirmek ona haksızlık olur. Bugün bile birçok başarılı startup ve orta ölçekli proje hayatına monolit olarak devam eder.
-
Gerçek Dünyada Nedir? Küçük bir mahalle bakkalı düşünün. Kasaya bakan da, rafları dizen de, siparişleri getiren de aynı kişidir. İletişim sorunu sıfırdır, kararlar anında alınır.
-
Neden Tercih Edilir?
-
Hızlı Deploy: Tek bir dosyayı sunucuya atarsınız ve biter.
-
Kolay Debug: Hata çıktığında nerede olduğu bellidir; projenin içindedir. Servisler arası network trafiğinde kaybolmazsınız.
-
Performans: Fonksiyonlar arası çağrılar işlemci seviyesinde gerçekleşir; "istek gönderdim, cevap bekliyorum" derdi yoktur.
-
-
Kimler İçin İdeal? Yeni kurulan girişimler (MVP aşaması), basit e-ticaret siteleri veya dahili kurumsal araçlar.
2. SOA (Servis Odaklı Mimari): Kurumsal Düzenin Doğuşu
Yazılım büyüyüp devasa bir organizasyona dönüştüğünde, o "mahalle bakkalı" artık yetmemeye başlar. Şirketin muhasebesi ayrı bir binada, lojistiği ayrı bir şehirde olabilir.
-
Gerçek Dünyada Nedir? Bir belediye binası gibi düşünün. Su faturası ödemek için bir birime, imar izni için başka bir birime gidersiniz. Hepsi aynı belediyeye bağlıdır ama kendi içlerinde uzmanlaşmışlardır. Aralarındaki iletişimi ise resmi yazışmalar (ESB) sağlar.
-
Neden Tercih Edilir?
-
Yeniden Kullanılabilirlik: Bir kez yazılan "Müşteri Doğrulama" servisini hem web sitesi hem de mobil uygulama kullanabilir.
-
Entegrasyon Kolaylığı: Farklı dillerde yazılmış devasa sistemleri (Legacy) birbirine bağlamak için en mantıklı yoldur.
-
-
Kimler İçin İdeal? Çok departmanlı büyük holdingler, bankalar ve sigorta devleri.
3. Mikroservisler: Modern Dünyanın Hız Canavarı
Hızın, dayanıklılığın ve ölçeklenebilirliğin her şeyden önemli olduğu noktada mikroservis devreye girer.
-
Gerçek Dünyada Nedir? Devasa bir yemek sipariş platformu (Getir, Yemeksepeti gibi) düşünün. Ödeme sistemi bozulsa bile kullanıcılar hala yemekleri inceleyebilmeli ve sepete ekleyebilmelidir. Her parça (Ödeme, Katalog, Kurye Takip) tamamen bağımsız birer şirket gibidir.
-
Neden Tercih Edilir?
-
Teknoloji Özgürlüğü: Sepet servisini Go ile, yapay zeka öneri sistemini Python ile yazabilirsiniz.
-
Kısmi Dağıtım: Sadece "Yorum Yap" özelliğini güncellemek için tüm siteyi kapatmanız gerekmez.
-
Hata İzolasyonu: Bir servis çökerse diğerleri çalışmaya devam eder; sistemin tamamı felç olmaz.
-
-
Kimler İçin İdeal? Saniyede on binlerce istek alan, yüzlerce yazılımcı çalıştıran ve "sıfır kesinti" hedefleyen teknoloji devleri.