เบšเบฑเบ™เบซเบฒเบ‚เบญเบ‡เบเบฒเบ™เบ—เปเบฒเบ„เบงเบฒเบกเบชเบฐเบญเบฒเบ” "เบชเบฐเบซเบกเบฒเบ”" เบ‚เบญเบ‡เบฎเบนเบšเบžเบฒเบšเบšเบฑเบ™เบˆเบธเปเบฅเบฐเบเบฒเบ™เปเบเป‰เป„เบ‚เบ‚เบญเบ‡เบกเบฑเบ™เบขเบนเปˆเปƒเบ™ werf

เบšเบฑเบ™เบซเบฒเบ‚เบญเบ‡เบเบฒเบ™เบ—เปเบฒเบ„เบงเบฒเบกเบชเบฐเบญเบฒเบ” "เบชเบฐเบซเบกเบฒเบ”" เบ‚เบญเบ‡เบฎเบนเบšเบžเบฒเบšเบšเบฑเบ™เบˆเบธเปเบฅเบฐเบเบฒเบ™เปเบเป‰เป„เบ‚เบ‚เบญเบ‡เบกเบฑเบ™เบขเบนเปˆเปƒเบ™ werf

เบšเบปเบ”เบ„เบงเบฒเบกเบชเบปเบ™เบ—เบฐเบ™เบฒเบเปˆเบฝเบงเบเบฑเบšเบšเบฑเบ™เบซเบฒเบเบฒเบ™เบ—เปเบฒเบ„เบงเบฒเบกเบชเบฐเบญเบฒเบ”เบฎเบนเบšเบžเบฒเบšเบ—เบตเปˆเบชเบฐเบชเบปเบกเบขเบนเปˆเปƒเบ™เบ—เบฐเบšเบฝเบ™เบšเบฑเบ™เบˆเบธ (Docker Registry เปเบฅเบฐเบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบšเบ‚เบญเบ‡เบกเบฑเบ™) เปƒเบ™เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เบˆเบดเบ‡เบ‚เบญเบ‡เบ—เปเปˆ CI / CD เบ—เบตเปˆเบ—เบฑเบ™เบชเบฐเป„เบซเบกเบชเปเบฒเบฅเบฑเบšเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบžเบทเป‰เบ™เป€เบกเบทเบญเบ‡เบ‚เบญเบ‡เบ„เบฅเบฒเบงเบ—เบตเปˆเบชเบปเปˆเบ‡เปƒเบซเป‰ Kubernetes. เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบ•เบปเป‰เบ™เบ•เปเบชเปเบฒเบฅเบฑเบšเบ„เบงเบฒเบกเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบ‚เบญเบ‡เบฎเบนเบšเบžเบฒเบšเปเบฅเบฐเบ„เบงเบฒเบกเบซเบเบธเป‰เบ‡เบเบฒเบเบ—เบตเปˆเป€เบ›เบฑเบ™เบœเบปเบ™เบกเบฒเบˆเบฒเบเบเบฒเบ™เบ—เปเบฒเบ„เบงเบฒเบกเบชเบฐเบญเบฒเบ”เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”, เบเบฒเบ™เบ›เบฐเบซเบเบฑเบ”เบžเบทเป‰เบ™เบ—เบตเปˆเปเบฅเบฐเบเบฒเบ™เบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡เบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบ‚เบญเบ‡เบ—เบตเบกเบ‡เบฒเบ™เปเบกเปˆเบ™เป„เบ”เป‰เบ–เบทเบเบกเบญเบšเปƒเบซเป‰. เบชเบธเบ”เบ—เป‰เบฒเบ, เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡เป‚เบ„เบ‡เบเบฒเบ™ Open Source เบชเบฐเป€เบžเบฒเบฐ, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบšเบญเบเบ—เปˆเบฒเบ™เบงเปˆเบฒเบ„เบงเบฒเบกเบซเบเบธเป‰เบ‡เบเบฒเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เปเบเป‰เป„เบ‚เป„เบ”เป‰เปเบ™เบงเปƒเบ”.

เบเบฒเบ™เบ™เปเบฒเบชเบฐเป€เบซเบ™เบต

เบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡เบฎเบนเบšเบžเบฒเบšเปƒเบ™เบ—เบฐเบšเบฝเบ™เบ•เบนเป‰เบ„เบญเบ™เป€เบ—เบ™เป€เบ™เบตเบชเบฒเบกเบฒเบ”เบ‚เบฐเบซเบเบฒเบเบ•เบปเบงเบขเปˆเบฒเบ‡เป„เบงเบงเบฒ, เปƒเบŠเป‰เบžเบทเป‰เบ™เบ—เบตเปˆเป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบซเบผเบฒเบเปเบฅเบฐเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบˆเบถเปˆเบ‡เป€เบฎเบฑเบ”เปƒเบซเป‰เบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเบ‚เบญเบ‡เบกเบฑเบ™เป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™เบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบ. เป€เบžเบทเปˆเบญเบ„เบงเบšเบ„เบธเบก, เบˆเปเบฒเบเบฑเบ”เบซเบผเบทเบฎเบฑเบเบชเบฒเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบ•เบปเบงเบ—เบตเปˆเบเบญเบกเบฎเบฑเบšเป„เบ”เป‰เบ‚เบญเบ‡เบžเบทเป‰เบ™เบ—เบตเปˆเบ—เบตเปˆเบ„เบญเบšเบ„เบญเบ‡เบขเบนเปˆเปƒเบ™เบ—เบฐเบšเบฝเบ™, เบกเบฑเบ™เป„เบ”เป‰เบ–เบทเบเบเบญเบกเบฎเบฑเบš:

  1. เปƒเบŠเป‰เบˆเปเบฒเบ™เบงเบ™เปเบ—เบฑเบเบ„เบปเบ‡เบ—เบตเปˆเบชเปเบฒเบฅเบฑเบšเบฎเบนเบšเบžเบฒเบš;
  2. เป€เบฎเบฑเบ”เบ„เบงเบฒเบกเบชเบฐเบญเบฒเบ”เบฎเบนเบšเบžเบฒเบšเปƒเบ™เบšเบฒเบ‡เบ—เบฒเบ‡.


เบ‚เปเป‰เบˆเปเบฒเบเบฑเบ”เบ—เปเบฒเบญเบดเบ”เปเบกเปˆเบ™เบšเบฒเบ‡เบ„เบฑเป‰เบ‡เบ—เบตเปˆเบเบญเบกเบฎเบฑเบšเป„เบ”เป‰เบชเปเบฒเบฅเบฑเบšเบ—เบตเบกเบ‡เบฒเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบ. เบ–เป‰เบฒเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเบกเบตเปเบ—เบฑเบเบ–เบฒเบงเบญเบ™เบžเบฝเบ‡เบžเป (latest, main, test, boris เปเบฅเบฐเบญเบทเปˆเบ™เป†), เบ—เบฐเบšเบฝเบ™เบˆเบฐเบšเปเปˆเปƒเบ„เปˆเบšเบงเบกเปƒเบ™เบ‚เบฐเบซเบ™เบฒเบ”เปเบฅเบฐเป€เบ›เบฑเบ™เป€เบงเบฅเบฒเบ”เบปเบ™เบ™เบฒเบ™เบ—เปˆเบฒเบ™เบˆเบฐเบšเปเปˆเบ•เป‰เบญเบ‡เบ„เบดเบ”เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เป€เบฎเบฑเบ”เบ„เบงเบฒเบกเบชเบฐเบญเบฒเบ”เบ—เบฑเบ‡เบซเบกเบปเบ”. เบซเบผเบฑเบ‡เบˆเบฒเบเบ—เบตเปˆเบ—เบฑเบ‡เบซเบกเบปเบ”, เบฎเบนเบšเบžเบฒเบšเบ—เบตเปˆเบšเปเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบ—เบฑเบ‡เบซเบกเบปเบ”เบˆเบฐเบ–เบทเบเบฅเบถเบšเบ–เบดเป‰เบก, เปเบฅเบฐเบžเบฝเบ‡เปเบ•เปˆเบšเปเปˆเบกเบตเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ—เบตเปˆเป€เบซเบผเบทเบญเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบฎเบฑเบ”เบ„เบงเบฒเบกเบชเบฐเบญเบฒเบ” (เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เปเบกเปˆเบ™เป€เบฎเบฑเบ”เป‚เบ”เบเบœเบนเป‰เป€เบเบฑเบšเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญเบ›เบปเบเบเบฐเบ•เบด).

