Geriatri ve acil dahiliye kliniklerinde hekimlerin en sık karşılaştığı trajikomik vakalardan biri "Polifarmasi" (Polypharmacy / Çoklu ve Kontrolsüz İlaç Zehirlenmesi) tablosudur.
Yetmiş yaşında bir hasta acil servise getirilir; şuuru bulanıktır, gözlerinin akı sararmıştır, karaciğer enzimleri tavana vurmuş, böbrekleri iflas etme noktasına gelmiştir. Hasta yakını feryat eder: "Doktor bey, babamın hiçbir şeyi yoktu, dün akşam yediği hastane yemeği onu bu hale getirdi!"
Sonra hastanın cebinden ve komodininden çıkan ilaç torbasını açarsınız:
- Farklı üç doktorun yazdığı birbirine zıt dört tansiyon ilacı,
- Komşunun tavsiye ettiği iki ağır antibiyotik,
- İnternetten sipariş edilen ruhsatsız beş çeşit "mucizevi" bitkisel zayıflama tozu,
- Üç farklı ağrı kesici ve sayısız vitamin...
Hasta günde tam yirmi beş tablet kimyasalı aynı anda yutmuştur! Zavallı karaciğer ve böbrekler o devasa toksik yükün altında ezilmiş, iflas bayrağını çekmiştir. Fakat fatura kime kesilmektedir? Tabii ki o sabah hastanın içtiği çorbaya!
Web hosting sektöründe, teknik destek masalarında ve paylaşımlı sunucu (Shared Hosting) dünyasında da tam olarak bu polifarmasi cehaletini sergileyen, her gün binlerce sistem yöneticisini delirtme noktasına getiren meşhur bir müşteri profili vardır: Sitenin İçine Kırk İki Adet Eklenti Kurup, Site Çökünce "Sunucunuz Çok Yavaş!" Diye Bilet Açan WordPress Kullanıcısı.
Yıllık Yüz Liralık Pakette Uzay Mekiği Beklentisi
Hikaye her zaman aynı naiflikle başlar.
Müşteri, Türkiye'deki yerel bir hosting sağlayıcısından en ucuz "Ekonomik Web Hosting" paketini satın alır:
Yıllık maliyet: 150 TL.
Sistem kaynakları (CloudLinux LVE limitleri):
- 1 Core CPU (%100 kullanım hakkı)
- 1 GB Fiziksel RAM
- 20 Giriş Süreci (Entry Processes / Eşzamanlı bağlantı)
- 10 MB/s Disk I/O Limiti
Bu paket standart bir HTML web sitesi, hafif bir kurumsal tanıtım sayfası veya doğru optimize edilmiş temiz bir blog için fazlasıyla yeterlidir.
Fakat müşterinin aklında bambaşka bir rüya vardır: Bu 150 liralık paketin üzerinde devasa bir Trendyol, bir Hepsiburada veya uluslararası bir haber portalı kuracaktır!
Ve o meşhur WordPress kurulumu yapılır: wp-admin paneline ilk giriş.
Eklenti Karnavalı: Her Derde Bir Deva
Müşteri YouTube videolarını izlemeye başlar. "WordPress sitenizi uçuracak 10 eklenti", "Güvenlik için olmazsa olmaz 5 eklenti", "SEO'da birinci sıraya çıkaran eklenti..."
Ve müşteri kurulacak her eklentiyi cep telefonuna yüklenen hafif bir mobil uygulama zannederek indirmeye başlar:
- Görsel Şölen: Sayfanın tepesine döne döne gelen devasa animasyonlu slaytlar için
Revolution Slider(tek başına 80 MB JavaScript ve CSS!). - SEO Çakışması: Yetmez; hem
Yoast SEOkurar, hem de "Belki bu daha iyidir" diyerek yanınaRank Mathkurar! İki devasa SEO motoru aynı veritabanı tablolarını taramak için birbirini boğazlamaya başlar. - Güvenlik Paranoyası: Siteye hackerlar saldırmasın diye aynı anda
Wordfence Security,iThemes SecurityveAll In One WP Securitykurar! Üç eklenti de her gelen HTTP isteğinde sunucunun IP tablosunu tarayıp diske log yazmaya başlar. - Sosyal Medya ve Çerçöp: Canlı destek butonu, WhatsApp sohbet balonu, Instagram canlı akışı, uçuşan kar taneleri eklentisi, ziyaretçi sayacı, PDF görüntüleyici, pop-up yöneticisi...
- Ve Ölüm Vuruşu: Nulled (Korsan) Tema! İnternette 60 dolara satılan popüler bir e-ticaret temasının Rus forumlarından indirilmiş "korsan / kırılmış" (nulled) versiyonunu sisteme yükler. O temanın PHP dosyalarının içine hackerlar tarafından gizlenmiş olan "base64" şifreli spam botları ve arka kapılar sunucunun derinliklerine sessizce yerleşir.
Aktif eklenti sayısı: Tam 42 ADET!
Sahne Arkasındaki Katliam: Tek Tıkta 400 SQL Sorgusu
Sıradan bir ziyaretçi o sitenin ana sayfasına girmek için tarayıcısının adres çubuğuna basar: enter.
Tarayıcı masum bir GET / isteği gönderir.
Peki sunucunun arkasında, o Linux çekirdeğinde ne yaşanır biliyor musunuz?
- WordPress çekirdeği ayağa kalkar. O 42 eklentinin her biri kendi
initvewp_loadedkancalarını (hook) çalıştırmaya başlar. - Nulled temanın içindeki bozuk kodlar, veritabanına sadece ana sayfayı gösterebilmek için tam 380 adet karmaşık SQL sorgusu (JOIN query) fırlatır!
- Sunucunun MySQL veritabanı motoru nefes alamaz hale gelir.
- Tek bir sayfa yüklemesi için tüketilen PHP bellek miktarı (memory_limit) aniden 350 Megabayta fırlar!
- Disk I/O limiti saniyeler içinde 10 MB/s sınırına toslar.
Ve CloudLinux'un adil kaynak yöneticisi (LVE - Lightweight Virtual Environment) durumu fark eder:
"Hop birader! Sen 150 liralık pakettesin ama şu an tüm sunucunun işlemcisini tek başına sömürüyorsun!"
LVE hemen devreye girer ve hesabı kısıtlar (throttling):
Ekranda o meşhur, kaçınılmaz hata belirir:
HTTP 508 Resource Limit Is Reached
The website is temporarily unable to service your request as it exceeded resource limits.
Site küt diye yere çakılır.
Destek Biletindeki Hakaret Fırtınası
Ve iki dakika sonra hosting firmasının destek sistemine büyük harflerle, ünlem işaretleriyle dolu o meşhur bilet (ticket) düşer:
Konu: REZALET BİR FİRMASINIZ! SİTEM AÇILMIYOR!
Mesaj: "Kardeşim siz ne biçim firmasınız? Ben Google'a binlerce lira reklam verdim, sitem '508 Resource Limit' hatası veriyor! Sunucularınız leş gibi, altyapınız çöp! İki dakikada bir çöküyor. Derhal sitemi açın yoksa sizi mahkemeye vereceğim, Şikayetvar'a yazacağım!"
Destek masasındaki kıdemli sistemci derin bir nefes alır. Müşterinin cPanel hesabına girer, hata loglarına (error_log) bakar.
Manzara bir kurumsal cinayet mahallidir:
- Dosya boyutu 4 Gigabayta ulaşmış devasa bir
error_logdosyası! - Her saniye yüzlerce satır PHP Fatal Warning:
Undefined variable,Function deprecated,Division by zero... - 42 aktif eklenti, 8 tanesi beş yıldır güncelleme almamış terk edilmiş eklentiler.
- Nulled temadan dolayı arka planda saatte 10.000 adet Rusça spam mail basmaya çalışan bir zombi süreci!
Destek personeli kibarca yazar:
"Sayın müşterimiz, hesabınızda 42 adet eklenti bulunmaktadır ve veritabanı sorgularınız tahsis edilen 1 Core CPU limitini aşmaktadır. Lütfen kullanmadığınız eklentileri kaldırıp temanızı optimize edin."
Müşterinin yanıtı değişmez:
"Ne alakası var kardeşim? Benim bilgisayarımda bu site çalışıyordu! Suçu eklentiye atmayın, sunucunuzu güçlendirin!"
Çöplüğü İnşa Eden Faturayı Başkasına Kesemez
Bir web sitesi sahibi olmak sadece fareyle eklenti kurcalamak değildir; üzerinde çalıştığınız mimarinin sınırlarına saygı duymaktır.
- Eklenti Sayısı Değil, Kalitesi: Bir sitede 30 iyi yazılmış, hafif eklenti sorunsuz çalışabilir; ama tek bir kötü yazılmış, veritabanını kilitleyen eklenti tüm sunucuyu felç eder.
- Her Eklenti Yeni Bir Güvenlik Deliğidir: Kurduğunuz her eklenti, sitenizin kapısına eklediğiniz yeni bir anahtar deliğidir. Kırk eklenti kurmak, kalenizin surlarında kırk adet açık gedik bırakmaktır.
- Nulled Yazılım İntihardır: 50 dolar tasarruf etmek için korsan tema kullananlar, sitelerinin bir zombi botnete dönüştürülmesini ve Google'ın karalistesine alınmasını peşinen kabul etmiş demektir.
Tıpta günde yirmi beş ilaç yutup midesini patlatan hasta suçu hastane çorbasına atamaz.
Web dünyasında da sitenizin içine devasa bir eklenti çöplüğü inşa edip, sonra o çöplük kokmaya başladığında faturayı hosting firmasının sunucusuna kesemezsiniz.
Önce kendi kodunuzu ve çöplüğünüzü temizleyin; çünkü en güçlü süper bilgisayar bile, kötü yazılmış bir kodun ve tembel bir aklın yükünü sonsuza kadar taşıyamaz.