Güvenilirlik testi stratejisi tasarlama önerileri

Bu Azure Well-Architected Framework Güvenilirliği denetim listesi önerisi için geçerlidir:

RE:08 Test ve üretim ortamlarınızda kaos mühendisliği ilkelerini uygulayarak dayanıklılık ve kullanılabilirlik senaryolarını test edin. Etkin arıza ve benzetimli yük testi gerçekleştirerek düzgün performans düşüşü uygulama ve ölçeklendirme stratejilerinizin etkili olduğundan emin olmak için testi kullanın.

Bu kılavuzda, iş yükünüzün güvenilirliğini doğrulamak ve iyileştirmek için güvenilirlik testi stratejisi tasarlamaya yönelik öneriler açıklanmaktadır. Güvenilirlik testi, iş yükünüzün dayanıklılığına ve kullanılabilirliğine, özellikle çözümünüzü tasarlarken tanımladığınız kritik akışlara odaklanır. Bu kılavuz, hata ekleme ve kaos mühendisliğine özgü genel test kılavuzu ve rehberliği sağlar.

Tanımlar

Süre Tanım
Kullanılabilirlik Bir uygulama iş yükünün önemli bir kapalı kalma süresi olmadan iyi durumda çalıştığı süre.
Kaos mühendisliği Uygulamaları ve hizmetleri gerçek dünyadaki streslere ve hatalara maruz bırakma uygulaması. Kaos mühendisliğinin amacı, güvenilmez koşullara ve eksik bağımlılıklara dayanıklılığı oluşturmak ve doğrulamaktır.
Hata ekleme Sistemin dayanıklılığını test etmek için sisteme hata ekleme eylemi.
Kurtarılabilirlik Dayanıklılık eş anlamlısı.
Dayanıklılık Bir uygulama iş yükünün hata modlarına dayanabilme ve bu modlardan kurtarma olanağı.

Temel tasarım stratejileri

Genel test kılavuzu

  • Mevcut eşikleri, hedefleri ve varsayımları doğrulamak için düzenli olarak test gerçekleştirin. İş yükünüzde önemli bir değişiklik olduğunda, düzenli test çalıştırın. Test ve hazırlama ortamlarında çoğu testi gerçekleştirin. Ayrıca üretim sistemine karşı bir test alt kümesi çalıştırmak da faydalıdır. Üretim ortamıyla anahtar test ortamlarının bire bir eşliğini planlayın.

  • Tutarlı test kapsamı ve yeniden üretilebilirlik sağlamaya yardımcı olmak için testi otomatikleştirin. Yaygın test görevlerini otomatikleştirin ve bunları derleme süreçlerinizle tümleştirin. El ile test yazılımı zahmetli ve hataya duyarlıdır, ancak el ile keşif testi gerçekleştirebilirsiniz. Otomatik test geliştirmeniz gereken durumlarda, geliştirilecek testlerin kapsamını belirlemek için el ile test kullanın.

  • Geliştirme döngüsünün başlarında dayanıklılık ve kullanılabilirlik testi gerçekleştirmek için sola kaydırma testi yaklaşımını benimseyin.

  • Basit bir belge biçimini uyarlayın, böylece herkesin her normal testin sürecini ve sonuçlarını anlaması kolaydır.

  • Belgelenen sonuçları operasyonel ekipler, teknoloji liderliği, iş paydaşları ve olağanüstü durum kurtarma paydaşları gibi uygun ekiplerle paylaşın. Sonuçlar, hizmet düzeyi hedefleri (SLO'lar), hizmet düzeyi sözleşmeleri (SLA'lar), kurtarma süresi hedefleri (GPO'lar) ve kurtarma noktası hedefleri (GPO'lar) gibi güvenilirlik hedeflerinin iyileştirilme durumunu bilgilendirmelidir.

  • Yedekleriniz için düzenli bir test temposu oluşturun. Yedeklemelerin geçerli olduğundan ve geri yüklemelerin işlevsel olduğundan emin olmak için verileri yalıtılmış sistemlere geri yükleyin.

  • Kurtarma beklentilerinin uygun olduğundan emin olmak için kurtarma süresi ölçümlerini belgeleyip olağanüstü durum kurtarma paydaşlarınızla paylaşın.

  • Otomatik, öngörülebilir ve verimli bir dağıtım sürecine sahip olduğunuzdan emin olmanıza yardımcı olması için endüstri standardı dağıtım testi yordamlarını kullanın.

  • İş yükünüzün geçici hatalara dayanabilme becerisini test edin. Daha fazla bilgi için bkz. Geçici hataları işlemeye yönelik öneriler.

  • İş yükünüzün yük desenlerindeki değişikliklere ve kullanımdaki ani artışlara yanıt verme yeteneğini test edin. Ölçeklendirme stratejinizi test etmeye yardımcı olması için bu bilgileri kullanın. Yük ve stres testi hakkında bilgi için bkz. Test önerileri.

  • Hata ekleme kullanarak iş yükünüzün bağımlı hizmetlerdeki veya diğer bağımlılıklardaki hataları nasıl işlediğini test edin.

  • Kendi kendini iyileştiren ve kendini koruma tasarımınızın arızalara nasıl yanıt verdiğini test edin ve doğrulayın. Otomatik ve el ile kurtarma işlemlerini test edin.

  • Felaket hatalarına ve diğer önemli olaylara yanıt vermek için olağanüstü durum kurtarma planınızı test edin.

  • Hata ekleme özelliğini kullanarak iş yükünüzün düzgün bir şekilde düşürülme ve bileşen arızasının patlama yarıçapını en aza indirme becerisini test edin.

