Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ стСйдТинг Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅

Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½Ρ‹ΠΉ сайт ΠΈ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° Π½Π΅ΠΌ Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ? ➀ Staging site

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ стСйдТинг Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ стСйдТинг Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ стСйдТинг Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ стСйдТинг Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ стСйдТинг Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅

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

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Staging сайт (ΠžΡ‚Π»Π°Π΄ΠΎΡ‡Π½Ρ‹ΠΉ сайт) ΠΈ ΠΊΠ°ΠΊ это ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅?

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° любого сайта ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π² Ρ†Π΅Π»ΠΎΠΌ Ρ‡Π΅Ρ€Π΅Π· 4 этапа:

ВсС сайты проходят Ρ‡Π΅Ρ€Π΅Π· эти этапы. ΠšΡ‚ΠΎ-Ρ‚ΠΎ быстро, Π° ΠΊΡ‚ΠΎ-Ρ‚ΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ, всС зависит ΠΎΡ‚ слоТности ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Π’ ΠΌΠ΅Π»ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ этап ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ β€” фрилансСр. Π’ Π±ΠΎΠ»Π΅Π΅ ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…, Π·Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ этап ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ своя Π³Ρ€ΡƒΠΏΠΏΠ° спСциалистов. НапримСр, Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠΌ этапС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ программисты, Π²Π΅Ρ€ΡΡ‚Π°Π»ΡŒΡ‰ΠΈΠΊΠΈ, Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Ρ‹ ΠΈ Ρ‚.Π΄. На Π²Ρ‚ΠΎΡ€ΠΎΠΌ этапС β€” тСстировщики ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния.

Если ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΊΡ€ΡƒΠΏΠ½Ρ‹ΠΉ, Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ сайт Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ сСрвСрС, Π° Development Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° Π΄Ρ€. сСрвСрС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π½Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ сСрвСр. МСлкиС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ сайты ΠΌΠΎΠ³ΡƒΡ‚ Development ΠΈ Production Π΄Π΅Π»Π°Ρ‚ΡŒ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ сСрвСрС.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½Ρ‹ΠΉ сайт?

ΠžΡ‚Π»Π°Π΄ΠΎΡ‡Π½Ρ‹ΠΉ сайт это Π²Π΅Π±-сайт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для сборки, ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΈ тСстирования этого сайта ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹ΠΊΠ»Π°Π΄Ρ‹Π²Π°Π½ΠΈΠ΅ΠΌ Π½Π° Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ сСрвСр. ΠŸΡ€ΠΎΡ†Π΅ΡΡ тСстирования ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ происходит Π½Π° Ρ‚ΠΎΡ‡Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ оборудования ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ Π½Π° Β«Π±ΠΎΠ΅Π²ΠΎΠΌΒ» сСрвСрС. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹ΠΊΠ»Π°Π΄Ρ‹Π²Π°Π½ΠΈΠ΅ΠΌ свСТСй вСрсии ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° Π΅Π³ΠΎ Π²Ρ‹Π»ΠΈΠ²Π°ΡŽΡ‚ Π½Π° сайт для тСстирования, Π³Π΄Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ всС Π·Π°ΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ возмоТности Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π»ΠΎΡΡŒ.

Как это ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅?

Для ΠΌΠ΅Π»ΠΊΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½Ρ‹ΠΉ сайт ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для тСстирования ΠΈ экспСримСнтов.

НапримСр, Ρƒ нас Π΅ΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ сайт ΠΈ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ WordPress Π΄ΠΎ вСрсии 5.5. Но, ΠΊΠ°ΠΊΠΎΠ²Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ послСдствия обновлСния? Π—Π° послСдниС Π΄Π½ΠΈ Π½Π° ΠΌΠΎΠ΅ΠΌ Youtube-ΠΊΠ°Π½Π°Π»Π΅ ΠΈ Π² Telegram появились сообщСния ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ…, ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°Ρ… ΠΈ Π½Π΅Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… ΠΏΠ»Π°Π³ΠΈΠ½Π°Ρ…. Π’Ρ‹ Π½Π΅ застрахованы ΠΎΡ‚ Ρ€Π°Π·Π½ΠΎΠ³ΠΎ Ρ€ΠΎΠ΄Π° ошибок ΠΈ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ появится послС обновлСния.

И Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ? ΠŸΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ WordPress Π½Π° ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΠΎΠΌ сайтС! Если всС Π±ΡƒΠ΄Π΅Ρ‚ Ρ…ΠΎΡ€ΠΎΡˆΠΎ, Ρ‚ΠΎ Ρ‚ΠΎΠ³Π΄Π° Π²Ρ‹ спокойно смоТСтС ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ WordPress ΠΈ Π½Π° Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ сайтС.

Π’ ΠΊΠ°ΠΊΠΈΡ… Π΅Ρ‰Π΅ случаях ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½Ρ‹ΠΉ сайт?

Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½Ρ‹ΠΉ сайт?

Как быстро ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½Ρ‹ΠΉ сайт для своих экспСримСнтов ΠΈ тСстирования? Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ бСсплатныС ΠΈ ΠΏΠ»Π°Ρ‚Π½Ρ‹Π΅ ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹ для создания ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½Ρ‹Ρ… сайтов. Рассмотрим Π΄Π²Π° ΠΏΠ»Π°Π³ΠΈΠ½Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ поняли сам ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ. Π‘ΠΌ. Π²ΠΈΠ΄Π΅ΠΎ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π£Π»ΡƒΡ‡ΡˆΠ°Π΅ΠΌ тСстированиС ΠΏΡƒΡ‚Π΅ΠΌ использования Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°

TL;DR Π§Π΅ΠΌ Π±Π»ΠΈΠΆΠ΅ ΠΊ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ваши тСстовыС Π΄Π°Π½Π½Ρ‹Π΅, Ρ‚Π΅ΠΌ Π»ΡƒΡ‡ΡˆΠ΅. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Gor β€” автоматичСскоС ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ production Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° Π½Π° Ρ‚Π΅ΡΡ‚ΠΎΠ²ΡƒΡŽ ΠΏΠ»ΠΎΡ‰Π°Π΄ΠΊΡƒ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

Π—Π΄Π΅ΡΡŒ Π² Granify ΠΌΡ‹ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ количСство Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, наш бизнСс построСн Π½Π° этом. ΠœΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹ Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡ‚ΡΡ ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ.

Π’Ρ‹ Π΄Π°ΠΆΠ΅ Π½Π΅ прСдставляСтС насколько странными ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΈΡˆΠ΅Π΄ΡˆΠΈΠ΅ ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠΎΠΌ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ прокси-сСрвСры, Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹ ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²Ρ‹ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΡΠ»Ρ‹ΡˆΠ°Π»ΠΈ, ошибки Π½Π° клиСнтской сторонС, ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅.

НС Π²Π°ΠΆΠ½ΠΎ сколько Ρƒ вас тСстов ΠΈ фикстур, ΠΎΠ½ΠΈ просто Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠΊΡ€Ρ‹Ρ‚ΡŒ всС случаи. Π’Ρ€Π°Ρ„ΠΈΠΊ с production всСгда Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠ³ΠΎ.

Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅Ρ‚ просто всС ΡΠ»ΠΎΠΌΠ°Ρ‚ΡŒ ΠΏΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ вСрсии, Π΄Π°ΠΆΠ΅ Ссли всС тСсты ΠΏΡ€ΠΎΡˆΠ»ΠΈ. На ΠΌΠΎΠ΅ΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ это случаСтся постоянно.

Π•ΡΡ‚ΡŒ Ρ†Π΅Π»Ρ‹ΠΉ класс ошибок ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‡Π΅Π½ΡŒ нСпросто Π½Π°ΠΉΡ‚ΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΈ Ρ€ΡƒΡ‡Π½Ρ‹ΠΌ тСстированиС: concurrency, ошибки Π² настройкС сСрвСров, ошибки ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ ΠΊΠΎΠΌΠ°Π½Π΄ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ порядкС, ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅.

Но ΠΌΡ‹ моТСшь ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ нСсколько Π²Π΅Ρ‰Π΅ΠΉ Ρ‡Ρ‚ΠΎ Π±Ρ‹ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ поиск Ρ‚Π°ΠΊΠΈΡ… Π±Π°Π³ΠΎΠ² ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ систСмы:

ВсСгда тСстируСм Π½Π° staging

НаличиС Staging срСды ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΈ ΠΎΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Π° production. ИспользованиС Ρ‚Π°ΠΊΠΈΡ… срСдств ΠΊΠ°ΠΊ Puppet ΠΈΠ»ΠΈ Chef сильно ΠΎΠ±Π»Π΅Π³Ρ‡Π°Π΅Ρ‚ Π·Π°Π΄Π°Ρ‡Ρƒ.

Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ Π±Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ всСгда Π² Ρ€ΡƒΡ‡Π½ΡƒΡŽ тСстировали свой ΠΊΠΎΠ΄ Π½Π° staging. Π­Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π½Π°ΠΉΡ‚ΠΈ самыС ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹Π΅ ошибки, Π½ΠΎ это всС Π΅Ρ‰Π΅ ΠΎΡ‡Π΅Π½ΡŒ Π΄Π°Π»Π΅ΠΊΠΎ ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ случится Π½Π° production Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ΅.

