Fi Mortem silẹ lori wiwa Quay.io

Akiyesi. itumọ.: ni ibẹrẹ Oṣu Kẹjọ, Red Hat sọ ni gbangba nipa ipinnu awọn iṣoro iraye si ti awọn olumulo ti iṣẹ rẹ ti pade ni awọn oṣu iṣaaju Quay.io (o da lori iforukọsilẹ fun awọn aworan eiyan, eyiti ile-iṣẹ gba pẹlu rira CoreOS). Laibikita anfani rẹ si iṣẹ yii gẹgẹbi iru bẹẹ, ọna ti awọn onimọ-ẹrọ SRE ti ile-iṣẹ gba lati ṣe iwadii ati imukuro awọn idi ti ijamba naa jẹ itọnisọna.

Fi Mortem silẹ lori wiwa Quay.io

Ni Oṣu Karun ọjọ 19, ni kutukutu owurọ (Aago Imọlẹ Ila-oorun, EDT), iṣẹ quay.io kọlu. Ijamba na kan awọn onibara quay.io mejeeji ati awọn iṣẹ orisun orisun ni lilo quay.io gẹgẹbi ipilẹ kan fun kikọ ati pinpin sọfitiwia. Red Hat ṣe iye igbẹkẹle ti awọn mejeeji.

Ẹgbẹ kan ti awọn onimọ-ẹrọ SRE lẹsẹkẹsẹ kopa ati gbiyanju lati ṣe iduroṣinṣin iṣẹ Quay ni kete bi o ti ṣee. Sibẹsibẹ, lakoko ti wọn n ṣe eyi, awọn alabara padanu agbara lati Titari awọn aworan tuntun, ati pe lẹẹkọọkan nikan ni wọn le fa awọn ti o wa tẹlẹ. Fun idi kan ti a ko mọ, aaye data quay.io ti dinamọ lẹhin iwọn iṣẹ naa si agbara ni kikun.

«Kini o ti yipada?"- Eyi ni ibeere akọkọ ti a maa n beere ni iru awọn ọran. A ṣe akiyesi pe laipẹ ṣaaju ọran naa, iṣupọ Ifiṣootọ OpenShift (eyiti o nṣiṣẹ quay.io) bẹrẹ imudojuiwọn si ẹya 4.3.19. Niwọn igba ti quay.io nṣiṣẹ lori Red Hat OpenShift Dedicated (OSD), awọn imudojuiwọn deede jẹ igbagbogbo ko fa awọn iṣoro rara. Pẹlupẹlu, ni oṣu mẹfa sẹyin, a ti ṣe igbesoke awọn iṣupọ Quay ni ọpọlọpọ igba laisi idalọwọduro eyikeyi ninu iṣẹ.

Lakoko ti a n gbiyanju lati mu pada iṣẹ naa pada, awọn onimọ-ẹrọ miiran bẹrẹ si mura iṣupọ OSD tuntun kan pẹlu ẹya ti tẹlẹ ti sọfitiwia, ki ohun kan ba ṣẹlẹ, wọn le fi ohun gbogbo sori rẹ.

Gbongbo Fa Analysis

Aisan akọkọ ti ikuna jẹ iparun ti ẹgbẹẹgbẹrun awọn isopọ data data, eyiti o jẹ ki apẹẹrẹ MySQL ṣiṣẹ ni imunadoko. Eyi jẹ ki o ṣoro lati ṣe iwadii iṣoro naa. A ti ṣeto opin lori nọmba ti o pọ julọ ti awọn asopọ lati ọdọ awọn alabara lati ṣe iranlọwọ fun ẹgbẹ SRE lati ṣe iṣiro ọran naa. A ko ṣe akiyesi eyikeyi ijabọ dani si ibi ipamọ data: ni otitọ, ọpọlọpọ awọn ibeere ni a ka, ati pe diẹ nikan ni a kọ.

A tun gbiyanju lati ṣe idanimọ apẹrẹ kan ninu ijabọ data data ti o le fa avalanche yii. Sibẹsibẹ, a ko le rii eyikeyi awọn ilana ninu awọn akọọlẹ. Lakoko ti o nduro fun iṣupọ tuntun pẹlu OSD 4.3.18 lati ṣetan, a tẹsiwaju igbiyanju lati ṣe ifilọlẹ awọn pods quay.io. Ni gbogbo igba ti iṣupọ ba de agbara ni kikun, data data yoo di. Eyi tumọ si pe o jẹ dandan lati tun bẹrẹ apẹẹrẹ RDS ni afikun si gbogbo awọn pods quay.io.

