Mikroservis, büyük bir yazılımın her biri tek bir işten sorumlu, ayrı ayrı geliştirilip çalıştırılabilen ve birbiriyle API üzerinden konuşan küçük bağımsız parçalara bölünerek kurulduğu mimari yaklaşımdır.
Mikroservis mimarisinde uygulama tek bir büyük program olarak değil, her biri kendi görevine odaklanmış küçük servisler bütünü olarak yazılır: biri kullanıcı girişini, biri siparişleri, biri ödemeleri, biri bildirimleri yönetir. Her servis kendi kodunu ve çoğu zaman kendi veritabanını taşır, ayrı olarak güncellenebilir ve ölçeklenebilir. Servisler birbirleriyle ağ üzerinden, tanımlı arayüzlerle haberleşir. Bu yapı, büyük ekiplerin aynı ürün üzerinde birbirini engellemeden çalışmasına ve yoğun kullanılan bir parçanın tek başına güçlendirilmesine imkan verir.
İşletme sahibi için neden önemli
Mikroservis, ölçek ve ekip büyüklüğü belirli bir eşiği aştığında avantaj sağlar; kampanya dönemlerinde yalnızca sipariş servisini büyütmek, ödeme servisini bozmadan bildirim servisini yenilemek gibi. Ancak bedeli vardır: birden fazla servisi izlemek, dağıtmak ve aralarındaki iletişimi güvenli kılmak ciddi altyapı ve operasyon bilgisi ister. Küçük ve orta ölçekli bir işletme için bu karmaşıklık çoğu zaman gereksizdir; teklifte mikroservis geçiyorsa gerekçesini sormak gerekir.
Örnek
Bir yemek sipariş platformu, restoran yönetimi, kurye takibi, ödeme ve müşteri bildirimlerini ayrı servisler olarak çalıştırıyor. Akşam saatlerinde sipariş yükü arttığında yalnızca sipariş ve kurye servisleri için ek kapasite açılıyor. Ödeme servisinde yapılan bir güncelleme, kurye uygulamasını hiç etkilemiyor.
Sık yapılan hata
Moda olduğu için küçük bir projeye mikroservis mimarisi uygulamaktır. Üç kişilik ekip ve tek ürün için dağıtık bir yapı, geliştirme hızını düşürür ve hata ayıklamayı zorlaştırır. Diğer hata, servisleri yanlış sınırlardan bölmektir; birbirine sürekli ihtiyaç duyan iki servis, tek serviste olması gerekenin ikiye kesilmiş halidir ve ağ üzerinden konuşmak zorunda kaldıkça yavaşlar.
Teklif alırken sorulacak soru
Mikroservis tercihinin bu proje ölçeğindeki gerekçesi nedir ve monolit yapıyla karşılaştırıldı mı? Servislerin izlenmesi, dağıtımı ve hata takibi için hangi altyapı kurulacak ve bakımı kim üstlenecek?
Sık sorulanlar
Mikroservis her zaman daha iyi mi?
Hayır. Büyük ekipler ve yüksek ölçek için avantajlıdır; küçük projelerde gereksiz karmaşıklık ve maliyet yaratır. Çoğu proje iyi düzenlenmiş bir monolit ile başlar.
Monolitten mikroservise sonradan geçilebilir mi?
Evet. Yaygın yöntem, monolitin en çok yük alan ya da en sık değişen parçasını önce ayırmak ve gerektikçe devam etmektir; baştan bölmek zorunlu değildir.