Kırılmalarda Güzellik: Kaos Mühendisliği İle Esnek Sistemler Oluşturma

Yazar: Laura McKinney
Yaratılış Tarihi: 2 Nisan 2021
Güncelleme Tarihi: 1 Temmuz 2024
Anonim
Kırılmalarda Güzellik: Kaos Mühendisliği İle Esnek Sistemler Oluşturma - Teknoloji
Kırılmalarda Güzellik: Kaos Mühendisliği İle Esnek Sistemler Oluşturma - Teknoloji

İçerik


Kaynak: pressureUA / iStockphoto

Paket servisi:

Modern sistemler, aksama süresini önlemek için kaosu idare edebilmelidir. Bu yüzden sistemleri iyice test etmek ve esnekliklerini sağlamak her zamankinden daha önemli.

Onlardan kaçınmak için en büyük çabalarımıza rağmen, BT olayları işin kaçınılmaz bir parçası - ve iş etkileyici duruş sürelerinin önünde durmaya çalışmak sadece zorlaşıyor. Günümüzde sistemler sıkı bir şekilde birleştirilmiştir ve giderek daha karmaşık hale gelmektedir ve daha hareketli parçalar ile sorunların giderilmesi için daha fazla fırsat sunulmaktadır.

Bu, gittikçe daha fazla organizasyonun hizmet sunumunda artış ve başarısızlığa karşı daha iyi dayanıklılık için mikro servislere yönelmesinin bir nedenidir. Ancak bunlar, monolitik uygulamaları kırmak için mükemmel yerler olsa da, akılda esneklikle açıkça tasarlanmadıkça, potansiyel olarak başarısızlık riskini de artırabilirler.


Başarısızlık için hazırlanıyor

Dağıtılmış sistemlerin doğal olarak karmakarışık doğası göz önüne alındığında, hizmetler yalnızca başarısızlığı öngörmek için değil, başarısızlık durumunda otomatik olarak iyileşmek için de geliştirilmelidir. Bu, sistemlerinizin son müşterilere hizmet vermeyi engellemeden kaosla başa çıkabilmelerini sağlamak için arızaları düzenli olarak başlatmak anlamına gelir. Bunu başarmak için, test ortamlarında üretime benzer trafiği simüle etme yeteneğine ihtiyacınız var.

Elbette, değişiklikler üretime geçmeden önce dayanıklılığı test etmek iyi bir fikirdir. Bunu yapmazsanız, servislerinizin hem ortalama hem de yoğun yükleri destekleyebildiğini doğrulayamazsınız. Aslında, en güvenli bahis, ürününüzün, ölçeklendirmeye gerek kalmadan en yüksek miktarın iki katına kadar işlemesini sağlamaktır.


Esneklik testi söz konusu olduğunda, doğru araçlar taleplerin nasıl işlendiğiyle ilgili endişelenmemeli, sadece sonunda doğru etkiye sahipler. Belirli şartlar altında, giriş servisinin sistemin geri kalanına bir istek veremeyeceğini ancak arızayı rapor edemediğini unutmayın. Aslında, uçtan uca doğrulamanın gerçekleştiğinden emin olarak izleme radarı altında uçan riskleri göz önünde bulundurmayın. (Daha fazla bilgi için, bkz. Teknik Arızalar: Onlarla Yaşayabilir miyiz?)

Sonraki Adımlar

Hizmetlerin yük altında nasıl davrandığını anladıktan sonra, başarısızlık olaylarını tanıtmaya başlamanın zamanı gelmiştir. Tüm yazılım testlerinde olduğu gibi, senaryoları kolayca ve hızla yeniden oluşturmanıza olanak tanıyan otomatik araçlara sahip olmak en iyisidir, böylece farklı altyapı teknolojilerini etkileyen karmaşık olayları koordine edebilirsiniz. Servislerdeki düzeltmeleri ve değişiklikleri doğrulama yeteneğinin ötesinde, bu herhangi bir ortamda ve bir programda rastgele hata senaryoları çalıştırmanıza izin verir.