Ni aṣalẹ, a ṣe imuduro iṣẹ naa ni ipo kika-nikan ati alaabo bi ọpọlọpọ awọn iṣẹ ti ko ṣe pataki bi o ti ṣee (fun apẹẹrẹ, ikojọpọ idoti aaye orukọ) lati dinku fifuye lori aaye data. Awọn didi ti duro ṣugbọn a ko ri idi rẹ rara. Iṣupọ OSD tuntun ti ṣetan, ati pe a ṣilọ iṣẹ naa, ijabọ ti a ti sopọ ati ibojuwo tẹsiwaju.

Quay.io ṣiṣẹ ni iduroṣinṣin lori iṣupọ OSD tuntun, nitorinaa a pada si awọn iwe ipamọ data, ṣugbọn a ko le rii ibamu kan ti yoo ṣalaye awọn idinamọ naa. Awọn ẹlẹrọ OpenShift ṣiṣẹ pẹlu wa lati ni oye boya awọn ayipada ninu Red Hat OpenShift 4.3.19 le fa awọn iṣoro pẹlu Quay. Sibẹsibẹ, ko si ohun ti a ri, ati Ko ṣee ṣe lati ṣe ẹda iṣoro naa ni awọn ipo yàrá.

Ikuna keji

Ni Oṣu Karun ọjọ 28, ni kete ṣaaju EDT ọsan, quay.io tun kọlu pẹlu aami aisan kanna: data data ti dina. Ati lẹẹkansi a ju gbogbo akitiyan wa sinu iwadi. Ni akọkọ, o jẹ dandan lati mu pada iṣẹ naa pada. Sibẹsibẹ ni akoko yii atunbere RDS ati tun bẹrẹ quay.io pods ko ṣe nkankan: owusuwusu miiran ti awọn asopọ ti bori ipilẹ. Ṣugbọn kilode?