เบขเปˆเบฒเบ‡เปƒเบ”เบเปเปˆเบ•เบฒเบก, เบงเบดเบ—เบตเบเบฒเบ™เบ™เบตเป‰เบˆเปเบฒเบเบฑเบ”เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบเปเบฅเบฐเบšเปเปˆเบ„เปˆเบญเบเปƒเบŠเป‰เบเบฑเบšเป‚เบ„เบ‡เบเบฒเบ™ CI / CD เบ—เบตเปˆเบ—เบฑเบ™เบชเบฐเป„เบซเบก. เบชเปˆเบงเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเปเบกเปˆเบ™ เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”, เป€เบŠเบดเปˆเบ‡เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ—เบปเบ”เบชเบญเบš, เบ™เปเบฒเปƒเบŠเป‰เปเบฅเบฐเบชเบปเปˆเบ‡เบกเบญเบšเบซเบ™เป‰เบฒเบ—เบตเปˆเปƒเบซเบกเปˆเปƒเบซเป‰เบเบฑเบšเบœเบนเป‰เปƒเบŠเป‰เป„เบงเบ‚เบถเป‰เบ™เบซเบผเบฒเบ. เบ•เบปเบงเบขเปˆเบฒเบ‡, เปƒเบ™เบ—เบธเบเป‚เบ„เบ‡เบเบฒเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ, เบ—เปเปˆ CI เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™เป‚เบ”เบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบเบฑเบšเปเบ•เปˆเบฅเบฐเบ„เปเบฒเบซเบกเบฑเป‰เบ™เบชเบฑเบ™เบเบฒ. เปƒเบ™เบกเบฑเบ™, เบฎเบนเบšเบžเบฒเบšเป„เบ”เป‰เบ–เบทเบเบ›เบฐเบเบญเบš, เบ—เบปเบ”เบชเบญเบš, เบกเป‰เบงเบ™เบญเบญเบเป„เบ›เบชเบนเปˆเบงเบปเบ‡เบˆเบญเบ™ Kubernetes เบ•เปˆเบฒเบ‡เป†เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เปเบเป‰เบšเบฑเบ™เบซเบฒเปเบฅเบฐเบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ—เบตเปˆเบเบฑเบ‡เป€เบซเบผเบทเบญ, เปเบฅเบฐเบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบ—เบฑเบ‡เบซเบกเบปเบ”เปเบกเปˆเบ™เบ”เบต, เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เป„เบ›เป€เบ–เบดเบ‡เบœเบนเป‰เปƒเบŠเป‰เบชเบธเบ”เบ—เป‰เบฒเบ. เปเบฅเบฐเบ™เบตเป‰เบšเปเปˆเปเบกเปˆเบ™เบงเบดเบ—เบฐเบเบฒเบชเบฒเบ”เบšเบฑเป‰เบ‡เป„เบŸเบญเบตเบเบ•เปเปˆเป„เบ›, เปเบ•เปˆเป€เบ›เบฑเบ™เป€เบซเบ”เบเบฒเบ™เบ›เบฐเบˆเปเบฒเบงเบฑเบ™เบชเปเบฒเบฅเบฑเบšเบซเบผเบฒเบเป†เบ„เบปเบ™ - เบชเปˆเบงเบ™เบซเบผเบฒเบเปเบกเปˆเบ™เบชเปเบฒเบฅเบฑเบšเบ—เปˆเบฒเบ™, เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆเบ—เปˆเบฒเบ™เบเปเบฒเบฅเบฑเบ‡เบญเปˆเบฒเบ™เบšเบปเบ”เบ„เบงเบฒเบกเบ™เบตเป‰.

เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆเบเบฒเบ™เปเบเป‰เป„เบ‚เบ‚เปเป‰เบšเบปเบเบžเปˆเบญเบ‡เปเบฅเบฐเบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบซเบ™เป‰เบฒเบ—เบตเปˆเปƒเบซเบกเปˆเปเบกเปˆเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™เบ‚เบฐเบซเบ™เบฒเบ™, เปเบฅเบฐเบเบฒเบ™เบ›เปˆเบญเบเบ•เบปเบงเบชเบฒเบกเบฒเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰เบซเบผเบฒเบเบ„เบฑเป‰เบ‡เบ•เปเปˆเบกเบทเป‰, เบกเบฑเบ™เป€เบ›เบฑเบ™เบ—เบตเปˆเบŠเบฑเบ”เป€เบˆเบ™เบงเปˆเบฒเบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเปเบกเปˆเบ™เบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบˆเปเบฒเบ™เบงเบ™เบ„เปเบฒเบซเบกเบฑเป‰เบ™เบชเบฑเบ™เบเบฒเบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™, เบŠเบถเปˆเบ‡เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒ. เบˆเปเบฒเบ™เบงเบ™เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบ‚เบญเบ‡เบฎเบนเบšเบžเบฒเบšเปƒเบ™เบ—เบฐเบšเบฝเบ™. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบšเบฑเบ™เบซเบฒเปƒเบ™เบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบเบฒเบ™เบ—เปเบฒเบ„เบงเบฒเบกเบชเบฐเบญเบฒเบ”เบเบฒเบ™เบˆเบปเบ”เบ—เบฐเบšเบฝเบ™เบ—เบตเปˆเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเป€เบเบตเบ”เบ‚เบทเป‰เบ™, i.e. เป€เบญเบปเบฒเบฎเบนเบšเบžเบฒเบšเบ—เบตเปˆเบšเปเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบญเบญเบ.

เปเบ•เปˆเป€เบˆเบปเป‰เบฒเบเปเบฒเบ™เบปเบ”เบงเปˆเบฒเบฎเบนเบšเบžเบฒเบšเปƒเบ”เบกเบตเบ„เบงเบฒเบกเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เปเบ™เบงเปƒเบ”?

เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบชเปเบฒเบฅเบฑเบšเบ„เบงเบฒเบกเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบ‚เบญเบ‡เบฎเบนเบšเบžเบฒเบš

เปƒเบ™เบเปเบฅเบฐเบ™เบตเบซเบผเบฒเบเบ—เบตเปˆเบชเบธเบ”, เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบ•เบปเป‰เบ™เบ•เปเปเบกเปˆเบ™:

1. เบ—เปเบฒเบญเบดเบ” (เบ—เบตเปˆเบŠเบฑเบ”เป€เบˆเบ™เบ—เบตเปˆเบชเบธเบ”เปเบฅเบฐเบชเปเบฒเบ„เบฑเบ™เบ—เบตเปˆเบชเบธเบ”เบ‚เบญเบ‡เบ—เบฑเบ‡เบซเบกเบปเบ”) เปเบกเปˆเบ™เบฎเบนเบšเบžเบฒเบšเบ—เบตเปˆ เบ›เบฐเบˆเบธเบšเบฑเบ™เปƒเบŠเป‰เปƒเบ™ Kubernetes. เบเบฒเบ™เบฅเบถเบšเบฎเบนเบšเบžเบฒเบšเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบชเบปเปˆเบ‡เบœเบปเบ™เปƒเบซเป‰เบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเปƒเบ™เป€เบงเบฅเบฒเบเบฒเบ™เบœเบฐเบฅเบดเบ”เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™ (เบ•เบปเบงเบขเปˆเบฒเบ‡, เบฎเบนเบšเบžเบฒเบšเบญเบฒเบ”เบˆเบฐเบ•เป‰เบญเบ‡เบเบฒเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบˆเปเบฒเบฅเบญเบ‡) เบซเบผเบทเบ›เบฐเบ•เบดเป€เบชเบ”เบ„เบงเบฒเบกเบžเบฐเบเบฒเบเบฒเบกเบ‚เบญเบ‡เบ—เบตเบกเบ‡เบฒเบ™ debugging เปƒเบ”เป†เบ‚เบญเบ‡ loops. (เบ”เป‰เบงเบโ€‹เป€เบซเบ”โ€‹เบ™เบตเป‰โ€‹เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เบเบฑเบ‡โ€‹เป„เบ”เป‰โ€‹เป€เบฎเบฑเบ”โ€‹เปƒเบซเป‰โ€‹เบžเบดโ€‹เป€เบชเบ” เบœเบนเป‰เบชเบปเปˆเบ‡เบญเบญเบ Prometheus, เป€เบŠเบดเปˆเบ‡เบ•เบดเบ”เบ•เบฒเบกเบเบฒเบ™เบšเปเปˆเบกเบตเบฎเบนเบšเบžเบฒเบšเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบขเบนเปˆเปƒเบ™เบเบธเปˆเบก Kubernetes เปƒเบ”.)

2. เบญเบฑเบ™เบ—เบตเบชเบญเบ‡ (เบซเบ™เป‰เบญเบเบ—เบตเปˆเบˆเบฐเปเบˆเป‰เบ‡, เปเบ•เปˆเบเบฑเบ‡เบกเบตเบ„เบงเบฒเบกเบชเปเบฒเบ„เบฑเบ™เบซเบผเบฒเบเปเบฅเบฐเบญเบตเบเป€เบ—เบทเปˆเบญเบซเบ™เบถเปˆเบ‡เบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบเบฒเบ™เบ‚เบธเบ”เบ„เบปเป‰เบ™) - เบฎเบนเบšเบžเบฒเบšเบ—เบตเปˆ เบ•เป‰เบญเบ‡เบเบฒเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ rollback เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบเบฒเบ™เบเบงเบ”เบžเบปเบšเบšเบฑเบ™เบซเบฒเบฎเป‰เบฒเบเปเบฎเบ‡ เปƒเบ™โ€‹เบชเบฐโ€‹เบšเบฑเบšโ€‹เบ›เบฐโ€‹เบˆเบธโ€‹เบšเบฑเบ™โ€‹. เบ•เบปเบงเบขเปˆเบฒเบ‡, เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡ Helm, เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบฎเบนเบšเบžเบฒเบšเบ—เบตเปˆเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เบชเบฐเบšเบฑเบšเบ—เบตเปˆเบšเบฑเบ™เบ—เบถเบเป„เบงเป‰เบ‚เบญเบ‡เบเบฒเบ™เบ›เปˆเบญเบ. (เป‚เบ”เบเบงเบดเบ—เบตเบ—เบฒเบ‡เบเบฒเบ™, เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปƒเบ™ Helm เบ‚เบญเบšเป€เบ‚เบ”เบˆเปเบฒเบเบฑเบ”เปเบกเปˆเบ™ 256 เบเบฒเบ™เปเบเป‰เป„เบ‚, เปเบ•เปˆเบกเบฑเบ™เบšเปเปˆเบซเบ™เป‰เบฒเบˆเบฐเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบงเปˆเบฒเปƒเบœเบเปเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบ›เบฐเบซเบเบฑเบ”. เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง เบˆเปเบฒเบ™เบงเบ™เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบ‚เบญเบ‡เบชเบฐเบšเบฑเบš?..) เบซเบผเบฑเบ‡เบˆเบฒเบเบ—เบตเปˆเบ—เบฑเบ‡เบซเบกเบปเบ”, เบžเบงเบเป€เบฎเบปเบฒ, เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐ, เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบชเบฐเบšเบฑเบšเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เปƒเบซเป‰เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบ•เปเปˆเบกเบฒ, i.e. "เบเบฑเบšเบ„เบทเบ™" เปƒเบซเป‰เบžเบงเบเป€เบ‚เบปเบฒเบ–เป‰เบฒเบˆเปเบฒเป€เบ›เบฑเบ™.

3. เบ—เบตเบชเบฒเบก - เบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเบ•เป‰เบญเบ‡เบเบฒเบ™: เบฎเบนเบšเบžเบฒเบšเบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเปƒเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒ. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ–เป‰เบฒเบžเบงเบเป€เบฎเบปเบฒเบเปเบฒเบฅเบฑเบ‡เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒ PR, เบกเบฑเบ™เป€เบฎเบฑเบ”เปƒเบซเป‰เบ„เบงเบฒเบกเบฎเบนเป‰เบชเบถเบเบ—เบตเปˆเบˆเบฐเบญเบญเบเบˆเบฒเบเบฎเบนเบšเบžเบฒเบšเบ—เบตเปˆเบชเบญเบ”เบ„เป‰เบญเบ‡เบเบฑเบ™เบเบฑเบšเบ„เปเบฒเบซเบกเบฑเป‰เบ™เบชเบฑเบ™เบเบฒเบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒเปเบฅเบฐเป€เบงเบปเป‰เบฒเบงเปˆเบฒ, เบ„เปเบฒเบซเบกเบฑเป‰เบ™เบชเบฑเบ™เบเบฒเบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒ: เบงเบดเบ—เบตเบ™เบตเป‰เบœเบนเป‰เบžเบฑเบ”เบ—เบฐเบ™เบฒเบชเบฒเบกเบฒเบ”เบเบฑเบšเบ„เบทเบ™เป„เบ›เบซเบฒเบงเบฝเบเบ‡เบฒเบ™เปƒเบ”เบซเบ™เบถเปˆเบ‡เบขเปˆเบฒเบ‡เป„เบงเบงเบฒเปเบฅเบฐเป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบซเบผเป‰เบฒเบชเบธเบ”.

4. เบชเบตเปˆ - เบฎเบนเบšเบžเบฒเบšเบ—เบตเปˆ เบชเบญเบ”เบ„เป‰เบญเบ‡เบเบฑเบšเบชเบฐเบšเบฑเบšเบ‚เบญเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ, i.e. เปเบกเปˆเบ™เบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™เบชเบธเบ”เบ—เป‰เบฒเบ: v1.0.0, 20.04.01/XNUMX/XNUMX, sierra, เปเบฅเบฐเบญเบทเปˆเบ™เป†.

NB: เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เบขเบนเปˆเบ—เบตเปˆเบ™เบตเป‰เป„เบ”เป‰เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบ›เบฐเบชเบปเบšเบเบฒเบ™เบ—เบตเปˆเบžเบปเบงเบžเบฑเบ™เบเบฑเบšเบ—เบตเบกเบ‡เบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบซเบผเบฒเบเบชเบดเบšเบ„เบปเบ™เบˆเบฒเบเบšเปเบฅเบดเบชเบฑเบ”เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเปˆเบ•เบฒเบก, เปเบ™เปˆเบ™เบญเบ™, เบญเบตเบ‡เบ•เบฒเบกเบเบฒเบ™เบชเบฐเป€เบžเบฒเบฐเปƒเบ™เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเปเบฅเบฐเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบžเบทเป‰เบ™เบ–เบฒเบ™เบ—เบตเปˆเปƒเบŠเป‰ (เบ•เบปเบงเบขเปˆเบฒเบ‡, Kubernetes เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰), เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบญเบฒเบ”เบˆเบฐเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™.

เบเบฒเบ™เบกเบตเบชเบดเบ”เป„เบ”เป‰เบฎเบฑเบšเปเบฅเบฐเบเบฒเบ™เปเบเป‰เป„เบ‚เบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบฅเป‰เบง

เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบ—เบตเปˆเบ™เบดเบเบปเบกเบเบฑเบšเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ•เบนเป‰เบ„เบญเบ™เป€เบ—เบ™เป€เบ™เบต, เบ•เบฒเบกเบเบปเบ”เบฅเบฐเบšเบฝเบš, เบชเบฐเป€เบซเบ™เบตเบ™เบฐเป‚เบเบšเบฒเบเบเบฒเบ™เป€เบฎเบฑเบ”เบ„เบงเบฒเบกเบชเบฐเบญเบฒเบ”เบฎเบนเบšเบžเบฒเบšเบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡: เปƒเบ™เบžเบงเบเบกเบฑเบ™เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบเปเบฒเบ™เบปเบ”เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบ—เบตเปˆเปเบ—เบฑเบเบ–เบทเบเป‚เบเบเบเป‰เบฒเบเบญเบญเบเบˆเบฒเบเบ—เบฐเบšเบฝเบ™. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบˆเปเบฒเบเบฑเบ”เป‚เบ”เบเบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เป€เบŠเบฑเปˆเบ™: เบŠเบทเปˆ, เป€เบงเบฅเบฒเบชเป‰เบฒเบ‡, เปเบฅเบฐเบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡ tags *.

* เบ‚เบถเป‰เบ™เบเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบšเบฑเบ™เบˆเบธเบชเบฐเป€เบžเบฒเบฐ. เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ‚เบญเบ‡เบเบฒเบ™เปเบเป‰เป„เบ‚เบ•เปเปˆเป„เบ›เบ™เบตเป‰: Azure CR, Docker Hub, ECR, GCR, GitHub Packages, GitLab Container Registry, Harbor Registry, JFrog Artifactory, Quay.io - เปƒเบ™เป€เบ”เบทเบญเบ™เบเบฑเบ™เบเบฒ 2020.

