Chaos Engineering: ars destructionis deliberantis. Pars II

Nota. transl.: Hic articulus pergit magnam seriem articulorum ab AWS technologiae evangelistae Adriani Hornsby, qui in simplici et perspicuo explicandi modo momentum experimentationis ad consectaria defectorum in IT systemata mitiganda proponit.

Chaos Engineering: ars destructionis deliberantis. Pars II

"Si minus consilium paras, tunc deficies cogitas." - Beniamin Franklin

Π’ in prima parte, In hac articulorum serie introduxi notionem chaos machinalis et explicavi quomodo iuvet vitia invenire et corrigere in systematis antequam defectibus productionibus adducatur. Etiam tractatum est quomodo chaos machinans positivum culturae mutationem intra instituta promovet.

In fine primae partis promisi loqui "instrumenta ac modos in systemata delicta introducendi". Heu, caput meum in hac re sua habuit consilia, et in hoc articulo conabor respondere populari quaestioni quae oritur inter homines, qui machinationem chaos obtinere volunt; Quid primum rumpere?

Magna quaestio! Sed non videtur ab hac panda maxime vexatus esse.

Chaos Engineering: ars destructionis deliberantis. Pars II
Noli tatam cum panda chao!

Brevis responsio: Target servitia critica per viam rogatorum.

Iam sed clarius respondere: Ut intelligas ubi expertos chaos incipias, attende tribus locis:

  1. aspice ruina historiae et pervidere exemplaria;
  2. Decernere discrimine clientes;
  3. Utere sic dictum fiducia effectus.

Ridiculum est, sed haec pars tam facile dici potuit "Iter ad sui Inventionis et Illuminationis". In ea incipiemus cum quibusdam instrumentis frigidis "ludere".

1. Dicendum est in praeteritum

Si meministis, in prima parte notionem Correctionis Errorum (COE) introduxi - methodum, qua errata nostra - errata in technologiam, processum vel ordinationem resolvimus - ut causam eorum cognoscamus et praecaveamus. recursu in futurum . Fere, hoc est, ubi debes incipere.

"Ad praesens intelligendum, praeterita scire debes." - Carl Sagan

Vide in historia defectio, eas in COE vel postmortems refer et eas indica. Ignosce exemplaria communia quae saepe problemata ducunt, et pro singulis COE, te ipsum interroga sequentem quaestionem:

"An hoc praedictum fuit, et ideo iniectio praeventa culpa?"

Recordor unius delicti diluculo in curriculo meo. Facile impediri potuisset, si duo experimenta simplicium chaos exercuissent;

Sub condicionibus normalibus, instantiae electronicae backendentes ad impedimenta sanitatis respondent onus librarius (ELB)). ELB his inhibitionibus utitur ad petitiones redirectas ad instantias sanas. Cum evenit ut instantia "insalubre" sit, ELB intermittit petitiones mittens ad eam. Uno die, post prospere venalicium expeditionem, volumen negotiationis auctum est et regressus sanitati magis quam solito tardius respondere coepit. Dicendum quod haec valetudo impedit profundusid est, publica clientela coercita.

Sed omnia denique ad tempus.

Deinde, iam sub condicionibus magis stressful, una instantia incepit munus non criticum, regulare ETL cron exercere. Coniunctio negotiationis altae et cronjob CPU utendo ad fere 100% impulit. CPU onerare ulteriores responsiones ad impedimenta sanitatis retardari, adeo ut ELB decreverit instantia difficultates perficiendas experiri. Ut expectatur, librarius mercaturam ei distribuendi substitit, quae vicissim ad augendum onus in reliquis instantiis in coetu ducitur.

Subito etiam ceterae instantiae deesse coeperunt sanitatis.

Incipiens novam instantiam requisivit fasciculos deprimendo et inaugurari et multo longiores fecit quam ELB accepit ut eas - singillatim in globo autoscaling disablet. Patet mox totum discrimen ad discrimen pervenisse et applicationes concrepuisse.

Tunc nos semper intelleximus sequentia puncta:

  • Inaugurare software cum novam instantiam creando longum tempus accipit, melius est aditum immutabilem anteponere ac Aureum AMI.
  • In difficilibus adiunctis, responsiones ad compescendos sanitatum et ELBs anteponendam debent - quod ultimum est, vitam inpediunt pro reliquis instantiis.
  • Localis caching sanitatis sistit multum adiuvat (etiam brevi tempore).
  • In difficili rerum condicione, non magnis muneribus et aliis processibus non criticis - nisi facultates maximis muneribus obtinent.
  • Cum autoscaling, instantiis minoribus utere. Circulus 10 speciminum minorum melior est quam coetus 4 magnorum; si una instantia deficiat, primo casu 10% negocii distribuetur super 9 puncta, in secundo - 25% negocii super tria puncta.

Sic, potuitne hoc praevisum esse, et ideo problema introducendo prohibitum?

Yesac pluribus modis.

Uno modo, simulando altum CPU usum instrumenta utendo stress-ng aut cpuburn:

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

Chaos Engineering: ars destructionis deliberantis. Pars II
accentus-ng *

Secundo, quia aggravatur instantia wrk et alia similia;

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

Chaos Engineering: ars destructionis deliberantis. Pars II

Experimenta relative simplicia sunt, sed bonum cogitationis alimenta praebere possunt quin per vim verae defectus ingrediantur.

autem nolite prohibere ibi. Conare fragorem in ambitu testi referre et responsionem tuam ad interrogationem reprime "Potuitne hoc praevisum et ideo culpam praeverti?" Hoc chaos mini experimentum est intra experimentum chaos ad probationes suppositiones, sed initium cum defectione.

Chaos Engineering: ars destructionis deliberantis. Pars II
an somnium fuit an ita factum est?

Ita historiam rerum inquisitionis inspiciamus, analysis EOC, tag et indica eas per "radium hit" vel accuratius, numerus clientium affectus β€” ac deinde exemplaria quaerunt. Quaere te, an hoc praedictum fuerit, et quaestionem introducendo impediri. Reprehendo tuum responsum.

Tunc transibit ad exemplaria communissima cum amplissimo range.

2. Fac dependentiam map

Accipe momentum cogitare de applicatione tua. Estne manifesta tabula clientium suarum? Scisne quam labem habebunt, si est defectio?

Si non admodum nota cum codice tuo applicationis vel maximopere factus est, difficile est intellegere quidnam sit signum, et quid eius clientelae. Has clientelas intellegentes earumque possibilium ictum in applicatione et usoribus criticum est ad cognoscendum ubi ipsum chaos committitur: principium est elementum cum maximo radio ictum.

Distinguendi et documentorum dependentiarum appellatur "aedificationem dependentiam mapΒ» (Dependentiam tabularum faciendarum). Hoc typice factum est in applicationibus cum codice basi magna instrumenta instrumentorum profiling. (code profiling) et instrument! (instrumentation). Etiam chartam geographicam ex magna retis negotiationis condere potes.

Sed non omnes dependentiae eaedem sunt (quae ulterius processus implicat). quidam critica, alius - secundarium (certe in theoria, quia saepe fragores occurrunt ob problemata cum dependentiis, quae non criticae considerabantur).

Sine discrimine dependentiae, ministerium operari non potest. clientelas non-criticas "non opus sitΒ» Ad officium cadere in eventum commovere. Ad clientelas intelligendas, debes APIs lucide uti applicatione tua. Multum difficilius hoc esse potest quam quod videtur - saltem pro magnis applicationibus.

Satus per omnes APIs eundo. Maxime exaggerandam significans et critica... Accipe fretus e codice repositorium, reprehendo eam nexu omniaErgo view Litterarum (sane si est - aliter adhuc habesΠΎmaiora problemata). Utere instrumenta to profiling et typum, Colum externam vocat.

Uti potes programmata netstat - mandatum lineae utilitatis quae indicem nexuum omnium retis (activas bases) in systemate exhibet. Exempli gratia, omnes nexus current, typus:

❯ netstat -a | more 

Chaos Engineering: ars destructionis deliberantis. Pars II

In AWS uti potes influunt omnia VPC modus est qui permittit ut informationes colligendas de IP mercatura iens vel retis interfaces in VPC. Tales trabes etiam aliis operibus iuvare possunt - exempli gratia, responsionem inveniendo ad quaestionem cur ad instantiam certa negotiatio non pertingat.

Etiam uti potes AWS X-Ray. X-Ray permittit ut digererem "ultimum" (ad summum finem) Recognitio petitionum, quae per applicationem movent, et etiam mappam applicationis partium subiectarum aedificat. Commodissimum est si clientelas cognoscere debes.

