9.6 Peirianneg anhrefn a phrofi cydnerthedd
Trosolwg a chymhelliant
Mae peirianneg anhrefn yn arfer disgyblaethol o gynnal arbrofion ar system er mwyn meithrin hyder yn ei gallu i wrthsefyll amodau tymhestlog mewn cynhyrchu. Mae’r enw’n swnio’n fyrbwyll, a dyna’r peth cyntaf y mae angen ei ddad-ddysgu. Nid torri pethau ar hap yw peirianneg anhrefn, gan obeithio dysgu rhywbeth ar hyd y ffordd. I’r gwrthwyneb yn hollol: dull rheoledig, wedi’i yrru gan ragdybiaeth, o gyflwyno methiannau realistig fel eich bod yn darganfod gwendidau cyn i’ch defnyddwyr wneud hynny. Rydych eisoes yn gwybod y bydd eich system yn wynebu methiannau, oherwydd mae pob system go iawn yn gwneud hynny. Yr unig gwestiwn yw a fyddwch yn wynebu’r methiannau hynny brynhawn dydd Mawrth gyda rholio’n ôl yn barod, neu am 3 y bore yn ystod eich awr brysuraf heb unrhyw syniad beth sy’n digwydd.
I dimau mawr, mae hyn yn bwysig oherwydd bod cymhlethdod wedi tyfu y tu hwnt i allu unrhyw un i’w ddeall drwy arolygu’n unig. Mae gwasanaeth modern yn we o ddegau neu gannoedd o gydrannau, pob un â’i amseriadau, ei ailgeisiadau, ei storfeydd cudd, a’i ffyrdd ei hun o fethu, ac mae’r rhyngweithio rhyngddynt yn cynhyrchu ymddygiad cyfnodol na fyddai unrhyw ddiagram pensaernïol yn ei ragweld. Gallwch adolygu’r cod, tynnu llun y blychau, a dal i gael eich synnu pan fydd dibyniaeth araf yn sbarduno storm ailgeisio sy’n dymchwel gwasanaeth dri cham i ffwrdd. Peirianneg anhrefn yw sut rydych yn archwilio’r rhyngweithiadau hynny’n empirig, fel bod eich cydnerthedd yn rhywbeth rydych wedi’i wirio yn hytrach na rhywbeth rydych yn ei gymryd yn ganiataol.
Mae cyd-destunau menter a llywodraeth yn codi’r stanciau a, chynyddol, y mandad. Erbyn hyn mae rheoleiddwyr ariannol yn disgwyl i gwmnïau brofi cydnerthedd gweithredol yn erbyn senarios difrifol-ond-credadwy ac i brofi y gallant gadw gwasanaethau hanfodol i redeg drwy amhariad. Mae cyrff llywodraethol yn cynnal ymarferion parhad gweithrediadau fel bod gwasanaethau cyhoeddus hanfodol yn goroesi toriadau, trychinebau, ac ymosodiadau seiber. Yn y ddau fyd, nid yw “rydym yn credu y bydd yn dal” yn ateb derbyniol i archwiliwr na dinesydd. Mae peirianneg anhrefn yn rhoi tystiolaeth i chi. Mae’r bennod hon yn adeiladu ar beirianneg dibynadwyedd gwasanaeth (pennod 9.1) a’r patrymau cydnerthedd ym mhennod 3.5, ac mae’n cysylltu’n dynn â rheoli digwyddiadau (pennod 9.3) ac adfer trychineb (pennod 9.5).
Egwyddorion allweddol
- Meithrin hyder, nid creu anhrefn. Y nod yw cydnerthedd wedi’i wirio, nid sioe. Mae pob arbrawf yn ateb cwestiwn penodol am sut mae’r system yn ymddwyn dan straen.
- Diffiniwch y cyflwr sefydlog yn gyntaf. Ni allwch ganfod problem heb ddiffiniad clir, mesuradwy o sut olwg sydd ar “iach”.
- Ffurfiwch ragdybiaeth. Nodwch yr hyn a ddisgwyliwch ddigwydd cyn i chi gyflwyno nam. Mae syndod yn ganfyddiad; mae absenoldeb un hefyd yn ganfyddiad.
- Lleihau a chyfyngu ar y radiws effaith. Dechreuwch yn fach, diogelwch ddefnyddwyr go iawn, a lledwch y cwmpas dim ond wrth i hyder dyfu.
- Ffafriwch gynhyrchu, yn ofalus. Mae methiannau’n ymddwyn yn wahanol dan draffig go iawn, data go iawn, a graddfa go iawn. Ennillwch yr hawl i brofi yno.
- Awtomeiddio tuag at wirio parhaus. Gall gwendid rydych wedi’i drwsio unwaith ddychwelyd. Mae cydnerthedd sy’n cael ei brofi’n barhaus yn aros yn wir.
- Athro yw methiant, nid dyfarniad. Mae canfyddiadau’n gwella’r system; nid ydynt byth yn rheswm i feio’r person a redodd yr arbrawf.
Argymhellion
Sefydlu’r rhagofynion cyn cyflwyno un nam yn unig
Mae peirianneg anhrefn yn lluosydd grym i system aeddfed ac yn rhwymedigaeth i un anaeddfed. Cyn dechrau, mae angen tri pheth arnoch. Yn gyntaf, arsylladwyedd, sef y metrigau, y cofnodion, a’r olrheiniadau sy’n eich galluogi i weld beth mae eich system yn ei wneud o’r tu allan, oherwydd nid yw arbrawf na allwch ei arsylwi yn dysgu unrhyw beth i chi. Yn ail, amcanion lefel gwasanaeth neu ddiffiniad cyfatebol o iechyd cyflwr sefydlog (pennod 9.1), fel y gallwch ddweud a yw arbrawf yn llwyddiannus neu’n niweidiol mewn amser real. Yn drydydd, llwybr rholio’n ôl neu ddiddymu sy’n gyflym ac yn ddibynadwy, fel bod modd i chi ei atal a adfer gwasanaeth arferol o fewn eiliadau ar unrhyw adeg y mae arbrawf yn bygwth defnyddwyr go iawn. Os na allwch fesur eich system, diffinio ei chyflwr iach, a’i thynnu’n ôl o’r dibyn, peidiwch â rhedeg arbrofion anhrefn eto. Adeiladwch y galluoedd hynny yn gyntaf. Maent yn talu amdanynt eu hunain beth bynnag.
Diffinio’r cyflwr sefydlog a ffurfio rhagdybiaeth go iawn
Mae pob arbrawf yn dechrau drwy ysgrifennu i lawr sut olwg sydd ar normal mewn termau mesuradwy: cyfradd llwyddiant ceisiadau uwchben 99.9 y cant, oedi wrth dalu o dan 400 milieiliad ar y 95ain canradd, dyfnder ciw o dan drothwy. Dyma’ch diffiniad o gyflwr sefydlog, a dylai adlewyrchu iechyd sy’n weladwy i’r defnyddiwr, nid plymwaith mewnol. Yna nodwch ragdybiaeth mewn iaith blaen: “Os ychwanegwn 300 milieiliad o oedi at y gwasanaeth argymhellion, bydd tudalen y cynnyrch yn dal i lwytho o fewn ei gyllideb oedi oherwydd bod y dudalen yn trin argymhellion fel dewisol ac yn terfynu ar ôl 200 milieiliad.” Nawr mae gennych honiad y gellir ei brofi’n anghywir. Pan fyddwch yn rhedeg yr arbrawf, mae un o ddau beth da yn digwydd. Naill ai mae’r system yn ymddwyn fel y rhagwelwyd ac mae eich hyder wedi’i ennill, neu nid yw’n gwneud hynny ac rydych wedi darganfod gwendid go iawn yn rhad, ar eich telerau eich hun, gyda pheirianwyr yn gwylio.
Cyflwyno namau realistig, nid rhai mympwyol
Dylai’r namau a gyflwynwch adlewyrchu’r methiannau y mae eich system yn eu profi mewn gwirionedd. Mae chwistrellu namau, sef cyflwyno gwallau’n fwriadol i brofi sut mae system yn ymateb, yn rhoi i chi fwydlen wedi’i thynnu o ddigwyddiadau cynhyrchu go iawn. Chwistrellwch oedi i efelychu dibyniaeth araf neu gyswllt rhwydwaith dirlawn. Chwistrellwch wallau, gan ddychwelyd cyflwr HTTP 500 neu wrthodiadau cysylltiad, i efelychu gwasanaeth i lawr yr afon sy’n methu. Chwistrellwch ddihysbyddiad adnoddau drwy ddefnyddio CPU, cof, disg, neu ddisgrifyddion ffeil, i weld sut mae’r system yn dirywio dan bwysau. Chwistrellwch fethiant dibyniaeth drwy wneud cronfa ddata, storfa gudd, ciw, neu API trydydd parti gyfan yn anhygyrch. Mewn system ddosbarthedig, lle mae cydrannau’n rhedeg ar beiriannau ar wahân ac yn cyfathrebu dros rwydwaith anghyfarwydd, dyma’r methiannau sy’n dominyddu toriadau go iawn. Oedi a methiant rhannol, nid chwaliadau glân, sy’n torri pethau yn ymarferol, felly pwyswch eich arbrofion tuag at y canol blêr.
Gwirio bod eich mecanweithiau cydnerthedd yn gweithio go iawn
Dyma lle mae peirianneg anhrefn yn ennill ei chadw. Mae eich system yn llawn mecanweithiau i fod i’ch diogelu: amseriadau sy’n atal galwr rhag aros am byth, ailgeisiadau sy’n cuddio pyliau dros dro, torwyr cylched sy’n atal morthwylio dibyniaeth sy’n methu, a failover sy’n newid i wrth gefn pan fydd y prif un yn marw. Mae’r patrymau hyn, a drafodir ym mhennod 3.5, yn wahaniaeth rhwng problem sydd wedi’i chynnwys a thoriad sy’n rhaeadru. Y drafferth yw eu bod yn anaml yn cael eu profi dan yr amodau y maent yn bodoli ar eu cyfer. Nid yw amseriad wedi’i osod i 30 eiliad pan fo terfyn amser y galwr ei hun yn 2 eiliad yn gwneud dim. Mae ailgais heb ostyngiad cynyddol yn troi un gwasanaeth sy’n ei chael hi’n anodd yn haid ruo. Efallai bod torrwr cylched na chafodd erioed ei ymarfer wedi’i gamffurfweddu ac na fydd byth yn tripio, neu’n tripio’n gyson. Arbrofion anhrefn yw sut rydych yn cadarnhau bod pob un o’r rhain yn ymddwyn fel y’i cynlluniwyd pan fydd y nam y mae’n gwarchod yn ei erbyn yn cyrraedd mewn gwirionedd. Cymerwch yn ganiataol bod pob mecanwaith diogelwch heb ei brofi wedi torri hyd nes bod arbrawf yn profi fel arall.
Dechrau gyda diwrnodau gêm cyn awtomeiddio
Peidiwch â dechrau gyda phlatfform awtomataidd sy’n chwistrellu namau’n barhaus. Dechreuwch gyda diwrnod gêm: ymarfer wedi’i drefnu, ymarferol lle mae tîm yn dod ynghyd, yn dewis senario, yn chwistrellu nam mewn amgylchedd rheoledig, ac yn gwylio gyda’i gilydd. Cyn hyd yn oed hynny, mae ymarfer bwrdd, lle rydych yn trafod senario ar fwrdd gwyn heb gyffwrdd â’r system, yn datgelu bylchau mewn llyfrau rhedeg, rhybuddio, a pherchnogaeth ag ychydig iawn o risg. Diwrnodau gêm yw eich llithren ymuno. Maent yn adeiladu’r cyhyr o ffurfio rhagdybiaethau, cyfyngu ar radiws effaith, a darllen y system dan straen, ac maent yn adeiladu’r ymddiriedaeth gydag arweinyddiaeth a thimau cyfagos y bydd ei hangen arnoch cyn i unrhyw un adael i chi redeg arbrofion mewn cynhyrchu. Maent hefyd yn cryfhau ymateb i ddigwyddiadau’n uniongyrchol, oherwydd yr un sgiliau ydynt â’r rhai y mae eich peirianwyr ar alwad yn eu defnyddio yn ystod digwyddiad go iawn (pennod 9.3). Rhedwch eich diwrnodau gêm cyntaf mewn llwyfannu, yna mewn cynhyrchu yn ystod oriau tawel gyda radiws effaith bach, yna ehangu.
Cyfyngu ar y radiws effaith yn fwriadol
Yr arfer diogelwch pwysicaf yw cyfyngu ar niwed posibl pob arbrawf. Dechreuwch gyda’r cwmpas lleiaf a all ddysgu rhywbeth i chi: un enghraifft, un y cant o draffig, un ddibyniaeth nad yw’n hanfodol, un parth argaeledd. Diffiniwch yr amodau diddymu cyn dechrau, cysylltwch nhw â’ch metrigau cyflwr sefydlog, a gwnewch atal yr arbrawf yn un weithred y gall unrhyw un sy’n gwylio ei sbarduno. Ffafriwch redeg yn ystod oriau busnes pan fo’r tîm yn effro ac wedi’i staffio, nid dros nos pan fo syndod yn troi’n ddigwyddiad heb neb yn gwylio. Lledwch y radiws effaith dim ond pan fo arbrofion llai wedi rhedeg yn lân a bod eich hyder yn wirioneddol uwch. Y ddisgyblaeth o gyfyngu yw’r hyn sy’n gwahaniaethu peirianneg anhrefn oddi wrth doriad rydych wedi’i achosi eich hun.
Tyfu tuag at wirio cydnerthedd awtomataidd, parhaus
Mae diwrnodau gêm achlysurol yn dod o hyd i wendidau, ond mae systemau’n newid bob dydd, a gall trwsiad o’r chwarter diwethaf ddychwelyd yn dawel. Y cyflwr terfynol aeddfed yw gwirio parhaus: set gywasgedig o arbrofion cydnerthedd sy’n rhedeg yn awtomataidd, mewn piblinell neu ar amserlen, fel bod dirywiad mewn amseriad, polisi ailgais, neu lwybr failover yn cael ei ddal o fewn dyddiau yn hytrach nag yn ystod y toriad go iawn nesaf. Dyma lle enillodd offer fel Chaos Monkey Netflix, sy’n terfynu enghreifftiau ar hap mewn cynhyrchu i orfodi peirianwyr i adeiladu gwasanaethau sy’n goddef colli enghraifft, eu henw da. Awtomeiddiwch dim ond yr arbrofion rydych eisoes yn eu deall ac yn ymddiried ynddynt o redeg â llaw. Mae anhrefn parhaus ar ben system anaeddfed yn ffordd o gynhyrchu digwyddiadau, nid hyder.
Cysylltu arbrofion ag adfer trychineb a dysgu o ddigwyddiadau
Nid yw peirianneg anhrefn yn bodoli ar ei ben ei hun. Mae’r senarios mwy, prinnach, colli rhanbarth cyfan, methu cronfa ddata drosodd, adfer o gopi wrth gefn, yn perthyn i brofi adfer trychineb (pennod 9.5), ac mae diwrnod gêm yn aml y cerbyd gorau ar gyfer ymarfer y cynlluniau hynny yn hytrach na gadael iddynt bydru fel dogfennau heb eu profi. Ar yr ochr arall, dylai pob arbrawf sy’n datgelu gwendid fwydo i’r un ddolen ddysgu â digwyddiad go iawn (pennod 9.3): ysgrifeniad di-fai, trwsiad sy’n cael ei olrhain, ac arbrawf dilynol i gadarnhau bod y trwsiad yn dal. Pan fydd canfyddiadau anhrefn, ymarferion adfer trychineb, ac adolygiadau digwyddiadau i gyd yn llifo i un ôl-groniad o waith cydnerthedd, rydych yn cael enillion cyfansawdd yn hytrach nag ymarferion gwasgaredig, un-tro.
Cyfaddawdau: manteision ac anfanteision
| Penderfyniad | Manteision | Anfanteision |
|---|---|---|
| Profi mewn cynhyrchu | Traffig, data, a graddfa go iawn; mae canfyddiadau’n wir | Risg i ddefnyddwyr os yw’r cynnwys yn methu; angen aeddfedrwydd |
| Profi mewn llwyfannu yn unig | Diogel, risg isel, hawdd dechrau | Yn colli ymddygiad byd go iawn; hyder ffug |
| Diwrnodau gêm â llaw | Adeiladu sgiliau ac ymddiriedaeth; cost offer isel | Anfynych; gall canfyddiadau ddychwelyd heb sylwi |
| Anhrefn awtomataidd parhaus | Dal dirywiadau’n gyflym; graddadwy | Angen offer ac arsylladwyedd aeddfed yn gyntaf |
| Radiws effaith eang | Datgelu gwendidau systemig mawr | Risg uchel; mae camgymeriad yn dod yn ddigwyddiad |
| Radiws effaith cul | Diogel a rheoladwy | Gall golli methiannau croes-wasanaeth cyfnodol |
Y tyndra canolog yw rhwng realaeth a diogelwch. Daw’r canfyddiadau rydych eu heisiau fwyaf o gynhyrchu, oherwydd dyna’r unig le y mae eich system yn wynebu traffig go iawn, data go iawn, a graddfa go iawn, ac eto cynhyrchu yw’n union y lle y gall arbrawf sydd wedi’i wneud yn wael niweidio defnyddwyr. Nid yw’r datrysiad yn golygu dewis un ochr. Mae’n golygu ennill eich ffordd tuag at gynhyrchu’n raddol: profwch eich rhagofynion, ymarferwch mewn llwyfannu, yna rhedwch arbrofion bach, wedi’u cynnwys yn dda mewn cynhyrchu gydag amodau diddymu wedi’u cysylltu â metrigau byw, a lledwch y cwmpas dim ond wrth i dystiolaeth gronni. Mae’r tyndra arall sy’n ailymddangos, â llaw yn erbyn awtomataidd, yn cael ei ddatrys yr un ffordd dros amser. Dechreuwch â llaw i adeiladu dealltwriaeth ac ymddiriedaeth, yna awtomeiddiwch yr arbrofion rydych wedi dod i ddibynnu arnynt, fel bod cydnerthedd rydych wedi’i wirio unwaith yn aros wedi’i wirio.
Cwestiynau i’w trafod gyda’ch tîm
Ydym ni wir yn barod i redeg arbrofion anhrefn, a sut y byddem yn gwybod hynny? Mae’n demtasiwn dechrau chwistrellu namau am ei fod yn swnio’n soffistigedig, ond mae peirianneg anhrefn ar system na ellir ei harsylwi, heb ddiffiniad iechyd clir a heb rholio’n ôl cyflym, yn ddim ond amser segur y byddwch wedi’i achosi i chi eich hun. Dewch â thystiolaeth onest i’r drafodaeth hon: a allwch weld cyfraddau llwyddiant ceisiadau ac oedi mewn amser real, a oes gennych ddiffiniad cytûn o gyflwr sefydlog, ac a allwch ddiddymu arbrawf ac adfer o fewn eiliadau? I dîm mawr, mae’r ateb yn aml yn wahanol ar sail gwasanaeth, felly’r allbwn defnyddiol yw trothwy parodrwydd y mae’n rhaid i wasanaeth ei glirio cyn ei fod yn gymwys i arbrofion. Mewn lleoliadau rheoleiddiedig mae’r trothwy parodrwydd hwnnw hefyd yn rheolaeth y gallwch ei dangos i archwiliwr. Os yw’r ateb gonest yn “nid ydym yn barod”, y gwaith anhrefn mwyaf gwerthfawr y gallwch ei wneud y chwarter hwn yw adeiladu’r galluoedd arsylladwyedd a rholio’n ôl sy’n eich gwneud yn barod.
Beth yw ein polisi radiws effaith, a phwy sydd â’r awdurdod i atal arbrawf? Mae pob arbrawf anhrefn yn cario rhywfaint o risg i ddefnyddwyr go iawn, a’r gwahaniaeth rhwng canfyddiad gwerthfawr a digwyddiad rydych wedi’i achosi yw pa mor dynn y gwnaethoch ei gynnwys. Trafodwch y terfynau pendant: pa gyfran o draffig, faint o enghreifftiau, pa amgylcheddau, pa adegau o’r dydd, a pha drothwyon metrig sy’n diddymu’r rhediad yn awtomatig. Penderfynwch ymlaen llaw pwy sy’n gwylio pob arbrawf a phwy sy’n dal y swits ladd un-weithred, oherwydd nid yw arbrawf na all neb ei atal yn gyflym wedi’i gynnwys. I sefydliad mawr, dyma’r polisi sy’n caniatáu i lawer o dimau arbrofi heb i unrhyw un ohonynt ddamweiniol dynnu dibyniaeth a rennir i lawr. Dylai’r ateb gael ei ysgrifennu i lawr, ei gytuno â’r timau y gallech effeithio ar eu gwasanaethau, a’i drin fel rhagofyniad ar gyfer rhedeg unrhyw beth mewn cynhyrchu.
Pa fecanweithiau cydnerthedd rydym yn credu sy’n ein diogelu, ac a ydym erioed wedi eu profi mewn gwirionedd? Mae’r rhan fwyaf o systemau’n llawn amseriadau, ailgeisiadau, torwyr cylched, storfeydd cudd, a llwybrau failover a gafodd eu ffurfweddu unwaith ac na chawsant eu hymarfer erioed dan y methiant y maent yn bodoli ar ei gyfer. Gwnewch restr o’r mecanweithiau rydych yn dibynnu arnynt, yna gofynnwch, am bob un, pryd y cafodd ei wirio ddiwethaf i weithio dan nam wedi’i chwistrellu go iawn. Yr ystyriaeth gystadleuol yw amser: mae gwirio pob mecanwaith yn costio ymdrech beirianneg, ac mae yna wastad derfyn amser nodwedd. Dewch â’r cownter-dystiolaeth i’r gwrthwynebiad hwnnw, sef cost toriad yn y gorffennol y byddai torrwr cylched a oedd yn gweithio neu amseriad cywir wedi’i gynnwys. Dylai’r ateb droi rhestr gysurol o amddiffyniadau tybiedig yn ôl-groniad o arbrofion sydd wedi’u blaenoriaethu, gan ddechrau gyda’r mecanweithiau y byddai eu methiant yn brifo fwyaf.
Beth sy’n rhaid bod yn wir cyn i ni redeg arbrawf mewn cynhyrchu yn hytrach na llwyfannu, a pha wasanaethau sydd wedi ennill yr hawl honno heddiw? Daw’r canfyddiadau rydych eu heisiau fwyaf o gynhyrchu, oherwydd dyna’r unig le y mae eich system yn cwrdd â thraffig go iawn, data go iawn, a graddfa go iawn, ac eto cynhyrchu hefyd yw’r unig le y gall arbrawf sydd wedi’i wneud yn wael niweidio defnyddwyr go iawn. I dîm mawr, y realiti gonest yw bod gwasanaethau gwahanol ar wahanol lefelau o barodrwydd, felly mae rheol gyffredinol “dim anhrefn cynhyrchu” yn gwastraffu eich dysgu gorau tra bod rheol gyffredinol “ie” yn gwahodd toriadau rydych wedi’u hachosi eich hun. Dewch â thystiolaeth fesul gwasanaeth: ansawdd ei arsylladwyedd, a yw’r cyflwr sefydlog wedi’i ddiffinio a’i rybuddio, pa mor gyflym yw’r rholio’n ôl, a hanes trywydd o arbrofion llwyfannu glân a fyddai’n cyfiawnhau ei raddio. Mewn lleoliadau menter a llywodraeth, cysylltwch y giât gynhyrchu â rheolaeth ddogfennedig sy’n enwi pwy sy’n cymeradwyo’r dyrchafiad a pha amodau diddymu sy’n gysylltiedig â metrigau byw, fel bod yr archwiliwr yn gweld penderfyniad bwriadol, tystiolaethol yn hytrach na thîm yn byrfyfyrio gyda defnyddwyr go iawn.
Pan fo arbrawf anhrefn yn datgelu gwendid, i ble mae’r canfyddiad hwnnw’n mynd, a sut rydym yn ei atal rhag pydru heb ei gyffwrdd? Mae rhaglen sy’n darganfod gwendidau ond byth yn eu trwsio yn waeth na dim rhaglen o gwbl, oherwydd mae’n llosgi ymdrech, yn erydu ymddiriedaeth, ac yn dysgu i bobl fod arbrofion yn theatr. Y pwysau cystadleuol yw wastad map ffordd y nodweddion: mae trwsiad cydnerthedd yn anaml yn teimlo mor daer â’r rhyddhad nesaf hyd nes bod y toriad y byddai wedi’i atal yn cyrraedd mewn gwirionedd. Dewch â chyflwr presennol eich ôl-groniad cydnerthedd i’r drafodaeth: faint o ganfyddiadau anhrefn sy’n agored, pa mor hen yw’r hynaf, ac a yw canfyddiadau o arbrofion, ymarferion adfer trychineb, ac adolygiadau digwyddiadau’n llifo i un ciw a rennir neu’n gwasgaru ar draws timau. Cytunwch pwy sy’n berchen ar bob trwsiad a phwy sy’n rhedeg yr arbrawf dilynol sy’n cadarnhau ei fod yn dal. I sefydliad mawr neu reoleiddiedig, enwch y fforwm sy’n adolygu’r ôl-groniad ar gadence penodol ac sydd â’r awdurdod i flaenoriaethu trwsiad cydnerthedd dros nodwedd, oherwydd mae canfyddiad nad oes neb yn atebol am ei gau yn risg rydych wedi’i ddogfennu yn unig yn hytrach na’i dynnu.
Ydym ni’n barod i awtomeiddio unrhyw un o’n harbrofion yn wiriad parhaus, a pha rai yn benodol? Mae diwrnodau gêm achlysurol yn dod o hyd i wendidau, ond mae systemau’n newid o ddydd i ddydd a gall trwsiad o’r chwarter diwethaf ddychwelyd yn dawel, felly’r cyflwr terfynol aeddfed yw set gywasgedig o arbrofion sy’n rhedeg yn awtomatig ac yn dal dirywiadau o fewn dyddiau. Y perygl yw awtomeiddio’n rhy gynnar: mae anhrefn parhaus wedi’i haenu ar ben system anaeddfed ag arsylladwyedd gwan yn cynhyrchu digwyddiadau’n gyflymach na mewnwelediad. Dewch â’r rhestr o arbrofion rydych wedi’u rhedeg â llaw ddigon o weithiau i ymddiried ynddynt yn llwyr, y rheolaethau radiws effaith a’r amodau diddymu a fyddai’n eu llywodraethu heb oruchwyliaeth, a’r monitro a fyddai’n dal rhediad awtomataidd yn mynd o chwith am 3 y bore pan nad oes neb yn gwylio. I fenter fawr neu asiantaeth gyhoeddus, pwyswch y craffu ychwanegol y mae chwistrellu nam heb oruchwyliaeth yn ei wahodd: cymeradwyaeth rheoli newid, y llwybr archwilio y mae’n rhaid i bob rhediad awtomataidd ei adael, a’r atebolrwydd clir am arbrawf a drefnwyd sy’n cyd-daro â digwyddiad go iawn. Awtomeiddiwch dim ond yr arbrofion rydych eisoes yn eu deall, a chadwch y gweddill â llaw hyd nes eu bod yn ennill yr un ymddiriedaeth.
Golwg sector
Cwmni newydd. Mae cyflymder a goroesiad yn dominyddu, felly peidiwch â gwario dim ar blatfform anhrefn. Rhedwch un diwrnod gêm naw deg munud mewn llwyfannu yn erbyn yr un ddibyniaeth y byddai ei methiant wir yn eich lladd, fel arfer taliadau, dilysu, neu eich prif storfa ddata. Chwistrellwch y methiant gyda dirprwy amrwd neu broses wedi’i lladd, gwyliwch beth sy’n torri, trwsiwch yr amseriad neu’r wrth-gefn coll, a symudwch ymlaen. Y pwynt cyfan yw dal y toriad amlwg rydych wedi’i achosi eich hun yn rhad cyn i gwsmer wneud hynny, nid adeiladu disgyblaeth na allwch ei staffio.
Busnes bach. Heb arbenigwr dibynadwyedd a chyllideb dynn, triniwch brofi cydnerthedd fel ymarfer cyfnodol, bwriadol yn hytrach na rhaglen rydych yn ei staffio. Dibynnwch ar y nodweddion chwistrellu methiant y mae eich darparwr cwmwl neu offer rheoledig eisoes yn eu cynnwys yn hytrach na phrynu platfform pwrpasol, a chanolbwyntiwch arbrofion ar y llond llaw o ddibyniaethau y byddai cwsmer yn sylwi arnynt. Fframiwch hyn fel yswiriant: mae prynhawn wedi’i dreulio’n cadarnhau bod eich copïau wrth gefn yn adfer a bod eich taliad yn dirywio’n raslon yn llawer rhatach na’r toriad sy’n profi nad ydynt yn gwneud hynny.
Menter. Y broblem yw cydlynu llawer o dimau yn erbyn dibyniaethau a rennir ar raddfa, felly safonwch y trothwy parodrwydd, y polisi radiws effaith, a’r gwifriad amodau diddymu y mae’n rhaid i bob tîm ei glirio cyn rhedeg mewn cynhyrchu. Cyfeiriwch ganfyddiadau anhrefn, ymarferion adfer trychineb, ac adolygiadau digwyddiadau i un ôl-groniad cydnerthedd gyda pherchnogaeth glir, a defnyddiwch ddiwrnodau gêm chwarterol ynghyd â set gywasgedig o arbrofion awtomataidd i fodloni disgwyliadau cydnerthedd gweithredol â thystiolaeth. Llywodraethwch pwy sy’n cael effeithio ar wasanaeth a rennir fel na fydd arbrawf un tîm yn tynnu seilwaith y mae eraill yn dibynnu arno i lawr.
Llywodraeth. Mae rheolau caffael, tryloywder, ac atebolrwydd cyhoeddus yn siapio’r gwaith. Mae mandadau parhad gweithrediadau’n aml yn gofyn am ymarferion rheolaidd beth bynnag, felly rhedwch nhw fel diwrnodau gêm byw sy’n cynhyrchu canfyddiadau go iawn yn hytrach na ffeil na fydd neb yn ei hagor, a chadwch lwybr archwilio o bob arbrawf, ei radiws effaith, a’i ganlyniad. Lle mae offer chwistrellu namau’n cael ei gaffael, mynnwch ei fod yn cyd-fynd â rheolau diogelwch a thrin data, a chadwch arbrofion cynhyrchu ar wasanaethau sy’n wynebu dinasyddion ar gyfer ffenestri wedi’u cynnwys yn dynn ac wedi’u cymeradwyo. Y dystiolaeth y mae rhaglen anhrefn yn ei chynhyrchu yw’n union yr hyn y mae corff goruchwylio neu archwiliwr yn disgwyl ei weld.
Enghreifftiau
Cwmni newydd. Mae cwmni newydd un ar bymtheg o bobl yn rhedeg ap gwe ar lond llaw o wasanaethau ac yn dibynnu ar API taliadau trydydd parti. Nid oes gan neb amser ar gyfer platfform anhrefn, felly mae’r tîm yn rhedeg diwrnod gêm naw deg munud mewn llwyfannu. Maent yn ffurfio rhagdybiaeth: os yw’r API taliadau’n dechrau dychwelyd gwallau, dylai’r taliad ddangos neges ailgeisio glir a chiwio’r archeb yn hytrach na chwalu. Maent yn chwistrellu ymatebion 500 gyda dirprwy syml, ac yn darganfod bod y blaen-wyneb yn hongian yn ddiddiwedd oherwydd nad oes gan alwad y cleient unrhyw amseriad. Maent yn ychwanegu amseriad a wrth-gefn cyfeillgar, yn ailredeg yr arbrawf i gadarnhau’r trwsiad, ac yn ysgrifennu nodyn dau baragraff mewn dogfen a rennir. Cost gyfan: un prynhawn ac un bwg go iawn iawn wedi’i ddal cyn i gwsmer daro yn ei erbyn.
Menter. Mae’n rhaid i fanc byd-eang ddangos cydnerthedd gweithredol i reoleiddwyr yn erbyn senarios difrifol-ond-credadwy. Mae ei dîm dibynadwyedd yn rhedeg rhaglen o ddiwrnodau gêm chwarterol ynghyd â set o arbrofion awtomataidd mewn cynhyrchu. Mae un senario’n methu’r brif gronfa ddata trafodion drosodd i’w gwrth-gefn yn ystod ffenestr traffig isel, gyda radiws effaith wedi’i gynnwys yn llym ac amodau diddymu wedi’u cysylltu â chyfradd llwyddiant trafodion. Mae’r rhediad cyntaf yn datgelu bod gan wasanaeth cysoni i lawr yr afon bolisi ailgais heb ostyngiad cynyddol, gan gynhyrchu pwynt llwyth sy’n oedi adferiad ymhell y tu hwnt i’r amcan amser adfer yn y cynllun adfer trychineb (pennod 9.5). Mae’r canfyddiad yn mynd i’r un ôl-groniad ag adolygiadau digwyddiadau, mae’r polisi ailgais yn cael ei drwsio â gostyngiad cynyddol esbonyddol, ac mae arbrawf dilynol yn cadarnhau bod y failover bellach yn cwblhau o fewn y targed. Mae’r ymarfer cyfan yn dod yn dystiolaeth i’r rheoleiddiwr.
Llywodraeth. Mae’n ofynnol i asiantaeth genedlaethol sy’n gweithredu porth budd-daliadau sy’n wynebu dinasyddion gynnal parhad gweithrediadau drwy amhariadau. Yn hytrach na thrin ei chynllun parhad fel ffeil na fydd neb yn ei hagor, mae’r asiantaeth yn rhedeg ymarfer parhad blynyddol fel diwrnod gêm byw. Mae’r tîm yn efelychu colli prif ganolfan ddata ac yn cerdded drwy’r failover i safle eilaidd, tra’n chwistrellu oedi ar wahân i ddibyniaeth gwirio hunaniaeth i weld a yw’r porth yn dirywio’n raslon. Maent yn dysgu bod bwlch monitro heb ei brofi wedi gadael i’r tîm ar alwad fod yn ddall i’r gwasanaeth hunaniaeth yn arafu, felly canodd rhybuddion yn hwyr. Mae’r asiantaeth yn cau’r bwlch arsylladwyedd, yn diweddaru ei llyfrau rhedeg, ac yn amserlennu’r un ymarfer ar gyfer y flwyddyn nesaf, gan droi gofyniad cydymffurfiaeth yn gydnerthedd go iawn, wedi’i brofi ar gyfer gwasanaeth cyhoeddus hanfodol.
Achos busnes: cymhellion, ROI, a TCO
Daw’r elw ar beirianneg anhrefn o doriadau na fyddant byth yn digwydd. Gall un toriad mawr i wasanaeth mawr gostio unrhyw beth o ddegau o filoedd i filiynau mewn refeniw coll, cosbau rheoleiddiol, llafur unioni, a niwed i enw da sy’n para ymhell ar ôl i’r gwasanaeth gael ei adfer. Mae arbrofion anhrefn yn trosi’r syndodau drud, anrhagweladwy hynny yn ganfyddiadau rhad, wedi’u hamserlennu rydych yn eu trwsio ar eich amserlen eich hun gyda pheirianwyr yn gwylio a rholio’n ôl yn barod. Mae dod o hyd i amseriad wedi torri yn ystod diwrnod gêm rheoledig yn costio prynhawn. Mae dod o hyd iddo yn ystod digwyddiad go iawn yn costio toriad, sgrialu pawb-i-mewn, ac ymddiriedaeth eich defnyddwyr. Mae’r rhifyddeg o blaid y diwrnod gêm o gryn dipyn.
Mae cyfanswm cost berchnogaeth yn gymedrol pan fo’r rhagofynion eisoes yn bodoli, oherwydd bod peirianneg anhrefn yn ailddefnyddio’r buddsoddiadau arsylladwyedd, rhybuddio, a rholio’n ôl sydd eu hangen arnoch beth bynnag. Y costau gonest yw’r amser peirianneg i redeg arbrofion, rhywfaint o offer i chwistrellu namau a chynnwys radiws effaith, a’r gwaith diwylliannol o gael arweinyddiaeth yn gyfforddus â chyflwyno methiant yn fwriadol. Dyna’r rhwystr go iawn, a’r ffordd drwyddo yw dechrau mewn llwyfannu, dangos canfyddiadau sy’n mapio i arian neu risg, a gadael i ychydig o arbrofion cynhyrchu wedi’u cynnwys adeiladu ymddiriedaeth. I wneud yr achos i arweinyddiaeth, fframiwch beirianneg anhrefn fel yswiriant y gallwch ei fesur: cyflwynwch gost digwyddiadau diweddar, dangoswch pa rai ohonynt y byddai arbrawf cydnerthedd wedi’u dal, a chynigiwch raglen sy’n dechrau’n fach ac yn ehangu dim ond wrth iddi brofi ei hun. Mewn lleoliadau rheoleiddiedig a’r sector cyhoeddus, ychwanegwch yr ongl gydymffurfiaeth, oherwydd mae profi cydnerthedd gweithredol ac ymarferion parhad yn cael eu disgwyl yn gynyddol, ac mae rhaglen anhrefn yn ffordd o fodloni’r disgwyliad hwnnw â thystiolaeth yn hytrach na phapurwaith.
Gwrth-batrymau a pheryglon
- Anhrefn heb arsylladwyedd. Mae chwistrellu namau i system na allwch ei gweld yn ddyfalu â chamau ychwanegol; byddwch yn achosi niwed ac yn dysgu dim.
- Dim diffiniad cyflwr sefydlog. Heb fesur cytûn o iechyd, ni allwch ddweud a wnaeth arbrawf ddatgelu problem neu ei hachosi.
- Dim rhagdybiaeth. Nid peirianneg anhrefn yw torri pethau ar hap; fandaliaeth ag enw crand a dim canfyddiadau ydyw.
- Radiws effaith heb ei gynnwys. Mae hepgor yr arbrofion bach, diogel a mynd yn syth i fethiant ar draws cynhyrchu yn troi prawf yn doriad rydych wedi’i achosi eich hun.
- Dim llwybr diddymu. Nid yw arbrawf na allwch ei atal ar unwaith yn arbrawf; mae’n ddigwyddiad yn aros am sbardun.
- Awtomeiddio’n rhy gynnar. Mae anhrefn parhaus ar ben system anaeddfed yn cynhyrchu digwyddiadau’n gyflymach na mewnwelediadau.
- Canfyddiadau nad ydynt yn mynd i unman. Mae darganfod gwendid a byth yn ei drwsio yn gwastraffu’r ymarfer ac yn erydu ymddiriedaeth yn y rhaglen gyfan.
- Beio ar ôl arbrawf gwael. Mae cosbi’r peiriannydd a redodd arbrawf a ddatgelodd fai go iawn yn gwarantu na fydd neb yn rhedeg yr un nesaf.
Model aeddfedrwydd
- Lefel 1, Cychwyn: Mae cydnerthedd yn cael ei gymryd yn ganiataol, nid ei brofi. Darganfyddir methiannau mewn cynhyrchu yn ystod digwyddiadau go iawn. Nid oes diwrnodau gêm, dim chwistrellu namau, ac yn aml dim diffiniad clir o sut olwg sydd ar iach. Mae’r tîm yn dysgu am ei wendidau y ffordd galed, un toriad ar y tro.
- Lefel 2, Datblygu: Mae’r tîm yn rhedeg diwrnodau gêm achlysurol, fel arfer mewn llwyfannu, gyda senario diffiniedig a rhagdybiaeth. Mae’r cyflwr sefydlog wedi’i ddiffinio ar gyfer ychydig o wasanaethau allweddol ac mae arsylladwyedd sylfaenol yn bodoli. Mae canfyddiadau’n cael eu cofnodi a rhai’n cael eu trwsio, ond mae’r arfer yn anghyson ar draws timau ac yn dibynnu ar hyrwyddwyr unigol yn hytrach na dull sefydledig.
- Lefel 3, Safoni: Mae arbrofion anhrefn yn arfer dogfennedig, sy’n cwmpasu’r sefydliad cyfan, gyda pholisïau radiws effaith gorfodedig, amodau diddymu, a meini prawf parodrwydd y mae’n rhaid i wasanaeth eu clirio cyn iddo arbrofi mewn cynhyrchu. Mae arbrofion yn rhedeg mewn cynhyrchu dan amodau rheoledig, mae canfyddiadau’n llifo i ôl-groniad cydnerthedd a rennir ochr yn ochr ag adolygiadau digwyddiadau ac ymarferion adfer trychineb, a chaiff mecanweithiau cydnerthedd eu gwirio yn hytrach na’u tybio. Mae pob tîm yn dilyn yr un llyfr chwarae.
- Lefel 4, Rheoli: Mae’r rhaglen yn cael ei mesur a’i rheoli â data yn erbyn llinellau sylfaen. Rydych yn olrhain sylw cydnerthedd (pa wasanaethau hanfodol a pha fecanweithiau, fel amseriadau, ailgeisiadau, torwyr cylched, a failover, sydd wedi’u gwirio dan nam wedi’i chwistrellu go iawn a pha mor ddiweddar), y gyfradd y mae arbrofion yn datgelu canfyddiadau, yr amser cyfartalog i gau canfyddiad cydnerthedd, a pha mor aml y mae mecanwaith a wiriwyd o’r blaen yn dirywio. Adolygir y metrigau hyn ar gadence penodol, mae dyrchafiad cynhyrchu’n cael ei giatio gan dystiolaeth yn hytrach na barn, a blaenoriaethir arbrofion yn ôl risg fesuredig y mecanweithiau nad ydynt eto wedi’u gwirio.
- Lefel 5, Cerddorfa: Mae set gywasgedig o arbrofion yn rhedeg yn barhaus ac yn awtomatig, gan ddal dirywiadau o fewn dyddiau, ac mae’r rhaglen yn addasu wrth i’r system a’i darlun risg newid. Mae peirianneg anhrefn wedi’i integreiddio ar draws y sefydliad â phiblinellau cyflenwi, dysgu digwyddiadau, a phrofi adfer trychineb, fel bod gwasanaethau newydd yn etifeddu gwiriad cydnerthedd yn ddiofyn. Mae cydnerthedd yn briodwedd wedi’i gwirio’n barhaus o’r system, ac mae arweinyddiaeth yn trin y rhaglen fel rheoli risg safonol sy’n cael ei fireinio ar dystiolaeth yn hytrach na menter arbennig.
Syniadau ar gyfer trafodaeth
- Sut rydych yn penderfynu pa wasanaeth yn eich sefydliad sy’n ennill yr hawl i redeg arbrofion anhrefn mewn cynhyrchu yn gyntaf, a beth sy’n rhaid bod yn wir cyn iddo wneud hynny?
- Pan fo arbrawf anhrefn yn datgelu gwendid difrifol, pwy sy’n berchen ar y trwsiad, a sut rydych yn cadw’r canfyddiad hwnnw rhag eistedd heb ei gyffwrdd mewn ôl-groniad?
- Ble mae’r llinell rhwng arbrawf anhrefn, ymarfer adfer trychineb, a diwrnod gêm yn eich cyd-destun, ac a yw’r gwahaniaeth hyd yn oed yn bwysig ar gyfer sut rydych yn eu cynllunio?
- Sut fyddech chi’n perswadio gweithredwr amheus fod cyflwyno methiant yn fwriadol mewn cynhyrchu yn fwy diogel na’r status quo o aros am doriadau go iawn?
- Beth yw’r arbrawf cyntaf lleiaf, mwyaf gwerthfawr y gallai eich tîm ei redeg fis nesaf, a beth fyddai’n eich atal rhag ei redeg?
- Sut ddylai profi cydnerthedd wahaniaethu rhwng gwasanaeth cyhoeddus sy’n wynebu dinasyddion gyda mandad parhad a theclyn menter mewnol â bôn defnyddwyr bach?
Prif gasgliadau
- Mae peirianneg anhrefn yn arbrofi disgyblaethol, wedi’i yrru gan ragdybiaeth i feithrin hyder mewn cydnerthedd, nid torri pethau ar hap.
- Sefydlwch arsylladwyedd, diffiniad cyflwr sefydlog, a rholio’n ôl cyflym cyn cyflwyno un nam yn unig.
- Chwistrellwch namau realistig (oedi, gwallau, dihysbyddiad adnoddau, methiant dibyniaeth) a’u defnyddio i wirio bod amseriadau, ailgeisiadau, torwyr cylched, a failover mewn gwirionedd yn gweithio.
- Dechreuwch ag ymarferion bwrdd a diwrnodau gêm, cyfyngwch ar y radiws effaith yn fwriadol, ac enillwch eich ffordd tuag at gynhyrchu ac awtomeiddio.
- Cysylltwch arbrofion â phrofi adfer trychineb (pennod 9.5) a dysgu o ddigwyddiadau (pennod 9.3) fel bod canfyddiadau’n cyfansoddi’n un ôl-groniad cydnerthedd.
- Triniwch ganfyddiadau’n ddi-fai a’u trwsio; mae arbrawf na chaiff ei wers ei ddatrys yn waeth na dim arbrawf o gwbl.
Cyfeiriadau a darllen pellach
- Casey Rosenthal, Nora Jones, Chaos Engineering: System Resiliency in Practice
- Russ Miles, Learning Chaos Engineering: Discovering and Overcoming System Weaknesses Through Experimentation
- Mikolaj Pawlikowski, Chaos Engineering: Crash Test Your Applications
- Ali Basiri et al., Chaos Engineering (IEEE Software, 2016)
- Betsy Beyer, Chris Jones, Jennifer Petoff, Niall Richard Murphy, Site Reliability Engineering: How Google Runs Production Systems
- Michael T. Nygard, Release It! Design and Deploy Production-Ready Software
- Principles of Chaos Engineering, principlesofchaos.org