Yan yana
MikroservislervsServis Odaklı Mimari
Mikroservisler ile servis odaklı mimari (SOA) arasındaki fark nedir?
Güncellendi 2 dk okuma6 fark
Kısaca
SOA kurumsal sistemleri merkezi bir veri yolu ile konuşan ortak servislere böler; mikroservisler ise tek uygulamayı bağımsız dağıtılan küçük servislere böler.
Mikroservisler
Mikroservisler, bir uygulamanın ağ üzerinden iletişim kuran, küçük ve bağımsız olarak dağıtılabilen servislere bölündüğü bir mimari tarzdır.
Mikroservisler sayfasını okuServis Odaklı Mimari
Servis odaklı mimari, kurumsal yazılımı birbiriyle standart sözleşmelerle iletişim kuran, yeniden kullanılabilir ve ağdan erişilebilir servislerden kurar.
Servis Odaklı Mimari sayfasını okuMikroservisler ve Servis Odaklı Mimari karşılaştırması
| Özellik | Mikroservisler | Servis Odaklı Mimari |
|---|---|---|
| Dönem | 2010'lar, bulut yerlisi şirketler | 2000'ler, kurumsal BT |
| Servis boyutu | Küçük; her biri tek bir iş yeteneği | Büyük; işletme genelinde paylaşılan servisler |
| İletişim | Hafif HTTP API'leri, gRPC ya da mesaj aracıları | Çoğu zaman SOAP ile bir kurumsal servis veri yolu |
| Veri | Her servis kendi verisine sahiptir | Servisler çoğu zaman veritabanlarını paylaşır |
| Kapsam | Tek bir uygulamayı yapılandırmak | Bir şirketteki birçok uygulamayı entegre etmek |
| Dağıtım | Her servis kendi başına dağıtılır | Koordineli yayınlar yaygındır |
Fark, açıklamalı
SOA, 2000'lerde büyük kurumsal sistemleri birbirine bağlamanın bir yolu olarak yaygınlaştı. Müşteri kayıtları ya da faturalama gibi iş işlevleri yeniden kullanılabilir servisler olarak sunulur; bunlar çoğu zaman SOAP ve WSDL ile tanımlanır ve mesajları yönlendiren, dönüştüren ve düzenleyen bir kurumsal servis veri yolu (ESB) üzerinden birbirine bağlanır. Mikroservisler ise 2010'larda Netflix ve Amazon gibi şirketlerde yükseldi: tek bir uygulama, her biri kendi ekibi tarafından geliştirilen, dağıtılan ve ölçeklenen birçok küçük servise bölünür.
Farklar kapsam ve bağımlılıktadır. SOA servisleri çoğu zaman büyüktür ve bütün kuruluş tarafından paylaşılır; entegrasyon mantığının büyük kısmı da ESB'dedir, bu yüzden veri yolu merkezi ve değiştirilmesi zor hale gelir. Mikroservisler "akıllı uçlar, aptal borular" (smart endpoints, dumb pipes) ilkesini izler: her servis kendi mantığını ve veritabanını tutar, servisler de basit HTTP API'leri ya da mesaj aracıları üzerinden konuşur.
Mikroservisler çoğu zaman SOA'nın rafine bir biçimi olarak tarif edilir ve sistemleri açık arayüzlü servislerden kurma fikrini onunla paylaşır. Değişen, araçlar ve kültürdür: konteynerler, Kubernetes, CI/CD ve bulut platformları, SOA döneminde zor olan bir şeyi, yüzlerce küçük servisi birbirinden bağımsız dağıtmayı pratik hale getirdi.
Sık yapılan bir yanlış, mikroservislerin her zaman modern ve daha iyi seçim olduğu düşüncesidir. Ağ hatalarını, dağıtık veriyi ve operasyon yükünü de beraberinde getirirler; birçok ekip iyi yapılandırılmış bir monolitle daha iyi sonuç alır. Yeniden kullanılabilir ortak servisler gibi bazı SOA fikirleri de büyük bir kuruluş genelinde hâlâ anlamlıdır.
Hangisini kullanmalısınız?
Mikroservisler şu durumlarda doğru seçim:
- Birkaç bağımsız ekiple tek bir büyük uygulama geliştiriyorsunuz.
- Sistemin bazı parçalarının kendi başına ölçeklenmesi ya da yayınlanması gerekiyor.
- Birçok küçük servisi işletecek otomasyonunuz ve izlemeniz var.
Servis Odaklı Mimari şu durumlarda doğru seçim:
- Mevcut birçok kurumsal sistemi birbirine bağlamanız gerekiyor.
- Ortak iş servisleri birçok uygulama tarafından yeniden kullanılmalı.
- Kuruluşunuz zaten bir ESB ve SOAP servisleri üzerinde çalışıyor.
Sık sorulan sorular
Mikroservisler bir tür SOA mıdır?
Çoğu zaman SOA'nın daha hafif ve daha ince taneli bir torunu olarak görülürler. İkisi de sistemleri servislerden kurar; ama mikroservisler merkezi bir veri yolundan ve paylaşılan veritabanlarından kaçınır.
Kurumsal servis veri yolu (ESB) nedir?
SOA'da servisler arasındaki mesajları yönlendiren, dönüştüren ve düzenleyen merkezi bir ara katman yazılımıdır. Entegrasyonu kolaylaştırır, ama bir darboğaza ve tek hata noktasına dönüşebilir.
SOA öldü mü?
Hayır. Birçok büyük şirket hâlâ SOA sistemleri işletiyor ve fikirleri API yönetiminde ve mikroservislerde yaşıyor; yine de bir ESB etrafında tasarlanan yeni proje azdır.