Chaos Engineering: ars destructionis deliberantis. Pars II
AWS X-Ray Console

Tabula dependentiae retis tantum est solutio partialis. Imo ostendit quae applicatio communicat cum quibus, sed aliae dependentiae.

Multae applicationes DNS utuntur ad iungendum clientelas, cum alii servitiis inventionis vel etiam duris litteris IP inscriptionibus in lima configurationis (v.g. /etc/hosts).

Exempli gratia, creare potes DNS blackhole propter iptables et vide quid frangatur. Ad hoc intrant mandatum;

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

Chaos Engineering: ars destructionis deliberantis. Pars II
Vesci nigrum foraminis

Si /etc/hosts vel alias imaginum configurationes, IP inscriptiones invenies te nihil scire de (sic, proh dolor, hoc quoque accidit), iterum subvenire potes. iptables. Dicamus te inventa 8.8.8.8 et non sciunt hanc esse inscriptionem publicam DNS Googles. Ab usura iptables Potes angustos ineuntes et exitu negotiationis huic inscriptioni utendo mandatis sequentibus:

❯ 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: ars destructionis deliberantis. Pars II
Claudendo accessum

Prima regula omnes fasciculos ex publico DNS Google mittit; ping opera, sed fasciculi non redduntur. Secunda regula demittit omnes fasciculos e systemate tuo versus publici DNS Google - in responsione ad . ping et dabimus tibi Operatio non licet.

Nota: in casu particulari uti melius esset whois 8.8.8.8sed hoc iustum exemplum.

Etiam altius descendere possumus foramen leporis, quia omnia quae utitur TCP et UDP etiam ex IP re pendet. Pleraque IP ligatur ARP. Noli oblivisci de firewalls...

Chaos Engineering: ars destructionis deliberantis. Pars II
Si pilleum rubrum accipias, in Terra Mirabili habitas, et quam alte ierit foraminis leporis ostendam tibi.

A radicalis accessus est disconnect cars singillatim et vide quid suus 'fractus... factus est "simia chaos." Nimirum multae systemata productiones non ad talem impetum violentum dispositae sunt, sed saltem temptari possunt in ambitu experimenti.

Exstructio dependentiae geographica est saepe incepti longissima. Nuper locutus sum cum cliente qui per 2 annos propemodum instrumentum evolvit quod semi-automatice tabulas dependentiae pro centenis microserviis et praeceptis gignit.

Effectus autem est valde interesting et utilis. Multa de ratione tua, eius clientela et operatione cognosces. Iterum perfer: ipsum iter maxime refert.

3. Cave confidentiam

"Quisquis somniat quod credit in ea." β€” Demosthenes

Have vos umquam audistis de fiducia effectus?

Secundum Vicipaedia, fiduciae effectus est "praeiudicia cognitiva qua aliquis in actionibus et iudiciis suis fiducia est insigniter maior quam obiectiva accuratio horum iudiciorum, praesertim cum gradus fiduciae relative alta est".

Chaos Engineering: ars destructionis deliberantis. Pars II
Ex instinctu et experientia...

In usu meo, haec depravatio magna est admonitio ubi ipsum chaos committitur.

Cave de confidentibus operator:

Charlie: "Hoc quinquennio non cecidit, omnia praeclara sunt!"
Crash: "Exspecta... mox ibi ero!"

Bias, fiduciae consecuta, res insidiosa et etiam periculosa est ob varias causas, quae influentiae sunt. Hoc praesertim verum est cum membra iugis in technologiam cor suum infundunt vel multum temporis illud "defigentes" consumpserunt.

Quoquo

Investigatio principii chaos machinationis plus semper efficit eventus quam opiniones, et iugis quae incipiunt solvere res nimis cito amittunt aspectum magis globalis et interesting essentiae (chaos-)engineering - partum usum scientifica ΠΈ empirica testimonio ad consilium, progressionem, operationem, sustentationem et emendationem rationum (software) rationum.

Hic concludit secunda pars. Scribere recensiones, opiniones communica vel tantum manus tuas plaude medium. In altera parte I rem Instrumenta et methodos tractabo in systematis defectibus introducendis. Donec!

PS ab translator

Lege etiam in nostro diario:

Source: www.habr.com