A rollout historia quae affectus omnia

A rollout historia quae affectus omnia
Hostes re vera by 12f-2

In fine mensis Aprilis, dum White Walkeri Winterfell obsidebant, plus interesting nobis accidit, nos insolitum rollout. In principio, continuo novas lineas in productionem volvimus (sicut ceteri omnes). Sed id varius erat. Scala talis erat ut quaevis errata potentialis quae facere possemus omnia officia et usores nostros afficerent. Quam ob rem omnia secundum consilium evolvit, intra tempus temporis designatum et annuntiatum, sine consequentibus venditarum. Articulus est quomodo hoc assecuti sumus et quomodo quisque id domi repetere potest.

Nunc non dicam decisiones architecturae et technicae quomodo omnia opera fecerimus aut indicabo. Hae notae potius in marginibus sunt quomodo unus evolutionum difficillimarum fiebat, quas observavi et in quibus directe incidimus. Absolutionem vel technicam notionem non peto, fortasse in alio articulo apparebit.

Background + qualis est haec functionis?

Nos nubem platform aedificationem Mail.ru Cloud Solutions (MCS), ubi laboro ut director technicus. Nunc tempus est IAM (Identity and Access Management) nostro suggestu addere, quod una administratio omnium rationum usorum, usorum, passwords, munerum, muneris ac plurium praebet. Cur opus sit in nube, quaestio evidens est: omnia usorum informationes in ea condita sunt.

Talia fere incipiunt edificari in primordio cuiuslibet inceptorum. Sed res historice in MCS paulo diversae fuerunt. MCS in duas partes aedificata;

  • Openstack cum Keystone auctoritatis modulo suo,
  • Hotbox (S3 repono) in Mail.ru Cloud project,

circa quae nova officia tunc apparuerunt.

Essentialiter haec duo diversa genera auctoritatis erant. Plus incrementis Mail.ru distinctis usi sumus, exempli gratia, repositio tesserae generalis Mail.ru, necnon iungo openid auto-scriptorum, quibus SSO (ad finem auctoritatis finis) in tabula Horizontis provisum est. machinis virtualis (native OpenStack III).

Faciens IAM nobis significavit omnia connectere in unam rationem, omnino nostram. Simul, non aliquam functionem in via amittemus, sed fundamentum dabimus in futurum quod sinit nos perlucidum illud expolire sine reac- tione et in terminis functionis scandere. Etiam in initio, utentes munus exemplar habebant accessum ad officia (RBAC centralis, munus substructio accessus moderandi) et quaedam alia parva.

Negotium evasit non-triviale: python et perl, complures backends, independenter opera scripta, plures iunctiones evolutionis et admins. Maximeque sunt milia utentium in certamine productionis ratio. Haec omnia scribi oportuit ac praesertim sine volneribus evolvi.

Quid ergo dicemus ad evolvere?

Id ut durissime ponatur, circa 4 menses sequentis paravimus;

  • Novos daemones complures creavimus qui munera aggregata quae antea in diversis infrastructuris partibus laboraverunt. Caetera servitia nova praescripta sunt in horum daemonum formam backend.
  • Tabularium centrale nostrum Tesserae et clavium scripsimus, prompta ad omnia officia nostra, quae libere immutari possunt sicut opus est.
  • Novos backends scripsimus pro Keystone a VULNUS (usores, incepta, munerum, partes, assignationes), quae re vera eius database substituerunt, et nunc unum repositum agit pro nostris usoribus passwords.
  • Omnia officia nostra Openstack nos docuimus ut ad tertiam partem consiliorum servicium adiremus pro eorum agendi ratione legendi has rationes localiter ab unoquoque servo (sic, quod Openstack operatur per defaltam!)

Talis maior rework postulat magnas, implicatas et, praesertim, synchronas mutationes in pluribus systematibus a diversis iunctionibus evolutionis scriptis. Postquam convenerunt, tota ratio operari debet.

Quomodo evolvere tales mutationes et non cochleae illud? Primum paulo in posterum prospicere decrevimus.

Rollout strategy

  • Fieri posset ut pluribus gradibus evolvatur, sed hoc per ter evolutionem augeatur. Praeterea per aliquod tempus integram descriptionem notitiarum in databases habere volumus. Scribere te oportet instrumenta synchronisationi tuae et cum multiplicibus thesauris diu vivere. Et hoc periculorum varietatem gignit.
  • Omnia, quae praeparari possunt perlucide ad utentis fiebant. Accepit menses II.
  • Nos per aliquot horas tempus downtime permisimus - tantum operationibus usorum ad facultates creandas et mutandas.
  • Operatio enim omnium facultatum iam creatarum ingratum fuit tempus. Propositum est ut in rollout, facultates sine down tempore laborare et clientium afficere deberent.
  • Ictum in clientibus nostris reducere si quid siet, die dominico vesperi evolvere decrevimus. Pauciores clientes virtualis machinis noctu administrant.
  • Omnes clientes nostros monuimus ut per periodum rollout delecti, administratio muneris unavailable erit.

