Как ΠΌΡ‹ выпускаСм исправлСния ΠΊ ПО Π² GitLab

Как ΠΌΡ‹ выпускаСм исправлСния ΠΊ ПО Π² GitLab

ΠœΡ‹ Π² GitLab ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌ исправлСния ПО двумя способами β€” Β«Ρ€ΡƒΡ‡ΠΊΠ°ΠΌΠΈΒ» ΠΈ автоматичСски. Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ Π΄Π°Π»Π΅Π΅ ΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ release manager ΠΏΠΎ созданию ΠΈ доставкС Π²Π°ΠΆΠ½Ρ‹Ρ… ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ автоматичСского развСртывания Π½Π° gitlab.com, Π° Ρ‚Π°ΠΊΠΆΠ΅ исправлСний для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ со своими установками.

Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅ Π½Π° своих ΡƒΠΌΠ½Ρ‹Ρ… часах: ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ мСсяц 22 числа ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠ΅ с GitLab Π½Π° своих мощностях, ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ обновлСния Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ вСрсии нашСго ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°. Π’ СТСмСсячном выпускС ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ…, Π° Ρ‚Π°ΠΊΠΆΠ΅ часто ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ запросов, ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹Ρ… сообщСством, Π½Π° инструмСнтарий ΠΈΠ»ΠΈ слияниС.

Но, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ПО Ρ€Π΅Π΄ΠΊΠΎ Π±Ρ‹Π²Π°Π΅Ρ‚ Π±Π΅Π· изъянов. ΠŸΡ€ΠΈ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠΈ ошибки ΠΈΠ»ΠΈ уязвимости Π² систСмС бСзопасности, release manager Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ доставки создаСт исправлСниС для Π½Π°ΡˆΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ со своими установками. Gitlab.com обновляСтся Π² процСссС CD. ΠœΡ‹ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌ этот процСсс CD автоматичСским Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π±Ρ‹Π»ΠΎ смСшивания с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ CD Π² GitLab. Π­Ρ‚ΠΎΡ‚ процСсс ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ прСдлоТСния ΠΈΠ· запросов Π½Π° слияниС, ΠΎΡ‚ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ, ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌΠΈ ΠΈ нашСй Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ скучной ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ выпуска исправлСний Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ двумя вСсьма сильно Ρ€Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‰ΠΈΠΌΠΈΡΡ способами.

Β«ΠœΡ‹ Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎ обСспСчиваСм Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ всСго, Ρ‡Ρ‚ΠΎ сдСлали Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ, Π½Π° всСх окруТСниях, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π²Ρ‹ΠΊΠ°Ρ‚ΠΈΡ‚ΡŒ это Π½Π° GitLab.comΒ», поясняСт Marin Jankovki, ΡΡ‚Π°Ρ€ΡˆΠΈΠΉ тСхничСский ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ инфраструктурного ΠΎΡ‚Π΄Π΅Π»Π°. «ВоспринимайтС выпуски для своих установок, ΠΊΠ°ΠΊ снимки для развСртывания gitlab.com, для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ дСйствия ΠΏΠΎ созданию ΠΏΠ°ΠΊΠ΅Ρ‚Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ наши ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ для установки Π½Π° своих мощностях».

НСзависимо ΠΎΡ‚ ошибки ΠΈΠ»ΠΈ уязвимости, ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ gitlab.com ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ исправлСния вскорС послС ΠΈΡ… ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎ являСтся прСимущСством автоматичСского процСсса CD. Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ со своими установками Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ, выполняСмой release manager.

Команда доставки усилСнно Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π°Π΄ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° процСссов, связанных с созданиСм выпусков для сокращСния MTTP (mean time to production, Ρ‚.Π΅. Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Π·Π°Ρ‚Ρ€Π°Ρ‡Π΅Π½Π½ΠΎΠ³ΠΎ Π½Π° производство), ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΊΠ° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΎΡ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ запроса Π½Π° слияниС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ Π΄ΠΎ развСртывания Π½Π° gitlab.com.

