Eleştirel sistemlerde Downtime Yüksek Maliyeti

Uzay, enerji, ulaşım ve sağlık gibi sektörlerde, yazılım hataları sadece rahatsızlıklar değildir - örneğin, New York Menkul Kıymet Borsası'nın 2015 kesintisi, dış ticarette milyonlarca kayıp, bir yazılım aksaklığı, teknik borç ve iyileştirme sistemi dayanıklılığını azaltmak için bir yaklaşımla yapılır, ancak yeni riskleri tanıtmak için hassas bir şekilde uygulanmalıdır.

Minimiz Downtime için Temelleri

Görev-kritik ortamlarda etkili yeniden faktörleme üç sütunda geri dönüyor: [DÜDÜDÜ:0] Davranış koruma[Dönetici:2) Herhangi bir tek değişiklikle patlamanın yarı yarıya indirilmesini sağlar.Dörtücü testler[Döneticiler) Her adımın sistemdeki izinden sonra tekrarlayıcının tekrarlayıcının tekrarlayıcının tekrarlayıcı hale gelmesini sağlar.

Güvenli Refaksiyon için Anahtar Stratejileri

Paralel Runs ve Shadow Mode

Gölge modunda, refaksiyonlu bileşen orijinal sistemle birlikte çalışır, aynı girişleri işlemez, ancak sessiz bir şekilde performanslarını etkilemeden farklılıkları tespit etmek için sonuçları karşılaştırır.Bir kez güven yüksek olduğunda, gölge bileşeni birincil duruma terfi edilebilir.Bu teknik özellikle de temel algoritmaların veya veri işleme hatlarının doğru olduğunu ifade eder.

Özel Toggles

Özel toggles (veya bayraklar) bir yapılandırma geçişinin arkasındaki yeniden faktörlü kodu kapatmanıza izin verir.Refaklı yol, takımlara sorunları ortaya çıkarsa yavaş veya geri dönme yeteneği verir. kritik sistemlerde,ggles statik olmalıdır (kullanış zamanından itibaren) çünkü beklenmedik davranışlardan kaçınmak için statik olmalıdır.

Canary releases

Bir kanaryo serbest bırakılması, kontrol edilen sisteme küçük bir trafik yüzdesi gönderirken, çoğunluk stabil sürümde devam eder.Bu yaklaşım, üretim yükü altında gerçek dünya geçerliliğini sağlar.Eğer kanary yüksek hata oranları veya geç saatler gösterirse, trafik kontrol eden fiziksel ekipman için, kanary sürümler, canlı işlemlerden izole edilebilir test ortamları gerektirebilir.

Blue-Green Deployment

Blue-green dağıtım iki aynı ortamı koruyor: “mavi” (şimdilik istikrarlı) ve “yeşil” (reksiyonlu) Yeşil çevrenin kapsamlı bir şekilde geçerlileştirilmesinden sonra, trafik tek bir atom operasyonunda maviden yeşile geçiyor.

Planlanan Bakım Windows

En iyi çabalara rağmen, bazı rektörler şeffaf bir şekilde tanıtılamaz. Bu tür durumlarda, tanımlanmış bakım pencereleri sırasında zamanlama değişiklikleri - tercihen sistem yükü en düşük olduğunda. pencereyi açıkça paydaşlara iletişim kurmak ve bu geri dönüş prosedürlerinin provak ve belgelenmesini sağlamak.

Bir Robust Test Boru Hattı

Birim ve Entegrasyon Testleri

Kapsamlı bir test paketi kritik sistemler için tartışılmaz. Birim testleri bireysel işlevleri doğrularken, entegrasyon testleri mevcut bileşenlerle doğru etkileşime gireceğini onaylarken.Use}test kapsama araçları) test edilen kod yollarını tanımlamak için.[Dönetici-kritik yazılımlar için, dikkate değer bir şekilde doğrulayıcı olarak doğrulayıcı olarak doğrulayıcılar için, [8] Martin Fowpres sitesindeki kataloglama örneklerine göre desteklenmelidir.)

Regresyon Testi ve Sürekli Bütünleşme

Otomatik regresyon testleri her şeyden önce hataları yakalamakta çalışır. Sürekli entegrasyon (CI) boru hatları dakika içinde tam regresyon paketini yerine getirmeli. kritik sistemler için, aynı zamanda 370FLT:0)per regresyon testleri) düzeltmeden önce yeniden faktörlemeden emin olmak için.

Konilience için Kaos Mühendisliği

Kaos mühendisliği, stres altında nasıl davrandığını gözlemlemek için sisteme kasıtlı olarak başarısızlıklar enjekte eder. Yeniden yapılan bileşenlere yeniden yönlendirilen veya yeni başarısızlık modları değiştirebilen varsayımları ortaya çıkarabilir.Sisteme benzer şekilde Araçlar:0)Chaos Engineering)

Eleştirel Sistemler için Uygulama Adımları Yeniden

Değerlendirme ve Planlama

Sistem mimarisinin ayrıntılı bir analizi ile başlayın. İyi tanımlanmış modüller tespit etmek, yüksek test kapsaması ve güvenlik-kırık yollardan izole edilmiştir.UseENFLT:0) Bağımsız grafikler[Döneticileri) risk ve iş değeri ile rektör adayları anlamak için.

