Cumu liberemu patch di software in GitLab

Cumu liberemu patch di software in GitLab

In GitLab, processemu correzioni di software in dui modi: manualmente è automaticamente. Leghjite per sapè nantu à u travagliu di u gestore di liberazione di creà è furnisce aghjurnamenti impurtanti via implementazione automatizata à gitlab.com, è ancu patch per l'utilizatori per travaglià cù e so installazioni.

Vi cunsigliu di mette un ricordu nantu à u vostru smartwatch: ogni mese u 22, l'utilizatori chì travaglianu cù GitLab in e so facilità ponu vede l'aghjurnamenti à a versione attuale di u nostru pruduttu. A liberazione mensuale cuntene novi funziunalità, sviluppi di quelli esistenti, è spessu mostra u risultatu finali di e dumande di a cumunità per l'uttellu o fusioni.

Ma, cum'è a pratica mostra, u sviluppu di software hè raramente senza difetti. Quandu si scopre un bug o una vulnerabilità di sicurezza, u gestore di liberazione in u squadra di spedizione crea un patch per i nostri utilizatori cù e so installazioni. Gitlab.com hè aghjurnatu durante u prucessu di CD. Chjamemu stu prucessu di CD implementazione automatica per evità cunfusione cù a funzione CD in GitLab. Stu prucessu pò incorpore suggerimenti da e richieste di pull inviate da l'utilizatori, i clienti è a nostra squadra di sviluppu internu, in modu chì a risoluzione di u prublema di liberazione di patch hè risolta in dui modi assai diffirenti.

«Assicurendu chì tuttu ciò chì i sviluppatori facenu hè implementatu in tutti l'ambienti ogni ghjornu prima di lancià in GitLab.com", spiega Marin Jankovki, Senior Manager Tecnicu, Dipartimentu Infrastruttura. "Pensate à e versioni per e vostre installazioni cum'è snapshots per implementazioni gitlab.com, per quale avemu aghjustatu passi separati per creà un pacchettu in modu chì i nostri utilizatori ponu aduprà per installà nantu à e so installazioni.».

Indipendentemente da u bug o a vulnerabilità, i clienti di gitlab.com riceveranu correzioni pocu dopu chì sò publicati, chì hè un benefiziu di u prucessu di CD automatizatu. I patch per l'utilizatori cù e so installazioni necessitanu una preparazione separata da u gestore di liberazione.

U squadra di consegna travaglia dura per automatizà a maiò parte di i prucessi implicati in a creazione di versioni per riduce MTTP (tempu mediu à a pruduzzione, vale à dì u tempu passatu nantu à a produzzione), u periodu di tempu da a trasfurmazioni di una dumanda di fusione da un sviluppatore à a distribuzione in gitlab.com.

«L'obiettivu di a squadra di consegna hè di assicurà chì pudemu muvimenti più veloce cum'è una cumpagnia, o almenu fà chì e persone di consegna travaglianu più veloce, ghjustu.?, dice Marin.

Sia i clienti di gitlab.com sia l'utilizatori di e so installazioni beneficianu di i sforzi di a squadra di spedizione per riduce i tempi di ciculu è accelerà l'implementazione. In questu articulu avemu da spiegà e similitudini è e differenze trà sti dui metudi. prublemi, è descriveremu ancu cumu a nostra squadra di spedizione prepara patch per l'utilizatori chì travaglianu nantu à e so facilità, è ancu cumu assicuramu chì gitlab.com hè aghjurnatu cù l'implementazione automatizata.

Chì faci un gestore di liberazione?

Membri di a squadra ogni mese trasferisce u rolu di gestore di liberazione e nostre versioni à l'utilizatori in e so facilità, cumprese patch è versioni di sicurezza chì ponu accade trà e versioni. Sò ancu rispunsevuli di guidà a transizione di a cumpagnia à una implementazione automatizata è cuntinua.

I versioni di l'autoinstallazione è i versioni di gitlab.com utilizanu flussi di travagliu simili, ma eseguiti in tempi diversi, spiega Marin.

Prima di tuttu, u gestore di liberazione, indipendentemente da u tipu di liberazione, assicura chì GitLab hè dispunibule è sicuru da u mumentu chì l'applicazione hè lanciata nantu à gitlab.com, ancu per assicurà chì i stessi prublemi ùn finiscinu micca in l'infrastruttura di i clienti cù u so capacità proprie.

Una volta chì un bug o una vulnerabilità hè marcatu fissatu in GitLab, u gestore di liberazione deve valutà chì serà inclusu in i patches o l'aghjurnamenti di sicurezza per l'utilizatori cù e so installazioni. S'ellu decide chì un bug o una vulnerabilità meriteghja un aghjurnamentu, u travagliu preparatoriu principia.

U gestore di liberazione deve decide di preparà una correzione, o quandu implementà - è questu hè assai dipendente da u cuntestu di a situazione ".intantu, i machini ùn sò micca bè à gestisce u cuntestu cum'è e persone", dice Marin.

Hè tuttu nantu à e correzioni

Chì sò i patches è perchè ne avemu bisognu?

U gestore di liberazione decide se liberà una correzione basatu nantu à a gravità di u bug.

L'errore varienu secondu a so gravità. Allora l'errore S4 o S3 pò esse stilisticu, cum'è u spostamentu di pixel o icona. Questu ùn hè micca menu impurtante, ma ùn ci hè micca un impattu significativu in u flussu di travagliu di qualcunu, chì significa chì a probabilità chì una correzione serà creata per tali errori S3 o S4 hè chjuca, spiega Marin.

Tuttavia, i vulnerabili S1 o S2 significanu chì l'utilizatore ùn deve micca aghjurnà à l'ultima versione, o ci hè un bug significativu chì afecta u flussu di travagliu di l'utilizatore. Se sò inclusi in u tracker, parechji utilizatori l'anu scontru, cusì u gestore di liberazione principia immediatamente à preparà una correzione.