«ЦСль ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ доставки β€” ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ быстрСС, ΠΊΠ°ΠΊ компания, ΠΈΠ»ΠΈ, ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ людСй ΠΏΠΎ доставкС, Π²Π΅Ρ€Π½ΠΎ?Β», Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ Marin.

Как ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ gitlab.com, Ρ‚Π°ΠΊ ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ своих установок ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ Π²Ρ‹Π³ΠΎΠ΄Ρƒ ΠΎΡ‚ усилий ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ доставки ΠΏΠΎ ΡΠΎΠΊΡ€Π°Ρ‰Π΅Π½ΠΈΡŽ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Ρ†ΠΈΠΊΠ»Π° ΠΈ ΡƒΡΠΊΠΎΡ€Π΅Π½ΠΈΡŽ развСртывания. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ поясним сходство ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ этими двумя способами выпусков, Π° Ρ‚Π°ΠΊΠΆΠ΅ опишСм, ΠΊΠ°ΠΊ наша ΠΊΠΎΠΌΠ°Π½Π΄Π° доставки Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ исправлСния для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… Π½Π° своих мощностях, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ обСспСчиваСтся Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ gitlab.com с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ автоматичСского развСртывания.

Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ release manager?

Π§Π»Π΅Π½Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ СТСмСсячно ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ Ρ€ΠΎΠ»ΡŒ release manager Π½Π°ΡˆΠΈΡ… выпусков для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π½Π° своих мощностях, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ исправлСния ΠΈ выпуски бСзопасности, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ выпусками. Π’Π°ΠΊΠΆΠ΅ ΠΎΠ½ΠΈ ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‚ Π·Π° ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Π½Π° автоматичСскоС, Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠ΅ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅.

Выпуски для установки Π½Π° своих мощностях, Π° Ρ‚Π°ΠΊΠΆΠ΅ выпуски gitlab.com ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΏΠΎΡ…ΠΎΠΆΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ процСссы, Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π² Ρ€Π°Π·Π½ΠΎΠ΅ врСмя, поясняСт Marin.

Π’ ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ release manager, нСзависимо ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° выпуска, обСспСчиваСт Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ GitLab с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° запуска прилоТСния Π½Π° gitlab.com, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡŽ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π½Π΅ ΠΏΠΎΠΏΠ°Π΄ΡƒΡ‚ Π² инфраструктуру ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² со своими мощностями.

Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² GitLab ошибка ΠΈΠ»ΠΈ ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ помСчаСтся исправлСнной, release manager Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° ΠΏΠΎΠΏΠ°Π΄Π΅Ρ‚ Π² исправлСния ΠΈΠ»ΠΈ обновлСния бСзопасности для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ со своими установками. Если ΠΎΠ½ Ρ€Π΅ΡˆΠΈΡ‚, Ρ‡Ρ‚ΠΎ ошибка ΠΈΠ»ΠΈ ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ Π·Π°ΡΠ»ΡƒΠΆΠΈΠ²Π°ΡŽΡ‚ обновлСния β€” начинаСтся ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ Ρ€Π°Π±ΠΎΡ‚Π°.

Release manager Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ, Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒ Π»ΠΈ исправлСниС, ΠΈΠ»ΠΈ ΠΊΠΎΠ³Π΄Π° Π΅Π³ΠΎ Ρ€Π°Π·Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ β€” ΠΈ это сильно зависит ΠΎΡ‚ контСкста ситуации, Β«Π° ΠΏΠΎΠΊΠ° ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Π½Π΅ Ρ‚Π°ΠΊ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ с контСкстом, ΠΊΠ°ΠΊ люди», Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ Marin.

ВсС насчСт исправлСний

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ исправлСния, ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΎΠ½ΠΈ Π½Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹?

Release manager ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΎ выпускС исправлСния Π² зависимости ΠΎΡ‚ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΠΎΡΡ‚ΠΈ ошибки.