Planlı ve plansız kesintilerden yararlanın

İş yükünüz planlı bakım veya planlanmamış bir kesinti nedeniyle çevrimdışı olduğunda, test gerçekleştirme ve iş yükünüzü anlamanızı geliştirme fırsatınız vardır. Aşağıdaki bölümlerde her senaryo için öneriler sağlanır.

Planlı bakım

Güncelleştirmeler veya düzeltme ekleri için planlı bakım pencereleriniz olduğunda, bakım çalışmasında yer almayan bileşenleri ve akışları test edebilirsiniz. İş yükünü beklenmedik bir şekilde düşürme veya tamamen çevrimdışı yapma riski olmadan testler gerçekleştirin. Bakım pencereniz sırasında yeterli zamanınız varsa, bakım çalışması tamamlandıktan sonra bakımla ilgili bileşenleri ve akışları da test edebilirsiniz.

Planlanmamış kesinti

İş yükünüz hakkında daha fazla bilgi edinmek ve önceliğe göre sıralanmış şu adımları izleyerek dayanıklılığını artırmak için her kesinti olayını bir fırsat olarak kullanın:

  • Müşterileriniz için iş yükünü yeniden çevrimiçine alın. Bunu yapmak için sorun için bir geçici çözüm gerçekleştirebilir, sorunu çözebilir veya kurtarma işlemlerini başlatabilirsiniz.

  • Kesintinin kök nedenini belirleyin ve giderin. Araştırmanın bir parçası olarak kök nedeni düzeltebiliyorsanız, kök nedeni ve düzeltmek için aldığınız ölçüleri belgeleyebilirsiniz. Sorun daha sonra ek bir bakım penceresi oluşturmayı gerektiriyorsa, azaltma ölçülerinizin beklenen yükü kapsamlı bir şekilde test ederek işleyebileceğinden emin olun. Risk azaltma önlemlerinizi karşılamak için yeterli izleme ayarladığınızdan emin olun.

  • Varsa, iş yükünüzdeki tüm bileşenlerde benzer sorunlardan etkilenebilen aynı sorunu veya yapılandırma zayıflıklarını arayın. Bu bileşenleri proaktif olarak ele almak için bu fırsatı kullanın. İş yükünüzdeki benzer sorunların desenlerini algılamak için olay geçmişinize başvurun.

  • Test stratejinizi geliştirmek için bulgularınızı kullanın. Aynı hatayı doğrudan test ederek kök nedeni ve benzer sorunları başarıyla giderdiğinizden emin olun.

Hata ekleme ve kaos mühendisliği kılavuzu