A kọ Quay ni Python ati pe adarọ-ese kọọkan n ṣiṣẹ bi eiyan monolithic kan. Akoko asiko eiyan nṣiṣẹ ọpọlọpọ awọn iṣẹ-ṣiṣe ti o jọra ni nigbakannaa. A lo ile-ikawe gevent labẹ gunicorn lati ṣe ilana awọn ibeere wẹẹbu. Nigbati ibeere kan ba wa sinu Quay (nipasẹ API tiwa, tabi nipasẹ Docker's API), o ti yan oṣiṣẹ iṣẹ kan. Ni igbagbogbo oṣiṣẹ yii yẹ ki o kan si ibi ipamọ data. Lẹhin ikuna akọkọ, a ṣe awari pe awọn oṣiṣẹ gevent n sopọ si ibi ipamọ data nipa lilo awọn eto aiyipada.

Fi fun nọmba pataki ti awọn adarọ-ese Quay ati ẹgbẹẹgbẹrun awọn ibeere ti nwọle fun iṣẹju keji, nọmba nla ti awọn asopọ data data le ni imọ-jinlẹ bori apẹẹrẹ MySQL. Ṣeun si ibojuwo, o ti mọ pe Quay ṣe ilana apapọ awọn ibeere 5 ẹgbẹrun fun iṣẹju kan. Nọmba awọn asopọ si ibi ipamọ data jẹ isunmọ kanna. Awọn asopọ 5 ẹgbẹrun wa daradara laarin awọn agbara ti apẹẹrẹ RDS wa (eyiti a ko le sọ nipa ẹgbẹẹgbẹrun ẹgbẹẹgbẹrun). Fun idi kan awọn spikes airotẹlẹ wa ninu nọmba awọn asopọ, sibẹsibẹ, a ko ṣe akiyesi eyikeyi ibamu pẹlu awọn ibeere ti nwọle.

Ni akoko yii a pinnu lati wa ati imukuro orisun ti iṣoro naa, ati pe ko ni opin ara wa si atunbere. Si ipilẹ koodu Quay awọn ayipada ti a ṣe lati ṣe idinwo nọmba awọn asopọ si ibi ipamọ data fun oṣiṣẹ kọọkan iṣẹlẹ. Nọmba yii di paramita ninu iṣeto ni: o ṣee ṣe lati yi pada lori fo laisi kikọ aworan eiyan tuntun kan. Lati wa iye awọn asopọ ti o le ni ọwọ gidi, a sare awọn idanwo pupọ ni agbegbe idasile, ṣeto awọn iye oriṣiriṣi lati rii bii eyi yoo ṣe kan awọn oju iṣẹlẹ idanwo fifuye. Bi abajade, o ti ṣe awari pe Quay bẹrẹ jiju awọn aṣiṣe 502 nigbati nọmba awọn asopọ ba kọja 10 ẹgbẹrun.

Lẹsẹkẹsẹ a gbe ẹya tuntun yii si iṣelọpọ ati bẹrẹ ṣiṣe abojuto iṣeto asopọ data data. Ni igba atijọ, ipilẹ ti wa ni titiipa lẹhin iṣẹju 20. Lẹhin awọn iṣẹju 30 ti ko ni wahala a ni ireti, ati pe wakati kan lẹhinna a ni igbẹkẹle. A mu ijabọ pada si aaye naa ati bẹrẹ itupalẹ postmortem.

Lẹhin ti iṣakoso lati fori iṣoro naa ti o yori si didi, a ti ko ri jade awọn oniwe-gidi idi. O ti fi idi rẹ mulẹ pe ko ni ibatan si eyikeyi awọn ayipada ninu OpenShift 4.3.19, nitori ohun kanna ṣẹlẹ lori ẹya 4.3.18, eyiti o ṣiṣẹ tẹlẹ pẹlu Quay laisi awọn iṣoro eyikeyi.

O wa kedere ohun miiran ti o fi pamọ sinu iṣupọ naa.

Ẹ̀kúnrẹ́rẹ́ Ìkẹ́kọ̀ọ́

Quay.io lo awọn eto aiyipada lati sopọ si ibi ipamọ data fun ọdun mẹfa laisi awọn iṣoro eyikeyi. Kí ló yí padà? O han gbangba pe gbogbo akoko yii ijabọ lori quay.io ti n dagba ni imurasilẹ. Nínú ọ̀ràn tiwa, ó dà bí ẹni pé iye àbáwọlé kan ti dé, èyí tí ó ṣiṣẹ́ gẹ́gẹ́ bí ohun tí ń fa ọ̀pọ̀lọpọ̀ ìsopọ̀. A tẹsiwaju lati ṣe iwadi awọn iwe ipamọ data lẹhin ikuna keji, ṣugbọn a ko rii eyikeyi awọn ilana tabi awọn ibatan ti o han gbangba.

Lakoko, ẹgbẹ SRE ti n ṣiṣẹ lori awọn ilọsiwaju si akiyesi ibeere Quay ati ilera iṣẹ gbogbogbo. Awọn metiriki titun ati awọn dasibodu ti wa ni ransogun, Fifihan iru awọn ẹya ti Quay julọ ni ibeere lati ọdọ awọn alabara.

Quay.io ṣiṣẹ daradara titi di Oṣu kẹfa ọjọ 9th. Ni owurọ yii (EDT) a tun rii ilosoke pataki ninu nọmba awọn asopọ data data. Akoko yi ko si downtime, niwọn igba ti paramita tuntun ti ni opin nọmba wọn ati pe ko gba wọn laaye lati kọja igbejade MySQL. Sibẹsibẹ, fun bii idaji wakati kan, ọpọlọpọ awọn olumulo ṣe akiyesi iṣẹ ṣiṣe ti o lọra ti quay.io. A yarayara gba gbogbo data ti o ṣeeṣe nipa lilo awọn irinṣẹ ibojuwo ti a ṣafikun. Lojiji apẹrẹ kan farahan.

Ṣaaju ki iṣẹ abẹ ni awọn asopọ, nọmba nla ti awọn ibeere ni a ṣe si API Iforukọsilẹ Ohun elo. Iforukọsilẹ ohun elo jẹ ẹya ti a mọ diẹ ti quay.io. O gba ọ laaye lati tọju awọn nkan bii awọn shatti Helm ati awọn apoti pẹlu metadata ọlọrọ. Pupọ julọ awọn olumulo quay.io ko ṣiṣẹ pẹlu ẹya yii, ṣugbọn Red Hat OpenShift nlo ni itara. OperatorHub gẹgẹbi apakan ti OpenShift tọju gbogbo awọn oniṣẹ ni Iforukọsilẹ App. Awọn oniṣẹ wọnyi ṣe ipilẹ fun ilolupo ilolupo iṣẹ OpenShift ati awoṣe iṣiṣẹ aarin-alabaṣepọ (awọn iṣẹ ọjọ 2).

Iṣupọ OpenShift 4 kọọkan nlo awọn oniṣẹ lati inu OperatorHub ti a ṣe sinu rẹ lati ṣe atẹjade katalogi ti awọn oniṣẹ ti o wa fun fifi sori ẹrọ ati pese awọn imudojuiwọn si awọn ti a ti fi sii tẹlẹ. Pẹlu olokiki ti ndagba ti OpenShift 4, nọmba awọn iṣupọ lori rẹ ni ayika agbaye tun ti pọ si. Ọkọọkan awọn iṣupọ wọnyi ṣe igbasilẹ akoonu oniṣẹ lati ṣiṣẹ OperatorHub ti a ṣe sinu, ni lilo Iforukọsilẹ App inu quay.io bi ẹhin. Ninu wiwa wa orisun iṣoro naa, a padanu otitọ pe bi OpenShift ṣe n dagba diẹ sii ni gbaye-gbale, ẹru lori ọkan ninu awọn iṣẹ quay.io ti a ko lo ṣọwọn tun pọ si..

A ṣe diẹ ninu awọn itupalẹ ti ijabọ ibeere Iforukọsilẹ App ati wo koodu iforukọsilẹ naa. Lẹsẹkẹsẹ, awọn ailagbara ti han, nitori eyiti awọn ibeere si ibi ipamọ data ko ṣe agbekalẹ ni aipe. Pẹlu ẹru kekere wọn ko fa wahala, ṣugbọn bi ẹru naa ti pọ si wọn di orisun awọn iṣoro. Iforukọsilẹ ohun elo yipada lati ni awọn aaye ipari iṣoro meji ti ko dahun daradara si fifuye pọ si: akọkọ pese atokọ ti gbogbo awọn idii ni ibi ipamọ, ekeji da gbogbo awọn blobs pada fun package naa.

Imukuro awọn okunfa

Ni ọsẹ to nbọ a lo iṣapeye koodu ti Iforukọsilẹ Ohun elo funrararẹ ati agbegbe rẹ. Ni gbangba awọn ibeere SQL ti ko munadoko ni a tun ṣiṣẹ ati pe awọn ipe pipaṣẹ ti ko wulo ti yọkuro tar (o ti wa ni ṣiṣe ni gbogbo igba ti blobs a gba), caching ti a fi kun nibikibi ti o ti ṣee. Lẹhinna a ṣe idanwo iṣẹ ṣiṣe lọpọlọpọ ati ṣe afiwe iyara ti Iforukọsilẹ Ohun elo ṣaaju ati lẹhin awọn ayipada.

Awọn ibeere API ti o gba to idaji iṣẹju tẹlẹ ti pari ni milliseconds. Ni ọsẹ to nbọ a gbe awọn ayipada si iṣelọpọ, ati pe lẹhinna quay.io ti n ṣiṣẹ ni iduroṣinṣin. Lakoko yii, ọpọlọpọ awọn spikes didasilẹ wa ni ijabọ lori aaye ipari Iforukọsilẹ Ohun elo, ṣugbọn awọn ilọsiwaju ti ṣe idiwọ idiwọ data data.

Etẹwẹ mí plọn?

O han gbangba pe iṣẹ eyikeyi n gbiyanju lati yago fun akoko isinmi. Ninu ọran wa, a gbagbọ pe awọn ijade aipẹ ti ṣe iranlọwọ lati jẹ ki quay.io dara julọ. A ti kọ awọn ẹkọ pataki diẹ ti a yoo fẹ lati pin:

  1. Data nipa ẹni ti o nlo iṣẹ rẹ ati bawo ni ko ṣe jẹ superfluous. Nitori Quay “o kan ṣiṣẹ,” a ko ni lati lo akoko iṣapeye ijabọ ati iṣakoso fifuye. Gbogbo eyi ṣẹda ori aabo eke ti iṣẹ naa le ṣe iwọn titilai.
  2. Nigbati iṣẹ naa ba lọ silẹ, gbigba pada si oke ati ṣiṣiṣẹ jẹ pataki ti o ga julọ.. Nitori Quay tẹsiwaju lati jiya lati ibi ipamọ data titiipa lakoko ijade akọkọ, awọn ilana boṣewa wa ko ni ipa ti a pinnu ati pe a ko le mu iṣẹ naa pada nipa lilo wọn. Eyi yori si ipo kan nibiti akoko ni lati lo itupalẹ ati gbigba data ni ireti wiwa idi root - dipo idojukọ gbogbo awọn ipa lori mimu-pada sipo iṣẹ ṣiṣe.
  3. Ṣe iṣiro ipa ti ẹya iṣẹ kọọkan. Awọn alabara ṣọwọn lo Iforukọsilẹ Ohun elo, nitorinaa kii ṣe pataki fun ẹgbẹ wa. Nigbati diẹ ninu awọn ẹya ọja ko ni lilo, awọn idun wọn ṣọwọn han, ati pe awọn olupilẹṣẹ dawọ abojuto koodu naa. O rọrun lati ṣubu si airotẹlẹ pe eyi ni ọna ti o yẹ ki o jẹ-titi di lojiji pe iṣẹ naa yoo rii ararẹ ni aarin iṣẹlẹ pataki kan.

Ohun ti ni tókàn?

Iṣẹ naa lati rii daju pe iduroṣinṣin ti iṣẹ naa ko da duro ati pe a n ṣe ilọsiwaju nigbagbogbo. Bi awọn iwọn ijabọ n tẹsiwaju lati dagba lori quay.io, a mọ pe a ni ojuṣe lati ṣe ohun gbogbo ti a le lati gbe ni ibamu si igbẹkẹle awọn alabara wa. Nitorinaa, a n ṣiṣẹ lọwọlọwọ lori awọn iṣẹ ṣiṣe wọnyi:

  1. Ran awọn ẹda data kika-nikan ṣiṣẹ lati ṣe iranlọwọ fun iṣẹ naa lati mu ijabọ ti o yẹ ni iṣẹlẹ ti awọn iṣoro pẹlu apẹẹrẹ RDS akọkọ.
  2. Nmu imudojuiwọn apẹẹrẹ RDS kan. Awọn ti isiyi ti ikede ara ni ko ni isoro. Kàkà bẹẹ, a nìkan fẹ lati yọ awọn eke itọpa (eyi ti a tẹle nigba ikuna); Mimu sọfitiwia naa di oni yoo ṣe imukuro ifosiwewe miiran ni iṣẹlẹ ti awọn ijade ọjọ iwaju.
  3. Afikun caching kọja gbogbo iṣupọ. A tesiwaju lati wa awọn agbegbe nibiti caching le dinku fifuye lori aaye data.
  4. Ṣafikun ogiriina ohun elo wẹẹbu kan (WAF) lati rii tani n sopọ si quay.io ati idi.
  5. Bibẹrẹ pẹlu itusilẹ atẹle, awọn iṣupọ Red Hat OpenShift yoo kọ Iforukọsilẹ Ohun elo silẹ ni ojurere ti Awọn iwe akọọlẹ oniṣẹ ti o da lori awọn aworan apoti ti o wa lori quay.io.
  6. Rirọpo igba pipẹ fun Iforukọsilẹ Ohun elo le jẹ atilẹyin fun Ṣii Apoti Initiative (OCI) awọn pato artifact. O ti wa ni imuse lọwọlọwọ bi iṣẹ abinibi Quay ati pe yoo wa fun awọn olumulo nigbati sipesifikesonu funrararẹ ba ti pari.

Gbogbo awọn ti o wa loke jẹ apakan ti Idoko-owo Red Hat ti nlọ lọwọ ni quay.io bi a ṣe nlọ lati ẹgbẹ kekere "ibẹrẹ-ibẹrẹ" si ipilẹ-iwakọ SRE ti o dagba. A mọ pe ọpọlọpọ awọn onibara wa gbẹkẹle quay.io ni iṣẹ ojoojumọ wọn (pẹlu Red Hat!) Ati pe a gbiyanju lati wa ni gbangba bi o ti ṣee nipa awọn ijade laipe ati awọn igbiyanju ti nlọ lọwọ lati ni ilọsiwaju.

PS lati onitumọ

Ka tun lori bulọọgi wa:

orisun: www.habr.com

Fi ọrọìwòye kun