Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ enterprise Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°

Π­Π½Ρ‚Π΅Ρ€ΠΏΡ€Π°ΠΉΠ· Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° с нуля

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ enterprise Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ enterprise Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ enterprise Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ enterprise Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ enterprise Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°

На днях Ρƒ мСня появилась довольно интСрСсная идСя для ΡΡ‚Π°Ρ‚ΡŒΠΈ, основанная Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ прСдпосылкС: Π½Π° Π₯Π°Π±Ρ€Π΅ Π½ΠΈ Ρ€Π°Π·Ρƒ Π½Π΅ рассказывали ΠΎΠ± ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ энтСрпрайз Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ «ΠΎΡ‚ ΠΈ Π΄ΠΎ». Π’ ΠΏΠ»Π°Π½Π΅ совсСм с нуля ΠΈ хотя Π±Ρ‹ Π΄ΠΎ ΠΊΠΎΠΌΡ„ΠΎΡ€Ρ‚Π½ΠΎΠ³ΠΎ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΠ°. Π—Π° ΠΎΡ‚ΠΏΡ€Π°Π²Π½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ я Π±ΡƒΠ΄Ρƒ Π±Ρ€Π°Ρ‚ΡŒ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ полнСйшСго хаоса, ΠΊΠΎΠ³Π΄Π° ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΊΠΎΠ΄ сущСствуСт Π½Π° машинС СдинствСнного Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, Π½Π΅Ρ‚ систСмы контроля вСрсий, Π½Π΅Ρ‚ тСстовых срСд, ΠΊΠΎΠ΄ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π‘Π” сущСствуСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ эталонной ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, Π½Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… процСссов сборки ΠΈ установки, контроля качСства ΠΊΠΎΠ΄Π° ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΡŒ задастся вопросом «Π’Π°ΠΊΠΎΠ΅ Π±Ρ‹Π²Π°Π΅Ρ‚ Π² 2020 Π³ΠΎΠ΄Ρƒ? Π Π°Π·Π²Π΅ ΠΊΡ‚ΠΎ-Ρ‚ΠΎ Π΅Ρ‰Π΅ Ρ‚Π°ΠΊ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚?» ΠΈ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ отчасти ΠΏΡ€Π°Π²Ρ‹. ΠŸΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ ΠΎΠ±ΡΡƒΠ΄ΠΈΡ‚ΡŒ Π΄Π΅Ρ‚Π°Π»ΠΈ ΠΏΠΎΠ΄ ΠΊΠ°Ρ‚ΠΎΠΌ.

МнС ΠΏΡ€ΠΈΡˆΠ»ΠΎ Π² Π³ΠΎΠ»ΠΎΠ²Ρƒ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ Ρ‚Ρ€ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… сцСнария:

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Π·Π° свои 10+ Π»Π΅Ρ‚ ΠΎΠΏΡ‹Ρ‚Π° Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ я сталкивался с ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ ΠΈΠ· сцСнариСв (Π½Π° ΠΏΡ€ΠΎΡˆΠ»Ρ‹Ρ… мСстах Ρ€Π°Π±ΠΎΡ‚Ρ‹).

Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΌΡ‹ с Π²Π°ΠΌΠΈ сСйчас ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ Π½Π°Π±Ρ€ΠΎΡΠ°Ρ‚ΡŒ ΠΏΠ»Π°Π½ прСвращСния Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ энтСрпрайз Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ с ΠΎΠΊΠΎΠ»ΠΎΠ½ΡƒΠ»Π΅Π²ΠΎΠΉ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ процСссов ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ инструмСнтов Π² довольно ΠΊΠΎΠΌΡ„ΠΎΡ€Ρ‚Π½ΡƒΡŽ ΠΈ ΡΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ. Π’ мСньшСй стСпСни ΡΡ‚Π°Ρ‚ΡŒΡ Π±ΡƒΠ΄Π΅Ρ‚ ΠΊΠ°ΡΠ°Ρ‚ΡŒΡΡ стартапов ΠΈ Π³Π΅ΠΉΠΌΠ΄Π΅Π² студий, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ‚Π°ΠΌ свои ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΈ особСнности. Π₯отя Π±Ρ‹Π²Π°ΡŽΡ‚ ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, я вспомню ΠΏΡ€ΠΎ стартапы Π² Π³Π»Π°Π²Π΅ ΠΏΡ€ΠΎ дистрибутивы.

Начало Π½Π°Ρ‡Π°Π» β€” git

Π˜Ρ‚Π°ΠΊ, ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ Π²Ρ‹ ΠΏΠΎΠΏΠ°Π»ΠΈ Π² ΠΎΠ΄Π½Ρƒ ΠΈΠ· Ρ‚Ρ€Π΅Ρ… гипотСтичСских ситуаций, пСрСчислСнных ΠΌΠ½ΠΎΠΉ Π²ΠΎ вступлСнии. Π‘ Ρ‡Π΅Π³ΠΎ Π½Π°Ρ‡Π°Ρ‚ΡŒ? ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ с git. Π­Ρ‚ΠΎ стандарт индустрии, самая распространСнная систСма контроля вСрсий, Π»ΡƒΡ‡ΡˆΠΈΠΉ инструмСнт ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ· Π±Π°Π·ΠΎΠ²Ρ‹Ρ… ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΌΡ‹Ρ…. ΠŸΡ€ΠΎΡΡ‚ΠΎ установитС Π΅Π³ΠΎ Π½Π° свою ΠΌΠ°ΡˆΠΈΠ½Ρƒ, Π·Π°ΠΉΠ΄ΠΈΡ‚Π΅ Π² ΠΏΠ°ΠΏΠΊΡƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ Π½Π°Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ эти ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

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

Π Π°Π±ΠΎΡ‚Π° Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ β€” GitLab

Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°? ВсС Π² порядкС, git Π±Ρ‹Π» создан Π² Ρ‚ΠΎΠΌ числС ΠΈ для ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹. И Ссли Π΅Ρ‰Π΅ 5-7 Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ я Π±Ρ‹ ΠΏΠΎΡ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π» ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΈ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ git Π½Π° сСрвСр, Ρ‚ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π΅ΡΡ‚ΡŒ GitLab. GitLab это прСвосходный ΠΏΡ€ΠΈΠΌΠ΅Ρ€ OpenSource ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ²ΡˆΠ΅Π³ΠΎ повсСмСстноС распространСниС ΠΈ ΠΏΡ€ΠΈΠ·Π½Π°Π½ΠΈΠ΅ Π² индустрии.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ enterprise Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ enterprise Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ enterprise Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ enterprise Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ enterprise Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°

GitLab β€” Π²Π΅Π±-инструмСнт ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° DevOps с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ систСму управлСния рСпозиториями ΠΊΠΎΠ΄Π° для git с собствСнной Π²ΠΈΠΊΠΈ, систСмой отслСТивания ошибок, CI/CD ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ΠΎΠΌ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ функциями.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ просто Π²Π·ΡΡ‚ΡŒ дистрибутив GitLab ΠΈ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π΅Π³ΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½ΠΎΠΉ сСти β€” получится свой малСнький «ΠΊΠ°Ρ€ΠΌΠ°Π½Π½Ρ‹ΠΉ» GitHub. Π£ GitLab Π΅ΡΡ‚ΡŒ ΠΏΠ»Π°Ρ‚Π½Ρ‹Π΅ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ вСрсии, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ список доступных Ρ„ΠΈΡ‡ здСсь. Из приятного β€” ΠΏΠ»Π°Ρ‚Π½Ρ‹Π΅ Ρ„ΠΈΡ‡ΠΈ постСпСнно ΠΏΠ΅Ρ€Π΅Ρ‚Π΅ΠΊΠ°ΡŽΡ‚ Π² бСсплатныС вСрсии.

