Tehnologia este peste tot. În funcție de cât de mare este miza industriei dvs., eșecul unui produs sau sistem tehnologic poate cădea între orice neglijabil până la sfârșitul vieții așa cum o cunoașteți.
Mainframe-urile spitalului? Cam important. Reziliența aplicației Candy Crush pe telefonul dvs. mobil? Probabil ceva mai jos pe lista generală de priorități.
Într-un sistem distribuit de rețele, eșecul este inevitabil. Prevenirea catastrofei începe cu un design de securitate solid, etanș. Dar, dincolo de asta, ce altceva se poate face?
Ce este Netflix Chaos Engineering?
20 septembrie 2015.
Totul liniștit pe frontul de vest, când, dintr-o dată, mai multe servere importante ale Amazon Web Services coboară fără un cuvânt.
Multe companii imense nu au reușit să-și asigure clienții timp de câteva ore. Cu toate acestea, Netflix a revenit în picioare în câteva minute. Cum? Cultura internă a companiei Netflix a evoluat pentru a include multe practici de „inducere a eșecului” implementate în timp real pentru a pregăti atât sistemele, cât și inginerii, deopotrivă, atunci când are loc un dezastru.
Conducerea companiei a efectuat în mod intenționat întreruperi simulate ale serverului în părți conținute ale sistemului pentru a studia și a se pregăti pentru evenimente precum acestea. Acest lucru i-a ajutat să identifice găurile din sistem și să construiască concedieri care să permită serviciului să continue neîntrerupt, chiar și în cazul unei defecțiuni majore, precum cea menționată anterior.
Aceste exerciții deliberate de „inginerie a haosului” le-au oferit inginerilor suficient de mult un avantaj competitiv pentru a se vedea pe ei înșiși prin fiasco, mulțumită în parte infrastructurii preventive pe care au construit-o cu acest gen de eveniment al zilei de judecată in minte.
Nimeni altcineva nu era pregătit când valul mare a lovit. Sistemul Netflix a fost suficient de puternic pentru a se descurca singur. Concluzie? Acești creatori haotici ar putea fi implicați în ceva aici.
Anulând intenționat pe cei care te iubesc
„Ingineria haosului este disciplina experimentării pe un sistem pentru a construi încrederea în capacitatea sistemului de a rezista condițiilor turbulente din producție.”
Manifestul Principiilor Haosului
Aceasta este inima ingineriei haosului - în esență, un „exercițiu de incendiu” impus sistemului în timpul orelor de lucru, când există ochi și mâini disponibile pentru a aborda provocarea prezentată. Capacitatea unui sistem dat de a tolera eșecul este pusă la încercare pe măsură ce sunt expuse orice vulnerabilități.
În contextul său original din 2011, ingineria haosului a vizat departamentul IT al Netflix. Conducerea lor a dorit să testeze cât de rezistente au fost eforturile echipei atunci când unul sau mai multe dintre computerele lor au fost dezactivate intenționat. Aceste eșecuri au permis echipei IT să identifice punctele slabe importante înainte de a deveni probleme la nivel de sistem și pot fi exploatate din exterior.
Eșec real? Poate fi costisitor ca naiba, și asta depășește implicațiile monetare. Chiar și perioadele de nefuncționare, fără o scădere reală a securității, vor duce probabil la o mulțime de oportunități ratate de a câștiga venituri. De ce să aștepți ca o urgență să te blocheze?
Maimuțele din spatele nebuniei
Unele companii vor adopta un model de „echipă roșie” care pune echipele de dezvoltatori în fața fraților lor de-a lungul liniilor departamentale. Exemplul clasic pe care l-a instaurat Netflix face totuși uz de o „armată simiană”. Acești roboți fac treaba murdară pentru ei corect și total la întâmplare.
Nebun? Poate pentru laic. În cuvintele autorului „Haos Monkeys”, Antonio Garcia Martinez:
„Imaginați-vă o maimuță care intră într-un„ centru de date ”, aceste„ ferme ”de servere care găzduiesc toate funcțiile critice ale activităților noastre online. Maimuța rupe la întâmplare cablurile și distruge dispozitivele. Provocarea constă în proiectarea sistemului informațional de care sunt responsabili, astfel încât să poată funcționa în ciuda acestor maimuțe, pe care nimeni nu le știe niciodată când sosesc și ce vor distruge. "
O analogie colorată. Cu toate acestea, nu toți simienii sunt cruzi: Doctor Monkey monitorizează performanța sistemului, de exemplu. Cu toate acestea, când Chaos Kong se oprește pentru o vizită, toate pariurile sunt dezactivate; acest personaj va elimina o întreagă zonă de disponibilitate AWS.
Legate de: Cum sunt evaluate vulnerabilitățile de securitate?
Ingineria haosului și metoda științifică
Ingineria haosului servește ca o sursă valoroasă de perspectivă sistemică pentru cei care efectuează experimentele. Nu doar dezvoltatorii sunt puși la încercare aici; este sistemul așa cum există și în mod autonom.
Înainte de a arunca butoiul maimuțelor pe masă, ingineria haosului necesită un pic de pregătire.
- Mai întâi trebuie să identificați ceea ce considerați a fi o stare „stabilă”, sănătoasă și funcțională pentru sistemul dvs. Acesta va fi „controlul” cu care măsurați orice rezultat tangibil.
- Începeți să vă gândiți la modul în care această stare va fi dezechilibrată prin intruziunea eșecului orchestrat. Planificați malware-ul dvs. de sondare pentru a afecta doar o zonă conținută și controlabilă a sistemului dvs.
- Introduceți „intrusul” și permiteți sistemului să răspundă.
- Observați și interpretați orice diferență dintre sistem așa cum există acum și cum se comporta înainte, în timp ce se afla în homeostazie. Măriți-vă „raza de explozie” de impact până când fie detectați o vulnerabilitate, fie atingeți la scară completă, oricare ar fi primul.
Ideea este că cu cât este mai dificil să perturbi un sistem funcțional, cu atât poți avea mai multă încredere în rezistența sa la schimbare și bombardament. Această abordare arată cum diferitele aspecte ale sistemului vor compensa eșecurile reciproce în cazul unei întreruperi.
„Deoarece nicio componentă nu poate garanta 100% disponibilitate (și chiar și cel mai scump hardware eșuează în cele din urmă), trebuie proiectați o arhitectură cloud în care componentele individuale pot eșua fără a afecta disponibilitatea întregului sistem."
Netflix Blog
Uneori, jocul cu sistemul în acest fel nu vine nici măcar să afecteze experiența clientului. Alteori, vor fi scoase la iveală defecte grave de securitate. Acum, în special la Netflix, situația de urgență menită să mascheze eșecul sistemului la nivel de utilizator este integrată în baza sistemului.
Legate de: Ce este un exploatare Zero-Day?
Merită merită Ingineria Haosului?
Dacă doriți să înțelegeți un sistem complex - deranjați-l
- Farhan Thawar (@fnthawar) 26 mai 2021
Criticii vor spune că niciun joc back-end nu merită să aibă impact asupra experienței unui client, chiar dacă doar pe scurt și accidental. Cei care sunt în favoarea ingineriei haosului, totuși, vor respinge faptul că aceste „întreruperi planificate” sunt menite să fie mult mai mici decât ceea ce AWS a experimentat în 2015. Dacă o mică problemă planificată vă pune într-o poziție de a împiedica o problemă mult mai mare să se prezinte vreodată, planificarea incidentului inițial poate fi cea mai bună modalitate de pregătire. Mai puțini utilizatori vor fi afectați în total. Matematica funcționează.
Din capătul uman al problemei, mentalitatea este că, acum, acești ingineri care au avut un server s-au prăbușit în fața lor și tratat cu competență va fi atât mai alert în viitor, cât și mai echipat din punct de vedere intelectual pentru a face față oricărui lucru care le aparține cale. Sistemul mai puternic care rezultă, în multe cazuri, vorbește de la sine.
Silicon Valley: Unde visele merg să moară
Ei spun că, dacă vrei să-l faci mare, trebuie să fii dispus să-ți ucizi dragii sau, în acest caz, să fii dispus să îi lași pe alții să-i omoare pentru tine. Atunci când securitatea este în prim plan încă de la începutul dezvoltării, echipa dvs. are mult mai multe șanse să ajungă la ceva impenetrabil și sigur pentru ca clienții să îl poată folosi în mod liber.
Examinarea experienței la locul de muncă face ca perspectiva succesului în acest domeniu să fie interesantă; când rezultatul final este unul de calitate, toată lumea ajunge la nivel. Netflix-ul meu funcționează foarte bine și avem doar nebuni în spatele haosului pentru a mulțumi pentru asta.
Acum, că aveți o înțelegere fermă a ingineriei haosului, de ce să nu vă extindeți cunoștințele cu o altă metodologie de dezvoltare software? Agile este un sistem excelent pe care îl puteți încorpora pentru a unifica forța de muncă și a produce coduri curate și eficiente.
Fie că aplicați pentru locuri de muncă de programare sau doriți un mod de lucru mai eficient, va trebui să aflați despre Agile.
Citiți în continuare
- Programare
- Programare
Emma Garofalo este o scriitoare cu sediul în prezent în Pittsburgh, Pennsylvania. Când nu se străduiește la biroul ei pentru a avea nevoie de o zi de mâine mai bună, ea poate fi găsită de obicei în spatele camerei sau în bucătărie.
Aboneaza-te la newsletter-ul nostru
Alăturați-vă newsletterului pentru sfaturi tehnice, recenzii, cărți electronice gratuite și oferte exclusive!
Încă un pas…!
Vă rugăm să confirmați adresa de e-mail în e-mailul pe care tocmai vi l-am trimis.