3 Şubat 2023 Cuma

Load Balancing, Api Gateway, Backend For Frontend ( BFF )

API Gateway , uygun mikro servise yönelik 𝗿𝗼𝘂𝘁𝗶𝗻𝗴 isteklerine odaklanırken, Load balancer, bir grup backend serverında eşit şekilde 𝗱𝗶𝘀𝘁𝗿𝗶𝗯𝘂𝘁𝗶𝗻𝗴 requestlerine odaklanır.

API Gateway ve Load Balancer, gelen requestleri yönetmek ve bir sistemin performansını artırmak için bir bilgisayar ağında kullanılabilen altyapı türleridir. Ancak, farklı şekillerde çalışırlar ve farklı amaçlara hizmet ederler.

Load Balancing,

  • Bilinen tek bir IP adresine gönderilen requestleri handle etmek ve trafiği birden çok backend servera dağıtmak için kullanılan bir kavramdır. Backend serverlar arasında etkili bir trafik yönlendirme algoritması kullanan load balancerlar, dinamik trafik ihtiyaçları genelinde backend layerın performansının ve resiliency korunmasını sağlar.
  • Çalışan bir hizmetin kullanılabilirliğini belirlemek için health checks  kullanan load balancerlar, müşterileri requestlerini tüm unhealty downstreamden yalıtır. Yani amaç Performasn ve Availabilityi sağlamak.




Api Gateway

API Gateway, mikroservis mimarisinde tüm mikroservislerin dış dünyayla olan iletişimini yöneten merkezi bir giriş noktasıdır. API Gateway, kullanıcı taleplerini mikroservislere yönlendirir, yanıtları toplar ve tek bir yanıt olarak kullanıcılara iletir. Bu yapı, mikroservislerin dış dünyadan izole edilmesini ve sistemin daha güvenli, yönetilebilir ve performanslı çalışmasını sağlar. API Gateway, mikroservis mimarisinin temel bileşenlerinden biridir ve güvenlik, yük dengeleme, izleme, veri dönüştürme gibi pek çok işlevi üstlenebilir.
  • Bir dizi micro servis için tek bir giriş noktası görevi gören bir sunucudur.(server)
  • Client requestlerini alır, bunları uygun mikro servislere iletir ve  responseyi clienta döndürür.
  • API Gateway  routing, authentication ve rate limit  gibi görevlerden sorumludur. Böylece micro servislerin kendi işlerine odaklanmasını sağlar ve sistemin genel performansını ve ölçeklenebilirliğini arttırır..

𝗥𝗼𝘂𝘁𝗶𝗻𝗴: API Gateway , Clientlardan requestleri alır ve bunları uygun mikro hizmete yönlendirir. Böylece clientlar çeşitli micro servisler için tek bir giriş noktası üzerinden erişim sağlar ve sistemi basitleştirilmiş olur.

𝗔𝘂𝘁𝗵𝗲𝗻𝘁𝗶𝗰𝗮𝘁𝗶𝗼𝗻: API Gateway , Clientların kimliğini doğrulamak ve mikro servisler için erişim denetimi policyleri uygulamak için kullanılabilir. Böylece sadece yetkili clientlar mikro servislere erişebilmesini sağlamaya ve yetkisiz erişimi önlemeye yardımcı olur.

𝗥𝗮𝘁𝗲 𝗹𝗶𝗺𝗶𝘁𝗶𝗻𝗴: Bir API Gateway  ile mikro servislere client erişimini sınırlayabilirsiniz. Böylece sürekli request gönderme saldırılarını ve diğer kötü niyetli davranış türlerini önlemeye yardımcı olabilir.

𝗟𝗼𝗮𝗱 𝗯𝗮𝗹𝗮𝗻𝗰𝗶𝗻𝗴: API Gateway, Gelen requestleri bir mikro servisin birden çok intancesi arasında dağıtarak sistemin daha fazla sayıda requesti işlemesini sağlar ve genel performansını ve ölçeklenebilirliğini geliştirir.