Π˜Ρ‚Π°ΠΊ, GitLab ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ ΠΊΡ€Π°Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½Ρ‹ΠΌ ΠΊΠ°ΠΌΠ½Π΅ΠΌ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Он позволяСт ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ понятиСм «ΠΏΡ€ΠΎΠ΅ΠΊΡ‚». ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ git-Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, список Π·Π°Π΄Π°Ρ‡/Π΄Π΅Ρ„Π΅ΠΊΡ‚ΠΎΠ² (issues), agile-доску, wiki ΠΈ Ρ‚.Π΄. Π˜Π½Π°Ρ‡Π΅ говоря, ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ ΠΈ бСсплатно Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ практичСски всС инструмСнты, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для эффСктивной ΠΈ распрСдСлСнной Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Но ΠΎΠ±ΠΎ всСм ΠΏΠΎ порядку.

Π₯Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°

ΠŸΠ΅Ρ€Π²ΠΎΠ΅ ΠΈ самоС Π³Π»Π°Π²Π½ΠΎΠ΅ β€” GitLab позволяСт эффСктивно ΠΈ ΡƒΠ΄ΠΎΠ±Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π°Π΄ измСнСниями Π² ΠΊΠΎΠ΄Π΅. Он ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΡƒ Github Flow. Π­Ρ‚ΠΎ довольно лСгковСсный процСсс, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ Π½ΠΎΠ²ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ рСализуСтся Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠ΅, Π° для слияния с основной ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·ΠΎΠΉ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚.Π½. запросы Π½Π° слияниС ΠΈΠ»ΠΈ merge requests (Ρ€Π°Π·Π³. мСрдТрСквСст). ΠŸΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ шагов ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ: ΠΈΠ· Π·Π°Π΄Π°Ρ‡ΠΈ ΠΏΠΎ Π½Π°ΠΆΠ°Ρ‚ΠΈΡŽ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ создаСтся ΠΈ новая Π²Π΅Ρ‚ΠΊΠ°, ΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ с Π½Π΅ΠΉ merge request. Π”Π°Π»Π΅Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π½Π° эту Π²Π΅Ρ‚ΠΊΡƒ, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» ΠΈΠ»ΠΈ исправляСт ΠΎΡˆΠΈΠ±ΠΊΡƒ, ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΈΡ‚ измСнСния локально, ΠΏΡƒΡˆΠΈΡ‚ Π½Π° сСрвСр. Вся Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Π° Π±ΡƒΠ΄Π΅Ρ‚ максимально ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Π° Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ°Ρ… запроса Π½Π° слияниС: описаниС, ΠΏΠ΅Ρ€Π΅Ρ‡Π΅Π½ΡŒ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², построчный Π΄ΠΈΡ„Ρ„. Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚ окончания Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π°Π΄ Π·Π°Π΄Π°Ρ‡Π΅ΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ снимаСт Ρ„Π»Π°Π³ «work in progress» (WIP). Для Ρ‚ΠΈΠΌΠΌΠ΅ΠΉΡ‚Π° это ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ сигналом ΠΊ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡŽ ΠΊΠΎΠ΄Ρ€Π΅Π²ΡŒΡŽ. ΠžΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ замСчания ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π²ΠΎΠ΄ΠΈΡ‚ΡŒ прямо ΠΈΠ· Π΄ΠΈΡ„Ρ„Π°, Ρ‚Π°ΠΌ ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Ρ‚ΡŒ свои измСнСния, ΠΈ Ρ‚Π°ΠΌ ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡ… сразу ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ. Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ ΠΈ эффСктивный способ провСдСния ΠΊΠΎΠ΄Ρ€Π΅Π²ΡŒΡŽ. МоТно Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ: нСльзя ΡΠ»ΠΈΡ‚ΡŒ измСнСния, ΠΏΠΎΠΊΠ° всС дискуссии Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹. Π’ послСдних вСрсиях ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹Ρ… Ρ€Π΅Π²ΡŒΡŽΠ²Π΅Ρ€ΠΎΠ² Π±Π΅Π· назначСния Π·Π°Π΄Π°Ρ‡ΠΈ.

Π’Ρ€Π΅ΠΊΠΈΠ½Π³ Π·Π°Π΄Π°Ρ‡

Под Π·Π°Π΄Π°Ρ‡Π΅ΠΉ Π΄Π°Π»Π΅Π΅ подразумСваСтся нСкоторая ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ с описаниСм ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹/Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π°/ΠΈΠ΄Π΅ΠΈ, Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ измСнСния. GitLab позволяСт Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ двумя способами:

ΠΈ Ρ‚.Π΄.), Π²ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ, Ρ„Π°ΠΉΠ»Ρ‹, смайлы, Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ, матСматичСскиС Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹, mermaid-Π³Ρ€Π°Ρ„Ρ‹ ΠΈ Π΄Ρ€. Π­Ρ‚ΠΎ вСсСло, интСрСсно, ΠΌΠΎΠ΄Π½ΠΎ-ΠΌΠΎΠ»ΠΎΠ΄Π΅ΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π·Π΄ΠΎΡ€ΠΎΠ²Ρ‹Π΅ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅!

МоТно Ρ‚Π°ΠΊ ΠΆΠ΅ завСсти ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ Π·Π°Π΄Π°Ρ‡ (тСкстовыС Ρ„Π°ΠΉΠ»Ρ‹ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ), Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΉ шаблон для ошибки ΠΌΠΎΠ³ Π±Ρ‹ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

Π‘ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π° навСрняка ΠΏΡ€ΠΈΠ΄Π΅Ρ‚ ΠΊ созданию шаблонов, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΡ… ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ (definion of done, DoD).

ΠŸΡ€ΠΎΡ‡Π΅Π΅

Π’Π°ΠΊ ΠΆΠ΅ Π² GitLab ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π΅ΡΡ‚ΡŒ Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ завСсти wiki ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Π›ΠΈΡ‡Π½ΠΎ я Π²ΠΎΡΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽ Π²ΠΈΠΊΠΈ ΠΊΠ°ΠΊ способ пСрСнСсти знания ΠΈΠ· Π³ΠΎΠ»ΠΎΠ² сотрудников Π² Ρ‚Π΅ΠΊΡΡ‚ΠΎΠ²ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ. Благодаря Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Π²ΠΈΠΊΠΈ встроСна Π² GitLab, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ сущности Π²Ρ€ΠΎΠ΄Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², Π·Π°Π΄Π°Ρ‡, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΌΠ΅Ρ‚ΠΎΠΊ ΠΈ Ρ‚.Π΄. Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ. Π’Π°ΠΊ ΠΆΠ΅ wiki-странички хранят ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. По ощущСниям, ΠΎΠ½ΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌΠΈ Markdown-Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π² Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ git-Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ. Π’Π°ΠΊ ΠΆΠ΅ Wiki ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΊΠ°ΠΊ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΏΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ. О Π²Π΅Π΄Π΅Π½ΠΈΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Π²ΠΊΡ€Π°Ρ‚Ρ†Π΅ рассказано Π² ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π³Π»Π°Π²Π°Ρ….