ВСстируСм Π½Π° Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…

Π•ΡΡ‚ΡŒ нСсколько Ρ‚Π΅Ρ…Π½ΠΈΠΊ для ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ваш ΠΊΠΎΠ΄ Π½Π° Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… (я Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΠ±Π΅):

1. ΠžΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 1 ΠΈΠ· production сСрвСров, Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Ρ‡Π°ΡΡ‚ΡŒ Π²Π°ΡˆΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π½ΠΎΠ²Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ. Π­Ρ‚Π° Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ° ΠΈΠΌΠ΅Π΅Ρ‚ нСсколько минусов: Ρ‡Π°ΡΡ‚ΡŒ Π²Π°ΡˆΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ошибки, ΠΈ Π²Π°ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ придСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ «Π»ΠΈΠΏΠΊΠΈΠ΅» сСссии. Π­Ρ‚ΠΎ довольно ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° A/B тСстированиС.

2. ВоспроизвСдСниС production Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° (log replay)

Илья Π“Ρ€ΠΈΠ³ΠΎΡ€ΠΈΠΊ написал Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΡΡ‚Π°Ρ‚ΡŒΡŽ ΠΏΡ€ΠΎ Π½Π°Π³Ρ€ΡƒΠ·ΠΎΡ‡Π½ΠΎΠ΅ тСстированиС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ log replay Ρ‚Π΅Ρ…Π½ΠΈΠΊΡƒ.

ВсС ΡΡ‚Π°Ρ‚ΡŒΠΈ Ρ‡Ρ‚ΠΎ я Ρ‡ΠΈΡ‚Π°Π» Π½Π° эту Ρ‚Π΅ΠΌΡƒ ΡƒΠΏΠΎΠΌΠΈΠ½Π°ΡŽΡ‚ log replay ΠΊΠ°ΠΊ срСдство для Π½Π°Π³Ρ€ΡƒΠ·ΠΎΡ‡Π½ΠΎΠ³ΠΎ тСстирования ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅. Π― ΠΆΠ΅ Ρ…ΠΎΡ‡Ρƒ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эту Ρ‚Π΅Ρ…Π½ΠΈΠΊΡƒ для Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎΠ³ΠΎ тСстирования ΠΈ нахоТдСния ошибок.

Π’Π°ΠΊΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΊΠ°ΠΊ jMeter, httperf or Tsung ΠΈΠΌΠ΅ΡŽΡ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ log replay, Π½ΠΎ ΠΎΠ½Π° Π»ΠΈΠ±ΠΎ Π² Π·Π°Ρ‡Π°Ρ‚ΠΎΡ‡Π½ΠΎΠΌ состоянии Π»ΠΈΠ±ΠΎ сфокусированная Π½Π° Π½Π°Π³Ρ€ΡƒΠ·ΠΎΡ‡Π½ΠΎΠΌ тСстировании Π° Π½Π΅ эмуляции Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. ЧувствуСтС Ρ€Π°Π·Π½ΠΈΡ†Ρƒ? Π Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ это Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Π±ΠΎΡ€ запросов, ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ порядок ΠΈ врСмя ΠΌΠ΅ΠΆΠ΄Ρƒ запросами, Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ HTTP Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. Для Π½Π°Π³Ρ€ΡƒΠ·ΠΎΡ‡Π½ΠΎΠ³ΠΎ тСстирования это ΠΏΠΎΡ€ΠΎΠΉ Π½Π΅ Π²Π°ΠΆΠ½ΠΎ, Π½ΠΎ для поиска ошибок это ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΎ. К Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ эти срСдства слоТны Π² настройкС ΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΎΡ‡Π΅Π½ΡŒ Π»Π΅Π½ΠΈΠ²Ρ‹. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Ρ‡Ρ‚ΠΎ Π±Ρ‹ ваши Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π»ΠΈ ΠΊΠ°ΠΊΡƒΡŽ Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ/сСрвис, ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ максимально Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½, Π° Π΅Ρ‰Π΅ Π»ΡƒΡ‡ΡˆΠ΅ Ρ‡Ρ‚ΠΎ Π±Ρ‹ ΠΎΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΎ Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π½ΠΈΠΊΡ‚ΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ».

Воспроизводим production Ρ‚Ρ€Π°Ρ„ΠΈΠΊ Π² автоматичСском Ρ€Π΅ΠΆΠΈΠΌΠ΅

Π― написал ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Gor

Gor β€” позволяСт автоматичСскиС Π²ΠΎΡΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ production Ρ‚Ρ€Π°Ρ„ΠΈΠΊ Π½Π° staging Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, 24 часа Π² сутки, с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π·Π°Ρ‚Ρ€Π°Ρ‚Π°ΠΌΠΈ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ваша staging срСда всСгда ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΏΠΎΡ€Ρ†ΠΈΡŽ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°.

Gor состоит ΠΈΠ· 2-ΡƒΡ… частСй: Listener ΠΈ Replay сСрвСра. Listener устанавливаСтся Π½Π° production Π²Π΅Π± сСрвСры, Π° Π΄ΡƒΠ±Π»ΠΈΡ€ΡƒΠ΅Ρ‚ вСсь Ρ‚Ρ€Π°Ρ„ΠΈΠΊ Π½Π° Replay сСрвСр Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ машинС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΆΠ΅ направляСт Π΅Π³ΠΎ Π½Π° Π½ΡƒΠΆΠ½Ρ‹Π΅ адрСс. ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎΠΊΠ°Π·Π°Π½ Π½Π° Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ΅ Π½ΠΈΠΆΠ΅:

Gor ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ количСства запросов. Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ ваТная настройка, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ staging ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ мСньшС машин Ρ‡Π΅ΠΌ production, ΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ максимальноС ΠΊΠΎΠ»-Π²ΠΎ запросов Π² сСкунду ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ваша staging срСда.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ Π½Π° страницС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

Π’Π°ΠΊ ΠΊΠ°ΠΊ Gor написан Π½Π° Go, для запуска ΠΌΡ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ просто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠΆΠ΅ скомпилированный дистрибутив Downloads

Π’ Granify, ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Gor Π² production Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, ΠΈ ΠΎΡ‡Π΅Π½ΡŒ Π΄ΠΎΠ²ΠΎΠ»ΡŒΠ½Ρ‹ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌΠΈ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΡŽ DevOps. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ опрСдСлСния

ЦСль:ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π²Π²ΠΎΠ΄Π½Ρ‹Π΅ знания ΠΏΠΎ DevOps, ознакомится с ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ ΠΈ основными опрСдСлСниями.

Но это Π½Π΅ совсСм Π²Π΅Ρ€Π½ΠΎ. DevOps это Π½Π΅ тСхнология ΠΈ Π½Π΅ язык программирования. Π‘Π°ΠΌ ΠΏΠΎ сСбС DevOps это мСтодология Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния.

ΠœΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΡ DevOps сосрСдоточСна Π½Π° ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΈ, сотрудничСствС ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ подраздСлСниями Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ эксплуатации. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π·Π°Ρ‚Ρ€Π°Ρ‚ ΠΈ состоит ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΉ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈΠ΄Π΅ΠΈ-ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ, написаниС ΠΊΠΎΠ΄Π°, тСстированиС, Π΄Π΅ΠΏΠ»ΠΎΠΉ прилоТСния. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ Ρ†Π΅Π»ΡŒΡŽ являСтся качСствСнный ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚, доставлСнный воврСмя. Над этим Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², тСстировщики ΠΈ Π°Π΄ΠΌΠ½ΠΈΠ½ΠΎΠ². КаТдая ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ своСй Π·ΠΎΠ½ΠΎΠΉ отвСтствСнности.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΠΈΡˆΡƒΡ‚ ΠΊΠΎΠ΄, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΠΈΡˆΠ΅Ρ‚ свою Ρ‡Π°ΡΡ‚ΡŒ,ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΏΠΎΡ‚ΠΎΠΌ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Π² ΠΎΠ±Ρ‰ΠΈΠΉ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚.

Π—Π°Π΄Π°Ρ‡Π° operations ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π» Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… срСдах Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

ВсС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π²Π·Π°ΠΈΠΌΠ½ΠΎ зависят Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π°, Π±Π΅Π· ΠΈΡ… взаимодСйствия ΠΈ эффСктивной ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚.