Digressio: quid est rollout?

<causa, philosophia>

Omnis artifex IT facile respondere potest quid sit rollout. CI/CD instituis, et omnia sponte copia tradita sunt. πŸ™‚

Scilicet hoc verum est. Sed difficultas est quod in moderno codice instrumentorum traditionis automationis, intellectus ipsius rollout amittitur. Quomodo oblivisceris epicness inventionis rotae, cum recentem onerariam spectamus. Omnia ita automated sunt ut rollout sine imagine totae imaginis intellectum saepe peractum sit.

Tota autem imago talis est. Rollout in quattuor partibus maioris constat;

  1. Codicis traditio, inter notitia modificationis. Ad exemplum earum migrationum.
  2. Codicis reverti facultas est regredi si quid siet. Ut per tergum creando.
  3. Tempus cuiusque rollout/revertendi operationem. Cuiuslibet operationis primo duo oportet intelligere sincere.
  4. functionality affectata. Necesse est aestimare effectus negativos tam expectatos positivos et possibilis.

Haec omnia ratio habenda est pro rollout prospere. Solo primo, vel maxime secundo, punctum aestimatur, et tunc prosperitas habetur rollout. Sed tertius et quartus magis sunt. Uter placet si rollout III horas pro minutam tulit? Aut si quid supervacuum in rollout patitur? An tempus unius officii ad vagus consequat?

Act 1..n, praeparatio ad remissionem

In primis conventus nostros breviter describere cogitabam: tota manipulus, partes, acervi disputationum ad capulus puncta, argumenta, probationes, interitus. Tunc supervacaneum esse duxi. Quattuor menses evolutionis semper in hoc constant, praesertim cum non aliquid scribens quod constanter tradi possit, sed unum magnum momentum ad rationem vivam pertinens. Quae omnia officia afficit, at nihil usoribus mutandum est nisi "una bulla in instrumento interreti."

Intellectus noster quomodo evolvam ab unoquoque novo conventu mutatus est et satis significanter. Exempli gratia, totam nostram datorum osculantem renovaturi eramus. Sed tempus computavimus et intelleximus quod impossibile erat hoc facere in rationabili rollout tempore. Nos fere extra hebdomadam accepit ut exosculatio et in archivo database. Et cum celeritas rollout expectata adhuc non satisfaceret, praeterea ferramenta potiora, ubi basis tota trahebatur, imperavimus. Quod citius facere noluimus, non est, sed necessitas currenti evolvere nos sine optione reliquit.

Cum aliquis ex nobis dubitaret quod evolvere posset affectabilitas virtualis machinae nostrae, peragimus octo experimenta, experimenta, codicem analysin et luculentum intellectum accepimus quod hoc in productione nostra non accideret, et etiam maxime dubii homines consenserunt. cum hoc.

Interea guys ex subsidio technico sua experimenta independentia egerunt ut instructiones clientium de connexione methodorum scribere, quae post rollout mutare putabantur. In usuario UX laboraverunt, instructiones praeparaverunt et consultationes personales comparaverunt.

Nos automated omnes operationes rolloutes quae possibiles erant. Omnis operatio scripta est, etiam simplicissima, et probationes constanter currunt. Optime disseruerunt de servitio avertendi, - omittunt daemonem vel clausuram accessum ad ministerium cum firewall. Genus iunctorum in singulis stadiis rollout creavimus et constanter renovavimus. Nos in omne opus rollouti, cum timings, traximus ac constanter renovavimus a Gantt chart.

Itaque…

Actus finalis, antequam devolvitur

... tempus est evolvere.

Artis opus, ut aiunt, perfici non potest, sed solum in eo opus perfectum est. Conatum voluntatis habes, intelligens te omnia non invenire, sed omnia rationabilia suppositiones te fecisse, omnibus casibus possibilibus instructis, omnes cimices criticos clausisti, omnesque participes fecerunt omnia quae poterant. Quo magis codicem evolvis, eo difficilius est hoc tibi persuadere (praeter omnes intelligat impossibile esse omnia praevidere).

