Post Mortem air Quay.io gun a bhith ri fhaighinn

Thoir an aire. eadar-theangachadh.: tràth san Lùnastal, bhruidhinn Red Hat gu poblach mu bhith a’ fuasgladh dhuilgheadasan ruigsinneachd a bha luchd-cleachdaidh na seirbheis aige air coinneachadh anns na mìosan roimhe sin Cidhe.io (tha e stèidhichte air clàr airson ìomhaighean soithich, a fhuair a’ chompanaidh còmhla ri ceannach CoreOS). Ge bith dè an ùidh a th’ agad san t-seirbheis seo mar sin, tha an t-slighe a ghabh innleadairean SRE na companaidh gus adhbharan an tubaist a dhearbhadh agus a chuir às.

Post Mortem air Quay.io gun a bhith ri fhaighinn

Air 19 Cèitean, tràth sa mhadainn (Eastern Daylight Time, EDT), thuit an t-seirbheis quay.io. Thug an tubaist buaidh air gach cuid luchd-cleachdaidh quay.io agus pròiseactan Open Source a ’cleachdadh quay.io mar àrd-ùrlar airson bathar-bog a thogail agus a sgaoileadh. Tha Red Hat a’ cur luach air earbsa an dà chuid.

Chaidh sgioba de innleadairean SRE an sàs sa bhad agus dh’ fheuch iad ri seirbheis a’ Chidhe a dhèanamh seasmhach cho luath ‘s a ghabhadh. Ach, fhad ‘s a bha iad a’ dèanamh seo, chaill teachdaichean an comas ìomhaighean ùra a phutadh, agus dìreach corra uair a b’ urrainn dhaibh an fheadhainn a bha ann mu thràth a tharraing. Airson adhbhar neo-aithnichte, chaidh an stòr-dàta quay.io a bhacadh às deidh dha an t-seirbheis a sgèileadh gu làn chomas.

«Dè tha air atharrachadh?" - 'S e seo a' chiad cheist a tha mar as trice a 'faighneachd ann an leithid de chùisean. Mhothaich sinn goirid ron chùis, gun do thòisich an cruinneachadh OpenShift Tiomnaichte (a tha a’ ruith quay.io) ag ùrachadh gu dreach 4.3.19. Leis gu bheil quay.io a’ ruith air Red Hat OpenShift Dedicated (OSD), bha ùrachaidhean cunbhalach àbhaisteach agus cha do dh’ adhbhraich iad duilgheadasan a-riamh. A bharrachd air an sin, thairis air na sia mìosan a dh’ fhalbh, tha sinn air cruinneachaidhean Quay ùrachadh grunn thursan gun bhriseadh sam bith san t-seirbheis.

Fhad ‘s a bha sinn a’ feuchainn ris an t-seirbheis a thoirt air ais, thòisich innleadairean eile ag ullachadh cruinneachadh OSD ùr leis an dreach roimhe den bhathar-bog, gus an tachradh rudeigin, b’ urrainn dhaibh a h-uile càil a chuir air.

Mion-sgrùdadh bunaiteach adhbhar

B’ e am prìomh chomharradh air an fhàiligeadh maoim-slèibhe de dheich mìltean de cheanglaichean stòr-dàta, a dh’ fhàg an t-eisimpleir MySQL gu h-èifeachdach neo-obrachail. Rinn seo e doirbh an duilgheadas a lorg. Tha sinn air crìoch a chuir air an àireamh as motha de cheanglaichean bho luchd-dèiligidh gus sgioba SRE a chuideachadh gus a’ chùis a mheasadh. Cha do mhothaich sinn trafaic neo-àbhaisteach sam bith don stòr-dàta: gu dearbh, chaidh a’ mhòr-chuid de dh’ iarrtasan a leughadh, agus cha robh ach beagan dhiubh gan sgrìobhadh.

Dh’ fheuch sinn cuideachd ri pàtran a chomharrachadh ann an trafaic an stòr-dàta a dh’ fhaodadh an maoim-sneachda seo adhbhrachadh. Ach, cha b’ urrainn dhuinn pàtrain sam bith a lorg anns na logaichean. Fhad ‘s a bha sinn a’ feitheamh ris a ’bhuidheann ùr le OSD 4.3.18 a bhith deiseil, lean sinn oirnn a’ feuchainn ri pods quay.io a chuir air bhog. Gach uair a ruigeadh am buidheann làn chomas, bhiodh an stòr-dàta a’ reothadh. Bha seo a’ ciallachadh gu robh e riatanach an eisimpleir RDS ath-thòiseachadh a bharrachd air a h-uile pod quay.io.

Air an fheasgar, shocraich sinn an t-seirbheis ann am modh leughaidh a-mhàin agus chuir sinn à comas na b’ urrainn de ghnìomhan neo-riatanach (mar eisimpleir, cruinneachadh sgudail ainmean-àite) gus an luchd air an stòr-dàta a lughdachadh. Tha reothadh air stad ach cha deach an t-adhbhar a lorg a-riamh. Bha an cruinneachadh ùr OSD deiseil, agus rinn sinn imrich air an t-seirbheis, trafaic ceangailte agus sgrùdadh leantainneach.

Dh’ obraich Quay.io gu seasmhach air a’ bhuidheann OSD ùr, agus mar sin chaidh sinn air ais gu logaichean an stòr-dàta, ach cha b’ urrainn dhuinn co-dhàimh a lorg a mhìnicheadh ​​​​na bacaidhean. Dh’obraich innleadairean OpenShift còmhla rinn gus tuigsinn am faodadh atharrachaidhean ann an Red Hat OpenShift 4.3.19 duilgheadasan adhbhrachadh le Quay. Ach, cha deach dad a lorg, agus Cha robh e comasach an duilgheadas ath-riochdachadh ann an suidheachaidhean obair-lann.

An dàrna fàilligeadh

Air 28 Cèitean, goirid ro mheadhan-latha EDT, thuit quay.io a-rithist leis an aon symptom: chaidh an stòr-dàta a bhacadh. Agus a-rithist thilg sinn ar n-oidhirpean gu lèir a-steach don sgrùdadh. An toiseach, bha e riatanach an t-seirbheis a thoirt air ais. Ge-tà an turas seo cha do rinn ath-thòiseachadh RDS agus ath-thòiseachadh pods quay.io dad: tha maoim-slèibhe eile de cheanglaichean air a dhol thairis air a' bhunait. Ach carson?

Tha Quay sgrìobhte ann am Python agus tha gach pod ag obair mar aon inneal monolithic. Bidh ùine ruith nan soithichean a’ ruith mòran de ghnìomhan co-shìnte aig an aon àm. Cleachdaidh sinn an leabharlann gevent fo na gunicorn gus iarrtasan lìn a làimhseachadh. Nuair a thig iarrtas a-steach don Chidhe (tron API againn fhèin, no tro API Docker), thèid neach-obrach gevent a thoirt dha. Mar as trice bu chòir don neach-obrach seo fios a chuir chun stòr-dàta. Às deidh a ’chiad fhàiligeadh, lorg sinn gu robh luchd-obrach gevent a’ ceangal ris an stòr-dàta a ’cleachdadh roghainnean bunaiteach.

Leis an àireamh mhòr de pods Cidhe agus mìltean de dh’ iarrtasan a’ tighinn a-steach gach diog, dh’ fhaodadh àireamh mhòr de cheanglaichean stòr-dàta faighinn thairis air an eisimpleir MySQL gu teòiridheach. Mar thoradh air sgrùdadh, bha fios gu bheil Quay a’ pròiseasadh cuibheasachd de 5 mìle iarrtas gach diog. Bha an àireamh de cheanglaichean ris an stòr-dàta timcheall air an aon rud. Bha 5 mìle ceangal gu math taobh a-staigh comasan an eisimpleir RDS againn (nach urrainnear a ràdh mu na deichean mhìltean). Airson adhbhar air choireigin bha spìcean ris nach robh dùil anns an àireamh de cheanglaichean, ge-tà, cha do mhothaich sinn co-dhàimh sam bith ri iarrtasan a thàinig a-steach.

An turas seo bha sinn dìorrasach adhbhar na trioblaid a lorg agus a chuir às, agus gun sinn fhìn a chuingealachadh ri ath-thòiseachadh. Gu stòr còd Quay chaidh atharrachaidhean a dhèanamh gus an àireamh de cheanglaichean ris an stòr-dàta airson gach neach-obrach a chuingealachadh gevent. Thàinig an àireamh seo gu bhith na pharamadair anns an rèiteachadh: bha e comasach atharrachadh air an itealan gun a bhith a 'togail ìomhaigh soitheach ùr. Gus faighinn a-mach cia mheud ceangal a dh’ fhaodadh a bhith air a làimhseachadh gu fìrinneach, ruith sinn grunn dheuchainnean ann an àrainneachd stèidse, a’ suidheachadh diofar luachan gus faicinn mar a bheireadh seo buaidh air suidheachaidhean deuchainn luchdan. Mar thoradh air an sin, chaidh a lorg Bidh Quay a 'tòiseachadh a' tilgeil 502 mearachdan nuair a tha an àireamh de cheanglaichean nas àirde na 10 mìle.

Chuir sinn an dreach ùr seo gu cinneasachadh sa bhad agus thòisich sinn a’ cumail sùil air clàr ceangail an stòr-dàta. San àm a dh'fhalbh, chaidh am bonn a ghlasadh sìos an dèidh timcheall air 20 mionaid. Às deidh 30 mionaid gun trioblaid bha dòchas againn, agus uair an dèidh sin bha misneachd againn. Chuir sinn an trafaic air ais chun làraich agus thòisich sinn air sgrùdadh postmortem.

An dèidh faighinn seachad air an duilgheadas a tha a 'leantainn gu bacadh, chan eil sinn air faighinn a-mach na fìor adhbharan aige. Chaidh a dhearbhadh nach eil e co-cheangailte ri atharrachaidhean sam bith ann an OpenShift 4.3.19, oir thachair an aon rud air dreach 4.3.18, a bha roimhe ag obair le Quay gun duilgheadas sam bith.

Bha e soilleir gu robh rudeigin eile a’ falach anns a’ bhuidheann.

Sgrùdadh mionaideach

Chleachd Quay.io na roghainnean bunaiteach gus ceangal ris an stòr-dàta airson sia bliadhna gun duilgheadas sam bith. Dè dh'atharraich? Tha e soilleir gu bheil trafaic air quay.io air a bhith a’ fàs gu cunbhalach fad na h-ùine seo. Anns a 'chùis againn, bha e a' coimhead mar gum biodh cuid de luach na stairsnich air a ruighinn, a bha na bhrosnachadh airson maoim-sneachda de cheanglaichean. Lean sinn oirnn a’ sgrùdadh nan logaichean stòr-dàta às deidh an dàrna fàilligeadh, ach cha do lorg sinn pàtrain no dàimhean follaiseach.

Anns an eadar-ama, tha sgioba SRE air a bhith ag obair air leasachaidhean a thaobh faicsinneachd iarrtasan Quay agus slàinte seirbheis san fharsaingeachd. Chaidh metrics agus deas-bhòrdan ùra a chuir a-steach, a’ sealltainn dè na pàirtean den Chidhe as motha a tha iarrtas bho luchd-ceannach.

Dh'obraich Quay.io gu math gu 9 Ògmhios. Sa mhadainn (EDT) chunnaic sinn a-rithist àrdachadh mòr anns an àireamh de cheanglaichean stòr-dàta. An turas seo cha robh ùine downt ann, leis gu robh am paramadair ùr a’ cuingealachadh an àireamh aca agus nach do leig e leotha a dhol thairis air MySQL throughput. Ach, airson timcheall air leth uair a thìde, thug mòran de luchd-cleachdaidh fa-near coileanadh slaodach quay.io. Chruinnich sinn gu sgiobalta a h-uile dàta comasach a’ cleachdadh na h-innealan sgrùdaidh a bharrachd. Gu h-obann nochd pàtran.

Dìreach ron àrdachadh ann an ceanglaichean, chaidh àireamh mhòr de dh'iarrtasan a dhèanamh gu App Registry API. Tha App Registry na fheart nach eil cho aithnichte de quay.io. Leigidh e leat rudan leithid clàran Helm agus soithichean a stòradh le meata-dàta beairteach. Chan eil a 'mhòr-chuid de luchd-cleachdaidh quay.io ag obair leis an fheart seo, ach tha Red Hat OpenShift ga chleachdadh gu gnìomhach. Bidh OperatorHub mar phàirt de OpenShift a’ stòradh a h-uile gnìomhaiche ann an Clàr nan App. Tha na gnìomhaichean sin nam bunait airson eag-shiostam eallach obrach OpenShift agus modal obrachaidh stèidhichte air com-pàirtiche (obair Latha 2).

Bidh gach brabhsair OpenShift 4 a’ cleachdadh oibrichean bhon OperatorHub togte gus catalog de ghnìomhaichean fhoillseachadh a tha rim faighinn airson an stàladh agus ùrachaidhean a thoirt don fheadhainn a chaidh a chuir a-steach mu thràth. Leis mar a tha OpenShift 4 a’ sìor fhàs mòr-chòrdte, tha an àireamh de chlàran air feadh an t-saoghail air a dhol suas cuideachd. Bidh gach aon de na cruinneachaidhean sin a’ luchdachadh sìos susbaint gnìomhaiche gus an OperatorHub togte a ruith, a’ cleachdadh an App Registry taobh a-staigh quay.io mar an deireadh-sheachdain. Nuair a bha sinn a’ lorg cò às a thàinig an duilgheadas, bha sinn ag ionndrainn mar a dh’ fhàs fèill mhòr air OpenShift mean air mhean, chaidh an luchd air aon de na gnìomhan quay.io nach eilear a’ cleachdadh ach am meud cuideachd..

Rinn sinn beagan mion-sgrùdadh air trafaic iarrtas Clàradh App agus thug sinn sùil air a’ chòd clàraidh. Anns a’ bhad, chaidh easbhaidhean fhoillseachadh, leis nach deach ceistean chun stòr-dàta a chruthachadh mar as fheàrr. Nuair a bha an luchd ìosal, cha do dh'adhbhraich iad trioblaid sam bith, ach nuair a chaidh an luchd àrdachadh, thàinig iad gu bhith nan adhbhar dhuilgheadasan. Thionndaidh a-mach gu robh dà phuing crìochnachaidh trioblaideach aig App Registry nach do fhreagair gu math ri àrdachadh luchd: thug a’ chiad fhear liosta de na pacaidean gu lèir san stòr, thill an dàrna fear a h-uile blob airson a’ phacaid.

Cur às do na h-adhbharan

Thairis air an ath sheachdain chuir sinn seachad an ìre as fheàrr de chòd Clàr nan App fhèin agus an àrainneachd aige. Tha e soilleir gun deach ceistean SQL neo-èifeachdach ath-obrachadh agus chaidh cuir às do ghairmean àithne gun fheum tar (chaidh a ruith a h-uile uair a chaidh bloban fhaighinn air ais), chaidh caching a chuir ris far an robh sin comasach. Rinn sinn an uairsin deuchainnean coileanaidh farsaing agus rinn sinn coimeas eadar astar Clàr nan App ro agus às deidh na h-atharrachaidhean.

Tha iarrtasan API a thug suas ri leth-mhionaid roimhe seo a-nis air an crìochnachadh ann am milliseconds. An ath sheachdain chuir sinn na h-atharrachaidhean gu cinneasachadh an sàs, agus bhon uairsin tha quay.io air a bhith ag obair gu seasmhach. Rè na h-ùine seo, bha grunn spìcean biorach ann an trafaic aig ceann-uidhe Clàr nan App, ach chuir na leasachaidhean a chaidh a dhèanamh casg air briseadh stòr-dàta.

Dè tha sinn air ionnsachadh?

Tha e soilleir gu bheil seirbheis sam bith a’ feuchainn ri ùine downt a sheachnadh. Anns a ’chùis againn, tha sinn den bheachd gu bheil na briseadh a-mach o chionn ghoirid air cuideachadh le bhith a’ dèanamh quay.io nas fheàrr. Tha sinn air beagan leasanan ionnsachadh a bu mhath leinn a roinn:

  1. Dàta mu cò a chleachdas an t-seirbheis agad agus ciamar nach eil feum air. Leis gu bheil Quay “dìreach ag obair,” cha robh againn ri ùine a chaitheamh a’ dèanamh an fheum as fheàrr den trafaic agus a’ riaghladh luchd. Chruthaich seo uile faireachdainn meallta de thèarainteachd a dh’ fhaodadh an t-seirbheis a mheudachadh gun chrìoch.
  2. Nuair a thèid an t-seirbheis sìos, tha e na àrd phrìomhachas a bhith ga fhaighinn air ais agus ga ruith.. Leis gun do lean Quay a’ fulang le stòr-dàta glaiste rè a’ chiad dol-a-mach, cha robh a’ bhuaidh a bha san amharc aig na modhan àbhaisteach againn agus cha b’ urrainn dhuinn an t-seirbheis a thoirt air ais gan cleachdadh. Dh’ adhbhraich seo suidheachadh far am feumadh ùine a chaitheamh a’ mion-sgrùdadh agus a’ cruinneachadh dàta an dòchas am prìomh adhbhar a lorg - an àite a bhith a’ cuimseachadh a h-uile oidhirp air comas-gnìomh a thoirt air ais.
  3. Dèan measadh air buaidh gach feart seirbheis. Is ann ainneamh a chleachd teachdaichean Clàr App, agus mar sin cha robh e na phrìomhachas don sgioba againn. Nuair is gann a thathas a’ cleachdadh cuid de fheartan toraidh, is ann ainneamh a bhios na mialan aca a’ nochdadh, agus bidh luchd-leasachaidh a’ stad a’ cumail sùil air a’ chòd. Tha e furasta a bhith creach don mhì-thuigse gur e seo mar a bu chòir a bhith - gus gu h-obann bidh an gnìomh sin aig cridhe tachartas mòr.

Dè a-nis?

Cha stad an obair gus dèanamh cinnteach à seasmhachd na seirbheis gu bràth agus tha sinn an-còmhnaidh ga leasachadh. Mar a bhios meud trafaic a’ sìor fhàs air quay.io, tha sinn ag aithneachadh gu bheil e mar dhleastanas oirnn nas urrainn dhuinn a dhèanamh gus a bhith beò suas ri earbsa ar teachdaichean. Mar sin, tha sinn an-dràsta ag obair air na gnìomhan a leanas:

  1. Cleachd mac-samhail stòr-dàta a leughas a-mhàin gus an t-seirbheis a chuideachadh a’ làimhseachadh trafaic iomchaidh ma bhios duilgheadasan ann leis a’ phrìomh eisimpleir RDS.
  2. Luchdaich a-nuas eisimpleir RDS. Chan e an dreach làithreach fhèin an duilgheadas. An àite sin, tha sinn dìreach airson an t-slighe meallta a thoirt air falbh (a lean sinn nuair a dh'fhàillig); Le bhith cumail am bathar-bog ùraichte cuiridh sin às do fheart eile ma thachras briseadh a-mach san àm ri teachd.
  3. Tasgadh a bharrachd thairis air a’ bhuidheann gu lèir. Tha sinn a’ leantainn oirnn a’ coimhead airson raointean far am faod tasgadan an luchd air an stòr-dàta a lughdachadh.
  4. A’ cur balla-teine ​​​​tagradh lìn (WAF) ris gus faicinn cò tha a’ ceangal ri quay.io agus carson.
  5. A’ tòiseachadh leis an ath fhoillseachadh, trèigidh cruinneachaidhean Red Hat OpenShift Clàr an App airson fàbhar Catalogan Gnìomhaiche stèidhichte air ìomhaighean soithichean a tha rim faighinn air quay.io.
  6. Dh’ fhaodadh taic fad-ùine airson Clàradh App a bhith na thaic airson mion-chomharrachadh artifact Iomairt Container Fosgailte (OCI). Tha e an-dràsta air a chuir an gnìomh mar ghnìomhachd dùthchasach Quay agus bidh e ri fhaighinn le luchd-cleachdaidh nuair a bhios an sònrachadh fhèin deiseil.

Tha a h-uile rud gu h-àrd mar phàirt den tasgadh leantainneach aig Red Hat ann an quay.io agus sinn a’ gluasad bho sgioba beag “stoidhle tòiseachaidh” gu àrd-ùrlar aibidh air a stiùireadh le SRE. Tha fios againn gu bheil mòran den luchd-ceannach againn an urra ri quay.io nan obair làitheil (Red Hat nam measg!)

PS bhon eadar-theangair

Leugh cuideachd air ar blog:

Source: www.habr.com

Cuir beachd ann