Dezòd Jeni: atizay la nan destriksyon ekspre. Pati 2

Remak. trad.: Atik sa a ap kontinye yon seri gwo atik ki soti nan evanjelis teknoloji AWS Adrian Hornsby, ki te deside eksplike nan yon fason ki senp epi klè enpòtans eksperimantasyon pou bese konsekans echèk nan sistèm IT.

Dezòd Jeni: atizay la nan destriksyon ekspre. Pati 2

"Si ou echwe pou prepare yon plan, Lè sa a, ou planifye echwe." - Benjamen Franklin

В premye pati a Nan seri atik sa a, mwen te prezante konsèp jeni dezòd epi mwen te eksplike kijan li ede jwenn ak korije defo nan sistèm nan anvan yo mennen nan echèk pwodiksyon an. Li te diskite tou sou fason jeni dezòd ankouraje chanjman kiltirèl pozitif nan òganizasyon yo.

Nan fen premye pati a, mwen te pwomèt pou m pale sou "zouti ak metòd pou entwodwi echèk nan sistèm yo." Ay, tèt mwen te gen pwòp plan li yo nan sans sa a, ak nan atik sa a mwen pral eseye reponn kesyon ki pi popilè ki rive nan mitan moun ki vle antre nan jeni dezòd: Kisa pou kraze an premye?

Gwo kesyon! Sepandan, li pa sanble patikilyèman anmède pa panda sa a ...

Dezòd Jeni: atizay la nan destriksyon ekspre. Pati 2
Pa dezòd ak panda dezòd la!

Repons kout: Vize sèvis enpòtan yo sou chemen demann lan.

Repons ki pi long men ki pi klè: Pou konprann ki kote yo kòmanse fè eksperyans ak dezòd, peye atansyon sou twa domèn:

  1. Gade nan istwa aksidan epi idantifye modèl;
  2. Deside sou depandans kritik;
  3. Sèvi ak sa yo rele efè twòp konfyans.

Li komik, men pati sa a ta ka jis kòm fasil yo rele "Yon vwayaj nan dekouvèt pwòp tèt ou ak Syèk Limyè". Nan li nou pral kòmanse "jwe" ak kèk enstriman fre.

1. Repons lan se nan tan lontan an

Si w sonje, nan premye pati a, mwen te prezante konsèp Correction-of-Errors (COE) - yon metòd pou nou analize erè nou yo - erè nan teknoloji, pwosesis oswa òganizasyon - pou nou ka konprann kòz yo epi anpeche yo. repetisyon nan tan kap vini an. An jeneral, sa a se kote ou ta dwe kòmanse.

"Pou konprann prezan an, ou bezwen konnen sot pase a." — Carl Sagan

Gade istwa echèk yo, tag yo nan COE oswa postmortems epi klasifye yo. Idantifye modèl komen ki souvan mennen nan pwoblèm, epi pou chak COE, poze tèt ou kesyon sa a:

"Èske sa a te kapab prevwa ak Se poutèt sa anpeche pa piki fòt?"

Mwen sonje yon echèk byen bonè nan karyè mwen. Li te kapab fasilman anpeche si nou te fè yon koup nan eksperyans dezòd senp:

Nan kondisyon nòmal yo, backend instances reponn a chèk sante de balans chaj (ELB)). ELB itilize chèk sa yo pou redireksyon demann yo nan ka ki an sante. Lè li sanble ke yon egzanp se "malsen", ELB sispann voye demann ba li. Yon jou, apre yon kanpay maketing siksè, volim nan trafik ogmante ak backend yo te kòmanse reponn a chèk sante pi dousman pase nòmal. Li ta dwe di ke chèk sante sa yo te fon, se sa ki, eta a nan depandans yo te tcheke.

Sepandan, tout bagay te byen pou yon ti tan.