КаТдая итСрация Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π·Π°Ρ‚Ρ€Π°Ρ‚ ΠΈ, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅, компаниям-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния ΠΈ Π·Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊΠ°ΠΌ этого ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° хочСтся ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ врСмя поставки Π±Π΅Π· ΠΏΠΎΡ‚Π΅Ρ€ΠΈ качСства. Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ это Π·Π° счСт сокращСния Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ написания ΠΊΠΎΠ΄Π° ΠΈΠ»ΠΈ тСстирования, Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.

Экономия Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π° счСт сокращСния Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ простоя ΠΌΠ΅ΠΆΠ΄Ρƒ итСрациями Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ПО. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, Π·Π° счСт сокращСния Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ оТидания ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ своСй Ρ€Π°Π±ΠΎΡ‚Ρ‹.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ вас Π΅ΡΡ‚ΡŒ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ классичСской DevOps ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ. На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ Ρ‡Π°Ρ‰Π΅ всСго ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ DevOps ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ, относящиСся ΠΊ инфраструктурС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π° ΠΏΠΎΠ΄ DevOps ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΎΠΌ понимаю спСциалиста, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° инфраструктуру, Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅, ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΈ Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π’Π°ΠΊΠΆΠ΅ DevOps ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° настройку ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΉ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, тСстировщика ΠΈ Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π΅.

DevOps ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ‡Π°Ρ‰Π΅ всСго Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅.

SaaS. PaaS. IaaS.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ стСйдТинг Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ стСйдТинг Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ стСйдТинг Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ стСйдТинг Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ стСйдТинг Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅

Pet vs Cattle

ΠšΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡ, Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ пСрСводится ΠΊΠ°ΠΊ «Π”ΠΎΠΌΠ°ΡˆΠ½ΠΈΠ΅ ΠΏΠΈΡ‚ΠΎΠΌΡ†Ρ‹ ΠΏΡ€ΠΎΡ‚ΠΈΠ² Ρ€ΠΎΠ³Π°Ρ‚ΠΎΠ³ΠΎ скота». Π—Π²ΡƒΡ‡ΠΈΡ‚ странно, поэтому Π½Π° русский язык Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ Ρ‡Π°Ρ‰Π΅ всСго Π½Π΅ пСрСводится. Π’ Ρ†Π΅Π»ΠΎΠΌ концСпция Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Π΄Π²ΡƒΡ… Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°Ρ… ΠΊ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡŽ систСмами Π½Π° сСрвСрах.

Оба ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° ΠΈΠΌΠ΅ΡŽΡ‚ ΠΏΡ€Π°Π²ΠΎ Π½Π° Тизнь ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΏΠΎ сСй дСнь Π² Ρ€Π°Π·Π½Ρ‹Ρ… Π²ΠΈΠ΄Π°Ρ…, Π½ΠΎ ΡƒΠΆΠ΅ Ρ‡Π°Ρ‰Π΅ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… уровнях ΠΈ с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

ΠœΠΈΠ½ΡƒΡΡ‹ ΠΈ ΠΏΠ»ΡŽΡΡ‹ разумССтся Π΅ΡΡ‚ΡŒ Ρƒ ΠΎΠ±ΠΎΠΈΡ… ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ², ΠΈ Π² основном это касаСтся рСсурсов Π·Π°Ρ‚Ρ€Π°Ρ‡ΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ систСмы ΠΈ Π³Π»ΡƒΠ±ΠΈΠ½Ρ‹ Π·Π½Π°Π½ΠΈΠΉ Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹Ρ… для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ этой самой систСмы.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Dev, Stage ΠΈ Production Π Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ для сайтов WordPress?

Π˜Ρ‚Π°ΠΊ, ΠΌΠΎΠΉ вопрос, ΠΊΠ°ΠΊ Π²Ρ‹, рСбята, Π΄Π΅Π»Π°Π΅Ρ‚Π΅ это? Π£ мСня Π±Ρ‹Π» быстрый Google ΠΈ я ΡƒΠ²ΠΈΠ΄Π΅Π», Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΌ Π±Ρ‹Π»ΠΎ нСсколько ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ², это СдинствСнный способ? КакиС ΠΈΠ· Π½ΠΈΡ… Π΄Π΅Π»Π°ΡŽΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π»ΡƒΡ‡ΡˆΠ΅ всСго с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния простоты использования, скорости, надСТности, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса ΠΈ Ρ‚. Π”.?

Π£ мСня Π΅ΡΡ‚ΡŒ установка, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ я ΠΎΡ‡Π΅Π½ΡŒ Π³ΠΎΡ€ΠΆΡƒΡΡŒ, ΠΈ ΠΎΠ½Π° ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ для ΠΌΠΎΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.

ΠžΠ±Ρ‰Π°Ρ структура

Π‘Ρ€Π΅Π΄Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ

БцСничСская срСда

Когда ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ ΠΈΠ· develop Π²Π΅Ρ‚ΠΊΠΈ Π² Gitosis, ΠΎΠ½ΠΈ автоматичСски Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π½Π° нашСм ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠΌ сСрвСрС. ΠŸΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Π°Ρ Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… являСтся ΠΏΠΎΠ΄Ρ‡ΠΈΠ½Π΅Π½Π½ΠΎΠΉ производствСнной Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ….

ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡ‚Π²Π΅Π½Π½Π°Ρ срСда

Когда ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ Π² Gitosis Π² master Ρ„ΠΈΠ»ΠΈΠ°Π»Π΅, ΠΎΠ½ автоматичСски развСртываСтся Π½Π° производствСнном сСрвСрС.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с wp-config.php

Π”Ρ€ΡƒΠ³ΠΈΠ΅ Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ

Π£ мСня Π±Ρ‹Π»ΠΎ ΠΎΠΊΠΎΠ»ΠΎ 10 Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ Π½Π°Π΄ этой структурой большС Π³ΠΎΠ΄Π°, ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π½Π΅ΠΉ Π±Ρ‹Π»ΠΎ ΠΌΠ΅Ρ‡Ρ‚ΠΎΠΉ. НадСТный, бСзопасный, быстрый, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈ Π³ΠΈΠ±ΠΊΠΈΠΉ, Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ Π³ΠΎΡ€Π°Π·Π΄ΠΎ большСго!

Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, я ΡΡ‡ΠΈΡ‚Π°ΡŽ Π²Π°ΠΆΠ½Ρ‹ΠΌ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΡΠΎΠ±ΠΈΡ€Π°Π΅Ρ‚Π΅ΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для контроля вСрсий. Π― Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π» Π±Ρ‹ ΠΏΡ€ΠΎΡ‚ΠΈΠ² ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ вСсь ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ WP ΠΏΠΎΠ΄ VC. Π― Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ смысл ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ wp-content / themes / YourThemeName Π² VC. Для большого сайта с большим количСством слоТных ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² я ΠΌΠΎΠ³ Π±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ случай Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ wp-content / plugins. Если Π²Π°ΠΌ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ wp-content / uploads. ΠžΡ‚Π²Π΅Ρ‚Ρ‹ Π½ΠΈΠΆΠ΅ Π±ΡƒΠ΄ΡƒΡ‚ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ, Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΎΠΉ Ρƒ вас ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ вСрсий.

Учитывая это, Π²ΠΎΡ‚ Ρ‡Ρ‚ΠΎ я ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ:

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°: ΠžΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ ΠΊΠΎΠΏΠΈΠΈ вашСго Ρ€Π΅ΠΏΠΎ Π² Π²Π°ΡˆΡƒ срСду WP. УстановитС POST-COMMIT Hook Π² SVN, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ этот Ρ€Π΅ΠΏΠΎ ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅. Π­Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. (Π‘Ρ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ это Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΉ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠ΅ΠΉ бСдняка.)

ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡ‚Π²ΠΎ: ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ‚Π΅Π³ вСрсии, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚Π°. Когда Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ, ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Ρ‚Π΅Π³ ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚Π΅ Ρ€Π΅ΠΏΠΎ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠžΡΠ½ΠΎΠ²Ρ‹ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ CI/CD

Π’ Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ рассмотрим основныС Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ CI/CD, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ с использованиСм werf.

ЦСль ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ CI/CD для нас проста: Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ измСнСния Π² ΠΊΠΎΠ΄Π΅ Π΄ΠΎ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ быстрСС. CI/CD состоит ΠΈΠ· 2‑х частСй: CI ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚ Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠ΅ слияниС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ ΠΊΠΎΠ΄ΠΎΠ²ΡƒΡŽ Π±Π°Π·Ρƒ, Π° CD Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΡƒΡŽ доставку этих ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π΄ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

Π‘Π½Π°Ρ‡Π°Π»Π° ΠΌΡ‹ Π΄Π°Π΄ΠΈΠΌ понятия ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΉ ΠΈ workflow, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ ΠΊ описанию Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… workflow, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ· ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½Ρ‹Ρ… ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ…. РСкомСндуСтся Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ ΡΡ‚Π°Ρ‚ΡŒΡΠΌΠΈ для настройки ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… CI/CD систСм:

ΠžΡΠ½ΠΎΠ²Ρ‹

