Çevrimiçi hatalara neden olmayı sevmek sorun değil mi? Yuan programının söyleyecek bir şeyi var

Yazar | Wu Xingling

Üretildi | CSDN ( İD: CSDNhaberler)

  • Arıza meydana geldiğinde iletişim ve koordinasyon sorunsuz mu?

  • Yeniden deneme eklemek sorunu çözebilir mi?

  • Uygulama yeniden başlatıldıktan sonra otomatik olarak üretime alınabilir mi?

  • Kritik olmayan uygulamaların başarısızlığı işi etkiler mi?

  • Tek bir parçanın başarısızlığı genel durumu etkiler mi?

  • Bu sadece bir departmanın çağrı ilişkisidir, kısaca "tarif edilemez"!

  • Bazıları "üretim ortamına hayran olduğumuzu" söyler, ancak genellikle anlamamaktan kaynaklanan huşu duyuyoruz, bu yüzden sadece hayranlık duymuyoruz, aynı zamanda keşfediyoruz.

  • Bir geliştirici arayüzümün bozuk olduğunu söyledi, başardın mı? Servisi kontrol etmek için arayüzü ayarladım ve sonunda öğrendim - arayüzünün hiç bu kadar iyi olmadığını.

  • Çok kötümser olun ve bu sorunların çevrimiçi olarak olacağını tahmin edin ve ardından dikkatlice doğrulayın.

En son programcı konuşma konferansının burada olduğunu düşünüyor musunuz? Hayır, burası Ctrip web sitesi işletme ve bakım direktörü Fang Ju'nun gerçek çalışma özetinden 9 Kasım'da Şangay'da düzenlenen 2019 Ctrip Teknoloji Zirvesi'nin sitesi.

Söylendiği gibi, her programcının arkasında kesinlikle bir gözyaşı dersi vardır.

Fang Ju neden "programcıların söyleyemediği sırları" çok doğru bir şekilde anlatıyor?

Ctrip içindeki "Kaos Projesi" nin uygulanmasından kaynaklanıyor.

Kaos mühendisliği çevrimiçi üretim başarısızlığına mı eşittir?

Kaos Mühendisliği, dağıtılmış sistemler üzerinde deneyler yapan bir disiplindir.Amaç, sistemin üretim ortamındaki kaçak koşullara dayanma yeteneğini ve güvenini sağlamaktır. Kaos mühendisliği, üretim sistemindeki bilinmeyen zayıflıkları ortaya çıkarmak için uygundur.

Kaos Mühendisliğinin en önemli noktası, sürekli başarısızlık yoluyla başarısızlığı önlemektir. Çünkü genellikle başarısızlıkların ne zaman olacağını bilmiyoruz, ancak kaçınılmaz olarak arızalar ortaya çıkacaktır.

"Beni yok edemeyen her şey beni güçlü kılacaktır." Nietzsche'nin sözleri Kaos Mühendisliği fikrini açıklamaya en uygun olanıdır.

Neden kaos mühendisliğine ihtiyacımız var?

Kurumsal işlerin gelişmesi ve teknik mimarinin evrimiyle birlikte, büyük arızalardan kaçınmak için istikrarlı bir kullanıcı deneyimi sürdürmemiz gerekiyor. Geçmişte, geliştiriciler genellikle büyük bir arızanın meydana gelmesinden sonraydı ve ardından iyileştirilmiş önlemleri özetleyip uyguladılar, ancak bu sonuçta kayıplara neden oldu.

Chaos Engineering bu "acıyı" önceden koyar ve riski kontrol edilebilir bir aralık dahilinde mümkün olan en kısa sürede ortaya çıkarmak için "zehire zehirle saldırmak" yöntemini kullanır. Aşı olan bir insan gibidir Aşının bir kısmı antikor üretmek için kişinin vücuduna enjekte edilir. Bu şekilde, "kırılamaz veya ayakta durmaz" ve sistemin afet toleransını sürekli olarak doğrulayabilir.

Geliştirme ekibi için, "sık sık pratik yapabilir ve yeni olabilirler", çünkü büyük ölçekli bir sorun giderme sürecinde, yalnızca teknisyenlerin becerilerini test etmekle kalmaz, aynı zamanda yerinde karar verme yargılarını da test eder, ancak kesinlikle bir karar almazlar. Gerçek hatalar yeni gelenleri eğitir, böylece kaos mühendisliğinin uygulanmasında ekip üyeleri eğitilebilir ve ekibin risklere direnme yeteneği ve güveni artırılabilir.

Kaos mühendisliğinin beş prensibi

