En son kararlı sürüm için lütfen Mirket Kılavuzu v4.9.x!

Giriş

Mirket, API yönetimi ürünüdür. Web uygulaması programlama arayüzleri (API’ler) oluşturma, yayınlama, kullanım ilkelerini uygulama, erişimi kontrol etme, abone topluluğunu besleme, kullanım istatistiklerini toplama ve analiz etme ve performans hakkında raporlama sürecidir . API Yönetimi bileşenleri, geliştirici ve api sağlayıcı topluluğunu desteklemek için mekanizmalar ve araçlar sağlar.

Modern yazılım mimarilerinden mikroservis mimarisi için API Gateway, istemcilerle backend servisleri / mikro servisler arasındaki API yönetimini sağlar. API Gateway, API isteklerini alarak çeşitli kurallara göre uygun servislere yönlendiren bir ters vekil sunucusu (reverse proxy) olarak çalışır.

Mirket ürünü aşağıdaki bileşenlerden (2.2) oluşmaktadır. Bileşen özellikleri versiyonlara göre güncellenip, değişebilir. Değişimler majör olmadıkça geriye dönük desteklenmektedir. Her versiyon güncellemesi öncesi, sürüm notu paylaşılır.

Majör değişikliklerde geriye dönük destek sağlanmamaktadır.

Versiyon değişiklik yöntemi (semantik versiyonlama yöntemi uygulanmaktadır)

  • Major : 1.0.0 → 2.0.0

  • Minor : 1.0.0 → 1.1.0

  • Patch : 1.0.0 → 1.0.1

Özellikler

  • API Kullanıcısı tanıma (authentication → ip, header, basic auth, no-auth for firewall based)

  • API Kullanıcısı - API yetkilendirme (authorization)

  • IP bazlı kısıtlama, her API kullanıcısı için ayrı IP adresi tanımlama

  • REST + SOAP API desteği

  • API ve API kullanıcısı bazlı istatistikleri tutma ve grafik olarak gösterme

  • Anlık istatistik hesaplama ve near real-time gösterim

  • Çoklu Veritabanı desteği (Mongodb, Oracle, MysQL DB)

  • Basic authentication dahil olmak üzere farklı header/url authentication yapılarını destekler

  • Custom request header tanımlama ve header’ların farklı veri kaynaklarından beslenebilmesi

  • API kullanıcısı bazlı API’ye gelebilecek istekleri kısıtlama (throttling)

  • Farklı sunuculara round robin istekleri dağıtabilme (loadbalancing)

  • Merkezi konfigürasyon (openshift/kubernetes configMap veya config-server uygulaması)

  • Mikroservis mimarisi

  • Ön yüzde farklı rollerde kullanıcılar portali kullanabilir

  • Altyapı desteği (Standalone jar, Docker, Kubernetes, Openshift)

Bileşenler

Ağ Geçidi (Gateway) : API ön ucu görevi gören, API isteklerini alan, kısıtlama ve güvenlik ilkelerini uygulayan, istekleri arka uç hizmetine iletir ve ardından yanıtı istek sahibine geri iletir. Ağ geçidi istekleri ve yanıtları anında düzenlemek ve değiştirmek için bir dönüştürme motoru içerir(versiyon 4.x.x ile birlikte). Ağ geçidi, analitik verileri periyodik olarak toplar ve önbelleğe alma sağlama gibi işlevler de sağlayabilir. Ağ geçidi, kimlik doğrulama, yetkilendirme, güvenlik, denetim ve mevzuat uyumluluğunu desteklemek için işlevsellik sağlar.

Katalog : API sağlayıcılarının, API’leri tanımlamak, API belgeleri oluşturmak, API’ler için erişim ve kullanım politikaları aracılığıyla API kullanımını yönetmek, güvenlik testi dahil olmak üzere API’nin yürütülmesini test etmek ve hata ayıklamak için kullandığı araçlar topluluğu ve test paketleri oluşturma, API’leri üretim, hazırlama ve kalite güvence ortamlarına dağıtma ve genel API yaşam döngüsünü koordine etme işlemleri yapılabilir.

UI : Operasyon / Geliştirici /API Kaynakları : Katalog işlemlerinin arayüzüdür. API kullanıcıları için belgeler, öğreticiler, örnek kod, etkileşimli bir API konsolu, İstemci Kimliği gibi kullanıcı anahtarlarını alınması işlemleri yapılır.