NOTICE: По тСксту Π΄Π°Π»Π΅Π΅ git ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ имя Π½Π°Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ для любой систСмы контроля вСрсий, ΠΎΠ΄Π½Π°ΠΊΠΎ werf ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ лишь эту систСму контроля вСрсий. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ΡΡ знакомство читатСля с Ρ‚Π°ΠΊΠΈΠΌΠΈ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°ΠΌΠΈ, связанными с git, ΠΊΠ°ΠΊ: Π²Π΅Ρ‚ΠΊΠ° (branch), Ρ‚Π΅Π³ (tag), мастСр (master), ΠΊΠΎΠΌΠΌΠΈΡ‚ (commit), слияниС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ (merge), rebase, Ρ€Π΅Π²Π΅Ρ€Ρ‚ (revert), fast-forward merge, ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° git push-force. РСкомСндуСтся ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ ΠΈ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ² для ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ понимания ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π° Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠΈ.

ΠžΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅

Production

Π’ этом ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ разрабатываСмая систСма, это Ρ†Π΅Π»Π΅Π²ΠΎΠ΅ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ для всСх ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π΅Π»Π°ΡŽΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ систСмы. Π­Ρ‚ΠΈΠΌ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Π² процСссС эксплуатации систСмы.

Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚Π°ΠΊΠΆΠ΅ Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ production-like окруТСния, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ конфигурация Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… для окруТСния рСсурсов (инфраструктура, конфигурация ΠΆΠ΅Π»Π΅Π·Π°, вСрсии софта, опСрационная систСма, сСтСвая организация), Π° Ρ‚Π°ΠΊΠΆΠ΅ внСшниС сСрвисы β€” ΠΏΠΎ максимуму насколько Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚ с production ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ΠΌ. Π•ΡΡ‚ΡŒ Π½ΡŽΠ°Π½ΡΡ‹, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… различия ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ, Π½ΠΎ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ production-like ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ свои допустимыС риски связанныС с Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ΠΌ с production ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ΠΌ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ‚Π°ΠΊΠΈΡ… ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΉ: staging ΠΈ testing β€” рассмотрСны Π΄Π°Π»Π΅Π΅.

Staging

Staging β€” это production-like ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ происходит Ρ„ΠΈΠ½Π°Π»ΡŒΠ½Π°Ρ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹ΠΊΠ°Ρ‚ΠΎΠΌ Π½Π° production. Staging Π΄Π°Ρ‘Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ»Π½Π΅Π΅ ΠΏΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ бизнСс-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ прилоТСния ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ это Ρ‚ΠΎ мСсто, ΠΊΡƒΠ΄Π° ΠΈΠ΄ΡƒΡ‚ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Ρ‹, тСстировщики, Π·Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊΠΈ.

Π’ случаС, Ссли ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ связано с ΠΊΠ°ΠΊΠΈΠΌΠΈ Π»ΠΈΠ±ΠΎ внСшними сСрвисами, staging β€” это СдинствСнноС ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠΌΠΈΠΌΠΎ production, Π³Π΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ новая вСрсия Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² связкС с Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ вСрсиями Π²Π½Π΅ΡˆΠ½ΠΈΡ… систСм.

Testing

Testing β€” это production-like ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅, Ρ†Π΅Π»ΡŒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ: Π²Ρ‹ΡΠ²ΠΈΡ‚ΡŒ возникшиС Ρƒ прилоТСния ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π½Π° production ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ. Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ β€œΠ΄ΠΎΠ»Π³ΠΈΠ΅β€ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ тСсты прилоТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‚ мноТСство аспСктов Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρ‹. Π§Π΅ΠΌ большС Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ testing ΠΈ production, Ρ‚Π΅ΠΌ большС рисков ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π½Π΅Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ послС ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠ³ΠΎ Π²Ρ‹ΠΊΠ°Ρ‚Π°, поэтому рСкомСндуСтся максимально ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡ‚ΡŒ production ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ (ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΉ софт, вСрсии, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, IP-адрСса ΠΈ ΠΏΠΎΡ€Ρ‚Ρ‹, ΠΆΠ΅Π»Π΅Π·ΠΎ ΠΈ Ρ‚.Π΄.).

Review

ДинамичСский (Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ) ΠΊΠΎΠ½Ρ‚ΡƒΡ€, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ для ΠΎΡ†Π΅Π½ΠΊΠΈ работоспособности написанного ΠΊΠΎΠ΄Π°, ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½ΠΎΠΉ ΠΎΡ†Π΅Π½ΠΊΠΈ работоспособности прилоТСния ΠΈ провСдСния Ρ‚Π°ΠΊΠΈΡ… экспСримСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ нСльзя Π΄Π΅Π»Π°Ρ‚ΡŒ Π½Π° production-like окруТСниях.

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ review-ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΉ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ динамичСски Π² Π»ΡŽΠ±Ρ‹Ρ… количСствах (Π² Ρ€Π°Π·ΡƒΠΌΠ½Ρ‹Ρ… ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ…, насколько ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ рСсурсы). Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, созданиС ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΎΠ³ΠΎ окруТСния инициируСтся Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ Ρ‡Π΅Ρ€Π΅Π· CI/CD систСму, Ρ‚Π°ΠΊΠΆΠ΅ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½ΠΎ автоматичСски послС отсутствия активности Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

Π Π΅Π»ΠΈΠ·Ρ‹ ΠΈ CI/CD

Π Π΅Π»ΠΈΠ· β€” это оформлСнная вСрсия прилоТСния с ΠΊΠ°ΠΊΠΈΠΌΠΈ-Ρ‚ΠΎ измСнСниями с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ Ρ€Π΅Π»ΠΈΠ·Π°.

Π’ каскадном (ΠΈΠ»ΠΈ Π²ΠΎΠ΄ΠΎΠΏΠ°Π΄Π½ΠΎΠΌ) ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π΅ ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ софта Ρ€Π΅Π»ΠΈΠ·Ρ‹ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π΄Π΅Π»Π°ΡŽΡ‚ΡΡ Ρ€Π΅Π΄ΠΊΠΎ ΠΈ содСрТат мноТСство ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. Доставка Ρ‚Π°ΠΊΠΈΡ… Ρ€Π΅Π»ΠΈΠ·ΠΎΠ² Π² окруТСния Ρ‚Π°ΠΊΠΆΠ΅ происходит Ρ€Π΅Π΄ΠΊΠΎ, Π½ΠΎ Π² этот ΠΌΠΎΠΌΠ΅Π½Ρ‚ всС усилия ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ тратятся Π½Π° слСТСниС Π·Π° Π½ΠΎΠ²ΠΎΠΉ вСрсиСй, исправлСниС ошибок, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Ρ‡Ρ‚ΠΎ всё ΠΏΡ€ΠΎΡˆΠ»ΠΎ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ это ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΈ ΠΎΡ‡Π΅Π½ΡŒ отвСтствСнный этап Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, ΠΈ ΠΏΠΎΠΊΠ° ΠΎΠ½ длится, Π½ΠΎΠ²Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ‚ (Π° Ссли ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚, Ρ‚ΠΎ ΠΏΠΎΠΊΠ° Π½Π΅Ρ‚ возмоТности Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π΄ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ€Π΅Π»ΠΈΠ·Π°). Новая вСрсия Π΅Ρ‰Ρ‘ Π½Π΅ Π±Ρ‹Π»Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π° Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ ΠΆΠΈΠ·Π½ΠΈ, ΠΈΠ»ΠΈ Π±Ρ‹Π»Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π° тСстами, Π½ΠΎ этого всё Ρ€Π°Π²Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ нСдостаточно β€” с этим связаны большиС риски, Ρ‡Ρ‚ΠΎ новая вСрсия прилоТСния Π½Π΅ Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚.

Π’ CI/CD ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π΅ Ρ€Π΅Π»ΠΈΠ·Ρ‹ Π΄Π΅Π»Π°ΡŽΡ‚ΡΡ часто, ΠΈ Ρ€Π΅Π»ΠΈΠ·Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΌΠ°Π»ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. ΠŸΠΎΠΎΡ‰Ρ€ΡΠ΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Ρ€Π°Π·Π±ΠΈΠ²Π°Π»ΠΈ Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΠΈΡ‡ΠΈ Π½Π° Ρ‚Π°ΠΊΠΈΠ΅ куски, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ сразу ΠΎΠ±ΠΊΠ°Ρ‚Π°Ρ‚ΡŒ Π½Π° production-like ΠΈΠ»ΠΈ production окруТСниях. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΎΠ½ΠΈΠΊΠ»ΠΈΡΡŒ Ρ‚Π°ΠΊΠΈΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠΌ, сами хотят ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ быстрСС ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄ Π² Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΠ±Ρ€Π°Ρ‚Π½ΡƒΡŽ связь β€” послС этого ΠΎΠΏΠΈΡ€Π°ΡΡΡŒ Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΡ‰Π΅ Π΄Π΅Π»Π°ΡŽΡ‚ΡΡ Π½ΠΎΠ²Ρ‹Π΅ измСнСния. Π”ΠΎ ΠΊΠΎΠ½Ρ†Π° Π΄ΠΎΠ΄Π΅Π»Π°Π½Π½Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ лишь Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ написан, Π½ΠΎ ΠΈ задСйствован Π² production.

