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.

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.

Şimdi gelelim yazılım dünyasına. Gece yarısı, production sunucusundan alarmlar yağıyor. SSH ile bağlanıyorsunuz, top 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.

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.

İşte o an yapmanız gereken şey, tıptaki defibrilasyonun birebir karşılığıdır: sudo reboot. Veya daha cerrahi bir müdahaleyle, sorunlu servisi kill -9 ile öldürüp yeniden başlatmak.

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.

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).