Peki kaos mühendisliğine nasıl başlayacaksınız? Fang Ju aşağıdaki beş ilkeyi sıraladı:

1. Kararlı bir durum varsaymak

Kaos deneyleri yaparken, beklenen sonuçları gerçek sonuçlarla karşılaştırın. Bu yüzden kararlı bir durum varsaymamız ve ardından sunucu çökmeleri, ağ kesintileri vb. Gibi deneysel değişkenler sunmamız ve ardından deneysel sonuçlardaki sabit durum farklılıklarını gözlemleyip sonunda sorunu bulmamız gerekir.

Ayrıca kaos mühendisliği Dikkat Bu yapısal bir risktir, bu nedenle reklam dönüşüm oranı, ödeme başarı oranı, sipariş gönderme hacmi vb. Gibi temel iş göstergelerinin durumunu istikrarlı olduklarında anlamamız gerekir. Bu, iş verilerini toplamak için izleme araçları gerektirir.

2. Bir üretim ortamında tatbikatlar gerçekleştirin

Çünkü test ortamının veri kapsamı, üçüncü taraf sistem bağımlılığı, altyapı mimarisi ve üretim ortamı farklıdır. Fang Ju, gerçek operasyonda bazı ekiplerin test ortamında kaos deneyleri yaptıktan sonra üretim ortamında yine de birçok sorun bulacağını söyledi. Yani o Önermek Özgünlüğü ve etkinliği korumak için üretim ortamının kaos deneyleri için kullanılması önerilir.

Ancak Fang Ju, bunun sistemde bir hata olduğunu bildiğimiz anlamına gelmediğini ve bunu üretim ortamında yeniden üretmemiz gerektiğini ekledi. Bu yüzden önerdiği şey esnek bir yol: Bir hata olduğunu biliyorsanız, önce test ortamında testi düzeltin ve ardından üretim ortamına koyun. Bu nedenle, kaos deneyinin ortamı ne kadar gerçek olursa, o kadar değerlidir.

3. Denemeleri sürekli ve otomatik olarak çalıştırın

Deneme manuel olarak çalıştırılırsa, deneme maliyeti nispeten yüksektir ve sonuçta sürdürülemez hale gelecektir.

Fang Ju, Ctrip'in bir zamanlar bir departmanın temel olmayan tüm hizmetlerini kapatan ve ardından temel iş süreçlerinin sağlamlığını doğrulayan bir Felaket Kurtarma tatbikatı uyguladığı bir örnek verdi. Bu alıştırmanın yürütülmesi çok karmaşık olduğundan, her işletme departmanı bunu yılda 1-2 kez yapacaktır. Ctrip'in operasyonlarında her hafta binlerce değişiklik oluyor ve her değişiklik yeni bir risk oluşturabilir.

O zaman egzersizlerimizin etkinliği zamanla değişecektir.Sistemi sürekli olarak doğrulamak istiyorsak, manuel işlemleri değiştirmek için basit bir araca ihtiyacımız var.Otomatik olarak anormallikleri toplar, otomatik olarak doğrular ve otomatik olarak teşhis ederek insan gücünü azaltır. maliyet.

4. Patlama yarıçapını en aza indirin

Bazı insanlar merak edebilir, kaos deneyi bir üretim ortamında rastgele bir işlem mi? Tersi, riskleri önceden değerlendirmek için deneylerin çok dikkatli olması gerekiyor Kaos deneylerinin beklentisi sistemin gizli tehlikelerini ortaya çıkarmaktır, ancak daha büyük bir etkisi olmayacaktır.

Fang Ju, adım adım "noktalar, çizgiler ve yüzeyler" sürecini önerir. Bu risk kontrol aralığını aştığında, deney hemen sonlandırılabilir. Bu nedenle, Fang Ju'nun ekibi hatalı platformda "tek tıklamayla kesme" işlevi tasarladı ve yetkiyi ilgili personele devretti. Bu nedenle Fang Ju, kaos provası yapılırken her bir başarısızlık senaryosunun her an koyulup geri çekilebileceğini vurguladı.

5. Çeşitlendirilmiş hata senaryoları

Tarihsel başarısızlık olaylarını analiz etmemiz ve başarısızlık senaryolarını soyutlamamız gerekiyor. Aşağıdaki şekilde gösterildiği gibi, Fang Junun ekibi Ctrip tarihinde meydana gelen başarısızlıklara göre sahneler düzenler:

Deneyde enjeksiyon ve geri kazanım yukarıdaki hatalara göre gerçekleştirilebilir.

