“zarif bozulma” nedir?


11

Bu "Zarif yıkım" terimi hakkında çok şey duyuyorum.

Örneğin ,

 "An application server should gracefully degrage when it is under heavy load "

  "Graceful degradation of user interfaces.... "

Bu terim bana soyut bir şey gibi geliyor. Bunun ne anlama geldiğine dair somut bir örnek var mı?


5
Konu hakkında iyi bir makale codinghorror.com/blog/2011/04/…
JF Dion

Yanıtlar:


10

İşte bazı örnekler:

  • Eğer bazı kaynaklarınız tükenirse (tutamaçlar, soketler, bellek, sürücü alanı) çökmezsiniz, bunun yerine mevcut kaynaklarınızla hizmet verebileceğiniz kadar çok kullanıcıya hizmet vermeye devam edersiniz. Zarifçe bozulmayan bir şey, tasarım zarfının dışına alındığında çalışmayı durdurabilir.
  • Kullanıcılar için tasarladığınızdan daha ağır yükler için tasarladığınızdan daha yavaş yanıt alırsınız. Zarif bir bozulma olmadan, gereksinimler aşıldığında sistemin çalışmayı durdurması kabul edilebilir.
  • Disk sürücüsü arızası, CPU çekirdeğindeki arıza, hafızadaki arıza gibi hata durumları. Zarif bir şekilde düşürmek için tasarlanmış bir sistem, azaltılmış modda çalışmaya devam edebilir (örneğin, başarısız sürücüdeki verilere erişemeden, ancak yine de başarısız olmayan sürücüden veri teslim etmeden), diğeri sadece çökecektir.

5

"Bozulmuş" moda sahip uygulamalar, dahili veya harici bir sorun nedeniyle genellikle sınırlı özelliklere sahiptir. Örneğin, uygulamanızın iki farklı veri kaynağına bağlandığını düşünün. Bunlardan biri başarısız olursa, çalışmaya devam etmesi ancak kullanılamayan kaynakla ilgili tüm görsel (veya / ve arka uç) özellikleri devre dışı bırakması yine de mümkün olabilir.

Somut örnek: başvurunuzda iki veri kaynağı vardır, bunlardan birinde kişi depolarsınız, diğer hesaplarda depolarsınız. Hesap veritabanı başarısız olsa bile, uygulamanın bozulmuş bir modu varsa, hesaplarıyla etkileşimde olmasa da yeni kişiler oluşturabilmeniz gerekir.

Kullanıcı arayüzüne gelince, bu genellikle kullanıcıya bazı özelliklerin devre dışı bırakıldığını açıkça belirttiğiniz ve bir şeyin neden kullanılamadığı konusunda karanlıkta kalmaması için bazı uyarı mesajları görüntülediğiniz anlamına gelir.

Ayrıca, hataya dayanıklı sistemlerle ilgili bir Wikipedia girişi vardır .


2

Teknolojideki ilerlemeyle birlikte, her zaman tüm hedef kitleler tarafından desteklenmeyebilecek bir uygulamaya dönüşen değişiklikler oluyor. Bu tür senaryolarda , mevcut olan en iyisi için oluşturduğumuzu taklit eden zarif bir bozulma ile karşılaşırız, ancak yükseltilmemiş veya sistemleri desteklemeyebilecek olanlar için de güvenli bir başarısızlığa sahibiz.

Bunun en önemli örneklerinden biri, görüntülerin engellendiği veya kapatıldığı durumlar için yararlı <img>olan altözniteliğe sahip etikettir , şimdi bunlar görüntüler için bazı anlamlı bağlamlar vermektedir (elbette yalnızca belirlediğimizde).

Düşünebileceğim başka bir örnek, bir hata veya kullanılamaması durumunda tarayıcının sayfayı göstermek / görüntülemek için kendi genel bir sürümünü sağlar.

Şimdi ağır yükten bahsettiğiniz gibi, vuruşlarınız eşiği aşarsa ne yapılması gerektiği gibi bir planı dikkatli bir şekilde işaretlemeniz gerekir, belirli özellikleri devre dışı bırakır veya kritik olmayan bazı hizmetleri askıya alır ve size bir nefes verirsiniz. Tüm bunlar, kullanıcının sunucunun yanıt vermesi biraz zaman alabileceği veya x hizmetinin bir saat kadar kullanılamayacağı x şeylerinden haberdar olması için zarif bir bozulma ayarlamanıza yardımcı olur.


1

Bu, girdiler ve durum tasarım sınırlarını aştıkça, çıktıların mümkün olduğunca makul ve güvenilir kaldığı anlamına gelir.

100 eşzamanlı bağlantıyı işlemek için tasarlanmış bir sunucu ise, 101 veya 150 bağlantıda çılgın sonuçlar döndürmez veya döndürmeye başlamaz - yavaşlar veya belki birkaç bağlantıyı düşürür, ancak çoğunlukla çalışmaya devam eder. 1 milyar kaydı işlemek için tasarlanmış bir veritabanı ise, aniden 1,01 milyar olan kullanılamaz duruma geçmez.


1

Grafik sisteminiz yoksa (X11 sunucusu çalışmıyor gibi), programınız en azından ncurses gibi bir CLI sağlamalıdır.

vi, terminalde çok az özellik varsa eski gibi davranan aptal bir moda sahiptir.


1

Web uygulamaları oluştururken, siteniz JavaScript veya Flash veya kullanıcının sahip olmadığı veya devre dışı bıraktığı benzer tekniklere güvendiğinde zarif bir bozulma devreye girer.

Daha sonra, yalnızca HTML ile bazı temel işlevler sağlamalı veya en azından sitenin neden beklendiği gibi çalışmadığını bildirmelisiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.