Ошибки Ρ€Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ Π² зависимости ΠΎΡ‚ ΠΈΡ… ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΠΎΡΡ‚ΠΈ. Π’Π°ΠΊ ошибки S4 ΠΈΠ»ΠΈ S3 ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ стилистичСскими, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ смСщСниС пиксСля ΠΈΠ»ΠΈ Π·Π½Π°Ρ‡ΠΊΠ°. Π­Ρ‚ΠΎ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π²Π°ΠΆΠ½ΠΎ, ΠΎΠ΄Π½Π°ΠΊΠΎ Ρ‚ΡƒΡ‚ Π½Π΅Ρ‚Ρƒ особого влияния Π½Π° Ρ‡Π΅ΠΉ-Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс, Π° Π·Π½Π°Ρ‡ΠΈΡ‚ Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ исправлСниС Π±ΡƒΠ΄Π΅Ρ‚ создано для Ρ‚Π°ΠΊΠΈΡ… ошибок S3 ΠΈΠ»ΠΈ S4, ΠΌΠ°Π»Π°, поясняСт Marin.

Однако уязвимости S1 ΠΈΠ»ΠΈ S2 ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒΡΡ Π΄ΠΎ послСднСй вСрсии, ΠΈΠ»ΠΈ Π΅ΡΡ‚ΡŒ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ошибка, Π²Π»ΠΈΡΡŽΡ‰Π°Ρ Π½Π° Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Если Ρ‚Π°ΠΊΠΎΠ²Ρ‹Π΅ ΠΏΠΎΠΏΠ°Π΄Π°ΡŽΡ‚ Π² Ρ‚Ρ€Π΅ΠΊΠ΅Ρ€ β€” ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΠ»ΠΈΡΡŒ с Π½ΠΈΠΌΠΈ, поэтому release manager сразу ΠΆΠ΅ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΡƒ исправлСния.

Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ исправлСниС для уязвимостСй S1 ΠΈΠ»ΠΈ S2 Π³ΠΎΡ‚ΠΎΠ²ΠΎ, release manager запускаСт выпуск исправлСния.

К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ исправлСниС GitLab 12.10.1 Π±Ρ‹Π»ΠΎ создано послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ΡΠ²ΠΈΠ»ΠΈΡΡŒ нСсколько Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ устранили ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠ²ΡˆΡƒΡŽ ΠΊ Π½ΠΈΠΌ. Release manager ΠΏΡ€ΠΎΠ²Π΅Π» ΠΎΡ†Π΅Π½ΠΊΡƒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ присвоСнных ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΠΎΡΡ‚ΠΈ, Π° послС подтвСрТдСния Π±Ρ‹Π» Π·Π°ΠΏΡƒΡ‰Π΅Π½ процСсс выпуска исправлСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» Π³ΠΎΡ‚ΠΎΠ² Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ суток послС обнаруТСния Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ.

Когда накапливаСтся ΠΌΠ½ΠΎΠ³ΠΎ S4, S3 ΠΈ S2 β€” release manager смотрит контСкст для опрСдСлСния срочности выпуска исправлСния, Π° ΠΏΡ€ΠΈ достиТСнии Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΈΡ… числа β€” ΠΎΠ½ΠΈ всС ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡŽΡ‚ΡΡ ΠΈ Π²Ρ‹ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ. Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡ ΠΈΠ»ΠΈ обновлСния бСзопасности послС выпуска ΠΊΡ€Π°Ρ‚ΠΊΠΎ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π² сообщСниях Π±Π»ΠΎΠ³Π°.

Как release manager создаСт исправлСния

ΠœΡ‹ примСняСм GitLab CI ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ наш ChatOps, для создания исправлСний. Release manager запускаСт выпуск исправлСния ΠΏΡƒΡ‚Π΅ΠΌ Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ChatOps Π½Π° нашСм Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΌ ΠΊΠ°Π½Π°Π»Π΅ #releases Π² Slack.

/chatops run release prepare 12.10.1

