05 января 2022

πŸƒ Π Π°Π±ΠΎΡ‚Π°Π΅ΠΌ Π½ΠΎΠ½-стоп: нСпрСрывная интСграция ΠΈ Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠ΅ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° (CI/CD)

Π’Π΅Π»Π΅Π³Ρ€Π°ΠΌ @Andrey_Totshin
РазбираСмся, ΠΊΠ°ΠΊ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ПО ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΌΠΈ спринтами с автоматичСскими тСстами ΠΈ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ΠΌ Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π΅.
πŸƒ Π Π°Π±ΠΎΡ‚Π°Π΅ΠΌ Π½ΠΎΠ½-стоп: нСпрСрывная интСграция ΠΈ Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠ΅ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° (CI/CD)

Π§Π΅Π³ΠΎ Ρ…ΠΎΡ‡Π΅Ρ‚ Π·Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊ ΠΎΡ‚ ΠΎΡ‚Π΄Π΅Π»Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ?

Если Ρ€Π°Π½ΡŒΡˆΠ΅ бизнСс Ρ…ΠΎΡ‚Π΅Π» ΠΎΡ‚ производства увСличСния объСма ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° ΠΈΠ»ΠΈ сСрвиса, Ρ‚ΠΎ это Ρ€Π΅ΡˆΠ°Π»ΠΎΡΡŒ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ рСсурсов: большС ΡΡ‹Ρ€ΡŒΡ, большС Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ силы ΠΈ Ρ‚. Π΄.

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

ЧастыС измСнСния, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для ΠΏΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΎΠ³ΠΎ сСктора, ΠΎΡ‡Π΅Π½ΡŒ Ρ‚Ρ€ΡƒΠ΄ΠΎΠ·Π°Ρ‚Ρ€Π°Ρ‚Π½Ρ‹. НСльзя ΠΏΠ΅Ρ€Π΅Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ постоянно производствСнный Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ ΠΏΠΎΠ΄ ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠΉΡΡ спрос Π½Π° Ρ€Ρ‹Π½ΠΊΠ΅.

Tesla, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, схитрила – сдСлала ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ максимальной ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Π°Ρ†ΠΈΠΈ ΠΈ зафиксировала софтом Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ приобрСтаСтся Π² зависимости ΠΎΡ‚ потрСбности покупатСля.

Для IT часто Π²Π½ΠΎΡΠΈΡ‚ΡŒ измСнСния Π² ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ Π³ΠΎΡ€Π°Π·Π΄ΠΎ ΠΏΡ€ΠΎΡ‰Π΅. БобствСнно, ΠΎΠ± этом ΠΈ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅.

ΠšΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΠΈΠΉ процСсс Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ПО

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

Как Ρ€Π°Π· организация CI\CD процСсса ΠΈ позволяСт максимально быстро ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ большоС количСство ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ спринтС.

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ процСсса Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ПО Π½Π° частыС Ρ€Π΅Π»ΠΈΠ·Ρ‹ ΠΈ измСнСния

Π Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅:

  1. Continuous Integration (нСпрСрывная интСграция). Базовая опция – это автоматичСскиС тСсты ΠΊΠΎΠ΄Π° вашСго Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π° ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ автоматичСского ΠΎΡ‚ΠΊΠ°Ρ‚Π° (Π² случаС ΠΏΠ»ΠΎΡ…ΠΈΡ… тСстов) ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ.
  2. Continuous Deployment (Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠ΅ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅). Базовая опция – это Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π° Π² тСстС, Π° Π·Π°Ρ‚Π΅ΠΌ Π² ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ.

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρƒ, взглянСм Π½Π° схСму процСсса CI\CD:

Π‘Ρ…Π΅ΠΌΠ° процСсса CI\CD
Π‘Ρ…Π΅ΠΌΠ° процСсса CI\CD

