SOA ve Mikro Hizmetler – Aralarındaki Fark

SOA ve Mikro Hizmetler Arasındaki Temel Fark

  • SOA, uygulama hizmetinin yeniden kullanılabilirliğine odaklanırken, Mikro hizmetler daha çok ayrıştırmaya odaklanır.
  • SOA doğası gereği monolitiktir, oysa Mikro hizmetler tam yığındır.
  • SOA uygulamaları çok sayıda iş görevini gerçekleştirmek için oluşturulmuştur, ancak mikro hizmetler tek bir iş görevini gerçekleştirmek için oluşturulmuştur.
  • SOA, hizmetler arasında veri depolamanın paylaşılmasını içerirken, Mikro Hizmetlerde her hizmet bağımsız veri depolama alanına sahip olabilir.
  • SOA, kaynakları hizmetler arasında paylaşmak için tasarlanırken, Mikro hizmetler bağımsız olarak çalışabilen hizmetleri barındırmak için tasarlanmıştır.
  • SOA'da ArchiTecture, DevOps ve Sürekli Teslimat popüler hale geliyor ancak henüz ana akım haline gelmiyor; Mikro Hizmetler ise DevOps ve Sürekli Teslimat'a güçlü bir vurgu yapıyor.
  • SOA daha az ölçeklenebilir bir mimari iken, Mikroservisler oldukça ölçeklenebilir bir mimaridir.
SOA ve Mikro Hizmetler Arasındaki Fark
SOA ve Mikro Hizmetler

Hizmet odaklı mimari (SOA) nedir?

SOA, bilgisayar yazılım tasarımında bir mimari desendir. Bu tür uygulamalarda, bileşenler genellikle bir ağ üzerinden bir iletişim protokolü aracılığıyla diğer bileşenlere hizmet sağlar. Hizmet odaklılığın ilkeleri herhangi bir ürün, satıcı veya teknolojiden bağımsızdır. SOA'nın tam biçimi hizmet odaklı mimaridir

SOA, çeşitli ağlardaki yazılım bileşenlerinin birbirleriyle çalışmasını kolaylaştırır. SOA mimarisine göre oluşturulan web servisleri, web servislerini daha bağımsız hale getirme eğilimindedir.

Mikro hizmetler nedir?

Microservices uygulamaların çeşitli en küçük bağımsız hizmet birimlerinin bir koleksiyonu olarak oluşturulduğu bir hizmet odaklı mimari desenidir. Bir uygulamayı iyi tanımlanmış arayüzlere sahip tek işlevli modüllere ayırmaya odaklanan bir yazılım mühendisliği yaklaşımıdır.

Bu modüller, hizmetin tüm yaşam döngüsüne sahip olan küçük ekipler tarafından bağımsız olarak dağıtılabilir ve çalıştırılabilir.

“Mikro” terimi, tek bir geliştirme ekibi (5 ila 10 geliştirici) tarafından yönetilmesi gereken bir mikro hizmetin boyutlandırılmasını ifade eder. Bu metodolojide büyük uygulamalar en küçük bağımsız birimlere bölünür.

SOA ve Mikro Hizmetler Arasındaki Fark

SOA ve Mikro Hizmetler arasındaki farklar şunlardır:

SOA (Hizmet Odaklı Archidoku) Microservices
SOA model, o uygulamadaki tüm servisler tarafından paylaşılan tek bir veri depolama katmanına sahiptir. Mikro hizmet uygulamaları çoğunlukla bir veritabanını veya başka türde bir depolama alanını, ona ihtiyaç duyan hizmetlere ayırır.
Bir SOA uygulamasındaki farklı hizmetler arasındaki iletişim, basit ve anlaşılır yaklaşımlar kullanır. Mikroservisler karmaşık API'ler kullanır.
Uygulama hizmetinin yeniden kullanılabilirliğini en üst düzeye çıkarmaya odaklanmıştır. Daha çok ayrıştırmaya odaklanıldı.
Sistematik bir değişiklik, monolitin değiştirilmesini gerektirir. Sistematik bir değişiklik, yeni bir hizmet oluşturmanıza yardımcı olur.
DevOps ve Sürekli Teslimat popüler hale geliyor ancak henüz ana akım haline gelmiyor. DevOps ve Sürekli Teslimata güçlü vurgu
Doğada monolitik Doğada tam yığın
Çoklu mesaj protokollerini destekler. HTTP, REST veya Thrift API'leri gibi hafif protokolleri kullanır.
Kaynakları hizmetler arasında paylaşmak için tasarlanmıştır. Bağımsız olarak çalışabilen hizmetleri barındırmak için tasarlanmıştır.
Sıklıkla bileşen paylaşımını içerir Genellikle bileşen paylaşımını içermez
Veri depolama alanının hizmetler arasında paylaşılmasını içerir Her hizmetin bağımsız veri depolama alanı olabilir.
Büyük ölçekli entegrasyonlar için daha iyi Küçük ve web tabanlı uygulamalar için daha iyidir.
ESB aracılığıyla iletişim kurar API katmanı aracılığıyla iletişim kurun
Kaynak paylaşımına dayanır Bağlantı için sınırlı bağlama dayanır.
Less dağıtımda esneklik Hızlı ve kolay dağıtım.
SOA'nın teknoloji yığını Microservice'e kıyasla daha düşüktür. Mikro hizmet teknolojisi yığını çok büyük olabilir.
İş birimleri bağımlıdır. İş birimleri birbirinden bağımsızdır.
İki veya üç hizmetten oluşan bir SOA uygulaması. Bir Mikro Hizmetler uygulamasında düzinelerce hizmet bulunabilir.
SOA uygulamaları çok sayıda ticari görevi gerçekleştirmek üzere tasarlanmıştır. Tek bir iş görevini gerçekleştirmek için üretilmiştir.
Dağıtım zaman alıcı bir süreçtir. Dağıtım basittir ve daha az zaman alır.
İş mantığı bileşenleri, tek hizmet etki alanı basit kablo protokolleri (XML JSON ile HTTP) içinde depolanır. API, SDK'lar/İstemcilerle çalıştırılır. İş mantığı, hizmetler arasındaki ayrı katmanlar gibi etki alanları kurumsal hizmet veriyolunda yaşayabilir.
İletişim için kurumsal hizmet veriyolunu (ESB) kullanır Daha az ayrıntılı ve basit mesajlaşma sistemini kullanır
Yazılım boyutu herhangi bir geleneksel yazılımdan daha büyüktür Mikroservislerde Yazılımın boyutu küçüktür
G/Ç işlemlerini gerçekleştirmek için birden fazla ek yüke sahip çok iş parçacıklı Tek iş parçacıklı, çoğunlukla kilitlenmeyen G/Ç işlemleri için Olay Döngüsü özellikleriyle kullanılır
Monolitin değiştirilmesi için sistematik bir değişiklik yapılması gerekiyor Mikro hizmetlerde sistematik değişim yeni bir hizmet yaratmaktır
Uygulama hizmetinin yeniden kullanılabilirliğini en üst düzeye çıkarmaya odaklanın. Ayrışmaya vurgu.
Ortak yönetişim ve standartlar. İnsanların işbirliğine ve seçim özgürlüğüne daha fazla odaklandığı için rahat yönetim.
Dağıtım süreci zaman alıcıdır. Dağıtımı kolaydır ve daha az zaman alır.
Less Ölçeklenebilir mimari. Yüksek ölçeklenebilirliğe sahip mimari.

SOA nedir? Archidoku?

Hizmet odaklı mimari bir yazılım tasarımı tarzıdır. Bir mimari iki bölüme ayrılır

  1. işlevsel yönler ve
  2. hizmet kalitesi yönleri.

İkisini de detaylı olarak inceleyelim:

SOA Archidoku
SOA Archidoku

İşlevsel Yönler

İşlevsel yön şunları içerir:

Nakliye: Bu bileşen, hizmet tüketicisinden gelen hizmet taleplerini hizmet sağlayıcıya ve onlardan gelen hizmet yanıtlarını hizmet tüketicisine taşır.