Π’Π°ΠΆΠ½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π² ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ настоящСго CI/CD процСсса Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ измСнСния Π² ΠΊΠΎΠ΄Π΅ быстро доносились Π΄ΠΎ production-like ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΉ β€” Π±ΡƒΠ΄ΡŒ Ρ‚ΠΎ staging, testing ΠΈΠ»ΠΈ ΠΆΠ΅ сам production. Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΌ Π°Π½Ρ‚ΠΈΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ΠΎΠΌ ΠΏΡ€ΠΈ использовании CI/CD являСтся Π΅Π΄ΠΈΠ½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ Π²Ρ‹ΠΊΠ°Ρ‚ Π½Π° production-like ΠΈΠ»ΠΈ production ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ мноТСства Π½Π°ΠΊΠΎΠΏΠΈΠ²ΡˆΠΈΡ…ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, сдСланных Ρ€Π°Π½Π΅Π΅ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅. Π’Π°ΠΊΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΈΠ·-Π·Π° Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ управлСния ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Π½Π΅ позволяСтся Π²Ρ‹ΠΊΠ°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π½Π° production-like окруТСния Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ…-Ρ‚ΠΎ Π»ΠΈΡˆΠ½ΠΈΡ… согласований (СстСствСнно ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ ΠΊΠΎΠ΄Π° автоматичСскими тСстами Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ отмСнял). Π›ΠΈΠ±ΠΎ это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ связано с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ CI/CD систСма тСхничСски построСна Π½Π° Π½Π΅ΡƒΠ΄ΠΎΠ±Π½Ρ‹Ρ… инструмСнтах ΠΈ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π°Ρ…, ΠΈ со стороны каТСтся, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° ΠΏΠΎΡ…ΠΎΠΆΠ° Π½Π° CI/CD, Π° ΠΏΠΎ Ρ„Π°ΠΊΡ‚Ρƒ Π½Π΅ΡƒΠ΄ΠΎΠ±Π½Π° для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, использованиС git-Ρ‚Π΅Π³ΠΎΠ² с сообщСниСм для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ€Π΅Π»ΠΈΠ·Π°).

Π₯ΠΎΡ€ΠΎΡˆΠ°Ρ CI/CD систСма Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΠΎΠΌΠΎΠ³Π°Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΡƒΠ΄ΠΎΠ±Π½ΠΎ Π΄ΠΎΠ½ΠΎΡΠΈΡ‚ΡŒ измСнСния Π΄ΠΎ production Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠΈΠ½ΡƒΡ‚, ΠΈΠΌΠ΅Ρ‚ΡŒ возмоТности ΠΎΡ‚ΠΊΠ°Ρ‚Π°, Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ эти измСнСния Π½Π° Π»Π΅Ρ‚Ρƒ, Π½ΠΎ Π½Π΅ ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π»ΠΈΡˆΠ½ΠΈΡ… Π±Π°Ρ€ΡŒΠ΅Ρ€ΠΎΠ² ΠΈ Π½Π΅ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ бСссмыслСнных ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΡ…ΡΡ дСйствий.

Π’Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΎΠΌ Ρ…ΠΎΡ€ΠΎΡˆΠΎ построСнной CI/CD систСмы являСтся синхронизация состояния ΠΊΠΎΠ΄Π° Π² git ΠΈ Π²Ρ‹ΠΊΠ°Ρ‡Π΅Π½Π½ΠΎΠ³ΠΎ прилоТСния Π½Π° production-like ΠΈ production окруТСниях. НапримСр, ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π²Ρ‹ΠΊΠ°Ρ‡Π΅Π½Π½ΠΎΠ΅ для staging соотвСтствуСт послСднСму измСнСнию сдСланному Π² Π²Π΅Ρ‚ΠΊΡƒ staging (это лишь ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ). Если ΠΊΠΎΠ΄ Π² Π²Π΅Ρ‚ΠΊΠ΅ staging сломан, Ρ‚ΠΎ ΠΈ Π²Ρ‹ΠΊΠ°Ρ‡Π΅Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ staging Ρ‚Π°ΠΊΠΆΠ΅ сломано. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ нСльзя, Π½ΠΎ ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠΎΠ΄ΠΎΠΌ ΠΈΠ· Π²Π΅Ρ‚ΠΊΠΈ staging Ρ‚ΠΎΠΆΠ΅ нСльзя β€” вСдь Π½Π° Π½Π΅Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ ΠΊΠΎΠ΄Π΅ нСльзя ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΌΡ‹ Π΄Π΅Ρ€ΠΆΠΈΠΌ ΠΊΠΎΠ΄ Π²Π΅Ρ‚ΠΊΠΈ staging (послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚ Π² эту Π²Π΅Ρ‚ΠΊΡƒ) ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² синхронизированном состоянии, Π° Π½Π΅ ΠΎΡ‚ΠΊΠ°Ρ‚Ρ‹Π²Π°Π΅ΠΌ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ staging Π½Π° старый ΠΊΠΎΠΌΠΌΠΈΡ‚. И поэтому Π² Π΄Π°Π½Π½ΠΎΠΉ ситуации Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ Π»ΠΈΠ±ΠΎ быстро Ρ„ΠΈΠΊΡΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ ΠΈ Π²Ρ‹ΠΊΠ°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² Π²Π΅Ρ‚ΠΊΡƒ с автоматичСским Π²Ρ‹ΠΊΠ°Ρ‚ΠΎΠΌ Π½Π° ΠΊΠΎΠ½Ρ‚ΡƒΡ€, Π»ΠΈΠ±ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ revert внСсённого измСнСния с автоматичСским Π²Ρ‹ΠΊΠ°Ρ‚ΠΎΠΌ Π½Π° ΠΊΠΎΠ½Ρ‚ΡƒΡ€ β€” ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π΄Π²ΡƒΡ….

Π’ Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠΈΡ… Ρ€Π°Π·Π΄Π΅Π»Π°Ρ… ΠΌΡ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ workflow ΠΈ насколько ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ… соотвСтствуСт ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°ΠΌ CI/CD.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ pipeline ΠΈ workflow

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ git ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ вносит измСнСния Π² ΠΊΠΎΠ΄ΠΎΠ²ΡƒΡŽ Π±Π°Π·Ρƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ Π² Π³ΠΈΡ‚ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ pipeline со стороны CI/CD систСмы. Pipeline Ρ€Π°Π·Π±ΠΈΡ‚ Π½Π° стадии, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠ»ΠΈ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ.

Π“Π»Π°Π²Π½ΠΎΠ΅ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ pipeline β€” донСсти внСсённоС Π² Π³ΠΈΡ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ окруТСния. Π’ случаС нСпрохоТдСния ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ стадии pipeline прСрываСтся ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Ρ‚Π΅ΠΌ самым ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΎΠ±Ρ€Π°Ρ‚Π½ΡƒΡŽ связь. ΠšΠΎΠΌΠΌΠΈΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ ΠΏΠΎ всСм Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌ стадиям ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ‚ Π½Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚ΡƒΡ€/ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅.

Π‘Ρ‹Π²Π°ΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ основныС Ρ‚ΠΈΠΏΡ‹ стадий:

Pull request

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ вносит измСнСния Π² ΠΊΠΎΠ΄ΠΎΠ²ΡƒΡŽ Π±Π°Π·Ρƒ ΠΏΡƒΡ‚Ρ‘ΠΌ создания ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π² git ΠΈ pull request-ΠΎΠ² Π² CI/CD систСмС. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ pull request β€” это ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ, которая связываСт ΠΊΠΎΠΌΠΌΠΈΡ‚ Π² git ΠΈ pipeline (Π° Ρ‚Π°ΠΊΠΆΠ΅ позволяСт Π΄Π΅Π»Π°Ρ‚ΡŒ review, ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΈ ΠΏΡ€.). Π’ Ρ€Π°Π·Π½Ρ‹Ρ… CI/CD систСмах pull request ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ (Merge Request Π² GitLab CI) ΠΈΠ»ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ (Jenkins).

Workflow