Для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹:

  1. Git – систСма контроля вСрсий.
  2. Artifact Repository – систСма хранСния Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚ΠΎΠ² сборки. По сути, это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ общая файловая систСма, доступная всСм участникам процСсса.
  3. Deploy Server – рСсурсы, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ ΠΈ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ измСнСния.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ пройдСмся ΠΏΠΎ шагам процСсса:

  1. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ написал Π² ΠΊΠΎΠ΄Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Π½ΠΎΠ²ΠΎΠ³ΠΎ измСнСния ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠ» ΠΊΠΎΠ΄ Π² систСму контроля вСрсий Git.
  2. ПослС добавлСния Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π² Git ΠΊΠΎΠ΄ отправляСтся Π½Π° сСрвСр сборки.
  3. АвтоматичСски, послС сборки Π½Π° сСрвСрС, ΡΡ‚Π°Ρ€Ρ‚ΡƒΡŽΡ‚ тСсты для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ измСнСния. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Π² Artifact Repository.
  4. АртСфакты ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ Π² ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Deploy Server. Новый Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» развСртываСтся Π² тСстовой срСдС ΠΈ ΠΎΠΏΡΡ‚ΡŒ ΠΆΠ΅ тСстируСтся. ВСстовая срСда, Π² Π΄Π°Π½Π½ΠΎΠΌ случаС, – максимально идСнтичная ΠΊ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ срСдС, Π½ΠΎ Π±Π΅Π· real-time ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ.
  5. АртСфакты ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Deploy Server. Новый Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» развСртываСтся ΡƒΠΆΠ΅ Π² ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ срСдС, Π³Π΄Π΅ находятся real-time ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ. Π­Ρ‚ΠΎ послСдний шаг Π² процСссС доставки нашСго измСнСния.

Π§Ρ‚ΠΎ Π² ΠΈΡ‚ΠΎΠ³Π΅: большоС количСство тСстов (автоматичСских тСстов, Π±Π΅Π· участия Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°), Π΄Π²Π΅ срСды исполнСния Non-Prod ΠΈ Prod ΠΈ ΠΎΠ±Ρ‰ΠΈΠΉ Git.

ΠŸΡ€ΠΎΡ†Π΅ΡΡ CI\CD (Π΅Π³ΠΎ Π΅Ρ‰Π΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€) позволяСт:

  1. Π˜ΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ чСловСчСский Ρ„Π°ΠΊΡ‚ΠΎΡ€ Π½Π° этапах тСстирования, Ρ‚Π΅ΠΌ самым ускоряя Π΅Π³ΠΎ.
  2. БистСма контроля вСрсий позволяСт Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² сСбС всС измСнСния, Ρ‚. Π΅. ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ потСря ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈ всСгда ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΠ°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ.
  3. Non-Prod ΠΈ Prod срСды ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΎΡ‚Π»ΠΎΠ²ΠΈΡ‚ΡŒ Π±Π°Π³ΠΈ Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΏΠΎΠΏΠ°Π΄ΡƒΡ‚ ΠΊ real-time ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΈ Π½Π°Ρ€ΡƒΡˆΠ°Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» основного сСрвиса ΠΈΠ»ΠΈ прилоТСния.

Данная ΡΡ‚Π°Ρ‚ΡŒΡ пСрвая Π² Ρ†ΠΈΠΊΠ»Π΅ ΠΈΠ· Ρ‚Ρ€Π΅Ρ… статСй посвящСнных CI\CD. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π°Π· Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ рассмотрим Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Continuous Integration ΠΈ Continuous Deployment.

ΠœΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

ΠœΠ•Π ΠžΠŸΠ Π˜Π―Π’Π˜Π―

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

 
 

Π’ΠΠšΠΠΠ‘Π˜Π˜

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ вакансию
Senior DevOps Engineer
ΠΏΠΎ ΠΈΡ‚ΠΎΠ³Π°ΠΌ собСсСдования
Senior MLE (SE)
ΠΎΡ‚ 5000 USD Π΄ΠΎ 9000 USD
Senior Software Engineer (Java)
ΠΎΡ‚ 4500 USD Π΄ΠΎ 6000 USD

Π›Π£Π§Π¨Π˜Π• БВАВЬИ ПО Π’Π•ΠœΠ•

Подпишись

Π½Π° push-увСдомлСния