Sut rydym yn rhyddhau clytiau meddalwedd yn GitLab

Sut rydym yn rhyddhau clytiau meddalwedd yn GitLab

Yn GitLab, rydym yn prosesu atgyweiriadau meddalwedd mewn dwy ffordd: â llaw ac yn awtomatig. Darllenwch ymlaen i ddysgu am waith y rheolwr rhyddhau o greu a chyflwyno diweddariadau pwysig trwy ddefnydd awtomataidd i gitlab.com, yn ogystal â chlytiau i ddefnyddwyr weithio gyda nhw ar eu gosodiadau eu hunain.

Rwy'n argymell gosod nodyn atgoffa ar eich smartwatch: bob mis ar yr 22ain, gall defnyddwyr sy'n gweithio gyda GitLab yn eu cyfleusterau weld diweddariadau i fersiwn gyfredol ein cynnyrch. Mae'r datganiad misol yn cynnwys nodweddion newydd, datblygiadau o rai sy'n bodoli eisoes, ac yn aml yn dangos canlyniad terfynol ceisiadau cymunedol am offer neu uno.

Ond, fel y dengys arfer, anaml y mae datblygu meddalwedd heb ddiffygion. Pan ddarganfyddir nam neu wendid diogelwch, mae'r rheolwr rhyddhau yn y tîm dosbarthu yn creu darn i'n defnyddwyr gyda'u gosodiadau. Mae Gitlab.com yn cael ei ddiweddaru yn ystod y broses CD. Rydym yn galw'r broses CD hon yn ddefnydd awtomatig er mwyn osgoi dryswch gyda'r nodwedd CD yn GitLab. Gall y broses hon ymgorffori awgrymiadau o geisiadau tynnu a gyflwynwyd gan ddefnyddwyr, cwsmeriaid, a'n tîm datblygu mewnol, fel bod datrys y broblem ddiflas o ryddhau clytiau yn cael ei datrys mewn dwy ffordd wahanol iawn.

«Rydym yn sicrhau bod popeth y mae datblygwyr yn ei wneud yn cael ei ddefnyddio ym mhob amgylchedd bob dydd cyn ei gyflwyno i GitLab.com", eglura Marin Jankovki, Uwch Reolwr Technegol, Adran Isadeiledd. "Meddyliwch am ddatganiadau ar gyfer eich gosodiadau fel cipluniau ar gyfer gosodiadau gitlab.com, yr ydym wedi ychwanegu camau ar wahân ar eu cyfer i greu pecyn fel y gall ein defnyddwyr ei ddefnyddio i osod ar eu gosodiadau'.

Waeth beth fo'r nam neu'r bregusrwydd, bydd cwsmeriaid gitlab.com yn derbyn atebion yn fuan ar ôl iddynt gael eu cyhoeddi, sy'n fantais i'r broses CD awtomataidd. Mae angen paratoi clytiau ar gyfer defnyddwyr sydd â'u gosodiadau eu hunain ar wahân gan y rheolwr rhyddhau.

Mae'r tîm cyflawni yn gweithio'n galed i awtomeiddio'r rhan fwyaf o'r prosesau sy'n gysylltiedig â chreu datganiadau i'w lleihau MTTP (amser cymedrig i gynhyrchu, h.y. amser a dreulir ar gynhyrchu), y cyfnod o amser o brosesu cais uno gan ddatblygwr i'w ddefnyddio ar gitlab.com.

«Nod y tîm cyflawni yw gwneud yn siŵr y gallwn symud yn gyflymach fel cwmni, neu o leiaf gwneud i'r bobl ddosbarthu weithio'n gyflymach, yn iawn?, meddai Marin.

Mae cwsmeriaid gitlab.com a defnyddwyr eu gosodiadau yn elwa ar ymdrechion y tîm dosbarthu i leihau amseroedd beicio a chyflymu gosodiadau. Yn yr erthygl hon byddwn yn esbonio'r tebygrwydd a'r gwahaniaethau rhwng y ddau ddull hyn. materion, a byddwn hefyd yn disgrifio sut mae ein tîm cyflawni yn paratoi clytiau ar gyfer defnyddwyr sy'n rhedeg ar y safle, a sut rydym yn diweddaru gitlab.com gan ddefnyddio defnydd awtomataidd.

Beth mae rheolwr rhyddhau yn ei wneud?

Aelodau tîm yn fisol trosglwyddo rôl y rheolwr rhyddhau ein datganiadau i ddefnyddwyr yn eu cyfleusterau, gan gynnwys clytiau a datganiadau diogelwch a all ddigwydd rhwng datganiadau. Maent hefyd yn gyfrifol am arwain y broses o drosglwyddo'r cwmni i ddefnydd awtomataidd, parhaus.

