Artık on yılı geçti, ama Google hikayeleri askerlik hikayeleri gibi oldu, anlatıp duruyorum. Hoş süresi de bir “eski zaman” askerliği kadardı, dolayısıyla çok da şaşıracak bir şey yok.
Bilenler bilir, Google’da SRE’yim, Site Reliability Engineer. Basit anlatırsak, üretim sistemlerinin sahibiyiz, uçtan uca çalışmasından sorumluyuz.
Önemli işlerden biri, “nöbetçi”lik. Birinci nöbetçi var, ikinci nöbetçi var. Birinci nöbetçi, düşen alarmları karşılar. İkinci nöbetçi ise sistemden talepleri karşılar gibi bir sistem.
İşi gücü öğrendim. İlk defa birinci nöbetçi oluyorum. Birinci nöbetçinin işlerinden biri de, “PCR”, yani “Production Change Request” işlerine destek olmak. Bu genelde makinalar yer değiştirecek, tamir için sökülecek, network değişecek gibi işler. Destek olmak da, ilgili makinaları “boşa çıkartıp” (üzerlerindeki verinin başka makinalara akmasını sağlayıp) sonra tekrar sisteme dahil edilmesini sağlamak.
Saat 16:00 gibi, bir PCR alarmı geldi. O zaman Google’da her şeyin olduğu gibi, onun da sayfası var. Girdim baktım. Tamam, yapacaklarım belli. Yaptım, kenara koydum.
Bu sırada, chat üzerinden ilgili veri merkezinde işi yapacak olan arkadaş (ben Dublin’deyim, o Almanya’da) yazdı. Dedi ki: “Şimdi biz düğmesine basıp kapatırsak, açıldığında disk kontrolü yapıyor çok uzun sürüyor. Sen şu makinaları uzaktan ‘shutdown’ verip kapat da, açılırken çabuk açılsın.”
Ben de “tamam” dedim. Sayfaya baktım, “Etkilenen makinalar: Hepsi” yazıyor. Eee, demek ki hepsi kapatılacak. O veri merkezinde yaklaşık on bin adet makina var. Karşımda (o zamanki) takım liderimiz John Looney oturuyor. Kafamı kaldırdım. Durumu anlattım. O da dedi ki “yaz bir loop, hepsine shutdown gönder…”
Google’da skala öyle bir şaşmış ki… Normal geldi yaptığım şey, hiç garip falan gelmedi.
Kara ekranda yazdım bir satırlık komutu. O veri merkezinde yetkim olan tüm makinalara ‘shutdown -h now’ komutunu gönderdim.
Sonra, chat’ten yazdım, “Orası bayağı sessizleşmiş olmalı” diye.
Beklemediğim uzunlukta bir sessizlik oldu.
Sonra chat’ten cevap geldi: “Sen ne yaptın, VERİ MERKEZİ’Nİ Mİ KAPATTIN?”
Dedim evet. Öyle olmayacak mıydı.
“Hayır, toplam iki kabin, 40 makina yer değiştirecekti…”
Rezillik.
Rezilliğin miktarını şöyle anlatayım:
On bin kadar olan makinaların %85’i benim kontrolümde. %15’i ise başka “özel” gruplara ait. Bu %15 ise, kabinlere düzensiz dağılmış durumda.
Bir kabinde 20 makina var. Eğer hepsi kapandıysa, bu güzel durum. Kabin’in power tuşuna basınca, hepsi açılıyor yeniden.
İçinde bir tane bile açık varsa, kapalı makinaların tuşlarına teker teker basmak gerekiyor. En az yarısı bu durumda…
Kontrol ettim, 8401 tane makina kapatmayı başarmışım. Veri merkezinde çalışan üç arkadaş, yaklaşık 5000 tane düğmeye bastılar makinaları açmak için.
Rezillik bununla biter mi? Bitmez.
Bir makinayı kapatırsanız, yeniden açmaya çalışınca, yüzde yarım ihtimalle geri gelmeyecektir. Bir şeyleri aslında bozulmuştur ve kapatıp açınca bu arıza yeniden açılmasını engeller.
8401 makinanın 40 tanesi geri gelmedi. Sorun şu ki, her parça verinin üç kopyası var rastgele seçilmiş makinalarda ama, 40 makinanın içinde bir sürü üçlü var. Bol miktarda kayıp veri var demek bu.
Verileri geri getirmek, makinaları canlandırarak oluyor. Hangilerinin en çok işe yarayacağını hesap edip, veri merkezine bildiriyorsun. Canlandırabildiklerini canlandırıyorlar. Sonra veriler oradan çekiliyor diğer makinalara.
On gün boyunca, ben de dahil, hem Dublin ekibi, hem Mountain View ekibi, hem de veri merkezi ekibi kayıp veri parçalarını makina canlandırarak, bazen makinanın içindeki diski başka makinaya bağlayarak kayıp verileri geri getirmeye uğraşarak geçirdik.
Ha, hepsinin arasında, bir de Gmail kesintisi oldu o gün. O da aynı binadaki yan veri merkezinde. “Acaba onu da ben mi yaptım” diye bir “kaynar su dökülmesi” yaşadım ama, neyse, onu ben yapmamışım.
İşte 8401 tane makinayı böyle kapattım.
Emre Sevinç der ki
Tüylerim diken diken oldu okurken, gerildim. Neyse ki sistem nükleer reaktör gibi bir şeyi kontrol etmiyormuş 🙂
Gürkan der ki
Hhhahaha boşver, iyi olmuş. Doğru düzgün request girmeyi öğrenirler bu sayede.
Fatih Arslan der ki
Ben sonrasında yaşananlari merak ediyorum. Post mortem yapıldi mi? Kisisel blame oldu mu? Performans reviewde bunun bir negatif etkisi oldu mu?
Koray Al der ki
Bu kapasitede olmasa da zaman zaman ben de yeni dahil edildigim projelerde bir seyi ‘hedeflenmedigi sekilde kullandigim icin’ ortaya ilginc buglar/sorunlar cikarabiliyorum. Bu sorunlar da genelde daha once dusunulmemis perspektifleri goz onune tasidigi icin sistemi daha da direncli hale getirmeye katki sagliyor.
O yuzden, bu tip durumlarda benim daha cok onem verdigim kisim ‘aftermath’. Yani olay sonrasinda sorunun ne sekilde cozuldugunu, yapilan hataya firmanin ne sekilde tepki verdigini ve bu hatanin tekrarlanmamasi icin nelerin yapildigini merak ediyorum. Yazi ilk soruya cevap veriyor.
Caner Şahin der ki
Etkilerini biz de hissettik mi acaba diye düşündüm 😆
Asıl sonra neler oldu onu merak ediyorum. Yetkiler kaldı mı? Google’da bu tür hatalara bakış nasıl?
Ali der ki
Aman aman, çok geçmiş olsun! 🙂
Tolga der ki
Ne hata yapsam da artık stres yaratmaz artık bunu okuduktan sonra:)
Salih der ki
Geçmiş zaman, bir tecrübe ve dinlemesi güzel bir anıydı. Geçmiş olsun yine.
Milaslı bir personelim vardı. Sadece 144. sunucuyu kapatacaksın, sakın onun olduğu kabindeki hiçbir makineye dokunma dedim. Gitti, biraz sonra geldi. Öyle rahat bir tavırla ama mahçup da, “Abi ben bütün sunucuları kapadım” :). Neyse ki bir Google DC kadar olmadığımızdan biraz uğraşıp ayağa kaldırmıştık. Olay anındaki stres ve gerginlik böyle zamanlarda hoş bir anı olarak anlatıp gülebilmek bu işin de güzel yanı. Askerlik anıları gibi :).
Selamlar.