Chaos Monkey Nedir? #1 Uygulamanızın Sınırlarını Test Edin
Bu yazıda Chaos Monkey nedir? Spring Boot uygulamalarımızda nasıl kullanırız anlatmaya çalışacağım.
Chaos Monkey Nedir?
Chaos Monkey Netflix tarafından sistemlerinin güvenilirliğini test etmek için geliştirilen açık kaynaklı bir araçtır. Bu araç, uygulamamıza saldırarak, uygulamamızın dayanıklılığını ölçmemizi sağlamaktadır.
Chaos Monkey Nasıl Çalışır?
Kütüphane, uygulamadaki sınıfları arar.
- Component
- Controller
- RestController
- Service
- Repository
Bu sınıflara vereceğimiz yapılandırmalara göre saldırılar gerçekleştirmektedir. Bu saldırıları, kütüphane “Watcher” adını verdiği sınıflar aracılığı ile gerçekleştirmektedir. Bu saldirilar;
- Gecikme Saldirisi (Latency Assault)
- Hata Saldirisi (Exception Assault)
- Uygulama Oldurme Saldirisi (KillApp Assault)
Chaos Monkeyi Uygulamaya Ekleme
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>chaos-monkey-spring-boot</artifactId>
<version>3.0.2</version>
</dependency>
Code language: HTML, XML (xml)
Uygulama Ayarları
Uygulamamizda kutuphaneyi ekledikten sonra application.properties
dosyasinda gerekli ayarlari yazmamiz yeterli olacaktir.
# Chaos Monkey Konfigürasyonu
# Uygulama için Chaos Monkey'i etkinleştirir
chaos.monkey.enabled=true
# Controller'lar için Chaos Monkey'i etkinleştirir
chaos.monkey.watcher.controller=true
# REST controller'lar için Chaos Monkey'i etkinleştirir
chaos.monkey.watcher.restController=true
# Servis katmanı için Chaos Monkey'i etkinleştirir
chaos.monkey.watcher.service=true
# Repository katmanı için Chaos Monkey'i etkinleştirir
chaos.monkey.watcher.repository=true
# Chaos Monkey API'sini etkinleştirir
chaos.monkey.api.enabled=true
# Saldırı seviyesini ayarlar (1 en düşük seviyedir)
chaos.monkey.assaults.level=5
# Gecikme saldırıları için minimum gecikme süresi
chaos.monkey.assaults.latencyRangeStart=5000
# Gecikme saldırıları için maksimum gecikme süresi
chaos.monkey.assaults.latencyRangeEnd=8000
# Gecikme saldırılarını devre dışı bırakır
chaos.monkey.assaults.latencyActive=false
# Exception saldırılarını devre dışı bırakır
chaos.monkey.assaults.exceptionsActive=false
# Uygulamayı öldüren saldırıyı etkinleştirir
chaos.monkey.assaults.killApplicationActive=true
Code language: YAML (yaml)
Uygulamayı Çalıştırma
Uygulamanızı test etmek istediğinizde çalışma profilini chaos-monkey olarak başlatmanız gerekmektedir.
java -jar springbootapplication.jar --spring-profiles.active=chaos-monkey
Sonuç
Deneyler sonucu elde edilen metrikler, Spring Boot Actuator aracılığıyla basit modda sunularak, sistem davranışını iyileştirmek için incelenebilir.
No Comment! Be the first one.