İçeriğe atla
W3 Bilişim
Çözüm · Mikro servisAPI Geliştirme
Monoliti parçalarken sistemi ayakta tutmak.

Mikro Servis Mimarisine Geçiş Yapanlar İçin API ve Gateway Geliştirme

Tek uygulamada biriken kod artık küçük bir değişiklik için bile tüm sistemi yeniden yayına zorluyorsa sorun ekip hızı değil, sınırların belirsizliği. Servis sınırlarını veriyle çiziyor, ayrıştırmayı sıraya koyuyor ve her adımı geri alınabilir bırakıyoruz.

  • Kademeli ayrıştırma planı
  • API gateway ve yönlendirme
  • Olay tabanlı iletişim
  • Dağıtık izleme kurulumu
Bugünkü tablo

Sorun büyüklük değil; her şeyin her şeye bağlı olması.

Mikro servis kararı genellikle mimari bir hevesle değil, gündelik bir tıkanmayla alınır: yayın kuyruğu uzar, küçük bir düzeltme büyük bir riske dönüşür.

← Görseli yana kaydırın →
Yaklaşımımız

Önce sınır, sonra sıra, en sonunda kod.

Mikro servis bir teknoloji seçimi değil, bir sahiplik kararıdır. Hangi verinin sahibi kim sorusunu yazılı olarak yanıtlamadan tek satır servis kodu yazmıyoruz.

  1. Sınır analiziMevcut kodu iş yeteneklerine göre gruplandırıyor, modüller arası çağrı ve tablo paylaşımını çıkarıyoruz. Sınır, koda değil işe göre çiziliyor.TeslimBağımlılık haritasıVeri sahipliği tablosuAday servis listesi
  2. Ayrıştırma sırasıHer aday servis değişim sıklığı, veri bağımlılığı ve yük profiline göre puanlanır; ilk dalga en çok kazandıran, en az riskli modüllerden seçilir.TeslimDalga planıRisk notlarıGeri alma stratejisi
  3. Gateway ve yönlendirmeMonolitin önüne tek giriş noktası koyuyoruz. Adres değişmeden trafik kademeli olarak yeni servise kayar; sorun görülürse anında geri döner.TeslimAPI gateway kurulumuYönlendirme kurallarıKimlik doğrulama katmanı
  4. Servis sözleşmeleriServisler arası her çağrı OpenAPI veya şema ile yazılı hale gelir; sözleşme testleri, bir servisin diğerini sessizce bozmasını engeller.TeslimOpenAPI / şema tanımlarıSözleşme testleriSürümleme politikası
  5. Olay tabanlı iletişimBeklemeyen işler kuyruğa taşınır. Yeniden deneme, idempotent işleme ve ölü mektup kuyruğu ile geçici hatalar veri kaybına dönüşmez.TeslimKuyruk kurulumuOlay şemasıYeniden deneme kuralları
  6. Gözlemlenebilirlikİstek kimliği uçtan uca taşınır; dağıtık izleme, metrik ve uyarılar ilk servisten önce kurulur. Kör noktayla canlıya çıkılmaz.TeslimDağıtık izlemeServis metrikleriUyarı eşikleri
← Görseli yana kaydırın →
İmza aracı · Ayrıştırma sırası

Hangi modül önce çıkmalı? Servis sınırı ve sıra seçici

Monolitinizde bulunan modülleri işaretleyin; her biri için değişim sıklığını ve veri bağımlılığını seçin. Araç, bağımsızlık kazancı ile taşıma riskini karşılaştırıp modülleri dalgalara yerleştirir. Hesap tarayıcınızda yapılır, hiçbir veri gönderilmez.

1 · Sisteminizde hangi modüller var?

Adı birebir aynı olmayabilir; en yakın karşılığı seçin.

2 · Her modül için iki soru

Değişim sıklığı kazancı, veri bağımlılığı riski belirler.

Bildirim / e-posta / SMS
Ne sıklıkta değişiyor?
Veriyi ne kadar paylaşıyor?
Raporlama ve dışa aktarım
Ne sıklıkta değişiyor?
Veriyi ne kadar paylaşıyor?
Arama ve listeleme
Ne sıklıkta değişiyor?
Veriyi ne kadar paylaşıyor?
Dış entegrasyon uçları
Ne sıklıkta değişiyor?
Veriyi ne kadar paylaşıyor?
Önerilen ayrıştırma sırasıDalgalar birbirini izler; bir dalga canlıda kararlı çalışmadan sonraki başlamaz.
1. dalga — erken kazanç
  1. Bildirim / e-posta / SMSÖncelik: 9
  2. Dış entegrasyon uçlarıÖncelik: 6
  3. Raporlama ve dışa aktarımÖncelik: 6
Riski düşük, kazancı hemen görülen modüller. Gateway ve izleme bu dalgada kurulur.
2. dalga — hazırlık isteyen
  1. Arama ve listelemeÖncelik: 2
Veri paylaşımı kısmi. Önce sahiplik netleşir, gerekirse okuma kopyası veya olay senkronu kurulur.
3. dalga — çekirdeğe yakın
  1. Bu dalgada modül yok.
Ana iş akışına dokunur. Ayırma kararı, ilk iki dalganın sonucuna bakılarak yeniden değerlendirilir.

İlk dalgayı bilinçli olarak en fazla üç modülle sınırlıyoruz; kalanlar sıradaki dalgaya kayar.

Bu araç, ayrıştırma tartışmasını hızlandırmak için hazırlanmış basitleştirilmiş bir önceliklendirme modelidir; mimari karar yerine geçmez. Gerçek sıra, kod tabanınızın incelenmesi ve ekip yapınız konuşulduktan sonra belirlenir.

Kapsam

Geçişin görünmeyen yarısı: gateway, kuyruk ve izleme

Servis kodu buzdağının görünen kısmı. Dağıtık bir sistemi yönetilebilir kılan şey, servislerin etrafına kurulan ortak altyapıdır.

← Görseli yana kaydırın →
Teknoloji ve yaklaşım

Servisleri Node.js ile yazıyor, servisler arası anlık çağrılarda REST veya gRPC, gecikmeye toleranslı işlerde mesaj kuyruğu kullanıyoruz; paylaşılan önbellek ve kilit ihtiyacı için Redis, paketleme için Docker standardımız. Yığının tamamı API geliştirme hizmet sayfasında listeli.

Geçiş kararının teknik olduğu kadar örgütsel bir tarafı var: ekip sayısı, devir alma kapasitesi ve yayın disiplini. Bu tarafı teknik danışmanlık kapsamında konuşuyoruz. Eski bir sistemi taşıyorsanız arayüz tarafı web yazılım geliştirme, mobil istemci varsa sürümleme ve uyumluluk kararları mobil yazılım geliştirme ile birlikte ele alınır. Altyapı seçiminde sunucu ve barındırma farklarını hosting, VPS ve bulut karşılaştırmamızda anlattık.

Kararlar

Mikro servis her zaman doğru cevap değil

Bir mimariyi savunmak yerine sizin durumunuzu değerlendiriyoruz. Aşağıdaki durumlarda geçişi ya sınırlı tutuyoruz ya da hiç önermiyoruz.

  • Tek ekip, tek yayın takvimiBağımsız yayın ihtiyacı yoksa, dağıtık sistemin getirdiği işletme yükü kazancı aşar. Modüler monolit çoğu zaman daha iyi bir hedeftir.
  • Veri sahipliği netleşmemişAynı tabloya üç servis yazacaksa ayırma, sorunu görünmez hale getirir. Önce sahiplik, sonra ayırma.
  • İzleme kurulmamışDağıtık sistemde kör nokta, tek uygulamadakinin katı kadar pahalıya mal olur. İzleme ilk servisten önce kurulur.
  • Geri dönüş planı yokHer adımın geri alma yolu yazılı olmalı. Yoksa geçiş, ilk sorunda durma riski taşıyan tek yönlü bir yola dönüşür.

Değerlendirme sonucunda 'şimdilik ayırmayın' dediğimiz projeler oluyor. Bu değerlendirmeyi bağımsız bir gözle yapmamızı isterseniz teknik danışmanlık kapsamında tek başına da alabilirsiniz.

Örnek plan

Örnek bir ilk faz: gateway ve iki servis

Aşağıdaki plan, orta ölçekli bir monolitin ilk dalgası için hazırlanmış örnektir. Sizin planınız kod incelemesi ve sınır analizinden sonra çıkar; süre ve sıra sözleşmede yazılı hale gelir.

← Görseli yana kaydırın →
Örnek ilk faz planı: haftalar, yapılan iş ve hafta sonundaki çıktı
HaftaNe yapılırHafta sonunda elinizde ne olur
1–2. haftaSınır ve bağımlılık analiziBağımlılık haritası, veri sahipliği tablosu
3. haftaDalga planı ve geri alma stratejisiSıralı servis listesi, risk notları
4. haftaGateway ve izleme kurulumuTek giriş noktası, uçtan uca izleme
5–6. haftaİlk servisin çıkarılmasıBağımsız yayınlanabilir servis, sözleşme testleri
7. haftaKademeli yönlendirmeTrafiğin kontrollü devri, ölçüm
8–9. haftaİkinci servis ve olay kuyruğuKuyruk, idempotent işleme, ölü mektup kuyruğu
10. haftaDevir ve dokümantasyonÇalışma kılavuzu, uyarı eşikleri, ekip devri

İlk dalga kararlı çalıştıktan sonra ikinci dalga aynı şablonla ilerler: her servis için sınır, sözleşme, yönlendirme ve izleme adımları tekrar eder; altyapı yeniden kurulmaz.

SSS

Sık sorulanlar

Ayrıştırma sırası, servisler arası iletişim, veri sahipliği ve geçiş sırasında sistemin ayakta kalması hakkında en çok sorulanlar.

Genellikle değil. Tek seferlik büyük dönüşümlerde hem eski hem yeni sistemi aynı anda ayakta tutmak gerekir ve geri dönüş noktası kalmaz. Yaygın olarak tercih edilen yol, monolitin önüne bir yönlendirme katmanı koyup servisleri teker teker dışarı almaktır: her adımda yalnız bir parça taşınır, sorun çıkarsa yalnız o parça geri alınır. Geçiş süresince iki dünya yan yana çalışır.

Monolitinizi birlikte okuyalım, sınırı birlikte çizelim

Bugün en çok hangi modül yüzünden yayın geciktiğini ve hangi tabloya kimlerin yazdığını anlatın; ilk görüşmede aday servisleri ve gerçekçi bir ilk dalga kapsamını çıkaralım. Keşif görüşmesi ücretsizdir ve sizi bağlamaz.

  • Keşif görüşmesi ücretsiz
  • Kapsam netleşmeden fiyat vermiyoruz
  • Gerekirse 'ayırmayın' deriz
API Geliştirme

Geçişi tek gecelik bir olay olmaktan çıkaralım

Servis sınırlarını veriyle çiziyor, ayrıştırmayı dalgalara bölüyor, gateway ve dağıtık izlemeyi ilk servisten önce kuruyoruz.

Keşif görüşmesi ücretsizKapsam netleşmeden fiyat vermiyoruzGerekirse 'ayırmayın' deriz