2010 Raporu: Sosyal Medya Kesintileri
Twitter'ın Fail Whale dönemi, Facebook'un 23 Eylül'deki sonsuz döngü krizi, Foursquare'in MongoDB kâbusu, Hotmail kayıpları ve Amazon EC2 vakaları, 2010 sosyal medya ve bulut servisleri için zorlu bir yıldı. Yıl sonu derlemesi ve çıkarılacak dersler.
2010’u geride bırakırken, bu yıl sosyal medya ve bulut tabanlı servislerin yaşadığı önemli kesintileri derleyip ne çıkarmamız gerektiğini düşünmek istedim. Bir yandan kullanıcı tabanları katlanırken, diğer yandan altyapı kararlarının ne kadar kritik olduğu pek çok kez yüzümüze çarptı. Aşağıda yılın önemli vakalarını sıralıyorum; sonunda ortak temaları toparlayacağım.

Yılın önemli kesintileri
25 Mart, Wikipedia
Wikipedia’nın Avrupa’daki veri merkezinde yaşanan soğutma arızası sunucuların aşırı ısınmasına yol açtı. Avrupa kıtasından siteye erişim birkaç saat boyunca aksadı; trafik DNS düzeyinde diğer veri merkezlerine yönlendirilerek kısmen kurtarıldı. Klasik bir “fiziksel tesis sorunu” vakası, uygulamanın değil binanın hatası.
4–11 Mayıs, Amazon EC2 (US-East)
EC2’nin US-East bölgesi mayıs ayı içinde art arda dört kesinti yaşadı. Sonuncusu 11 Mayıs’ta meydana geldi ve fiziksel bir araç veri merkezinin bir kısmında jeneratör arızasına yol açtı; etkilenen Availability Zone yaklaşık bir saat boyunca kesintili kaldı. AWS’in çok bölgeli mimari önerileri (multi-AZ) tam da bu tür olaylar için var, ama o anda tek bölgeye bağlı çalışan müşterilerin canı yandı.
11 Haziran, WordPress.com
WordPress.com’un veritabanındaki wp_options tablosunda yapılan bir yapılandırma değişikliği yaklaşık 10 milyon blogu eş zamanlı olarak yaklaşık bir saat erişilemez hale getirdi. Schema değişikliklerinin canlı sistemde nasıl yapılması gerektiğine dair iyi bir negatif örnek.
16 Haziran, Twitter (Dünya Kupası)
Dünya Kupası boyunca özellikle goller ve büyük maçlardan sonra Twitter sürekli “Fail Whale” gösterdi. Site, neredeyse her büyük spor etkinliğinde aynı tabloyu yaşadı 2010 boyunca. Olayın hemen ardından Twitter yöneticileri kendi veri merkezlerini Salt Lake City civarında kuracaklarını duyurdu, Rackspace ve NTT colocation tesislerinden çıkıp kendi tesislerine geçme süreci başladı.
13 Eylül, Chase.com
Chase’in çevrim içi bankacılık platformu, üçüncü parti veritabanı yazılımının login servisinde yaşadığı bir problem nedeniyle üç gün boyunca tam erişilemez kaldı. Müşterilerin online fatura ödemeleri yapamadığı tahminen 132 milyon dolarlık bir etki yarattı. Bir bankanın “internet bankacılığı sadece bir kanal” tezi, üç gün sonra anlamını kaybediyor.
23 Eylül, Facebook
Yılın en konuşulan kesintilerinden biri. Facebook, dört yıllık geçmişindeki en uzun kesintilerinden birini yaşadı: yaklaşık 2.5 saat erişilemez kaldı. Sebep, sonsuz döngüye giren bir cache invalidation hatasıydı: önbellekteki “geçersiz” işaretli kayıtlar veritabanına saniyede yüzbinlerce istek gönderecek şekilde tetiklenmeye başladı, veritabanı sıkıştı, sıkıştıkça uygulama daha fazla istek gönderdi. Sorunu durdurmak için Facebook ekibinin tüm cluster’ı geçici olarak durdurması gerekti. Robert Johnson’ın bu konuda yayımladığı post-mortem yazısı sektörde geniş yankı uyandırdı, feedback loop’ların production sistemlerde nasıl bir saatli bombaya dönüşebileceğine dair ders niteliğinde bir vaka.
Ekim, Foursquare (MongoDB)
Foursquare, Ekim ayında 11 saatten uzun bir kesinti yaşadı. Sebep, MongoDB tabanlı bir shard’ın belleğine sığamayan bir indeks oldu: aktif veri seti RAM’in üzerine taştığında performans çöktü, çöküş tüm sistem üzerinde basamaklı bir etki yarattı. Restore, yeniden indeksleme ve yeni shard’lara veri dağıtımı saatler aldı. MongoDB tarafı 10gen, sonrasında detaylı bir post-mortem yayımladı. NoSQL dünyasının yeni gelmiş olduğu bu dönemde, “şema esnekliği” bir avantajken kapasite planlamasının ne kadar kritik olduğunu hatırlatan bir vaka.
29 Ekim, PayPal
Ağ donanımındaki bir problem PayPal’ın global ödeme servislerinde yaklaşık 90 dakikalık bir kesintiye yol açtı. Milyonlarca ticari kullanıcı etkilendi; PayPal trafiği diğer veri merkezine yönlendirerek sorunu çözdü. Network donanım problemleri ne kadar saklanabilirse de eninde sonunda görünür hale geliyor.
Kasım, Windows Live Hotmail
Hotmail kullanıcılarının bir kısmı yaklaşık üç gün süresince posta kutularını boş gördü. Microsoft kayıp olmadığını, problemin görüntüleme katmanında olduğunu açıkladı, ama olay kullanıcı algısı açısından ciddi bir darbe aldı. BPOS müşterileri de o sırada Exchange Online’da aralıklı kesintiler raporladı.
5 Aralık, Tumblr
Tumblr veritabanı cluster’ında yaşanan bir kesinti ve ardından oluşan ağ problemleri nedeniyle yaklaşık 24 saat erişilemez hale geldi. Olay sonrasında kullanıcı sayısı hızla büyüyen Tumblr, yeni bir veri merkezi yatırımı duyurdu ve aylık 500 milyon sayfa görüntülemeyi taşıyacak bir altyapıya geçti.
Yılı toparlarsak: dört ortak tema
Bu listenin üzerinden geçtikten sonra birkaç tekrarlayan kalıp dikkat çekiyor:
1. Veritabanı, hâlâ en sık kırılan halka
Facebook (cache → DB feedback loop), Foursquare (MongoDB shard out-of-memory), WordPress.com (schema change), Chase (3. parti DB yazılımı), Tumblr (DB cluster çökmesi), yılın kesintilerinin neredeyse tamamında veritabanı katmanı bir şekilde başrolde. Application katmanını yatayda ölçeklemek kolay; veritabanını yatayda ölçeklemek hâlâ en zor problem ve operasyonel hatalara en açık nokta.
2. Feedback loop’lar saatli bombadır
Facebook vakası bu yılın en öğretici olayıydı: doğru çalışan iki sistemin yanlış birleşimi, hiçbirinin tek başına yapamayacağı bir hasar yaratabiliyor. Cache invalidation, retry politikaları, otomatik yeniden bağlanma mantığı, bunların hepsi düşük yükte çalışırken yüksek yükte sistemi öldürebiliyor. Bunun için chaos testleri, kapasite simülasyonları ve “circuit breaker” mantığı (Michael Nygard’ın “Release It!” kitabındaki kalıp) artık ihmal edilebilir lüks değil.
3. Tek bölge / tek sağlayıcı bağımlılığı
Amazon EC2 vakaları, AWS’in ne kadar olgun bir hizmet sunduğundan bağımsız olarak tek bölgeye bağlı kalmanın riskini bir kez daha gösterdi. 2010’da hâlâ pek çok ekibin “biz Multi-AZ’a geçeceğiz, ama henüz sıra gelmedi” dediği bir dönemdeyiz; yıl sonu bilançosuna baktığımızda bu işi geciktirmenin maliyeti net.
4. Şeffaflık kazanıyor
Yılın olumlu yanı: hem Facebook hem Foursquare hem WordPress.com tarafı, kesintilerin ardından oldukça detaylı public post-mortem yazıları yayımladılar. Birkaç yıl önceki “sustur ve geçiştir” kültüründen, “açıkça anlat, ders çıkar, başkalarına da fayda olsun” kültürüne geçiş net biçimde görünüyor. Kullanıcı güveni kısa vadede sarsılıyor; uzun vadede ise bu şeffaflık güveni geri kazandırıyor.
2011’e bakış
2011’in gündemi büyük ihtimalle şu konuların etrafında dönecek:
- Multi-region dayanıklılık. Tek-bölge mimarilerin terk edilmesi.
- NoSQL kapasite planlama. MongoDB, Cassandra, HBase gibi yeni sistemlerin operasyonel olgunluğunun artması.
- Daha şeffaf SLA tartışmaları. Bulut sağlayıcılarının ”% 99.95” rakamlarının ardındaki tanımların yeniden konuşulması.
2010 bize bir şey öğrettiyse, o da şu: ölçek büyüdükçe küçük operasyonel hatalar büyük krizlere dönüşüyor. Önümüzdeki yıl, bu derslerin altyapıya nasıl yansıdığını yakından izleyeceğiz.