Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Kesintiler ve arızalar tüm iş yükleri için ciddi endişelerdir. Güvenilir bir iş yükünün bu olaylardan kurtulması ve hedeflenen işlevselliğini tutarlı bir şekilde sağlamaya devam etmesi gerekir. Çalışmaya devam ederken hataları algılayıp dayanabilmesi için dayanıklı olmalıdır. Bir kesintinin dayanıklılık önlemlerini aşması durumunda iş yükünün üzerinde anlaşmaya varılan kurtarma hedefleri içinde geri yüklenebilmesi için kurtarılabilir olması gerekir. Ayrıca kullanıcıların söz verilen zaman aralığında iş yüküne söz verilen kalite düzeyinde erişebilmesi için de kullanılabilir olması gerekir.
Özellikle iş yükü dağıtılmış sistemlerde çalışacak şekilde oluşturulduğunda hataların oluşmayacağını varsaymak gerçekçi değildir. Bazı bileşenler başarısız olurken diğerleri çalışmaya devam edebilir. Bir noktada kullanıcı deneyimi etkilenebilir ve bu da iş hedeflerini tehlikeye atabilir.
İş yükü mimarileri uygulama kodu, altyapı ve işlemlerde güvenilirlik güvencelerine sahip olmalıdır. Tasarım seçenekleri, iş gereksinimleri tarafından belirtilen amacı değiştirmemelidir. Bu tür değişiklikler önemli ödünler olarak kabul edilmelidir.
Tasarım ilkeleri, geliştirme yaşam döngüsü boyunca dikkate almanız gereken güvenilirlik yönlerine yönelik rehberlik sağlamak için tasarlanmıştır. Önerilen yaklaşımlarla başlayın ve bir dizi gereksinim için avantajları gerekçelendirin. Stratejinizi ayarladıktan sonra , Güvenilirlik denetim listesini kullanarak eylemleri yönlendirin.
Bu ilkeleri tasarımınıza uygulamazsanız, iş yükü büyük olasılıkla üretimdeki sorunları tahmin etmeye veya işlemeye hazır olmaz. Sonuç, mali kayıplara neden olan servis kesintisi olabilir. Kritik iş yükleri söz konusu olduğunda, bu ilkelerin uygulanamaması güvenliği tehlikeye atabilir.
İş gereksinimleri için tasarım
|
|
|---|
Tasarım, tanımlanmamış veya belirsiz sonuçlara dayalı tahmin işi değildir. Güvenilirlik, kabul edilebilir kullanıcı deneyimi, tasarım kısıtlamaları ve başarının nasıl göründüğü ile nasıl ölçüldüğü konularında uyum sağlamayı hedefleyen kasıtlı bir etkinlik gerektirir.
net, ulaşılabilir ve belgelenmiş hedefler belirleyin, iş paydaşlarıyla müzakere edin ve gerçekçi bir yatırım ve tahminde yer edin. Bu gereksinimler, dayanıklılık stratejilerinden gözlemlenebilirlik araçlarına ve ölçeklendirme planlarına kadar mimari seçeneklerinizi doğrudan bilgilendirecektir.
| Yaklaşım | Fayda |
|---|---|
|
Çözümün kapsamını ve derinliğini tanımlamak için gereken bilgileri toplamaya odaklanın. İş hedeflerini etkileyen kısıtlamaları netleştirin. Üst düzey sorularla başlayın, örneğin: - Hangi dayanıklılık düzeyi, kurtarma, gözlemlenebilirlik ve basitlik gereklidir? - Maliyet, uyumluluk, coğrafya veya gecikme süresiyle ilgili tanımlı kısıtlamalar var mı? Bu bilgilere dayanarak, neleri başarmak için yeterli ve basit olduğunu belgele. |
Hedefleri ve sınırları anlamak, varsayım yapmayı önleyecektir. Aksi takdirde yinelemeli bir tasarım döngüsünde takılıp kalarak boşa harcanan çabalara ve gereksiz maliyetlere neden olabilirsiniz. |
| İş hedeflerini , gerçek kısıtlamalar dahilindeki mimari dengeleri ortak bir anlayışa dönüştürerek karar alma sürecine rehberlik edin. Etkileyen seçenekleri sunma: - Finansal maliyet - Mühendislik karmaşıklığı - Güvenlikle ilgili dikkat edilmesi gerekenler - operasyonel ek yük |
Bu, paydaşların sorularının maliyetini, karmaşıklığını ve operasyonel etkilerini anlamasına yardımcı olur ve onlara gerçekçi, uyumlu sonuçlara yol gösterir. |
| Çalışma süresi gibi genel ölçümler üzerinde her kritik kullanıcı akışı için güvenilirlik sonuçlarını tanımlamaya öncelik verir. Sistemdeki kullanıcıya yönelik özellikleri ve akışları belirleyin ve her biri için iş değerini, kullanım desenlerini ve dayanıklılık gereksinimlerini değerlendirin. Tasarım kararlarının iş hedeflerine uygun kalmasını sağlamak için akış düzeyinde fikir birliği sağlayın. |
Bu konuşma, paydaşları 'site her zaman çalışır durumda olmalıdır' gibi istenmeyen ifadelerden gerçek işlevlere ve sonuçlara bağlı pratik, ulaşılabilir beklentilere kaydırmaya yardımcı olur. Bu sonuçlar teknolojiyle neyin çözüldüğünün ve ek iş sürekliliği planlarıyla nelerin ele alınabileceğinin belirlenmesine yardımcı olur. |
|
Tasarım seçimlerini zaman ufuklarına göre düzenleyin. Gerçekçi tahminle kullanım beklentilerini tanımlayın. Örneğin, başlatma sırasında beklenen kullanıcı yükü nedir? Kullanıcı büyümesinin doğrusal, üstel veya belirsiz olması bekleniyor mu? |
Bu bilgiler, gelecekteki ufukları işlemek için önemli bir yeniden çalışma gerektirecek tasarım kararlarından kaçınırken yakın vadeli güvenilirlik gereksinimlerini karşılayacak bir mimari tasarlamanıza yardımcı olur. Bu yaklaşım esneklik ve olay odaklı iş akışları hakkında nasıl düşüneceğini etkiler ve hangi teknik borcun tahakkuk etmesine veya kaçınılmasına ilişkin stratejik seçimler yapmanıza olanak tanır. |
| Tasarımın özerkliğini sınırlayan, kurumsal kısıtlamalar gibi bağımlılıkları hesaba katmalısınız. Dayanıklılık, kullanılabilirlik ve kurtarma açısından neler verebileceğinizi doğrudan etkileyen merkezi altyapı, güvenlik zorunluluğu, ağ yönlendirme ilkeleri veya platform kararları hakkında bilgi edinin. |
Denetiminizin dışındaki hizmetlere bağımlılığınızı anlamak, güvenilirlik için gerçekçi beklentilerle tasarlamanıza yardımcı olur. RTO/RPO hedeflerinizin ve SLO'larınızın ulaşılabilir ve net bir şekilde iletilmesini sağlayarak olduğundan fazlasını vaat etmekten kaçınır ve sürprizleri azaltır. |
Dayanıklılık için tasarım
|
|
|---|
Bileşen arızaları, platform kesintileri, performans düşüşleri, sınırlı kaynak kullanılabilirliği ve diğer hataların oluşmasını beklemelisiniz. Hataya dayanıklı olması ve düzgün bir şekilde düşürülebilmesi için sistemde dayanıklılık oluşturun.
| Yaklaşım | Fayda |
|---|---|
| Kritik yolda bulunan bileşenleri, düşük performansla çalışabilen bileşenlerden ayırt edin. | İş yükünün tüm bileşenlerinin eşit derecede güvenilir olması gerekmez. Kritikliği belirlemek , her bileşenin kritikliğine göre tasarlamanıza yardımcı olur. Bileşenlerin başarısızlığı halinde uçtan uca sorunlara yol açacak parçalar yerine, yalnızca kullanıcı deneyimini biraz bozabilecek bileşenlerde aşırı dayanıklılık sağlamaktan kaçınırsınız. Tasarım, kaynakları kritik bileşenlere ayırmada verimli olabilir. Ayrıca, kritik olmayan bir bileşen arızalanırsa veya bozulmuş bir duruma girerse, basamaklı hataları önlemek için tecrit edilebilmesi adına hata tecrit stratejileri uygulayabilirsiniz. |
| Özellikle kritik bileşenler için sistemdeki olası hata noktalarını belirleyin ve kullanıcı akışları üzerindeki etkisini belirleyin. | Hata durumlarını, patlama yarıçapını ve hatanın yoğunluğunu analiz edebilirsiniz: tam veya kısmi kesinti. Bu analiz, bileşen düzeyinde hata işleme özelliklerinin tasarımını etkiler. |
| Tasarım desenlerini doğru kullanarak ve hataları yalıtmak için tasarımı modülerleştirerek kendini koruma özellikleri oluşturun. | Sistem, bir sorunun aşağı akış bileşenlerini etkilemesini önleyebilir. Sistem geçici ve kalıcı hataları, performans sorunlarını ve güvenilirliği etkileyebilecek diğer sorunları azaltabilecektir. Patlama yarıçapını da en aza indirebileceksiniz. |
| Desteklenen bölgelerdeki hizmetlerin kapasite kısıtlamalarını göz önünde bulundurarak kritik bileşenlerin (uygulama ve altyapı) ölçeğini genişletme özelliğini ekleyin. | İş yükü , değişken kapasite artışlarını ve dalgalanmalarını işleyebilir. Bu özellik, sistemde geçerli kullanımda bir artış gibi beklenmeyen bir yük olduğunda çok önemlidir. İş yükü birden çok bölgenin ölçeğini genişletecek şekilde tasarlandıysa, olası geçici kaynak kapasitesi kısıtlamalarının veya tek bir bölgede etkileyen diğer sorunların bile üstesinden gelebilir. |
|
Çeşitli uygulama katmanlarında katmanlar halinde yedeklilik ve dayanıklılık oluşturun. Fiziksel yardımcı programlarda yedekliliği ve anında veri çoğaltmayı hedefleyin. Ayrıca hizmetler, operasyonlar ve personeli kapsayan işlevsel katmanda yedeklilik hedeflemektedir. |
Yedeklilik , tek hata noktalarını en aza indirmeye yardımcı olur. Örneğin, bir bileşen, kullanılabilirlik alanı veya bölgesel kesinti varsa, yedekli dağıtım (etkin-etkin veya aktif-pasif) çalışma süresi hedeflerini karşılamanızı sağlar. Bileşenler arasında aracı bileşenlerin eklenmesi, doğrudan bir bağımlılığı önler ve arabelleğe almayı iyileştirir. Bu avantajların her ikisi de sistemin dayanıklılığını güçlendirdi. |
| Aşırı sağlama yoluyla yedekli örneklerin bireysel arızalarını hemen önlemek ve kaçak kaynak tüketimini emniyete almak için arabellek oluşturmak. | Fazla sağlama için daha yüksek yatırım, dayanıklılığı artırır. Ölçeklendirme işlemleri hatayı gidermeye başlamadan önce bile sistem, aktif bir hata sırasında tam kapasitede çalışmaya devam edecektir. Beklenmeyen ve kontrolsüz hale gelen kaynak tüketimi riskini azaltarak planlanan tamponunuzu koruyabilir ve kritik önceliklendirme süresi kazanabilirsiniz; bu sayede, sistem hataları veya agresif ölçeklendirme meydana gelmeden önce önlem alabilirsiniz. |
Kurtarma tasarımı
|
|
|---|
Yüksek oranda dayanıklı sistemler bile hem mimari tasarımında hem de iş yükü işlemlerinde olağanüstü durum hazırlığı yaklaşımlarına ihtiyaç duyar. Veri katmanında, bozulma durumunda iş yükü durumunu onarabilecek stratejilere sahip olmanız gerekir.
| Yaklaşım | Fayda |
|---|---|
| Üzerinde anlaşmaya varılan kurtarma hedefleriyle uyumlu yapılandırılmış, test edilmiş ve belgelenmiş kurtarma planlarına sahip olun. Planlar, sistemin bir bütün olarak yanı sıra tüm bileşenleri kapsamalıdır. | İyi tanımlanmış bir süreç, işletmenizin finans ve itibarı üzerinde olumsuz etkiyi önleyebilecek hızlı bir iyileşmeye yol açar. Düzenli kurtarma tatbikatları gerçekleştirmek, zaman ve veri bütünlüğü önemli başarı ölçüleri olduğunda karışıklığı önlemek için sistem bileşenlerini, verileri ve yük devretme ve yeniden çalışma adımlarını kurtarma sürecini test eder. |
| Kurtarma hedeflerinizdeki durum bilgisi olan tüm bileşenlerin verilerini onarabildiğinizden emin olun. | Yedeklemeler, bilinen son iyi durum gibi güvenilir bir kurtarma noktası kullanarak sistemi çalışma durumuna geri döndürmek için gereklidir. Sabit ve işlemsel olarak tutarlı yedeklemeler, verilerin değiştirilmemesini ve geri yüklenen verilerin bozulmamasını sağlar. |
| Tasarımda otomatik kendi kendini iyileştirme özellikleri uygulayın. | Bu otomasyon, insan müdahalesi gibi dış faktörlerden kaynaklanan riskleri azaltır ve kesme düzeltme döngüsünü kısaltır. |
| Durum bilgisi olmayan bileşenleri sabit kısa ömürlü birimlerle değiştirin. | İsteğe bağlı olarak oluşturup yok etmek için kullanabileceğiniz kısa ömürlü birimler oluşturmak tekrarlanabilirlik ve tutarlılık sağlar. Yeni birimlere geçişi artımlı hale getirmek ve kesintileri en aza indirmek için yan yana dağıtım modellerini kullanın. |
Operasyonlar için tasarım
|
|
|---|
Geliştirme yaşam döngüsünde hataları erken ve çoğunlukla test edin ve performansın güvenilirlik üzerindeki etkisini belirleyin. Kök neden analizi ve otopsiler için, bağımlılık durumu ve devam eden hatalar için ekipler arasında paylaşılan görünürlüğe sahip olmanız gerekir. Gözlemlenebilir sistemlerden alınan içgörüler, tanılamalar ve uyarılar , etkili olay yönetimi ve sürekli iyileştirme için temel öneme sahiptir.
| Yaklaşım | Fayda |
|---|---|
| Telemetri ile bağıntı kurabilen gözlemlenebilir sistemler oluşturun. | İzleme ve tanılama kritik işlemlerdir. Bir şey başarısız olursa, başarısız olduğunu, ne zaman başarısız olduğunu ve neden başarısız olduğunu bilmeniz gerekir. Bileşen düzeyinde gözlemlenebilirlik temeldir, ancak bileşenlerin ve bağıntılı kullanıcı akışlarının toplu gözlemlenebilirliği, sistem durumunun bütünsel bir görünümünü sağlar. Bu veriler, site güvenilirliği mühendislerinin düzeltme çalışmalarına öncelik vermelerini sağlamak için gereklidir. |
| Olası arızaları ve anormal davranışları tahmin edin. Öncelikli ve eyleme dönüştürülebilir uyarıları kullanarak etkin güvenilirlik hatalarını görünür hale getirin. Daha hızlı önceliklendirmeye yol açan güvenilir süreçlere ve altyapıya yatırım yapın. |
Site güvenilirliği mühendisleri, devam eden canlı site olaylarını azaltabilmeleri ve canlı olaylara dönüşmeden önce tahmine dayalı uyarılar tarafından tanımlanan olası hataları proaktif olarak azaltabilmeleri için hemen bilgilendirilebilir. |
| Üretim ve üretim öncesi ortamlarda hataların simülasyonunu yapın ve testleri çalıştırın. | Kurtarma için gerçekçi beklentiler belirleyebilmeniz için üretimde hatalarla karşılaşmanız yararlı olur. Bu, hatalara düzgün bir şekilde yanıt veren tasarım seçimleri yapmanıza olanak tanır. Ayrıca, iş ölçümleri için ayarladığınız eşikleri test etmenizi sağlar. |
| Otomasyonu göz önünde bulundurarak bileşenler oluşturun ve olabildiğince otomatikleştirin. | Otomasyon insan hatası olasılığını en aza indirerek test, dağıtım ve işlemlere tutarlılık getirir. |
| Rutin işlemleri ve sistemin kararlılığı üzerindeki etkilerini dikkate alır. | İş yükü uygulama düzeltmeleri, güvenlik ve uyumluluk denetimleri, bileşen yükseltmeleri ve yedekleme işlemleri gibi devam eden işlemlere tabi olabilir. Bu değişiklikleri inceleme, sistemin kararlılığını sağlar. |
| Üretimdeki olaylardan sürekli olarak bilgi edinin. | Olaylara dayanarak, tasarım ve işlemlerde gözden kaçan unsurlar ile bu unsurların ön üretimde fark edilmeyebilecek etkilerini belirleyebilirsiniz. Sonuç olarak, gerçek hayattaki olaylara göre iyileştirmeler yapabileceksiniz. |
Basit tut
|
|
|---|
Çoğunlukla, eklediğinizden çok kaldırdığınız şey, en güvenilir çözümlere yol açar. Basitlik, denetim için yüzey alanını azaltarak verimsizlikleri ve olası yanlış yapılandırmaları veya beklenmeyen etkileşimleri en aza indirir. Öte yandan, aşırı basitleştirme tek hata noktalarına neden olabilir. Dengeli bir yaklaşım sağlayın.
| Yaklaşım | Fayda |
|---|---|
| Yalnızca hedef iş değerlerine ulaşmanıza yardımcı olan bileşenleri mimarinize ekleyin. Kritik yolu sade tutun. | İş gereksinimleri için tasarım yapmak, uygulanması ve yönetilmesi kolay basit bir çözüme yol açabilir. Her biri önemli bir hata noktası olduğundan çok fazla kritik bileşen kullanmaktan kaçının. |
| Kod uygulama, dağıtım ve işlemlerde standartlar oluşturun ve bunları belgeleyin. Otomatik doğrulamaları kullanarak bu standartları zorunlu kılma fırsatlarını belirleyin. | Standartlar tutarlılık sağlar ve insan hatalarını en aza indirir. Standart adlandırma kuralları ve kod stili kılavuzları gibi yaklaşımlar kaliteyi korumanıza ve sorun giderme sırasında varlıkların tanımlanmasını kolaylaştırmanıza yardımcı olabilir. |
| Teorik yaklaşımların kullanım örnekleriniz için geçerli olan pragmatik tasarıma çevirip çevirmediğini değerlendirin. | Çok ayrıntılı olan uygulama kodu gereksiz bağımlılıklara, ek işlemlere ve zor bakımlara yol açabilir. |
| Yeterli kod geliştirin. | Beklenmeyen kaynak tüketimi, kullanıcı veya veri akışı hataları ve kod hataları gibi verimsiz uygulamaların sonucu olan sorunları önleyebilirsiniz. Buna karşılık güvenilirlik sorunları, kodun sorunları çözecek kadar dayanıklı olduğundan emin olmak için kod incelemelerine yol açmalıdır. |
| İş hedeflerini etkili bir şekilde karşılamanıza yardımcı olabilecek platform tarafından sağlanan özelliklerden ve önceden oluşturulmuş varlıklardan yararlanın. | Bu yaklaşım geliştirme süresini en aza indirir. Ayrıca benzer iş yükleriyle kullanılan denenmiş ve test edilmiş uygulamalara güvenmenizi sağlar. |