Micro Services'ler Nedir Ve Niçin Kullanmalıyım ?

Yeni bir yazılım projesinin planlama aşamasındaysanız, monolitik bir sistemi daha küçük alt sistemlere ayırmaya çalışıyorsanız veya sadece micro services hakkında bir şey öğrenmek istiyorsanız doğru yere geldiniz.

Micro Services nedir ve neden kullanayım?

Bir micro services mimarisi, farklı görevleri genellikle tek bir yerden birden çok services’e dağıtır. Ama neden monolitik bir mimari yerine services’leri kullanalım ?

Micro services kullanmak zorunda değilsiniz. Küçük ve bazı orta ölçekli projeler için bu, aşırı mühendislik olarak kabul edilebilir. Aşağıdaki şekil, micro services ve monolitlerin üretkenlik ve karmaşıklıkla nasıl ilişkili olduğunu göstermektedir:

Düşük karmaşıklığa sahip sistemler, micro services mimarisinden faydalanmaz

Genel olarak, micro services işlevselliği, monolitik mimari yaklaşımına göre çeşitli avantajlara sahiptir:

  1. Esneklik : Bir micro services bağımsız olarak dağıtılabildiğinden teslimat süresi uzatmaları önemli ölçüde azalır open-closed principle izlediğinizi varsayarsak bu büyük bir karmaşıklığı azaltır.

Micro Services Tasarım Modelleri

Micro services mimarileri diğer diğer mimarileri arasındaki bariz farklar, seçilen teknoloji ve entegrasyon stilleridir. JSON web service’i ile REST’e dayalı birçok mikro services vardır, bu nedenle birçok geliştirici bunun bir mikro service oluşturmanın tek yolu olduğunu düşünür. Aslında, sadece farklı yaklaşımlar değil, aynı zamanda, özellikle bir çağrı yolunda çok sayıda services varsa, senkronize iletişimin bir anti-kalıp olduğu düşünülür. Popüler asenkron protokoller, AMQP (Advanced Message Queuing Protocol) veya Apache Kafka olacaktır. Öte yandan, HTTP tabanlı iletişim, mesajlaşma kuyruğundaki emsallerinden daha fazla aktarım hızı sunar ve daha düşük kaynak gereksinimlerine sahiptir.

Bununla birlikte, özellikle birden fazla protokole sahip olabileceğiniz için, yalnızca iletişim protokolünü seçmekten çok daha fazlası var. Örneğin başka bir konu, sistemin mimarisini etkileyen kesişen endişelerdir. Dikkate alınması gereken bir diğer husus, genellikle bir micro services ortamında çok büyük bir konu olan depolamadır. Services için veritabanlarının gerekli olduğunu varsayarsak, aşağıda özetlediğim iki seçenek var.

Services başına veritabanı

Her micro services, şemalar ve tablolar dahil olmak üzere kendi veritabanına sahiptir ve bundan sorumludur. Ayrıca, her service yalnızca sahip olunan depolara erişebilir.

Veritabanları services’ler arasında paylaşılmaz

Services’ten sorumlu ekip, ideal olarak ihtiyaçlara ve bilgilerine en uygun veritabanını seçmelidir. Bireysel düzeyde, veri tabanının karmaşıklığı düşüktür, nispeten az veri olmalıdır ve anlaşılması kolaydır.

Paylaşılan veritabanı


Paylaşılan veritabanı yaklaşımı olan bir micro services bir veritabanını paylaşıyorlarsa gerçekten bağımsız olmadıklarından sık kullanılmaz. Kesinlikle ölçeklenebilirlikten ödün veriyorlar. Ancak, sistem bir monolit olarak başlar ve yıllar süren operasyondan sonra bir micro services mimarisine dönüşürse ne olur? Ortaya çıkan bir problem, verilerin bu kadar kolay bölümlere ayrılamamasıdır. Kendinizi benzer bir durumda bulursanız, müşteriniz bir noktada eski yazılımı bitirip ve yalnızca yeni micro services’ler ile çalışmak istiyorsa, o zaman services başına veritabanı yaklaşımına geçebilirsiniz .

API Gateway

Bir API Gateway arasında bir katman uyguladığı için önceki sorunu da çözebilir. Ve bu gönderiye göre , eski uygulama kodunu kademeli olarak değiştirmek için kullanılabilir. Bununla birlikte, bu reverse proxy’nin arkasındaki asıl amaçlar :

  • Micro services, doğrudan “halka” maruz bırakılmamalıdır, çünkü bunların her biri gelişmiş güvenlik ister ve kötüye kullanımın önlenmesini gerektirir. Client ve services’lerin arasında bir reverse proxy varsa, yetkilendirme ve aktarım şifrelemesi ( TSL ) gibi sorunların yalnızca bir kez ele alınması gerekiyor.

Micro service bir reverse proxy’nin arkasına gizleyin

Bu bir API Gateaway’nin hatalarını tamamen çözmez, ancak büyük bir bölümünü çözebilir. Micro services’iniz muhtemelen log dosyaları yazmaya devam edecek, yine de yetkilendirme mantığı içerebilir ve kesinlikle kendi exception işlemesine sahip olacaktır. Ancak, belirli iş kapasitesi için gerekli olana geçirilebilir.

  Alıntı Yap

KARABAY A, 2022 . Micro Services'ler Nedir Ve Niçin Kullanmalıyım ?,

https://www.karabayyazilim.com/blog/micro-servicesler-nedir-ve-nicin-kullanmaliyim-2022-01-23-115456

(Erişim Tarihi : 23 Ocak 2022).


  Bu yazıyı paylaş

Yorumlar (0)

Yorum Yap

Abone Ol
Blog yazılarımdan ilk siz haberdar olmak için email bültenine kaydolun