Lè sa a, deja anba kondisyon pito estrès, youn nan sikonstans yo te kòmanse egzekite yon travay regilye ETL cron ki pa kritik. Konbinezon gwo trafik ak cronjob pouse itilizasyon CPU prèske 100%. Surcharge CPU te ralanti plis repons nan chèk sante, tèlman ELB te deside ke egzanp lan te fè eksperyans pwoblèm pèfòmans. Kòm espere, balans lan sispann distribye trafik nan li, ki, nan vire, te mennen nan yon ogmantasyon nan chaj la sou ka ki rete yo nan gwoup la.

Toudenkou, tout lòt ka yo te kòmanse echwe tou chèk sante a.

Kòmanse yon nouvo egzanp te mande pou telechaje ak enstale pakè yo epi li te pran anpil tan pase sa li te pran ELB a enfim yo - youn pa youn - nan gwoup la autoscaling. Li klè ke byento tout pwosesis la te rive nan yon pwen kritik ak aplikasyon an te fè aksidan.

Lè sa a, nou pou tout tan konprann pwen sa yo:

  • Enstale lojisyèl lè w ap kreye yon nouvo egzanp pran yon bon bout tan; li pi bon pou bay preferans apwòch imuiabl la ak Golden AMI.
  • Nan sitiyasyon konplèks, repons a chèk sante ak ELB yo ta dwe pran priyorite - dènye bagay ou vle se konplike lavi pou ka ki rete yo.
  • Cache lokal nan chèk sante ede anpil (menm pou kèk segond).
  • Nan yon sitiyasyon difisil, pa kouri travay cron ak lòt pwosesis ki pa kritik - sove resous pou travay ki pi enpòtan yo.
  • Lè autoscaling, sèvi ak pi piti ka. Yon gwoup 10 ti espesimèn pi bon pase yon gwoup 4 gwo; si yon egzanp echwe, nan premye ka 10% nan trafik la pral distribye sou 9 pwen, nan dezyèm lan - 25% nan trafik la sou twa pwen.

Se konsa, ta ka sa a te prevwa, ak Se poutèt sa anpeche pa entwodwi pwoblèm nan?

Да, ak nan plizyè fason.

Premyèman, pa similye itilizasyon CPU segondè lè l sèvi avèk zouti tankou stress-ng oswa cpuburn:

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

Dezòd Jeni: atizay la nan destriksyon ekspre. Pati 2
estrès-ng

Dezyèmman, pa twò chaje egzanp lan ak wrk ak lòt sèvis piblik menm jan an:

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

Dezòd Jeni: atizay la nan destriksyon ekspre. Pati 2

Eksperyans yo se relativman senp, men yo ka bay kèk bon manje pou reflechi san yo pa bezwen ale nan estrès la nan yon echèk reyèl.

Men, pa sispann la. Eseye repwodui aksidan an nan yon anviwònman tès epi tcheke repons ou a kesyon an "Èske sa a te kapab prevwa ak Se poutèt sa anpeche pa entwodwi yon fay?" Sa a se yon eksperyans mini dezòd nan yon eksperyans dezòd teste sipozisyon, men kòmanse ak yon echèk.

Dezòd Jeni: atizay la nan destriksyon ekspre. Pati 2
Èske se te yon rèv, oswa li te reyèlman rive?

Se konsa, etidye istwa a nan echèk, analize EOC, tag ak klasifye yo pa "reyon frape"-oswa plis presizyon, kantite kliyan ki afekte-ak Lè sa a, gade pou modèl. Mande tèt ou si sa a te kapab prevwa ak anpeche pa prezante pwoblèm nan. Tcheke repons ou an.

Lè sa a, chanje nan modèl ki pi komen ak pi gwo seri a.

2. Bati yon kat depandans

Pran yon ti tan pou w reflechi sou aplikasyon w lan. Èske gen yon kat jeyografik klè nan depandans li yo? èske w konnen ki enpak yo pral genyen si gen yon echèk?