𝗖𝗮𝗰𝗵𝗶𝗻𝗴: Mikro servislerden gelen responseleri cache alarak mikro servislere gelen  requestlerin sayısını azaltır ve sistemin genel performansını iyileştirir.

𝗠𝗼𝗻𝗶𝘁𝗼𝗿𝗶𝗻𝗴: Requestlerle ve responselerla ilgili metrikleri ve diğer verileri toplayarak mikro servislerin performansına ve davranışına ilişkin değerli içgörüler sağlayabilir.Böylece  sorunları tanımlamaya ve teşhis etmeye ve sistemin genel güvenilirliğini ve dayanıklılığını geliştirmeye yardımcı olabilir.



Gerçek Dünya Senaryosu
Bir Mikroservis Mimarisi düşünelim:

  • Load Balancer, trafik yükünü birden fazla API Gateway'e bölebilir.

  • API Gateway, kimlik doğrulama ve yönlendirme işlemlerini yaparak, trafiği ilgili mikroservislere dağıtabilir.

Yani Load Balancer, genel sistem trafiğini yönetirken; API Gateway, API'lerin daha akıllı bir şekilde yönetilmesini sağlar.

API Gateway, mikroservis mimarisinde kullanıcı isteklerinin güvenli, hızlı ve etkin bir şekilde yönetilmesini sağlar. İstemcilerle mikroservisler arasındaki tüm işlemlerin tek bir noktadan yönetilmesi, güvenlik, izleme ve performans gibi alanlarda büyük avantajlar sunar. API Gateway’in sağladığı güvenlik ve yük dengeleme gibi özellikler, mikroservis mimarisinin karmaşıklığını azaltırken, sistemin daha ölçeklenebilir ve yönetilebilir olmasını sağlar. Ancak, API Gateway yapısını dikkatli planlamak ve ölçeklenebilir bir çözüm seçmek bu yapının performansını ve güvenilirliğini artıracaktı

Backend For Frontend

Bu model, aynı resourceyi  kullanan, farklı ihtiyaçlara sahip birden fazla client interfacesi  olduğunda iyidir. BFF modelinin gerçek dünyadaki bir örneği, hem Web hem de mobil clienta sahip bir uygulamadır. Her birisi için ayrı bir Api Gateway olacak şekilde ayarlanır. Örneğin Product Detay sayafası için hem web hemde mobil tasarlanacığını düşünelim. Bu durumda web sayfasında mobile göre daha çok detay bilgi bulunacağını düşünürsek iki istemcinin de aynı apiyi kullanması doğru olmaz. Burada mobil ve web için farkli gatewaylerin olması daha doğru olur. BFF kalıbı, her bir istemcinin farklı ihtiyaçları olduğu durumlarda çok etkilidir, çünkü her BFF istemciye özel optimize edilmiş veri sağlamak için çalışır.

BFF modeli, API ağ geçidi modelinin bir çeşidi olan mimari bir paradigmadır.



Api Gateway



.

BFF ve API Gateway Arasındaki Farklar

API Gateway ve BFF, her ne kadar istemciler ve mikroservisler arasındaki veri akışını düzenlemek için kullanılan katmanlar olsa da, temel işlevleri ve uygulama alanları farklıdır:

  • API Gateway, tüm mikroservisler için tek bir giriş noktası sunar. Güvenlik, yük dengeleme ve genel veri dönüşüm işlemlerini gerçekleştirir.

  • BFF  ise, her bir istemci türü için özel olarak yapılandırılmış backend işlevselliği sağlar. Her istemciye özgü iş mantığı, veri dönüşümü ve güvenlik politikaları BFF üzerinden yönetilir.

Bu iki yapı bir arada kullanılabilir. API Gateway, genel yönetim ve güvenlik sağlarken, BFF her istemciye özel iş mantığını üstlenir.


BFF’lerin API Gateway ile entegre çalışmasını sağlayarak tüm veri akışını daha düzenli hale getirin. API Gateway, istemcilerden gelen talepleri BFF’lere yönlendirirken, istemci türüne göre hangi BFF’nin kullanılacağını belirleyebilir

Reference 

Hiç yorum yok:

Yorum Gönder