ΠœΠ°ΠΉΠ»ΡΡ‚ΠΎΡƒΠ½ (milestone) β€” Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ Π²ΠΈΠ΄ сущностСй Π² GitLab, Π±ΠΎΠ»Π΅Π΅ высокого уровня Ρ‡Π΅ΠΌ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ merge request’Ρ‹. Π‘ Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡŽ послСдних Π² осмыслСнныС Π³Ρ€ΡƒΠΏΠΏΡ‹. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ Ρ‚Π°ΠΊΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ поставка (установка Π½ΠΎΠ²ΠΎΠΉ вСрсии ПО) Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ Π΄Π°Ρ‚Ρƒ.

GitLab Ρ‚Π°ΠΊ ΠΆΠ΅ ΡƒΠΌΠ΅Π΅Ρ‚ Π² CI/CD, Π½ΠΎ вряд Π»ΠΈ это понадобится Π²Π°ΠΌ сСйчас, Ссли Π΅Ρ‰Π΅ Π²Ρ‡Π΅Ρ€Π° ΠΊΠΎΠ΄ хранился Π½Π° дСвСлопСрской машинС. Об этом я расскаТу Π² Π΄Π²ΡƒΡ… словах Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ Π³Π»Π°Π²Π΅.

ΠšΡ€Π°ΠΉΠ½Π΅ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ Π·Π°Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠΎ всСму README. И самой малСнькой ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π΅, ΠΈ ΠΊΡ€ΡƒΠΏΠ½ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ пригодится README.md. ΠŸΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° докумСнтирования инструкций Ρ…ΠΎΡ‚ΡŒ ΠΈ ΠΎΡ‚Π½ΠΈΠΌΠ°Π΅Ρ‚ врСмя, Π½ΠΎ Π² пСрспСктивС экономит Π³ΠΎΡ€Π°Π·Π΄ΠΎ большС. GitLab ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ README ΠΊΠ°ΠΊ ΠΈ вСсь ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΉ Markdown, позволяСт ΡƒΠ΄ΠΎΠ±Π½ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² прямо Π² Web-IDE.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Π΄Π°, бСзусловно Π΅ΡΡ‚ΡŒ опция вСсти ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π² ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½ΠΎΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Π½Π° GitHub’Π΅, ΠΎΠ΄Π½Π°ΠΊΠΎ это ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡ΠΈΡ‚ΡŒ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌ стандартам бСзопасности, Π΅ΡΡ‚ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π° количСство Ρ‚Π°ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ². БобствСнноС Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ GitLab’Π° Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Π²Ρ‹ΠΈΠ³Ρ€Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠΌ ΡΡ‚Π°Ρ‚ΡŒΡΠΌ.

ΠœΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ Π‘Π”

Ок, ΠΌΡ‹ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π»ΠΈΡΡŒ с ΠΊΠΎΠ΄ΠΎΠΌ систСмы, Π½ΠΎ Ρ‡Ρ‚ΠΎ насчСт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π‘Π”, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΈ Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹? ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΠΎΠ² скриптов Π² самой Π‘Π” Ρ€Π°Π½ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΠ·Π΄Π½ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌ: Π»ΠΈΠ±ΠΎ ΠΎΠ½ΠΈ «Ρ€Π°Π·ΡŠΠ΅Π΄ΡƒΡ‚ся» ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠ½Ρ‚ΡƒΡ€Π°ΠΌΠΈ, Π»ΠΈΠ±ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π±Π΅Π·Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π½ΠΎ ΡƒΡ‚Ρ€Π°Ρ‡Π΅Π½Π° история, Π»ΠΈΠ±ΠΎ Π΅Ρ‰Π΅ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π² Ρ‚Π°ΠΊΠΎΠΌ Ρ€ΠΎΠ΄Π΅. На ΠΏΠΎΠΌΠΎΡ‰ΡŒ ΠΏΡ€ΠΈΠ΄ΡƒΡ‚ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…. ΠœΠΈΠ³Ρ€Π°Ρ†ΠΈΡ это ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠΉ структуры Π‘Π” ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π±Π΅Π· ΠΏΠΎΡ‚Π΅Ρ€ΠΈ консистСнтности. ΠŸΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΉ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ лишь Ρ„Π°Π½Ρ‚Π°Π·ΠΈΠ΅ΠΉ ΠΈ смСкалкой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, ΠΎΠ΄Π½Π°ΠΊΠΎ извСстноС ΠΌΠ½Π΅ Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·ΠΈΠ΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ классифицировано Π½Π°:

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

Π₯ΠΎΡ€ΠΎΡˆΠ°Ρ ΡΡ‚Π°Ρ‚ΡŒΡ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅: ВСрсионная миграция структуры Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…: основныС ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹.
ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ Π±Π°Π·Ρ‹ Π² случаС ΠΊΠ°Π½Π°Ρ€Π΅Π΅Ρ‡Π½Ρ‹Ρ… Ρ€Π΅Π»ΠΈΠ·ΠΎΠ²: На ΠΏΡƒΡ‚ΠΈ ΠΊ Canary (Ρ‚Π°ΠΌ ΠΆΠ΅ рассказано ΠΏΡ€ΠΎ этот Ρ‚ΠΈΠΏ Ρ€Π΅Π»ΠΈΠ·ΠΎΠ²).

ΠŸΠΎΡΡ‚Π°Π²ΠΊΠ° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ описан Π² Π³Π»Π°Π²Π΅ ΠΏΡ€ΠΎ Docker.

Π˜Ρ‚Π°ΠΊ, Ρƒ Вас Ρ†ΠΈΠ²ΠΈΠ»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎ ΠΈ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎ хранится ΠΊΠΎΠ΄. Но Ρ‡Ρ‚ΠΎ насчСт Π²Ρ‹ΠΊΠ»Π°Π΄ΠΊΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π° для ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ? Бпособ доставки ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ. НапримСр, Π² случаС Π²Π½ΡƒΡ‚Ρ€ΠΈΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ толстого ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° (Π°-ля АРМ) это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΊΠ»Π°Π΄ΠΊΠ° установочного ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π² ΡΠ΅Ρ‚Π΅Π²ΡƒΡŽ ΠΏΠ°ΠΏΠΊΡƒ, Π° Π² случаС сайта Π°Ρ€Ρ…ΠΈΠ² со скриптами. Π’Π°ΠΆΠ½ΠΎ ввСсти понятиС дистрибутива β€” ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Π° ПО, ΠΏΡ€ΠΈΠ³ΠΎΠ΄Π½ΠΎΠ³ΠΎ для распространСния. Π’Π°ΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎ дистрибутив Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ контурозависимых настроСк ΠΈ спСцифичных ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ². Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ «Ρ€Π°ΡΠΊΠ°Ρ‚Π°Ρ‚ΡŒ» ΠΎΠ΄Π½Π°ΠΆΠ΄Ρ‹ собранный дистрибутив Π½Π° любой ΠΊΠΎΠ½Ρ‚ΡƒΡ€, ΠΈ ΠΎΠ΄Π½ΠΎΠΉ этой установкой сразу довСсти систСму Π΄ΠΎ зафиксированной Π² дистрибутивС вСрсии, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ Π‘Π”, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ Ρ€Π°Π½Π΅Π΅.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ enterprise Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ enterprise Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ enterprise Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ enterprise Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ enterprise Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°