Hizmet İletişim Protokolü: Servis sağlayıcı ile tüketicinin birbirleriyle iletişim kurmasını sağlar.

Hizmet Descriptiyon: Çağırmak için gereken hizmeti ve verileri açıklar.

Hizmet: Gerçek bir hizmettir.

İş süreci: Bu bileşen, iş taleplerini karşılamak için belirli kurallarla ilişkili, önceden tanımlanmış belirli bir sırayla çağrılan hizmet grubunu temsil eder.

Hizmet Kaydı: Bu kayıt defteri, servis sağlayıcıların hizmetlerini yayınlamak için kullandıkları verilerin açıklamasını içerir.

Hizmet Kalitesi Unsurları

Hizmet kalitesi şunları içerir:

  • Politika: Hizmet sağlayıcıların tüketicilere hizmet oluşturduğu ve sunduğu bir dizi protokoldür.
  • Güvenlik: Tanımlama ve yetkilendirme süreci için gereken protokoller kümesini temsil eder.
  • İşlem: Tutarlı sonuçların garantisini sağlar.
  • Yönetim: SOA'nın bu bileşeni, hizmetleri yönetmek için kullanılan öznitelik kümesini tanımlamanıza yardımcı olur.

Mikro Hizmet Nedir? Archidoku?

Bir iş alanı için geliştirilen küçük otonom servisler koleksiyonu olarak bir uygulama oluşturmaya olanak tanıyan bir mimari geliştirme stilidir.

Mikroservis mimarisiyle geliştirilen bir e-ticaret uygulaması örneğini ele alalım. Bu örnekte, her mikroservis tek bir iş yeteneğine odaklanmıştır. Arama, derecelendirme ve inceleme ve ödeme her birinin kendi örneği (sunucusu) vardır ve birbirleriyle iletişim kurarlar.

Mikro hizmet Archidoku
Microservices Archidoku Örneği

Bu Monolitikte ArchiTüm bileşenler tek bir modülde birleşiyor. Ancak Mikro Hizmetlerde ArchiYapısal olarak birbirleriyle iletişim kuran bireysel modüllere (mikro hizmet) yayılırlar.

Mikro hizmetler arasındaki iletişim, her istek ve yanıt çiftinin bağımsız olduğu durum bilgisi olmayan bir iletişimdir. Dolayısıyla Mikro hizmetler zahmetsizce iletişim kurabilir. Mikro hizmette ArchiVeriler birleştirilir. Her Mikro Hizmetin ayrı bir veri deposu vardır.

SOA'nın Özellikleri

İşte SOA'nın önemli özellikleri:

  • SOA, büyük sistemlerdeki zor entegrasyon sorunlarını çözen arayüzler kullanır.
  • SOA, XML şemasını kullanarak müşteriler, sağlayıcılar ve tedarikçilerle iletişim kurar.
  • SOA, performans ölçümünü geliştirmek ve güvenlik saldırılarını tespit etmek için mesaj izlemeyi kullanır.
  • Hizmeti yeniden kullandığı için yazılım geliştirme ve yönetim maliyeti biraz daha düşük olur.

Mikro hizmetlerin özellikleri

Mikro hizmetlerin temel özellikleri şunlardır:

  • Mikro hizmetlerde modüller gevşek bir şekilde bağlanmıştır
  • Projenin yönetimi de modüler hale getirilebilir.
  • Ölçeklenebilirliğin maliyeti yetersiz
  • Bir uygulamada birden çok teknolojiyi birden çok özellik olarak kullanmak çok kolaydır.
  • Bir gün uygulamanıza erişebilecek cihaz türlerini tahmin edemediğiniz evrimsel sistemler için ideal bir hizmettir.

SOA'nın Avantajları

