Arızaya dayanıklılık

Arızaya dayanıklılık, bir sistemin  bileşenlerinden birisinin tamamen arızalanarak işlemez hale gelmesi ya da bileşenin içinde bir ya da daha fazla arıza oluşması durumunda, sistemin düzgün bir şekilde işlemeye devam edebilme özelliğidir. Eğer sistemin iş kalitesi azalırsa bile, küçük bir arızanın bile tamamen durmaya yol açtığı safça/amatörce tasarlanmış bir sistemle karşılaştırıldığında, iş kalitesindeki azalma arızanın ciddiyetiyle doğru orantılıdır. 'Arızaya dayanıklılık'  yüksek kullanılabilirlik tasarımlarında veya kritik-yaşamsal sistemlerde çok rağbet gören bir özelliktir.
Arızaya dayanıklı tasarım bir sistemin herhangi bir parçası başarısız olduğunda sistemin tamamen başarısız olması yerine, muhtemelen azalmış bir oranda, amaçlanan işlevini sürdürmesini sağlar. Kavram en çok da, kısmi arıza/başarısızlık durumunda çıktı miktarındaki azalma veya tepki süresindeki artmaya rağmen, öyle ya da böyle, tam işlevselliğini korumaya devam etmek üzere tasarlanan bilgisayar sistemlerini tanımlamak için kullanılır. Bu durumdaki bir sistemin tamamı donanım ya dayazılımdaki sorunlar sebebiyle durmayacaktır. Başka bir alandaki örnek ise lastiklerinden birisi delinse bile sürülebilir olarak tasarlanmış bir motorlu araç olacaktır. Malzemenin yorulması, aşınma/korozyon, imalat kusurları ya da darbe alma gibi durumlarda dahi bütünlüğünü koruyabilen bir yapı ise başka bir örnektir.
Tekil sistem kapsamında Arızaya dayanıklılık, olağan dışı koşulların oluşmasını önceden tahmin ederek ve bu koşullarla başa çıkabilecek bir sistem kurarak elde edilebilir, ve genel olarak öz-dengeleme (self-stabilization) hedeflenerek sistemin arızadan-arındırılmış duruma yaklaşması sağlanabilir. Ancak, eğer sistemin başarısız olmasının sonuçları felaket düzeyindeyse, veya yeteri kadar güvenilir yapmanın maliyeti çok yüksekse, daha iyi bir çözüm belki de bir çeşit 'çoğaltma' kullanmak olacaktır. Her hâlükârda, eğer sistemin başarısız olmasının sonuçları felaket düzeyindeyse, sistem güvenli moda düşmek için 'eski haline dönme' (reversion) özelliğini kullanabilmelidir. Bu 'geri-alma'(roll-back) kurtarmasına benzerdir ancak işlev döngüsü içerisinde insan bulunuyorsa, bir insan eylemi olabilecektir.

Terimler/Terminoloji

