Netflix ve Monkey Chaos'u duydunuz mu?
Netflix, dünyanın en popüler ücretli çevrimiçi film sağlayıcılarından biridir. Netflix, mevcut DVD posta abonelerine ücretsiz bir eklenti olarak 2007'nin başında akış hizmetini başlattı. İlk akış kütüphaneleri lansmanda sadece 1.000 başlık içeriyordu, ancak popülerlikleri ve talepleri artmaya devam etti, bu nedenle Netflix sürekli olarak akış kütüphanesine eklemelerde bulundu ve Haziran 2009'a kadar 12.000'den fazla başlığa ulaştı. Büyüyen oyunlarla Netflix, hizmetini ve müşteri deneyimini iyileştirmek için sistemlerinde hatalar yaratması gerekiyordu.
Netflix akış hizmeti başlangıçta Netflix mühendisleri tarafından Microsoft yazılımının üzerine oluşturulmuş ve dikey olarak değiştirilmiş sunucu raflarına yerleştirilmiştir. Bu hata noktası, Ağustos 2008'de büyük veritabanı bozulmasının DVD'lerin müşterilere teslim edilemediği üç günlük kesinti süresine neden oldu.Bu olaydan sonra Netflix mühendisleri, tüm Netflix yığınını monolitik mimariden Amazon Web Services'e dağıtılmış bulut mimarisine geçirmeye başladı.
Netflix, Netflix örneklerinin ve hizmetlerinin sahte örneklerini sonlandırılması için Chaos Monkey'i, sistem kararlılığını test etmek için tasarladı. Buluta geçtikten sonra Netflix, Amazon Web Hizmetlerine bağımlıydı ve üretim hizmeti altyapılarının kritik bileşenleri kaldırıldığında sistemlerinin nasıl tepki verdiğini göstermek için teknolojiye ihtiyaç duyuyordu. Amaç, herhangi öngörülmeyen başarısız bir geliştirme modelinden, başarısızlıkların kaçınılmaz olduğu düşünülen bir modele geçmekti.
Yüzlerce mikro hizmetin dağıtılmış bir mimarisine doğru bu büyük geçiş, çok fazla karmaşıklığı temsil ediyordu. Dağıtılmış bir sistemdeki bu karmaşıklık ve bağlantı düzeyi, çözülemez bir şey yarattı ve görünüşte yanlışlıkla kesintilerden kaçınmak için yeni bir yaklaşım gerektirdi. En önemli derslerden biri, başarısızlığı önlemenin en iyi yolu sürekli başarısız olmaktır. Mühendislik ekibinin, sisteme arızaları aktif olarak enjekte edebilecek bir araca ihtiyacı vardı. Bu, takıma sistemin olağan dışı koşullar altında nasıl davrandığını gösterecek ve onlara diğer hizmetlerin gelecekteki planlanmamış arızaları kolayca tolere edebilmesi için sistemin nasıl değiştirileceğini öğretecektir. Netflix ekibi, Chaos yolculuğuna başladı.
Chaos Monkey, yeni bir mühendislik uygulaması olarak Chaos Engineering'in başlatılmasına yardımcı oldu. Kaos Mühendisliği, arızalar meydana gelmeden önce arıza tespitine disiplinli bir yaklaşımdır. Sistemin arıza koşullarına nasıl tepki verdiğini aktif olarak test ederek, hataları genel hata haline gelmeden önce tanımlayabilir ve düzeltebilirsiniz. Kaos Mühendisliği, sistemlerinizde neler olduğunu düşündüğünüzü doğrulamanızı sağlar. Ölçebileceğiniz mümkün olan en küçük deneyleri yaparak, daha sağlam sistemlerin nasıl oluşturulacağını öğrenmek için kasıtlı olan şeyleri parçalayabilirsiniz.
2011 yılında Netflix, The Simian Army olarak bilinen diğer bazı araçlarla Chaos Monkey'in geliştirildiğini duyurdu. Üretim ekibi ve hizmetlerini yanlışlıkla devre dışı bırakmak için orijinal Chaos Monkey aracının başarısından esinlenen mühendislik ekibi, diğer arıza türlerine neden olmak ve anormal sistem koşullarını tetiklemek için tasarlanmış ek "simülasyonlar" geliştirdi. Örneğin, Latency Monkey, istemciden sunucuya RESTful iletişiminde yapay gecikmeler sunarak Netflix ekibinin hizmeti gerçekten kaldırmadan hizmetin kullanılamamasını simüle etmesini sağlar.
Sonuç olarak, Chaos Maymun adının nasıl ortaya çıktığını merak edebilirsiniz?
Bu, maymunların çevrimiçi faaliyetlerimizin tüm önemli özelliklerini barındıran veri merkezine (sunucu çiftlikleri) girdiğini düşünen Antonio Garcia Martinez'nin Chaos Monkeys adlı kitabında açıklanmıştır. Maymun kabloları rastgele yırtıp cihazı yok eder ve sistemi çalışmaz hale getirir. BT yöneticileri, bu maymunlara rağmen kimsenin zarar veremeyeceği bir bilgi sistemi tasarlamaya çalışıyorlar.