Altı yıllık cilalama! Ali açık kaynak kaos mühendislik aracı ChaosBlade

Alimeinin Kılavuzu: Hataları azaltmanın en iyi yolu, bunların sık sık gerçekleşmesini sağlamaktır. Sistemin hata toleransını ve direncini sürekli iyileştirmek için hata sürecini sürekli olarak tekrarlayın. Bugün Alibaba, altı yıllık yaratıcılık ve arıza tatbikatları alanındaki pratikten elde edilen bir aracı açık kaynaklı hale getirdi: "ChaosBlade". Geliştirme verimliliğini artırmak istiyorsanız, öğrenmeye de gelebilirsiniz.

Yüksek kullanılabilirlik mimarisi, hizmet istikrarını sağlamanın temelidir.

Alibaba, yıllar boyunca büyük İnternet hizmetleri ve Double 11 senaryolarının uygulanması sırasında tam bağlantı stres testi, çevrimiçi trafik kontrolü ve arıza tatbikatları dahil olmak üzere yüksek kullanılabilirlikli temel teknolojileri biriktirdi ve bunları açık kaynak ve bulut hizmetleri aracılığıyla ihraç etti. , Kurumsal kullanıcıların ve geliştiricilerin Alibaba'nın teknolojik avantajlarından yararlanmasına, geliştirme verimliliğini artırmasına ve iş kurma sürecini kısaltmasına yardımcı olmak.

Örneğin, Alibaba Bulut Performans Testi PTS'nin yardımıyla, tam bağlantılı bir stres testi sistemi verimli bir şekilde inşa edildi ve mevcut sınırlama ve bozulma işlevlerini gerçekleştirmek için açık kaynak bileşeni Sentinel kullanıldı. Bu kez, 6 yıllık iyileştirme ve uygulamadan sonra, on binlerce çevrimiçi tatbikat senaryosu gerçekleştirdik. Alibaba'nın arıza delme alanındaki yaratıcılığını ve uygulamasını kaotik bir mühendislik aracına yoğunlaştırdık, onu açık kaynaklı hale getirdik ve adını verdik. ChaosBlade için.

Açık kaynak adresi: https://github.com/chaosblade-io

ChaosBlade nedir?

ChaosBlade, kaos mühendisliğinin deneysel ilkelerini izleyen, başarmak için zengin hata senaryoları sağlayan ve dağıtılmış sistemlerin hata toleransını ve kurtarılabilirliği geliştirmesine yardımcı olan bir kaos mühendislik aracıdır. Altta yatan hataların enjeksiyonunu gerçekleştirebilir. Basit çalışma, invaziv olmama ve güçlü ölçeklenebilirlik ile karakterizedir. .

ChaosBlade, Apache Lisansı v2.0 açık kaynak anlaşmasına dayanmaktadır ve şu anda iki depoya sahiptir: chaosblade ve chaosblade-exe-jvm.

chaosblade, CLI, Golang kullanılarak uygulanan temel kaynaklar ve kapsayıcıyla ilgili kaos deneyi uygulama yürütme modüllerini içerir. chaosblade-exe-jvm, JVM üzerinde çalışan uygulamalarda kaos deneyleri uygulayan bir yürütücüdür.

ChaosBlade topluluğu, gelecekte C ++, Node.js ve diğer dillerde kaos deney uygulayıcıları ekleyecektir.

Neden açık kaynak?

Birçok şirket, kademeli olarak yüksek oranda erişilebilir bir test sistemi ve sistem bilgisi oluşturmak için vazgeçilmez bir araç haline gelen kaos mühendisliğine dikkat etmeye ve keşfetmeye başladı. Bununla birlikte, kaos mühendisliği alanı hala hızlı bir gelişim aşamasındadır ve en iyi uygulamalar ve araç çerçeveleri için birleşik bir standart yoktur. Kaos mühendisliğinin uygulanması, bazı potansiyel iş riskleri getirebilir ve deneyim ve araç eksikliği, DevOps personelinin kaos mühendisliğini uygulamasını daha da engelleyecektir.

Şu anda, kaos mühendisliği alanında belirli bir alanı kapsayan pek çok mükemmel açık kaynak araç vardır, ancak bu araçları kullanma yolları çok farklıdır.Bazı araçların öğrenilmesi zordur, öğrenmesi maliyetlidir ve kaos mühendisliği alanından birçok insanı caydıran tek bir kaosla deney yapma yeteneğine sahiptir.

Alibaba Group, kaos mühendisliği alanında yıllardır çalışmaktadır. Kaos deney aracı ChaosBlade açık kaynaklıdır. Umarız:

  • Daha fazla insanın kaos mühendisliği alanını anlamasına ve katılmasına izin verin;
  • Kaotik mühendislik inşa etme yolunu kısaltın;
  • Aynı zamanda, daha fazla kaos deney senaryolarını geliştirmek ve kaos mühendisliğinin gelişimini birlikte teşvik etmek için topluluğun gücüne güvenin.