Mae datganiadau hunan-osod a datganiadau gitlab.com yn defnyddio llifoedd gwaith tebyg ond yn rhedeg ar wahanol adegau, eglura Marin.

Yn gyntaf ac yn bennaf, mae'r rheolwr rhyddhau, waeth beth fo'r math o ryddhau, yn sicrhau bod GitLab ar gael ac yn ddiogel o'r eiliad y caiff y cais ei lansio ar gitlab.com, gan gynnwys sicrhau nad yw'r un materion yn y pen draw yn seilwaith cwsmeriaid â'u galluoedd eu hunain.

Unwaith y bydd nam neu fregusrwydd wedi'i nodi'n sefydlog yn GitLab, rhaid i'r rheolwr rhyddhau werthuso y bydd yn cael ei gynnwys yn y clytiau neu'r diweddariadau diogelwch ar gyfer defnyddwyr gyda'u gosodiadau. Os bydd yn penderfynu bod nam neu fregusrwydd yn haeddu diweddariad, mae'r gwaith paratoi yn dechrau.

Rhaid i'r rheolwr rhyddhau benderfynu a ddylid paratoi atgyweiriad, neu pryd i'w ddefnyddio - ac mae hyn yn ddibynnol iawn ar gyd-destun y sefyllfa,"yn y cyfamser, nid yw peiriannau cystal am reoli cyd-destun â phobl" meddai Marin.

Mae'n ymwneud â'r atebion

Beth yw clytiau a pham mae eu hangen arnom?

Mae'r rheolwr rhyddhau yn penderfynu a ddylid rhyddhau atgyweiriad yn seiliedig ar ddifrifoldeb y nam.

Mae gwallau'n amrywio yn dibynnu ar eu difrifoldeb. Felly gall gwallau S4 neu S3 fod yn arddull, fel dadleoli picsel neu eicon. Nid yw hyn yn llai pwysig, ond nid oes unrhyw effaith sylweddol ar lif gwaith unrhyw un, sy'n golygu bod y tebygolrwydd y bydd atgyweiriad yn cael ei greu ar gyfer gwallau S3 neu S4 o'r fath yn fach, esboniodd Marin.

Fodd bynnag, mae gwendidau S1 neu S2 yn golygu na ddylai'r defnyddiwr ddiweddaru i'r fersiwn ddiweddaraf, neu mae nam sylweddol sy'n effeithio ar lif gwaith y defnyddiwr. Os ydynt wedi'u cynnwys yn y traciwr, mae llawer o ddefnyddwyr wedi dod ar eu traws, felly mae'r rheolwr rhyddhau yn dechrau paratoi atgyweiriad ar unwaith.

Unwaith y bydd darn ar gyfer gwendidau S1 neu S2 yn barod, mae'r rheolwr rhyddhau yn dechrau rhyddhau'r clwt.

Er enghraifft, crëwyd y darn GitLab 12.10.1 ar ôl i nifer o faterion blocio gael eu nodi a thrwsiodd y datblygwyr y mater sylfaenol a oedd yn eu hachosi. Asesodd y rheolwr Rhyddhau gywirdeb y lefelau difrifoldeb a neilltuwyd, ac ar ôl cadarnhad, lansiwyd y broses o ryddhau atgyweiriad, a oedd yn barod o fewn XNUMX awr ar ôl i'r problemau blocio gael eu darganfod.

Pan fydd llawer o S4, S3 a S2 yn cronni, mae'r rheolwr rhyddhau yn edrych ar y cyd-destun i benderfynu ar frys rhyddhau atgyweiriad, a phan gyrhaeddir nifer benodol ohonynt, maent i gyd yn cael eu cyfuno a'u rhyddhau. Mae atebion ar ôl rhyddhau neu ddiweddariadau diogelwch yn cael eu crynhoi mewn postiadau blog.

Sut mae rheolwr rhyddhau yn creu clytiau

Rydym yn defnyddio GitLab CI a nodweddion eraill fel ein ChatOps i gynhyrchu clytiau. Mae'r rheolwr rhyddhau yn sbarduno rhyddhau'r atgyweiriad trwy actifadu tîm ChatOps ar ein sianel fewnol #releases yn Slac.

/chatops run release prepare 12.10.1

Mae ChatOps yn gweithio o fewn Slack i sbarduno gwahanol ddigwyddiadau, sydd wedyn yn cael eu prosesu a'u gweithredu gan GitLab. Er enghraifft, sefydlodd y tîm dosbarthu ChatOps i awtomeiddio amrywiol bethau i ryddhau clytiau.