Raporlama ve analitik : API kullanımını ve yükünü (genel isabetler, tamamlanan işlemler, döndürülen veri nesnesi sayısı, işlem süresi ve tüketilen diğer dahili kaynaklar, aktarılan veri hacmi) izleme işlevinin yakın gerçek zamanlı yada periyodik olarak raporlanmasını sağlar. Raporlama ve analitik işlevselliği tarafından toplanan bilgiler, API sağlayıcısı tarafından bir kuruluşun genel sürekli iyileştirme süreci içinde API teklifini optimize etmek ve API’ler için yazılım Hizmet Düzeyi Sözleşmelerini tanımlamak için kullanılabilir.

Hazelcast : Dağıtık hesaplama, ön bellek/local bellek, kilitleme, kuyruklama işllemleri için kullanılır.

Veritabanı : Katalog, konfigürasyon ve metik bilgilerini deplomaktan sorumludur.

(Opsiyonel) Ödeme : Ticari API’lere erişim için ücretlendirmeyi destekleyen işlevselliktir. Bu işlevsellik, kullanıma, yüke ve işlevselliğe dayalı olarak fiyatlandırma kurallarının ayarlanması, ilgili ödeme kanalına göre entegre edilmesi, CDR üretilmesi desteği içerebilir. Kuruma göre ödeme yöntemleri/akışları özel olarak geliştirilir.

Yazılım Mimarisi

Mirket Yazılım Mimarisi
Figure 1. Mirket Janissary Mimari

Yol Haritası

  • Cloud Aware - Yeniçeri (4.x.x) - Gelecek yayınlama tarihi (Şubat 2022)

    • Veri kaynağının servis olarak sağlanması (rdbms : oracle, mysql, mssql, postgresql, no-sql : mongo, cassandra)

    • Asenkron API özelliği (kısıtlı kullanım)

    • Notifikasyon özelliği

    • Veri dönüşümü (istek/cevap)

    • Çoklu veri kaynağının birleştirilmesi (composite-api)

    • Özellik bazlı yük dağılımı

    • Operasyon / Geliştirici için zenginleştirilmiş dokümentasyon

    • Geliştirici için api test özelliği

    • Cache özelliği

    • Kural bazlı api alarm üretilmesi özelliği

    • Örnek kod üretilmesi özelliği

    • Çoklu domain desteği (organizasyon, api bazlı)

    • Sistem, API bazlı log yönetimi özelliği

    • Özel hata kodları özelliği

    • API bazlı kural özelliği

    • Dinamik kod yazımı özelliği (javascript, groovy)

    • Organizasyon bazlı izole ortak kod/fonksiyon çağırma özelliği

    • SIEM loglama

  • Cloud Aware (3.x.x) - Yayınlanma tarihi (Şubat 2021)

    • Veri kaynağının servis olarak sağlanması ( no-sql : mongo)

    • Çoklu domain desteği (sistem bazlı)

  • Cloud Aware (2.x.x) - Yayınlanma tarihi (Nisan 2020)

    • Anlık istatistik hesaplama ve near real-time gösterim

    • Anonim authentication desteği

    • Altyapı desteği (Docker, Kubernetes, Openshift vb. orkestrasyon aracı desteği) • Çoklu Veritabanı desteği (Mongodb, Oracle, MysQL DB)

    • Teknoloji upgrade yapıldı.

    • Config server kaldırıldı.

    • Eureka server kaldırıldı.

  • Standalone (1.x.x) - Yayınlanma tarihi (Ağustos 2019)

    • API Kullanıcısı tanıma (authentication → ip, header, basic auth)

    • API Kullanıcısı - API yetkilendirme (authorization)

    • IP bazlı kısıtlama, her API kullanıcısı için ayrı IP adresi tanımlama

    • Basic authentication dahil olmak üzere farklı header/url authentication yapılarını destekler

    • Custom request header tanımlama ve header’ların farklı veri kaynaklarından beslenebilmesi

    • REST + SOAP API desteği

    • API ve API kullanıcısı bazlı istatistikleri tutma ve grafik olarak gösterme

    • API kullanıcısı bazlı API’ye gelebilecek istekleri kısıtlama (throttling)

    • Farklı sunuculara round robin istekleri dağıtabilme (loadbalancing)

    • Merkezi konfigürasyon (config-server)

    • Altyapı desteği (Standalone jar)

    • Mikroservis mimarisi

    • Ön yüzde farklı rollerde kullanıcılar portali kullanabilir

    • Veritabanın olarak (Oracle desteği)