Sevgili Yol Arkadaşım,
Serimizin 6. eğitiminde test otomasyonunu kendi yerel makinenin esaretinden kurtardın; Docker konteynerlerine mühürleyip GitHub Actions boru hatları üzerinde otonom bir fabrikaya dönüştürdün. Artık kodların her commit anında ayağa kalkan bulut işçileri tarafından otomatik olarak doğrulanıyor.
Şimdi seni ve yazdığın yazılımları çok daha vahşi, acımasız ve kaotik bir arenaya davet ediyorum: Gerçek Dünyanın Stres ve Tehdit Arenası.
Bir web uygulamasının veya mobil uygulamanın tek bir kullanıcının elinde tıkır tıkır çalışması harika bir başlangıçtır; ancak endüstrinin acımasız sahnesinde bu sadece bir illüzyondur. Sistem aynı anda 50.000 kişinin stadyum konseri bileti almaya çalıştığı o çılgın ilk 30 saniyede nasıl nefes alıyor? Sunucu işlemcisi yüzde yüze dayandığında veritabanı kilitlenip kullanıcıların kredi kartı limitlerini havada mı bırakıyor, yoksa zarif bir şekilde kuyruk yönetimi mi yapıyor?
Dahası; sistemin sadece hızlı olması yetmez. Arka kapıları kilitli mi? Bir saldırgan URL’deki bir kimlik numarasını değiştirerek tanımadığı bir vatandaşın tüm banka hesap hareketlerini ekrana dökebilir mi? Form alanlarına iliştirilen zararlı bir betik parçası, tüm kullanıcıların oturum anahtarlarını karanlık bir sunucuya fısıldayabilir mi?
Bu kitapta, sistemlerin fonksiyonel olmayan (Non-Functional) iki büyük kalesini fethedeceğiz: Performans ve Güvenlik.
k6 ve Apache JMeter ile sanal kullanıcı orduları kuracak, Little’s Law matematiğiyle sunucu kapasitelerini ölçecek, darboğazları (Bottlenecks) bir cerrah gibi tespit edecek; ardından şapkanı ters çevirip bir siber saldırgan gibi düşünerek OWASP Top 10 güvenlik açıklarının izini süreceksin.
Zırhını kuşan. Sistemleri sınırlarına kadar zorlamaya ve açıklarını kapatmaya başlıyoruz!