Mikroservis Nedir?
İngilizce: Microservices
Yayın: · Son güncelleme:
Mikroservis Nedir? Kısaca
Mikroservis, bir uygulamanın her biri tek bir işe odaklanan, kendi başına geliştirilip dağıtılabilen ve birbiriyle genellikle API ya da mesaj kuyruğu üzerinden haberleşen küçük servislere bölündüğü mimari yaklaşımdır.

Mikroservis nedir?
Mikroservis mimarisinde uygulama tek parça yerine küçük servislerden oluşur. Her servis tek bir iş alanından sorumludur: biri kullanıcıları, biri siparişleri, biri ödemeleri yönetir. Servisler ayrı ekipler tarafından geliştirilebilir, farklı programlama dilleriyle yazılabilir ve birbirinden bağımsız güncellenebilir.
Her servisin kendi veritabanını kullanması önerilir. Böylece bir servisin tablo yapısındaki değişiklik diğerlerini bozmaz.
Servisler nasıl iletişim kurar?
Servisler çoğunlukla REST API, gRPC ya da mesaj kuyrukları üzerinden konuşur. Örneğin bir yemek sipariş uygulamasında kullanıcı "siparişi onayla" dediğinde sipariş servisi kaydı oluşturur, ödeme servisine istek atar ve başarılı olursa "sipariş verildi" mesajı yayınlar. Bildirim servisi bu mesajı dinleyip size SMS gönderir.
Dışarıdan gelen istekler genellikle bir API gateway üzerinden ilgili servise yönlendirilir. Servisler çoğunlukla Docker konteynerlerinde çalışır ve Kubernetes gibi araçlarla yönetilir.
Avantajları ve maliyetleri
En büyük kazanç bağımsızlıktır. Yalnız yoğun olan servisi ölçekleyebilir, bir serviste hata olduğunda tüm sistemin çökmesini önleyebilirsiniz. Büyük ekipler de birbirini beklemeden çalışır.
Bedeli ise karmaşıklıktır. Ağ gecikmesi, servisler arası veri tutarlılığı, dağıtık hata ayıklama ve izleme ciddi emek ister. Küçük bir ekip için bu yük, sağladığı faydadan fazla olabilir. Bu yüzden birçok ekip önce düzenli bir monolitle başlar ve gerçekten ayrışması gereken parçaları zamanla servise dönüştürür.
Sıkça Sorulan Sorular
Mikroservis ile monolitik mimari arasındaki fark nedir?
Monolitik uygulama tek parça olarak geliştirilip dağıtılır. Mikroserviste ise uygulama bağımsız dağıtılabilen küçük servislere bölünür ve her servis ayrı ölçeklenebilir.
Mikroservis için Docker şart mı?
Teknik olarak şart değildir ama çok yaygındır. Konteynerler her servisin kendi bağımlılıklarıyla tutarlı biçimde çalışmasını ve kolayca çoğaltılmasını sağlar.