Pipeline-Ρ‹ ΠΈ стадии Π²Π½ΡƒΡ‚Ρ€ΠΈ pipeline-ΠΎΠ² ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ ΠΊΠ°ΠΊ автоматичСски, Ρ‚Π°ΠΊ ΠΈ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ. Бпособы Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ pipeline-ΠΎΠ², ΠΈΡ… устройство, связь с Π³ΠΈΡ‚, Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹Π΅ дСйствия со стороны ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ β€” всё это Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒΡΡ Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΌ workflow. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ мноТСство Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² workflow для достиТСния ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Ρ‚ΠΎΠΉ ΠΆΠ΅ Ρ†Π΅Π»ΠΈ. Π”Π°Π»Π΅Π΅ ΠΌΡ‹ рассмотрим Ρ‚Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ с использованиСм werf.

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ Ρ€ΡƒΡ‡Π½ΠΎΠ³ΠΎ запуска pipeline

Π ΡƒΡ‡Π½ΠΎΠΉ запуск pipeline ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚:

Бтадия тСстирования

Для ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ CI/CD ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΎ Π²ΠΎ врСмя внСсСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΊΠΎΠ΄ΠΎΠ²ΡƒΡŽ Π±Π°Π·Ρƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Π±Ρ‹ΡΡ‚Ρ€ΡƒΡŽ ΠΎΠ±Ρ€Π°Ρ‚Π½ΡƒΡŽ связь Π² автоматичСском Ρ€Π΅ΠΆΠΈΠΌΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ тСстов. ΠŸΡ€ΠΈΡ‡Ρ‘ΠΌ ΡΡ‚Π°Π΄ΠΈΡŽ тСстирования ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ Π½Π° 2 условных этапа: Π½Π° ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½ΠΎΠΌ этапС тСсты проходят быстро ΠΈ ΠΏΠΎΠΊΡ€Ρ‹Π²Π°ΡŽΡ‚ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Π½Π° Π²Ρ‚ΠΎΡ€ΠΈΡ‡Π½ΠΎΠΌ этапС тСсты ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π΄ΠΎΠ»Π³ΠΎ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ большС аспСктов ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠŸΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹Π΅ тСсты ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ автоматичСски ΠΈ ΠΈΡ… ΠΏΡ€ΠΎΡ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ являСтся ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ условиСм для допуска ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΊ Ρ€Π΅Π»ΠΈΠ·Ρƒ.

Π§Ρ‚ΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ дальшС

Π”Π°Π»ΡŒΡˆΠ΅ рСкомСндуСтся ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с инструкциСй ΠΏΠΎ вашСй CI/CD систСмС:

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС подробностСй ΠΏΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠ΅ составлСния workflow ΠΈΠ»ΠΈ для вашСй CI/CD систСмы Π½Π΅ нашлось инструкции, Ρ‚ΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ ознакомится с дальнСйшими Ρ€Π°Π·Π΄Π΅Π»Π°ΠΌΠΈ Π³Π΄Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ workflow ΠΈ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ workflow. ПослС этого Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²ΡƒΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ ΠΈΠ»ΠΈ ΡΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ свою ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Ρ‘ для вашСй CI/CD систСмы с использованиСм werf.

Π‘ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ workflow для ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΉ

Π”Π°Π»Π΅Π΅ рассмотрим Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ Π²Ρ‹ΠΊΠ°Ρ‚Π° production ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΉ Π² связкС с git. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΡƒΠ½ΠΊΡ‚ опрСдСляСт ΡΡ‚Ρ€ΠΎΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π±Π»ΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΌ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ΠΌ. ΠœΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ ΡΡ‚Ρ€ΠΎΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π±Π»ΠΎΠΊ Π±Π»ΠΎΠΊΠΎΠΌ workflow. Из Π±Π»ΠΎΠΊΠΎΠ² workflow Π² дальнСйшСм ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ свой workflow ΠΈΠ»ΠΈ Π²Π·ΡΡ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²ΡƒΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ (см. Π΄Π°Π»Π΅Π΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ workflow).

Review окруТСния ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ ΠΈ ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ динамичСски ΠΏΠΎ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΡŽ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². Π‘ этим связаны особСнности Π²Ρ‹ΠΊΠ°Ρ‚Π° Π² эти окруТСния. Π’ Ρ€Π°Π·Π΄Π΅Π»Π°Ρ…, связанных с review, Π±ΡƒΠ΄Π΅Ρ‚ описано Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ review-ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅, Π½ΠΎ ΠΈ ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ.

Π’Ρ‹ΠΊΠ°Ρ‚ Π½Π° production ΠΈΠ· master автоматичСски

Merge ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚ Π² Π²Π΅Ρ‚ΠΊΡƒ master Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ pipeline Π²Ρ‹ΠΊΠ°Ρ‚Π° нСпосрСдствСнно Π½Π° production.

БостояниС Π²Π΅Ρ‚ΠΊΠΈ Π² любой ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΎΡ‚Ρ€Π°ΠΆΠ°Π΅Ρ‚ состояниС окруТСния. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π΄Π°Π½Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ являСтся ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρƒ true CI/CD.

Π’Ρ‹ΠΊΠ°Ρ‚ Π½Π° production ΠΈΠ· master ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅

Pipeline Π²Ρ‹ΠΊΠ°Ρ‚Π° Π² production ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΏΡƒΡ‰Π΅Π½ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅ ΠΈΠ· Π²Π΅Ρ‚ΠΊΠΈ master. Запуск pipeline производится срСдствами CI/CD систСмы Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ: ΠΊΠ½ΠΎΠΏΠΊΠ° Π² CI/CD систСмС ΠΈΠ»ΠΈ Π²Ρ‹Π·ΠΎΠ² API.

Π’Ρ‹ΠΊΠ°Ρ‚ Π½Π° production ΠΈΠ· Ρ‚Π΅Π³Π° автоматичСски

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ‚Π΅Π³Π° автоматичСски Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ pipeline Π²Ρ‹ΠΊΠ°Ρ‚Π° Π½Π° production-ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ· ΠΊΠΎΠΌΠΌΠΈΡ‚Π°, связанного с этим Ρ‚Π΅Π³ΠΎΠΌ.

Π’Ρ‹ΠΊΠ°Ρ‚ Π½Π° production ΠΈΠ· Ρ‚Π΅Π³Π° ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅

Pipeline Π²Ρ‹ΠΊΠ°Ρ‚Π° Π² production-ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌ Ρ‚Π΅Π³Π΅ Π² git. Запуск pipeline производится срСдствами CI/CD систСмы Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ: ΠΊΠ½ΠΎΠΏΠΊΠ° Π² CI/CD систСмС ΠΈΠ»ΠΈ Π²Ρ‹Π·ΠΎΠ² API.

Π’Ρ‹ΠΊΠ°Ρ‚ Π½Π° production ΠΈΠ· Π²Π΅Ρ‚ΠΊΠΈ автоматичСски

