Post Mortem in Quay.io unavailability

Nota. transl.Initio Augusti, Red Hat publice solutionem problematum accessibilitatis nuntiavit, quae ab usoribus servitii sui mensibus praecedentibus expertae erant. Quay.io (Fundatur in registro imaginum receptaculorum, a societate acquisito cum acquisitione CoreOS.) Quamvis tibi hoc servitio per se interesse sit, via quam ingeniarii SRE societatis ad causam defectus diagnosticandam et solvendam ceperunt utilis est.

Post Mortem in Quay.io unavailability

Die XIX mensis Maii, mane primo (hora orientali), ministerium quay.io defecit. Interruptio et clientes quay.io et incepta fontis aperti, quae quay.io ut suggestum ad programmata construenda et distribuenda utuntur, affecit. Red Hat utriusque fiduciam magni aestimat.

Turma machinatorum SRE statim in actionem prorupit et operam dedit ut servitium Quay quam celerrime stabiliret. Attamen, dum hoc faciebant, clientes novas imagines promovere non poterant et tantum existentes interdum extrahere poterant. Ob causam nescioquam, database quay.io obstructa est postquam servitium ad plenam capacitatem amplificatum est.

«Quod mutata?" est prima quaestio quae plerumque in talibus casibus proponitur. Animadvertimus paulo antequam difficultas orta est, gregem OpenShift Dedicated (qui quay.io currit) ad versionem 4.3.19 renovari coepisse. Cum quay.io in Red Hat OpenShift Dedicated (OSD) currat, renovationes regulares consuetae erant nec umquam ulla problemata causabant. Praeterea, per sex menses proximos, greges Quay pluries sine ulla interruptione servitii renovavimus.

Dum servitium restituere conabamur, alii ingeniarii novum gregem OSD cum versione priori programmatis parare coeperunt, ut omnia, si opus esset, in eum transferre possent.

Analysis causae fundamentalis

Praecipuum indicium interruptionis fuit inundatio decem milium nexuum datorum, quae exemplum MySQL paene inoperabilem reddidit. Haec res difficilem reddidit in diagnosi problematis. Maximum limitem nexuum clientium statuimus ut turmae SRE adiuvaremus problema aestimare. Nulla insolita negotiatio datorum observata est: re vera, pleraeque petitiones erant solae lectionis, paucis tantum scriptionis.

Etiam conati sumus exemplar in commeatu datorum invenire quod hanc nivium nivium causam habuisse posset. Nihilominus, nulla exempla congruentia in actis invenire potuimus. Dum novum gregem cum OSD 4.3.18 paratum exspectabamus, conamur quay.io pods incipere. Quotiescumque grex plenam capacitatem attingebat, datorum database congelabat. Hoc significabat nos instantiam RDS denuo incipere debere praeter omnes quay.io pods.

Vesperi, servitium in modum "only read" stabilivimus et quam plurimas functiones non necessarias (velut collectionem quisquiliarum ex spatio nominum) inactivavimus ut onus in basi datorum minueretur. Congelationes cessaverunt. sed causa numquam inventa estNovus grex OSD paratus erat, et servitium migravimus, commeatum coniunximus, et observationem continuavimus.

Quay.io in novo grege OSD sine difficultate currebat, itaque ad acta datorum revertimus, sed correlationem invenire non potuimus quae impedimenta explicaret. Ingeniarii OpenShift nobiscum collaborabant ut determinarent num mutationes in Red Hat OpenShift 4.3.19 problemata Quay causare potuissent. Nihil tamen inventum est, et... Problema in condicionibus laboratorium reproducere non potuit..

Secundus defectus

Die XXVIII mensis Maii, paulo ante meridiem tempore orientali (EDT), quay.io iterum eodem signo concidit: basis datorum obstructa erat. Iterum, omnes vires nostras in investigationem direximus. Primum gradum erat servitium restituere. Attamen, Hoc tempore, RDS denuo incipere et quay.io pods denuo incipere non profuerunt.Alia conexionum multitudo basim datorum obruit. Sed cur?

Quay Python lingua scriptum est, et unumquodque pod ut unum receptaculum monolithicum operatur. Tempus executionis receptaculi plura officia parallela simul perficit. Bibliotheca utimur. gevent sub gunicorn Ad petitiones interretiales tractandas. Cum petitio in Quay venit (per nostram API vel Docker API), operarius gevent ei assignatur. Typice, hic operarius cum basi datorum coniungi debet. Post primum casum, invenimus operarios gevent cum basi datorum coniungi utentes optionibus praedefinitis.

Ob magnum numerum "Quay pods" et milia petitionum advenientium per secundum, magnus numerus conexionum basis datorum theoretice instantiam MySQL superare posset. Monitoratio ostendit Quay mediocris quinque milia petitionum per secundum tractasse. Numerus conexionum basis datorum etiam fere idem erat. Quinque milia conexionum plus erat quam intra facultates instantiae nostrae RDS (quamquam decem milia non erant). Ob nescioquam causam, inexpectatae fuerunt auctus in numero nexuum., tamen, nullam correlationem cum petitionibus advenientibus animadvertimus.

Hoc tempore, statuimus fontem problematis invenire et corrigere, potius quam simpliciter computatrum denuo incipere. In codice Quay. Mutationes factae sunt ad numerum conexionum ad basim datorum pro singulis operariis limitandum. gevent. Hic numerus factus est parametrus configurationis, quo fit ut mutatio eius ex tempore sine nova imagine receptaculi aedificanda sit. Ad numerum connexionum possibilem determinandum, plura experimenta in ambitu scaenico peracta sunt, cum valoribus diversis constitutis ad videndum quomodo hoc scenaria probationis oneris afficeret. Tandem inventum est... Quay errores 502 iacere incipit cum numerus nexuum decem milia excedit.

Statim hanc novam versionem in productionem emisimus et graphum nexuum basis datorum observare coepimus. Antehac, basis datorum post circiter viginti minuta claudebatur. Post triginta minuta sine problemate, spem habere coepimus, et hora post, confidentes. Frequentias scribendi ad situm restituimus et analysin post mortem incepimus.

Cum difficultatem quae ad obstructionem ducit praeterire potuisset, veras causas eius nondum intelleximusConfirmatum est rem nullam cum ullis mutationibus in OpenShift 4.3.19 pertinere, cum idem in versione 4.3.18 acciderit, quae antea cum Quay sine ullis difficultatibus operata erat.

Aliquid aliud manifeste in grege latebat.

Studium accuratum

Quay.io per sex annos configurationes connexionis basis datorum implicitas sine ullis difficultatibus usus est. Quid mutatum est? Manifeste, commeatus ad quay.io per hoc tempus constanter creverat. In nostro casu, videbatur quasi limen quoddam attingi, magnum nexuum inundationem excitans. Post secundam interruptionem, acta basis datorum examinare perreximus, sed nullas similitudines aut correlationes manifestas invenimus.

Interea, turma SRE in emendationibus observabilitatis petitionum Quay et valetudinis generalis servitii laboravit. Novae mensurae et tabulae instrumentorum dispositae sunt., ostendens quae partes Quay maxime a clientibus exigantur.

Quay.io usque ad diem nonum Iunii normaliter operabatur. Hodie mane (EDT), iterum incrementum magnum in conexionibus basis datorum vidimus. Hoc tempore nulla otium fuit...cum novus parameter numerum eorum restringeret et MySQL impedivisset ne suam capacitatem excederet. Attamen, per dimidiam horam fere, multi usores quay.io tarditatem rettulerunt. Celeriter omnia data possibilia instrumentis monitoriis additis collegimus. Subito, exemplum apparuit.

Paulo ante incrementum connexionis, magnus numerus petitionum ab API App Registry accepta est."App Registry" (Registrum Applicationum) parum nota est proprietas quay.io. Permittit tibi res sicut chartas Helm et receptacula cum locupletibus metadatis reponere. Plerique usores quay.io hac proprietate non utuntur, sed Red Hat OpenShift eam active adhibet. OperatorHub, pars OpenShift, omnes operatores in "App Registry" reponit. Hi operatores fundamentum systematis operis OpenShift et exemplaris operandi in sociis intenti (ut pars operationum Diei Secundi) constituunt.

Quisque grex OpenShift 4 operatoribus ex OperatorHub incluso utitur ad catalogum operatorum ad institutionem praesto publicandum et ad emendationes iis qui iam installati sunt praebendas. Cum popularitas OpenShift 4 crevit, etiam numerus gregum eum toto orbe terrarum currentium crevit. Quisque horum gregum contenta operatoris deponit ad OperatorHub incluso currendum, Registro Applicationum intra quay.io utendo utens. Dum fontem problematis quaerebamus, praeterivimus quod, cum popularitas OpenShift paulatim cresceret, etiam onus in una ex functionibus quay.io raro adhibitis crevit..

Aliquid analyseos petitionum ab App Registry perfecimus et in codicem registri investigavimus. Statim vitia deteximus quae interrogationes suboptimales in basi datorum causabant. Sub levi onere, haec problema non erant, sed crescente onere, fons difficultatum fiebant. App Registry duos fines problematicos habebat qui male ad auctum onus respondebant: primus indicem omnium fasciculorum in repositorio reddidit, secundus autem omnes maculas fasciculi reddidit.

Causas eliminando

Proximam hebdomadam in codice ipsius App Registry eiusque ambitu optimizando consumpsimus. Quaestiones SQL manifeste inefficaces refacimus et invocationes mandatorum superfluas eliminavimus. tar (quotiescumque massa recuperata est, currebatur), et memoria celata, ubicumque fieri potuit, addita est. Deinde, probationes perfunctionis amplae peractae sunt, comparantes perfunctionem Registri Applicationum ante et post mutationes.

Petitiones API quae antea usque ad dimidium minutum requirebant, nunc intra millisecunda perficiebantur.Mutationes in productionem proxima hebdomade divulgavimus, et quay.io ex eo tempore stabile currit. Hoc tempore, aliquot impetus frequentiae in termino Registri Applicationum experti sumus, sed emendationes interruptiones basis datorum prohibuerunt.

Quid didicimus?

Intellegitur cur quodvis ministerium conetur vitare tempus inoperabile. In nostro casu, credimus recentes interruptiones quay.io meliorem reddere adiuvisse. Plures lectiones magni momenti didicimus quas communicare velimus:

  1. Data de eo qui servitio tuo utitur et quomodo numquam perduntur.Quia Quay "simpliciter operabatur," numquam tempus in optimizatione commeatus et administratione oneris impendere debuimus. Hoc falsam sensum securitatis creavit, quasi ministerium in infinitum amplificari posset.
  2. Cum ministerium deficiat, Restitutio operationis eius est summa prioritasQuia Quay per primam interruptionem ob clausuram datorum continuabat, rationes nostrae consuetae effectum optatum non producere potuerunt, et eis servitium restituere non potuimus. Hoc ad condicionem perduxit ubi tempus impendere debuimus analysin et collectionem datorum spe inveniendi causam principalem, potius quam omnes vires nostras in restituenda servitio intendere.
  3. Aestima effectum cuiusque functionis servitiiClientes raro App Registry utebantur, itaque non erat prioritas nostrae turmae. Cum quaedam producti functiones raro adhibentur, errores raro apparent, et opifices codicem observare desinunt. Facile est falsae opinioni incidere quasi res ita se habeant — donec illa functio subito in centrum gravis casus fiat.

Quid deinde?

Stabilitatem servitii curare est labor continuus, et id perpetuo emendamus. Frequentia commeatus in quay.io pergit crescere, et agnoscimus nos omnia facere debere ut fiduciam clientium nostrorum mereamus. Ideo, in his operibus nunc laboramus:

  1. Exemplaria basis datorum solae lectionis destina, ut ministerium adiuvet ad negotiationem solae lectionis tractandam si quid problematis cum instantia RDS primaria oriatur.
  2. Exemplar RDS renovatur. Ipsa versio praesens problema non est. Potius, simpliciter errorem (quem interruptione secuti sumus) eliminare volumus; programmata ad diem servando alium elementum in casu interruptionum futurarum eliminabimus.
  3. Celatio per totum gregem addita. Pergimus explorare areas ubi celatio onus basis datorum minuere potest.
  4. Murus ignis applicationis interretialis (WAF) addens ut videamus quis cum quay.io connectitur et cur.
  5. A proxima versione incipiens, greges Red Hat OpenShift Registrum Applicationum (App Registry) obsolebunt, Catalogis Operatorum (Operator Catalogs) innixi imaginibus receptaculorum in quay.io praesto.
  6. Substitutio diuturna pro App Registry potest esse subsidium pro specificationibus artefactorum Open Container Initiative (OCI). Hoc nunc ut functio nativa in Quay implementatur et usoribus praesto erit postquam ipsa specificatio perfecta erit.

Omnia supradicta pars sunt continuae pecuniae collocatae a Red Hat in quay.io, dum a parva turma quasi novae societatis ad maturam suggestum a SRE administratum transimus. Scimus multos clientes nostros in quay.io in opere cotidiano niti (Red Hat inclusa!) et nos obligamus ad quam maxime perspicuos de recentibus interruptionibus et continuis conatibus ad emendandum.

PS ab translator

Lege etiam in nostro diario:

Source: www.habr.com

Emptum certos hospites pro locis cum praesidio DDoS, VPS VDS servers 🔥 Eme hospitium interretiale fidum cum praesidio DDoS, servitores VPS VDS | ProHoster