Quomodo nos apud CIAN terabytes lignorum edomitos?

Quomodo nos apud CIAN terabytes lignorum edomitos?

Salve omnes, nomen meum Alexander est, in CIAN architectus laboro et in administratione ratiocinatione et automatione processuum infrastructurae implicatus sum. In commentarios ad unum priorum articulorum, quaesiti sumus ut diceremus ubi 4 TB stipendiorum per diem obtinemus et quid cum illis agimus. Etiam ligna multa habemus, et racemus infrastructus separatus creatus est ad eas processuras, quae nobis permittit ut celeriter quaestiones solvantur. Dicam in hoc articulo quomodo per anni circulum adaptavimus ad operandum cum incremento notitiarum insatiabili.

Ubi incipimus?

Quomodo nos apud CIAN terabytes lignorum edomitos?

Super hos paucos annos, sarcina in cian.ru celerrime crevit, et ad tertiam quartam partem 2018, mercaturae resource 11.2 decies centena millia usorum singularium per mensem attigit. Illo tempore in temporibus dubiis usque ad 40% lignorum amisimus, unde cito res agere non potuimus et multum temporis et laboris solvendis consumpsimus. Saepe etiam causam dubitationis invenire non potuimus, et post aliquod tempus recurreremus. Infernum erat, et de eo aliquid faciendum erat.

Illo tempore nodorum notitiarum elasticarum cum versione ElasticSearch 10 botrus usi sumus cum indice uncinorum ad tigna conferenda. Plus quam annus abhinc introductum est sicut solutio vulgaris et parabilis: tunc non tam magnae copiarum fluxus erat, nullum punctum in ascendendo cum figurationibus non-extritis. 

Processus iniuriarum advenientium provisum est a Logstash in diversis portibus in quinque coordinatoribus ElasticSearch. Unus index, pro magnitudine, quinque shards constabat. Horula et quotidiana gyratio ordinata est, unde circiter 100 nova shards in botro singulis horis apparuerunt. Cum non essent multae tigna, botrus bene copevit et nemo eius uncinis operam attendit. 

Provocationes celeri incrementi

Volumen lignorum generatorum celerrime crevit, ut duo processus inter se conniverent. In altera parte, crevit numerus utentium ministerii. Contra, architecturae parvae servitii strenue flectere coepimus, veteres monolithos in C# et Pythone conspicantes. Multae duodecim microform novae quae partes monolithi repositae sunt signanter plura genera pro botro infrastructure. 

Ascendebat ut nos eo duceret ubi botrus intractabilis paene factus est. Cum ligna ad minimum viginti milia nuntii per alterum pervenire coeperunt, gyratio crebra inutilis multiplicavit numerum shardorum ad 20 milia, et plus quam 6 shardorum per nodes erant. 

Inde ad problemata cum destinatio RAM, et cum nodi concrepuit, omnes shards simul movere coeperunt, negotiationes multiplicantes et nodi onerantes alias, quae notitias botri scribere vix posse effecit. Atque hoc tempore sine lignis relicti sumus. Et si quaestio erat cum servo, plerumque 1/10 botri amissi sumus. Magnum opusculum indices multiplicitate adiectis.

Sine tigna, rationes incidentis non comprehendebamus ac citius aut serius ingredi possemus in eadem sarculo, et in ideologia bigae nostrae hoc ingratum fuit, quandoquidem omnes nostri laboris machinationes ad contrarium faciendum ordinantur - numquam iteramus. ejusdem questiones. Ad hoc opus plenum volumen lignorum et partus fere tempore reali indigemus, cum iunctio fabrum officiorum vigilantium non solum ex metris, sed etiam ex lignis. Ad problema problema intelligendum, tunc totum volumen lignorum erat circa 2 TB per diem. 

Propositum constituimus ut ligna funditus tollantur et tempus partus ELK ad botrum ELK minuendum ad maximum 15 minutarum per vim maiorem (postea in hac figura internam KPI fudimus).