Version Control and Rollback

Her yeniden faktör değişikliği, bir uyarı ortamındaki geri dönüş prosedürü ile ayrı bir şubeye iş başlamadan önce istikrarlı bir serbest bırakılmasını sağlamak zorundadır.The rollback planı sadece kod geri çekilmez, aynı zamanda herhangi bir veritabanı göçleri veya yapılandırma değişiklikleri de uygulama.Bu yüzden bir olay sırasında ikinci doğa haline gelir.

Dalış Ortamları

Donanım, ağ topolojisinde aynaların üretimine yönelik bir ortam ve veri hacmi, gerçek dünya girişlerini ve çıktılarını çoğaltmak için gereklidir.Buradaki tüm test paketi ve performans ölçülerini çalıştırmadan sonra.Bu arayüzler için fiziksel makineler (örneğin, robotik kontrolörler, güç ızgara monitörleri), stilize etmek gerçek dünya girişlerini ve çıktılarını çoğaltmak gerekir.

İzleme ve gözlemlenebilirlik

Post-refaklama hem işlevsel hem de operasyonel sağlığı takip etmelidir. Set upurFLT:0") Hata hızları için, gecikme hızları ve kaynak tüketimi değişiklikleri için gecikmeler için bir ayarlama.En azından bir normal işlem döngüsü için dağıtılmış bir kod. kritik sistemlerde, sadece yazılımları değil, aynı zamanda anomaliler için bağlantılı bir donanıma sahip olun.

Eleştirel Kod için Ortak Yeniden Yardımcı Teknikler

Tüm rektör teknikleri eşit derecede güvenlidir. Mekanik ve geri dönüşümlü olanlar:

  • [FONT=0)Extract Method[[Döntme Yöntemi[Döntilmiş)[Dönemli Yöntem[[Döntme Yöntemi[Dönetmelik)[Dönlendirmek için yeni bir yönteme bir kod bloğu hareket edin.
  • [FONT=0]Rename Değişken veya Fonksiyonlar[Döneticiler: 1 ) – Uygulamayı değiştirmeden açıklık geliştirin. Tüm referansları yakalamaya yardımcı olmak için IDE-supported yeniden faktör kullanın.
  • [FONT:0)Replace Magic Number with Sembolic Constant) – bakım sırasında karışıklıka neden olabilecek sert kodlanmış gerçeklerle.
  • [FONT=0]Simplify Durumal Expressions[DÜT:1) – Decompose kompleksi eğer-else cascades into guard klütleri veya anahtar ifadeleri, ancak sadece tüm dalların egzoz testinden sonra.
  • [FONT=0)Introduce Parat Object) – Grup ilgili parametreleri tek bir nesneye yöntemi imza karmaşıklığı azaltmak için.

Her teknik, bir sonraki sürümde test edilmeli ve işlenmelidir.TheDANFLT:0)Software Development Group'un beyaz kağıdını yeniden faktörleyici güvenlik-kritik sistemlere karşı yeniden tasarlamaya yönelik olarak ) yüksek kullanılabilirlik ortamları için doğru yaklaşımı seçmeye yönelik pratik rehberlik sağlar.

Risk Mession ve Yönetişim

Kod Yorumlar ve Pair Programlama

Her rektörlük işlemi sistemle tanıdık en az iki mühendis tarafından gözden geçirilmesi gerekir.Rektörlük seansı sırasında Pair programlaması, önemsiz hataları engelleyebilir ve bilgi transferini teşvik edebilir. Yorumlar davranış koruma, test kapsamı ve yeniden faktörleme planına uymalıdır.

Uzman Geçerlilik

Kritik alanlarda, alanda yaygın olarak kullanılan bir kısaltma ile bir değiştirilebilir veya bir zamanlama-ailede kopyalanan bir yöntemden oluşan bir değişkenin şimdi çatışmaların, alanda yaygın olarak kullanılan bir kısaltma ile yeniden tanımlanmasını sağlayabilir.

Change Advisory Boards

Daha büyük sertifikalı bir sistemin parçası olan yazılım için (örneğin, aviyonik, nükleer reaktör kontrolleri), herhangi bir kod değişikliği bir değişiklik kontrol kurulundan onay gerektirebilir. Yönetim kurulu, yeniden faktörleme planı, risk değerlendirme, geri dönüşüm stratejisi ve geçerlilik kanıtı.Prof.Prof.Prof.Prof.Prof.Prof.Prof.Prof.Prof.Prof.Prof.Prof.Prof.Exp.Exp.pdf.The software that is recommended the rephanement of validation. Documenting logice and test results in a format with industry standartları (e.g., DO-178C, IEC 61508)

Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç

Yeniden deneme, kendi başına bir son değildir - güvenlik-kahkadede başka bir değişiklik olarak yeniden düzenlemenin bir anlamı vardır: Tamamlanan değişiklikler, titiz testler ve risk altındaki dağıtım stratejileri, mühendisler, sabit bir zamanda teknik borcu azaltamazken, toplumun bağlı olduğu sistemlerle yeniden ilgilenmek için temeldir: plan iyice, test obsif, ve her zaman bir geri dönüş hazır.