Hata ekleme testi, iş yükünün bileşen hatalarına tepki verme yeteneğini vurgulayarak kaos mühendisliği ilkelerini izler. Üretim öncesi ve üretim ortamlarında hata ekleme testi gerçekleştirin. Altyapı ve uygulama katmanlarına test uygulama. Öğrendiğiniz bilgileri uygulayın Hata modu analizi gerçekleştirmeye yönelik öneriler , yalnızca öncelik sırasına eklediğiniz hataları test ettiğinizden ve hataları gideren azaltma stratejilerine sahip olduğunuzdan emin olun. Kaos mühendisliğinin temel yönergeleri şunlardır:

  • Proaktif olun. Hataların gerçekleşmesini beklemeyin. Sorunları üretim ortamınızı etkilemeden önce bulmak ve düzeltmek için kaos denemeleri yaparak hataları tahmin etmeye çalışın.

  • Başarısızlığı benimseyin. Sisteminizde oluşan hataları kabul edin ve bu hatalardan bilgi edinin. Hataları karmaşık sistemlerin doğal bir parçası olarak görün ve sisteminizin güvenilirliğini öğrenmek ve geliştirmek için fırsatlar olarak kullanın.

  • Sistemi kırın. Dayanıklılığını test etmek için sisteminize kasıtlı olarak hata veya stres ekleyin. İş yükünüzün kurtarma özelliklerini test etmek ve geliştirmek için gerçek dünyadaki hataların veya kesintilerin simülasyonunu oluşturun.

  • Tek hata noktalarını erken tanımlama ve ele alma. Test sırasında, belgelerinizdeki hataları doğrulamak ve gidermek için hata modu analizinize başvurun ve güncelleştirin. İş yükünüzün kullanılabilirliğini artırmak ve kapalı kalma süresini en aza indirmek için yedeklilik ve segmentlere ayırma gibi güvenilirlik yaklaşımları uygulayın.

  • Korumaları ve düzgün azaltmayı yükleyin. Kullanılabilirliği artırmak için Devre Kesici düzeni veya Azaltma deseni gibi güvenlik önlemleri uygulayın. Hatalar sırasında iş sürekliliğini sağlayan düzgün performans düşüşü yaklaşımları uygulayın.

  • Patlama yarıçapını en aza indirin. Hata oluştuğunda bile kapsamının sınırlı olduğundan emin olmak için hata yalıtım stratejileri uygulayın. Sistem müşterileriniz üzerinde en az etkiyle çalışmaya devam eder.

  • Bağışıklık oluşturun. İş yükünüzün hataları önleme ve kurtarma becerisini geliştirmek için kaos mühendisliği denemelerini kullanın.

Kaos mühendisliği, iş yükü ekibi kültürünün ve sürekli bir uygulamanın ayrılmaz bir parçasıdır, tek bir kesintiye yanıt olarak kısa vadeli taktiksel bir çalışma değildir. Kaos denemelerinizi tasarlarken bu standart yöntemi izleyin:

  1. Bir hipotezle başlayın. Her deneme, belirli bir akışın belirli bir bileşenin kaybına dayanabilme becerisini test etme gibi net bir hedefe sahip olmalıdır.
  2. Temel davranışı ölçme. Denemenizi çalıştırırken düşürülmüş durumla karşılaştırmak üzere belirli bir denemede yer alan akış ve bileşenler için tutarlı güvenilirlik ve performans ölçümlerine sahip olduğunuzdan emin olun.
  3. Hata veya hata ekleme. Deneme, hızlı bir şekilde kurtarılabilir belirli bileşenleri kasıtlı olarak hedeflemeli ve hata eklemenin denemenin patlama yarıçapını kontrol etmeye yardımcı olacak etkisi hakkında bilinçli bir beklentiniz olmalıdır.
  4. Sonuçta elde edilen davranışı izleyin. Tek tek akış bileşenleri ve denemenin hatanın etkilerini düzgün anlamak için hedeflediğini uçtan uca akış davranışı hakkında telemetri toplayın. Hata ekleme sonuçlarının tam resmi için topladığınız ölçümleri temel ölçümlerle karşılaştırın.
  5. süreci ve gözlemleri belgeleyin. Denemelerinizin ayrıntılı kayıtlarını tutmak, gelecekteki kararları iş yükü tasarımı hakkında bilgilendirerek zaman içinde ortaya çıkarılmış olan boşlukları gidermenizi sağlar.
  6. Sonucu belirleyin ve üzerinde işlem yapma. İyileştirme olarak iş yükü kapsamınıza eklenebilecek düzeltme adımlarını planlayın. Tasarım geliştirme planlarının üretim dışı ortamlarda diğer dağıtımlarla aynı işlemlere göre gözden geçirildiğinden ve test edildiklerinden emin olun.

Teknik borcu hızla algılamak, yeni teknolojileri tümleştirmek ve değişen gereksinimlere uyum sağlamak için sürecinizi, mimari seçimlerinizi ve kodunuzu düzenli aralıklarla doğrulayın.

Hata ekleme denemeleri gerçekleştirdiğinizde şunları yapın:

  • İzlemenin yerinde olduğunu ve uyarıların ayarlandığını onaylayın.
  • Bir olayın sahipliğini almak için doğrudan sorumlu bir kişi (DRI) atama işleminizi doğrulayın.
  • Belgelerinizin ve araştırma süreçlerinizin güncel olduğundan emin olun.

