Mikro Hizmet Mimarisi, büyük uygulamaları bağımsız çalışabilen küçük servis birimlerine bölerek geliştirme ve ölçeklendirme esnekliği sağlayan yazılım mimarisi yaklaşımıdır.

Microservices yani mikro hizmet mimarisi büyük ve monolitik bir yazılım uygulamasını her biri kendi sorumluluğuna sahip küçük bağımsız ve birbirleriyle iletişim kuran servisler topluluğuna bölen bir yazılım mimarisi yaklaşımıdır. Her mikro hizmet belirli bir iş işlevini yerine getirir; kendi veritabanına sahip olabilir kendi teknoloji yığınıyla geliştirilir ve bağımsız olarak dağıtılıp ölçeklendirilebilir. Bu mimari Netflix Amazon ve Uber gibi büyük teknoloji şirketleri tarafından popüler hale getirilmiştir. Monolitik mimaride tüm bileşenler tek bir dağıtılabilir birim olarak paketlenir; uygulamanın herhangi bir parçasını güncellemek tüm sistemin yeniden dağıtılmasını gerektirir. Mikro hizmet mimarisinde ise her servis kendi yaşam döngüsüne sahiptir: farklı ekipler farklı servisleri bağımsız olarak geliştirebilir test edebilir ve production ortamına alabilir. Bu esneklik ölçek büyüdükçe geliştirme hızını korumak ve yalnızca yoğun talep gören servisleri ölçeklendirmek açısından kritik bir avantaj sunar. Yapay zeka projeleri için bu mimari özellikle değerlidir. Model serving veri ön işleme A/B testi ve orkestrasyon katmanları ayrı servisler olarak tasarlanabilir; böylece yeni bir model versiyonu canlı ortama alınırken sistemin geri kalanı kesintisiz çalışmaya devam eder. Farklı AI modelleri (NLP görüntü tanıma öneri motoru) her biri kendi kaynağını bağımsız tüketen servisler olarak çalışır; darboğazlar kolayca tespit edilip giderilebilir. Servisler REST gRPC veya mesaj kuyrukları (Kafka RabbitMQ) aracılığıyla iletişim kurar. API gateway dış istemcilerle merkezi iletişim noktası görevi görür. Devre kesici (circuit breaker) desenleri zincirleme hataları önler; servis keşfi mekanizmaları dinamik ölçeklendirmede adres çözümlemesini otomatikleştirir. Docker konteynerleri ile Kubernetes orkestrasyonu mikro hizmet dağıtımının ve yönetiminin temel altyapısını oluşturur. Küçük ekipler için başlangıçta monolitik mimari daha pratik olabilir; ancak sistem karmaşıklığı arttıkça mikro hizmetlere geçişin faydaları belirginleşir.

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

Servisler arasındaki iletişim REST/HTTP, gRPC veya mesaj kuyrukları (Kafka, RabbitMQ) üzerinden kurulur. Senkron çağrılar düşük gecikmeli operasyonlar için tercih edilirken, asenkron mesajlaşma yüksek hacimli veri akışı ve olay güdümlü mimariler için daha uygundur. API gateway katmanı, dış istemcilerle iletişimi merkezi bir noktadan yönetir.

Temel Tasarım İlkeleri

Başarılı bir mikro hizmet mimarisi için her servis tek bir sorumluluğa odaklanmalı (Single Responsibility), diğer servislerle gevşek bağlı (loosely coupled) olmalı ve yüksek iç uyuma (high cohesion) sahip olmalıdır. Her servisin kendi veritabanını yönetmesi (database per service) veri izolasyonunu ve bağımsız ölçeklendirmeyi kolaylaştırır. Ayrıca her servis arızaya karşı dayanıklı (fault tolerant) tasarlanmalı; devre kesici (circuit breaker) desenleriyle zincirleme hatalar önlenmelidir.

AI Sistemlerinde Mikro Hizmet Desenleri

Model Servisi

Her ML modeli bağımsız bir hizmet olarak dağıtılır; sürüm güncelleme ve ölçekleme bağımsız yapılır.

Özellik Deposu

Feature store hizmeti tüm servislere tutarlı ve güncel özellik vektörleri sunar.

A/B Test Yönlendirici

Trafik yönlendirici farklı model sürümlerine oransal trafik göndererek canlı karşılaştırma yapar.

Gözlemlenebilirlik

Her hizmet tahmin süresi, hata oranı ve model sapmasını merkezi izleme platformuna gönderir.

Sık Sorulan Sorular

  • check_circle Mikro hizmet mimarisi her proje için uygun mudur? Hayır. Küçük takımlar ve yeni başlayan projeler için monolitik mimari daha hızlı ve yönetilebilir olabilir. Mikro hizmetlere geçiş, ölçek ve karmaşıklık arttıkça değerlendirilmelidir.
  • check_circle Mikro hizmetlerle Docker ve Kubernetes nasıl ilişkilidir? Docker, her mikro hizmeti izole bir konteyner olarak paketler. Kubernetes ise bu konteynerlerin dağıtımını, ölçeklendirmesini ve yönetimini otomatikleştirir. İkisi birlikte mikro hizmet altyapısının omurgasını oluşturur.
  • check_circle Mikro hizmetlerde veri tutarlılığı nasıl yönetilir? Her servisin ayrı veritabanı olduğundan geleneksel ACID işlemleri mümkün değildir. Bunun yerine eventual consistency, Saga deseni ve event sourcing gibi yaklaşımlar kullanılır.
  • check_circle AI model güncellemeleri mikro hizmet mimarisinde nasıl yapılır? Yeni model versiyonu ayrı bir servis olarak dağıtılır, canary deployment ile küçük bir trafik dilimi yönlendirilir, metrikler karşılaştırılır ve başarılıysa tüm trafik aktarılır.