Giderek Yükselme Kaydeden Kaos Mühendisliği Nedir?

58
5
3
3
1
Giderek Yükselme Kaydeden Kaos Mühendisliği Nedir?
Kaos mühendisliği, yazılım sistemlerinin çökmesi halinde sistemin yaşayacağı kaosun önüne geçmeyi, yani sistemleri daha dayanıklı ve güvenilir kılmayı amaçlayan bir mühendislik stratejisidir.

Güvenilir yazılım nasıl yapılır? Son zamanlarda çalışmaktan aciz program sayısında o denli artış yaşanıyor ki, insan ister istemez bu sorunun cevabını aramaya başlıyor. Açıklar, çökmeler, hatalar, veri sızıntıları; günlük hayatımızda o denli yer edindiler ki, artık dikkat çekmez oldular. 

Birim testleri, uygulama performansı görüntüleme gibi mevcut araçlar, bir dereceye kadar işe yarıyor fakat, her derde deva babında bir çözüm sunmadıkları aşikar. Buna mukabil, sunulan hizmetlerin kalitesi ve güvenilirliğini olabildiğince arttırmaya dönük tasarlanmış 'kaos mühendisliği' olarak bilinen yeni bir alan çevresinde şekillenmekte olan bir hareket var. 

Bu hareketin evanjelistlerinden biri olan Kolton Andrus, Gremlin adlı kaos mühendisliği hizmeti veren girişimci bir firmanın yöneticiliğini yapıyor. Aynı zamanda firmanın da kurucusu olan Andrus, daha önce Amazon ve Netflix'teki yazılım ekiplerine, günümüzde kaos mühendisliğinin prensipleri olarak ortaya çıkan şeyleri aktarmıştı yıllarca.

Kavram aşamasında basit olan kaos mühendisliği metodolojisi, uygulamada oldukça ciddi zorluklar teşkil ediyor. Günümüzün yazılım sistemleri karmaşık ve birbiriyle oldukça ilişkili. Bu da örneğin bir web sayfasının hayata aktarılmasını, yüzlerce veri tabanı, dosya, resim ve diğer gereksinimlere mahkum kılıyor. Andrus'a göre mikroservis mimarisi tercihini yapan mühendislik ekipleri için 'katmerli patlama' durumu yaşanıyor. 

Kaos mühendisliği, bu tip sistemlerin karmaşıklığını ele alır. Sıradışı, çalkantılı ya da yenilikçi durumların sistem üzerinde canlandırılması yoluyla sistemin vereceği tepki ve performans gözlemlenir. Böylece sistemler bütünsel anlamda test edilir. Örneğin bir disk sunucusu aniden çökerse ya da DDoS saldırısı nedeniyle ağ trafiği aniden sekteye uğrarsa ne olur? Ya da her iki durum aynı anda gerçekleşirse? Mühendis ekip konuyla ilgili veriyi topladığında, sistemin daha dayanıklı olarak yeniden tasarlanması için bu verileri kullanabilir. 

Bu noktada Andrus, Netflix video için ayrılmış bir bilgilendirme sayfasını örnek gösteriyor. Olur da video yayını yapan site çökerse, doğal olarak filmlere erişim sağlanamaz. Fakat erişim sağlanamayan şey görüşlerle ilgili verilerin yer aldığı sayfa olursa, o takdirde kullanıcılar videoyu hala izleyebiliyor olurlar. Netflix bir sayfada yer alan bileşenlerin hangilerinin kullanıcıyı etkilemeden devreden çıkarılabileceği hakkında fikir sahibi olabilirse, işte o zaman sistemlerinin güvenilirliğinde artış sağlayabilir. 

Artık dünya çapında faaliyet gösteren bir kaos mühendisliği web sayfası, topluluğu ve düzenlenen etkinlikler var. Andrus, kaos mühendisliğinde karşılaşılan sorunları kavrayan ilk insanların, Cuma günü akşamı beliren krizlere müdahale etmek zorunda kalmış, sistem hatası ile yüzyüze kalmak istemeyen mühendisler olduğunu söylüyor.

Gremlin yakın bir zamanda halka açılmasına rağmen firma, Aralık ayında 7.5 milyon dolar tutarında mali destek sağladı. 

Modern toplumun yazılımlar alanında yaşadığı bu çöküşlerin tek nedeni bu hatalar değil. Aynı zamanda sayıları giderek artan mühendislik topluluklarının daha güvenilir sistemler oluşturma yolunda amacına ulaşamayan, başarısız testler hazırlamaları da neden oluyor bu duruma. Biraz olsun yaver giderse şansımız, yaşayacağımız bir nebze daha fazla kaos, yazılımlarımızın daha istikrarlı olmasını sağlayabilir. 

58
5
3
3
1
Emoji İle Tepki Ver
58
5
3
3
1