Una volta chì un patch per i vulnerabili S1 o S2 hè prontu, u gestore di liberazione principia à liberà u patch.

Per esempiu, u patch di GitLab 12.10.1 hè statu creatu dopu chì parechji prublemi di bluccatu sò stati identificati è i sviluppatori anu riparatu u prublema sottostante chì li causava. U Release manager hà valutatu a correttezza di i livelli di gravità assignati, è dopu a cunferma, u prucessu di liberazione di una correzione hè stata lanciata, chì era pronta in XNUMX ore dopu chì i prublemi di bloccu sò stati scuperti.

Quandu una quantità di S4, S3 è S2 s'acumule, u gestore di liberazione guarda u cuntestu per determinà l'urgenza di liberà una correzione, è quandu un certu nùmeru di elli hè righjuntu, sò tutti cumminati è liberati. I correzioni post-liberazione o l'aghjurnamenti di sicurezza sò riassunti in i blog posts.

Cumu un gestore di liberazione crea patch

Utilizemu GitLab CI è altre funziunalità cum'è i nostri ChatOps per generà patches. U gestore di versione principia a liberazione di a correzione attivendu a squadra ChatOps in u nostru canale internu #releases in Slack.

/chatops run release prepare 12.10.1

ChatOps travaglia in Slack per attivà diversi avvenimenti, chì sò poi processati è eseguiti da GitLab. Per esempiu, a squadra di spedizione hà stallatu ChatOps per automatizà diverse cose per liberà patches.

Quandu u gestore di liberazione principia a squadra ChatOps in Slack, u restu di u travagliu passa automaticamente in GitLab cù CICD. Ci hè una cumunicazione bidirezionale trà ChatOps in Slack è GitLab durante u prucessu di liberazione postu chì u gestore di liberazione attiva alcuni di i passi maiò in u prucessu.

U video sottu mostra u prucessu tecnicu di a preparazione di un patch per GitLab.

Cumu funziona a implementazione automatica nantu à gitlab.com

U prucessu è l'arnesi utilizati per aghjurnà gitlab.com sò simili à quelli usati per creà patches. L'aghjurnamentu di gitlab.com richiede menu travagliu manuale da u puntu di vista di u gestore di liberazione.

Invece di eseguisce implementazioni cù ChatOps, usemu funzioni CI, p.e. pipelines programmati, cù quale u gestore di liberazione pò pianificà certe azzioni per esse realizatu à u tempu necessariu. Invece di un prucessu manuale, ci hè un pipeline chì corre periodicamente una volta à l'ora chì scarica i novi cambiamenti fatti à i prughjetti GitLab, i pacchetti è pianificà l'implementazione, è esegui automaticamente teste, QA è altri passi necessarii.

"Allora avemu assai implementazioni in esecuzione in diverse ambienti prima di gitlab.com, è dopu chì quelli ambienti sò in bona forma è e teste mostranu boni risultati, u gestore di liberazione principia l'azzioni di implementazione di gitlab.com", dice Marin.

A tecnulugia CICD per supportà l'aghjurnamenti di gitlab.com automatizza tuttu u prucessu finu à u puntu chì u gestore di liberazione deve lancià manualmente l'implementazione di l'ambiente di produzzione à gitlab.com.

Marin entra in dettagliu nantu à u prucessu di aghjurnamentu di gitlab.com in u video sottu.

Chì altru faci a squadra di spedizione?

A diferenza principale trà i prucessi di aghjurnamentu di gitlab.com è di liberazione di patch à i clienti in-house hè chì l'ultimu prucessu richiede più tempu è più travagliu manuale da u gestore di liberazione.

"A volte ritardemu a liberazione di patch à i clienti cù e so installazioni per via di prublemi signalati, prublemi di attrezzi, è perchè ci sò parechje sfumature chì deve esse cunsideratu quandu si libera una sola patch", dice Marin.

Unu di l'ugettivi à cortu termine di a squadra di spedizione hè di riduce a quantità di travagliu manuale da parte di u manager di liberazione per accelerà a liberazione. A squadra travaglia per simplificà, simplificà è automatizà u prucessu di liberazione, chì aiuterà à risolve i prublemi di bassa gravità (S3 è S4, ca. traduttore). L'enfasi di a velocità hè un indicatore di rendiment chjave: hè necessariu di riduce MTTP - u tempu da a ricezione di una dumanda di fusione à a distribuzione di u risultatu à gitlab.com - da l'attuale 50 ore à 8 ore.

U squadra di spedizione hè ancu travagliatu nantu à a migrazione di gitlab.com à una infrastruttura basata in Kubernetes.

Editore n.b.: Sì avete digià intesu parlà di a tecnulugia Kubernetes (è ùn aghju micca dubbitu chì avete), ma ùn l'avete ancu toccu cù e vostre mani, vi cunsigliu di participà à corsi intensivi in ​​linea. Base Kubernetes, chì si terrà 28-30 settembre, è Kubernetes Mega, chì avarà da u 14 à u 16 d'ottobre. Questu vi permetterà di navigà cun fiducia è travaglià cù a tecnulugia.

Quessi sò dui approcci chì perseguenu u stessu scopu: consegna rapida di l'aghjurnamenti, sia per gitlab.com sia per i clienti in e so strutture.

Qualche idea o raccomandazioni per noi?

Tutti sò benvenuti à cuntribuisce à GitLab, è accoltemu i feedback da i nostri lettori. Sì avete idee per a nostra squadra di spedizione, ùn esitate micca creà una dumanda cun avvisu team: Delivery.

Source: www.habr.com

Add a comment