ChatOps Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² Slack, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ события, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°Ρ‚Π΅ΠΌ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΈ выполняСт GitLab. НапримСр, ΠΊΠΎΠΌΠ°Π½Π΄Π° доставки ΠΏΡ€ΠΎΠ²Π΅Π»Π° настройку ChatOps для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π°Π·Π½Ρ‹Ρ… Π²Π΅Ρ‰Π΅ΠΉ для выпуска исправлСний.

Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ release manager запускаСт ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ChatOps Π² Slack, ΠΎΡΡ‚Π°Π»ΡŒΠ½Π°Ρ Ρ€Π°Π±ΠΎΡ‚Π° происходит автоматичСски Π² GitLab с использованиСм CICD. ΠœΠ΅ΠΆΠ΄Ρƒ ChatOps Π² Slack ΠΈ GitLab Π² процСссС выпуска происходит двухсторонний ΠΎΠ±ΠΌΠ΅Π½ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ release manager Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΡƒΠ΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· основных этапов процСсса.

На Π²ΠΈΠ΄Π΅ΠΎ Π½ΠΈΠΆΠ΅ прСдоставлСн тСхничСский процСсс ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ исправлСния для GitLab.

Как устроСно автоматичСскоС Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ gitlab.com

Π‘Π°ΠΌ процСсс ΠΈ инструмСнты, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΏΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ gitlab.com, ΠΏΠΎΡ…ΠΎΠΆΠΈ Π½Π° Ρ‚Π°ΠΊΠΎΠ²Ρ‹Π΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΏΡ€ΠΈ создании исправлСний. ОбновлСниС gitlab.com Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ мСньшС Ρ€ΡƒΡ‡Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния release manager.

ВмСсто запуска развСртывания с использованиСм ChatOps ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ CI, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ scheduled pipelines, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ release manager ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… дСйствий Π² Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠ΅ врСмя. ВмСсто Ρ€ΡƒΡ‡Π½ΠΎΠ³ΠΎ процСсса Π΅ΡΡ‚ΡŒ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€, запускаСмый пСриодичСски ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· Π² час, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ скачиваСт внСсСнныС Π½ΠΎΠ²Ρ‹Π΅ измСнСния Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… GitLab, ΡƒΠΏΠ°ΠΊΠΎΠ²Ρ‹Π²Π°Π΅Ρ‚ ΠΈΡ… ΠΈ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅, Π° Ρ‚Π°ΠΊΠΆΠ΅ автоматичСски запускаСтся тСстированиС, QA ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ шаги.

Β«Π˜Ρ‚Π°ΠΊ, ΠΌΡ‹ ΠΈΠΌΠ΅Π΅ΠΌ ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠΉ, Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Ρ… Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… окруТСниях, Π΄ΠΎ gitlab.com, Π° послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ эти окруТСния Π±ΡƒΠ΄ΡƒΡ‚ Π² Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΌ состоянии, ΠΈ тСстированиС ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹, release manager запускаСт дСйствия ΠΏΠΎ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΡŽ gitlab.comΒ», рассказываСт Marin.

ВСхнология CICD для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ gitlab.com Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ вСсь процСсс Π΄ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°, ΠΊΠΎΠ³Π΄Π° release manager Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ€ΡƒΠΊΠ°ΠΌΠΈ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ производствСнного окруТСния Π½Π° gitlab.com.

Marin ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ рассказываСт ΠΎ процСссС обновлСния gitlab.com Π½Π° Π²ΠΈΠ΄Π΅ΠΎ Π½ΠΈΠΆΠ΅.

Π§Ρ‚ΠΎ Π΅Ρ‰Π΅ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Π° доставки

ОсновноС Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ процСссами обновлСния gitlab.com ΠΈ выпуском исправлСний для ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² Π½Π° своих мощностях Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ послСдний процСсс Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ большС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ большСго количСства Ρ€ΡƒΡ‡Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΎΡ‚ release manager.