Merge ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚ Π² ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ pipeline Π²Ρ‹ΠΊΠ°Ρ‚Π° нСпосрСдствСнно Π½Π° production (Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΏΠΎΡ…ΠΎΠΆ Π½Π° (master-автоматичСски)(#master-автоматичСски), Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ Π²Π΅Ρ‚ΠΊΠ°).

БостояниС ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ Π² любой ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΎΡ‚Ρ€Π°ΠΆΠ°Π΅Ρ‚ состояниС окруТСния. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π΄Π°Π½Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ являСтся ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρƒ true CI/CD.

Π’Ρ‹ΠΊΠ°Ρ‚ Π½Π° production ΠΈΠ· Π²Π΅Ρ‚ΠΊΠΈ ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅

Pipeline Π²Ρ‹ΠΊΠ°Ρ‚Π° Π² production ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΏΡƒΡ‰Π΅Π½ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅ ΠΈΠ· ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ. Запуск pipeline производится срСдствами CI/CD систСмы Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ: ΠΊΠ½ΠΎΠΏΠΊΠ° Π² CI/CD систСмС ΠΈΠ»ΠΈ Π²Ρ‹Π·ΠΎΠ² API.

Π’Ρ‹ΠΊΠ°Ρ‚ Π½Π° production-like ΠΈΠ· pull request ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅

Pipeline Π²Ρ‹ΠΊΠ°Ρ‚Π° Π² production ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΏΡƒΡ‰Π΅Π½ Π½Π° любом ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅ Π² pull request. Запуск pipeline производится срСдствами CI/CD систСмы Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ: ΠΊΠ½ΠΎΠΏΠΊΠ° Π² CI/CD систСмС ΠΈΠ»ΠΈ Π²Ρ‹Π·ΠΎΠ² API.

Π’Ρ‹ΠΊΠ°Ρ‚ Π½Π° staging ΠΈΠ· master автоматичСски

Merge ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚ Π² Π²Π΅Ρ‚ΠΊΡƒ master Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ pipeline Π²Ρ‹ΠΊΠ°Ρ‚Π° нСпосрСдствСнно Π½Π° staging ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅.

БостояниС Π²Π΅Ρ‚ΠΊΠΈ Π² любой ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΎΡ‚Ρ€Π°ΠΆΠ°Π΅Ρ‚ состояниС окруТСния. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π΄Π°Π½Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ являСтся ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρƒ true CI/CD.

Π’Ρ‹ΠΊΠ°Ρ‚ Π½Π° staging ΠΈΠ· master ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅

Pipeline Π²Ρ‹ΠΊΠ°Ρ‚Π° Π² staging ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΏΡƒΡ‰Π΅Π½ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅ ΠΈΠ· Π²Π΅Ρ‚ΠΊΠΈ master. Запуск pipeline производится срСдствами CI/CD систСмы Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ: ΠΊΠ½ΠΎΠΏΠΊΠ° Π² CI/CD систСмС ΠΈΠ»ΠΈ Π²Ρ‹Π·ΠΎΠ² API.

Π’Ρ‹ΠΊΠ°Ρ‚ Π½Π° production-like ΠΈΠ· Π²Π΅Ρ‚ΠΊΠΈ автоматичСски

Merge ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚ Π² ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ pipeline Π²Ρ‹ΠΊΠ°Ρ‚Π° нСпосрСдствСнно Π½Π° production-like ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ (Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΏΠΎΡ…ΠΎΠΆ Π½Π° (master-автоматичСски)(#master-автоматичСски), Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ Π²Π΅Ρ‚ΠΊΠ°). Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ production-like окруТСния, ΠΊΠ°ΠΊ Ρ‚ΠΎ: staging ΠΈΠ»ΠΈ testing β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ Π²Π΅Ρ‚ΠΊΠ°.

БостояниС ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ Π² любой ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΎΡ‚Ρ€Π°ΠΆΠ°Π΅Ρ‚ состояниС окруТСния. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π΄Π°Π½Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ являСтся ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρƒ true CI/CD.

Π’Ρ‹ΠΊΠ°Ρ‚ Π½Π° production-like ΠΈΠ· Π²Π΅Ρ‚ΠΊΠΈ ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅

Pipeline Π²Ρ‹ΠΊΠ°Ρ‚Π° Π² production-like ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΏΡƒΡ‰Π΅Π½ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅ ΠΈΠ· ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ. Запуск pipeline производится срСдствами CI/CD систСмы Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ: ΠΊΠ½ΠΎΠΏΠΊΠ° Π² CI/CD систСмС ΠΈΠ»ΠΈ Π²Ρ‹Π·ΠΎΠ² API.

Π’Ρ‹ΠΊΠ°Ρ‚ Π½Π° review ΠΈΠ· pull request автоматичСски

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ pull request автоматичСски Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Π²Ρ‹ΠΊΠ°Ρ‚ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ΅ review ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅. НазваниС этого окруТСния связано с ΠΈΠΌΠ΅Π½Π΅ΠΌ Π²Π΅Ρ‚ΠΊΠΈ. Π”Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π² Π²Π΅Ρ‚ΠΊΡƒ, ΡΠ²ΡΠ·Π°Π½Π½ΡƒΡŽ с pull request автоматичСски Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ Π²Ρ‹ΠΊΠ°Ρ‚ Π² review ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅.

Π’Ρ‹ΠΊΠ°Ρ‚ Π½Π° review ΠΈΠ· Π²Π΅Ρ‚ΠΊΠΈ ΠΏΠΎ ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ автоматичСски

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ pull request для Π²Π΅Ρ‚ΠΊΠΈ, подходящСй ΠΏΠΎΠ΄ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΉ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ автоматичСски Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Π²Ρ‹ΠΊΠ°Ρ‚ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ΅ review ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅. НазваниС этого окруТСния связано с ΠΈΠΌΠ΅Π½Π΅ΠΌ Π²Π΅Ρ‚ΠΊΠΈ. Π”Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π² Π²Π΅Ρ‚ΠΊΡƒ, ΡΠ²ΡΠ·Π°Π½Π½ΡƒΡŽ с pull request автоматичСски Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ Π²Ρ‹ΠΊΠ°Ρ‚ Π² review ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅.

НапримСр, для ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Π° review_* созданиС pull request для Π²Π΅Ρ‚ΠΊΠΈ review_myfeature1 Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ автоматичСскоС созданиС ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ review окруТСния.

Π’Ρ‹ΠΊΠ°Ρ‚ Π½Π° review ΠΈΠ· pull request ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅

Π’Ρ‹ΠΊΠ°Ρ‚ Π½Π° review ΠΈΠ· pull request автоматичСски послС Ρ€ΡƒΡ‡Π½ΠΎΠΉ Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ

Review-ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ для pull request создаётся послС Π΅Π³ΠΎ Ρ€ΡƒΡ‡Π½ΠΎΠΉ Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ срСдствами CI/CD систСмы. Π‘ этого ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° любой ΠΊΠΎΠΌΠΌΠΈΡ‚ Π² Π²Π΅Ρ‚ΠΊΡƒ, ΡΠ²ΡΠ·Π°Π½Π½ΡƒΡŽ с pull request, Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ автоматичСский Π²Ρ‹ΠΊΠ°Ρ‚ Π½Π° review ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅. ПослС Ρ€Π°Π±ΠΎΡ‚Ρ‹ с review Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ срСдствами CI/CD систСмы.

Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… Π±Π»ΠΎΠΊΠΎΠ² для построСния workflow

Π‘Ρ‚Π΅ΠΏΠ΅Π½ΡŒ управляСмости Ρ‡Π΅Ρ€Π΅Π· git

ΠžΡ‚ΠΊΠ°Ρ‚ Ρ‡Π΅Ρ€Π΅Π· gitΠ ΡƒΡ‡Π½ΠΎΠΉ ΠΎΡ‚ΠΊΠ°Ρ‚
Π’Ρ‹ΠΊΠ°Ρ‚ Ρ‡Π΅Ρ€Π΅Π· gitΠ’Ρ‹ΠΊΠ°Ρ‚ Π½Π° production ΠΈΠ· master автоматичСски;
Π’Ρ‹ΠΊΠ°Ρ‚ Π½Π° production ΠΈΠ· Ρ‚Π΅Π³Π° автоматичСски;
Π’Ρ‹ΠΊΠ°Ρ‚ Π½Π° production ΠΈΠ· Π²Π΅Ρ‚ΠΊΠΈ автоматичСски;
Π’Ρ‹ΠΊΠ°Ρ‚ Π½Π° staging ΠΈΠ· master автоматичСски;
Π’Ρ‹ΠΊΠ°Ρ‚ Π½Π° production-like ΠΈΠ· Π²Π΅Ρ‚ΠΊΠΈ автоматичСски;
Π’Ρ‹ΠΊΠ°Ρ‚ Π½Π° review ΠΈΠ· pull request автоматичСски;
Π’Ρ‹ΠΊΠ°Ρ‚ Π½Π° review ΠΈΠ· Π²Π΅Ρ‚ΠΊΠΈ ΠΏΠΎ ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ автоматичСски;
Π’Ρ‹ΠΊΠ°Ρ‚ Π½Π° review ΠΈΠ· pull request автоматичСски послС Ρ€ΡƒΡ‡Π½ΠΎΠΉ Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ (полуавтоматичСский);
Π’Ρ‹ΠΊΠ°Ρ‚ Π½Π° production ΠΈΠ· master автоматичСски;
Π’Ρ‹ΠΊΠ°Ρ‚ Π½Π° production ΠΈΠ· Ρ‚Π΅Π³Π° автоматичСски;
Π’Ρ‹ΠΊΠ°Ρ‚ Π½Π° production ΠΈΠ· Π²Π΅Ρ‚ΠΊΠΈ автоматичСски;
Π’Ρ‹ΠΊΠ°Ρ‚ Π½Π° staging ΠΈΠ· master автоматичСски;
Π’Ρ‹ΠΊΠ°Ρ‚ Π½Π° production-like ΠΈΠ· Π²Π΅Ρ‚ΠΊΠΈ автоматичСски;
Π’Ρ‹ΠΊΠ°Ρ‚ Π½Π° review ΠΈΠ· pull request автоматичСски;
Π’Ρ‹ΠΊΠ°Ρ‚ Π½Π° review ΠΈΠ· Π²Π΅Ρ‚ΠΊΠΈ ΠΏΠΎ ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ автоматичСски;
Π’Ρ‹ΠΊΠ°Ρ‚ Π½Π° review ΠΈΠ· pull request автоматичСски послС Ρ€ΡƒΡ‡Π½ΠΎΠΉ Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ (полуавтоматичСский);
Π ΡƒΡ‡Π½ΠΎΠΉ Π²Ρ‹ΠΊΠ°Ρ‚Π’Ρ‹ΠΊΠ°Ρ‚ Π½Π° review ΠΈΠ· pull request автоматичСски послС Ρ€ΡƒΡ‡Π½ΠΎΠΉ Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ (полуавтоматичСский);Π’Ρ‹ΠΊΠ°Ρ‚ Π½Π° production ΠΈΠ· master ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅;
Π’Ρ‹ΠΊΠ°Ρ‚ Π½Π° production ΠΈΠ· Ρ‚Π΅Π³Π° ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅;
Π’Ρ‹ΠΊΠ°Ρ‚ Π½Π° production ΠΈΠ· Π²Π΅Ρ‚ΠΊΠΈ ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅;
Π’Ρ‹ΠΊΠ°Ρ‚ Π½Π° production-like ΠΈΠ· pull request ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅;
Π’Ρ‹ΠΊΠ°Ρ‚ Π½Π° review ΠΈΠ· pull request ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅;
Π’Ρ‹ΠΊΠ°Ρ‚ Π½Π° review ΠΈΠ· pull request автоматичСски послС Ρ€ΡƒΡ‡Π½ΠΎΠΉ Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ (полуавтоматичСский);

БоотвСтствиС CI/CD

True CI/CDРСкомСндовано для werf
Π’Ρ‹ΠΊΠ°Ρ‚ Π½Π° production ΠΈΠ· master автоматичСскидада
Π’Ρ‹ΠΊΠ°Ρ‚ Π½Π° production ΠΈΠ· master ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅Π½Π΅Ρ‚Π½Π΅Ρ‚
Π’Ρ‹ΠΊΠ°Ρ‚ Π½Π° production ΠΈΠ· Ρ‚Π΅Π³Π° автоматичСскинСтда
Π’Ρ‹ΠΊΠ°Ρ‚ Π½Π° production ΠΈΠ· Ρ‚Π΅Π³Π° ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅Π½Π΅Ρ‚Π΄Π°
Π’Ρ‹ΠΊΠ°Ρ‚ Π½Π° production ΠΈΠ· Π²Π΅Ρ‚ΠΊΠΈ автоматичСскиданСт
Π’Ρ‹ΠΊΠ°Ρ‚ Π½Π° production ΠΈΠ· Π²Π΅Ρ‚ΠΊΠΈ ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅Π½Π΅Ρ‚Π½Π΅Ρ‚
Π’Ρ‹ΠΊΠ°Ρ‚ Π½Π° production-like ΠΈΠ· pull request ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅Π½Π΅Ρ‚Π΄Π°
Π’Ρ‹ΠΊΠ°Ρ‚ Π½Π° staging ΠΈΠ· master автоматичСскидада
Π’Ρ‹ΠΊΠ°Ρ‚ Π½Π° staging ΠΈΠ· master ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅Π½Π΅Ρ‚Π½Π΅Ρ‚
Π’Ρ‹ΠΊΠ°Ρ‚ Π½Π° production-like ΠΈΠ· Π²Π΅Ρ‚ΠΊΠΈ автоматичСскиданСт
Π’Ρ‹ΠΊΠ°Ρ‚ Π½Π° production-like ΠΈΠ· Π²Π΅Ρ‚ΠΊΠΈ ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅Π½Π΅Ρ‚Π½Π΅Ρ‚
Π’Ρ‹ΠΊΠ°Ρ‚ Π½Π° review ΠΈΠ· pull request автоматичСскиданСт
Π’Ρ‹ΠΊΠ°Ρ‚ Π½Π° review ΠΈΠ· Π²Π΅Ρ‚ΠΊΠΈ ΠΏΠΎ ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ автоматичСскиданСт
Π’Ρ‹ΠΊΠ°Ρ‚ Π½Π° review ΠΈΠ· pull request ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅Π½Π΅Ρ‚Π½Π΅Ρ‚
Π’Ρ‹ΠΊΠ°Ρ‚ Π½Π° review ΠΈΠ· pull request автоматичСски послС Ρ€ΡƒΡ‡Π½ΠΎΠΉ Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈΠ΄Π°Π΄Π°

Π“ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ workflow

ΠœΡ‹ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π½Π° Π²Ρ‹Π±ΠΎΡ€ нСсколько Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ workflow для ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Π­Ρ‚ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ составлСны ΠΈΠ· ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π²Ρ‹ΡˆΠ΅ Π±Π»ΠΎΠΊΠΎΠ² workflow. Π’ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ эти Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ Ρ‚Π°ΠΊΠΆΠ΅ стратСгиями workflow.

ΠšΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΠΈ ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² инструкциях ΠΏΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ CI/CD систСмС. НапримСр, Gitlab CI: ссылка, Github Actions: ссылка.

β„–1 Fast and Furious

ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π½Π° Π² качСствС Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠ°Π½ΠΎΠ½Π°ΠΌ CI/CD, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ werf.

Π’ Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ΅ число production-like ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠ°ΠΊ Ρ‚ΠΎ: testing, staging, development, qa, ΠΈ Ρ‚.Π΄.

ΠžΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅Π‘Π»ΠΎΠΊ workflow
ProductionΠ’Ρ‹ΠΊΠ°Ρ‚ Π½Π° production ΠΈΠ· master автоматичСски + ΠΎΡ‚ΠΊΠ°Ρ‚ Ρ‡Π΅Ρ€Π΅Π· revert
Staging / Testing / Development / QAΠ’Ρ‹ΠΊΠ°Ρ‚ Π½Π° production-like ΠΈΠ· pull request ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅
ReviewΠ’Ρ‹ΠΊΠ°Ρ‚ Π½Π° review ΠΈΠ· pull request автоматичСски послС Ρ€ΡƒΡ‡Π½ΠΎΠΉ Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ

β„–2 Push the button

ΠžΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅Π‘Π»ΠΎΠΊ workflow
ProductionΠ’Ρ‹ΠΊΠ°Ρ‚ Π½Π° production ΠΈΠ· master ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅
StagingΠ’Ρ‹ΠΊΠ°Ρ‚ Π½Π° staging ΠΈΠ· master автоматичСски
Testing / Development / QAΠ’Ρ‹ΠΊΠ°Ρ‚ Π½Π° production-like ΠΈΠ· Π²Π΅Ρ‚ΠΊΠΈ автоматичСски
ReviewΠ’Ρ‹ΠΊΠ°Ρ‚ Π½Π° review ΠΈΠ· pull request ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅

β„–3 Tag everything

НС всС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ сходу Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΊ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΡŽ CI/CD. Π’ Ρ‚Π°ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π±ΠΎΠ»Π΅Π΅ классичСский ΠΌΠ΅Ρ‚ΠΎΠ΄ создания Ρ€Π΅Π»ΠΈΠ·ΠΎΠ² Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ Ρ„Π°Π·Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΊ CI/CD Π² Ρ‚Π°ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ усилий ΠΏΠΎ ΠΏΡ€Π΅ΠΎΠ΄ΠΎΠ»Π΅Π½ΠΈΡŽ ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½Ρ‹Ρ… Π²Π΅Ρ‰Π΅ΠΉ ΠΈ пСрСосмыслСния ΠΊΠ°ΠΊ ΠΎΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², Ρ‚Π°ΠΊ ΠΈ ΠΎΡ‚ devops. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ для Ρ‚Π°ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² ΠΌΡ‹ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌ ΠΈ ΠΊΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ, которая Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π½Π° для werf Π² случаС нСвозмоТности использования fast & furious.

ΠžΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅Π‘Π»ΠΎΠΊ workflow
ProductionΠ’Ρ‹ΠΊΠ°Ρ‚ Π½Π° production ΠΈΠ· Ρ‚Π΅Π³Π° автоматичСски
StagingΠ’Ρ‹ΠΊΠ°Ρ‚ Π½Π° staging ΠΈΠ· master автоматичСски ΠΈΠ»ΠΈ Π²Ρ‹ΠΊΠ°Ρ‚ Π½Π° staging ΠΈΠ· master ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅
ReviewΠ’Ρ‹ΠΊΠ°Ρ‚ Π½Π° review ΠΈΠ· pull request автоматичСски послС Ρ€ΡƒΡ‡Π½ΠΎΠΉ Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ

β„–4 Branch, branch, branch

УправляСм Π²Ρ‹ΠΊΠ°Ρ‚ΠΎΠΌ прямо Ρ‡Π΅Ρ€Π΅Π· git с использованиСм Π²Π΅Ρ‚ΠΎΠΊ ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ git merge, rebase ΠΈ push-force. Π§Π΅Ρ€Π΅Π· созданиС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… ΠΈΠΌΠ΅Π½ Π²Π΅Ρ‚ΠΎΠΊ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ автоматичСский Π²Ρ‹ΠΊΠ°Ρ‚ Π½Π° review окруТСния.

Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ Ρ…ΠΎΡ‡Π΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ CI/CD ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈΠ· git. ΠžΡ‚ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Ρ‚Π°ΠΊΠΆΠ΅ являСтся ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΊΠ°Π½ΠΎΠ½Π°ΠΌ CI/CD, ΠΊΠ°ΠΊ ΠΈ fast & furious.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

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

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *