Kurumsal bir mimaride hangisini kullanmalıyım?: ESB vs API Gateway

Ertugrul Aslan
Apinizer
Published in
3 min readApr 12, 2021

--

Dijital dönüşüm veya iç ve dış paydaşları ile entegrasyon yolculuğuna çıkan kurumlar API/Web Servis’lerle yoğun bir şekilde çalışmaya başladıklarında genellikle API Gateway çözümlerine bakmaya başlarlar. Ancak, mimaride bir API Gateway konumlandırmadan önce hep aşağıdaki soru akla gelmektedir.

“ESB’ye (Kurumsal Servis Yolu) sahipsem, neden API Gateway ve/veya API Yönetim Platformu’na ihtiyacım var? İşlevlerin çoğu aynı görünüyor!

Öncelikle, API Gateway ve ESB’nin birbirlerinden farklı çözümler olduğunu ve bu iki platformu birbirleriyle kıyaslamanın yanlış olacağını belirtelim. Ancak her iki çözümde de ortak ya da birbirine çok benzeyen bazı özellikler olduğundan, iki platformdan hangisinin kullanılacağı kafa karışıklığına yol açmaktadır.

API Gateway

Bir API Gateway, istemcilerden gelen tüm API çağrılarını alır, bunları Backend API’lara yönlendirir. Böylece Kimlik Doğrulama, Güvenlik politikası uygulama, Trafik Yönetimi politikaları, Yük dengeleme, Önbellek yönetimi, Mesaj dönüşümü, Protokol dönüşümü, Loglama, Hata giderme ve benzeri bütün ihtiyaçların merkezi bir noktadan ve minimum eforla karşılanabilmesini sağlar.

Daha fazla bilgi için şu yazıya bir göz atabilirsiniz.

ESB (Kurumsal Servis Yolu)

ESB, birçok sistemin birbiriyle sorunsuz bir şekilde entegre edilebildiği bir mimari çözümdür. Mevcut uygulamaları ve kaynakları bir araya getirerek yeni servisler sağlar.

ESB’ler temelde VETRO (validate, enrich, transform, route/operate) örüntüsünü uygular. Daha anlaşılır bir ifadeyle; mesaj doğrulama (validation), zenginleştirme (enrichment) ve dönüşüm (transformation), servisler arası yönlendirme ve orkestrasyon yapar.

Orkestrasyon, ESB’nin API Gateway’den en önemli farkıdır. Bunu kabaca bir servisten alınan yanıtın başka bir servise gönderilecek isteğin hazırlanması için kullanılabilmesi, bu sırada iş mantığı işletilebilmesi ve mesajlar üzerinde zenginleştirme ve dönüşümlerin yapılabilmesi olarak özetleyebiliriz. Bu özellik, ESB’nin nasıl konumlandırıldığına bağlı olarak mimariye güç ya da zafiyet olarak yansır.

ESB’nin bir diğer önemli özelliği çok fazla sayıda ve farklı protokolleri desteklemesi, böylece hemen her uygulama/kaynak arası entegrasyonu sağlayabilmesidir. SMTP, HTTP, JMS, JDBC, FTP, SFTP, File seçeneklerine ek olarak birçok 3. parti adaptör örnek olarak verilebilir.

Not : ESB, yeni iş süreçleri oluşturmak için yeni ve eski kaynakları bir araya getirir. API Gateway, bu servislere erişimi sağlamanın ve yönetmenin bir çözümüdür.

Peki API Gateway mi ve ESB mi? Kuruluşumun hangisine ihtiyacı var?

Kurumsal bir mimaride, “API Gateway mi yoksa ESB mi kullanmalıyım?” arayışına girenler genelde aşağıdaki soruları sormaktadır.

  1. Benim zaten kullandığım bir ESB sistemim var, API Gateway niye kullanayım?
  2. API Gateway benim mimarimde nerede duracak?
  3. ESB ile API Gateway çok benzer iş yapıyor. Hangisini kullanmalıyım?

API Gateway’lerin yaygınlaşmasıyla, Kurumsal Mimarlar entegrasyon sorunlarını çözmek için yeni bir mimari çözüme sahip olmuştur. Hatta API Gateway’lerin “hafif ESB” olarak anıldığını sık sık duymuştum. Bunu da akılda tutarak; ikisi arasında bir seçim yapabilmeniz için aşağıdaki sorular yardımcı olabilir.

Not: Tablodaki kolonlar işin hangi çözümle ele alınmasının daha doğru olacağını gösterir. Bununla birlikte, birçok API Gateway yazılımının ESB kolonunda ya da ESB yazılımlarının API Gateway kolonunda görülen işleri yapabildiğini unutmayın.

Özetle aşağıdaki örnek mimari yapı bize her şeyi net bir şekilde gösteriyor. Yani API Gateway ve ESB’nin mimaride nasıl konumlandırılması gerektiği ile ilgili bir fikir verecektir.

--

--