Statuimus nos parati esse evolvi cum persuasum habemus omnia fieri posse ut omnia pericula pro nostris utentibus inopinatis affectibus ac downtime coniungantur. Hoc est, errare quicquam potest nisi;

  1. Usorem infrastructuram (sacram nobis, pretiosissimam) affect;
  2. Munus: usus servitii nostri post rollout idem esse debet ac ante.

Rolling out

A rollout historia quae affectus omnia
Duo volumine, 8 non impedit

Tempus medium accipimus pro omnibus petitionibus ab usoribus pro 7 horis. Hoc tempore consilium habemus et evolutionem et consilium reverti.

  • Ipse rollout circiter 3 horas accipit.
  • II horas ad probandum.
  • II horas - subsidia pro possibili reverti mutationum.

A Gantt chart ad singulas actiones instructa est, quousque capiat, quid successiue fiat, quid in parallelis fiat.

A rollout historia quae affectus omnia
Pars rollout Gantt chart, una e codicibus veterum (sine parallelo executione). Pretiosissimum Synchronisation Mors

Omnes participes partes suas in rollout constitutas, quae operae faciunt, quidve responsales habent. Conamur singulos scaenicos ad automaticitatem deducere, evolve, revolvere, colligere opiniones et iterum evolvere.

Annales rerum

Itaque, XV homines ad operandum sub die 15 Aprilis, hora 29 post meridiem. Praeter clavem participes, quidam simpliciter ad equos sustentandos venerunt, pro quibus speciales gratias illis habuerunt.

Etiam memorabile est testem nostrum clavis feriatum esse. Impossibile est evolvi sine probatione, optiones exploramus. Collegium consentit nos ab vacatione probare, ob quam immensam gratiam ab universo manipulo accipit.

00:00. prohibere
Nos in usorum petitionibus insistimus, signum suspendimus dicentes opus technicum. Magna clamoribus, sed omnia normalia. Reprehendimus nihil aliud cadere quam quod cadere putabatur. De migrationibus et operibus incipimus.

Suae quisque consilii punctum impressum habet in volvendo, quisque scit quis quid et quo tempore faciat. Post quamlibet actionem reprimimus timiones ut eas non excedant, et omnia secundum consilium cedunt. Illi qui non participant in rotundum directe ad hodiernam scenam parant deducendo toy (Xonotic, type 3 pharmacopolam) ne collegas suos turbet. πŸ™‚

02:00. Vel fluidae
Miraculum amoenum - ante horam absolvimus rollout, ob optimizationem datorum nostrorum et scriptorum migrationis. Clamor imperator, "evolvit." Omnes novae functiones in productione sunt, sed tantum eas in instrumento videre possumus. Quisque ingreditur modum probationis, genera earum in circulos, et incipit videre quid in fine factum sit.

Hoc non optime evenit, hoc post X minutas animadvertimus, cum nihil in inceptis sodalibus coniungitur vel operatur. Velox sync, vocemus problemata nostra, potiora pone, in iunctos disrumpe et in debugging ingredi.

02:30. Duo magna problemata nobis quatuor oculos
Duas magnas difficultates invenimus. Intelleximus clientes non videre aliqua officia coniuncta, et difficultates oriri cum rationibus socium. Utrumque ob im- migrationem scriptorum pro quibusdam ora casibus. Nunc opus est nobis reficere.

Interrogationes scribemus quae haec notant, saltem 4 oculis. Eos in prae-productione probamus ut operam dent et aliquid non frangant. Volvuntur in potes. Eodem tempore curritur nostra integratio iusto probatio, quae paucas quaestiones manifestat. Parva sunt omnia, sed reparari quoque opus est.

03:00. -2 problems +2 problems
Duae quaestiones magnae superiores fixae sunt, et omnes fere minores. Omnes qui in fixis vacant, in rationibus suis operantur ac referentes quod inveniunt. Prioritizamus, distribuimus inter iunctos, et res non-criticas mane relinquimus.

Testimenta iterum currimus, duas magnas difficultates novas inveniunt. Non omnia opera agendi recte pervenerunt, ideo nonnullae petitiones usoris non habent potestatem. Plus novum problema cum particeps rationum. Imus prospicere.

03:20. Synonyms subitis
Una nova prole fixa. Ad secundum, sync subitis ordinandis. Intellegimus quid agatur: praecedens unam quaestionem figat, aliam creatam. Intermissum accipimus figuram quomodo recte et sine consequentibus id faciant.

03:30. sex oculos
Intelligimus quid sit turpis status ultimus ut omnia bene omnibus sociis. Rogationem scribimus cum 6 oculis, evolve in productione, experire, evolve ad productionem.