เบŠเบธเบ”เบ‚เบญเบ‡เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบ™เบตเป‰เปเบกเปˆเบ™เบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เบžเบฝเบ‡เบžเปเป€เบžเบทเปˆเบญเบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบ—เบตเปˆเบชเบตเปˆ - เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เป€เบžเบทเปˆเบญเป€เบฅเบทเบญเบเบฎเบนเบšเบžเบฒเบšเบ—เบตเปˆเบชเบญเบ”เบ„เปˆเบญเบ‡เบเบฑเบšเบชเบฐเบšเบฑเบšเบ•เปˆเบฒเบ‡เป†. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเปˆเบ•เบฒเบก, เบชเปเบฒเบฅเบฑเบšเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบญเบทเปˆเบ™เป†เบ—เบฑเบ‡เบซเบกเบปเบ”, เบ„เบปเบ™เป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เป€เบฅเบทเบญเบเบงเบดเบ—เบตเปเบเป‰เป„เบ‚เบเบฒเบ™เบ›เบฐเบ™เบตเบ›เบฐเบ™เบญเบกเบšเบฒเบ‡เบ›เบฐเป€เบžเบ” (เบ™เบฐเป‚เบเบšเบฒเบเบ—เบตเปˆเป€เบ„เบฑเปˆเบ‡เบ„เบฑเบ”เบเบงเปˆเบฒเบซเบผเบทเบเบปเบ‡เบเบฑเบ™เบ‚เป‰เบฒเบก, เบœเปˆเบญเบ™เบœเบฑเบ™เบซเบผเบฒเบ) - เบ‚เบถเป‰เบ™เบเบฑเบšเบ„เบงเบฒเบกเบ„เบฒเบ”เบซเบงเบฑเบ‡เปเบฅเบฐเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เบ—เบฒเบ‡เบ”เป‰เบฒเบ™เบเบฒเบ™เป€เบ‡เบดเบ™.

เบ•เบปเบงเบขเปˆเบฒเบ‡, เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบ—เบตเบชเบฒเบก - เบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบ‚เบญเบ‡เบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ - เบชเบฒเบกเบฒเบ”เปเบเป‰เป„เบ‚เป„เบ”เป‰เป‚เบ”เบเบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบžเบฒเบเปƒเบ™เบ—เบตเบก: เบเบฒเบ™เบ•เบฑเป‰เบ‡เบŠเบทเปˆเบชเบฐเป€เบžเบฒเบฐเบ‚เบญเบ‡เบฎเบนเบšเบžเบฒเบš, เบเบฒเบ™เบฎเบฑเบเบชเบฒเบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบญเบฐเบ™เบธเบเบฒเบ”เบžเบดเป€เบชเบ”เปเบฅเบฐเบ‚เปเป‰เบ•เบปเบเบฅเบปเบ‡เบžเบฒเบเปƒเบ™. เปเบ•เปˆเบชเบธเบ”เบ—เป‰เบฒเบเบกเบฑเบ™เบเบฑเบ‡เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”. เปเบฅเบฐเบ–เป‰เบฒเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เบ‚เบญเบ‡เบเบฒเบ™เปเบเป‰เป„เบ‚เบ—เบตเปˆเบเบฝเบกเบžเป‰เบญเบกเปเบกเปˆเบ™เบšเปเปˆเบžเบฝเบ‡เบžเป, เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เป€เบฎเบฑเบ”เบšเบฒเบ‡เบชเบดเปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เป€เบญเบ‡.

เบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบ—เบตเปˆเบกเบตเบชเบญเบ‡เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบ—เปเบฒเบญเบดเบ”เปเบกเปˆเบ™เบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™: เบžเบงเบเบกเบฑเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ”เบžเปเปƒเบˆเป„เบ”เป‰เป‚เบ”เบเบšเปเปˆเป„เบ”เป‰เบฎเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบˆเบฒเบเบฅเบฐเบšเบปเบšเบžเบฒเบเบ™เบญเบ - เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ—เบตเปˆเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰ (เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ, Kubernetes).

เบฎเบนเบšเบ›เบฐเบเบญเบšเบ‚เบญเบ‡เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเปƒเบ™ Git

เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเป€เบˆเบปเป‰เบฒเบเบณเบฅเบฑเบ‡เป€เบฎเบฑเบ”เบงเบฝเบเปเบšเบšเบ™เบตเป‰เบขเบนเปˆเปƒเบ™ Git:

เบšเบฑเบ™เบซเบฒเบ‚เบญเบ‡เบเบฒเบ™เบ—เปเบฒเบ„เบงเบฒเบกเบชเบฐเบญเบฒเบ” "เบชเบฐเบซเบกเบฒเบ”" เบ‚เบญเบ‡เบฎเบนเบšเบžเบฒเบšเบšเบฑเบ™เบˆเบธเปเบฅเบฐเบเบฒเบ™เปเบเป‰เป„เบ‚เบ‚เบญเบ‡เบกเบฑเบ™เบขเบนเปˆเปƒเบ™ werf

เป„เบญเบ„เบญเบ™เบ—เบตเปˆเบกเบตเบซเบปเบงเบขเบนเปˆเปƒเบ™เปเบœเบ™เบงเบฒเบ”เบŠเบตเป‰เบšเบญเบเบฎเบนเบšเบžเบฒเบšเบšเบฑเบ™เบˆเบธเบ—เบตเปˆเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบขเบนเปˆเปƒเบ™ Kubernetes เบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เปƒเบŠเป‰เปƒเบ”เบเปเปˆเบ•เบฒเบก (เบœเบนเป‰เปƒเบŠเป‰เบชเบธเบ”เบ—เป‰เบฒเบ, เบœเบนเป‰เบ—เบปเบ”เบชเบญเบš, เบœเบนเป‰เบˆเบฑเบ”เบเบฒเบ™, เปเบฅเบฐเบญเบทเปˆเบ™เป†) เบซเบผเบทเบ–เบทเบเปƒเบŠเป‰เป‚เบ”เบเบœเบนเป‰เบžเบฑเบ”เบ—เบฐเบ™เบฒเป€เบžเบทเปˆเบญเบ”เบตเบšเบฑเบเปเบฅเบฐเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เบ—เบตเปˆเบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™.

เบˆเบฐเป€เบเบตเบ”เบซเบเบฑเบ‡เบ‚เบถเป‰เบ™เบ–เป‰เบฒเบ™เบฐเป‚เบเบšเบฒเบเบเบฒเบ™เบ—เปเบฒเบ„เบงเบฒเบกเบชเบฐเบญเบฒเบ”เบžเบฝเบ‡เปเบ•เปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบฎเบนเบšเบžเบฒเบš (เบšเปเปˆเบ–เบทเบเบฅเบถเบš) เป‚เบ”เบเบŠเบทเปˆเปเบ—เบฑเบเบ—เบตเปˆเปƒเบซเป‰เป„เบงเป‰?

เบšเบฑเบ™เบซเบฒเบ‚เบญเบ‡เบเบฒเบ™เบ—เปเบฒเบ„เบงเบฒเบกเบชเบฐเบญเบฒเบ” "เบชเบฐเบซเบกเบฒเบ”" เบ‚เบญเบ‡เบฎเบนเบšเบžเบฒเบšเบšเบฑเบ™เบˆเบธเปเบฅเบฐเบเบฒเบ™เปเบเป‰เป„เบ‚เบ‚เบญเบ‡เบกเบฑเบ™เบขเบนเปˆเปƒเบ™ werf

เปเบ™เปˆเบ™เบญเบ™, เบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบˆเบฐเบšเปเปˆเป€เบฎเบฑเบ”เปƒเบซเป‰เปƒเบœเบกเบตเบ„เบงเบฒเบกเบชเบธเบ.

เบˆเบฐเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เปเบ™เบงเปƒเบ”เบ–เป‰เบฒเบ™เบฐเป‚เบเบšเบฒเบเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบฎเบนเบšเบžเบฒเบšเบšเปเปˆเบ–เบทเบเบฅเบถเบš? เบญเบตเบ‡เบ•เบฒเบกเป„เบฅเบเบฐเป€เบงเบฅเบฒ / เบˆเปเบฒเบ™เบงเบ™เบ„เปเบฒเบซเบกเบฑเป‰เบ™เบชเบฑเบ™เบเบฒเบชเบธเบ”เบ—เป‰เบฒเบ?

เบšเบฑเบ™เบซเบฒเบ‚เบญเบ‡เบเบฒเบ™เบ—เปเบฒเบ„เบงเบฒเบกเบชเบฐเบญเบฒเบ” "เบชเบฐเบซเบกเบฒเบ”" เบ‚เบญเบ‡เบฎเบนเบšเบžเบฒเบšเบšเบฑเบ™เบˆเบธเปเบฅเบฐเบเบฒเบ™เปเบเป‰เป„เบ‚เบ‚เบญเบ‡เบกเบฑเบ™เบขเบนเปˆเปƒเบ™ werf

เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเป„เบ”เป‰เบเบฒเบเป€เบ›เบฑเบ™เบ—เบตเปˆเบ”เบตเบเบงเปˆเบฒ, เปเบ•เปˆเบเบฑเบ‡เบขเบนเปˆเป„เบเบˆเบฒเบเบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบก. เบซเบผเบฑเบ‡เบˆเบฒเบเบ—เบตเปˆเบ—เบฑเบ‡เบซเบกเบปเบ”, เบžเบงเบเป€เบฎเบปเบฒเบเบฑเบ‡เบกเบตเบœเบนเป‰เบžเบฑเบ”เบ—เบฐเบ™เบฒเบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบฎเบนเบšเบžเบฒเบšเปƒเบ™เบฅเบตเบˆเบดเบ”เบŠเบต (เบซเบผเบทเปเบกเป‰เบเบฐเบ—เบฑเป‰เบ‡ deployed เปƒเบ™ K8s) เป€เบžเบทเปˆเบญเปเบเป‰เป„เบ‚เบ‚เปเป‰เบšเบปเบเบœเปˆเบญเบ‡ ...

เป€เบžเบทเปˆเบญเบชเบฐเบซเบผเบธเบšเบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบ•เบฐเบซเบผเบฒเบ”เปƒเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™: เบซเบ™เป‰เบฒเบ—เบตเปˆเบ—เบตเปˆเบกเบตเบขเบนเปˆเปƒเบ™เบ—เบฐเบšเบฝเบ™เบ•เบนเป‰เบ„เบญเบ™เป€เบ—เบ™เป€เบ™เบตเบšเปเปˆเบกเบตเบ„เบงเบฒเบกเบเบทเบ”เบซเบเบธเปˆเบ™เบžเบฝเบ‡เบžเปเปƒเบ™เป€เบงเบฅเบฒเบ—เปเบฒเบ„เบงเบฒเบกเบชเบฐเบญเบฒเบ”, เปเบฅเบฐเป€เบซเบ”เบœเบปเบ™เบ•เบปเป‰เบ™เบ•เปเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เบตเป‰เปเบกเปˆเบ™. เบšเปเปˆเบกเบตเบ—เบฒเบ‡เบ—เบตเปˆเบˆเบฐเบžเบปเบงเบžเบฑเบ™เบเบฑเบšเป‚เบฅเบเบžเบฒเบเบ™เบญเบ. เบกเบฑเบ™เบ›เบฐเบเบปเบ”เบงเปˆเบฒเบ—เบตเบกเบ‡เบฒเบ™เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบ„เบงเบฒเบกเบเบทเบ”เบซเบเบธเปˆเบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบ–เบทเบเบšเบฑเบ‡เบ„เบฑเบšเปƒเบซเป‰เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบฅเบถเบšเบฎเบนเบšเบžเบฒเบšเบ—เบตเปˆเป€เบ›เบฑเบ™เป€เบญเบเบฐเบฅเบฒเบ” "เบˆเบฒเบเบžเบฒเบเบ™เบญเบ", เป‚เบ”เบเปƒเบŠเป‰ Docker Registry API (เบซเบผเบท API เป€เบ”เบตเบกเบ‚เบญเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบตเปˆเบชเบญเบ”เบ„เป‰เบญเบ‡เบเบฑเบ™).

เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบžเบงเบเป€เบฎเบปเบฒเบเปเบฒเบฅเบฑเบ‡เบŠเบญเบเบซเบฒเบงเบดเบ—เบตเปเบเป‰เป„เบ‚เบ—เบปเปˆเบงเป„เบ›เบ—เบตเปˆเบˆเบฐเบ—เปเบฒเบ„เบงเบฒเบกเบชเบฐเบญเบฒเบ”เบฎเบนเบšเบžเบฒเบšเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบชเปเบฒเบฅเบฑเบšเบ—เบตเบกเบ‡เบฒเบ™เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เป‚เบ”เบเปƒเบŠเป‰เบ—เบฐเบšเบฝเบ™เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™ ...

เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเป„เบ›เบชเบนเปˆเบเบฒเบ™เบ—เปเบฒเบ„เบงเบฒเบกเบชเบฐเบญเบฒเบ”เบฎเบนเบšเบžเบฒเบšเบ—เบปเปˆเบงเป„เบ›

เบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบ™เบตเป‰เบกเบฒเบˆเบฒเบเปƒเบช? เบ„เบงเบฒเบกเบˆเบดเบ‡เปเบฅเป‰เบงเปเบกเปˆเบ™เบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเบšเปเปˆเปเบกเปˆเบ™เบเบธเปˆเบกเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ, เปเบ•เปˆเป€เบ›เบฑเบ™เบ—เบตเบกเบ—เบตเปˆเปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™เบซเบผเบฒเบเป†เบ„เบปเบ™เปƒเบ™เบ„เบฑเป‰เบ‡เบ”เบฝเบง, เบŠเปˆเบงเบเปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒ CI/CD เบขเปˆเบฒเบ‡เบชเบปเบกเบšเบนเบ™เปเบšเบš. เปเบฅเบฐเป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ”เป‰เบฒเบ™เบงเบดเบŠเบฒเบเบฒเบ™เบ•เบปเป‰เบ™เบ•เปเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เบตเป‰เปเบกเปˆเบ™เบœเบปเบ™เบ›เบฐเป‚เบซเบเบ”เบ‚เบญเบ‡เปเบซเบผเปˆเบ‡เป€เบ›เบตเบ” werf. peculiarity เบ‚เบญเบ‡เบกเบฑเบ™เปเบกเปˆเบ™เบงเปˆเบฒเบกเบฑเบ™เบšเปเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เบซเบ™เป‰เบฒเบ”เบฝเบง, เปเบ•เปˆเบกเบฒเบžเป‰เบญเบกเบเบฑเบšเบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบˆเบฑเบ”เบชเบปเปˆเบ‡เบขเปˆเบฒเบ‡เบ•เปเปˆเป€เบ™เบทเปˆเบญเบ‡เปƒเบ™เบ—เบธเบเบ‚เบฑเป‰เบ™เบ•เบญเบ™: เบˆเบฒเบเบเบฒเบ™เบ›เบฐเบเบญเบšเบเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”.

เบเบฒเบ™เป€เบœเบตเบเปเบžเปˆเบฎเบนเบšเบžเบฒเบšเป„เบ›เบเบฑเบ‡เบ—เบฐเบšเบฝเบ™* (เบ—เบฑเบ™เบ—เบตเบซเบผเบฑเบ‡เบˆเบฒเบเบ—เบตเปˆเบžเบงเบเบกเบฑเบ™เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™) เปเบกเปˆเบ™เบซเบ™เป‰เบฒเบ—เบตเปˆเบŠเบฑเบ”เป€เบˆเบ™เบ‚เบญเบ‡เบœเบปเบ™เบ›เบฐเป‚เบซเบเบ”เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง. เปเบฅเบฐเบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆเบฎเบนเบšเบžเบฒเบšเบ•เปˆเบฒเบ‡เป†เบ–เบทเบเบงเบฒเบ‡เป„เบงเป‰เบšเปˆเบญเบ™เบ™เบฑเป‰เบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒ, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™ - เบ–เป‰เบฒเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบšเปเปˆเบˆเปเบฒเบเบฑเบ” - เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบฎเบฑเบšเบœเบดเบ”เบŠเบญเบšเบ•เปเปˆเบเบฒเบ™เป€เบฎเบฑเบ”เบ„เบงเบฒเบกเบชเบฐเบญเบฒเบ”เบ•เปเปˆเบกเบฒเบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒ. เป€เบฎเบฑเบ”เปเบ™เบงเปƒเบ”เบžเบงเบเป€เบฎเบปเบฒเบ›เบฐเบชเบปเบšเบœเบปเบ™เบชเปเบฒเป€เบฅเบฑเบ”เปƒเบ™เป€เบฅเบทเปˆเบญเบ‡เบ™เบตเป‰, เบžเปเปƒเบˆเบเบฑเบšเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เบ—เบฑเบ‡เบซเบกเบปเบ”, เบˆเบฐเบ–เบทเบเบ›เบถเบเบชเบฒเบซเบฒเบฅเบทเบ•เบทเปˆเบกเบญเบตเบ.

* เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ•เบปเบงเป€เบญเบ‡เบญเบฒเบ”เบˆเบฐเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™ (Docker Registry, GitLab Container Registry, Harbor, เปเบฅเบฐเบญเบทเปˆเบ™เป†), เบœเบนเป‰เปƒเบŠเป‰เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒเบ›เบฐเป€เบŠเบตเบ™เบเบฑเบšเบšเบฑเบ™เบซเบฒเบ”เบฝเบงเบเบฑเบ™. เบเบฒเบ™เปเบเป‰เป„เบ‚เบ—เบปเปˆเบงเป„เบ›เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบšเปเปˆเป„เบ”เป‰เบ‚เบถเป‰เบ™เบเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™, เป€เบžเบฒเบฐเบงเปˆเบฒ เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบขเบนเปˆเบ™เบญเบเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ”เป‰เบงเบเบ•เบปเบ™เป€เบญเบ‡เปเบฅเบฐเบชเบฐเป€เบซเบ™เบตเบžเบถเบ”เบ•เบดเบเปเบฒเบ”เบฝเบงเบเบฑเบ™เบชเปเบฒเบฅเบฑเบšเบ—เบธเบเบ„เบปเบ™.

เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเบเปเบฒเบฅเบฑเบ‡เปƒเบŠเป‰ werf เป€เบ›เบฑเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบปเบงเบขเปˆเบฒเบ‡, เบžเบงเบเป€เบฎเบปเบฒเบซเบงเบฑเบ‡เบงเปˆเบฒเบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเบ™เปเบฒเปƒเบŠเป‰เบˆเบฐเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบเบฑเบšเบ—เบตเบกเบ‡เบฒเบ™เบญเบทเปˆเบ™เป†เบ—เบตเปˆเบ›เบฐเบชเบปเบšเบเบฑเบšเบ„เบงเบฒเบกเบซเบเบธเป‰เบ‡เบเบฒเบเบ—เบตเปˆเบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™.

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบžเบงเบเป€เบฎเบปเบฒเบ„เปˆเบญเบเบกเบตเป€เบงเบฅเบฒ เบžเบฒเบเบ™เบญเบ เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบปเบ™เป„เบเบเบฒเบ™เบ—เปเบฒเบ„เบงเบฒเบกเบชเบฐเบญเบฒเบ”เบฎเบนเบšเบžเบฒเบš - เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเบกเบตเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เปƒเบ™เบ—เบฐเบšเบฝเบ™เบชเปเบฒเบฅเบฑเบšเบšเบฑเบ™เบˆเบธ. เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ—เปเบฒเบญเบดเบ”เปเบกเปˆเบ™เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ Docker Registry API เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบ™เบฐเป‚เบเบšเบฒเบเบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบšเบ”เบฝเบงเบเบฑเบ™เบชเปเบฒเบฅเบฑเบšเบˆเปเบฒเบ™เบงเบ™เปเบ—เบฑเบเปเบฅเบฐเป€เบงเบฅเบฒเบ‚เบญเบ‡เบเบฒเบ™เบชเป‰เบฒเบ‡เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒ (เบ—เบตเปˆเป„เบ”เป‰เบเปˆเบฒเบงเบกเบฒเบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡). เป€เบžเบตเปˆเบกเปƒเบชเปˆเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒ เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบฅเบฒเบเบŠเบทเปˆเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบฎเบนเบšเบžเบฒเบšเบ—เบตเปˆเปƒเบŠเป‰เปƒเบ™เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบžเบทเป‰เบ™เบ–เบฒเบ™เบ—เบตเปˆเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰, i.e. Kubernetes. เบชเปเบฒเบฅเบฑเบšเบญเบฑเบ™เบชเบธเบ”เบ—เป‰เบฒเบ, เบกเบฑเบ™เบžเบฝเบ‡เบžเปเบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰ Kubernetes API เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เป€เบฅเบทเป‰เบกเบ„เบทเบ™เบœเปˆเบฒเบ™เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบ—เบตเปˆเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบ—เบฑเบ‡เบซเบกเบปเบ”เปเบฅเบฐเป„เบ”เป‰เบฎเบฑเบšเบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡เบกเบนเบ™เบ„เปˆเบฒ. image.

เบเบฒเบ™เปเบเป‰เป„เบ‚ trivial เบ™เบตเป‰เปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบชเปเบฒเบ„เบฑเบ™เบ—เบตเปˆเบชเบธเบ” (เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบ—เบต 1), เปเบ•เปˆเปเบกเปˆเบ™เบžเบฝเบ‡เปเบ•เปˆเบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เบเบฒเบ™เป€เบ”เบตเบ™เบ—เบฒเบ‡เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเป€เบžเบทเปˆเบญเบ›เบฑเบšเบ›เบธเบ‡เบเบปเบ™เป„เบเบเบฒเบ™เบ—เปเบฒเบ„เบงเบฒเบกเบชเบฐเบญเบฒเบ”. เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ•เปเปˆเป„เบ› - เปเบฅเบฐเบซเบ™เป‰เบฒเบชเบปเบ™เปƒเบˆเบซเบผเบฒเบ - เบ‚เบฑเป‰เบ™เบ•เบญเบ™เปเบกเปˆเบ™เบเบฒเบ™เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆ เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เบฎเบนเบšเบžเบฒเบšเบ—เบตเปˆเป€เบœเบตเบเปเบœเปˆเบเบฑเบšเบ›เบฐเบซเบงเบฑเบ” Git.

เปเบœเบ™โ€‹เบเบฒเบ™โ€‹เบ•เบดเบ”โ€‹เบ•เบฑเป‰เบ‡โ€‹

เป€เบžเบทเปˆเบญเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบ, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เป€เบฅเบทเบญเบเบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเบฎเบนเบšเบžเบฒเบšเบชเบธเบ”เบ—เป‰เบฒเบเบ„เบงเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ—เปเบฒเบ„เบงเบฒเบกเบชเบฐเบญเบฒเบ”, เปเบฅเบฐเบชเป‰เบฒเบ‡เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบเปˆเบฝเบงเบเบฑเบšเป‚เบ„เบ‡เบเบฒเบ™ tagging. เป€เบกเบทเปˆเบญเป€เบœเบตเบเปเบœเปˆเบฎเบนเบšเบžเบฒเบš, เบœเบนเป‰เปƒเบŠเป‰เป€เบฅเบทเบญเบเบ•เบปเบงเป€เบฅเบทเบญเบเบเบฒเบ™เปเบ—เบฑเบเบชเบฐเป€เบžเบฒเบฐ (git-branch, git-commit เบซเบผเบท git-tag) เปเบฅเบฐเปƒเบŠเป‰เบ„เปˆเบฒเบ—เบตเปˆเบชเบญเบ”เบ„เป‰เบญเบ‡เบเบฑเบ™. เปƒเบ™เบฅเบฐเบšเบปเบš CI, เบ„เปˆเบฒเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เป„เบ”เป‰เบ–เบทเบเบเปเบฒเบ™เบปเบ”เป‚เบ”เบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบ•เบปเบงเปเบ›เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก. เปƒเบ™โ€‹เบ„เบงเบฒเบกโ€‹เป€เบ›เบฑเบ™โ€‹เบˆเบดเบ‡ เบฎเบนเบšเบžเบฒเบšเบชเบธเบ”เบ—เป‰เบฒเบเปเบกเปˆเบ™เบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบš Git primitive เบชเบฐเป€เบžเบฒเบฐ, เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ—เปเบฒเบ„เบงเบฒเบกเบชเบฐเบญเบฒเบ”เบขเบนเปˆเปƒเบ™เบ›เป‰เบฒเบเบŠเบทเปˆ.

เบงเบดเบ—เบตเบเบฒเบ™เบ™เบตเป‰เป„เบ”เป‰เบชเบปเปˆเบ‡เบœเบปเบ™เปƒเบซเป‰เบŠเบธเบ”เบ™เบฐเป‚เบเบšเบฒเบเบ—เบตเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰ Git เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบ›เบฑเบ™เปเบซเบผเปˆเบ‡เบ”เบฝเบงเบ‚เบญเบ‡เบ„เบงเบฒเบกเบˆเบดเบ‡:

  • เป€เบกเบทเปˆเบญเบฅเบถเบšเบชเบฒเบ‚เบฒ/เปเบ—เบฑเบเปƒเบ™ Git, เบฎเบนเบšเบžเบฒเบšเบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เปƒเบ™เบ—เบฐเบšเบฝเบ™เบˆเบฐเบ–เบทเบเบฅเบถเบšเป‚เบ”เบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”.
  • เบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡เบฎเบนเบšเบžเบฒเบšเบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบš tags Git เปเบฅเบฐ commits เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ„เบงเบšเบ„เบธเบกเป‚เบ”เบเบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡ tags เบ—เบตเปˆเปƒเบŠเป‰เปƒเบ™ schema เบ—เบตเปˆเป€เบฅเบทเบญเบเปเบฅเบฐเป€เบงเบฅเบฒเบ—เบตเปˆเบ„เปเบฒเบซเบกเบฑเป‰เบ™เบชเบฑเบ™เบเบฒเบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เป„เบ”เป‰เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™.

เป‚เบ”เบเบฅเบงเบกเปเบฅเป‰เบง, เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ—เบตเปˆเบžเปเปƒเบˆเบเบฑเบšเบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ, เปเบ•เปˆเบชเบดเปˆเบ‡เบ—เป‰เบฒเบ—เบฒเบเปƒเบซเบกเปˆเบฅเปเบ–เป‰เบฒเบžเบงเบเป€เบฎเบปเบฒเปƒเบ™เป„เบงเป†เบ™เบตเป‰. เบ„เบงเบฒเบกเบˆเบดเบ‡เปเบฅเป‰เบงเปเบกเปˆเบ™เบงเปˆเบฒเปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ tagging schemes เบญเบตเบ‡เปƒเบชเปˆ Git primitives, เบžเบงเบเป€เบฎเบปเบฒเบžเบปเบšเบ‚เปเป‰เบšเบปเบเบœเปˆเบญเบ‡เบˆเปเบฒเบ™เบงเบ™เบซเบ™เบถเปˆเบ‡. (เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบ„เปเบฒเบญเบฐเบ—เบดเบšเบฒเบเบ‚เบญเบ‡เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเป€เบเบตเบ™เบ‚เบญเบšเป€เบ‚เบ”เบ‚เบญเบ‡เบšเบปเบ”เบ„เบงเบฒเบกเบ™เบตเป‰, เบ—เบธเบเบ„เบปเบ™เบชเบฒเบกเบฒเบ”เบ„เบธเป‰เบ™เป€เบ„เบตเบเบเบฑเบšเบฅเบฒเบเบฅเบฐเบญเบฝเบ”เบ‚เบญเบ‡เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒ เบ—เบตเปˆเบ™เบตเป‰.) เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เป‚เบ”เบเป„เบ”เป‰เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบ›เปˆเบฝเบ™เป„เบ›เบชเบนเปˆเบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบซเบผเบฒเบเบ‚เบถเป‰เบ™เปƒเบ™เบเบฒเบ™เบ•เบดเบ”เปเบ—เบฑเบ (เปเบ—เบฑเบเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเป€เบ™เบทเป‰เบญเบซเบฒ), เบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบ„เบทเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เป€เบฎเบฑเบ”เบ„เบงเบฒเบกเบชเบฐเบญเบฒเบ”เบฎเบนเบšเบžเบฒเบš.

เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบงเบดเบ—เบตเปƒเปเปˆ

เป€เบ›เบฑเบ™เบซเบเบฑเบ‡? เบ”เป‰เบงเบเบเบฒเบ™เบ•เบดเบ”เปเบ—เปเบเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเป€เบ™เบทเป‰เบญเบซเบฒ, เปเบ•เปˆเบฅเบฐเปเบ—เบฑเบเบชเบฒเบกเบฒเบ”เบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡เบ„เปเบฒเบซเบกเบฑเป‰เบ™เบชเบฑเบ™เบเบฒเบซเบผเบฒเบเปƒเบ™ Git. เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ—เปเบฒเบ„เบงเบฒเบกเบชเบฐเบญเบฒเบ”เบฎเบนเบšเบžเบฒเบš, เบ—เปˆเบฒเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ”เบชเบปเบกเบกเบธเบ”เบ•เบดเบ–เบฒเบ™เบญเบตเบเบ•เปเปˆเป„เบ› เบžเบฝเบ‡เปเบ•เปˆ เบˆเบฒเบเบ„เปเบฒเบซเบกเบฑเป‰เบ™เบชเบฑเบ™เบเบฒเบ—เบตเปˆเปเบ—เบฑเบเปƒเบซเบกเปˆเบ–เบทเบเป€เบžเบตเปˆเบกเป€เบ‚เบปเป‰เบฒเปƒเบ™เบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™.

เบชเปเบฒเบฅเบฑเบšเบชเบนเบ”เบเบฒเบ™เบ—เปเบฒเบ„เบงเบฒเบกเบชเบฐเบญเบฒเบ”เปƒเบซเบกเปˆ, เบกเบฑเบ™เป„เบ”เป‰เบ–เบทเบเบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบ—เบตเปˆเบˆเบฐเบเป‰เบฒเบเบญเบญเบเป„เบ›เบˆเบฒเบเป‚เบ„เบ‡เบเบฒเบ™ tagging เปเบฅเบฐเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡ เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบฎเบนเบšเบžเบฒเบš meta, เปเบ•เปˆเบฅเบฐเบญเบฑเบ™เบ—เบตเปˆเป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบŠเปเปˆเบ‚เบญเบ‡:

  • เบ„เปเบฒเบซเบกเบฑเป‰เบ™เบชเบฑเบ™เบเบฒเบ—เบตเปˆเบชเบดเปˆเบ‡เบžเบดเบกเป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ” (เบกเบฑเบ™เบšเปเปˆเบชเปเบฒเบ„เบฑเบ™เบงเปˆเบฒเบฎเบนเบšเบžเบฒเบšเบˆเบฐเบ–เบทเบเป€เบžเบตเปˆเบก, เบ›เปˆเบฝเบ™เปเบ›เบ‡เบซเบผเบทเบเบฑเบ‡เบ„เบปเบ‡เบขเบนเปˆเบ„เบทเป€เบเบปเปˆเบฒเบขเบนเปˆเปƒเบ™เบ—เบฐเบšเบฝเบ™เบšเบฑเบ™เบˆเบธ);
  • เปเบฅเบฐเบ•เบปเบงเบฅเบฐเบšเบธเบžเบฒเบเปƒเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบ—เบตเปˆเบชเบญเบ”เบ„เป‰เบญเบ‡เบเบฑเบšเบฎเบนเบšเบ›เบฐเบเบญเบš.

เปƒเบ™เบ„เปเบฒเบชเบฑเบšเบ•เปˆเบฒเบ‡เป†เบญเบทเปˆเบ™เป†, เบกเบฑเบ™เบ–เบทเบเบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰ เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡ tags เบ—เบตเปˆเบ–เบทเบเป€เบœเบตเบเปเบœเปˆเบ”เป‰เบงเบเบ„เปเบฒเบซเบกเบฑเป‰เบ™เบชเบฑเบ™เบเบฒเปƒเบ™ Git.

เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบชเบธเบ”เบ—เป‰เบฒเบ เปเบฅเบฐเบชเบนเบ”เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเบ—เบปเปˆเบงเป„เบ›

เป€เบกเบทเปˆเบญเบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบเบฒเบ™เบ—เปเบฒเบ„เบงเบฒเบกเบชเบฐเบญเบฒเบ”, เบœเบนเป‰เปƒเบŠเป‰เบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบ™เบฐเป‚เบเบšเบฒเบเบ—เบตเปˆเป€เบฅเบทเบญเบเบฎเบนเบšเบžเบฒเบšเปƒเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™. เปเบ•เปˆเบฅเบฐเบ™เบฐเป‚เบเบšเบฒเบเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบ–เบทเบเบเปเบฒเบ™เบปเบ”:

  • เบเบฒเบ™เบญเป‰เบฒเบ‡เบญเบตเบ‡เบซเบผเบฒเบ, i.e. Git tags เบซเบผเบทเบชเบฒเบ‚เบฒ Git เบ—เบตเปˆเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบชเบฐเปเบเบ™;
  • เปเบฅเบฐเบ‚เบญเบšเป€เบ‚เบ”เบˆเปเบฒเบเบฑเบ”เบ‚เบญเบ‡เบฎเบนเบšเบžเบฒเบšเบ—เบตเปˆเบ„เบปเป‰เบ™เบซเบฒเบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเป€เบญเบเบฐเบชเบฒเบ™เบญเป‰เบฒเบ‡เบญเบตเบ‡เบˆเบฒเบเบŠเบธเบ”.

เป€เบžเบทเปˆเบญเบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™, เบ™เบตเป‰เปเบกเปˆเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ™เบฐเป‚เบเบšเบฒเบเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒ:

cleanup:
  keepPolicies:
  - references:
      tag: /.*/
      limit:
        last: 10
  - references:
      branch: /.*/
      limit:
        last: 10
        in: 168h
        operator: And
    imagesPerReference:
      last: 2
      in: 168h
      operator: And
  - references:  
      branch: /^(main|staging|production)$/
    imagesPerReference:
      last: 10

เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ™เบตเป‰เบกเบตเบชเบฒเบกเบ™เบฐเป‚เบเบšเบฒเบเบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเบเบปเบ”เบฅเบฐเบšเบฝเบšเบ•เปเปˆเป„เบ›เบ™เบตเป‰:

  1. เบšเบฑเบ™เบ—เบถเบเบฎเบนเบšเบžเบฒเบšเบชเปเบฒเบฅเบฑเบš 10 Git tags เบชเบธเบ”เบ—เป‰เบฒเบ (เป‚เบ”เบเบงเบฑเบ™เบ—เบตเบชเป‰เบฒเบ‡เปเบ—เบฑเบ).
  2. เบšเบฑเบ™เบ—เบถเบเบฎเบนเบšเบžเบฒเบšเบ—เบตเปˆเบšเปเปˆเป€เบเบตเบ™ 2 เบฎเบนเบšเบ—เบตเปˆเบ–เบทเบเบ•เบตเบžเบดเบกเปƒเบ™เบญเบฒเบ—เบดเบ”เบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒเบšเปเปˆเป€เบเบตเบ™ 10 เบซเบปเบงเบ‚เปเป‰เบ—เบตเปˆเบกเบตเบเบดเบ”เบˆเบฐเบเปเบฒเปƒเบ™เบญเบฒเบ—เบดเบ”เบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒ.
  3. เบšเบฑเบ™เบ—เบถเบ 10 เบฎเบนเบšเบžเบฒเบšเบชเปเบฒเบฅเบฑเบšเบชเบฒเบ‚เบฒ main, staging ะธ production.

เบชเบนเบ”เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเบชเบธเบ”เบ—เป‰เบฒเบเบ•เบปเป‰เบกเบฅเบปเบ‡เป„เบ›เปƒเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ•เปเปˆเป„เบ›เบ™เบตเป‰:

  • เบ”เบถเบ‡เบ‚เปเป‰เบกเบนเบ™ manifests เบˆเบฒเบเบ—เบฐเบšเบฝเบ™ container.
  • เบšเปเปˆเบฅเบงเบกเบฎเบนเบšเบžเบฒเบšเบ—เบตเปˆเปƒเบŠเป‰เปƒเบ™ Kubernetes, เป€เบžเบฒเบฐเบงเปˆเบฒ เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เป€เบฅเบทเบญเบเบžเบงเบเบกเบฑเบ™เป„เบงเป‰เบเปˆเบญเบ™เปเบฅเป‰เบงเป‚เบ”เบเบเบฒเบ™เบชเบณเบซเบผเบงเบ” K8s API.
  • เบเบฒเบ™เบชเบฐเปเบเบ™เบ›เบฐเบซเบงเบฑเบ” Git เปเบฅเบฐเบšเปเปˆเบฅเบงเบกเบฎเบนเบšเบžเบฒเบšเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบ™เบฐเป‚เบเบšเบฒเบเบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰.
  • เบเบฒเบ™โ€‹เบฅเบปเบšโ€‹เบฎเบนเบšโ€‹เบžเบฒเบšโ€‹เบ—เบตเปˆโ€‹เบเบฑเบ‡โ€‹เป€เบซเบผเบทเบญโ€‹.

เบเบฑเบšเป„เบ›เบ—เบตเปˆเบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ, เบ™เบตเป‰เปเบกเปˆเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเป€เบเบตเบ”เบ‚เบถเป‰เบ™เบเบฑเบš werf:

เบšเบฑเบ™เบซเบฒเบ‚เบญเบ‡เบเบฒเบ™เบ—เปเบฒเบ„เบงเบฒเบกเบชเบฐเบญเบฒเบ” "เบชเบฐเบซเบกเบฒเบ”" เบ‚เบญเบ‡เบฎเบนเบšเบžเบฒเบšเบšเบฑเบ™เบˆเบธเปเบฅเบฐเบเบฒเบ™เปเบเป‰เป„เบ‚เบ‚เบญเบ‡เบกเบฑเบ™เบขเบนเปˆเปƒเบ™ werf

เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบ—เปˆเบฒเบ™เบˆเบฐเบšเปเปˆเปƒเบŠเป‰ werf, เบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบเบฑเบšเบเบฒเบ™เบ—เปเบฒเบ„เบงเบฒเบกเบชเบฐเบญเบฒเบ”เบฎเบนเบšเบžเบฒเบšเปเบšเบšเบžเบดเป€เบชเบ” - เปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบซเบ™เบถเปˆเบ‡เบซเบผเบทเบงเบดเบ—เบตเบเบฒเบ™เบญเบทเปˆเบ™ (เบญเบตเบ‡เบ•เบฒเบกเบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเบกเบฑเบเปƒเบ™เบเบฒเบ™เปเบ—เบฑเบเบฎเบนเบšเบžเบฒเบš) - เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เบเบฑเบšเบฅเบฐเบšเบปเบš / เบœเบปเบ™เบ›เบฐเป‚เบซเบเบ”เบญเบทเปˆเบ™เป†. เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบชเบดเปˆเบ‡เบ™เบตเป‰, เบกเบฑเบ™เบžเบฝเบ‡เบžเปเบ—เบตเปˆเบˆเบฐเบˆเบทเปˆเบˆเปเบฒเบšเบฑเบ™เบซเบฒเบ—เบตเปˆเป€เบเบตเบ”เบ‚เบทเป‰เบ™เปเบฅเบฐเบŠเบญเบเบซเบฒเป‚เบญเบเบฒเบ”เป€เบซเบผเบปเปˆเบฒเบ™เบฑเป‰เบ™เปƒเบ™ stack เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบ—เบตเปˆเบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™เบเบฒเบ™เปเบเป‰เป„เบ‚เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒเป„เบ”เป‰เบขเปˆเบฒเบ‡เบฅเบฝเบšเบ‡เปˆเบฒเบเป€เบ—เบปเปˆเบฒเบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰. เบžเบงเบเป€เบฎเบปเบฒเบซเบงเบฑเบ‡เบงเปˆเบฒเป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เป€เบ”เบตเบ™เบ—เบฒเบ‡เบˆเบฐเบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เป€เบšเบดเปˆเบ‡เบเปเบฅเบฐเบ™เบตเบชเบฐเป€เบžเบฒเบฐเบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒเบ”เป‰เบงเบเบฅเบฒเบเบฅเบฐเบญเบฝเบ”เปเบฅเบฐเบ„เบงเบฒเบกเบ„เบดเบ”เปƒเบซเบกเปˆ.

เบชเบฐเบซเบฅเบธเบš

  • เป„เบงเบซเบผเบทเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบ—เบตเบกเบ‡เบฒเบ™เบชเปˆเบงเบ™เปƒเบซเบเปˆเบžเบปเบšเบšเบฑเบ™เบซเบฒเบเบฒเบ™เบฅเบปเป‰เบ™เบ—เบฐเบšเบฝเบ™.
  • เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบŠเบญเบเบซเบฒเบงเบดเบ—เบตเปเบเป‰เป„เบ‚, เบกเบฑเบ™เป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบˆเปเบฒเป€เบ›เบฑเบ™เบ—เปเบฒเบญเบดเบ”เป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบชเปเบฒเบฅเบฑเบšเบ„เบงเบฒเบกเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบ‚เบญเบ‡เบฎเบนเบšเบžเบฒเบš.
  • เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ—เบตเปˆเบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰เป‚เบ”เบเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบ•เบนเป‰เบ„เบญเบ™เป€เบ—เบ™เป€เบ™เบตเบ—เบตเปˆเบ™เบดเบเบปเบกเบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบˆเบฑเบ”เบฅเบฐเบšเบฝเบšเบ—เปเบฒเบ„เบงเบฒเบกเบชเบฐเบญเบฒเบ”เบ—เบตเปˆเบ‡เปˆเบฒเบเบ”เบฒเบเบซเบผเบฒเบเบ—เบตเปˆเบšเปเปˆเบ„เปเบฒเบ™เบถเบ‡เป€เบ–เบดเบ‡ "เป‚เบฅเบเบžเบฒเบเบ™เบญเบ": เบฎเบนเบšเบžเบฒเบšเบ—เบตเปˆเปƒเบŠเป‰เปƒเบ™ Kubernetes เปเบฅเบฐเบฅเบฑเบเบชเบฐเบ™เบฐเบžเบดเป€เบชเบ”เบ‚เบญเบ‡เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ‚เบญเบ‡เบ—เบตเบกเบ‡เบฒเบ™.
  • เบชเบนเบ”เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบเบทเบ”เบซเบเบธเปˆเบ™ เปเบฅเบฐเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ•เป‰เบญเบ‡เบกเบตเบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเปƒเบˆเบเปˆเบฝเบงเบเบฑเบšเบ‚เบฐเบšเบงเบ™เบเบฒเบ™ CI/CD เปเบฅเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบšเปเปˆเบžเบฝเบ‡เปเบ•เปˆเบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบฎเบนเบšเบžเบฒเบš Docker เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™.

PS

เบญเปˆเบฒเบ™เบเบฑเบ‡เบขเบนเปˆเปƒเบ™ blog เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ:

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™