API Gateway Çözümü KONG Nedir?

API Gateway Nedir?

API Ağ Geçidi, bir dizi protokol aracılığıyla ve genellikle RESTFUL uygulama programlama arabirimleri (API) aracılığıyla mobil, web ve diğer harici istemciler için kullanılabilir arka uç hizmetleri sağlayan “ara katman yazılımıdır”. Bir API Ağ Geçidi, gerekli mantığın çoğunu istemciden ağ geçidine taşıyarak uç noktaları geliştirmek, güvenliğini sağlamak, yönetmek ve ölçeklendirmeyi çok daha basit hale getirir. Api Gateway ise servisler tarafından sağlanan hizmetlerin hızlı ve güvenli bir şekilde yaratılmasını, yayınlanmasını ve sürdürebilirliğini sağlamaktadır. Birçok temel ihtiyaçların Api Gateway tarafından sağlanması yazılımcının bulut üzerinde çalışan uygulamalarını geliştirmelerinde fazlasıyla yardımcı olmaktadır.

API Gateway çözümü olarak KONG

Sürekli gündemde olan mikroservis mimarilerine, geçiş çalışmalarında doğrulama, güvenlik, performans vb. birçok konuda çözüm üretmemiz gerekiyor. Farklı dillerde servisler geliştirdiğimiz için dil bağımsız çözümler veya ortak kullanılabilir çözümlere daha çok yönelmek gerekiyor.

 

Api Gateway’in en başarılı örneklerinden biri olan Kong açık kaynak kodlu ve ölçeklenebilir bir üründür.  Kong kullanımının avantajı, servislerde sadece yapmak istediğiniz işlemleri kodlayarak gerisini düşünmüyoruz. Client tarafından doğrudan servis değil; Kong endpointi çağrılır ve bu endpoint ilgili servise yönlendirme yapar.

 

Yönlendirme yaparken sağladığı pluginler ile kimlik doğrulama, güvenlik, istek boyutu limiti, cevap boyutu limiti ve loglama gibi birçok konuda çözümler sunuyor. Eğer istekleriniz için pluginler yetersiz kalır ise kendinizde plugin geliştirebilirsiniz.

Eğer KONG’un sitesinden adımları uygulayarak kurulumu gerçekleştirdiyseniz yapmanız gereken yine dokümantasyonu takip ederek herhangi bir dilde geliştirmiş olduğunuz servis endpontinizi KONG’a eklemek. Artık ilk endpointiniz KONG üzerinde tanımlandı, kong endpointi üzerinden servisinize erişebilirsiniz.

Örneğin ABC servisinizi KONG’a eklemiş olduğunuzu varsayalım. Bu servis bazında bazı pluginler kullanalım.

 

ABC servisine clientlerım elini kolunu sallaya sallaya gelmesin diyorsanız Kong size şuanda Basic Authentication,Key Authentication, JWT gibi 6 farklı çözüm sunuyor. Pluginler sayfasından kullanmak istediğimiz authentication çözümünü seçip adımları takip ederek ABC servisimize bir authentication tanımlayabiliriz. Yine pluginler sayfasından bir logging plugini tanımlayabiliriz. Bu pluginlerden bir tanesine özel olarak değinmek istiyorum Correlation ID plugini, header datanıza bir corelation id (HTTP üstbilgisinde iletilen benzersiz bir kimlik kullanarak istekleri ve yanıtları ilişkilendirmeyi sağlar) ekliyor. CorrelationId’yi servis dünyasında kesinlikle kullanmalıyız, bu ekosistemde client’ın yaptığı bir istek genellikle birden fazla servis tarafından işleniyor (çok basit bakarsak sipariş verirken ödeme servisi ödemeyi alır, aynı anda product servisi ilgili ürünün stok sayısını azaltır).Header datasına eklediğimiz bu veri requestin hareketini izlememize olanak sağlarken, herhangi bir exception durumunda hangi serviste nereden nereye giderken neler olmuş bilgisini request bazlı oluşturulan bu id üzerinden bulmamızı sağlar.

 

bir yorum bırakın