Kaos testi stratejinizi iyileştirmek için aşağıdaki önerileri ve dikkate alınacak noktaları tümleştirin:

  • Sistem varsayımlarını sınama. Test ile iş yükünüzün dayanıklılığını ve iş yükü tasarım stratejilerinizi geliştirmeye çalışırsınız. Geçmiş deneyimler temelinde güvenilir olduğunu varsaydığınız bileşenlere ve akışlara hata ekleme fırsatlarını arayın. Bunlar yeni iş yükünüzde güvenilir olmayabilir.

  • Topoloji, platform ve kaynaklar gibi değişiklikleri doğrulayın. Hata ekleme testi de dahil olmak üzere kapsamlı test yapılmadan, değişiklikler yapıldıktan sonra iş yükünüzün tamamlanmamış bir resmine sahip olabilirsiniz. Örneğin, istemeden yeni bağımlılıklar tanıtabilir veya mevcut bağımlılıkları hemen görünür olmayan yollarla bozabilirsiniz.

  • SLA arabelleklerini kullanın. SLA'larınızın içinde kalmak ve kesintilerin olası itibarını veya finansal etkilerini önlemek için kaos testini sınırlayın. Akış ve bileşen kurtarma hedefleriniz testinizin kapsamını tanımlamaya yardımcı olur.

  • Kaosa ve hata eklemeye yatırım olarak bir hata bütçesi oluşturun. Hata bütçeniz, SLO'nun yüzde 100'ünün elde edilmesiyle üzerinde anlaşmaya varılan SLO'nun elde edilmesi arasındaki farktır.

  • Kapsamı aşıyorsa denemeyi durdurun. Bilinmeyen sonuçlar, kaos denemelerinin beklenen sonucu olur. Önemli sonuç verilerini toplamakla mümkün olduğunca az sayıda üretim kullanıcısını etkileme arasında denge elde etmeye çalışın.

  • Eklenen hataların uygun olduğundan emin olmak için geliştirme ekipleriyle yakından çalışın. Geçmiş olayları veya sorunları kılavuz olarak kullanın. Bağımlılıkları inceleyin ve bu bağımlılıkları kaldırdığınızda sonuçları değerlendirin.

  • İş yükünüz içindeki farklı bileşenler arasındaki daha önce keşfedilmemiş bağımlılıkları belirleyin ve belgeleyin ve bu bağımlılıklar kaos testiyle ortaya çıkar.

  • Kaos testi sırasında bulunan bağımlılıkları hesaba katmak için kurtarma planlarını gerektiği gibi ayarlayın.

  • Yeni denemeler ve testler için temel olarak denemelerinizin ve testlerinizin sonuçlarını kullanın. Beklenmeyen davranışlar ortaya çıktıkçe, yeni testler bu davranışları doğrudan hedef alabilir ve size bunlar için düzeltme stratejileri tasarlama fırsatı verebilir.

Denge: Üretimde hata ekleme testi kesintiye neden olabilir ve kapalı kalma süresine neden olabilir. Bu olasılık hakkında paydaşlarla şeffaf olun ve denemeleri sonlandırmak ve oluşturduğunuz hataları hızla tersine çevirmek için planları geri almak için koruma önlemlerine sahip olduğunuzdan emin olun. Üretimde istenmeyen kesintilere karşı koruma sağlamak için, yeterli yedeklilik için planlama yaptığınızdan ve paydaşlarınızın maliyet dengesini anladığınızdan emin olun.

Azure kolaylaştırma

Azure Test Plans, planlı el ile test, kullanıcı kabul testi, keşif testi ve proje katılımcılarından geri bildirim toplama için gereken tüm özellikleri sağlayan kullanımı kolay, tarayıcı tabanlı bir test yönetimi çözümüdür.

Azure Chaos Studio , bulut uygulamanızı ve hizmet dayanıklılığınızı ölçmenize, anlamanıza ve geliştirmenize yardımcı olmak için kaos mühendisliği kullanan yönetilen bir hizmettir. Azure Chaos Studio, Ignite 2023'te genel kullanıma ulaştı ve Azure altyapısını kullanarak uygulamanız için Hata ekleme ve dayanıklılık testi ile çalışmaya başlamanıza yardımcı olacak birçok özelliğe sahiptir.

Güvenilirlik denetim listesi

Önerilerin tamamına bakın.