Güvenilirlik testi stratejisi tasarlama önerileri

Bu Azure İyi Tasarlanmış Çerçeve 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 simülasyon 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ılavuzları ve rehberlik 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 başarısızlıklara maruz bırakma uygulaması. Kaos mühendisliğinin amacı, güvenilir olmayan 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 için bir eş anlamlı.
Dayanıklılık Bir uygulama iş yükünün hata modlarına dayanabilme ve bu modlardan kurtarma olanağı.

Temel tasarım stratejileri

Güvenilirlik hazırlığını test edin

  • 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 yararlı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. Yazılımı el ile test etmek yorucudur ve hataya açıktır, ancak el ile keşif testi yapabilirsiniz. Otomatik test geliştirmeniz gereken durumlarda, geliştirecek 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 bir shift-left test yaklaşımı benimseyin.

  • Basit bir belge biçimini uyarlayarak 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 (RPO'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 olağanüstü durum kurtarma paydaşlarınızla belgeleyip 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ştirme 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.

  • Olağanüstü durum kurtarma planınızı olağanüstü hatalara ve diğer önemli olaylara yanıt verecek şekilde test edin.

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

Planlı ve plansız kesintilerden yararlanın

İş yükünüz planlı bakım veya planlanmamış bir kesinti nedeniyle çevrimdışı olduğunda, iş yükünüzü test etmek ve anlayışınızı geliştirmek için benzersiz bir 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ışmalarına dahil olmayan bileşenleri ve akışları test edebilirsiniz. İş yükünü beklenmedik şekilde düşürme veya tamamen çevrimdışına alma 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ımda yer alan 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 almayı gerektiriyorsa, azaltma ölçülerinizin kapsamlı bir şekilde test ederek beklenen yükü 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üz genelinde 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ğini kullanma

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 analizini gerçekleştirmeye yönelik öneriler, yalnızca öncelik belirttiğ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 keşfetmek ve düzeltmek için kaos denemeleri yaparak hataları tahmin etmeye çalışın.

  • Başarısızlığı kucaklayın. Sisteminizde oluşan hataları kabul edin ve bu hatalardan ders alın. 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 hatalar 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 gerçekleştirme.

  • Tek hata noktalarını erken belirleyin ve ele alın. 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 segmentasyon gibi güvenilirlik yaklaşımları uygulayın.

  • Koruyucuları ve düzgün azaltmayı yükleyin. Kullanılabilirliği artırmak için Devre Kesici deseni 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 minimum etkiyle çalışmaya devam eder.

  • Dokunulmazlı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 bir taktiksel çaba değildir. Kaos denemelerinizi tasarlarken şu 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 ekleme işleminin denemenin patlama yarıçapını kontrol etmeye yardımcı olacak etki konusunda 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. İş yükü kapsamınıza iyileştirme olarak eklenebilecek düzeltme adımlarını planlayın. Tasarım geliştirme planlarının üretim dışı ortamlarda diğer dağıtımlarla aynı süreçlere 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 yaparken ş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.
  • Belge 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şteki deneyimlere göre güvenilir olduğunu varsaydığınız bileşenlere ve akışlara hata ekleme fırsatlarını arayın. Yeni iş yükünüzde güvenilir olmayabilirler.

  • Topoloji, platform ve kaynaklar gibi değişikliği doğrulayın. Hata ekleme testi de dahil olmak üzere kapsamlı test olmadan, değişiklikler yapıldıktan sonra iş yükünüzün eksik bir resmine sahip olabilirsiniz. Örneğin, istemeden yeni bağımlılıklar tanıtabilir veya mevcut bağımlılıkları hemen belirgin 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 sonuçlarıdır. Ö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 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 ortaya çıkarmadığınız hataları hızla geri almak için planları geri almak için önlemlere sahip olduğunuzdan emin olun. Üretimde istenmeyen kesintilere karşı koruma sağlamak için yeterli yedeklilik planladığınızdan ve paydaşlarınızın maliyet dengelerini anladığınızdan emin olun.

Azure kolaylaştırma

Azure Test Planları , 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ın ve hizmet dayanıklılığınızı ölçmenize, anlamanıza ve geliştirmenize yardımcı olmak için kaos mühendisliğini 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 testlerini kullanmaya başlamanıza yardımcı olacak birçok özelliğe sahiptir.

Güvenilirlik denetim listesi

Öneriler kümesinin tamamına bakın.