Yüksek derecede arızaya-dayanıklı bir sistem; bir ya da iki bileşeni arızalansa bile aynı seviyede verim üretebilir. Örneğin, yedek elektrik üreteci (jeneratörü) olan bir bina şebeke elektriği kesilse bile duvardaki elektrik çıkışlarına aynı voltaj değerini verecektir.
Arızaya-hazırlıklı (fail safe), veya arızaya-korumalı, ya da zarifçe arızalanacak şekilde tasarlanmış bir sistem, azalmış bir oranda işlem görse de ya da tamamen arızalansa da, bunu insanları, mülkü, veya veriyi; yaralanmadan, zarardan, gizlilik ihlalinden, ya da içeriğin açık edilmesinden koruyacak şekilde yapar. Bilgisayarlarda, bir program tutarlı çıkışı (zarif çıkış -graceful exit) gerçekleştirerek (programın denetimsiz şekilde çakılmasına göre) Arızaya-hazırlıklı olabilir, bu şekilde yaşanan arıza sonrası oluşabilecek veri bozulmasının önüne geçmiş olur. Benzer bir anlam ayrımı, sistem ve ağ güvenliği kapsamındaki, "iyi arızalanmak" ve "kötü arızalanmak" (failing badly) kavramları arasında yapılmaktadır.
Nükleer askeri strateji kapsamındaki "ölümcül başarısızlık" (Fail-deadly) ise tam karşıtı olan bir stratejidir ve hedeflerini, sistemin bir kısmı arızalansa ya da yok olsa dahi,  öldürmek ya da yaralamak üzere tasarlanmış silah sistemleri için kullanılabilir.
zarif bozulma (graceful degradation) ya da hafifçe arızalanma (fail soft- bilgisayar sistemlerinde kullanılan "fail safe"'e benzer bir kavram) tecrübe edecek şekilde tasarlanmış olan bir sistem bazı bileşenleri arızalandıktan sonra düşük verim seviyelerinde çalışır.  Örneğin bir bina, şebeke elektriği yetersiz geldiğinde, insanların karanlıkta asansörlerde sıkışıp kalmaması için lambaların düşük enerjide ve asansörlerin düşük hızda çalıştırılması sağlanabilir. Bilgisayar sistemindeki bir zarif bozulma örneği olarak çevrimiçi video yayını için yeterli bağlantı bant genişliği yoksa, videonun yüksek çözünülüklü hali yerine düşük çözünülüklü hali yayımlanabilir. Programlamada kullanılan Aşamalı İyileştirme (Progressive enhancement) yöntemi kapsamında eski, küçük ekranlı veya kısıtlı özelliklere sahip internet tarayıcıları için web sayfalarının basit işlevsel biçimleri hazırlanırken  daha yeni ve gelişmiş teknolojileri kullanabilen ya da daha geniş görüntüleme olanakları bulunan tarayıcılar için aynı sayfaların daha gelişmiş halleri hazırlanmaktadır.
Arızaya-dayanıklı bilgisayar sistemlerinde (fault-tolerant computer system), sağlam (robust) olarak kabul edilen programlar; arızaya,aykırı duruma veya gerçersiz/yanlış girdiye rağmen, tamamen çökmek yerine, işlevini sürdümek üzere tasarlanmışlardır. Yazılım kırılganlığı (Software brittleness) 'sağlamlık' kavramının tam tersidir. Esnek ağlar (Resilient networks), bazı veri bağlantılarının ya da veri bağlatılarının kesiştiği noktalardan bazılarının arızalanması durumunda dahi (ağın tümünde) veri iletimini  devam ettirirler; esnek binaların ve altyapıların da deprem, sel veya çarpışma durumlarında, benzer şekilde sistemin tamamen başarısız olmasını (çökmeyi) engellemesi beklenir.
Yüksek başarısızlık saydamlığına (failure transparency) sahip bir sistem, tam verimle çalışmaya devam etse bile, kullanıcılarına bileşenlerden birinde arıza meydana geldiğini bildirir; böylece arıza gideribilir ya da yaklaşan 'Tam Bozulma/Durma' durumu tahmin edilebilir. Benzer şekilde, hızlı-arıza (fail-fast) türündeki bir bileşen, iş akışının devamındaki bileşenlerin arıza vermesini bekleyip en sonunda arızayı bildirmek yerine, ilk arıza noktasını bildirmek üzere tasarlanmıştır. Bu yöntem altta yatan sorunun daha kolay çözümlenmesini sağlar ve bozuk durumdaki sisteme uygunsuz işlem yapılmasını engelleyebilir.

Bileşenler

Eğer her bileşen, alt bileşenlerinden birisi arızalandığında, işlemeye devam edebiliyorsa, bu durum tüm sistemin benzer şekilde, bileşenlerden birindekiarıza durumunda, işlmeye devam edebilmesini sağlayacaktır. Bir yolcu aracı örnek olarak kullanılacak olursa, bir arabanın patlamayan lastiği ("run-flat" tire) olabilir ki bu lastik katı kauçuk iç çekirdeğe sahip olabilir böylece lastik delinse de patlamayacağından araba kullanılmaya devam edecektir. Delinmiş bir patlamayan ("run-flat") lastik azaltılmış bir hızda kısıtlı bir süre kullanılabilmektedir.

Örnekler

Donanımsal Arızaya dayanıklılık bazen bozuk parçaların, sistem hala işler haldeyken, çıkarılıp yenileriyle değiştirilmelerini gerektirir (bilgisayar sistemlerindeki karşılığına Çalışırken Parça Değişimi - hot swapping denmektedir ). Tek bir yedekle oluşturulmuş böyle bir sisteme tek noktada dayanıklı (single point tolerant) denmektedir, ve Arızaya dayanıklı sistemlerin büyük çoğunluğu bu şekildedir. Böyle sistemlerde Bozulmalar arası ortalama süre (mean time between failure - MTBF);  işletmenlerin, yedek de ayrıca bozulmadan önce, bozuk aygıtları değiştirmesine yetecek kadar uzun olmalıdır (Ortalama onarım süresi-mean time to repair - MTTR). Bozulmalar arası sürenin olabildiğince uzun olması işleyişe yardımcı olacaktır, ancak bu özellik arızaya-dayanıklı sistemlerde özel olarak gerekmemektedir.
Arızaya dayanıklılık  bilgisayar uygulamalarında belirgin bir şekilde başarılıdır. Tandem Computers şirketi bu tür sistemlerin pazarlanması amacıyla kurulmuştur, Aralıksız (NonStop) çalışan sistemlerinde tek-noktada dayanıklılığı kullanmışlardır. Şirketin bu tür sistemlerinin Kesintisiz çalışma süresi (uptime) yıllarla ölçülmektedir.
Arızaya-hazırlıklı mimariler ayrıca bilgisayar yazılımını da kapsayabilir, örneğin işlem (process) çoğaltılması gibi.
Veri biçimleri de ayrıca zarifçe bozulmak üzere tasarlanabilirler. Örneğin HTML , ileriye uyumlu olacak şekilde tasarlanmıştır. Böylece  yeni HTML nesnelerinin/tanımlarının, onları anlayamayan/tanımlayamayan Web tarayıcıları tarafından göz ardı edilmesi sağlanmakta ve yüklenen HTML belgesinin dengesiz olması engellenmektedir.

İlgili terimler

Arızaya dayanıklılık ile nadiren sorun yaşayan sistemler arasında bir fark bulunmaktadır. Örneğin,Western Electric şirketinin Çapraz bağlantı(crossbar) sistemlerinin kırk yılda toplam iki saatlik arıza oranları vardı,ve dolayısıyla yüksek oranda arıza oluşmamasına yatkın idiler. Ancak bir arıza meydana geldiğinde tamamen duruyorlardı, ve dolayısıyla arızaya dayanıklı değillerdi.