Kaos mühendisliğinin uygulanması esas olarak iki durum etrafında döner: kararlı durum ve yeni durum. İlk adım, bir plan geliştirmek, kararlı durumu tanımlamak ve riski değerlendirmektir. İkinci adım, patlama yarıçapını kontrol ederek bir deney yapmak ve hatalar yapmaktır. Üçüncü adım, arıza girişinden sonra izleme yoluyla kararlı durum ile yeni durumu karşılaştırmaktır. Dördüncü adım, arıza düzeltildikten sonra yeni durumun sonuçlarını değerlendirmek, sorunu kaydetmek ve düzeltmeler yapmaktır.

Kaos mühendisliğinin pratik uygulaması

Şu anda, Ctrip içinde on binlerce örnek senaryoyu kapsayan 1.000'den fazla kaos deneyi tamamlandı. Spesifik uygulama nasıl yapılır? Fang Ju, inceleme hizmetinde çekirdek uygulamanın zayıf bağımlılık doğrulamasını listeledi.

İzleme yoluyla, gözden geçirme hizmetinin bir yanıt gecikmesine sahip olduğu bulundu, bu nedenle kaos deneyi yapılırken önce bir kararlı durum tanımlayın: ürün ayrıntıları QPS 1000, RT kullanır 30 0ms, gözden geçirme bilgileri şu anda tam olarak görüntülenir. Deneyin sonucunun, ürün ayrıntıları sayfasının inceleme hizmetine erişimi kesmesi olduğu varsayılırsa, ürün ayrıntıları sayfası diğer bilgileri normal şekilde görüntüleyebilir.

Denemeyi gerçekleştirmeye başlayın: sunucu veya Müşteri Deneyler yoluyla servis gecikme hatasını enjekte edin, temel uygulama sayfasının boş olduğu sonucunu alın ve son olarak onarın ve özetleyin. Bu bir kaos deneyini tamamlar.

Kaos Projesi'nde Ctrip'in gelecekteki düzeninden bahsederken Fang Ju, onu iki yönden güçlendireceğini söyledi: kabullenme ve karmaşıklık.

1. Karmaşıklık: Araçlar, yaygın arızaları, üretim ve test ortamlarında az miktarda tatbikatı ve üretim anahtar uygulamalarında düzenli tatbikatları kapsar. Prodüksiyon ayar sahnelerinin rastgele provası, prodüksiyon tam otomatik prova ve doğrulama.

2. Kabul: Geçmişteki arızaların onarımını doğrulayın, arıza senaryolarını aktif olarak tasarlayın ve zorlukları başlatın, başarısızlık ve kaotik mühendislik kültürü için bir tasarım oluşturun.

Son olarak Fang Ju, Kaos Mühendisliğinin özünün nasıl başarısızlık yaratılacağı değil, sistemde zaten var olan gizli tehlikeleri kontrol edilebilir bir risk aralığında açığa çıkarmak olduğunu defalarca vurguladı.

Sistem: "Beni yok edemeyen her şey beni güçlü kılacaktır". Ekibiniz bir kaos deneyi uyguladı mı? fikrini tartışır mısın?

SON

Tayland'da okumak istiyorum ve dilim yeterince iyi değil.
önceki
Meme büyütme ameliyatının sekeli teknoloji ile mi ilgili?
Sonraki
Ön sıradan izleyen güçlü kalabalık | Bulut iniş yapay zekası, bu kadar süper kuru mallar nedir?
Egzersiz, sağlık ve mutluluk! Binzhou'daki bu anaokulu ebeveyn-çocuk spor toplantısı çok heyecan verici
Taylandlı pilotlar popüler hale geldi ve pilot olmak istemeyen uçuş görevlileri iyi mühendisler değil
Eski Android telefonlar Linux sunucularına nasıl dönüştürülür?
Gösteri satış noktaları sergisi Hua Xia Bank Binzhou Şubesinin işletme departmanı, hizmetlerini birleştirmek ve övgü kazanmak için yazılım ve donanımını geliştirdi
Gel bir bak! Tayland'da yurtdışında okumanın gerçek statüsünü aydınlatmak
60 milyar deniz hıyarı endüstrisinde eksik olan nedir?
Ali programcıları 11.11'de fazla mesai ne yiyor?
Bir kişi günde yedi veya sekiz kaset kullanıyor ve Boxingin Taobao Köyü, Double Eleven arifesinde mal yüklemekle meşgul.
Tayland'da okuyana kadar beklemiyordum
"Cehennemden" deniz ürünleri olarak biliniyor, her yıl binlerce yuan insan ölüyor
CSDN Başkanı Jiang Tao ve GitHub Başkan Yardımcısı Thomas Dohmke arasındaki Konuşma Kaydı
To Top