«Иногда ΠΌΡ‹ ΠΎΡ‚ΠΊΠ»Π°Π΄Ρ‹Π²Π°Π΅ΠΌ выпуск исправлСний для ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² со своими установками ΠΈΠ·-Π·Π° ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с инструмСнтами, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ нюансов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°Π΄ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ выпускС Π΅Π΄ΠΈΠ½ΠΎΠ³ΠΎ исправлСния», Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ Marin.

Одна ΠΈΠ· краткосрочных Ρ†Π΅Π»Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ доставки β€” ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΌΡ‹ Ρ€ΡƒΡ‡Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ со стороны release manager для ускорСния выпуска. Команда Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π°Π΄ ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½ΠΈΠ΅ΠΌ, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ ΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ процСсса выпуска, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ быстрСС ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ исправлСний для ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с Π½ΠΈΠ·ΠΊΠΈΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΠΎΡΡ‚ΠΈ (S3 ΠΈ S4, ΠΏΡ€ΠΈΠΌ. ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠ°). ΠžΡ€ΠΈΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ Π½Π° ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ β€” ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ: Π½Π°Π΄ΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Ρ‚ΡŒ MTTP β€” врСмя, с ΠΏΡ€ΠΈΠ΅ΠΌΠ° запроса Π½Π° слияниС ΠΈ Π΄ΠΎ развСртывания Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° Π½Π° gitlab.com β€” с Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΡ… 50 часов Π΄ΠΎ 8 часов.

Команда доставки Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π°Π΄ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΎΠΌ gitlab.com Π½Π° инфраструктуру Π½Π° основС Kubernetes.

N.B. Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°: Если Π²Ρ‹ ΡƒΠΆΠ΅ ΡΠ»Ρ‹ΡˆΠ°Π»ΠΈ ΠΎ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Kubernetes (Π° я Π΄Π°ΠΆΠ΅ ΠΈ Π½Π΅ сомнСваюсь, Ρ‡Ρ‚ΠΎ ΡΠ»Ρ‹ΡˆΠ°Π»ΠΈ), Π½ΠΎ Π΅Ρ‰Ρ‘ Π½Π΅ ΠΏΠΎΡ‰ΡƒΠΏΠ°Π»ΠΈ Π΅Ρ‘ Ρ€ΡƒΠΊΠ°ΠΌΠΈ, Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ ΠΏΠΎΡƒΡ‡Π°ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΎΠ½Π»Π°ΠΉΠ½-интСнсивах Kubernetes Π‘Π°Π·Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΎΠΉΠ΄Ρ‘Ρ‚ 28-30 сСнтября, ΠΈ Kubernetes МСга, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΎΠΉΠ΄Ρ‘Ρ‚ 14–16 октября. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Π°ΠΌ ΡƒΠ²Π΅Ρ€Π΅Π½Π½ΠΎ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π½Π΅ΠΉ.

Π­Ρ‚ΠΎ Π΄Π²Π° ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°, ΠΏΡ€Π΅ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΎΠ΄Π½Ρƒ ΠΈ Ρ‚Ρƒ ΠΆΠ΅ Ρ†Π΅Π»ΡŒ: быстрая доставка ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ, ΠΊΠ°ΠΊ для gitlab.com, Ρ‚Π°ΠΊ ΠΈ для ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² Π½Π° своих мощностях.

Π•ΡΡ‚ΡŒ ΠΈΠ΄Π΅ΠΈ ΠΈ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ для нас?

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ участиС Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ GitLab, ΠΌΡ‹ привСтствуСм ΠΎΡ‚Π·Ρ‹Π²Ρ‹ ΠΎΡ‚ Π½Π°ΡˆΠΈΡ… Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»Π΅ΠΉ. Если Ρƒ вас Π΅ΡΡ‚ΡŒ ΠΈΠ΄Π΅ΠΈ для нашСй ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ доставки β€” Π½Π΅ ΡΡ‚Π΅ΡΠ½ΡΠΉΡ‚Π΅ΡΡŒ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ заявку с ΠΏΠΎΠΌΠ΅Ρ‚ΠΊΠΎΠΉ team: Delivery.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