İşte SOA'nın artıları/faydaları

  • Herhangi bir hizmeti düzenlemek ve güncellemek kolaydır
  • Hizmetler aynı dizin yapısına sahiptir ve bu da tüketicilerin hizmet verilerine her zaman aynı dizinden erişmesine olanak tanır.
  • Hizmetler diğer uygulamalarla ortak bir dil kullanarak iletişim kurar, bu da platformdan bağımsız olduğu anlamına gelir
  • Hizmetler, tam teşekküllü uygulamaya kıyasla genellikle küçük boyuttadır. Bu nedenle bağımsız hizmetlerde hata ayıklamak ve test etmek daha kolaydır.
  • SOA, mevcut bir sistemin hizmetinin yeniden kullanılmasına ve dönüşümlü olarak yeni sistemin oluşturulmasına olanak tanır.
  • Yeni iş gereksinimlerini karşılamak için yeni hizmetler eklemeyi veya mevcut tesisleri yükseltmeyi teklif eder.
  • Bir hizmetin performansını, işlevselliğini artırabilir ve sistem yükseltmesini kolayca yapabilirsiniz.
  • SOA farklı dış ortamları ayarlayabilir veya değiştirebilir
  • Firmalar mevcut uygulamaları değiştirmeden uygulama geliştirebilmektedirler.
  • Çok sayıda kodla karşılaştırıldığında bağımsız hizmetleri test edebileceğiniz ve hata ayıklayabileceğiniz güvenilir uygulamalar sunar.

Mikro hizmetlerin avantajı

Mikro hizmetleri kullanmanın artıları/yararları şunlardır:

  • Geliştiriciler için anlaşılması kolay, daha kolay mimari desen
  • IDE daha hızlı olduğundan geliştiricilerin daha hızlı ve üretken olmasını sağlar
  • Web kapsayıcısı daha hızlı başlar; bu, dağıtım ve geliştirme sürecinin hızlandırılmasına yardımcı olur.
  • Ekibin hizmetlerini diğer tüm ekiplerden bağımsız olarak geliştirmesine, dağıtmasına ve ölçeklendirmesine olanak tanır.

SOA'nın dezavantajları

İşte Servis Odaklı mimarinin eksileri/dezavantajları:

  • Tüm girişler servise gönderilmeden önce doğrulanmalıdır.
  • SOA insan kaynakları, geliştirme ve teknoloji açısından maliyetli bir hizmettir.
  • Bazı web servislerinin sık sık mesaj ve bilgi gönderip alması gerekir, bu nedenle günde bir milyon isteğe kolayca ulaşır.
  • SOA yüksek yatırım maliyeti gerektirir
  • Bir hizmet başka bir hizmetle etkileşime girdiğinde daha fazla ek yük oluşur, bu da yanıt süresini artırır
  • SOA hizmeti GUI (grafik kullanıcı arayüzü) uygulamaları için uygun değildir, bu nedenle SOA'nın yoğun veri alışverişine ihtiyacı olduğunda daha karmaşık hale gelecektir.

Mikro Hizmetlerin Dezavantajları

Mikro hizmetlerin eksileri/dezavantajları şunlardır:

  • Monolitik uygulamalar oluşturmak için geliştirilmiştir, dolayısıyla dağıtılmış uygulamaların geliştirilmesine yönelik açık bir destek sağlamaz.
  • Test yapmak daha zor
  • Geliştiricilerin hizmetler arası iletişim mekanizmasını uygulaması gerekir.
  • Birden fazla hizmeti kapsayan kullanım senaryolarının uygulanması, ekipler arasında koordinasyon gerektirir.
  • Farklı iş görevleri için her zaman çeşitli sunucu alanlarını korumanız gerektiğinden mikro hizmet maliyetlidir

Hangi ArchiDoku Daha mı İyi?

SOA, büyük ve karmaşık iş uygulamaları için ideal bir mimari yöntemidir. Birçok farklı uygulama ile entegrasyon gerektiren ortamlar için en uygunudur.

Ancak, iyi tanımlanmış bir işlem akışına sahip iş akışı tabanlı uygulamaların SOA mimari kalıplarının yardımıyla uygulanması zordur. Bu nedenle küçük uygulamalar da ara yazılım mesajlaşma bileşenlerine ihtiyaç duymadıkları için SOA için ideal değildir. Öte yandan, mikro hizmet kalıbı daha küçük ve iyi bölümlenmiş web tabanlı sistemler için oldukça uygundur.