Anlamlı başarısızlık olayları büyük ölçüde hizmetlerinizin düzenine bağlıdır ve sizle ilgili özel sorular sorarak bunları formüle edebilirsiniz. Örneğin, bir veritabanını belirli bir süre boyunca erişilemediğinde ön ucu kullanan kişilerin etkisi nedir? Bu kullanıcılar hala web kullanıcı arayüzünde gezinebilir mi? Yine de bilgilerinde güncellemeler yayınlayabilirler mi ve veritabanına tekrar ulaşılabilir olduğunda bu güncellemeler doğru şekilde işlenecek mi?

Birden fazla mikro hizmet çalıştırırsanız, herhangi bir hizmetin çökmesi durumunda küresel bir kesintinin olup olmayacağını sorabilirsiniz. Veya hizmetler arasındaki iletişimi tamponlamak için bir sıraya alma mekanizmanız varsa, tüketici hizmeti (veya hizmetler) çalışmayı bıraktığında ne olur? Kullanıcılar hala uygulamanızla çalışabilecek mi? Ve ortalama bir yük verildiğinde, sıralar dolmadan ne kadar zamanınız kalıyor ve s kaybediyorsunuz?

Hata Yok, Stres Yok - Hayatınızı Yok Etmeden Hayat Değiştiren Yazılım Yaratma Adım Adım Kılavuzunuz

Hiç kimse yazılım kalitesiyle ilgilenmediğinde programlama becerilerinizi geliştiremezsiniz.

Altyapınızla ilgili birkaç önemli soru tanımladıktan sonra, bu hataları simüle etmek için farklı yollar listelemeye başlayabilirsiniz. Belirli bir hizmeti veya bir veritabanı sunucusunu durdurmak yeterli olabilir. Konteyneri hala duyarlı ve çalışır durumdayken, bir hizmetin ana iş parçacığını bir kilitlenmeyi simüle etmek için engellemek isteyebilirsiniz. Belirli servisler arasındaki trafiği engellemek için ağınıza kurallar koymaya karar verebilirsiniz. Linux ortamlarında, yüksek gecikme, düşme, bozulma veya çoğaltılmış paketler gibi ağ durumlarını taklit etmek için "tc" gibi araçlar kullanabilirsiniz. (Kullanıcıların teste dahil edilmesi önemli olabilir. Son Kullanıcıların neden UAT Öncesinde Teste Katılmaları Gerekiyor?

Matkaplarla Öğrenme ve Gelişme

Başarısızlık senaryoları yaratmanın en değerli yönlerinden biri, sistemin başarısız olabileceği tüm potansiyel yolları ortaya çıkarabilmeleri ve böylece kendi kendini iyileştirme mantığına giden yolu açabilmeleridir. Ekibiniz hizmetleri manuel olarak kurtarma adımlarını uygulayacak - bu arada SLA'larda bunu yapabileceklerini doğrulamak için harika bir tatbikat olacak. Bu kurtarma sürecinin otomasyonu üzerinde çalışılabilir, ancak bu arada, ekibinizin hizmetleri tekrar rayına alma sürecinde yürüdüğünü bilerek kolayca dinlenebilirsiniz. Arıza senaryolarını rastgele ve düzenli hale getirerek ve çalışmanın tüm ayrıntılarını açıklamadan yaparak, tatbikatın keşfedilmesini ve teşhis edilmesini de içerebilir - sonuçta SLA'ların kritik bir parçasıdır.

Özünde, kaos mühendisliği sistemin karmaşıklığını bir verilen gibi alır, yeni ve tuhaf koşulları simüle ederek test eder ve sistemin nasıl tepki verdiğini gözlemler. Bu, veri mühendisliği ekiplerinin daha yüksek esneklik elde etmek için sistemi yeniden tasarlamaları ve yeniden yapılandırması gereken veridir. Yeni ve faydalı şeyler öğrenmek için pek çok fırsat var. Örneğin, alt hizmetler değiştiğinde hizmetlerin güncelleme alamadığı durumları veya izlemenin tamamen eksik olduğu alanları bulabilirsiniz. Ürününüzü daha esnek ve sağlam hale getirmek için heyecan verici bir yol sıkıntısı yoktur!