Ana içeriğe geç

Mikroservisler

İngilizcesi
Microservices
Türkçe karşılığı
mikro hizmetler
Okunuşu
maykrosörvisiz

Günlük kullanımda iki ad da yaygın.

Güncellendi 2 dk okuma

Bu sayfayı paylaşın

Bağlantıyı gönderin, tanımı bağlantısıyla birlikte alıntılayın ya da kendi sitenizde bir kart olarak gösterin.

https://softwaredictionary.org/tr/terimler/microservices

Kısaca

Mikroservisler, bir uygulamanın ağ üzerinden iletişim kuran, küçük ve bağımsız olarak dağıtılabilen servislere bölündüğü bir mimari tarzdır.

Mikroservisler nelerdir?

Mikroservis mimarisinde her servis kullanıcı hesapları, ödemeler ya da arama gibi tek bir iş yeteneğine sahiptir ve kendi süreci olarak çalışır. Servisler birbirleriyle genellikle HTTP üzerinden ya da mesaj kuyrukları aracılığıyla API'ler yoluyla konuşur ve her biri tipik olarak kendi verisini yönetir. Bağımsız oldukları için ekipler her servisi ayrı ayrı geliştirebilir, dağıtabilir ve ölçekleyebilir.

Mikroservisler genellikle container'lara paketlenir ve Kubernetes gibi bir orkestrasyon platformunda çalışır; CI/CD hatları her servisi kendi takviminde dağıtır. Arama özelliği yoğun trafik alırsa yalnızca arama servisinin daha fazla örneğe ihtiyacı olur. Bir servis çökerse iyi tasarlanmış bir sistem uygulamanın geri kalanını çalışır durumda tutabilir.

Bu esnekliğin bir bedeli vardır. Ağ çağrıları, süreç içi fonksiyon çağrılarından daha yavaş ve daha az güvenilirdir; veri birçok veritabanına dağılır ve on servisten geçen bir isteğin hatasını ayıklamak iyi bir günlükleme, izleme ve iz sürme gerektirir. Servisler arasında veri tutarlılığını sağlamak da tek bir veritabanı işleminden daha zordur.

Mikroservisler, her şeyin tek uygulama olarak dağıtıldığı monolitin karşıtıdır. Esas olarak birçok ekibin tek büyük sistem üzerinde çalışması sorununu çözerler; bu yüzden birçok uzman, iyi yapılandırılmış bir monolitle başlamayı ve servisleri yalnızca açık bir ihtiyaç olduğunda ayırmayı önerir.

Bir bakışta

Solda bir monolit: hesaplar, ödemeler ve arama tek bir uygulamanın modülleridir ve tek bir veritabanını paylaşır. Sağda mikroservisler: aynı üç parça, her biri kendi veritabanına sahip ve birbirleriyle API'ler üzerinden konuşan ayrı servislerdir.MonolitMikroservislerHesaplarÖdemelerAramaVeritabanıortakHesaplarVeritabanıÖdemelerVeritabanıAramaVeritabanıAPIAPItek parça olarak dağıtılırher biri ayrı dağıtılır
Uygulamayı bölmek her servisin kendi başına dağıtılmasını ve ölçeklenmesini sağlar; bedeli ağ çağrıları ve birçok veritabanına dağılan veridir.

Önemli noktalar

  • Her mikroservis tek bir iş yeteneğini yönetir ve bağımsız olarak dağıtılır.
  • Servisler ağ üzerinden API'ler ya da mesajlarla iletişim kurar.
  • Her servis genellikle kendi verisine sahiptir.
  • Faydaları bağımsız ölçekleme ve dağıtımdır; bedeli operasyonel karmaşıklıktır.
  • Mikroservisler, birden çok ekibin geliştirdiği büyük sistemlere uygundur.

Örnek

Bir mikroservisin HTTP üzerinden başka birini çağırmasıtypescript
// Order service: asks the separate inventory service for stock levels
async function placeOrder(productId: string, quantity: number) {
  const res = await fetch(`http://inventory-service/stock/${productId}`);
  const { available } = await res.json();

  if (available < quantity) {
    throw new Error("Not enough stock");
  }

  // Each service owns its data, so orders go into the order service's database
  await ordersDb.insert({ productId, quantity });
}

Sık sorulan sorular

Mikroservisler ile monolit arasındaki fark nedir?

Monolit tek parça olarak dağıtılan tek bir uygulamadır; mikroservisler ise sistemi bağımsız dağıtılan birçok küçük servise böler. Mikroservisler bağımsız ölçeklemeye ve ekip özerkliğine olanak tanır ama ağ, veri ve operasyon karmaşıklığı ekler.

Mikroservisler ne zaman kullanılmalı?

Mikroservisler en çok, sistemin parçalarını bağımsız olarak dağıtması ve ölçeklemesi gereken birkaç ekibin geliştirdiği büyük uygulamalarda anlamlıdır. Küçük ekipler ve yeni ürünler için monolit genellikle daha hızlı ve basittir.

Mikroservisler birbiriyle nasıl iletişim kurar?

REST, GraphQL ya da diğer RPC tarzı API'ler üzerinden eşzamanlı olarak, ya da bir mesaj aracısı (message broker) aracılığıyla olay ve mesaj yayınlayarak eşzamansız olarak iletişim kurarlar. Eşzamansız mesajlaşma, servisler arasındaki doğrudan bağımlılıkları azaltır.

Sık karşılaştırılanlar

İlgili sayfalar

Kaynaklar

Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin

Daha fazla

Ayarlar