04:00. Omnia laborat
Omnes probationes transierunt, nullae quaestiones criticae conspicuae sunt. A tempore usque ad tempus, aliquid in turma alicui non fungitur, statim agimus. Saepissime terror falsus est. Aliquando autem aliquid non pervenit, vel pagina separata non operatur. Sedemus, figere, fix, fix. Turma separatum ultimum magnum pluma - exosculatio immittit.

04:30. Punctum nullum reditus
Novus reditus appropinquat, id est tempus quo, si revolvere incipimus, non occurremus tempus nobis datum. Exosculatio sunt problemata, quae omnia novit et commemorat, at pecuniam a clientibus scribere pertinaciter recusat. Plures cimices sunt in singulis paginis, actionibus, et status. Praecipua functionis opera, omnes probationes feliciter transeunt. Statuimus rollout factum esse, non revolvere.

06:00. Aperta pro omnibus in UI*
Cimices fixi. Quaedam quae non appellant utentes, postea relinquentur. Aperiam interface omnibus. Exosculatio laborare pergimus, exspectantes user feedback et magna eventa.

07:00. Problems with API onus
Patet nos leviter deiecisse API onus nostrum et hoc onus temptavimus, quod quaestionem cognoscere non potuit. Quocirca β‰ˆ5% petitionum deficient. Moveamus et quaeramus rationem.

Contumax exosculatio est nec laborare nec vult. Statuimus id serius differre ut mutationes placide exsequantur. Hoc est, omnes facultates cumulatae sunt in ea, sed scribe-a clientibus peracti non procedunt. Nimirum haec quaestio est, sed ad generalem evolutionem comparata levissima videtur.

08:00. figere API
Nos figere pro onere devoluti sumus, in defectione abivimus. Domum ire incipimus.

10:00. Omnis
Certum est omne. In vigilantia et in loco clientium quiescit, manipulus paulatim dormit. Exosculatio manet, cras eam restituemus.

Tum interdiu erant rotulae certae tigna, notificationes, codices et custumationes aliquot clientium nostrorum redituum.

Ita, felix fuit rollout! Potuit utique melius, sed conclusimus quid nobis non sufficiat ad perfectionem consequendam.

in summa

Per 2 menses praeparationis activae ad rollout, 43 functiones peractae sunt, perdurantes a duobus horis ad plures dies.

Per rollout:

  • de novis et mutandis daemonibus β€” V frusta, reposuit 5 monolithos;
  • mutationes intra databases - omnes 6 nostrorum databases cum usore data affecti sunt, downloads factae sunt ex tribus veteribus databases ad unum novum;
  • omnino redesigned frontend;
  • quantum ex codice receptae - 33 noui codicis lineae mille , β‰ˆ 3 mille lineae codici in probat , β‰ˆ 5 milia lineae migrationis codici ;
  • tota notitia integra est, nec una machina virtualis emptoris facta est. πŸ™‚

Bonum exercitia pro bono rollout

Hac in re difficili nos deduxerunt. Sed generaliter in quolibet voltu eos sequi utile est. At quo plura volutant, eo plus partes ludunt.

  1. Primum hoc facere debes intelligere quomodo potest evolvere aut afficere utentes. Erit downtime? Quid est ergo downtime? Quomodo hoc afficit users? Quid optimum et pessimum in causa missionum possibilium sunt? Et pericula tegunt.
  2. Consilium omne. In singulis scaena, debes intelligere facies omnium rollout;
    • codicem traditio;
    • codicem reverti;
    • tempus uniuscuiusque operationis;
    • functionality affectus.
  3. Ludere per missiones usque dum omnes gradus rollout, sicut et pericula in unoquoque eorum, manifesta fiunt. Si quid dubitas habes, interrumpere et quaestionem ambiguam separatim examinare potes.
  4. Quisque scaena emendari potest et debet si utentes adiuvat. Exempli gratia, downtime minuet vel aliquod periculum removebit.
  5. Reversum probatio multo pluris est quam probatio Codicis traditionis. Necesse est inhibere quod ex reverti systema in pristinum statum revertatur, idque cum probationibus confirmet.
  6. Omne quod automated potest esse automated debet. Omnia, quae automari non possunt, in schedam seductorem debent praemittere.
  7. Commemorare successus regulae. Quid functionality si praesto sit et quo tempore? Si hoc non fit, consilium revertimini.
  8. Maximeque - populo. Omnes scire debent quid agant, quare et quid ab actionibus suis in processu rollout pendeat.

Et in una sententia, cum bono consilio et elaboratione quid vis, sine consectariis venditionibus devolvi potes. Etiam aliquid quod accidet omnia opera tua in productione.

Source: www.habr.com