Monolitik Mimari vs Mikro Hizmetler
Monolitik mimaride bir uygulamanın tüm bileşenleri — kullanıcı arayüzü, iş mantığı ve veri erişim katmanı — tek bir dağıtılabilir birim olarak birlikte çalışır. Bu yaklaşım küçük projeler için basit ve yönetilebilirdir; ancak uygulama büyüdükçe geliştirme hızı düşer, bağımlılıklar karmaşıklaşır ve tek bir hata tüm sistemi çökertebilir. Mikro hizmet mimarisinde ise uygulama, her biri belirli bir iş alanına odaklanan küçük servislere bölünür. Bu yaklaşımda bir servisin güncellenmesi diğerlerini etkilemez; farklı servisler farklı teknoloji yığınlarını kullanabilir ve her servis bağımsız olarak ölçeklendirilebilir. Dezavantajı ise dağıtık sistemlerin getirdiği karmaşıklıktır: servis keşfi, ağ gecikmesi, veri tutarlılığı ve distributed tracing gibi konular ek operasyonel yatırım gerektirir.
Yapay Zekada Mikro Hizmet Kullanım Alanları
- check_circle Model Serving Servisi: Eğitilmiş AI modelleri (LLM, görüntü modeli, öneri sistemi) bağımsız servisler olarak sunulur. Talebin yüksek olduğu durumlarda yalnızca bu servis ölçeklendirilir.
- check_circle Veri Önişleme Pipeline'ı: Ham verinin temizlenmesi, dönüştürülmesi ve özellik mühendisliği adımları ayrı servisler olarak tanımlanır; her adım bağımsız test edilip güncellenir.
- check_circle A/B Test ve Canary Release: Yeni model sürümleri, mevcut production trafiğinin bir kısmına yönlendirilerek test edilir. Mikro hizmet yapısı, trafik yönlendirmeyi API gateway üzerinde kolayca yapılandırmaya olanak tanır.
- check_circle Çoklu Model Orkestrasyonu: Farklı AI modellerini (NLP, görüntü tanıma, ses işleme) bir araya getiren sistemlerde her model kendi servisi olarak çalışır; ana orkestrasyon katmanı sonuçları bir araya getirir.
Mikro Hizmet İletişim Yöntemleri
REST/HTTP
Senkron, insan tarafından okunabilir API'ler için standart. Basit sorgular ve düşük gecikmeli iletişim için tercih edilir.
gRPC
Protocol Buffers ile serileştirme, HTTP/2 üzerinde çalışır. Yüksek performanslı servisler arası iletişim için, özellikle model inference çağrıları için uygundur.
Mesaj Kuyrukları
Kafka veya RabbitMQ ile asenkron iletişim. Yüksek hacimli veri akışı, model eğitim job'ları veya olay güdümlü mimariler için idealdir.
GraphQL
İstemcinin tam olarak ihtiyaç duyduğu veriyi talep edebildiği esnek sorgu dili. Birden fazla mikro hizmetten veri birleştiren API gateway'ler için kullanılır.
Temel Tasarım İlkeleri
Başarılı bir mikro hizmet mimarisi birkaç temel ilkeye dayanır. Tek Sorumluluk İlkesi (SRP): Her servis yalnızca bir iş alanından sorumlu olmalıdır. Gevşek Bağlılık: Servisler birbirinden mümkün olduğunca bağımsız olmalı; bir servisin iç implementasyonu değiştiğinde diğerleri etkilenmemelidir. API-First Tasarım: Servisler arası sözleşme (API) önce tanımlanır, ardından implementasyon gerçekleştirilir. Başarısızlık İzolasyonu: Bir servisin çökmesi sistemin geri kalanını etkilememeli; devre kesici (circuit breaker) ve yeniden deneme (retry) mekanizmaları ile dayanıklılık sağlanır. Merkezi Günlük Kaydı ve İzleme: Dağıtık sistemde hataları takip edebilmek için tüm servislerden gelen loglar merkezi bir platforma (ELK Stack, Datadog) toplanır.
Sıkça Sorulan Sorular
- check_circle Her proje mikro hizmet mimarisi kullanmalı mı?: Hayır. Mikro hizmetler, büyük ve karmaşık uygulamalar, birden fazla ekibin paralel çalıştığı projeler ve bağımsız ölçeklendirme gereksinimleri olan sistemler için uygundur. Küçük projelerde monolitik mimari daha basit ve yönetilebilir olabilir.
- check_circle Mikro hizmetler ve serverless arasındaki fark nedir?: Mikro hizmetler her zaman çalışan, container veya sanal makine üzerindeki süreçlerdir. Serverless (FaaS) ise yalnızca talep geldiğinde tetiklenen, altyapı yönetimini tamamen bulut sağlayıcısına bırakan bir modeldir. İkisi tamamlayıcı olabilir: mikro hizmetlerin belirli işlevleri serverless fonksiyonlarla implemente edilebilir.
- check_circle Mikro hizmetlerde veri tutarlılığı nasıl sağlanır?: Her servisin kendi veritabanı olduğundan ACID transaction'ları birden fazla servise yayılamaz. Eventual consistency (nihai tutarlılık) ve Saga pattern yaygın çözümlerdir: her servis kendi işlemini tamamlar, başarısız adımlar compensating transaction ile geri alınır.
- check_circle AI model deployment'ta mikro hizmetlerin avantajı nedir?: Model serving servisi bağımsız ölçeklendirilebilir; GPU kaynaklarını yalnızca inference katmanına atamak mümkün olur. Farklı model versiyonları A/B test ile paralel çalıştırılabilir. Model güncellemesi tüm uygulamayı yeniden deploy etmeyi gerektirmez.