Дистрибутив систСмы слСдуСт Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ машинС, ΠΈΠΌΠ΅Π½ΡƒΠ΅ΠΌΠΎΠΉ сСрвСром сборки (билдсСрвСр). ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π° Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½Π°: Ссли сборка «Π±ΠΎΠ΅Π²ΠΎΠ³ΠΎ» дистрибутива происходит Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ эту ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ Π² случаС ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΏΠΎΠ»ΠΎΠΌΠΊΠΈ ΠΈΠ»ΠΈ Π½Π΅ΡˆΡ‚Π°Ρ‚Π½ΠΎΠΉ ситуации ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ Π½Π΅Π»Π΅Π³ΠΊΠΎ. Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΠ°ΡΡ‚ΡŒ Π² Π½Π΅ΡƒΠ΄ΠΎΠ±Π½ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Ссли Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‡ΠΈΠΊ ΡƒΠΉΠ΄Π΅Ρ‚ Π² отпуск ΠΈΠ»ΠΈ уволится.

ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌ Ρ‚Π΅ΠΌΡƒ билдсСрвСра. На Π½Π΅ΠΌ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ установлСно идСальноС ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ Π½Π°Π±ΠΎΡ€ инструмСнтов ΠΈ настроСк, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ исходный ΠΊΠΎΠ΄ Π² ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ дистрибутив. Π¨Π°Π³ΠΈ, ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ сборки ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π² ПО класса Jenkins, GitLab ΠΈΠ»ΠΈ TeamCity. Π’ ΡƒΠ·ΠΊΠΎΠΌ смыслС ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π²Π°Ρ‚ΡŒ систСмой сборки. На билдсСрвСр Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π°Π³Π΅Π½Ρ‚, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ Π΅ΠΌΡƒ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с систСмой сборки. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ прохоТдСния шагов сборки ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ являСтся Ρ‚.Π½. Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚ (ΠΈΠ»ΠΈ нСсколько Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚ΠΎΠ²), ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ Ρ‚Π°ΠΊΠΎΠ³ΠΎ Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ дистрибутив. Π˜ΠΌΠ΅Π΅Ρ‚ смысл Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚Ρ‹ сборки Π²Π½Π΅ систСмы сборки, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π² Nexus/Artifactory. Π­Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ вопрос Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ³ΠΎ хранСния всСх вСрсий сборок систСм.

ВСрсия систСмы

Π’ Π³Π»Π°Π²Π΅ ΠΏΡ€ΠΎ поставку ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Ρ…ΠΎΡ‡Ρƒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚ΡŒ понятиС вСрсии систСмы. Π€ΠΎΡ€ΠΌΠ°Ρ‚ вСрсии ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹ΠΌ:

ΠŸΡ€Π°Π²ΠΈΠ»ΠΎ: ПО ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π½ΠΎΠΌΠ΅Ρ€ вСрсии ΠΏΡ€ΠΈ сборкС. Π’ TeamCity, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΅ΡΡ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ build counter, автоматичСски ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉΡΡ счСтчик, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ идСально ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для присвоСния ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ². Из ΠΏΡ€Π°Π²ΠΈΠ»Π° слСдуСт Ρ‡Ρ‚ΠΎ:

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

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

Π˜Ρ‚Π°ΠΊ, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ вас ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ дистрибутивы: ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅ ΠΈΠ»ΠΈ автоматичСски ΠΏΡ€ΠΈ слиянии Π² master-Π²Π΅Ρ‚ΠΊΡƒ. МоТно, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΈΡ… Π½Π° Ρ†Π΅Π»Π΅Π²Ρ‹Π΅ ΠΊΠΎΠ½Ρ‚ΡƒΡ€Π° ΠΈ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, Π½ΠΎ дальновиднСС Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ установку. ЀактичСски это Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ инструкций ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΡ…ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ. ΠŸΡ€ΠΈ этом Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠΎΠ΄ Ρ†Π΅Π»Π΅Π²ΠΎΠΉ ΠΊΠΎΠ½Ρ‚ΡƒΡ€ (ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ дистрибутив контуронСзависимый). Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ TeamCity, GitLab ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ python-скриптами. Π― ΠΆΠ΅ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€ΡŽ кСйс использования Ansible/AWX.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ enterprise Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ enterprise Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ enterprise Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ enterprise Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ enterprise Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°

ΠŸΡ€ΠΎΡ†ΠΈΡ‚ΠΈΡ€ΡƒΡŽ ΠΎΠ΄Π½Ρƒ ΠΈΠ· статСй ΠΎΠ± Ansible Π½Π° Π₯Π°Π±Ρ€Π΅:

Ansible β€” это ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ управлСния конфигурациями. Оно позволяСт Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Π΅ ΠΌΠ°ΡˆΠΈΠ½Ρ‹. Π“Π»Π°Π²Π½ΠΎΠ΅ Π΅Π³ΠΎ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… систСм Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ansible ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ инфраструктуру SSH, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ (chef, puppet, ΠΈ ΠΏΡ€.) Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ установки ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ PKI-окруТСния.

Π’Π°ΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎ Ansible позволяСт ΠΏΡ€ΠΎΠΈΠ³Ρ€Ρ‹Π²Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ сцСнарии Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ хостС. Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΉ сцСнарий автоустановки ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ скачиваниС дистрибутива, распаковку, остановку сСрвиса, ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ², запуск ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΉ Π‘Π”, пСрСзапуск сСрвиса. ΠšΠΎΠ½Ρ‚ΡƒΡ€ΠΎΠ·Π°Π²ΠΈΡΠΈΠΌΡ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ inventories, завСдя ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈΠ½Π²Π΅Π½Ρ‚ΠΎΡ€ΠΈ Π½Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚ΡƒΡ€.

ΠœΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²

НСбольшоС Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ Ρ‚Π΅ΠΌΠ΅ билдсСрвСра: для Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ΠΎΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ². НапримСр pip для Python, nuget для C#, npm для Node.JS. ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ΠΎΠ² ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² слСдуСт Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² систСмС контроля вСрсий вмСстС с основным ΠΊΠΎΠ΄ΠΎΠΌ систСмы. Π’ шаги сборки Π½Π° билдсСрвСрС слСдуСт Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ шаги ΠΏΠΎ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡŽ ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π² соотвСтствии с ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ Ρ„Π°ΠΉΠ»ΠΎΠΌ/Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ. Π’Π°ΠΊ ΠΆΠ΅ это ΠΎΠ±Π»Π΅Π³Ρ‡ΠΈΡ‚ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π² ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ β€” Π΅ΠΌΡƒ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ своС Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅, ΠΎΠ±ΠΎ всСм позаботится ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ². ЕдинствСнный минус β€” Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ экзСмпляры Π³Ρ€Π΅ΡˆΠ°Ρ‚ Ρ‚ΡΠΆΠ΅Π»ΠΎΠ²Π΅ΡΠ½ΠΎΡΡ‚ΡŒΡŽ, Π½ΠΎ с этим ΠΌΠ°Π»ΠΎ Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π΅Π»Π°Ρ‚ΡŒ, ΠΏΠΎΠ»ΡŒΠ·Ρ‹ ΠΎΠ½ΠΈ всС-Ρ‚Π°ΠΊΠΈ приносят большС.

ВСстовыС срСды

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ описан Π² Π³Π»Π°Π²Π΅ ΠΏΡ€ΠΎ Docker.

ΠšΠΎΠ½Ρ‚ΡƒΡ€ тСстирования ΠΈΠ»ΠΈ тСстовая срСда это ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ сСрвСров ΠΈ софта, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‚ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ сСрвСр. Π Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ тСстового ΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚ΡƒΡ€ΠΎΠ² связано с ΠΈΡ… ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ: ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ³Π°Π΄Π°Ρ‚ΡŒΡΡ, тСстовыС ΠΊΠΎΠ½Ρ‚ΡƒΡ€Π° Π½ΡƒΠΆΠ½Ρ‹ для экспСримСнтов ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ работоспособности Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π° Π±Π΅Π· риска Π½Π°Π²Ρ€Π΅Π΄ΠΈΡ‚ΡŒ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ.

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚ΠΎΠΌ индустрии являСтся Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Ρ‚Ρ€Π΅Ρ… ΠΊΠΎΠ½Ρ‚ΡƒΡ€ΠΎΠ²:

Часто Π½ΡƒΠΆΠ½Ρ‹ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠ½Ρ‚ΡƒΡ€Π° для Π½Π°Π³Ρ€ΡƒΠ·ΠΎΡ‡Π½ΠΎΠ³ΠΎ тСстирования, ΠΎΠΏΡ‹Ρ‚Π½ΠΎΠΉ эксплутации, симуляционного тСстирования, гостСвого внСшнСго тСстирования. Π’ ΠΈΠ΄Π΅Π°Π»Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚ΡƒΡ€ повторяСт ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΏΠΎ своим характСристикам, Π½ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ срСдС настройки ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ. Π£ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ этим Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ довольно Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ, поэтому Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ инструмСнты Π²Ρ€ΠΎΠ΄Π΅ Ansible (Ρ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ Π΄Π°Π»Π΅Π΅), chef ΠΈ Π΄Ρ€.

Π’Π°ΠΆΠ½ΠΎ: Π½Π° тСстовых ΠΊΠΎΠ½Ρ‚ΡƒΡ€Π°Ρ… Π½ΡƒΠΆΠ½ΠΎ Π·Π°Ρ‚Π΅Ρ€Π΅Ρ‚ΡŒ Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, Π° Ρ‚Π°ΠΊ ΠΆΠ΅ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ ΠΈΡ… ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ Ρ„Π΅ΠΉΠΊΠΎΠ²Ρ‹ΠΌΠΈ. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС Π²Ρ‹ рискуСтС ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΎΡ‚Ρ‡Π΅Ρ‚Ρ‹ ΠΈ увСдомлСния Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ с тСстовых ΠΊΠΎΠ½Ρ‚ΡƒΡ€ΠΎΠ².

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

АвтотСсты

Π― Π½Π°ΠΌΠ΅Ρ€Π΅Π½Π½ΠΎ Π½Π΅ стал ΠΊΠ°ΡΠ°Ρ‚ΡŒΡΡ Ρ‚Π΅ΠΌΡ‹ unit-тСстов, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅ рассматриваСтся сцСнарий прСвращСния Π³Π°Π΄ΠΊΠΎΠ³ΠΎ ΡƒΡ‚Π΅Π½ΠΊΠ° Π² лСбСдя. По ΠΌΠΎΠ΅ΠΌΡƒ ΠΎΠΏΡ‹Ρ‚Ρƒ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎΠ΅ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ unit-тСстов Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π±Π΅Π· ΠΊΡƒΠ»ΡŒΡ‚ΡƒΡ€Ρ‹ написания тСстируСмого ΠΊΠΎΠ΄Π° Π½Π΅ принСсСт Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Π»Π΅Π³ΠΊΠΈΡ… ΠΏΠΎΠ±Π΅Π΄. Напротив, созданиС автотСстов, ΠΈ Π½Π΅ΠΊΠΈΡ… Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… сцСнариСв ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ, ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π² ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠ΅ сроки ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΌΡ‹ Ρ€ΡƒΡ‡Π½ΠΎΠ³ΠΎ Ρ‚Ρ€ΡƒΠ΄Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈ тСстировщиков. НС ΠΌΠΎΠ³Ρƒ ΠΏΠΎΡΠΎΠ²Π΅Ρ‚ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ софт, всС находится Π² Ρ€ΡƒΠΊΠ°Ρ… QA-ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΎΠ² ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ².

Эксплуатация

БущСствуСт ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ ΠΏΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΎΠΉ эксплуатации систСмы, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ нСпосрСдствСнноС участиС Π² процСссС, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ для этого Π²Ρ‹Π΄Π΅Π»Π΅Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° сопровоТдСния. ПодобноС Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π΄Π°ΠΆΠ΅ зафиксировано Π² Π½ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ… ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ. Π’ этом случаС слСдуСт с особСнным Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ΠΌ ΠΎΡ‚Π½Π΅ΡΡ‚ΠΈΡΡŒ ΠΊ Ρ‚Π΅ΠΌΠ΅ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ логгирования ΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°.

Π›ΠΎΠ³Π³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

Π Π°Π½ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΠ·Π΄Π½ΠΎ появится Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡ‡Π½Π΅Π΅ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π»ΠΎΠ³Π°ΠΌΠΈ. ВСроятно, Π»ΠΎΠ³Π³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΠΊΠ°ΠΊΠΎΠΌ-Ρ‚ΠΎ Π²ΠΈΠ΄Π΅ присутствуСт Π² ΠΊΠΎΠ΄Π΅ систСмы. НапримСр, ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ Π² Ρ„Π°ΠΉΠ» ΠΈΠ»ΠΈ стандартный Π²Ρ‹Π²ΠΎΠ΄. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄Π°ΠΆΠ΅ настроСна ротация Ρ„Π°ΠΉΠ»ΠΎΠ² (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π° ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ достиТСния максимального Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Ρ„Π°ΠΉΠ»Π°), ΠΈ старыС Ρ„Π°ΠΉΠ»Ρ‹ ΡƒΠΏΠ°ΠΊΠΎΠ²Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π² Π°Ρ€Ρ…ΠΈΠ². ΠŸΠΎΠΆΠ°Π»ΡƒΠΉ, главная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ„Π°ΠΉΠ»Ρ‹ физичСски находятся Π² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ срСдС (ΠΊΠΎΠ½Ρ‚ΡƒΡ€Π΅), ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ ΠΈΡ… ΠΊΠ°ΠΊ-Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‚Ρ‚ΡƒΠ΄Π° Π²Ρ‹Ρ‚Π°ΡΠΊΠΈΠ²Π°Ρ‚ΡŒ. Поиск ΠΏΠΎ истории ослоТнСн, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° большого объСма Π»ΠΎΠ³ΠΎΠ² Ρ‚Π°ΠΊ ΠΆΠ΅ ослоТнСна. Π­Ρ‚ΠΈ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΡΠΎΠΏΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ПО управлСния Π»ΠΎΠ³Π°ΠΌΠΈ.

НаиболСС извСстныС прСдставитСли β€” ELK-стСк ΠΈ Graylog. Основной сцСнарий использования ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚ Ρ€Π°Π·Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ систСмы Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΡƒΡŽ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΡƒ Π² Π½Π΅Π΅ Π»ΠΎΠ³ΠΎΠ² ΠΈΠ· ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ систСм. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° происходит ΠΏΠΎ UDP, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π½Π°Ρ€ΡƒΡˆΠ°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² случаС ΠΎΡ‚ΠΊΠ°Π·Π° систСмы логгирования. Π’ Graylog Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ‚.Π½. стримами β€” ΠΎΠ½Π»Π°ΠΉΠ½-ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡Π°ΠΌΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΊ Π»ΠΎΠ³Π°ΠΌ сразу Π½Π° Π²Ρ…ΠΎΠ΄Π΅ Π² систСму управлСния Π»ΠΎΠ³Π°ΠΌΠΈ. Как ΠΏΡ€ΠΈΠΌΠ΅Ρ€: ΠΌΠΎΠΆΠ½ΠΎ завСсти ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ стрим Π½Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚ΡƒΡ€.

ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³