Nova gyratio mechanismi et nodis calidis calidis

Quomodo nos apud CIAN terabytes lignorum edomitos?

Botrus conversionem incepimus per versionem elasticam innovando ab 5.5.2 ad 6.4.3. Semel iterumque in versione nostra 5 botrus mortuus est, et nos decrevimus vertere eam ac penitus renovare - nulla adhuc sunt acta. Itaque hunc transitum duobus horis modo fecimus.

Amplissima mutatio huius temporis fuit Apache Kafka exsecutio super tribus nodis cum coordinatore quasi quiddam medium. Nuncium sectorem nos salvavit de lignis amissis in quaestionibus cum ElasticSearch. Eodem tempore tres nodos 2 nodos ad botrum accessimus et architecturae calidae calidae cum tribus nodis "calidis" in diversis eculeis in centrum datae locatis. Tigna redirectedi eis larva utentes, quae nullis adiunctis amittentur - nginx, nec non applicationes tabularum errorum. Minores trabes ad reliquas nodos - lusione, monitione, etc. missae sunt, et post 24 horas, trabes e nodis "calidis" translatae sunt.

Ut numerus indices minutorum non augeatur, ex tempore rotationis ad machinam volvi mutandam sumus. Multum notitiarum in fora quae rotatio per indicem amplitudo valde dubia est, ideo per numerum documentorum in indice gyrationis uti decrevimus. Unumquodque indicem exposuimus et numerum documentorum notavimus, postquam gyratio laborare debet. Sic ad optimam magnitudinem testae perventum est - non plus quam 50 GB. 

Botrus ipsum

Quomodo nos apud CIAN terabytes lignorum edomitos?

Attamen problemata prorsus non eliduntur. Infeliciter, indices parvi adhuc apparuerunt: volumen determinatum non attigerunt, non rotati sunt, et per global purgationem indices triduo antiquiorem deleti sunt, cum gyrationem ad tempus removimus. Inde ad damna data ob id quod index e botro perfecte evanuit, et conatum ad indicem scribendum in non existentibus solvebat logicam curatorem, quem ad administrationem adhibebamus. Alias ​​scripturae in indicem conversa est et logicam volvendam solvit, cum intemperanter auctus aliquot indices usque ad 600 GB. 

Exempli gratia, rotationis config;

сurator-elk-rollover.yaml

---
actions:
  1:
    action: rollover
    options:
      name: "nginx_write"
      conditions:
        max_docs: 100000000
  2:
    action: rollover
    options:
      name: "python_error_write"
      conditions:
        max_docs: 10000000

Si non fuit rollover alias, error occurrit;

ERROR     alias "nginx_write" not found.
ERROR     Failed to complete action: rollover.  <type 'exceptions.ValueError'>: Unable to perform index rollover with alias "nginx_write".

Solutio huius problematis relinquimus iteratione proximae et aliam quaestionem sustulimus: commutavimus ad logicam Logstash trahendam, quae processus ineuntes trabes (retractantes superfluas informationes et locupletantes). Illud in navale posuimus, quod per compositionem scelestum deducimus, et etiam ibi exportatorem constituimus, qui metrica ad Prometheum mittit ad vigilantiam ligni torrens perficiendi. Hoc modo occasionem nobis praebuimus ad numerum instantiarum logtarum mutandi, quae ad singulas species stipes expediendas.

Dum botrum emendamus, negotiatio cian.ru aucta est ad 12,8 decies centena millia usorum singularium per mensem. Quam ob rem evenit ut paulo post mutationes productionis nostrae transmutationes essent, et obvium erat quod nodi "calidi" onere tolerare non poterant ac totam stipendiorum traditionem retardarunt. Data sine defectibus "calidum" accepimus, sed intercedere debebamus in reliquorum traditione et volvulum manuale facere ut indices aequaliter distribuerent. 

Eodem tempore, scalae et variae instantiae logstashorum in botro perplexa, eo quod erat compositio localis, et omnes actiones manuales fiebant (ad novos fines addere, necesse erat ut manually per omnes abiret. servientes et docker-componere -d ubique).

Log discrimen aliquod

Mense Septembri huius anni adhuc monolithum secandum eramus, onus in botro augebatur et cursus lignorum XXX milia nuntii secundi per appropinquabat. 

Quomodo nos apud CIAN terabytes lignorum edomitos?

Proxima iteratio cum ferramentis renovatio coepimus. Nos ex quinque coordinatoribus ad tres notas notas repositas commutavimus et secundum spatium pecuniae et spatii reponendi vicimus. Nodis enim duabus conformationibus utimur: 

  • Pro nodis calidis: E3-1270 v6 / 960Gb SSD / 32 Gb x 3 x 2 (3 pro Hot1 et 3 pro Hot2).
  • Nodi enim "calidi": E3-1230 v6/4Tb SSD / 32 Gb x4.

In hac iteratione indicem cum accessu lignorum microserviorum movimus, quod idem spatium ac ante-linea nginx lignorum excipit, ad secundum nodis trium "calidum". Nunc notitias nodos "calidi" per XX horas condimus, eosque ad nodos "calidos" ad reliqua ligna transfermus. 

Problema minutorum indices evanescentes per gyrationem suam reconfigurando solvimus. Nunc indices volvantur singulas 23 horas quoquo modo, etiamsi parum ibi datae sint. Hoc numerum shardorum leviter auxit (ex his circiter 800 erant), sed e parte botri perficiendi tolerabile est. 

Quam ob rem sex erant "calidi" et tantum quattuor nodi "calidi" in botro. Haec parvam moram in petitionibus per longa tempora facit, sed numerus nodis augens in futuro problemate solvet.

Haec iteratio problema etiam semi-automaticae scalae defectus statuit. Ad hoc faciendum, botrum Nomadum infrastructurae explicavimus - simile quid in productione iam perreximus. Nunc enim moles Logstash non sponte mutatur in onere, sed ad hoc veniemus.

Quomodo nos apud CIAN terabytes lignorum edomitos?

Consilia pro futuro

Squamae figurae perfecte impletae sunt et nunc 13,3 TB condimus notitiarum - omnia ligna per 4 dies, quae necessaria sunt ad analysin summorum necessaria. Tigna quaedam in metricos convertimus, quas Graphite addimus. Ut opus fabrum facilius efficiat, metrica habemus pro botro infrastructura et scriptoribus pro semi-automatica communium problematum reparatione. Post numerum nodis notarum auctum, qui in annum proximum ordinatur, notitias repositionis ab 4 ad 7 dies commutabimus. Hoc satis erit ad opus perficiendum, cum semper incidentes quam primum investigare conemur, et per longi temporis inquisitiones telemetria data sunt. 

Mense Octobri 2019, mercatura cian.ru iam crevit ad 15,3 miliones usorum singularium per mensem. Hoc grave experimentum factum est solutionis architecturae ad omnia tradenda. 

Nunc paramus ElasticSearch ad versionem renovare 7. Hoc tamen innovare debebimus tabularum plurium indices in ElasticSearch, quia e versione 5.5 movebantur et in versione 6 deprecati declarati sunt (modo non sunt in versione. 7). Hoc significat quod in renouatione processum certum erit quaedam vis maior, quae nos sine tigna relinquet dum lite resolvitur. De versionis 7, maxime exspectamus Kibana cum instrumento emendato et novas filteras. 

Praecipuum propositum nostrum consecuti sumus: ligna amissis cessavimus et tempus botri infrastructuræ ab 2-3 ruinis per hebdomadam ad duas horas operis per mensem sustentationis redacti sumus. Totum hoc opus in productione paene invisibile est. Sed nunc exacte determinare possumus quid cum servitio nostro aguntur, celeriter facere possumus in modo quieto et non solliciti ne ligna peribunt. In genere sumus contenti, laeti ac parati ad res novas, de quibus postea dicemus.

Source: www.habr.com

Add a comment