Chaos Engineering: ny zavakanto amin'ny famotehana fanahy iniana. Fizarana 2

Fanamarihana. transl.: Ity lahatsoratra ity dia manohy andian-dahatsoratra lehibe avy amin'ny evanjelistra teknolojia AWS Adrian Hornsby, izay manapa-kevitra ny hanazava amin'ny fomba tsotra sy mazava ny maha-zava-dehibe ny fanandramana hanalefahana ny vokatry ny tsy fahombiazan'ny rafitra IT.

Chaos Engineering: ny zavakanto amin'ny famotehana fanahy iniana. Fizarana 2

"Raha tsy mahavita manomana drafitra ianao dia mikasa ny tsy hahomby." - Benjamin Franklin

В tapany voalohany Ao anatin'ity andian-dahatsoratra ity dia nampiditra ny foto-kevitry ny injeniera korontana aho ary nanazava ny fomba hanampiana azy hahita sy hanitsy ny lesoka ao amin'ny rafitra alohan'ny hahatongavany amin'ny tsy fahombiazan'ny famokarana. Noresahina tao koa ny fomba hampiroboroboan'ny chaos engineering ny fiovana ara-kolontsaina tsara ao anatin'ny fikambanana.

Tamin'ny faran'ny ampahany voalohany dia nampanantena aho fa hiresaka momba ny "fitaovana sy fomba fampidirana ny tsy fahombiazana amin'ny rafitra." Indrisy, nanana drafitra manokana momba izany ny lohako, ary ato amin'ity lahatsoratra ity dia hiezaka ny hamaly ny fanontaniana malaza indrindra izay mipoitra eo amin'ireo olona te hiditra amin'ny chaos engineering aho: Inona no ho tapaka voalohany?

Fanontaniana lehibe! Na izany aza, toa tsy dia sahirana loatra amin'ity panda ity izy ...

Chaos Engineering: ny zavakanto amin'ny famotehana fanahy iniana. Fizarana 2
Aza variana amin'ny chaos panda!

Valiny fohy: Kendrena ireo tolotra mitsikera eo amin'ny lalan'ny fangatahana.

Valiny lava kokoa nefa mazava kokoa: Mba hahatakarana hoe aiza no hanombohana manandrana korontana, tandremo ny lafiny telo:

  1. Jereo ny tantara fianjerana ary fantaro ny lamina;
  2. Manapaha hevitra fiankinan-doha mitsikera;
  3. Ampiasao ny antsoina hoe vokatry ny fahatokisan-tena tafahoatra.

Mampihomehy, fa ity ampahany ity dia azo antsoina mora foana "Dia mankany amin'ny fahitana ny tena sy ny fahazavana". Ao anatin'izany isika dia hanomboka "milalao" miaraka amin'ny zavamaneno mahafinaritra.

1. Efa lasa ny valiny

Raha tadidinao, tamin'ny ampahany voalohany dia nampiditra ny foto-kevitra momba ny fanitsiana ny hadisoana (COE) aho - fomba iray handinihantsika ny fahadisoantsika - lesoka eo amin'ny teknolojia, dingana na fandaminana - mba hahatakarana ny anton'izy ireo sy hisorohana. fiverenana amin'ny ho avy . Amin'ny ankapobeny, eto no tokony hanombohanao.

"Mba hahatakarana ny ankehitriny dia mila mahafantatra ny lasa ianao." — Carl Sagan

Jereo ny tantaran'ny tsy fahombiazana, asio marika ao amin'ny COE na postmortems ary sokafy izy ireo. Fantaro ireo lamina mahazatra izay matetika miteraka olana, ary ho an'ny COE tsirairay dia manontania tena ireto fanontaniana manaraka ireto:

"Mety efa novinavinaina ve izany ary noho izany dia nosorohana tamin'ny tsindrona diso?"

Tsaroako ny tsy fahombiazana iray tany am-piandohan'ny asako. Mety ho voasoroka mora foana izany raha nanao andrana korontana tsotra roa izahay:

Amin'ny toe-javatra mahazatra, ny tranga backend dia mamaly ny fisavana ara-pahasalamana avy amin'ny mpifandanja entana (ELB)). Mampiasa ireo fisavana ireo ny ELB hamerenana ny fangatahana amin'ny tranga mahasalama. Rehefa hita fa "tsy salama" ny tranga iray, dia mijanona amin'ny fandefasana fangatahana aminy ny ELB. Indray andro, taorian'ny fampielezan-kevitra ara-barotra nahomby, nitombo ny habetsahan'ny fifamoivoizana ary nanomboka namaly tsikelikely ny fisavana ara-pahasalamana ny backend noho ny mahazatra. Tokony ho lazaina fa ireo fitsirihana ara-pahasalamana ireo lalina, izany hoe, nojerena ny toetry ny miankina.

Nilamina anefa ny zava-drehetra nandritra ny fotoana kelikely.

Avy eo, efa ao anatin'ny toe-javatra mampahory, ny iray amin'ireo tranga dia nanomboka nanatanteraka asa Cron ETL tsy mitsikera tsy tapaka. Ny fitambaran'ny fifamoivoizana be sy ny cronjob dia nanosika ny fampiasana CPU ho 100%. Ny fihoaran'ny CPU dia nampihena kokoa ny valin'ny fisavana ara-pahasalamana, hany ka nanapa-kevitra ny ELB fa nisedra olana tamin'ny fampisehoana ilay ohatra. Araka ny efa nampoizina dia tsy nizara ny fifamoivoizan’ny mpifandanja tamin’izany intsony ny mpifandanja, izay nitarika ny fiakaran’ny entana tamin’ireo tranga sisa tao amin’ny vondrona.

Tampoka teo, ny tranga hafa rehetra dia nanomboka tsy nahomby tamin'ny fisavana ara-pahasalamana.

Ny fanombohana tranga vaovao dia nitaky ny fampidinana sy fametrahana fonosana ary naharitra ela kokoa noho ny nandraisan'ny ELB hanaisotra azy ireo - tsirairay - ao amin'ny vondrona autoscaling. Mazava fa tsy ela dia tonga amin'ny teboka manan-danja ny dingana manontolo ary nianjera ny fampiharana.

Avy eo dia azonay mandrakizay ireto teboka manaraka ireto:

  • Ny fametrahana rindrambaiko rehefa mamorona ohatra vaovao dia mitaky fotoana ela kokoa; Golden AMI.
  • Amin'ny toe-javatra sarotra, ny valin'ny fitsirihana ara-pahasalamana sy ny ELB dia tokony ho laharam-pahamehana - ny zavatra farany tadiavinao dia ny manasarotra ny fiainana amin'ireo tranga sisa.
  • Manampy betsaka (eny fa na dia segondra vitsy aza) ny caching eo an-toerana amin'ny fisavana ara-pahasalamana.
  • Amin'ny toe-javatra sarotra, aza manao asa cron sy dingana hafa tsy mitsikera - mitahiry loharano ho an'ny asa manan-danja indrindra.
  • Mampiasà ohatra kely kokoa rehefa manao scaling. Ny vondrona misy santionany kely 10 dia tsara kokoa noho ny vondrona misy 4 lehibe; raha tsy mahomby ny tranga iray, amin'ny tranga voalohany dia hozaraina amin'ny teboka 10 ny 9% amin'ny fifamoivoizana, amin'ny faharoa - ny 25% amin'ny fifamoivoizana amin'ny teboka telo.

Ary noho izany, mety ho efa tsikaritra mialoha ve izany, ka noho izany dia nosorohana tamin'ny fampidirana ilay olana?

fa, ary amin'ny fomba maro.

Voalohany, amin'ny fanaovana simulation ny fampiasana CPU avo lenta amin'ny fampiasana fitaovana toy ny stress-ng na cpuburn:

❯ stress-ng --matrix 1 -t 60s

Chaos Engineering: ny zavakanto amin'ny famotehana fanahy iniana. Fizarana 2
adin-tsaina-ng

Faharoa, amin'ny alalan'ny overloading ny ohatra amin'ny wrk ary fitaovana hafa mitovy amin'izany:

❯ wrk -t12 -c400 -d20s http://127.0.0.1/api/health

Chaos Engineering: ny zavakanto amin'ny famotehana fanahy iniana. Fizarana 2

Tsotra ny fanandramana, saingy afaka manome sakafo tsara ho an'ny fisainana tsy mila mandalo ny adin-tsain'ny tsy fahombiazana.

na izany aza aza mijanona eo. Andramo ny mamerina ny fianjerana amin'ny tontolo fitsapana ary jereo ny valinteninao amin'ny fanontaniana "Mety ho efa tsikaritra mialoha ve izany ary noho izany dia nosorohana tamin'ny fampidirana lesoka?" Ity dia fanandramana korontana kely ao anatin'ny andrana korontana mba hitsapana vinavina, saingy manomboka amin'ny tsy fahombiazana.

Chaos Engineering: ny zavakanto amin'ny famotehana fanahy iniana. Fizarana 2
Nofinofy ve izany, sa tena nisy tokoa?

Diniho àry ny tantaran’ny tsy fahombiazana, mamakafaka EOC. Manontania tena raha azo novinavinaina sy nosorohana izany tamin'ny fampidirana ilay olana. Jereo ny valinteninao.

Avy eo dia miverena amin'ny lamina mahazatra indrindra miaraka amin'ny salan'isa lehibe indrindra.

2. Manangana sarintany miankina

Makà fotoana hieritreretana momba ny fampiharanao. Misy sarintany mazava ve ny fiankinany? Fantatrao ve ny fiantraikan'izy ireo raha misy ny tsy fahombiazana?

Raha tsy zatra loatra ny kaody fampiharanao ianao na lasa lehibe dia mety ho sarotra ny mahatakatra ny ataon'ilay kaody sy ny fiankinany. Ny fahatakarana ireo fiankinan-doha ireo sy ny mety ho fiantraikan'izy ireo amin'ny fampiharana sy ny mpampiasa dia tena zava-dehibe amin'ny fahafantarana hoe aiza no hanombohana amin'ny chaos engineering: ny teboka fiaingana dia ny singa manana taratra fiantraikany lehibe indrindra.

Ny famantarana sy ny fandraketana ny fiankinan-doha dia antsoina hoe "fananganana sarintany miankina» (sarintany miankina). Izany dia atao matetika ho an'ny rindranasa misy fototra kaody lehibe amin'ny fampiasana fitaovana fametahana kaody. (famoronana code) ary fitaovana (fitaovana). Azonao atao ihany koa ny manamboatra sarintany amin'ny fanaraha-maso ny fifamoivoizana amin'ny tambajotra.

Na izany aza, tsy ny fiankinan-doha rehetra no mitovy (izay manasarotra kokoa ny dingana). SASANY manakiana, hafa - faharoa (farafaharatsiny amin'ny teoria, satria matetika mitranga ny fianjerana noho ny olana amin'ny fiankinan-doha izay heverina ho tsy mitsikera).

Raha tsy misy fiankinan-doha mitsikera dia tsy afaka miasa ny serivisy. Fiankinan-doha tsy mitsikera"tsy tokony» mba hisy fiantraikany amin'ny serivisy raha misy fianjerana. Mba hahatakarana ny fiankinan-doha dia mila manana fahatakarana mazava momba ny API ampiasain'ny fampiharanao ianao. Mety ho sarotra kokoa noho ny hita izany - farafaharatsiny ho an'ny fampiharana lehibe.

Atombohy amin'ny fandehanana amin'ny API rehetra. Asongadino ny be indrindra manan-danja sy mitsikera. Raiso miankina amin'ny avy amin'ny tahiry tahiry, jereo izany logs fifandraisana, dia jereo tahirin-kevitra (mazava ho azy, raha misy izany - raha tsy izany dia mbola manana ianaoоolana lehibe kokoa). Ampiasao ny fitaovana mba profiling sy tracing, sivana ny antso ivelany.

Azonao atao ny mampiasa programa toy ny netstat - fitaovana andalana baiko izay mampiseho ny lisitry ny fifandraisana rehetra amin'ny tambajotra (fantsona mavitrika) ao amin'ny rafitra. Ohatra, raha mitanisa ny fifandraisana misy ankehitriny dia soraty:

❯ netstat -a | more 

Chaos Engineering: ny zavakanto amin'ny famotehana fanahy iniana. Fizarana 2

Ao amin'ny AWS azonao ampiasaina logs mikoriana VPC dia fomba iray ahafahanao manangona vaovao momba ny fifamoivoizana IP mankany na avy amin'ny seha-pifandraisana amin'ny VPC. Afaka manampy amin'ny asa hafa koa ny diary toy izany - ohatra, ny fitadiavana valiny amin'ny fanontaniana hoe nahoana ny fifamoivoizana sasany no tsy tonga any amin'ny ohatra.

Azonao ampiasaina koa AWS X-Ray. Ny X-Ray dia ahafahanao mahazo antsipiriany, "ultimate" (amin'ny farany) topimaso momba ny fangatahana rehefa mandeha amin'ny fampiharana izy ireo, ary manangana sarintany misy ireo singa fototra ao amin'ny fampiharana. Tena mety raha mila mamantatra ny fiankinan-doha ianao.

Chaos Engineering: ny zavakanto amin'ny famotehana fanahy iniana. Fizarana 2
AWS X-Ray Console

Sarintany miankina amin'ny tambazotra dia vahaolana ampahany ihany. Eny, asehony izay fampiharana mifandray amin'ny inona, fa misy fiankinan-doha hafa.

Maro ny fampiharana mampiasa DNS mba hifandraisana amin'ny fiankinan-doha, raha ny hafa kosa mampiasa ny fitadiavana serivisy na ny adiresy IP misy kaody sarotra amin'ny rakitra fikirakirana (oh. /etc/hosts).

Ohatra, afaka mamorona ianao DNS blackhole miaraka amin'ny fanampian'ny iptables ary jereo izay tapaka. Mba hanaovana izany, ampidiro ity baiko manaraka ity:

❯ iptables -I OUTPUT -p udp --dport 53 -j REJECT -m comment --comment "Reject DNS"

Chaos Engineering: ny zavakanto amin'ny famotehana fanahy iniana. Fizarana 2
DNS lavaka mainty

Raha ao /etc/hosts na fisie fanamafisana hafa, hahita adiresy IP tsy fantatrao na inona na inona ianao (eny, indrisy, mitranga koa izany), afaka manavotra indray ianao iptables. Aoka hatao hoe nahita ianao 8.8.8.8 ary tsy fantatro fa adiresy mpizara DNS ho an'ny daholobe Google ity. Amin'ny fampiasana iptables Azonao atao ny manakana ny fifamoivoizana miditra sy mivoaka amin'ity adiresy ity amin'ny fampiasana ireto baiko manaraka ireto:

❯ iptables -A INPUT -s 8.8.8.8 -j DROP -m comment --comment "Reject from 8.8.8.8"
❯ iptables -A OUTPUT -d 8.8.8.8 -j DROP -m comment --comment "Reject to 8.8.8.8"

Chaos Engineering: ny zavakanto amin'ny famotehana fanahy iniana. Fizarana 2
fanakatonana ny fidirana

Ny fitsipika voalohany dia manala ny fonosana rehetra amin'ny DNS-bahoaka Google: ping miasa, fa tsy averina ny fonosana. Ny fitsipika faharoa dia manala ny fonosana rehetra avy amin'ny rafitrao mankany amin'ny DNS-bahoaka Google - ho setrin'izany ping mahazo Tsy azo atao ny fandidiana.

Fanamarihana: amin'ity tranga manokana ity dia tsara kokoa ny mampiasa whois 8.8.8.8, fa ohatra fotsiny ity.

Afaka miditra lalindalina kokoa amin'ny lavaka bitro isika, satria miankina amin'ny IP ihany koa ny zavatra rehetra mampiasa TCP sy UDP. Amin'ny ankamaroan'ny tranga, IP dia mifamatotra amin'ny ARP. Aza adino ny firewall...

Chaos Engineering: ny zavakanto amin'ny famotehana fanahy iniana. Fizarana 2
Raha mihinana ilay pilina mena ianao dia mijanona ao amin'ny Wonderland, ary hasehoko anao ny halalin'ny lavaka bitro."

Ny fomba fiasa mahery vaika kokoa dia ny elektrônika fiara tsirairay ary jereo izay vaky... lasa " rajako chaos". Mazava ho azy fa maro ny rafitra famokarana tsy natao ho an'ny fanafihana mahery vaika toy izany, fa farafaharatsiny dia azo andrana amin'ny tontolo fitsapana.

Ny fanamboarana sarintany fiankinana dia matetika asa lava be. Vao haingana aho no niresaka tamin'ny mpanjifa iray nandany efa ho 2 taona namolavola fitaovana iray izay mamorona sarintany fiankinan-doha ho an'ny microservices sy baiko an-jatony.

Ny vokatra anefa dia tena mahaliana sy mahasoa. Hianatra betsaka momba ny rafitrao ianao, ny fiankinany ary ny fiasany. Mahareta indray: ny dia mihitsy no zava-dehibe indrindra.

3. Mitandrema amin'ny fahatokisana tafahoatra

"Na iza na iza manonofy inona, mino izany." — Demosthenes

Efa nandre momba ny vokatry ny fahatokisan-tena tafahoatra?

Araka ny Wikipedia, ny vokatry ny fahatokiana be loatra dia “fitongilanana ara-tsaina izay mahatonga ny fahatokisan'ny olona iray amin'ny zavatra ataony sy ny fanapahan-keviny mihoatra lavitra noho ny fahamarinan'ireo fitsarana ireo, indrindra rehefa somary avo ny haavon'ny fahatokisana.

Chaos Engineering: ny zavakanto amin'ny famotehana fanahy iniana. Fizarana 2
Mifototra amin'ny instinct sy traikefa...

Avy amin'ny zavatra niainako dia afaka milaza aho fa ity fanodinkodinana ity dia fanondro lehibe amin'ny toerana hanombohana amin'ny injeniera korontana.

Mitandrema amin'ny mpandraharaha matoky tena loatra:

Charlie: "Tsy latsaka tao anatin'ny dimy taona io zavatra io, tsara daholo ny zava-drehetra!"
Loza: “Andraso... ho avy tsy ho ela aho!”

Ny fitongilanana vokatry ny fahatokian-tena tafahoatra dia zavatra mamitaka ary mampidi-doza mihitsy aza noho ny antony isan-karazany izay misy fiantraikany amin'izany. Marina indrindra izany rehefa nandatsaka ny fony tao anatin'ny teknolojia iray ny mpikambana ao amin'ny ekipa na nandany fotoana betsaka "nanamboatra" azy.

Famintinana

Ny fitadiavana toerana fiaingana ho an'ny chaos engineering dia mitondra vokatra bebe kokoa noho ny nantenaina, ary ireo ekipa izay manomboka manapaka zavatra haingana loatra dia tsy mahita ny maha-zava-dehibe ny eran-tany sy mahaliana kokoa an'ny (korontana-)INJENIORIA - fampiasana famoronana fomba siantifika и porofo mivaingana ho an'ny famolavolana, fampandrosoana, fampandehanana, fikojakojana ary fanatsarana ny rafitra (rindrambaiko).

Izany no mamarana ny tapany faharoa. Manorata hevitra azafady, mizara hevitra na mitehaka fotsiny Medium. Ao amin'ny fizarana manaraka I tena Handinika fitaovana sy fomba fampidirana tsy fahombiazana amin'ny rafitra aho. Mandra-pahatongan'izany!

PS avy amin'ny mpandika teny

Vakio ihany koa ao amin'ny bilaoginay:

Source: www.habr.com

Add a comment