İçeriğe geç
parazade

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?
İçindekiler
  1. Mikroservis nedir?
  2. Servisler nasıl iletişim kurar?
  3. Avantajları ve maliyetleri

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.

İlgili terimler

Monolitik Mimari(Monolithic Architecture)Monolitik mimari, bir uygulamanın arayüz, iş mantığı ve veri erişimi dâhil tüm parçalarının tek bir kod tabanında geliştirildiği ve tek bir birim olarak derlenip sunucuya dağıtıldığı yazılım mimarisidir.Servis Odaklı Mimari(Service-Oriented Architecture)Servis odaklı mimari (SOA), bir kurumdaki farklı uygulamaların işlevlerini standart arayüzlere sahip yeniden kullanılabilir servisler olarak sunduğu ve bu servislerin ağ üzerinden birbiriyle haberleştiği yazılım mimarisidir.API GatewayAPI Gateway (API ağ geçidi), istemcilerden gelen tüm API isteklerini tek bir giriş noktasında karşılayıp kimlik doğrulama, istek sınırlama gibi kontrollerden geçirerek doğru arka servise yönlendiren katmandır.Programlama(Programming)Programlama, bir problemi bilgisayarın uygulayabileceği net ve sıralı adımlara bölüp bu adımları bir programlama diliyle yazma işidir. Ortaya çıkan talimatlar dizisine program denir.REST APIREST API, uygulamaların HTTP protokolü üzerinden ve genellikle JSON biçiminde veri alışverişi yaptığı, REST mimari ilkelerine dayanan uygulama programlama arayüzüdür. Web'de en yaygın API türüdür.gRPCgRPC, Google tarafından geliştirilen ve servislerin birbirindeki fonksiyonları ağ üzerinden yerelmiş gibi çağırmasını sağlayan açık kaynaklı bir uzak prosedür çağrısı (RPC) çatısıdır. HTTP/2 ve Protocol Buffers kullanır.Hata Ayıklama(Debugging)Hata ayıklama (debugging), bir yazılımdaki hatanın nedenini bulma, anlama ve düzeltme sürecidir. Hatayı yeniden üretmek, kaynağını daraltmak ve düzeltmeyi test etmek bu sürecin temel adımlarıdır.