Si ou pa trè abitye ak kòd aplikasyon w lan oswa li vin trè gwo, li ka difisil pou konprann ki sa kòd la fè ak ki sa depandans li yo. Konprann depandans sa yo ak enpak posib yo sou aplikasyon an ak itilizatè yo enpòtan anpil pou konnen ki kote yo kòmanse ak jeni dezòd: pwen an kòmanse se eleman ki gen pi gwo reyon enpak la.

Idantifye ak dokimante depandans yo rele "bati yon kat depandans» (kat depandans). Sa a se tipikman fè pou aplikasyon ki gen yon baz kòd gwo lè l sèvi avèk zouti kòd pwofil. (kod profilage) ak instrumentation (instrumentation). Ou kapab tou bati yon kat jeyografik lè w kontwole trafik rezo a.

Sepandan, se pa tout depandans yo menm (ki plis konplike pwosesis la). Gen kèk kritik, lòt - segondè (omwen nan teyori, paske aksidan souvan rive akòz pwoblèm ak depandans ki te konsidere kòm ki pa kritik).

San depandans kritik, sèvis la pa ka travay. Depandans ki pa kritik "pa ta dwe» pou enfliyanse sèvis la nan ka yon tonbe. Pou konprann depandans, ou bezwen gen yon konpreyansyon klè sou API yo itilize nan aplikasyon w lan. Sa a ka pi difisil pase sa li sanble - omwen pou aplikasyon pou gwo.

Kòmanse pa ale nan tout API yo. Mete aksan sou pi plis la enpòtan ak kritik. Pran depandans soti nan repozitwa kòd la, tcheke li deyò mòso bwa koneksyon, Lè sa a, gade dokimantasyon (nan kou, si li egziste - otreman ou toujou genyenоpi gwo pwoblèm). Sèvi ak zouti yo pou profilage ak trase, filtre apèl ekstèn yo.

Ou ka itilize pwogram tankou netstat - yon sèvis piblik liy kòmand ki montre yon lis tout koneksyon rezo (priz aktif) nan sistèm nan. Pa egzanp, pou lis tout koneksyon aktyèl yo, tape:

❯ netstat -a | more 

Dezòd Jeni: atizay la nan destriksyon ekspre. Pati 2

Nan AWS ou ka itilize mòso bwa koule (mòso bwa koule) VPC se yon metòd ki pèmèt ou kolekte enfòmasyon sou trafik IP ale nan oswa soti nan koòdone rezo nan yon VPC. Jounal sa yo ka ede tou ak lòt travay - pou egzanp, jwenn yon repons a kesyon poukisa sèten trafik pa rive nan egzanp lan.

Ou ka itilize tou AWS X-Ray. X-Ray pèmèt ou jwenn detaye, "ultim" (fen-a-fen) apèsi sou demann yo pandan y ap deplase atravè aplikasyon an, epi tou li bati yon kat konpozan ki kache aplikasyon an. Trè pratik si ou bezwen idantifye depandans.

Dezòd Jeni: atizay la nan destriksyon ekspre. Pati 2
AWS X-Ray konsole

Yon kat depandans rezo se sèlman yon solisyon pasyèl. Wi, li montre ki aplikasyon kominike ak kiyès, men gen lòt depandans.

Anpil aplikasyon sèvi ak DNS pou konekte ak depandans, pandan ke lòt moun ka itilize dekouvèt sèvis oswa menm adrès IP ki kode difisil nan dosye konfigirasyon (egzanp. /etc/hosts).

Pou egzanp, ou ka kreye DNS twou nwa avèk èd la iptables epi gade sa ki kraze. Pou fè sa, antre nan lòd sa a:

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

Dezòd Jeni: atizay la nan destriksyon ekspre. Pati 2
DNS twou nwa

Si nan /etc/hosts oswa lòt fichye konfigirasyon, w ap jwenn adrès IP ou pa konnen anyen sou (wi, malerezman, sa rive tou), ou ka vin sekou ankò. iptables. Ann di ou dekouvri 8.8.8.8 epi yo pa konnen ke sa a se adrès sèvè DNS piblik Google la. Lè w itilize iptables Ou ka bloke trafik k ap rantre ak sòtan nan adrès sa a lè l sèvi avèk kòmandman sa yo:

❯ 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"

Dezòd Jeni: atizay la nan destriksyon ekspre. Pati 2
Fèmen aksè

Premye règ la jete tout pake ki soti nan DNS piblik Google la: ping travay, men pake yo pa retounen. Dezyèm règ la jete tout pake ki soti nan sistèm ou an nan direksyon DNS piblik Google la - an repons a ping nou jwenn Operasyon pa pèmèt.

Remak: nan ka patikilye sa a li ta pi bon pou itilize whois 8.8.8.8, men sa a se jis yon egzanp.

Nou ka ale menm pi fon nan twou lapen an, paske tout bagay ki sèvi ak TCP ak UDP aktyèlman depann sou IP tou. Nan pifò ka yo, IP mare ak ARP. Pa bliye sou firewall...

Dezòd Jeni: atizay la nan destriksyon ekspre. Pati 2
Si ou pran grenn wouj la, ou rete nan Wonderland, epi mwen pral montre w ki jan twou lapen an pwofondè ale."

Yon apwòch pi radikal se pou dekonekte machin youn pa youn epi wè sa ki kase... vin yon "makak dezòd." Natirèlman, anpil sistèm pwodiksyon yo pa fèt pou yon atak fòs brital, men omwen li ka eseye nan yon anviwònman tès.

Bati yon kat depandans se souvan yon antrepriz trè long. Dènyèman mwen te pale ak yon kliyan ki te pase prèske 2 ane devlope yon zouti ki semi-otomatikman jenere kat depandans pou dè santèn de mikwosèvis ak kòmandman.

Rezilta a, sepandan, trè enteresan ak itil. Ou pral aprann anpil bagay sou sistèm ou a, depandans li yo ak operasyon yo. Ankò, pran pasyans: se vwayaj la li menm ki pi enpòtan.

3. Pran prekosyon nou ak twòp konfyans

"Nenpòt moun ki reve sa, kwè nan li." — Demostèn

Eske ou janm tande pale de efè twòp konfyans?

Dapre Wikipedya, efè twòp konfyans se "yon patipri kognitif kote konfyans yon moun nan aksyon yo ak desizyon yo pi gran pase jistès objektif jijman sa yo, espesyalman lè nivo konfyans relativman wo."

Dezòd Jeni: atizay la nan destriksyon ekspre. Pati 2
Ki baze sou ensten ak eksperyans...

Nan eksperyans mwen, distòsyon sa a se yon gwo allusion sou ki kote yo kòmanse ak jeni dezòd.

Pran prekosyon nou ak operatè a twòp konfyans:

Charlie: "Bagay sa a pa tonbe nan senk ane, tout bagay anfòm!"
Crash: "Tann... Mwen pral la byento!"

Patipri kòm yon konsekans twòp konfyans se yon bagay trètr e menm danjere akòz plizyè faktè ki enfliyanse li. Sa a se laverite espesyalman lè manm ekip yo te vide kè yo nan yon teknoloji oswa te pase anpil tan "repare" li.

Rezime

Rechèch la pou yon pwen depa pou jeni dezòd toujou pote plis rezilta pase espere, ak ekip ki kòmanse kraze bagay sa yo twò vit pèdi nan je sans nan plis mondyal ak enteresan nan (dezòd-)jeni - itilizasyon kreyatif metòd syantifik и prèv anpirik pou konsepsyon, devlopman, operasyon, antretyen ak amelyorasyon sistèm (lojisyèl).

Sa a fini dezyèm pati a. Tanpri ekri revi, pataje opinyon oswa jis bat men ou sou mwayen. Nan pwochen pati I vrèman Mwen pral konsidere zouti ak metòd pou entwodwi echèk nan sistèm yo. Jiskaske!

PS soti nan tradiktè

Li tou sou blog nou an:

Sous: www.habr.com

Add nouvo kòmantè