Api Gateway Nedir?

            API GATE WAY NEDİR ?

   Özellikle mikroservis mimarisinin trendiyle monolitik uygulamalar yerini birbirleriyle konuşan onlarca hatta yüzlerce servisten oluşan yapılara bıraktı. Sistemin onlarca veya yüzlerce servise bölünmesi, getirdiği kolaylıkların yanısıra farklı gündemleri de ortaya çıkardı. Özellikle mikroservis mimarisi için konuşursak, uygulamalarımızı bir çok servise böldüğümüzü ve herbir servisin kendi databaseini oluşturduğumuzu varsayalım. Mikroservis mimarisinin en belirgin özelliğini yerine getirmiş olduk. Peki mikroservis mimarimiz tam anlamıyla tamamlandı mı? Tabiki de hayır.. Bu servislerin authorizationının ve authenticationunun nasıl yapılacağı, bu kadar çok servisin nasıl bir yapıda monitor edileceği, ortak configurasyonların nasıl yönetileceği, requestin nasıl trace edileceği buınarın hepsi mikroservis mimarisi adına düşünülmesi gereken şeyler. Konuyu dallandırıp budaklandırmadan, bizim bu konseptlerden şuan için ilgilendiğimiz kısmına dönelim.

Apı gate wayin çıkış noktası da tam olarak budur. Probably the most obvious approach to communicating with microservices from the external world is having an API Gateway. Eğer ki clientların servislerimize ellerini kollarını sallayarak girmelerini istemiyorsak, öncesinde bir entry point olmasını ve buradan geçmelerini istiyorsak API gateway kullanabiliriz. API gatewayin birçok işlevi olmasının yanı sıra temel işlevi clienttan requestleri alıp onları uygun servislere yönlendirmektir. Bir requestle arkada birden çok servis çağırıp sonuçları toplayıp dönebilir.api gateway ile ilgili görsel sonucu

API GATEWAY İLE NELER YAPILABİLİR?

  • Authentication – Authorization : Servislerimize tek giriş noktası api gatewayimiz olacağından bu servislerin authentication ve authorizationunu api gateway üzerinden yapabiliriz. Konuya değinmişken Authentication ve Authorization kavramlarını kısaca tekrar hatırlatacak olursak. Authenctication Kimlik Doğrulama yani kimin uygulama-servislere erişebileceği , authorization ise yetkilendirme yani ulaştıktan sonra içeride neler yapabileceği yani nelere yetkisi olacağıdır.
  • Logging : Api gateway üzerinden tüm servislerimize gelen request ve responseları kimin caller’ına kadar loglayabiliriz.
  • Response Caching  : API gateway üzerinden enpointlerinizin responselarını cachleyebilirsiniz. Böylece, endpointe giden call sayısını düşürebiliriz.
  • Routing : API gateway ile clienti ilgili routelara yönlendirebiliriz.api gateway ile ilgili görsel sonucu

Yukarıdaki maddelere ihtiyaçlara göre maddeler ekleyebilir ve çeşitledirilebiliriz. Genel olarak API GATEWAY’ın neler yapacağını tanımlamak istersek servislerimizdeki cross-cutting concernleri api gateway üzerinden yönetebiliriz diyebiliriz.

Apigateway’in Avantajları

  • Clientları, uygulamanın microservislere nasıl bölündüğü hususunda düşünmekten izole eder.
  • Sizin microservisleriniz sizin ana domainler ile yazdığınız microservislerdir. Bu servisleri kullanarak client için en uygun apiyi API GATEWAY üzerinden hazırlayıp sunabilirsiniz.
  • Request/ Response sayısını azaltır. Örneğin, API Gateway, müşterilerin tek bir request-response ile birden fazla servisten data almalarını sağlar. Daha az istek, daha az ek yük anlamına gelir ve kullanıcı deneyimini geliştirir.
  • Authenctication, Autherization, Logging, Security, Routing gibi cross cutting concern kavramları tek elden yönetebilmeyi sağlar.

Apigateway’in Dezavantajları

  • API networkü üzerine bir ek katman koyarak yanıt süresinin artmasına sebep olabilir.  Ancak çoğu uygulama için fazladan bir gidiş dönüş maliyeti önemsizdir.
  • Increased Complexity – API gateway  development’i, deploy’u ve maintenance’ı gereken ayrı bir projedir.
  • Single entry point of failure : Api gatewayler iç microservis dünyanıza giriş yapılan tek kapı olduğundan çöktüğü zaman bir anda tüm sistem aksaklığa uğrayabilir.

You may also like...

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir