Microservice Mimarilerinde WatchDogs ile Sağlık Kontrolü

Umut Akbulut
BilgeAdam Teknoloji
3 min readJun 25, 2024

Microservice mimarilerinin canlı ve sürekli gelişen dünyasında, bireysel hizmetlerin sağlığını ve güvenilirliğini sağlamak çok önemlidir. Hikayemizin kahramanı burada devreye giriyor: WatchDogs ile Sağlık Kontrolü. Microservice sağlık kontrollerinin büyüleyici dünyasına dalalım, bu konuyu eğlenceli ve gerçek dünya benzetmeleri ile hafif ve ilgi çekici tutarak inceleyelim.

Microservice Hayvanat Bahçesinde Bir Gün

Hayvanat bahçesi yönettiğinizi hayal edin, burada her hayvan bir microservice’i temsil ediyor. Hayvanat bahçesi bekçisinin her hayvanın sağlıklı ve mutlu olmasını sağlaması gerektiği gibi, biz de microservice’lerin sağlıklı ve işlevsel olmasını sağlamak zorundayız.

Sağlık Kontrolü Nedir ve Neden Önemlidir?

Sağlık kontrolü, bir microservice’in belirli zaman aralıklarında kendi sağlığını kontrol eden bir mekanizmadır. Microservice’lerin durumu hakkında bilgi edinmemizi ve herhangi bir problem olup olmadığını anlamamızı sağlar. Sağlık kontrolü olmadan, bir hizmetin ne zaman sorun yaşadığını anlamak zor olabilir ve bu da tüm sistemin kararlılığını etkileyebilir.

WatchDogs Nedir?

WatchDogs, microservice’lerimizin sağlığını sürekli olarak izleyen, sorunları tespit eden ve gerektiğinde müdahale eden bir kontrol mekanizmasıdır. Tıpkı sadık bir köpeğin evinizi koruması gibi, WatchDogs da sisteminizi korur.

Nasıl Çalışır?

WatchDogs, microservice’lerin sağlığını belirli aralıklarla kontrol eder. Her microservice, kendi sağlık durumu hakkında bir rapor sunar. Bu raporlar genellikle HTTP durum kodları, gecikme süreleri, hata oranları gibi çeşitli metrikleri içerir. WatchDogs, bu raporları analiz eder ve herhangi bir anormallik tespit ettiğinde alarm verir.

Bankacılık Kredi İşlemleri Örneği

Bir bankada kredi işlemlerini yöneten bir microservice mimarisi düşünelim. Bu mimaride, farklı kredi hizmetleri sağlamak için çeşitli microservice’ler kullanılır:

  • Kredi Başvuru Servisi (Loan Application Service)
  • Kredi Onay Servisi (Loan Approval Service)
  • Kredi Dağıtım Servisi (Loan Disbursement Service)
  • Kredi Geri Ödeme Servisi (Loan Repayment Service)

Bu hizmetlerin her birinin sağlıklı ve kesintisiz çalıştığından emin olmak için sağlık kontrolleri uygulanır.

Sağlık Kontrolü Uygulamak

Sağlık Kontrol Uç Noktası (Endpoint) Oluşturma: Her bir microservice için bir sağlık kontrol uç noktası (endpoint) oluşturulur. Bu uç nokta, microservice’in sağlığını kontrol eden ve durumu raporlayan bir HTTP uç noktasıdır. Örneğin:

@RestController
@RequestMapping("/health")
public class HealthCheckController {
@GetMapping
public ResponseEntity<String> healthCheck() {
// Sağlık kontrol logic
return new ResponseEntity<>("OK", HttpStatus.OK);
}
}

Kredi Başvuru Servisi (Loan Application Service):

@RestController
@RequestMapping("/loan-application")
public class LoanApplicationController {
@PostMapping
public ResponseEntity<String> applyForLoan(@RequestBody LoanApplication application) {
// Kredi başvuru logic
return new ResponseEntity<>("Application received", HttpStatus.OK);
}

@GetMapping("/health")
public ResponseEntity<String> healthCheck() {
// Sağlık kontrol logic
return new ResponseEntity<>("OK", HttpStatus.OK);
}
}

Kredi Onay Servisi (Loan Approval Service):

@RestController
@RequestMapping("/loan-approval")
public class LoanApprovalController {
@PostMapping
public ResponseEntity<String> approveLoan(@RequestBody LoanApproval approval) {
// Kredi onay logic
return new ResponseEntity<>("Loan approved", HttpStatus.OK);
}

@GetMapping("/health")
public ResponseEntity<String> healthCheck() {
// Sağlık kontrol logic
return new ResponseEntity<>("OK", HttpStatus.OK);
}
}

WatchDogs Konfigürasyonu: WatchDogs, bu uç noktalarını periyodik olarak sorgulamak üzere yapılandırılır. Anormallikler tespit edildiğinde, WatchDogs uyarılar gönderir ve gerektiğinde önceden belirlenmiş aksiyonları alır.

watchdogs:
services:
- name: loan-application-service
healthCheckUrl: http://loan-application-service/health
interval: 30s
- name: loan-approval-service
healthCheckUrl: http://loan-approval-service/health
interval: 30s

Sağlık Kontrolü için En İyi Uygulamalar

  1. Kapsamlı Sağlık Kontrolleri: Sadece microservice’in çalışıp çalışmadığını değil, aynı zamanda veritabanı bağlantıları, bağımlı hizmetler ve dış API entegrasyonlarının da sağlığını kontrol edin.
  2. Gerçek Zamanlı İzleme: Sağlık kontrollerini belirli aralıklarla gerçekleştirin ve sonuçları gerçek zamanlı olarak izleyin.
  3. Uyarı ve Bildirimler: Herhangi bir sorun tespit edildiğinde, ilgili ekiplere hızlı bir şekilde bildirim gönderin.
  4. Otomatik Kurtarma: Belirli senaryolarda otomatik kurtarma işlemlerini tetikleyin. Örneğin, belirli bir hizmet birkaç kez ardışık olarak başarısız olursa, hizmeti yeniden başlatmayı deneyin.

Sonuç

Microservice mimarilerinde sağlık kontrolleri, sisteminizin sağlığını ve kararlılığını sağlamak için kritik öneme sahiptir. WatchDogs gibi araçlar, bu süreci otomatikleştirir ve hizmetlerinizin her zaman en iyi performansı göstermesini sağlar. Sağlık kontrollerini doğru şekilde uygulayarak, microservice mimarinizin güvenilirliğini ve ölçeklenebilirliğini artırabilirsiniz.

--

--

Umut Akbulut
BilgeAdam Teknoloji

"Tech leader & Software Architect. Passionate about digital transformation, microservices, and innovation in the finance and tech sectors."