Из бСсплатного ПО для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° я Π±Ρ‹ посовСтовал Grafana. ΠŸΠΎΠ·Π°ΠΈΠΌΡΡ‚Π²ΠΎΠ²Π°Π» список особСнностСй Grafana ΠΈΠ· ΡΡ‚Π°Ρ‚ΡŒΠΈ:

ΠžΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ софт, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ удобство ΠΈ красоту стоит хотя Π±Ρ‹ Ρ€Π°Π· Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ.

ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ качСства ΠΊΠΎΠ΄Π°

Π’ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠΈ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ‹ Π² «Π·Π΄ΠΎΡ€ΠΎΠ²ΠΎΠΌ» состоянии кроСтся сСкрСт ΠΌΠ½ΠΎΠ³ΠΈΡ… ΡƒΡΠΏΠ΅ΡˆΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ². Π ΠΎΠ±Π΅Ρ€Ρ‚ ΠœΠ°Ρ€Ρ‚ΠΈΠ½ Π² своих лСкциях рассказываСт ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π½Π΅ Ρ‚Π°ΠΊ Π²Π°ΠΆΠ½ΠΎ ΡƒΡΠΊΠΎΡ€ΡΡ‚ΡŒΡΡ, ΠΊΠ°ΠΊ Π½Π΅ Π·Π°ΠΌΠ΅Π΄Π»ΡΡ‚ΡŒΡΡ. Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ высокого Ρ‚Π΅ΠΌΠΏΠ° внСсСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ благодаря Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅, Π½ΠΎ ΠΈ постоянному Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Ρƒ, поэтапному ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡŽ ΠΊΠΎΠ΄Π°, ΡΠΎΠΊΡ€Π°Ρ‰Π΅Π½ΠΈΡŽ тСхничСского Π΄ΠΎΠ»Π³Π°. АвтоматизированныС срСдства Π½Π΅ ΡΠ΄Π΅Π»Π°ΡŽΡ‚ всю Ρ€Π°Π±ΠΎΡ‚Ρƒ Π·Π° вас, Π½ΠΎ сильно ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π² ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠΈ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ‹ Π² Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΌ состоянии.

Sonarqube

ΠŸΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Ρ€Π΅Π²ΡŒΡŽ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ΠΎΠ²ΡƒΡŽ Π±Π°Π·Ρƒ Π² чистотС ΠΈ порядкС. Однако ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ вСсь ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ Π½Π° ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ ошибок ΠΈ нСдостатков ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅ прСдставляСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ β€” это Π·Π°ΠΉΠΌΠ΅Ρ‚ слишком ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. БтатичСскиС Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Ρ‹ ΠΊΠΎΠ΄Π° ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ эту Π·Π°Π΄Π°Ρ‡Ρƒ с Π΄ΠΎΠ»ΠΆΠ½Ρ‹ΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ качСства ΠΈ практичСски Π±Π΅Π· усилий. Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° бСсплатный инструмСнт SonarQube:

SonarQube β€” ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ для Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° (Π°Π½Π³Π». continuous inspection) ΠΈ измСрСния качСства ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.

ΠžΠ΄Π½Π°ΠΆΠ΄Ρ‹ настроСнный сонар ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ рСгулярныС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ качСства ΠΊΠΎΠ΄Π° Π² Ρ€Π°Π·Ρ€Π΅Π·Π΅ ошибок, тСхничСского Π΄ΠΎΠ»Π³Π°, ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ бСзопасности ΠΈ ΠΊΠΎΠ΄Π° «Ρ Π΄ΡƒΡˆΠΊΠΎΠΌ» (code smells).

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ enterprise Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ enterprise Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ enterprise Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ enterprise Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ enterprise Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°

Как ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ Π½Π° ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Π΅, ΠΏΠΎ ΠΈΡ‚ΠΎΠ³Π°ΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ выводится ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΎΡ‚Ρ‡Π΅Ρ‚ с ΠΈΡ‚ΠΎΠ³ΠΎΠ²ΠΎΠΉ ΠΎΡ†Π΅Π½ΠΊΠΎΠΉ ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΡŽ. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ всС основныС языки, ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Π΅ ΠΏΠ»Π°Ρ‚Π½Ρ‹Π΅ ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹.

Π‘Ρ‚ΠΈΠ»ΡŒ кодирования

ΠŸΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° фиксации Π΅Π΄ΠΈΠ½ΠΎΠ³ΠΎ стиля кодирования ΠΏΡ€ΠΈΡΡƒΡˆΠ° ΠΌΠ½ΠΎΠ³ΠΈΠΌ ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π²ΡˆΠΈΠΌΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ. Code guide, code style β€” это всС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΠΎΠ± ΠΎΠ΄Π½ΠΎΠΌ ΠΈ Ρ‚ΠΎΠΌ ΠΆΠ΅. ΠžΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ Π»ΠΈ Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Π΅ скобки для ΠΎΠ΄Π½ΠΎΠ³ΠΎ выраТСния Π² if, ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠΈΡ‚ΡŒ Π»ΠΈ Π½Π° Π½ΠΎΠ²ΡƒΡŽ строку ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‚Π°Π±Ρ‹ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ β€” всС эти нСобднозначности ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€Π΅Π½Π½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΎ Π΅Π΄ΠΈΠ½ΠΎΠΌ стилС кодирования. Единообразная кодовая Π±Π°Π·Π° позволяСт Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ±Π»Π΅Π³Ρ‡ΠΈΡ‚ΡŒ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° участниками ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Π½ΠΎ ΠΈ ΠΏΠΎΠ½ΠΈΠ·ΠΈΡ‚ΡŒ ΠΏΠ»Π°Π½ΠΊΡƒ вхоТдСния Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠ°ΠΌ.

Π›ΠΈΠ½Ρ‚Π΅Ρ€Ρ‹ β€” ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ класс ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π² Π½Π΅ΡƒΠΊΠ»ΠΎΠ½Π½ΠΎΠΌ соблюдСнии стиля кодирования. Π˜ΡΡ‚ΠΎΡ€ΠΈΡ‡Π΅ΡΠΊΠ°Ρ справка: Lint это имя собствСнноС статичСского Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π° языка C, «ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сообщал ΠΎ ΠΏΠΎΠ΄ΠΎΠ·Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ»ΠΈ нСпСрСносимых Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ выраТСниях». Π•Π³ΠΎ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ стало ΠΈΠΌΠ΅Π½Π΅ΠΌ Π½Π°Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ для всСх ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ€ΠΎΠ΄Π°. БСйчас Π»ΠΈΠ½Ρ‚Π΅Ρ€Ρ‹ сущСствуСт для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° извСстных языков программирования: Π² Π²ΠΈΠ΄Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΡƒΡ‚ΠΈΠ»ΠΈΡ‚, ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² для Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ² ΠΈΠ»ΠΈ Ρ„ΠΈΡ‡Π΅ΠΉ IDE. Π‘Ρ‚ΠΈΠ»ΡŒ кодирования задаСтся Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ Ρ„Π°ΠΉΠ»ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ распространяСтся Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅.

Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ

Π’Π΅ΠΌΠ° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ бСзопасности Π±Ρ‹Π»Π° ΠΊΡ€Π°Ρ‚ΠΊΠΎ Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚Π° Π² Π³Π»Π°Π²Π΅ ΠΏΠΎ SonarQube. Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Π΅ статичСскиС Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Ρ‹ ΠΊΠΎΠ΄Π° Π½Π° ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ уязвимостСй, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ChechMarx. Π­Ρ‚ΠΎ Π³ΠΈΠ±ΠΊΠΎΠ΅ ΠΈ настраиваноС ПО ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ всС основныС языки программирования ΠΈ Π²ΠΈΠ΄Ρ‹ уязвимостСй. ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ: Π² ΠΊΠΎΠ΄Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ отслСТиваСтся ΠΏΠΎΡ‚ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· всСх Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Ρ‚ΠΎΡ‡Π΅ΠΊ (ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ Π²Π²ΠΎΠ΄, Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· Π‘Π”) Π² Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ (UI, ΠΎΡ‚Ρ‡Π΅Ρ‚Ρ‹, Π‘Π”) Π½Π° ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ отсутствия санитайзСров. Π‘Π°Π½ΠΈΡ‚Π°ΠΉΠ·Π΅Ρ€ΠΎΠΌ называСтся любая функция ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‰ΠΈΠΉ содСрТимоС Π²Π²ΠΎΠ΄Π° Π½Π° Π»Π΅Π³ΠΈΡ‚ΠΈΠΌΠ½ΠΎΡΡ‚ΡŒ. Если санитайзСр отсутствуСт, Ρ‚ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ сообщаСт ΠΎ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ уязвимости. ChechMarx Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΏΠΎΡˆΠ°Π³ΠΎΠ²ΡƒΡŽ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΉ Π΄Π°Π½Π½Ρ‹Ρ…, Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‰ΡƒΡŽ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡƒΡŽ ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ.

БСсплатноС ПО ΠΈΠ· этой ΠΆΠ΅ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ: wapiti, nikto

ΠžΠ±Ρ‰Π΅Π΅ Π½Π΅ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ΅

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΉ это ΡΡ‚Π°Ρ‚ΡŒΠΈ Π·Π°Ρ‚Ρ€Π°Π³ΠΈΠ²Π°ΡŽΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ спСциализированного ПО для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Ρ‚ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠ³ΠΎ аспСкта процСссов Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Однако значимая доля Π·Π°Π΄Π°Ρ‡ построСния эффСктивной Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ Π½Π΅ использованиСм софта, Π° ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΉ, ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ процСссов ΠΈ принятиСм соглашСний ΠΎ процСссС.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ enterprise Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ enterprise Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ enterprise Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ enterprise Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ enterprise Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°

ΠœΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΡ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ

ИспользованиС ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΊΠΎΠ»Π»Π΅ΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΉ. Если Ρ€Π°Π½Π΅Π΅ Π½Π΅ использовалась Π²ΠΎΠΎΠ±Ρ‰Π΅ никакая мСтодология, Ρ‚ΠΎ стоит Π·Π°Π΄ΡƒΠΌΠ°Ρ‚ΡŒΡΡ ΠΎΠ± Π°Π΄Π°ΠΏΡ‚Π°Ρ†ΠΈΠΈ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΈΠ· Π½ΠΈΡ…. Π•ΡΡ‚ΡŒ большоС количСство статСй ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒΡΡ. МнС ΠΏΠΎΠ½Ρ€Π°Π²ΠΈΠ»ΠΈΡΡŒ эти Π΄Π²Π΅: issoft.by ΠΈ geekbrains.ru.

Π’ ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π² основном Ρ„Π°ΠΊΡ‚Ρ‹, Π½ΠΎ Π² этом Π°Π±Π·Π°Ρ†Π΅ Ρ€Π°Π·Π±Π°Π²Π»ΡŽ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» ΡΡƒΠ±ΡŠΠ΅ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ ΠΌΠ½Π΅Π½ΠΈΠ΅ΠΌ. На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ Π² энтСрпрайзС Ρ‡Π°Ρ‰Π΅ всСго ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡ‚Ρ€Π΅Ρ‚ΠΈΡ‚ΡŒ Π²ΠΎΠ΄ΠΎΠΏΠ°Π΄ ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ agile. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎ хаят, Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π²ΠΎΡΡ…Π²Π°Π»ΡΡŽΡ‚ πŸ™‚ На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ ΠΈ Π²ΠΎΠ΄ΠΎΠΏΠ°Π΄ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ достаточно ΡƒΠ΄ΠΎΠ±Π΅Π½, Ссли ΠΎΠ±ΠΎΠ³Π°Ρ‚ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ связью Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ этапС. И, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΡ€ΡƒΠΏΠ½Ρ‹Π΅ Π·Π°ΠΊΠΎΠ½ΠΎΠ΄Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€Π°Π²ΠΊΠΈ с фиксированной Π΄Π°Ρ‚ΠΎΠΉ вступлСния Π² силу, Π·Π°Ρ‚Ρ€Π°Π³ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ сразу Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… систСм ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΏΡ€ΠΎΡ‰Π΅ ΠΎΡ€ΠΊΠ΅ΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² Π²ΠΎΠ΄ΠΎΠΏΠ°Π΄Π΅. Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, Π½ΠΎΠ²Ρ‹Π΅ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ Π±Ρ‹Π²Π°Π΅Ρ‚ ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ Π΄Π΅Π»Π°Ρ‚ΡŒ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Π³ΠΈΠ±ΠΊΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, особСнно Ссли бизнСс ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π² Π½ΠΈΡ… Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ участиС.

Π Π΅Π»ΠΈΠ·Ρ‹

ΠŸΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ оТиданиями Π·Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊΠ° ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π΅Π»ΠΈΠ·Ρ‹ β€” ΠΏΡ€ΠΈΡƒΡ€ΠΎΡ‡Π΅Π½Π½Ρ‹Π΅ ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π΄Π°Ρ‚Π΅ измСнСния Π² ПО. Π Π΅Π»ΠΈΠ· ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ кроссистСмной вСрсиСй, инструмСнтом оркСстрирования Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ нСсколькими ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ систСмами.

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

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Π² GitLab Π΅ΡΡ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ β€” Release, ΠΎΠ΄Π½Π°ΠΊΠΎ для планирования Ρ€Π΅Π»ΠΈΠ·ΠΎΠ² Π² agile-Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Milestone’Ρ‹. Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΠ±Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

ДокумСнтация

Π’Π΅Π΄Π΅Π½ΠΈΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ достаточно дрСвняя ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°, ΡΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π°ΡŽΡ‰Π°Ρ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ. Она ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ±Ρ‰Π΅Π΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ΅ пространство ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, позволяСт участникам ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ «Π½Π° ΠΎΠ΄Π½ΠΎΠΌ языкС» ΠΈ ΠΎΠ±Π»Π΅Π³Ρ‡Π°Π΅Ρ‚ ΠΏΠΎΠ³Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Ρ… Ρ‡Π»Π΅Π½ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. Π’ ΠΏΠ»Π°Π½Π΅ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ процСсса Π΅ΡΡ‚ΡŒ ΠΎΠΏΡ†ΠΈΠΈ:

Π–Π΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒΡΡ с ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠΌ «Π½Π° Π±Π΅Ρ€Π΅Π³Ρƒ», Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ Π·Ρ€Π΅Π»ΡƒΡŽ ΠΈΠ»ΠΈ лСгаси систСму с нуля ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ довольно Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ (ΠΈ Π½ΡƒΠΆΠ½ΠΎ Π»ΠΈ, Ссли ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ обходился Π±Π΅Π· Π½Π΅Π΅?). Π‘Π°ΠΌΠΎΠ΅ Π³Π»Π°Π²Π½ΠΎΠ΅ свойство Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ β€” ΠΎΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡ€ΠΈΠ½ΠΎΡΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·Ρƒ.

