Programavimas

Kas yra chaoso beždžionė? Chaoso inžinerija paaiškino

„Chaos Monkey“, išėjęs iš „Netflix“ salių pereidamas nuo DVD platinimo prie vaizdo platinimo debesų sistemų kūrimo, pristatė inžinerijos principą, kurio laikėsi visų formų ir dydžių programinės įrangos kūrimo organizacijos: ty tyčia sulaužydami sistemas gali išmokti padaryti juos atsparesnius.

Pagal pradinį „Netflix“ tinklaraščio įrašą šia tema, kurį 2011 m. Liepos mėn. Paskelbė tuometinis debesų ir sistemų infrastruktūros direktorius Yury Izrailevsky ir srautinės transliacijos bendrovės debesų sprendimų direktorius Arielis Tseitlinas, „Chaos Monkey“ buvo sukurtas atsitiktinai išjungti gamybos atvejus „Amazon Web Services“ infrastruktūrą, tokiu būdu atskleidžiant silpnybes, kurias „Netflix“ inžinieriai galėtų pašalinti sukurdami geresnius automatinio atkūrimo mechanizmus.

Patrauklus pavadinimas kilo iš „idėjos išlaisvinti laukinę beždžionę su ginklu jūsų duomenų centre (arba debesų regione), kad atsitiktinai nušautų egzempliorius ir kramtytų kabelius - visą laiką mes netrukdomai aptarnaujame savo klientus“, tinklaraščio įraše. teigia.

Praktiškai tai apims paprastą programą „atsitiktinai parinkti egzempliorių iš kiekvieno klasterio ir tam tikru momentu darbo valandomis jį išjungti be perspėjimo. Tai darytų kiekvieną darbo dieną “, - išsamioje knygoje šia tema išsamiai aprašė buvusios„ Netflix “inžinierės Nora Jones ir Casey Rosenthal. Chaoso inžinerija, išleido „O’Reilly Media“.

Idėja yra ta, kad inžinieriai, sužinoję, kur yra silpniausios jūsų vietos, gali nustatyti automatinius trigerius, kad būtų galima įveikti problemą, ir sutaupyti skambučio vidury nakties, jei kas nors nutiktų. Chaoso beždžionė nuo chaoso inžinerijos ženklo peraugo į daugybę chaoso principų.

Chaoso beždžionė „Netflix“

Chaoso beždžionė išaugo iš inžinerijos pastangų „Netflix“ maždaug 2010 m., Kai Gregui Orzellui, kuris dabar dirba „Microsoft“ priklausančiame „GitHub“, buvo pavesta sukurti atsparumą naujoje bendrovės debesyse pagrįstoje architektūroje.

"Tai, kaip aš galvoju apie Chaoso beždžionę, nėra pagrindinis inžinerijos žygdarbis", - sakė Orzellas. „Vertė, kurią ji teikia, yra mąstysenos pasikeitimas, kuris tuo metu buvo kritinis, kai perėjome nuo DVD siuntimo prie srautinio perdavimo internetu“.

Pirmosiomis dienomis „Netflix“ inžinieriai, naudodamiesi „Simian Army“ atvirojo kodo įrankiais, pristatė daugybę prastovų ir problemų, kurių kiekviena apskaitė tam tikrų tipų gedimus, pradedant „Chaos Monkey“, išvedančiu AWS grupes.

Į pradinę kariuomenę (dabar dažniausiai pasitraukė dėl naujų įrankių) buvo tokie kaip „Latency Monkey“, kuris sukeltų dirbtinį vėlavimą „RESTful“ kliento ir serverio ryšio sluoksniui, ir „Doctor Monkey“, kuris atliktų kiekvienos instancijos sveikatos patikrinimus. , taip pat stebi kitus išorinius sveikatos požymius (pvz., procesoriaus apkrovą), kad būtų galima aptikti nesveikus atvejus ir prireikus juos pašalinti iš tarnybos.

„Chaos Kong“ pakėlė „Chaos Monkey“ į kitą lygį, imituodamas visos AWS prieinamumo zonos nutraukimą. "Labai retai AWS regionas tampa nepasiekiamas, tačiau taip atsitinka", - apibūdinamas 2015 m. „Netflix“ tinklaraščio įrašas.

"Reguliariai vykdydami eksperimentus, kurie imituoja regioninį nutrūkimą, mums pavyko anksti nustatyti sisteminius trūkumus ir juos pašalinti", - tęsiama įraše. „Kai„ US-EAST-1 “iš tikrųjų tapo nepasiekiama, mūsų sistema jau buvo pakankamai stipri, kad galėtų valdyti eismo perjungimą.“

Kaip savo knygoje apibūdina Jonesas ir Rosenthalis, Chaos Kongo paleidimas į infrastruktūrą buvo „baltos kojos reikalas su„ karo kambariu “, surinktu stebėti visus srautinio perdavimo aspektus, ir tai truko kelias valandas“.

Praėjus dvejiems metams, 2017 m. Liepos mėn., „Netflix“ pristatė „ChAP“, „Chaos Automation Platform“, kuri „klausia vartotojo nurodytos paslaugos diegimo vamzdyno. Tada ji paleidžia eksperimentinius ir kontrolinius tos paslaugos klasterius ir nukreipia nedidelį srautą į kiekvieną “, - rašoma tinklaraščio įraše.

Chaoso inžinerijos principai

Pagrindinė „Chaoso beždžionių“ praktika greitai išsivystė, vis daugiau ir daugiau panaudojant „Chaos Kong“, vėliau tai buvo įforminta kaip chaoso inžinerija. „Netflix“ savo oficialios chaoso inžinerijos komandos nesukūrė iki 2015 m. Šiai komandai vadovavo Bruce'as Wongas, dabar „Stitch Fix“ inžinerijos direktorius.

Chaoso inžinerijos principus oficialiai suvedė kai kurie originalūs „Chaoso beždžionės“ autoriai, apibrėždami šią praktiką: „Sistemos eksperimentavimo disciplina, siekiant sustiprinti pasitikėjimą sistemos gebėjimu atlaikyti audringas gamybos sąlygas“.

Praktiškai tai vyksta keturių etapų forma:

  1. Apibrėžti sistemos „pastovią būseną“, kad būtų galima nustatyti įprasto elgesio pagrindą.
  2. Hipotezuoja, kad ši pastovi būsena išliks ir kontrolinėje, ir eksperimentinėje grupėje.
  3. Pristatykite kintamuosius, atspindinčius realaus pasaulio įvykius, pvz., Sugedusius serverius, sutrikusius kietuosius diskus ar nutrūkusius tinklo ryšius.
  4. Pabandykite paneigti hipotezę ieškodami skirtumo tarp kontrolinės grupės ir eksperimentinės grupės.

Jei pusiausvyrinę būseną sunku sutrikdyti, turite tvirtą sistemą; jei yra silpnybė, turite ką nors išspręsti.

„Per penkerius metus nuo„ The Principles “paskelbimo matėme, kad chaoso inžinerija vystosi, kad atitiktų naujus iššūkius naujose pramonės šakose“, - pastebi Jonesas ir Rosenthalis. „Praktikos principai ir pagrindai, be abejo, ir toliau vystysis, kai įsisavinimas plečiasi programinės įrangos pramonėje ir tampa naujomis vertikalėmis.“

Chaoso inžinerija su „Chaos Monkey“

Norėdami paleisti „Chaos Monkey“ atvirojo kodo versiją, jūsų sistemos turės atitikti tam tikrus būtinus reikalavimus, kaip nurodyta „GitHub“.

„Chaos Monkey“ neveikia kaip paslauga, todėl turėsite nustatyti „cron“ darbą, kaip nurodyta „GitHub“ puslapyje, kuris paskui kartą per savaitę paskambins „Chaos Monkey“, norėdamas sukurti nutraukimo tvarkaraštį.

Norėdami naudoti šią „Chaos Monkey“ versiją, turite naudoti savo „Netflix“ atviro kodo nuolatinio pristatymo platformą „Spinnaker“, kuri gali apriboti tam tikrų organizacijų galimybes pritaikyti metodą. „Chaos Monkey“ taip pat reikalinga su MySQL suderinama duomenų bazė, 5.6 ar naujesnė versija.

Paslaugų savininkai nustato „Chaos Monkey“ konfigūracijas per „Spinnaker“. „Chaos Monkey“ dirba per „Spinnaker“, kad gautų informacijos apie tai, kaip diegiamos paslaugos, ir atsitiktinai nutraukia egzempliorius - virtualias mašinas ar konteinerius, jūsų nurodytu dažnumu ir tvarkaraščiu.

Žinoma, Chaoso beždžionės įgyvendinimas yra tik sudėtingos ir sudėtingos sistemos atsparumo problemų sprendimo užduoties pradžia. Chaoso beždžionė tik atskleidžia sistemos silpnybes; tada tai turi išsivystyti ar sistemų inžinerijos komandos, kad nustatytų jų priežastis ir pateiktų sprendimus.

„Pats įrankių naudojimas nėra brangus, tačiau investicijos, kurias turite atlikti norėdami reaguoti į įrankius, yra“, - sako Orzellas. Įsipareigojimas chaoso inžinerijai taip pat reikalauja perkelti išteklius nuo naujų funkcijų kūrimo prie atsparumo didinimo. „Kiekvienas verslas yra skirtingame to spektro taške ir kiekvienas turi nuspręsti, kiek toje vietoje skambinti aukštyn ar žemyn“, - priduria jis.

Jonesas ir Rosenthalis sako, kad pirmosiomis dienomis „Netflix“ inžinieriai „ypač daug pastūmėjo iš finansų įstaigų“.

Nepaisant didesnių bankų akcijų, jie vis tiek patyrė prastovų, todėl atidžiai įgyvendindami „iniciatyvią strategiją, kaip chaoso inžinerija, kad suprastų riziką, kad būtų išvengta didelių, nekontroliuojamų rezultatų“, daugelis tų organizacijų pakeitė savo mąstyseną, „Capital One“ anksti įvaikintojas, kaip išsamiai aprašyta knygoje.

Chaoso inžineriniai šaltiniai

Vėlgi, naujausia ir galutinė knyga šia tema yra Chaoso inžinerija buvusių „Netflix“ inžinierių Noros Joneso ir Casey Rosenthalio išleista 2020 m. balandžio mėn., kuri remiasi daugeliu šių autorių ir kitų darbų, surinktų 2017 m. knygoje. Chaoso inžinerija. Norėdami daugiau praktinės apžvalgos, skaitykite Russ Miles Chaoso inžinerijos mokymasis.

„Netflix“ teikia daug išteklių „GitHub“ tema, įskaitant mokymo programą, daugybę dokumentų, klaidų skaitiklį, prastovų tikrintuvą ir iššifravimo įrankius.

„Gremlin“ - komercinių įrankių, skirtų chaoso inžinerijos eksperimentams vykdyti, tiekėjas siūlo savo išsamų išteklių rinkinį, kurį nemokamai galite rasti internete ir PDF formatu. Bendrovė taip pat remia įvairias bendruomenės pastangas, įskaitant „Chaos Conf“ ir „Slack“ kanalą.

O'Reilly taip pat turi daugybę išteklių, įskaitant šį patogų knygų ir vaizdo įrašų šia tema grojaraštį.