ChaosBlade hangi sorunları çözebilir?

Mikro hizmetlerin hata toleransını ölçün

Çağrı gecikmelerini, kullanılamayan hizmetleri, tam makine kaynaklarını vb. Simüle ederek, hatalı düğüm veya örneğin otomatik olarak izole edilip edilmediğini ve çevrimdışı olup olmadığını, trafik planlamasının doğru olup olmadığını, planın etkili olup olmadığını kontrol edin ve sistemin genel QPS veya RT'sinin etkilenip etkilenmediğini gözlemleyin. Bu temelde, hatalı düğümlerin aralığı, yukarı akış servis akımı sınırının azalmasının, kaynaştırmanın, vb. Etkili olup olmadığını doğrulamak için yavaşça artırılabilir. Sonunda, hatalı düğüm, istek hizmetinin zaman aşımına kadar artırılır, sistem hata toleransı kırmızı çizgi tahmin edilir ve sistem hata toleransı yeteneği ölçülür.

Kapsayıcı düzenleme yapılandırmasının makul olduğunu doğrulayın

Hizmet Bölmelerini öldürme, düğümleri öldürme, Kapsül kaynak yükünü artırma, sistem hizmetlerinin kullanılabilirliğini gözlemleme, çoğaltma yapılandırmasının, kaynak sınırı yapılandırmasının ve Kapsül altında dağıtılan kapsayıcıların makul olup olmadığını doğrulayarak.

PaaS katmanının sağlam olup olmadığını test edin

Üst düzey kaynak yükünü simüle ederek planlama sisteminin etkinliğini doğrulayın; sistemin hata toleransını doğrulamak için bağımlı dağıtılmış depolamanın kullanılamazlığını simüle edin; programlama düğümünün kullanılamazlığını simüle edin, planlama görevinin otomatik olarak mevcut düğüme taşınıp taşınmadığını test edin; aktif ve yedek düğümlerin arızasını simüle edin, Ana / yedek geçişin normal olup olmadığını test edin.

İzleme alarmlarının güncelliğini doğrulayın

İzleme ve alarmın doğruluğunu ve zamanını iyileştirmek için sisteme hataları enjekte ederek, izleme göstergelerinin doğru olup olmadığını, izleme boyutlarının eksiksiz olup olmadığını, alarm eşiğinin makul olup olmadığını, alarmın hızlı olup olmadığını, alarm alıcısının doğru olup olmadığını, bildirim kanalının mevcut olup olmadığını vb. Doğrulayın.

Sorunları bulmak ve çözmek için acil müdahale yeteneği

Arıza baskınları yoluyla, arızalar sisteme rastgele enjekte edilerek ilgili personelin acil durum müdahale kabiliyetleri ve raporlama ve işleme prosedürlerinin makul olup olmadığı, insanların mücadele ederek sorunları bulma ve çözme becerilerini geliştirir.

Fonksiyonlar ve özellikler

Yüksek sahne zenginliği

ChaosBlade tarafından desteklenen kaos deneyi senaryoları, yalnızca tam CPU yükü, yüksek disk IO, ağ gecikmesi vb. Gibi temel kaynakları değil, aynı zamanda Dubbo çağrı zaman aşımı ve çağrı istisnası, belirtilen yöntem gecikmesi veya istisna atma ve dönüş gibi JVM üzerinde çalışan uygulama deneme senaryolarını da kapsar. Belirli değerler, vb. Aynı zamanda, kapları ve bölmeleri öldürmek gibi, kapla ilgili deneyleri de içerir. Gelecekte deneysel sahneler eklemeye devam edeceğiz.

Kullanımı basit ve anlaşılması kolay

ChaosBlade, basit ve hızlı bir şekilde kullanılabilen kolay komut istemi işlevi ile CLI tarafından yürütülür. Komutun yazımı, Alibaba Group bünyesinde uzun yıllar süren arıza testi ve sondaj uygulamalarının özetlediği arıza enjeksiyon modelini takip eder.Seviye net, okunması ve anlaşılması kolaydır ve kaos mühendisliği eşiğini düşürür.

Sahneyi genişletmek kolay

Tüm ChaosBlade deneysel aktüatörleri aynı zamanda yukarıda bahsedilen hata enjeksiyon modelini de takip eder, böylece geliştirme ve bakım için uygun olan deneysel sahne modeli birleştirilir. Modelin kendisinin anlaşılması kolaydır ve öğrenme maliyeti düşüktür ve daha kaotik deney senaryoları, modele bağlı olarak kolayca ve hızlı bir şekilde genişletilebilir.

ChaosBlade'in evrimi

EOS (2012-2015): Arıza prova platformunun ilk sürümünde, hata enjeksiyon yeteneği, yaygın RPC hatalarını simüle eden ve mikro hizmetlerin güçlü ve zayıf bağımlılığı sorununu çözen bayt kodu geliştirme yoluyla gerçekleştirildi.

MonkeyKing (2016-2018): Arıza prova platformunun yükseltilmiş versiyonu, arıza senaryolarını (kaynak ve konteyner katmanı senaryoları gibi) zenginleştirdi ve üretim ortamında bazı büyük ölçekli provalar yapmaya başladı.

AHAS (2018.9-günümüz): Alibaba Cloud, yüksek kullanılabilirlik hizmetlerini uygular, yerleşik egzersiz platformunun tüm işlevlerine sahiptir, egzersizlerin düzenlenmesini, egzersiz eklenti uzantılarını ve diğer yetenekleri destekler ve mimari farkındalık işlevlerini ve mevcut sınırlama ve düşürme işlevlerini entegre eder.

ChaosBlade (2019.3): MonkeyKing platformunun altındaki hata enjeksiyonu için bir uygulama aracıdır ve sondaj platformunun altındaki hata enjeksiyon yeteneklerini soyutlayarak bir dizi hata modelini tanımlar. Bulut yerel kullanıcılarının kaos mühendisliği testleri gerçekleştirmesine yardımcı olmak için kullanıcı dostu CLI araçlarıyla açık kaynak.

Kısa vadeli planlama

İşlev yinelemesi:

  • Redis, GRPC gibi daha genel Java çerçevelerini desteklemek için geliştirilmiş JVM alıştırma senaryoları
  • Gelişmiş Kubernetes adım adım açıklamalı senaryo
  • C ++, Node.js ve diğer uygulamalar için destek ekleyin

Topluluk oluşturma:

Topluluk oluşturmaya katılmak için ChaosBlade @ GitHub'a hoş geldiniz, bunlarla sınırlı olmamak üzere:

  • Mimari tasarım
  • Modüler tasarım
  • Kod
  • Hata Düzeltmesi
  • Demo örneği
  • Belgeler, web sitesi ve çeviri

Yazar:

Alibaba'nın yüksek kullanılabilirlikli mimari ekibinin üst düzey teknik uzmanı olan Zhongting, istikrarlı ürün araştırma ve geliştirme, mimari evrim ve normal promosyon garantilerinde uzun yıllara dayanan deneyime sahiptir, arıza delme platformu MonkeyKing'in kurucusu, AHAS bulut ürünlerinin teknik lideri ve kaos mühendisliği evangelisti.

Qionggu, Alibaba kıdemli geliştirme mühendisi, uygulama performansı izleme ve kaos mühendisliği alanında uzun yıllara dayanan iş deneyimi, Alibaba Bulut ürünlerinin AHAS temel gelişimi, ChaosBlade açık kaynak proje lideri.

En son Premier Lig sıralaması: Liverpool 5 golle lider, Chelsea Tottenham'ı 2 golle yendi
önceki
"Battlefield 1" GT650M ekran ayarları, düşük yapılandırma ve sorunsuz çalışma deneyimi yaşar
Sonraki
Rakibini maymun gibi oyna! Bill: Bir savaşçıyla tanışmak tuhaf! Durant: Duvar benim kardeşim!
Kodiak GT yakında piyasaya sürülecek, spor potansiyeli nedir?
Süper düşme paterni bir tersine mi yol açtı? Dalian küme düşme çemberinden kaçtı, Jianye TEDA'yı ilk 6'ya gönderdi
Önümüzdeki 10 yıl içinde Çin'in bağımsız otomobil markaları yükselişi ve düşüşü kim kontrol edecek?
Surrey sert! Kepa'nın önemli Premier Lig maçı yedek kulübesinden çekildi ve futbol alkışlandı!
Alibaba Cloud MVP'nin sekizinci sayısı yayınlandı, dijital dönüşümün bel kemiği yükseltildi
okuyamıyorum! Harden bıçağını keskinleştiriyor ve D'Antoni konuşuyor ve gülüyor, ancak ABD hayranları onu satın almıyor!
Açması kolay son söz! Ciddi şekilde küçümsenen 10 model
Yalnızca 900.000 Avrupa dış yardımına değer CSL, 7 gol attı: Yardım edin, Hengda R & F'yi Dalian Yifang kazandı
"Yeni Yıl İçin Üç Tartışma" nın ana noktası! 2019'da Birleşik Cephe işi böyle yapılır!
Avrupa futbolunun en kötü süper yıldızı! Sezonda iki kez kiraya verildi, sahibi bu yaz geri dönmeyi reddetti
Rockets oynadıktan sonra aptal ol! Clippers 19 puanla tersine döndükten sonra, Malone: Yine sekizinci oldu!
To Top