ЀизичСски Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ вСсти рядом с ΠΊΠΎΠ΄ΠΎΠΌ систСмы Π² git-Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² MarkDown), Π² Π·Π°Π΄Π°Ρ‡Π°Ρ… Π±Π°Π³Ρ‚Ρ€Π΅ΠΊΠ΅Ρ€Π°/agile-доски (GitLab, Jira, Redmine), Π² ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Ρ†iki (GitLab, Confluence), Π² Word-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ… (Π² Ρ‚.Ρ‡. с использованиСм sharepoint) ΠΈ Ρ‚.Π΄. Π’Π°ΠΆΠ½ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ измСнСния Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π·Π°Π³Π»ΡΠ½ΡƒΡ‚ΡŒ Π² любой ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΈΠ· ΠΏΡ€ΠΎΡˆΠ»ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

Π§Ρ‚ΠΎ дальшС?

К этому ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρƒ процСсс Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΡƒΠΆΠ΅ нСльзя Π½Π°Π·Π²Π°Ρ‚ΡŒ Ρ…Π°ΠΎΡ‚ΠΈΡ‡Π½Ρ‹ΠΌ: вСдСтся история измСнСния ΠΊΠΎΠ΄Π°, Π΅ΡΡ‚ΡŒ ΠΊΡƒΠ»ΡŒΡ‚ΡƒΡ€Π° написания Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ, ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½ процСсс поставок ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π½Π° Ρ†Π΅Π»Π΅Π²Ρ‹Π΅ срСды, настроСно Π»ΠΎΠ³ΠΈΡ€Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³. Однако это Ρ‚ΠΎΠ»ΡŒΠΊΠΎ базовая организация, всСгда Π΅ΡΡ‚ΡŒ ΠΊΡƒΠ΄Π° расти. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π΄Π°Π»Π΅Π΅ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ ΠΏΡ€ΠΈΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒΡΡ ΠΊ Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹ΠΌ Ρ‚Π΅ΠΌΠ°ΠΌ: CI/CD & DevOps ΠΈ Docker & K8s.

CI/CD & DevOps

ΠŸΡ€ΠΎΡΡ‚Ρ‹ΠΌΠΈ словами, CI/CD (Continuous Integration, Continuous Delivery β€” нСпрСрывная интСграция ΠΈ доставка) это тСхнология Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ тСстирования ΠΈ доставки Π½ΠΎΠ²Ρ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° заинтСрСсованным сторонам (Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ, Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠΈ, ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Ρ‹ качСства, ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ). ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ дСйствия Π² Ρ‡Π΅ΠΌ-Ρ‚ΠΎ ΠΏΠΎΡ…ΠΎΠΆ Π½Π° ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€: ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠ° выполняСт ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, ΠΎΠ±ΡŠΠ΅Π΄Π΅Π½ΡΠ΅Ρ‚ пСрСчислСнныС Ρ€Π°Π½Π΅Π΅ процСссы Π² Π΅Π΄ΠΈΠ½ΡƒΡŽ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ, Ρ†Π΅Π»ΡŒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ β€” доставка Π³ΠΎΡ‚ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ.

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

DevOps (Development Operation) – это Π½Π°Π±ΠΎΡ€ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊ для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ эффСктивности процСссов Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ эксплуатации ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния Π·Π° счСт Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΉ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ взаимодСйствия ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒΠ½Ρ‹Ρ… спСциалистов с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ инструмСнтов Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ. ΠœΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΡ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для эффСктивной ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ процСссов создания ΠΈ обновлСния ПО ΠΈ услуг.

БпСциалистов ΠΏΠΎ настройкС CI/CI Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ DevOps ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π°ΠΌΠΈ ΠΈΠ»ΠΈ просто DevOps’Π°ΠΌΠΈ.

Docker & K8s

ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ (Docker Π² частности) это большая Ρ‚Π΅ΠΌΠ°, ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΡŽ ΠΏΠΎΠΊΡ€Ρ‹Ρ‚ΡŒ Π΅Ρ‘ Π² Π΄Π²ΡƒΡ… словах ΠΈ ΠΏΡ€ΠΈΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ссылками (Π½Π° Π₯Π°Π±Ρ€Π΅ ΠΌΠ½ΠΎΠ³ΠΎ качСствСнных ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ² ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅).

ΠšΡ€Π°Ρ‚ΠΊΠ°Ρ ΡˆΠΏΠ°Ρ€Π³Π°Π»ΠΊΠ°

Для простоты ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ±Π»Π΅Π³Ρ‡Π΅Π½Π½ΠΎΠΉ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ машиной Π±Π΅Π· Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Ρ… расходов Π½Π° Π³ΠΎΡΡ‚Π΅Π²ΡƒΡŽ ОБ, Ρ‚Π°ΠΊ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, пСсочницСй для процСсса. ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π° процСссы Π² идСальном ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ Π½Π° ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Ρ‚ΠΎΠΉ ΠΆΠ΅ хостовой ОБ Π±Π΅Π· ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² зависимостСй. МоТно Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ Ρ‚Π΅ΠΌΡ‹ со ΡΡ‚Π°Ρ‚ΡŒΠΈ Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΏΠ»Π°Π½Π°.

Π‘Π°ΠΌΠΈ ΠΏΠΎ сСбС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ ΡƒΠΆΠ΅ Π±Ρ‹Π»ΠΈ ΠΏΡ€ΠΎΡ€Ρ‹Π²ΠΎΠΌ, ΠΎΠ΄Π½Π°ΠΊΠΎ засияли ΠΎΠ½ΠΈ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ появлСния Π·Ρ€Π΅Π»Ρ‹Ρ… срСдств оркСстрации, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Kubernetes. Π’ ΠΏΠ»Π°Π½Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ большС прСимущСств для Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… сСрвисов (aka микросСрвисов) Π½Π΅ΠΆΠ΅Π»ΠΈ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚ΠΎΠ². Π”Π°, придСтся Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚ΡŒ Ρ‚Π΅ΠΌΡƒ микросСрвисов, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ прСимущСства Π΄ΠΎΠΊΠ΅Ρ€Π° ΠΈ оркСстрации ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ². ΠŸΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚Π½ΠΎΠ΅ сравнСниС Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€:

ΠœΠΎΠ½ΠΎΠ»ΠΈΡ‚ΠœΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΡΡ‹
Π‘ΠΎΠ·Π΄Π°Π½ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ΄Π½ΠΎΠ³ΠΎ языка программирования/Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ микросСрвис создаСтся с использованиСм Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ ΠΈ умСстного языка программирования/Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°
НС ΠΈΠΌΠ΅ΡŽΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с зависимостями, ΠΎΠ΄Π½ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ β€” ΠΎΠ΄ΠΈΠ½ Π½Π°Π±ΠΎΡ€ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚Π΅ΠΉΠšΠ°ΠΆΠ΄Ρ‹ΠΉ микросСрвис ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π²ΠΈΡΠ΅Ρ‚ΡŒ ΠΎΡ‚ своСго собствСнного Π½Π°Π±ΠΎΡ€Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈ Π΄Π°ΠΆΠ΅ вСрсии ОБ
НС ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡΠœΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΡΡ‹ часто stateless, ΠΊΠ°ΠΊ слСдствиС ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎ

ΠŸΠΎΠ΄Ρ…ΠΎΠ΄ микросСрвисной Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ подходящСго инструмСнтария, Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Ρ‚Π°Π½Π΄Π΅ΠΌ Docker ΠΈ Kubernetes. Docker обСспСчиваСт:

Kubernetes Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ обСспСчиваСт:

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ использованиС

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Бпасибо Π·Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅! Π‘ΡƒΠ΄Ρƒ Ρ€Π°Π΄ дополнСниям ΠΈ прСдлоТСниям.

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

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

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