Unwaith y bydd y rheolwr rhyddhau yn cychwyn tîm ChatOps yn Slack, mae gweddill y gwaith yn digwydd yn awtomatig yn GitLab gan ddefnyddio CICD. Mae cyfathrebu dwy ffordd rhwng ChatOps yn Slack a GitLab yn ystod y broses ryddhau wrth i'r rheolwr rhyddhau actifadu rhai o'r prif gamau yn y broses.

Mae'r fideo isod yn dangos y broses dechnegol o baratoi darn ar gyfer GitLab.

Sut mae defnydd awtomatig yn gweithio ar gitlab.com

Mae'r broses a'r offer a ddefnyddir i ddiweddaru gitlab.com yn debyg i'r rhai a ddefnyddir i greu clytiau. Mae diweddaru gitlab.com yn gofyn am lai o waith llaw o safbwynt y rheolwr rhyddhau.

Yn lle rhedeg gosodiadau gan ddefnyddio ChatOps, rydym yn defnyddio nodweddion CI e.e. piblinellau wedi'u hamserlennu, y gall y rheolwr rhyddhau drefnu camau gweithredu penodol i'w cyflawni ar yr amser gofynnol. Yn lle proses â llaw, mae yna biblinell sy'n rhedeg o bryd i'w gilydd unwaith yr awr sy'n llwytho i lawr y newidiadau newydd a wnaed i brosiectau GitLab, yn eu pecynnu ac yn amserlennu defnydd, ac yn rhedeg profion, SA a chamau angenrheidiol eraill yn awtomatig.

“Felly mae gennym ni lawer o leoliadau yn rhedeg mewn gwahanol amgylcheddau cyn gitlab.com, ac ar ôl i'r amgylcheddau hynny fod mewn cyflwr da a phrofion yn dangos canlyniadau da, mae'r rheolwr rhyddhau yn cychwyn y camau defnyddio gitlab.com,” meddai Marin.

Mae technoleg CICD ar gyfer cefnogi diweddariadau gitlab.com yn awtomeiddio'r broses gyfan i'r pwynt lle mae'n rhaid i'r rheolwr rhyddhau lansio â llaw y gwaith o leoli'r amgylchedd cynhyrchu i gitlab.com.

Mae Marin yn manylu ar y broses ddiweddaru gitlab.com yn y fideo isod.

Beth arall mae'r tîm cyflawni yn ei wneud?

Y prif wahaniaeth rhwng prosesau diweddaru gitlab.com a rhyddhau clytiau i gwsmeriaid yn fewnol yw bod y broses olaf yn gofyn am fwy o amser a mwy o waith llaw gan y rheolwr rhyddhau.

“Rydym weithiau’n gohirio rhyddhau clytiau i gwsmeriaid gyda’u gosodiadau oherwydd materion yr adroddwyd amdanynt, materion offer, ac oherwydd bod yna lawer o arlliwiau y mae angen eu hystyried wrth ryddhau un darn,” meddai Marin.

Un o nodau tymor byr y tîm cyflawni yw lleihau faint o waith llaw ar ran y rheolwr rhyddhau i gyflymu'r rhyddhau. Mae'r tîm yn gweithio i symleiddio, symleiddio ac awtomeiddio'r broses ryddhau, a fydd yn helpu i gael atebion i faterion difrifoldeb isel (S3 a S4, tua. cyfieithydd). Mae canolbwyntio ar gyflymder yn ddangosydd perfformiad allweddol: mae angen lleihau MTTP - yr amser o dderbyn cais uno i ddefnyddio'r canlyniad i gitlab.com - o'r 50 awr i 8 awr ar hyn o bryd.

Mae'r tîm cyflawni hefyd yn gweithio ar fudo gitlab.com i seilwaith yn Kubernetes.

Golygydd n.b.: Os ydych chi eisoes wedi clywed am dechnoleg Kubernetes (ac nid oes gennyf unrhyw amheuaeth eich bod wedi gwneud hynny), ond heb ei gyffwrdd â'ch dwylo eto, rwy'n argymell cymryd rhan mewn cyrsiau dwys ar-lein Sylfaen Kubernetes, a gynhelir Medi 28-30, a Kubernetes Mega, a fydd yn digwydd Hydref 14–16. Bydd hyn yn eich galluogi i lywio a gweithio gyda'r dechnoleg yn hyderus.

Mae'r rhain yn ddau ddull sy'n dilyn yr un nod: cyflwyno diweddariadau yn gyflym, ar gyfer gitlab.com ac ar gyfer cleientiaid yn eu cyfleusterau.

Unrhyw syniadau neu argymhellion i ni?

Mae croeso i bawb gyfrannu at GitLab, ac rydym yn croesawu adborth gan ein darllenwyr. Os oes gennych unrhyw syniadau ar gyfer ein tîm cyflawni, peidiwch ag oedi creu cais gyda rhybudd team: Delivery.

Ffynhonnell: hab.com

Ychwanegu sylw