İlk backend projelerimde her şeyi tek uygulamanın içine yazıyordum.
Authentication, kullanıcı yönetimi, loglama, bildirimler...
Hepsi tek kod tabanındaydı.
Bu yaklaşım küçük projelerde işe yarasa da büyük sistemlerde ciddi sorunlar oluşturuyor.
Monolith Nedir?
Monolith mimaride tüm uygulama tek bir servis olarak çalışır.
Frontend
↓
Backend
↓
Database
İlk başta oldukça basit görünür.
Ancak proje büyüdükçe;
- Kod karmaşıklaşır.
- Test etmek zorlaşır.
- Yeni özellik eklemek riskli hale gelir.
Mikroservis Yaklaşımı
Mikroservis mimarisinde her servis yalnızca tek bir iş yapar.
Örneğin;
Authentication Service
Policy Service
Device Service
Audit Service
Notification Service
Her biri bağımsız geliştirilebilir.
Bağımsız dağıtılabilir.
Bağımsız ölçeklenebilir.
NAC Sistemlerinde Neden Kullanılır?
Bir NAC ürünü yalnızca kullanıcı doğrulamaz.
Aynı anda;
- RADIUS isteklerini işler.
- Policy hesaplar.
- Cihazları yönetir.
- Log toplar.
- Alarm üretir.
- Yönetim paneline veri sağlar.
Tüm bunları tek uygulamada toplamak zamanla yönetilemez hale gelir.
Single Responsibility
Mikroservislerin en büyük avantajlarından biri tek sorumluluk ilkesini desteklemesidir.
Örneğin;
Policy Engine yalnızca karar verir.
Audit servisi yalnızca log tutar.
Notification servisi yalnızca bildirim gönderir.
Her servis kendi alanında uzmanlaşır.
Dezavantajları
Elbette mikroservis her zaman en doğru seçim değildir.
Servisler arası iletişim,
Dağıtık loglama,
Monitoring,
Deployment
gibi yeni problemleri de beraberinde getirir.
Bu nedenle küçük projelerde monolith çoğu zaman daha mantıklı olabilir.
Sonuç
Mikroservis mimarisi yalnızca büyük şirketlerin kullandığı popüler bir yaklaşım değildir.
Doğru uygulandığında bakım kolaylığı, ölçeklenebilirlik ve ekiplerin bağımsız çalışabilmesi açısından büyük avantaj sağlar.
Top comments (0)