werf - เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธเชฎเชพเช‚ CI/CD เชฎเชพเชŸเซ‡ เช…เชฎเชพเชฐเซเช‚ เชธเชพเชงเชจ (เชตเชฟเชนเช‚เช—เชพเชตเชฒเซ‹เช•เชจ เช…เชจเซ‡ เชตเชฟเชกเชฟเชฏเซ‹ เชฐเชฟเชชเซ‹เชฐเซเชŸ)

เชซเซ‡เชธเซเชŸเชฟเชตเชฒเชจเชพ เชญเชพเช— เชฐเซ‚เชชเซ‡ เชฏเซ‹เชœเชพเชฏเซ‡เชฒเซ€ DevOpsConf 27 เช•เซ‹เชจเซเชซเชฐเชจเซเชธเชจเชพ เชฎเซเช–เซเชฏ เชนเซ‹เชฒเชฎเชพเช‚ 2019 เชฎเซ‡ RIT++ 2019, "เชธเชคเชค เชกเชฟเชฒเชฟเชตเชฐเซ€" เชตเชฟเชญเชพเช—เชจเชพ เชญเชพเช— เชฐเซ‚เชชเซ‡, "werf - เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธเชฎเชพเช‚ CI/CD เชฎเชพเชŸเซ‡ เช…เชฎเชพเชฐเซเช‚ เชธเชพเชงเชจ" เช…เชนเซ‡เชตเชพเชฒ เช†เชชเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เชนเชคเซ‹. เชคเซ‡ เชคเซ‡เชจเชพ เชตเชฟเชถเซ‡ เชตเชพเชค เช•เชฐเซ‡ เช›เซ‡ เชธเชฎเชธเซเชฏเชพเช“ เช…เชจเซ‡ เชชเชกเช•เชพเชฐเซ‹ เช•เซ‡ เชœเซ‡ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชชเชฐ เชœเชฎเชพเชตเชคเซ€ เชตเช–เชคเซ‡ เชฆเชฐเซ‡เช• เชตเซเชฏเช•เซเชคเชฟ เชธเชพเชฎเชจเซ‹ เช•เชฐเซ‡ เช›เซ‡, เชคเซ‡เชฎเชœ เช˜เซ‹เช‚เช˜เชพเชŸ เชตเชฟเชถเซ‡ เชœเซ‡ เชคเชฐเชค เชœ เชงเซเชฏเชพเชจเชชเชพเชคเซเชฐ เชจ เชนเซ‹เชˆ เชถเช•เซ‡. เชธเช‚เชญเชตเชฟเชค เช‰เช•เซ‡เชฒเซ‹เชจเซเช‚ เชตเชฟเชถเซเชฒเซ‡เชทเชฃ เช•เชฐเซ€เชจเซ‡, เช…เชฎเซ‡ เชฌเชคเชพเชตเซ€เช เช›เซ€เช เช•เซ‡ เช“เชชเชจ เชธเซ‹เชฐเซเชธ เชŸเซ‚เชฒเชฎเชพเช‚ เช† เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชฒเชพเช—เซ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เชตเชฐเซเชซ.

เชชเซเชฐเชธเซเชคเซเชคเชฟเชฅเซ€, เช…เชฎเชพเชฐเซ€ เช‰เชชเชฏเซ‹เช—เชฟเชคเชพ (เช…เช—เชพเช‰ เชกเซ€เชเชชเซ€ เชคเชฐเซ€เช•เซ‡ เชœเชพเชฃเซ€เชคเซ€ เชนเชคเซ€) เชจเซ€ เชเชคเชฟเชนเชพเชธเชฟเช• เชธเซ€เชฎเชพเชšเชฟเชนเซเชจ เชชเชฐ เชชเชนเซ‹เช‚เชšเซ€ เช›เซ‡ GitHub เชชเชฐ 1000 เชคเชพเชฐเชพ โ€” เช…เชฎเซ‡ เช†เชถเชพ เชฐเชพเช–เซ€เช เช›เซ€เช เช•เซ‡ เชคเซ‡เชจเซ‹ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเช“เชจเซ‹ เชตเชงเชคเซ‹ เชธเชฎเซเชฆเชพเชฏ เช˜เชฃเชพ DevOps เชเชจเซเชœเชฟเชจเชฟเชฏเชฐเซ‹ เชฎเชพเชŸเซ‡ เชœเซ€เชตเชจ เชธเชฐเชณ เชฌเชจเชพเชตเชถเซ‡.

werf - เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธเชฎเชพเช‚ CI/CD เชฎเชพเชŸเซ‡ เช…เชฎเชพเชฐเซเช‚ เชธเชพเชงเชจ (เชตเชฟเชนเช‚เช—เชพเชตเชฒเซ‹เช•เชจ เช…เชจเซ‡ เชตเชฟเชกเชฟเชฏเซ‹ เชฐเชฟเชชเซ‹เชฐเซเชŸ)

เชคเซ‹, เชšเชพเชฒเซ‹ เชชเชฐเชฟเชšเชฏ เช†เชชเซ€เช เช…เชนเซ‡เชตเชพเชฒเชจเซ‹ เชตเชฟเชกเชฟเชฏเซ‹ (~47 เชฎเชฟเชจเชฟเชŸ, เชฒเซ‡เช– เช•เชฐเชคเชพเช‚ เชตเชงเซ เชฎเชพเชนเชฟเชคเซ€เชชเซเชฐเชฆ) เช…เชจเซ‡ เชคเซ‡เชฎเชพเช‚เชฅเซ€ เชฎเซเช–เซเชฏ เช…เชฐเซเช• เชŸเซ‡เช•เซเชธเซเชŸ เชธเซเชตเชฐเซ‚เชชเชฎเชพเช‚. เชœเชพเช“!

เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธเชจเซ‡ เช•เซ‹เชก เชตเชฟเชคเชฐเชฟเชค เช•เชฐเซ€ เชฐเชนเซเชฏเชพเช‚ เช›เซ‡

เชตเชพเชค เชนเชตเซ‡ เชตเซ‡เชฐเซเชซ เชตเชฟเชถเซ‡ เชจเชนเซ€เช‚, เชชเชฐเช‚เชคเซ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธเชฎเชพเช‚ CI/CD เชตเชฟเชถเซ‡ เชนเชถเซ‡, เชœเซ‡เชจเซ‹ เช…เชฐเซเชฅ เช เช›เซ‡ เช•เซ‡ เช…เชฎเชพเชฐเซเช‚ เชธเซ‹เชซเซเชŸเชตเซ‡เชฐ เชกเซ‹เช•เชฐ เช•เชจเซเชŸเซ‡เชจเชฐเชฎเชพเช‚ เชชเซ‡เช• เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เช›เซ‡. (เชฎเซ‡เช‚ เช† เชตเชฟเชถเซ‡ เชตเชพเชค เช•เชฐเซ€ เชนเชคเซ€ 2016 เชจเซ‹ เช…เชนเซ‡เชตเชพเชฒ), เช…เชจเซ‡ K8s เชจเซ‹ เช‰เชชเชฏเซ‹เช— เชคเซ‡เชจเซ‡ เช‰เชคเซเชชเชพเชฆเชจเชฎเชพเช‚ เชšเชฒเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡ (เช† เชตเชฟเชถเซ‡ เชตเชงเซ 2017 เชตเชฐเซเชท).

เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธเชฎเชพเช‚ เชกเชฟเชฒเชฟเชตเชฐเซ€ เช•เซ‡เชตเซ€ เชฆเซ‡เช–เชพเชฏ เช›เซ‡?

  • เช•เซ‹เชก เช…เชจเซ‡ เชคเซ‡เชจเซ‡ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡เชจเซ€ เชธเซ‚เชšเชจเชพเช“ เชธเชพเชฅเซ‡ เชเช• เช—เชฟเชŸ เชฐเซ€เชชเซ‹เชเซ€เชŸเชฐเซ€ เช›เซ‡. เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชกเซ‹เช•เชฐ เช‡เชฎเซ‡เชœเชฎเชพเช‚ เชฌเชจเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เช›เซ‡ เช…เชจเซ‡ เชกเซ‹เช•เชฐ เชฐเชœเชฟเชธเซเชŸเซเชฐเซ€เชฎเชพเช‚ เชชเซเชฐเช•เชพเชถเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เช›เซ‡.
  • เช เชœ เชฐเซ€เชชเซ‹เชเซ€เชŸเชฐเซ€เชฎเชพเช‚ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเชจเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชœเชฎเชพเชตเชตเซ€ เช…เชจเซ‡ เชšเชฒเชพเชตเชตเซ€ เชคเซ‡ เช…เช‚เช—เซ‡เชจเซ€ เชธเซ‚เชšเชจเชพเช“ เชชเชฃ เช›เซ‡. เชœเชฎเชพเชตเชŸเชจเชพ เชคเชฌเช•เซเช•เซ‡, เช† เชธเซ‚เชšเชจเชพเช“ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธเชจเซ‡ เชฎเซ‹เช•เชฒเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เชœเซ‡ เชฐเชœเชฟเชธเซเชŸเซเชฐเซ€เชฎเชพเช‚เชฅเซ€ เช‡เชšเซเช›เชฟเชค เช›เชฌเซ€ เชฎเซ‡เชณเชตเซ‡ เช›เซ‡ เช…เชจเซ‡ เชคเซ‡เชจเซ‡ เชฒเซ‹เชจเซเชš เช•เชฐเซ‡ เช›เซ‡.
  • เช‰เชชเชฐเชพเช‚เชค, เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡ เชชเชฐเซ€เช•เซเชทเชฃเซ‹ เชนเซ‹เชฏ เช›เซ‡. เช†เชฎเชพเช‚เชฅเซ€ เช•เซ‡เชŸเชฒเซ€เช• เช›เชฌเซ€ เชชเซเชฐเช•เชพเชถเชฟเชค เช•เชฐเชคเซ€ เชตเช–เชคเซ‡ เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡. เชคเชฎเซ‡ (เชธเชฎเชพเชจ เชธเซ‚เชšเชจเชพเช“เชจเซ‡ เช…เชจเซเชธเชฐเซ€เชจเซ‡) เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเชจเซ€ เชจเช•เชฒ (เช…เชฒเช— K8s เชจเซ‡เชฎเชธเซเชชเซ‡เชธ เช…เชฅเชตเชพ เช…เชฒเช— เช•เซเชฒเชธเซเชŸเชฐเชฎเชพเช‚) เชชเชฃ เชœเชฎเชพเชตเซ€ เชถเช•เซ‹ เช›เซ‹ เช…เชจเซ‡ เชคเซเชฏเชพเช‚ เชชเชฐเซ€เช•เซเชทเชฃเซ‹ เชšเชฒเชพเชตเซ€ เชถเช•เซ‹ เช›เซ‹.
  • เช›เซ‡เชฒเซเชฒเซ‡, เชคเชฎเชพเชฐเซ‡ เชเช• CI เชธเชฟเชธเซเชŸเชฎเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ เชœเซ‡ เช—เชฟเชŸ (เช…เชฅเชตเชพ เชฌเชŸเชจ เช•เซเชฒเชฟเช•เซเชธ) เชฎเชพเช‚เชฅเซ€ เช‡เชตเซ‡เชจเซเชŸเซเชธ เชฎเซ‡เชณเชตเซ‡ เช›เซ‡ เช…เชจเซ‡ เชคเชฎเชพเชฎ เชจเชฟเชฏเซเช•เซเชค เชคเชฌเช•เซเช•เชพเช“เชจเซ‡ เช•เซ‰เชฒ เช•เชฐเซ‡ เช›เซ‡: เชฌเชฟเชฒเซเชก, เชชเซเชฐเช•เชพเชถเชฟเชค, เชœเชฎเชพเชตเชŸ, เชชเชฐเซ€เช•เซเชทเชฃ.

werf - เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธเชฎเชพเช‚ CI/CD เชฎเชพเชŸเซ‡ เช…เชฎเชพเชฐเซเช‚ เชธเชพเชงเชจ (เชตเชฟเชนเช‚เช—เชพเชตเชฒเซ‹เช•เชจ เช…เชจเซ‡ เชตเชฟเชกเชฟเชฏเซ‹ เชฐเชฟเชชเซ‹เชฐเซเชŸ)

เช…เชนเซ€เช‚ เช•เซ‡เชŸเชฒเซ€เช• เชฎเชนเชคเซเชตเชชเซ‚เชฐเซเชฃ เชจเซ‹เช‚เชงเซ‹ เช›เซ‡:

  1. เช•เชพเชฐเชฃ เช•เซ‡ เช†เชชเชฃเซ€ เชชเชพเชธเซ‡ เช…เชชเชฐเชฟเชตเชฐเซเชคเชจเชถเซ€เชฒ เชˆเชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐ เช›เซ‡ (เช…เชšเชฒ เชˆเชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐ), เชเชชเซเชฒเซ€เช•เซ‡เชถเชจ เชˆเชฎเซ‡เชœ เช•เซ‡ เชœเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เชคเชฎเชพเชฎ เชคเชฌเช•เซเช•เซ‡ เชฅเชพเชฏ เช›เซ‡ (เชธเซเชŸเซ‡เชœเชฟเช‚เช—, เช‰เชคเซเชชเชพเชฆเชจ, เชตเช—เซ‡เชฐเซ‡), เชคเซเชฏเชพเช‚ เชเช• เชนเซ‹เชตเซเช‚ เชœเซ‹เชˆเช. เชฎเซ‡เช‚ เช† เชตเชฟเชถเซ‡ เชตเชงเซ เชตเชฟเช—เชคเชตเชพเชฐ เช…เชจเซ‡ เช‰เชฆเชพเชนเชฐเชฃเซ‹ เชธเชพเชฅเซ‡ เชตเชพเชค เช•เชฐเซ€. เช…เชนเซ€เช‚.
  2. เช•เชพเชฐเชฃ เช•เซ‡ เช…เชฎเซ‡ เชˆเชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐเชจเซ‡ เช•เซ‹เชก เช…เชญเชฟเช—เชฎ เชคเชฐเซ€เช•เซ‡ เช…เชจเซเชธเชฐเซ€เช เช›เซ€เช (IaC), เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เช•เซ‹เชก, เชคเซ‡เชจเซ‡ เชเชธเซ‡เชฎเซเชฌเชฒ เช•เชฐเชตเชพ เช…เชจเซ‡ เชฒเซ‹เช‚เชš เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡เชจเซ€ เชธเซ‚เชšเชจเชพเช“ เชนเซ‹เชตเซ€ เชœเซ‹เชˆเช เชฌเชฐเชพเชฌเชฐ เชเช• เชฐเซ€เชชเซ‹เชเซ€เชŸเชฐเซ€เชฎเชพเช‚. เช† เชตเชฟเชถเซ‡ เชตเชงเซ เชฎเชพเชนเชฟเชคเซ€ เชฎเชพเชŸเซ‡, เชœเซเช“ เชธเชฎเชพเชจ เช…เชนเซ‡เชตเชพเชฒ.
  3. เชกเชฟเชฒเชฟเชตเชฐเซ€ เชธเชพเช‚เช•เชณ (เชกเชฟเชฒเชฟเชตเชฐเซ€) เช…เชฎเซ‡ เชคเซ‡เชจเซ‡ เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡ เช†เชจเชพ เชœเซ‡เชตเชพ เชœเซ‹เชˆเช เช›เซ€เช: เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชเชธเซ‡เชฎเซเชฌเชฒ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชนเชคเซ€, เชชเชฐเซ€เช•เซเชทเชฃ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชนเชคเซ€, เชฐเชฟเชฒเซ€เช เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชนเชคเซ€ (เชชเซเชฐเช•เชพเชถเชจ เชธเซเชŸเซ‡เชœ) เช…เชจเซ‡ เชคเซ‡ เช›เซ‡ - เชกเชฟเชฒเชฟเชตเชฐเซ€ เชฅเชˆ เช—เชˆ เช›เซ‡. เชชเชฐเช‚เชคเซ เชตเชพเชธเซเชคเชตเชฎเชพเช‚, เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเชจเซ‡ เชคเซ‡ เชฎเชณเซ‡ เช›เซ‡ เชœเซ‡ เชคเชฎเซ‡ เชฐเซ‹เชฒเช†เช‰เชŸ เช•เชฐเซเชฏเซเช‚ เช›เซ‡, เชจเชฅเซ€ เชชเช›เซ€ เชœเซเชฏเชพเชฐเซ‡ เชคเชฎเซ‡ เชคเซ‡เชจเซ‡ เชชเซเชฐเซ‹เชกเช•เซเชถเชจเชฎเชพเช‚ เชชเชนเซ‹เช‚เชšเชพเชกเซเชฏเซเช‚, เช…เชจเซ‡ เชœเซเชฏเชพเชฐเซ‡ เชคเซ‡ เชคเซเชฏเชพเช‚ เชœเชˆ เชถเช•เซเชฏเซ‹ เช…เชจเซ‡ เช† เชชเซเชฐเซ‹เชกเช•เซเชถเชจ เช•เชพเชฎ เช•เชฐเซเชฏเซเช‚. เชคเซ‡เชฅเซ€ เชนเซเช‚ เชฎเชพเชจเซเช‚ เช›เซเช‚ เช•เซ‡ เชกเชฟเชฒเชฟเชตเชฐเซ€ เชšเซ‡เช‡เชจ เชธเชฎเชพเชชเซเชค เชฅเชพเชฏ เช›เซ‡ เชฎเชพเชคเซเชฐ เช“เชชเชฐเซ‡เชถเชจเชฒ เชธเซเชŸเซ‡เชœ เชชเชฐ (เชฆเซ‹เชกเชตเซเช‚), เช…เชฅเชตเชพ เชตเชงเซ เชธเซเชชเชทเซเชŸ เชฐเซ€เชคเซ‡, เชคเซ‡ เช•เซเชทเชฃเซ‡ เชชเชฃ เชœเซเชฏเชพเชฐเซ‡ เช•เซ‹เชก เช‰เชคเซเชชเชพเชฆเชจเชฎเชพเช‚เชฅเซ€ เชฆเซ‚เชฐ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เชนเชคเซ‹ (เชคเซ‡เชจเซ‡ เชจเชตเชพ เชธเชพเชฅเซ‡ เชฌเชฆเชฒเซ€เชจเซ‡).

เชšเชพเชฒเซ‹ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธเชฎเชพเช‚ เช‰เชชเชฐเซ‹เช•เซเชค เชกเชฟเชฒเชฟเชตเชฐเซ€ เชธเซเช•เซ€เชฎ เชชเชฐ เชชเชพเช›เชพ เชซเชฐเซ€เช: เชคเซ‡เชจเซ€ เชถเซ‹เชง เชซเช•เซเชค เช…เชฎเชพเชฐเชพ เชฆเซเชตเชพเชฐเชพ เชœ เชจเชนเซ€เช‚, เชชเชฐเช‚เชคเซ เชถเชพเชฌเซเชฆเชฟเช• เชฐเซ€เชคเซ‡ เชฆเชฐเซ‡เช• เชตเซเชฏเช•เซเชคเชฟ เชฆเซเชตเชพเชฐเชพ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชนเชคเซ€ เชœเซ‡เชฃเซ‡ เช† เชธเชฎเชธเซเชฏเชพเชจเซ‹ เชธเชพเชฎเชจเซ‹ เช•เชฐเซเชฏเซ‹ เชนเชคเซ‹. เชนเช•เซ€เช•เชคเชฎเชพเช‚, เช† เชชเซ‡เชŸเชฐเซเชจเชจเซ‡ เชนเชตเซ‡ GitOps เช•เชนเซ‡เชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ (เชคเชฎเซ‡ เชถเชฌเซเชฆ เช…เชจเซ‡ เชคเซ‡เชจเซ€ เชชเชพเช›เชณเชจเชพ เชตเชฟเชšเชพเชฐเซ‹ เชตเชฟเชถเซ‡ เชตเชงเซ เชตเชพเช‚เชšเซ€ เชถเช•เซ‹ เช›เซ‹ เช…เชนเซ€เช‚). เชšเชพเชฒเซ‹ เชฏเซ‹เชœเชจเชพเชจเชพ เชคเชฌเช•เซเช•เชพเช“ เชœเซ‹เชˆเช.

เชธเซเชŸเซ‡เชœ เชฌเชจเชพเชตเซ‹

เชเชตเซเช‚ เชฒเชพเช—เซ‡ เช›เซ‡ เช•เซ‡ เชคเชฎเซ‡ 2019 เชฎเชพเช‚ เชกเซ‹เช•เชฐ เช‡เชฎเซ‡เชœ เชฌเชจเชพเชตเชตเชพ เชตเชฟเชถเซ‡ เชตเชพเชค เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹, เชœเซเชฏเชพเชฐเซ‡ เชฆเชฐเซ‡เช• เชœเชพเชฃเซ‡ เช›เซ‡ เช•เซ‡ เชกเซ‹เช•เชฐเชซเชพเช‡เชฒเซเชธ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชฒเช–เชตเซ€ เช…เชจเซ‡ เชšเชฒเชพเชตเชตเซ€ docker build?.. เช…เชนเซ€เช‚ เชเชตเซ€ เช˜เซ‹เช‚เช˜เชพเชŸ เช›เซ‡ เช•เซ‡ เชœเซ‡เชจเชพ เชชเชฐ เชนเซเช‚ เชงเซเชฏเชพเชจ เช†เชชเชตเชพ เชฎเชพเช‚เช—เซ เช›เซเช‚:

  1. เช›เชฌเซ€ เชตเชœเชจ เชฌเชพเชฌเชคเซ‹, เชคเซ‡เชฅเซ€ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‹ เชฌเชนเซ-เชคเชฌเช•เซเช•เชพเช‡เชฎเซ‡เชœเชฎเชพเช‚ เชซเช•เซเชค เชคเซ‡ เชœ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เช›เซ‹เชกเซ‹ เชœเซ‡ เช–เชฐเซ‡เช–เชฐ เช“เชชเชฐเซ‡เชถเชจ เชฎเชพเชŸเซ‡ เชœเชฐเซ‚เชฐเซ€ เช›เซ‡.
  2. เชธเซเชคเชฐเซ‹เชจเซ€ เชธเช‚เช–เซเชฏเชพ เชจเซ€ เชธเชพเช‚เช•เชณเซ‹ เชธเช‚เชฏเซ‹เชœเชฟเชค เช•เชฐเซ€เชจเซ‡ เช˜เชŸเชพเชกเชตเซ€ เช†เชตเชถเซเชฏเช• เช›เซ‡ RUN- เช…เชฐเซเชฅ เช…เชจเซเชธเชพเชฐ เช†เชฆเซ‡เชถเซ‹.
  3. เชœเซ‹ เช•เซ‡, เช† เชธเชฎเชธเซเชฏเชพเช“ เช‰เชฎเซ‡เชฐเซ‡ เช›เซ‡ เชกเชฟเชฌเช—เซ€เช‚เช—, เช•เชพเชฐเชฃ เช•เซ‡ เชœเซเชฏเชพเชฐเซ‡ เชเชธเซ‡เชฎเซเชฌเชฒเซ€ เช•เซเชฐเซ‡เชถ เชฅเชพเชฏ เช›เซ‡, เชคเซเชฏเชพเชฐเซ‡ เชคเชฎเชพเชฐเซ‡ เชธเชฎเชธเซเชฏเชพ เชŠเชญเซ€ เช•เชฐเชจเชพเชฐ เชธเชพเช‚เช•เชณเชฎเชพเช‚เชฅเซ€ เชฏเซ‹เช—เซเชฏ เช†เชฆเซ‡เชถ เชถเซ‹เชงเชตเซ‹ เชชเชกเชถเซ‡.
  4. เชเชธเซ‡เชฎเซเชฌเชฒเซ€ เชเชกเชช เชฎเชนเชคเซเชตเชชเซ‚เชฐเซเชฃ เช•เชพเชฐเชฃ เช•เซ‡ เช…เชฎเซ‡ เชซเซ‡เชฐเชซเชพเชฐเซ‹เชจเซ‡ เชเชกเชชเชฅเซ€ เชฌเชนเชพเชฐ เชฒเชพเชตเชตเชพ เช…เชจเซ‡ เชชเชฐเชฟเชฃเชพเชฎเซ‹ เชœเซ‹เชตเชพ เชฎเชพเช‚เช—เซ€เช เช›เซ€เช. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชœเซเชฏเชพเชฐเซ‡ เชชเชฃ เชคเชฎเซ‡ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชฌเชจเชพเชตเซ‹ เชคเซเชฏเชพเชฐเซ‡ เชคเชฎเซ‡ เชญเชพเชทเชพ เชฒเชพเช‡เชฌเซเชฐเซ‡เชฐเซ€เช“เชฎเชพเช‚ เชจเชฟเชฐเซเชญเชฐเชคเชพ เชชเซเชจเชƒเชฌเซ€เชฒเซเชก เช•เชฐเชตเชพ เชฎเชพเช‚เช—เชคเชพ เชจเชฅเซ€.
  5. เช˜เชฃเซ€เชตเชพเชฐ เชเช• เช—เชฟเชŸ เชฐเชฟเชชเซ‹เชเซ€เชŸเชฐเซ€เชฎเชพเช‚เชฅเซ€ เชคเชฎเชจเซ‡ เชœเชฐเซ‚เชฐ เชนเซ‹เชฏ เช›เซ‡ เช˜เชฃเซ€ เช›เชฌเซ€เช“, เชœเซ‡ เชกเซ‹เช•เชฐเชซเชพเช‡เชฒเซเชธเชจเชพ เชธเชฎเซ‚เชน (เช…เชฅเชตเชพ เชเช• เชซเชพเช‡เชฒเชฎเชพเช‚ เชจเชพเชฎเชพเช‚เช•เชฟเชค เชคเชฌเช•เซเช•เชพเช“) เช…เชจเซ‡ เชคเซ‡เชฎเชจเซ€ เช…เชจเซเช•เซเชฐเชฎเชฟเช• เชเชธเซ‡เชฎเซเชฌเชฒเซ€ เชธเชพเชฅเซ‡ เชฌเซ‡เชถ เชธเซเช•เซเชฐเชฟเชชเซเชŸ เชฆเซเชตเชพเชฐเชพ เช‰เช•เซ‡เชฒเซ€ เชถเช•เชพเชฏ เช›เซ‡.

เช† เชซเช•เซเชค เช†เช‡เชธเชฌเชฐเซเช—เชจเซ€ เชŸเซ‹เชš เชนเชคเซ€ เชœเซ‡เชจเซ‹ เชฆเชฐเซ‡เช• เชตเซเชฏเช•เซเชคเชฟ เชธเชพเชฎเชจเซ‹ เช•เชฐเซ‡ เช›เซ‡. เชชเชฐเช‚เชคเซ เชคเซเชฏเชพเช‚ เช…เชจเซเชฏ เชธเชฎเชธเซเชฏเชพเช“ เช›เซ‡, เช–เชพเชธ เช•เชฐเซ€เชจเซ‡:

  1. เช˜เชฃเซ€เชตเชพเชฐ เชเชธเซ‡เชฎเซเชฌเชฒเซ€เชจเชพ เชคเชฌเช•เซเช•เซ‡ เช†เชชเชฃเชจเซ‡ เช•เช‚เชˆเช•เชจเซ€ เชœเชฐเซ‚เชฐ เชนเซ‹เชฏ เช›เซ‡ เชฎเชพเช‰เชจเซเชŸ (เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชคเซƒเชคเซ€เชฏ-เชชเช•เซเชท เชจเชฟเชฐเซเชฆเซ‡เชถเชฟเช•เชพเชฎเชพเช‚ apt เชœเซ‡เชตเชพ เช†เชฆเซ‡เชถเชจเซเช‚ เชชเชฐเชฟเชฃเชพเชฎ เช•เซ‡เชถ เช•เชฐเซ‹).
  2. เช…เชฎเซ‡ เชˆเชšเซเช›เซ€เช เช›เซ€เช Ansible เชถเซ‡เชฒเชฎเชพเช‚ เชฒเช–เชตเชพเชจเซ‡ เชฌเชฆเชฒเซ‡.
  3. เช…เชฎเซ‡ เชˆเชšเซเช›เซ€เช เช›เซ€เช เชกเซ‹เช•เชฐ เชตเช—เชฐ เชฌเชฟเชฒเซเชก เช•เชฐเซ‹ (เช†เชชเชฃเซ‡ เชถเชพ เชฎเชพเชŸเซ‡ เชตเชงเชพเชฐเชพเชจเชพ เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ เชœเซ‡เชฎเชพเช‚ เช†เชชเชฃเซ‡ เช† เชฎเชพเชŸเซ‡ เชฌเชงเซเช‚ เช—เซ‹เช เชตเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡, เชœเซเชฏเชพเชฐเซ‡ เช†เชชเชฃเซ€ เชชเชพเชธเซ‡ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เช•เซเชฒเชธเซเชŸเชฐ เช›เซ‡ เชœเซ‡เชฎเชพเช‚ เช†เชชเชฃเซ‡ เช•เชจเซเชŸเซ‡เชจเชฐ เชšเชฒเชพเชตเซ€ เชถเช•เซ€เช?).
  4. เชธเชฎเชพเช‚เชคเชฐ เชเชธเซ‡เชฎเซเชฌเชฒเซ€, เชœเซ‡ เชœเซเชฆเซ€ เชœเซเชฆเซ€ เชฐเซ€เชคเซ‡ เชธเชฎเชœเซ€ เชถเช•เชพเชฏ เช›เซ‡: เชกเซ‹เช•เชฐเชซเชพเชˆเชฒเชฎเชพเช‚เชฅเซ€ เช…เชฒเช—-เช…เชฒเช— เช†เชฆเซ‡เชถเซ‹ (เชœเซ‹ เชฎเชฒเซเชŸเซ€-เชธเซเชŸเซ‡เชœเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡), เชเช• เชœ เชฐเซ€เชชเซ‹เชเซ€เชŸเชฐเซ€เชจเชพ เช…เชจเซ‡เช• เช•เชฎเชฟเชŸ, เช˜เชฃเซ€ เชกเซ‹เช•เชฐเชซเชพเชˆเชฒ.
  5. เชตเชฟเชคเชฐเชฟเชค เชเชธเซ‡เชฎเซเชฌเชฒเซ€: เช…เชฎเซ‡ เชถเซ€เช‚เช—เซ‹เชฎเชพเช‚ เชตเชธเซเชคเซเช“ เชเช•เชคเซเชฐเชฟเชค เช•เชฐเชตเชพ เชฎเชพเช‚เช—เซ€เช เช›เซ€เช เชœเซ‡ "เช•เซเชทเชฃเชฟเช•" เช›เซ‡ เช•เชพเชฐเชฃ เช•เซ‡ เชคเซ‡เชฎเชจเซ€ เช•เซ‡เชถ เช…เชฆเซƒเชถเซเชฏ เชฅเชˆ เชœเชพเชฏ เช›เซ‡, เชœเซ‡เชจเซ‹ เช…เชฐเซเชฅ เช›เซ‡ เช•เซ‡ เชคเซ‡เชจเซ‡ เช•เซเชฏเชพเช‚เช• เช…เชฒเช—เชฅเซ€ เชธเช‚เช—เซเชฐเชนเชฟเชค เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡.
  6. เช…เช‚เชคเซ‡, เชฎเซ‡เช‚ เช‡เชšเซเช›เชพเช“เชจเชพ เชชเชฐเชพเช•เชพเชทเซเช เชพเชจเซ‡ เชจเชพเชฎ เช†เชชเซเชฏเซเช‚ เชธเซเชตเชšเชพเชฒเชฟเชค: เชฐเซ€เชชเซ‹เชเซ€เชŸเชฐเซ€เชฎเชพเช‚ เชœเชˆเชจเซ‡ เช…เชฎเซเช• เช†เชฆเซ‡เชถ เชฒเช–เซ‹ เช…เชจเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช…เชจเซ‡ เชถเซเช‚ เชฏเซ‹เช—เซเชฏ เชฐเซ€เชคเซ‡ เช•เชฐเชตเซเช‚ เชคเซ‡เชจเซ€ เชธเชฎเชœ เชธเชพเชฅเซ‡ เชเชธเซ‡เชฎเซเชฌเชฒ เช•เชฐเซ‡เชฒเซ€ เชคเซˆเชฏเชพเชฐ เชˆเชฎเซ‡เชœ เชฎเซ‡เชณเชตเชตเซ€ เชฏเซ‹เช—เซเชฏ เชฐเชนเซ‡เชถเซ‡. เชœเซ‹ เช•เซ‡, เชฎเชจเซ‡ เชตเซเชฏเช•เซเชคเชฟเช—เชค เชฐเซ€เชคเซ‡ เช–เชพเชคเชฐเซ€ เชจเชฅเซ€ เช•เซ‡ เชฌเชงเซ€ เช˜เซ‹เช‚เช˜เชพเชŸ เช† เชฐเซ€เชคเซ‡ เชœเซ‹เชˆ เชถเช•เชพเชฏ เช›เซ‡.

เช…เชจเซ‡ เช…เชนเซ€เช‚ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเซเชธ เช›เซ‡:

  • เชฎเซ‹เชฌเซ€/เชฌเชฟเชฒเซเชกเช•เชฟเชŸ โ€” เชกเซ‹เช•เชฐ เช‡เชจเซเช•เชจเชพ เชฌเชฟเชฒเซเชกเชฐ (เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เชกเซ‹เช•เชฐเชจเชพ เชตเชฐเซเชคเชฎเชพเชจ เชธเช‚เชธเซเช•เชฐเชฃเซ‹เชฎเชพเช‚ เชธเช‚เช•เชฒเชฟเชค), เชœเซ‡ เช† เชฌเชงเซ€ เชธเชฎเชธเซเชฏเชพเช“ เชนเชฒ เช•เชฐเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเซ€ เชฐเชนเซเชฏเซ‹ เช›เซ‡;
  • เช•เชจเชฟเช•เซ‹ - Google เชคเชฐเชซเชฅเซ€ เชฌเชฟเชฒเซเชกเชฐ เช•เซ‡ เชœเซ‡ เชคเชฎเชจเซ‡ เชกเซ‹เช•เชฐ เชตเชฟเชจเชพ เชฌเชฟเชฒเซเชก เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡;
  • Buildpacks.io - เชธเซ€เชเชจเชธเซ€เชเชซเชจเซ‹ เชธเซเชตเชฏเช‚เชธเช‚เชšเชพเชฒเชฟเชค เชœเชพเชฆเซ เชฌเชจเชพเชตเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช…เชจเซ‡ เช–เชพเชธ เช•เชฐเซ€เชจเซ‡, เชธเซเชคเชฐเซ‹ เชฎเชพเชŸเซ‡ เชฐเชฟเชฌเซ‡เช เชธเชพเชฅเซ‡ เชเช• เชฐเชธเชชเซเชฐเชฆ เช‰เช•เซ‡เชฒ;
  • เช…เชจเซ‡ เช…เชจเซเชฏ เช‰เชชเชฏเซ‹เช—เชฟเชคเชพเช“เชจเซ‹ เชธเชฎเซ‚เชน, เชœเซ‡เชฎ เช•เซ‡ เชฌเชฟเชฒเซเชกเชน, genuinetools/img...

...เช…เชจเซ‡ เชœเซเช“ GitHub เชชเชฐ เชคเซ‡เชฎเชจเซ€ เชชเชพเชธเซ‡ เช•เซ‡เชŸเชฒเชพ เชธเซเชŸเชพเชฐ เช›เซ‡. เชเชŸเชฒเซ‡ เช•เซ‡, เชเช• เชคเชฐเชซ, docker build เช…เชธเซเชคเชฟเชคเซเชตเชฎเชพเช‚ เช›เซ‡ เช…เชจเซ‡ เช•เช‚เชˆเช• เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡, เชชเชฐเช‚เชคเซ เชตเชพเชธเซเชคเชตเชฎเชพเช‚ เชธเชฎเชธเซเชฏเชพ เชธเช‚เชชเซ‚เชฐเซเชฃเชชเชฃเซ‡ เช‰เช•เซ‡เชฒเชพเชˆ เชจเชฅเซ€ - เช†เชจเซ‹ เชชเซเชฐเชพเชตเซ‹ เชตเซˆเช•เชฒเซเชชเชฟเช• เช•เชฒเซ‡เช•เซเชŸเชฐเซเชธเชจเซ‹ เชธเชฎเชพเช‚เชคเชฐ เชตเชฟเช•เชพเชธ เช›เซ‡, เชœเซ‡เชฎเชพเช‚เชฅเซ€ เชฆเชฐเซ‡เช• เชธเชฎเชธเซเชฏเชพเช“เชจเชพ เช•เซ‡เชŸเชฒเชพเช• เชญเชพเช—เชจเซ‡ เชนเชฒ เช•เชฐเซ‡ เช›เซ‡.

werf เชฎเชพเช‚ เชเชธเซ‡เชฎเซเชฌเชฒเซ€

เชคเซ‡เชฅเซ€ เช…เชฎเซ‡ เชฎเชณเซ€ เชตเชฐเซเชซ (เช…เช—เชพเช‰ เชชเซเชฐเช–เซเชฏเชพเชค เชกเซ‡เชชเชจเซ€ เชœเซ‡เชฎ) โ€” เชซเซเชฒเซ‡เช‚เชŸ เช•เช‚เชชเชจเซ€เชจเซ€ เช“เชชเชจ เชธเซ‹เชฐเซเชธ เชฏเซเชŸเชฟเชฒเชฟเชŸเซ€, เชœเซ‡ เช…เชฎเซ‡ เช˜เชฃเชพ เชตเชฐเซเชทเซ‹เชฅเซ€ เชฌเชจเชพเชตเซ€เช เช›เซ€เช. เชคเซ‡ เชฌเชงเซเช‚ 5 เชตเชฐเซเชท เชชเชนเซ‡เชฒเชพเช‚ เชฌเซ‡เชถ เชธเซเช•เซเชฐเชฟเชชเซเชŸเซเชธ เชธเชพเชฅเซ‡ เชถเชฐเซ‚ เชฅเชฏเซเช‚ เชนเชคเซเช‚ เชœเซ‡เชฃเซ‡ เชกเซ‹เช•เชฐเชซเชพเช‡เชฒเซเชธเชจเซ€ เชเชธเซ‡เชฎเซเชฌเชฒเซ€เชจเซ‡ เช‘เชชเซเชŸเชฟเชฎเชพเช‡เช เช•เชฐเซ€ เชนเชคเซ€, เช…เชจเซ‡ เช›เซ‡เชฒเซเชฒเชพ 3 เชตเชฐเซเชทเชฅเซ€ เชคเซ‡เชจเชพ เชชเซ‹เชคเชพเชจเชพ เช—เชฟเชŸ เชฐเชฟเชชเซ‹เชเซ€เชŸเชฐเซ€ เชธเชพเชฅเซ‡ เชเช• เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเชจเชพ เชฎเชพเชณเช–เชพเชฎเชพเช‚ เชธเช‚เชชเซ‚เชฐเซเชฃ เชตเชฟเช•เชพเชธ เชนเชพเชฅ เชงเชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เชนเชคเซ‹. (เชชเซเชฐเชฅเชฎ เชฐเซ‚เชฌเซ€เชฎเชพเช‚, เช…เชจเซ‡ เชชเช›เซ€ เชซเชฐเซ€เชฅเซ€ เชฒเช–เชพเชฏเซ‡เชฒ เชœเชพเช“, เช…เชจเซ‡ เชคเซ‡ เชœ เชธเชฎเชฏเซ‡ เชจเชพเชฎ เชฌเชฆเชฒเซเชฏเซเช‚). เชตเซ‡เชฐเซเชซเชฎเชพเช‚ เช•เชฏเชพ เชเชธเซ‡เชฎเซเชฌเชฒเซ€เชจเชพ เชชเซเชฐเชถเซเชจเซ‹ เชนเชฒ เชฅเชพเชฏ เช›เซ‡?

werf - เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธเชฎเชพเช‚ CI/CD เชฎเชพเชŸเซ‡ เช…เชฎเชพเชฐเซเช‚ เชธเชพเชงเชจ (เชตเชฟเชนเช‚เช—เชพเชตเชฒเซ‹เช•เชจ เช…เชจเซ‡ เชตเชฟเชกเชฟเชฏเซ‹ เชฐเชฟเชชเซ‹เชฐเซเชŸ)

เชตเชพเชฆเชณเซ€ เชฐเช‚เช—เชฎเชพเช‚ เช›เชพเชฏเชพเชตเชพเชณเซ€ เชธเชฎเชธเซเชฏเชพเช“ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เช…เชฎเชฒเชฎเชพเช‚ เชฎเซ‚เช•เชตเชพเชฎเชพเช‚ เช†เชตเซ€ เช›เซ‡, เชธเชฎเชพเชจ เชนเซ‹เชธเซเชŸเชจเซ€ เช…เช‚เชฆเชฐ เชธเชฎเชพเช‚เชคเชฐ เชจเชฟเชฐเซเชฎเชพเชฃ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชนเชคเซเช‚, เช…เชจเซ‡ เชชเซ€เชณเชพ เชฐเช‚เช—เชฎเชพเช‚ เชชเซเชฐเช•เชพเชถเชฟเชค เชฎเซเชฆเซเชฆเชพเช“ เช‰เชจเชพเชณเชพเชจเชพ เช…เช‚เชค เชธเซเชงเซ€เชฎเชพเช‚ เชชเซ‚เชฐเซเชฃ เช•เชฐเชตเชพเชจเซ€ เชฏเซ‹เชœเชจเชพ เช›เซ‡.

เชฐเชœเชฟเชธเซเชŸเซเชฐเซ€เชฎเชพเช‚ เชชเซเชฐเช•เชพเชถเชจเชจเซ‹ เชคเชฌเช•เซเช•เซ‹ (เชชเซเชฐเช•เชพเชถเชฟเชค เช•เชฐเซ‹)

เช…เชฎเซ‡ เชกเชพเชฏเชฒ เช•เชฐเซเชฏเซเช‚ docker push... - เชฐเชœเชฟเชธเซเชŸเซเชฐเซ€เชฎเชพเช‚ เช›เชฌเซ€ เช…เชชเชฒเซ‹เชก เช•เชฐเชตเชพเชฎเชพเช‚ เชถเซเช‚ เชฎเซเชถเซเช•เซ‡เชฒ เชนเซ‹เชˆ เชถเช•เซ‡? เช…เชจเซ‡ เชชเช›เซ€ เชชเซเชฐเชถเซเชจ เชŠเชญเซ‹ เชฅเชพเชฏ เช›เซ‡: "เชฎเชพเชฐเซ‡ เช›เชฌเซ€ เชชเชฐ เช•เชฏเซ‹ เชŸเซ‡เช— เชฎเซ‚เช•เชตเซ‹ เชœเซ‹เชˆเช?" เชคเซ‡ เช†เชชเชฃเซ€ เชชเชพเชธเซ‡ เช›เซ‡ เชคเซ‡ เช•เชพเชฐเชฃเซ‹เชธเชฐ เช‰เชฆเซเชญเชตเซ‡ เช›เซ‡ เช—เชฟเชŸเชซเซเชฒเซ‹ (เช…เชฅเชตเชพ เช…เชจเซเชฏ เช—เชฟเชŸ เชตเซเชฏเซ‚เชนเชฐเชšเชจเชพ) เช…เชจเซ‡ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ, เช…เชจเซ‡ เช‰เชฆเซเชฏเซ‹เช— เช เชธเซเชจเชฟเชถเซเชšเชฟเชค เช•เชฐเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเซ€ เชฐเชนเซเชฏเซ‹ เช›เซ‡ เช•เซ‡ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธเชฎเชพเช‚ เชœเซ‡ เชฅเชพเชฏ เช›เซ‡ เชคเซ‡ เช—เชฟเชŸเชฎเชพเช‚ เชœเซ‡ เชฅเชพเชฏ เช›เซ‡ เชคเซ‡เชจเซ‡ เช…เชจเซเชธเชฐเซ‡ เช›เซ‡. เช›เซ‡เชตเชŸเซ‡, เช—เชฟเชŸ เช เช†เชชเชฃเซเช‚ เชธเชคเซเชฏเชจเซ‹ เชเช•เชฎเชพเชคเซเชฐ เชธเซเชคเซเชฐเซ‹เชค เช›เซ‡.

เช†เชฎเชพเช‚ เชถเซเช‚ เชฎเซเชถเซเช•เซ‡เชฒ เช›เซ‡? เชชเซเชฐเชœเชจเชจเช•เซเชทเชฎเชคเชพ เชธเซเชจเชฟเชถเซเชšเชฟเชค เช•เชฐเซ‹: Git เชฎเชพเช‚ เชชเซเชฐเชคเชฟเชฌเชฆเซเชงเชคเชพเชฎเชพเช‚เชฅเซ€, เชœเซ‡ เชชเซเชฐเช•เซƒเชคเชฟเชฎเชพเช‚ เช…เชชเชฐเชฟเชตเชฐเซเชคเชจเชถเซ€เชฒ เช›เซ‡ (เช…เชชเชฐเชฟเชตเชฐเซเชคเชจเชถเซ€เชฒ), เชเช• เชกเซ‹เช•เชฐ เชˆเชฎเซ‡เชœ เชฎเชพเชŸเซ‡, เชœเซ‡ เชธเชฎเชพเชจ เชฐเชพเช–เชตเซ€ เชœเซ‹เชˆเช.

เชคเซ‡ เช†เชชเชฃเชพ เชฎเชพเชŸเซ‡ เชชเชฃ เชฎเชนเชคเซเชตเชชเซ‚เชฐเซเชฃ เช›เซ‡ เชฎเซ‚เชณ เชจเช•เซเช•เซ€ เช•เชฐเซ‹, เช•เชพเชฐเชฃ เช•เซ‡ เช…เชฎเซ‡ เช เชธเชฎเชœเชตเชพ เชฎเชพเช‚เช—เซ€เช เช›เซ€เช เช•เซ‡ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธเชฎเชพเช‚ เชšเชพเชฒเชคเซ€ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เช•เชˆ เช•เชฎเชฟเชŸเชฎเชพเช‚เชฅเซ€ เชฌเชจเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชนเชคเซ€ (เชชเช›เซ€ เช†เชชเชฃเซ‡ เชกเชฟเชซเซเชธ เช…เชจเซ‡ เชธเชฎเชพเชจ เชตเชธเซเชคเซเช“ เช•เชฐเซ€ เชถเช•เซ€เช เช›เซ€เช).

เชŸเซ…เช—เชฟเช‚เช— เชตเซเชฏเซ‚เชนเชฐเชšเชจเชพเช“

เชชเซเชฐเชฅเชฎ เชเช• เชธเชฐเชณ เช›เซ‡ git เชŸเซ‡เช—. เช…เชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชŸเซ…เช— เช•เชฐเซ‡เชฒเซ€ เช›เชฌเซ€ เชธเชพเชฅเซ‡เชจเซ€ เชฐเชœเชฟเชธเซเชŸเซเชฐเซ€ เช›เซ‡ 1.0. Kubernetes เชธเซเชŸเซ‡เชœ เช…เชจเซ‡ เช‰เชคเซเชชเชพเชฆเชจ เชงเชฐเชพเชตเซ‡ เช›เซ‡, เชœเซเชฏเชพเช‚ เช† เช›เชฌเซ€ เช…เชชเชฒเซ‹เชก เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เช›เซ‡. เช—เชฟเชŸเชฎเชพเช‚ เช†เชชเชฃเซ‡ เช•เชฎเชฟเชŸ เช•เชฐเซ€เช เช›เซ€เช เช…เชจเซ‡ เช…เชฎเซเช• เชธเชฎเชฏเซ‡ เช†เชชเชฃเซ‡ เชŸเซ‡เช— เช•เชฐเซ€เช เช›เซ€เช 2.0. เช…เชฎเซ‡ เชคเซ‡เชจเซ‡ เชฐเซ€เชชเซ‹เชเซ€เชŸเชฐเซ€เชฎเชพเช‚เชฅเซ€ เชธเซ‚เชšเชจเชพเช“ เช…เชจเซเชธเชพเชฐ เชเช•เชคเซเชฐเชฟเชค เช•เชฐเซ€เช เช›เซ€เช เช…เชจเซ‡ เชคเซ‡เชจเซ‡ เชŸเซ‡เช— เชธเชพเชฅเซ‡ เชฐเชœเชฟเชธเซเชŸเซเชฐเซ€เชฎเชพเช‚ เชฎเซ‚เช•เซ€เช เช›เซ€เช 2.0. เช…เชฎเซ‡ เชคเซ‡เชจเซ‡ เชธเซเชŸเซ‡เชœ เชชเชฐ เชฐเซ‹เชฒ เช†เช‰เชŸ เช•เชฐเซ€เช เช›เซ€เช เช…เชจเซ‡, เชœเซ‹ เชฌเชงเซเช‚ เชฌเชฐเชพเชฌเชฐ เชนเซ‹เชฏ, เชคเซ‹ เชชเช›เซ€ เช‰เชคเซเชชเชพเชฆเชจ เชฎเชพเชŸเซ‡.

werf - เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธเชฎเชพเช‚ CI/CD เชฎเชพเชŸเซ‡ เช…เชฎเชพเชฐเซเช‚ เชธเชพเชงเชจ (เชตเชฟเชนเช‚เช—เชพเชตเชฒเซ‹เช•เชจ เช…เชจเซ‡ เชตเชฟเชกเชฟเชฏเซ‹ เชฐเชฟเชชเซ‹เชฐเซเชŸ)

เช† เช…เชญเชฟเช—เชฎ เชธเชพเชฅเซ‡ เชธเชฎเชธเซเชฏเชพ เช เช›เซ‡ เช•เซ‡ เช…เชฎเซ‡ เชชเซเชฐเชฅเชฎ เชŸเซ‡เช— เชฎเซ‚เช•เซเชฏเซ‹, เช…เชจเซ‡ เชคเซ‡ เชชเช›เซ€ เชœ เชคเซ‡เชจเซเช‚ เชชเชฐเซ€เช•เซเชทเชฃ เช…เชจเซ‡ เชฐเซ‹เชฒเช†เช‰เชŸ เช•เชฐเซเชฏเซเช‚. เชถเชพ เชฎเชพเชŸเซ‡? เชธเซŒเชชเซเชฐเชฅเชฎ, เชคเซ‡ เชซเช•เซเชค เช…เชคเชพเชฐเซเช•เชฟเช• เช›เซ‡: เช…เชฎเซ‡ เชธเซ‰เชซเซเชŸเชตเซ‡เชฐเชจเซเช‚ เชเช• เชธเช‚เชธเซเช•เชฐเชฃ เชœเชพเชฐเซ€ เช•เชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ€เช เชœเซ‡เชจเซเช‚ เช…เชฎเซ‡ เชนเชœเซ€ เชชเชฐเซ€เช•เซเชทเชฃ เชชเชฃ เช•เชฐเซเชฏเซเช‚ เชจเชฅเซ€ (เช…เชฎเซ‡ เช…เชจเซเชฏเชฅเชพ เช•เชฐเซ€ เชถเช•เชคเชพ เชจเชฅเซ€, เช•เชพเชฐเชฃ เช•เซ‡ เชคเชชเชพเชธ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เช…เชฎเชพเชฐเซ‡ เชŸเซ‡เช— เชฎเซ‚เช•เชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡). เชฌเซ€เชœเซเช‚, เช† เชชเชพเชฅ Gitflow เชธเชพเชฅเซ‡ เชธเซเชธเช‚เช—เชค เชจเชฅเซ€.

เชฌเซ€เชœเซ‹ เชตเชฟเช•เชฒเซเชช เช›เซ‡ git เช•เชฎเชฟเชŸ + เชŸเซ‡เช—. เชฎเซเช–เซเชฏ เชถเชพเช–เชพเชฎเชพเช‚ เชŸเซ‡เช— เช›เซ‡ 1.0; เชคเซ‡เชจเชพ เชฎเชพเชŸเซ‡ เชฐเชœเชฟเชธเซเชŸเซเชฐเซ€เชฎเชพเช‚ - เช‰เชคเซเชชเชพเชฆเชจเชฎเชพเช‚ เชœเชฎเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ‡เชฒเซ€ เชเช• เช›เชฌเซ€. เชตเชงเซเชฎเชพเช‚, เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เช•เซเชฒเชธเซเชŸเชฐเชฎเชพเช‚ เชชเซ‚เชฐเซเชตเชพเชตเชฒเซ‹เช•เชจ เช…เชจเซ‡ เชธเซเชŸเซ‡เชœเซ€เช‚เช— เชฐเซ‚เชชเชฐเซ‡เช–เชพ เช›เซ‡. เช†เช—เชณ เช†เชชเชฃเซ‡ เช—เชฟเชŸเชซเซเชฒเซ‹เชจเซ‡ เช…เชจเซเชธเชฐเซ€เช เช›เซ€เช: เชตเชฟเช•เชพเชธ เชฎเชพเชŸเซ‡เชจเซ€ เชฎเซเช–เซเชฏ เชถเชพเช–เชพเชฎเชพเช‚ (develop) เช…เชฎเซ‡ เชจเชตเซ€ เชธเซเชตเชฟเชงเชพเช“ เชฌเชจเชพเชตเซ€เช เช›เซ€เช, เชชเชฐเชฟเชฃเชพเชฎเซ‡ เช“เชณเช–เช•เชฐเซเชคเชพ เชธเชพเชฅเซ‡ เช•เชฎเชฟเชŸ เชฅเชพเชฏ เช›เซ‡ #c1. เช…เชฎเซ‡ เชคเซ‡เชจเซ‡ เชเช•เชคเซเชฐเชฟเชค เช•เชฐเซ€เช เช›เซ€เช เช…เชจเซ‡ เช† เช“เชณเช–เช•เชฐเซเชคเชพเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชคเซ‡เชจเซ‡ เชฐเชœเชฟเชธเซเชŸเซเชฐเซ€เชฎเชพเช‚ เชชเซเชฐเช•เชพเชถเชฟเชค เช•เชฐเซ€เช เช›เซ€เช (#c1). เชธเชฎเชพเชจ เช“เชณเช–เช•เชฐเซเชคเชพ เชธเชพเชฅเซ‡ เช…เชฎเซ‡ เชชเซ‚เชฐเซเชตเชพเชตเชฒเซ‹เช•เชจ เชฎเชพเชŸเซ‡ เชฐเซ‹เชฒ เช†เช‰เชŸ เช•เชฐเซ€เช เช›เซ€เช. เช…เชฎเซ‡ เช•เชฎเชฟเชŸ เชธเชพเชฅเซ‡ เชชเชฃ เช†เชตเซเช‚ เชœ เช•เชฐเซ€เช เช›เซ€เช #c2 ะธ #c3.

เชœเซเชฏเชพเชฐเซ‡ เช…เชฎเชจเซ‡ เชธเชฎเชœเชพเชฏเซเช‚ เช•เซ‡ เชคเซเชฏเชพเช‚ เชชเซ‚เชฐเชคเซ€ เชธเซเชตเชฟเชงเชพเช“ เช›เซ‡, เช…เชฎเซ‡ เชฌเชงเซเช‚ เชธเซเชฅเชฟเชฐ เช•เชฐเชตเชพเชจเซเช‚ เชถเชฐเซ‚ เช•เชฐเซ€เช เช›เซ€เช. Git เชฎเชพเช‚ เชเช• เชถเชพเช–เชพ เชฌเชจเชพเชตเซ‹ release_1.1 (เช†เชงเชพเชฐ เชชเชฐ #c3 เชฅเซ€ develop). เช† เชชเซเชฐเช•เชพเชถเชจ เชเช•เชคเซเชฐเชฟเชค เช•เชฐเชตเชพเชจเซ€ เช•เซ‹เชˆ เชœเชฐเซ‚เชฐ เชจเชฅเซ€, เช•เชพเชฐเชฃ เช•เซ‡... เช† เชชเชพเช›เชฒเชพ เชชเช—เชฒเชพเชฎเชพเช‚ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชนเชคเซเช‚. เชคเซ‡เชฅเซ€, เช…เชฎเซ‡ เชคเซ‡เชจเซ‡ เชธเซเชŸเซ‡เชœเซ€เช‚เช—เชฎเชพเช‚ เชธเชฐเชณเชคเชพเชฅเซ€ เชฐเซ‹เชฒ เช†เช‰เชŸ เช•เชฐเซ€ เชถเช•เซ€เช เช›เซ€เช. เช…เชฎเซ‡ เชญเซ‚เชฒเซ‹เชจเซ‡ เช เซ€เช• เช•เชฐเซ€เช เช›เซ€เช #c4 เช…เชจเซ‡ เช เชœ เชฐเซ€เชคเซ‡ เชธเซเชŸเซ‡เชœเซ€เช‚เช— เชฎเชพเชŸเซ‡ เชฐเซ‹เชฒ เช†เช‰เชŸ เช•เชฐเซ‹. เชคเซ‡ เชœ เชธเชฎเชฏเซ‡, เชตเชฟเช•เชพเชธ เชšเชพเชฒเซ เช›เซ‡ develop, เชœเซเชฏเชพเช‚เชฅเซ€ เชธเชฎเชฏเชพเช‚เชคเชฐเซ‡ เชซเซ‡เชฐเชซเชพเชฐเซ‹ เชฒเซ‡เชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ release_1.1. เช…เชฎเซเช• เชธเชฎเชฏเซ‡, เช…เชฎเซ‡ เชเช• เช•เชฎเชฟเชŸ เช•เชฎเซเชชเชพเชˆเชฒ เช…เชจเซ‡ เชธเซเชŸเซ‡เชœเซ€เช‚เช— เชชเชฐ เช…เชชเชฒเซ‹เชก เช•เชฐเซ€เช เช›เซ€เช, เชœเซ‡เชจเชพเชฅเซ€ เช…เชฎเซ‡ เช–เซเชถ เช›เซ€เช (#c25).

เชชเช›เซ€ เช…เชฎเซ‡ เชชเซเชฐเช•เชพเชถเชจ เชถเชพเช–เชพเชจเซ‡ (เชซเชพเชธเซเชŸ-เชซเซ‹เชฐเชตเชฐเซเชก เชธเชพเชฅเซ‡) เชฎเชฐเซเชœ เช•เชฐเซ€เช เช›เซ€เช (release_1.1) เชฎเชพเชธเซเชŸเชฐ เชฎเชพเช‚. เช…เชฎเซ‡ เช† เชชเซเชฐเชคเชฟเชฌเชฆเซเชงเชคเชพ เชชเชฐ เชจเชตเชพ เชธเช‚เชธเซเช•เชฐเชฃ เชธเชพเชฅเซ‡ เชŸเซ‡เช— เชฎเซ‚เช•เซ€เช เช›เซ€เช (1.1). เชชเชฐเช‚เชคเซ เช† เช›เชฌเซ€ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เชฐเชœเชฟเชธเซเชŸเซเชฐเซ€เชฎเชพเช‚ เชเช•เชคเซเชฐเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เช›เซ‡, เชคเซ‡เชฅเซ€ เชคเซ‡เชจเซ‡ เชซเชฐเซ€เชฅเซ€ เชเช•เชคเซเชฐเชฟเชค เชจ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เช…เชฎเซ‡ เชนเชพเชฒเชจเซ€ เช›เชฌเซ€ เชชเชฐ เชฌเซ€เชœเซเช‚ เชŸเซ‡เช— เช‰เชฎเซ‡เชฐเซ€เช เช›เซ€เช (เชนเชตเซ‡ เชคเซ‡ เชฐเชœเชฟเชธเซเชŸเซเชฐเซ€เชฎเชพเช‚ เชŸเซ…เช— เชงเชฐเชพเชตเซ‡ เช›เซ‡. #c25 ะธ 1.1). เชคเซ‡ เชชเช›เซ€, เช…เชฎเซ‡ เชคเซ‡เชจเซ‡ เช‰เชคเซเชชเชพเชฆเชจ เชฎเชพเชŸเซ‡ เชฐเซ‹เชฒเช†เช‰เชŸ เช•เชฐเซ€เช เช›เซ€เช.

เชคเซเชฏเชพเช‚ เชเช• เช–เชพเชฎเซ€ เช›เซ‡ เช•เซ‡ เชธเซเชŸเซ‡เชœเชฟเช‚เช— เชชเชฐ เชฎเชพเชคเซเชฐ เชเช• เชœ เช›เชฌเซ€ เช…เชชเชฒเซ‹เชก เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เช›เซ‡ (#c25), เช…เชจเซ‡ เช‰เชคเซเชชเชพเชฆเชจเชฎเชพเช‚ เชคเซ‡ เช…เชฒเช— เชชเซเชฐเช•เชพเชฐเชจเซเช‚ เช›เซ‡ (1.1), เชชเชฐเช‚เชคเซ เช†เชชเชฃเซ‡ เชœเชพเชฃเซ€เช เช›เซ€เช เช•เซ‡ "เชถเชพเชฐเซ€เชฐเชฟเช• เชฐเซ€เชคเซ‡" เช† เชฐเชœเชฟเชธเซเชŸเซเชฐเซ€เชฎเชพเช‚เชฅเซ€ เชธเชฎเชพเชจ เช›เชฌเซ€ เช›เซ‡.

werf - เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธเชฎเชพเช‚ CI/CD เชฎเชพเชŸเซ‡ เช…เชฎเชพเชฐเซเช‚ เชธเชพเชงเชจ (เชตเชฟเชนเช‚เช—เชพเชตเชฒเซ‹เช•เชจ เช…เชจเซ‡ เชตเชฟเชกเชฟเชฏเซ‹ เชฐเชฟเชชเซ‹เชฐเซเชŸ)

เชตเชพเชธเซเชคเชตเชฟเช• เช—เซ‡เชฐเชฒเชพเชญ เช เช›เซ‡ เช•เซ‡ เชฎเชฐเซเชœ เช•เชฎเชฟเชŸ เชฎเชพเชŸเซ‡ เช•เซ‹เชˆ เชธเชชเซ‹เชฐเซเชŸ เชจเชฅเซ€, เชคเชฎเชพเชฐเซ‡ เชซเชพเชธเซเชŸ-เชซเซ‹เชฐเชตเชฐเซเชก เช•เชฐเชตเซเช‚ เชชเชกเชถเซ‡.

เช†เชชเชฃเซ‡ เช†เช—เชณ เชœเชˆเชจเซ‡ เชเช• เชฏเซเช•เซเชคเชฟ เช•เชฐเซ€ เชถเช•เซ€เช เช›เซ€เช... เชšเชพเชฒเซ‹ เชเช• เชธเชฐเชณ เชกเซ‹เช•เชฐเชซเชพเชˆเชฒเชจเซเช‚ เช‰เชฆเชพเชนเชฐเชฃ เชœเซ‹เชˆเช:

FROM ruby:2.3 as assets
RUN mkdir -p /app
WORKDIR /app
COPY . ./
RUN gem install bundler && bundle install
RUN bundle exec rake assets:precompile
CMD bundle exec puma -C config/puma.rb

FROM nginx:alpine
COPY --from=assets /app/public /usr/share/nginx/www/public

เชšเชพเชฒเซ‹ เชคเซ‡เชฎเชพเช‚เชฅเซ€ เชจเซ€เชšเซ‡เชจเชพ เชธเชฟเชฆเซเชงเชพเช‚เชค เชฎเซเชœเชฌ เชซเชพเช‡เชฒ เชฌเชจเชพเชตเซ€เช:

  • เชตเชชเชฐเชพเชฏเซ‡เชฒ เช›เชฌเซ€เช“เชจเชพ เช“เชณเช–เช•เชฐเซเชคเชพเช“เชฎเชพเช‚เชฅเซ€ SHA256 (ruby:2.3 ะธ nginx:alpine), เชœเซ‡ เชคเซ‡เชฎเชจเซ€ เชธเชพเชฎเช—เซเชฐเซ€เชจเชพ เชšเซ‡เช•เชธเชฎ เช›เซ‡;
  • เชฌเชงเซ€ เชŸเซ€เชฎเซ‹ (RUN, CMD เช…เชจเซ‡ เชคเซ‡เชฅเซ€ เชตเชงเซ.);
  • SHA256 เชซเชพเช‡เชฒเซ‹เชฎเชพเช‚เชฅเซ€ เชœเซ‡ เช‰เชฎเซ‡เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชนเชคเซ€.

... เช…เชจเซ‡ เช†เชตเซ€ เชซเชพเช‡เชฒเชฎเชพเช‚เชฅเซ€ เชšเซ‡เช•เชธเชฎ (เชซเชฐเซ€เชฅเซ€ SHA256) เชฒเซ‹. เช† เชธเชนเซ€ เชฌเชงเซเช‚ เชœเซ‡ เชกเซ‹เช•เชฐ เชˆเชฎเซ‡เชœเชจเซ€ เชธเชพเชฎเช—เซเชฐเซ€เชจเซ‡ เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เช•เชฐเซ‡ เช›เซ‡.

werf - เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธเชฎเชพเช‚ CI/CD เชฎเชพเชŸเซ‡ เช…เชฎเชพเชฐเซเช‚ เชธเชพเชงเชจ (เชตเชฟเชนเช‚เช—เชพเชตเชฒเซ‹เช•เชจ เช…เชจเซ‡ เชตเชฟเชกเชฟเชฏเซ‹ เชฐเชฟเชชเซ‹เชฐเซเชŸ)

เชšเชพเชฒเซ‹ เชกเชพเชฏเชพเช—เซเชฐเชพเชฎ เชชเชฐ เชชเชพเช›เชพ เชœเชˆเช เช…เชจเซ‡ เช•เชฎเชฟเชŸเซเชธเชจเซ‡ เชฌเชฆเชฒเซ‡ เช…เชฎเซ‡ เช†เชตเซ€ เชธเชนเซ€เช“เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชถเซเช‚, เชเชŸเชฒเซ‡ เช•เซ‡ เชนเชธเซเชคเชพเช•เซเชทเชฐ เชธเชพเชฅเซ‡ เช›เชฌเซ€เช“ เชŸเซ‡เช— เช•เชฐเซ‹.

werf - เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธเชฎเชพเช‚ CI/CD เชฎเชพเชŸเซ‡ เช…เชฎเชพเชฐเซเช‚ เชธเชพเชงเชจ (เชตเชฟเชนเช‚เช—เชพเชตเชฒเซ‹เช•เชจ เช…เชจเซ‡ เชตเชฟเชกเชฟเชฏเซ‹ เชฐเชฟเชชเซ‹เชฐเซเชŸ)

เชนเชตเซ‡, เชœเซเชฏเชพเชฐเซ‡ เชคเซ‡ เชœเชฐเซ‚เชฐเซ€ เชนเซ‹เชฏ, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชฐเซ€เชฒเซ€เชเชฎเชพเช‚เชฅเซ€ เชฎเชพเชธเซเชŸเชฐเชฎเชพเช‚ เชซเซ‡เชฐเชซเชพเชฐเซ‹เชจเซ‡ เชฎเชฐเซเชœ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เช…เชฎเซ‡ เชตเชพเชธเซเชคเชตเชฟเช• เชฎเชฐเซเชœ เช•เชฎเชฟเชŸ เช•เชฐเซ€ เชถเช•เซ€เช เช›เซ€เช: เชคเซ‡เชฎเชพเช‚ เชเช• เช…เชฒเช— เช“เชณเช–เช•เชฐเซเชคเชพ เชนเชถเซ‡, เชชเชฐเช‚เชคเซ เชธเชฎเชพเชจ เชนเชธเซเชคเชพเช•เซเชทเชฐ เชนเชถเซ‡. เชธเชฎเชพเชจ เช“เชณเช–เช•เชฐเซเชคเชพ เชธเชพเชฅเซ‡ เช…เชฎเซ‡ เช‡เชฎเซ‡เชœเชจเซ‡ เชชเซเชฐเซ‹เชกเช•เซเชถเชจเชฎเชพเช‚ เชฐเซ‹เชฒ เช†เช‰เชŸ เช•เชฐเซ€เชถเซเช‚.

เช—เซ‡เชฐเชฒเชพเชญ เช เช›เซ‡ เช•เซ‡ เชนเชตเซ‡ เชคเซ‡ เชจเชฟเชฐเซเชงเชพเชฐเชฟเชค เช•เชฐเชตเซเช‚ เชถเช•เซเชฏ เชจเชฅเซ€ เช•เซ‡ เช•เชฏเชพ เชชเซเชฐเช•เชพเชฐเชจเซ€ เชชเซเชฐเชคเชฟเชฌเชฆเซเชงเชคเชพเชจเซ‡ เช‰เชคเซเชชเชพเชฆเชจ เชฎเชพเชŸเซ‡ เชฆเชฌเชพเชฃ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชนเชคเซเช‚ - เชšเซ‡เช•เชธเชฎ เชซเช•เซเชค เชเช• เชฆเชฟเชถเชพเชฎเชพเช‚ เช•เชพเชฐเซเชฏ เช•เชฐเซ‡ เช›เซ‡. เช† เชธเชฎเชธเซเชฏเชพเชจเซ‡ เชฎเซ‡เชŸเชพเชกเซ‡เชŸเชพ เชธเชพเชฅเซ‡ เชตเชงเชพเชฐเชพเชจเชพ เชธเซเชคเชฐ เชฆเซเชตเชพเชฐเชพ เช‰เช•เซ‡เชฒเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ - เชนเซเช‚ เชคเชฎเชจเซ‡ เชชเช›เซ€เชฅเซ€ เชตเชงเซ เช•เชนเซ€เชถ.

werf เชฎเชพเช‚ เชŸเซ‡เช—เซ€เช‚เช—

werf เชฎเชพเช‚ เช…เชฎเซ‡ เชนเชœเซ€ เชชเชฃ เช†เช—เชณ เช—เชฏเชพ เช…เชจเซ‡ เชเช• เชฎเชถเซ€เชจ เชชเชฐ เชธเช‚เช—เซเชฐเชนเชฟเชค เชจ เชนเซ‹เชฏ เชคเซ‡เชตเชพ เช•เซ‡เชถ เชธเชพเชฅเซ‡ เชตเชฟเชคเชฐเชฟเชค เชฌเชฟเชฒเซเชก เช•เชฐเชตเชพเชจเซ€ เชคเซˆเชฏเชพเชฐเซ€ เช•เชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ€เช... เชคเซ‡เชฅเซ€, เช…เชฎเซ‡ เชฌเซ‡ เชชเซเชฐเช•เชพเชฐเชจเซ€ เชกเซ‹เช•เชฐ เช›เชฌเซ€เช“ เชฌเชจเชพเชตเซ€ เชฐเชนเซเชฏเชพ เช›เซ€เช, เช…เชฎเซ‡ เชคเซ‡เชฎเชจเซ‡ เช•เซ‰เชฒ เช•เชฐเซ€เช เช›เซ€เช เชฎเช‚เชš ะธ เช›เชฌเซ€.

werf Git เชฐเชฟเชชเซ‹เชเซ€เชŸเชฐเซ€ เชฌเชฟเชฒเซเชก-เชตเชฟเชถเชฟเชทเซเชŸ เชธเซ‚เชšเชจเชพเช“ เชธเซเชŸเซ‹เชฐ เช•เชฐเซ‡ เช›เซ‡ เชœเซ‡ เชฌเชฟเชฒเซเชกเชจเชพ เชตเชฟเชตเชฟเชง เชคเชฌเช•เซเช•เชพเช“เชจเซเช‚ เชตเชฐเซเชฃเชจ เช•เชฐเซ‡ เช›เซ‡ (เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเชคเชพ เชชเชนเซ‡เชฒเชพ, เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ‹, เชธเซ‡เชŸเช…เชช เชชเชนเซ‡เชฒเชพเช‚, เชธเซเชฅเชพเชชเชจเชพ). เช…เชฎเซ‡ เชชเซเชฐเชฅเชฎ เชคเชฌเช•เซเช•เชพเชจเซ€ เช›เชฌเซ€เชจเซ‡ เชชเซเชฐเชฅเชฎ เชชเช—เชฒเชพเชจเชพ เชšเซ‡เช•เชธเชฎ เชคเชฐเซ€เช•เซ‡ เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เชนเชธเซเชคเชพเช•เซเชทเชฐ เชธเชพเชฅเซ‡ เชเช•เชคเซเชฐเชฟเชค เช•เชฐเซ€เช เช›เซ€เช. เชชเช›เซ€ เช…เชฎเซ‡ เชธเซเชฐเซ‹เชค เช•เซ‹เชก เช‰เชฎเซ‡เชฐเซ€เช เช›เซ€เช, เชจเชตเซ€ เชธเซเชŸเซ‡เชœ เช‡เชฎเซ‡เชœ เชฎเชพเชŸเซ‡ เช…เชฎเซ‡ เชคเซ‡เชจเชพ เชšเซ‡เช•เชธเชฎเชจเซ€ เช—เชฃเชคเชฐเซ€ เช•เชฐเซ€เช เช›เซ€เช... เช† เช‘เชชเชฐเซ‡เชถเชจเซเชธ เชคเชฎเชพเชฎ เชคเชฌเช•เซเช•เชพเช“ เชฎเชพเชŸเซ‡ เชชเซเชจเชฐเชพเชตเชฐเซเชคเชฟเชค เชฅเชพเชฏ เช›เซ‡, เชœเซ‡เชจเชพ เชชเชฐเชฟเชฃเชพเชฎเซ‡ เช…เชฎเชจเซ‡ เชธเซเชŸเซ‡เชœเชจเซ€ เช›เชฌเซ€เช“เชจเซ‹ เชธเชฎเซ‚เชน เชฎเชณเซ‡ เช›เซ‡. เชชเช›เซ€ เช…เชฎเซ‡ เช…เช‚เชคเชฟเชฎ เช›เชฌเซ€ เชฌเชจเชพเชตเซ€เช เช›เซ€เช, เชœเซ‡เชฎเชพเช‚ เชคเซ‡เชจเชพ เชฎเซ‚เชณ เชตเชฟเชถเซ‡ เชฎเซ‡เชŸเชพเชกเซ‡เชŸเชพ เชชเชฃ เช›เซ‡. เช…เชจเซ‡ เช…เชฎเซ‡ เช† เช›เชฌเซ€เชจเซ‡ เช…เชฒเช— เช…เชฒเช— เชฐเซ€เชคเซ‡ เชŸเซ‡เช— เช•เชฐเซ€เช เช›เซ€เช (เชตเชฟเช—เชคเซ‹ เชชเช›เซ€เชฅเซ€).

werf - เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธเชฎเชพเช‚ CI/CD เชฎเชพเชŸเซ‡ เช…เชฎเชพเชฐเซเช‚ เชธเชพเชงเชจ (เชตเชฟเชนเช‚เช—เชพเชตเชฒเซ‹เช•เชจ เช…เชจเซ‡ เชตเชฟเชกเชฟเชฏเซ‹ เชฐเชฟเชชเซ‹เชฐเซเชŸ)

เชงเชพเชฐเซ‹ เช•เซ‡ เช† เชชเช›เซ€ เชเช• เชจเชตเซ€ เช•เชฎเชฟเชŸ เชฆเซ‡เช–เชพเชฏ เช›เซ‡ เชœเซ‡เชฎเชพเช‚ เชซเช•เซเชค เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เช•เซ‹เชก เชฌเชฆเชฒเชพเชฏเซ‹ เช›เซ‡. เชถเซเช‚ เชฅเชถเซ‡? เช•เซ‹เชก เชซเซ‡เชฐเชซเชพเชฐเซ‹ เชฎเชพเชŸเซ‡, เชเช• เชชเซ‡เชš เชฌเชจเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡ เช…เชจเซ‡ เชจเชตเซ€ เชธเซเชŸเซ‡เชœ เช‡เชฎเซ‡เชœ เชคเซˆเชฏเชพเชฐ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡. เชคเซ‡เชจเชพ เชนเชธเซเชคเชพเช•เซเชทเชฐ เชœเซ‚เชจเชพ เชธเซเชŸเซ‡เชœเชจเซ€ เช›เชฌเซ€ เช…เชจเซ‡ เชจเชตเชพ เชชเซ‡เชšเชจเชพ เชšเซ‡เช•เชธเชฎ เชคเชฐเซ€เช•เซ‡ เชจเช•เซเช•เซ€ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡. เช† เชˆเชฎเซ‡เชœ เชชเชฐเชฅเซ€ เชเช• เชจเชตเซ€ เชซเชพเชˆเชจเชฒ เชˆเชฎเซ‡เชœ เชฌเชจเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡. เชธเชฎเชพเชจ เชตเชฐเซเชคเชจ เช…เชจเซเชฏ เชคเชฌเช•เซเช•เชพเชฎเชพเช‚ เชซเซ‡เชฐเชซเชพเชฐเซ‹ เชธเชพเชฅเซ‡ เชฅเชถเซ‡.

เช†เชฎ, เชธเซเชŸเซ‡เชœ เชˆเชฎเซ‡เชœเซ€เชธ เช เชเช• เช•เซ‡เชถ เช›เซ‡ เชœเซ‡ เชตเชฟเชคเชฐเชฟเชค เชฐเซ€เชคเซ‡ เชธเช‚เช—เซเชฐเชนเชฟเชค เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡, เช…เชจเซ‡ เชคเซ‡เชฎเชพเช‚เชฅเซ€ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เชฌเชจเชพเชตเซ‡เชฒ เชˆเชฎเซ‡เชœเซ‹ เชกเซ‹เช•เชฐ เชฐเชœเซ€เชธเซเชŸเซเชฐเซ€เชฎเชพเช‚ เช…เชชเชฒเซ‹เชก เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡.

werf - เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธเชฎเชพเช‚ CI/CD เชฎเชพเชŸเซ‡ เช…เชฎเชพเชฐเซเช‚ เชธเชพเชงเชจ (เชตเชฟเชนเช‚เช—เชพเชตเชฒเซ‹เช•เชจ เช…เชจเซ‡ เชตเชฟเชกเชฟเชฏเซ‹ เชฐเชฟเชชเซ‹เชฐเซเชŸ)

เชฐเชœเชฟเชธเซเชŸเซเชฐเซ€เชจเซ€ เชธเชซเชพเชˆ

เช…เชฎเซ‡ เชเชตเชพ เชธเซเชคเชฐเซ‹เชจเซ‡ เช•เชพเชขเซ€ เชจเชพเช–เชตเชพ เชตเชฟเชถเซ‡ เชตเชพเชค เช•เชฐเซ€ เชฐเชนเซเชฏเชพ เชจเชฅเซ€ เชœเซ‡ เช•เชพเชขเซ€ เชจเชพเช–เซ‡เชฒเชพ เชŸเซ…เช—เซเชธ เชชเช›เซ€ เช…เชŸเช•เซ€ เช—เชฏเชพ เชนเชคเชพ - เช† เชกเซ‹เช•เชฐ เชฐเชœเชฟเชธเซเชŸเซเชฐเซ€เชจเซเช‚ เชชเซเชฐเชฎเชพเชฃเชญเซ‚เชค เชฒเช•เซเชทเชฃ เช›เซ‡. เช…เชฎเซ‡ เชเชตเซ€ เชชเชฐเชฟเชธเซเชฅเชฟเชคเชฟ เชตเชฟเชถเซ‡ เชตเชพเชค เช•เชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ€เช เชœเซเชฏเชพเชฐเซ‡ เช˜เชฃเชพ เชฌเชงเชพ เชกเซ‹เช•เชฐ เชŸเซ…เช—เซเชธ เชเช•เช เชพ เชฅเชพเชฏ เช›เซ‡ เช…เชจเซ‡ เช…เชฎเซ‡ เชธเชฎเชœเซ€เช เช›เซ€เช เช•เซ‡ เช…เชฎเชจเซ‡ เชนเชตเซ‡ เชคเซ‡เชฎเชพเช‚เชฅเซ€ เช•เซ‡เชŸเชฒเชพเช•เชจเซ€ เชœเชฐเซ‚เชฐ เชจเชฅเซ€, เชชเชฐเช‚เชคเซ เชคเซ‡เช“ เชœเช—เซเชฏเชพ เชฒเซ‡ เช›เซ‡ (เช…เชจเซ‡/เช…เชฅเชตเชพ เช…เชฎเซ‡ เชคเซ‡เชจเชพ เชฎเชพเชŸเซ‡ เชšเซ‚เช•เชตเชฃเซ€ เช•เชฐเซ€เช เช›เซ€เช).

เชธเชซเชพเชˆ เชตเซเชฏเซ‚เชนเชฐเชšเชจเชพ เชถเซเช‚ เช›เซ‡?

  1. เชคเชฎเซ‡ เชฎเชพเชคเซเชฐ เช•เช‚เชˆ เช•เชฐเซ€ เชถเช•เชคเชพ เชจเชฅเซ€ เชธเชพเชซ เช•เชฐเชถเซ‹ เชจเชนเซ€เช‚. เช•เซ‡เชŸเชฒเซ€เช•เชตเชพเชฐ เชŸเซ…เช—เซเชธเชจเซ€ เชตเชฟเชถเชพเชณ เช—เซ‚เช‚เชšเชจเซ‡ เช‰เช•เซ‡เชฒเชตเชพ เช•เชฐเชคเชพเช‚ เชตเชงเชพเชฐเชพเชจเซ€ เชœเช—เซเชฏเชพ เชฎเชพเชŸเซ‡ เชฅเซ‹เชกเซ€ เชšเซ‚เช•เชตเชฃเซ€ เช•เชฐเชตเซ€ เช–เชฐเซ‡เช–เชฐ เชธเชฐเชณ เช›เซ‡. เชชเชฐเช‚เชคเซ เช† เชฎเชพเชคเซเชฐ เชเช• เชšเซ‹เช•เซเช•เชธ เชฌเชฟเช‚เชฆเซ เชธเซเชงเซ€ เช•เชพเชฎ เช•เชฐเซ‡ เช›เซ‡.
  2. เชธเช‚เชชเซ‚เชฐเซเชฃ เชฐเซ€เชธเซ‡เชŸ. เชœเซ‹ เชคเชฎเซ‡ เชฌเชงเซ€ เช›เชฌเซ€เช“ เช•เชพเชขเซ€ เชจเชพเช–เซ‹ เช›เซ‹ เช…เชจเซ‡ CI เชธเชฟเชธเซเชŸเชฎเชฎเชพเช‚ เชซเช•เซเชค เชตเชฐเซเชคเชฎเชพเชจ เช›เชฌเซ€เช“เชจเซ‡ เชซเชฐเซ€เชฅเซ€ เชฌเชจเชพเชตเซ‹ เช›เซ‹, เชคเซ‹ เชธเชฎเชธเซเชฏเชพ เชŠเชญเซ€ เชฅเชˆ เชถเช•เซ‡ เช›เซ‡. เชœเซ‹ เช•เชจเซเชŸเซ‡เชจเชฐ เช‰เชคเซเชชเชพเชฆเชจเชฎเชพเช‚ เชชเซเชจเชƒเชชเซเชฐเชพเชฐเช‚เชญ เชฅเชพเชฏ เช›เซ‡, เชคเซ‹ เชคเซ‡เชจเชพ เชฎเชพเชŸเซ‡ เชเช• เชจเชตเซ€ เช›เชฌเซ€ เชฒเซ‹เชก เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡ - เชเช• เช•เซ‡ เชœเซ‡ เชนเชœเซ เชธเซเชงเซ€ เช•เซ‹เชˆเช เชชเชฐเซ€เช•เซเชทเชฃ เช•เชฐเซเชฏเซเช‚ เชจเชฅเซ€. เช† เช…เชชเชฐเชฟเชตเชฐเซเชคเชจเชถเซ€เชฒ เช‡เชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐเชจเชพ เชตเชฟเชšเชพเชฐเชจเซ‡ เชฎเชพเชฐเซ€ เชจเชพเช–เซ‡ เช›เซ‡.
  3. เชตเชพเชฆเชณเซ€, เชฒเซ€เชฒเซ€. เชเช• เชฐเชœเชฟเชธเซเชŸเซเชฐเซ€ เช“เชตเชฐเชซเซเชฒเซ‹ เชฅเชตเชพ เชฒเชพเช—เซ€ - เช…เชฎเซ‡ เชฌเซ€เชœเซ€ เชชเชฐ เช›เชฌเซ€เช“ เช…เชชเชฒเซ‹เชก เช•เชฐเซ€เช เช›เซ€เช. เช…เช—เชพเช‰เชจเซ€ เชชเชฆเซเชงเชคเชฟเชจเซ€ เชœเซ‡เชฎ เชœ เชธเชฎเชธเซเชฏเชพ: เชคเชฎเซ‡ เช•เชฏเชพ เชธเชฎเชฏเซ‡ เชฐเชœเชฟเชธเซเชŸเซเชฐเซ€เชจเซ‡ เชธเชพเชซ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ เชœเซ‡ เช“เชตเชฐเชซเซเชฒเซ‹ เชฅเชตเชพเชจเซเช‚ เชถเชฐเซ‚ เชฅเชฏเซเช‚ เช›เซ‡?
  4. เชธเชฎเชฏ เชชเซเชฐเชฎเชพเชฃเซ‡. 1 เชฎเชนเชฟเชจเชพ เช•เชฐเชคเชพเช‚ เชœเซ‚เชจเซ€ เชฌเชงเซ€ เช›เชฌเซ€เช“ เช•เชพเชขเซ€ เชจเชพเช–เซ€เช? เชชเชฐเช‚เชคเซ เชšเซ‹เช•เซเช•เชธเชชเชฃเซ‡ เชเช• เชเชตเซ€ เชธเซ‡เชตเชพ เชนเชถเซ‡ เชœเซ‡ เชเช• เชฎเชนเชฟเชจเชพเชฅเซ€ เช…เชชเชกเซ‡เชŸ เชจ เชฅเชˆ เชนเซ‹เชฏ...
  5. เชœเชพเชคเซ‡ เชชเชนเซ‡เชฒเชพเชฅเซ€ เชถเซเช‚ เช•เชพเชขเซ€ เชถเช•เชพเชฏ เช›เซ‡ เชคเซ‡ เชจเช•เซเช•เซ€ เช•เชฐเซ‹.

เชคเซเชฏเชพเช‚ เชฌเซ‡ เช–เชฐเซ‡เช–เชฐ เชธเชงเซเชงเชฐ เชตเชฟเช•เชฒเซเชชเซ‹ เช›เซ‡: เชธเชพเชซ เชจ เช•เชฐเซ‹ เช…เชฅเชตเชพ เชตเชพเชฆเชณเซ€-เชฒเซ€เชฒเซ‹ + เชฎเซ‡เชจเซเชฏเซเช…เชฒเซ€ เชธเช‚เชฏเซ‹เชœเชจ. เชชเช›เซ€เชจเชพ เช•เชฟเชธเซเชธเชพเชฎเชพเช‚, เช…เชฎเซ‡ เชจเซ€เชšเซ‡เชจเชพ เชตเชฟเชถเซ‡ เชตเชพเชค เช•เชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ€เช: เชœเซเชฏเชพเชฐเซ‡ เชคเชฎเซ‡ เชธเชฎเชœเซ‹ เช›เซ‹ เช•เซ‡ เชฐเชœเชฟเชธเซเชŸเซเชฐเซ€ เชธเชพเชซ เช•เชฐเชตเชพเชจเซ‹ เชธเชฎเชฏ เช†เชตเซ€ เช—เชฏเซ‹ เช›เซ‡, เชคเซเชฏเชพเชฐเซ‡ เชคเชฎเซ‡ เชเช• เชจเชตเซเช‚ เชฌเชจเชพเชตเซ‹ เช…เชจเซ‡ เชคเซ‡เชฎเชพเช‚ เชฌเชงเซ€ เชจเชตเซ€ เช›เชฌเซ€เช“ เช‰เชฎเซ‡เชฐเซ‹, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชเช• เชฎเชนเชฟเชจเชพ เชฆเชฐเชฎเชฟเชฏเชพเชจ. เช…เชจเซ‡ เชเช• เชฎเชนเชฟเชจเชพ เชชเช›เซ€, เชœเซเช“ เช•เซ‡ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธเชฎเชพเช‚ เช•เชฏเชพ เชชเซ‹เชกเซเชธ เชนเชœเซ€ เชชเชฃ เชœเซ‚เชจเซ€ เชฐเชœเชฟเชธเซเชŸเซเชฐเซ€เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชฐเชนเซเชฏเชพเช‚ เช›เซ‡, เช…เชจเซ‡ เชคเซ‡เชจเซ‡ เชชเชฃ เชจเชตเซ€ เชฐเชœเชฟเชธเซเชŸเซเชฐเซ€เชฎเชพเช‚ เชธเซเชฅเชพเชจเชพเช‚เชคเชฐเชฟเชค เช•เชฐเซ‹.

เช†เชชเชฃเซ‡ เชถเซเช‚ เช•เชฐเชตเชพ เช†เชตเซเชฏเชพ เช›เซ€เช เชตเชฐเซเชซ? เช…เชฎเซ‡ เชเช•เชคเซเชฐเชฟเชค เช•เชฐเซ€เช เช›เซ€เช:

  1. เช—เชฟเชŸ เชนเซ‡เชก: เชฌเชงเชพ เชŸเซ…เช—เซเชธ, เชฌเชงเซ€ เชถเชพเช–เชพเช“ - เชงเชพเชฐเซ€เช เช›เซ€เช เช•เซ‡ เช…เชฎเชจเซ‡ เช›เชฌเซ€เช“เชฎเชพเช‚ เช—เชฟเชŸเชฎเชพเช‚ เชŸเซ…เช— เช•เชฐเซ‡เชฒเซ€ เชฆเชฐเซ‡เช• เชตเชธเซเชคเซเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ (เช…เชจเซ‡ เชœเซ‹ เชจเชนเซ€เช‚, เชคเซ‹ เช†เชชเชฃเซ‡ เชคเซ‡เชจเซ‡ เช—เชฟเชŸเชฎเชพเช‚ เชœ เช•เชพเชขเซ€ เชจเชพเช–เชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡);
  2. เชคเชฎเชพเชฎ เชถเซ€เช‚เช—เซ‹ เช•เซ‡ เชœเซ‡ เชนเชพเชฒเชฎเชพเช‚ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธเชฎเชพเช‚ เชชเชฎเซเชช เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡;
  3. เชœเซ‚เชจเซ€ เชฐเซ‡เชชเซเชฒเชฟเช•เชพเชธเซ‡เชŸเซเชธ (เชœเซ‡ เชคเชพเชœเซ‡เชคเชฐเชฎเชพเช‚ เชฌเชนเชพเชฐ เชชเชพเชกเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชนเชคเซเช‚), เช…เชจเซ‡ เช…เชฎเซ‡ เชนเซ‡เชฒเซเชฎ เชฐเซ€เชฒเซ€เชเชจเซ‡ เชธเซเช•เซ‡เชจ เช•เชฐเชตเชพเชจเซ€ เช…เชจเซ‡ เชคเซเชฏเชพเช‚ เชจเชตเซ€เชจเชคเชฎ เช›เชฌเซ€เช“ เชชเชธเช‚เชฆ เช•เชฐเชตเชพเชจเซ€ เชชเชฃ เชฏเซ‹เชœเชจเชพ เชฌเชจเชพเชตเซ€เช เช›เซ€เช.

... เช…เชจเซ‡ เช† เชธเชฎเซ‚เชนเชฎเชพเช‚เชฅเซ€ เชตเซเชนเชพเช‡เชŸเชฒเชฟเชธเซเชŸ เชฌเชจเชพเชตเซ‹ - เช›เชฌเซ€เช“เชจเซ€ เชธเซ‚เชšเชฟ เชœเซ‡ เช…เชฎเซ‡ เช•เชพเชขเซ€ เชจเชพเช–เซ€เชถเซเช‚ เชจเชนเซ€เช‚. เช…เชฎเซ‡ เชฌเชพเช•เซ€เชจเซเช‚ เชฌเชงเซเช‚ เชธเชพเชซ เช•เชฐเซ€เช เช›เซ€เช, เชคเซเชฏเชพเชฐเชฌเชพเชฆ เช…เชฎเซ‡ เช…เชจเชพเชฅ เชธเซเชŸเซ‡เชœเชจเซ€ เช›เชฌเซ€เช“ เชถเซ‹เชงเซ€เช เช›เซ€เช เช…เชจเซ‡ เชคเซ‡เชจเซ‡ เชชเชฃ เช•เชพเชขเซ€ เชจเชพเช–เซ€เช เช›เซ€เช.

เชคเซˆเชจเชพเชค เชธเซเชŸเซ‡เชœ

เชตเชฟเชถเซเชตเชธเชจเซ€เชฏ เช˜เซ‹เชทเชฃเชพเชคเซเชฎเช•เชคเชพ

เชกเชฟเชชเซเชฒเซ‹เชฏเชฎเซ‡เชจเซเชŸเชฎเชพเช‚ เชนเซเช‚ เชœเซ‡ เชชเซเชฐเชฅเชฎ เชฎเซเชฆเซเชฆเชพ เชชเชฐ เชงเซเชฏเชพเชจ เชฆเซ‹เชฐเชตเชพ เชฎเชพเช‚เช—เซ เช›เซเช‚ เชคเซ‡ เช›เซ‡ เช…เชชเชกเซ‡เชŸ เช•เชฐเซ‡เชฒ เชธเช‚เชธเชพเชงเชจ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจเชจเซเช‚ เชฐเซ‹เชฒเช†เช‰เชŸ, เชœเซ‡ เช˜เซ‹เชทเชฃเชพเชคเซเชฎเช• เชฐเซ€เชคเซ‡ เชœเชพเชนเซ‡เชฐ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เช›เซ‡. เช•เซเชฌเชฐเชจเซ‡เชŸเซ€เชธ เชธเช‚เชธเชพเชงเชจเซ‹เชจเซเช‚ เชตเชฐเซเชฃเชจ เช•เชฐเชคเซ‹ เชฎเซ‚เชณ YAML เชฆเชธเซเชคเชพเชตเซ‡เชœ เชนเช‚เชฎเซ‡เชถเชพ เช•เซเชฒเชธเซเชŸเชฐเชฎเชพเช‚ เชตเชพเชธเซเชคเชตเชฎเชพเช‚ เชšเชพเชฒเชคเชพ เชชเชฐเชฟเชฃเชพเชฎเชฅเซ€ เช˜เชฃเซ‹ เช…เชฒเช— เชนเซ‹เชฏ เช›เซ‡. เช•เชพเชฐเชฃ เช•เซ‡ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจเชฎเชพเช‚ เช‰เชฎเซ‡เชฐเซ‡ เช›เซ‡:

  1. เช“เชณเช–เช•เชฐเซเชคเชพ;
  2. เชธเซ‡เชตเชพ เชฎเชพเชนเชฟเชคเซ€;
  3. เช˜เชฃเชพ เชฎเซ‚เชณเชญเซ‚เชค เชฎเซ‚เชฒเซเชฏเซ‹;
  4. เชตเชฐเซเชคเชฎเชพเชจ เชธเซเชฅเชฟเชคเชฟ เชธเชพเชฅเซ‡ เชตเชฟเชญเชพเช—;
  5. เชเชกเชฎเชฟเชถเชจ เชตเซ‡เชฌเชนเซ‚เช•เชจเชพ เชญเชพเช— เชฐเซ‚เชชเซ‡ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡เชฒ เชซเซ‡เชฐเชซเชพเชฐเซ‹;
  6. เชตเชฟเชตเชฟเชง เชจเชฟเชฏเช‚เชคเซเชฐเช•เซ‹ (เช…เชจเซ‡ เชถเซ‡เชกเซเชฏเซ‚เชฒเชฐ) เชจเชพ เช•เชพเชฐเซเชฏเชจเซเช‚ เชชเชฐเชฟเชฃเชพเชฎ.

เชคเซ‡เชฅเซ€, เชœเซเชฏเชพเชฐเซ‡ เชจเชตเซเช‚ เชธเช‚เชธเชพเชงเชจ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจ เชฆเซ‡เช–เชพเชฏ เช›เซ‡ (เชจเชตเชพ), เช…เชฎเซ‡ เชคเซ‡เชจเซ€ เชธเชพเชฅเซ‡ เชตเชฐเซเชคเชฎเชพเชจ, "เชœเซ€เชตเช‚เชค" เช—เซ‹เช เชตเชฃเซ€เชจเซ‡ เชซเช•เซเชค เชฒเชˆ เช…เชจเซ‡ เช“เชตเชฐเชฐเชพเชˆเชŸ เช•เชฐเซ€ เชถเช•เชคเชพ เชจเชฅเซ€ (เชฐเชนเซ‡เชตเชพ). เช† เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช†เชชเชฃเซ‡ เชธเชฐเช–เชพเชฎเชฃเซ€ เช•เชฐเชตเซ€ เชชเชกเชถเซ‡ เชจเชตเชพ เช›เซ‡เชฒเซเชฒเซ€ เชฒเชพเช—เซ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจ เชธเชพเชฅเซ‡ (เช›เซ‡เชฒเซเชฒเซ‡ เชฒเชพเช—เซ) เช…เชจเซ‡ เชคเซ‡เชจเชพ เชชเชฐ เชฐเซ‹เชฒ เช•เชฐเซ‹ เชฐเชนเซ‡เชตเชพ เชชเซเชฐเชพเชชเซเชค เชชเซ‡เชš.

เช† เช…เชญเชฟเช—เชฎ เช•เชนเซ‡เชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ 2-เชตเซ‡ เชฎเชฐเซเชœ. เชคเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เชฅเชพเชฏ เช›เซ‡, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชนเซ‡เชฒเซเชฎเชฎเชพเช‚.

เชคเซเชฏเชพเช‚ เชชเชฃ เช›เซ‡ 3-เชตเซ‡ เชฎเชฐเซเชœ, เชœเซ‡ เชคเซ‡เชฎเชพเช‚ เชญเชฟเชจเซเชจ เช›เซ‡:

  • เชธเชฐเช–เชพเชฎเชฃเซ€ เช›เซ‡เชฒเซเชฒเซ‡ เชฒเชพเช—เซ ะธ เชจเชตเชพ, เช…เชฎเซ‡ เชถเซเช‚ เช•เชพเชขเซ€ เชจเชพเช–เซเชฏเซเช‚ เชนเชคเซเช‚ เชคเซ‡ เชœเซ‹เชˆเช เช›เซ€เช;
  • เชธเชฐเช–เชพเชฎเชฃเซ€ เชจเชตเชพ ะธ เชฐเชนเซ‡เชตเชพ, เช…เชฎเซ‡ เชœเซ‹เชˆเช เช›เซ€เช เช•เซ‡ เชถเซเช‚ เช‰เชฎเซ‡เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เช›เซ‡ เช…เชฅเชตเชพ เชฌเชฆเชฒเชพเชฏเซเช‚ เช›เซ‡;
  • เชธเชฐเชตเชพเชณเซ‹ เชชเซ‡เชš เชฒเชพเช—เซ เชชเชกเซ‡ เช›เซ‡ เชฐเชนเซ‡เชตเชพ.

เช…เชฎเซ‡ เชนเซ‡เชฒเซเชฎ เชธเชพเชฅเซ‡ 1000+ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเซ‹ เชœเชฎเชพเชตเซ€เช เช›เซ€เช, เชคเซ‡เชฅเซ€ เช…เชฎเซ‡ เชตเชพเชธเซเชคเชตเชฎเชพเช‚ 2-เชตเซ‡ เชฎเชฐเซเชœ เชธเชพเชฅเซ‡ เชœเซ€เชตเซ€เช เช›เซ€เช. เชœเซ‹ เช•เซ‡, เชคเซ‡เชฎเชพเช‚ เช…เชธเช‚เช–เซเชฏ เชธเชฎเชธเซเชฏเชพเช“ เช›เซ‡ เชœเซ‡ เช…เชฎเซ‡ เช…เชฎเชพเชฐเชพ เชชเซ‡เชš เชธเชพเชฅเซ‡ เช‰เช•เซ‡เชฒเซ€ เช›เซ‡, เชœเซ‡ เชนเซ‡เชฒเซเชฎเชจเซ‡ เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡ เช•เชพเชฎ เช•เชฐเชตเชพเชฎเชพเช‚ เชฎเชฆเชฆ เช•เชฐเซ‡ เช›เซ‡.

เชตเชพเชธเซเชคเชตเชฟเช• เชฐเซ‹เชฒเช†เช‰เชŸ เชธเซเชฅเชฟเชคเชฟ

เช…เชฎเชพเชฐเซ€ CI เชธเชฟเชธเซเชŸเชฎ เช†เช—เชฒเซ€ เช‡เชตเซ‡เชจเซเชŸเชจเชพ เช†เชงเชพเชฐเซ‡ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชฎเชพเชŸเซ‡ เชจเชตเซเช‚ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจ เชœเชจเชฐเซ‡เชŸ เช•เชฐเซ‡ เชคเซ‡ เชชเช›เซ€, เชคเซ‡ เชคเซ‡เชจเซ‡ เช‰เชชเชฏเซ‹เช— เชฎเชพเชŸเซ‡ เชŸเซเชฐเชพเชจเซเชธเชฎเชฟเชŸ เช•เชฐเซ‡ เช›เซ‡ (เชฒเชพเช—เซ เช•เชฐเซ‹) เช•เซเชฒเชธเซเชŸเชฐเชฎเชพเช‚ - เชนเซ‡เชฒเซเชฎเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เช…เชฅเชตเชพ kubectl apply. เช†เช—เชณ, เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เชตเชฐเซเชฃเชตเซ‡เชฒ N-เชตเซ‡ เชฎเชฐเซเชœ เชฅเชพเชฏ เช›เซ‡, เชœเซ‡เชจเชพ เชฎเชพเชŸเซ‡ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ API CI เชธเชฟเชธเซเชŸเชฎเชจเซ‡ เช…เชจเซ‡ เชคเซ‡เชจเชพ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเชจเซ‡ เชฎเช‚เชœเซ‚เชฐ เชฐเซ€เชคเซ‡ เชชเซเชฐเชคเชฟเชธเชพเชฆ เช†เชชเซ‡ เช›เซ‡.

werf - เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธเชฎเชพเช‚ CI/CD เชฎเชพเชŸเซ‡ เช…เชฎเชพเชฐเซเช‚ เชธเชพเชงเชจ (เชตเชฟเชนเช‚เช—เชพเชตเชฒเซ‹เช•เชจ เช…เชจเซ‡ เชตเชฟเชกเชฟเชฏเซ‹ เชฐเชฟเชชเซ‹เชฐเซเชŸ)

เชœเซ‹ เช•เซ‡, เชคเซเชฏเชพเช‚ เชเช• เชฎเซ‹เชŸเซ€ เชธเชฎเชธเซเชฏเชพ เช›เซ‡: เช›เซ‡เชตเชŸเซ‡ เชธเชซเชณ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเชจเซ‹ เช…เชฐเซเชฅ เชธเชซเชณ เชฐเซ‹เชฒเช†เช‰เชŸ เชจเชฅเซ€. เชœเซ‹ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชธเชฎเชœเซ‡ เช›เซ‡ เช•เซ‡ เช•เชฏเชพ เชซเซ‡เชฐเชซเชพเชฐเซ‹ เชฒเชพเช—เซ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ เช…เชจเซ‡ เชคเซ‡เชจเซ‡ เชฒเชพเช—เซ เช•เชฐเซ‡ เช›เซ‡, เชคเซ‹ เช…เชฎเซ‡ เชนเชœเซ เชชเชฃ เชœเชพเชฃเชคเชพ เชจเชฅเซ€ เช•เซ‡ เชชเชฐเชฟเชฃเชพเชฎ เชถเซเช‚ เช†เชตเชถเซ‡. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชซเซเชฐเชจเซเชŸเชเชจเซเชกเชฎเชพเช‚ เชชเซ‹เชกเซเชธเชจเซ‡ เช…เชชเชกเซ‡เชŸ เช•เชฐเชตเซเช‚ เช…เชจเซ‡ เชชเซเชจเชƒเชชเซเชฐเชพเชฐเช‚เชญ เช•เชฐเชตเซเช‚ เชธเชซเชณ เชฅเชˆ เชถเช•เซ‡ เช›เซ‡, เชชเชฐเช‚เชคเซ เชฌเซ‡เช•เชเชจเซเชกเชฎเชพเช‚ เชจเชนเซ€เช‚, เช…เชจเซ‡ เช…เชฎเชจเซ‡ เชšเชพเชฒเซ€ เชฐเชนเซ‡เชฒ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชˆเชฎเซ‡เชœเซ€เชธเชจเชพ เชตเชฟเชตเชฟเชง เชธเช‚เชธเซเช•เชฐเชฃเซ‹ เชฎเชณเชถเซ‡.

เชฌเชงเซเช‚ เชฏเซ‹เช—เซเชฏ เชฐเซ€เชคเซ‡ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เช† เชธเซเช•เซ€เชฎเชจเซ‡ เชตเชงเชพเชฐเชพเชจเซ€ เชฒเชฟเช‚เช•เชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ - เชเช• เชตเชฟเชถเซ‡เชท เชŸเซเชฐเซ‡เช•เชฐ เชœเซ‡ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ API เชชเชพเชธเซ‡เชฅเซ€ เชธเซเชฅเชฟเชคเชฟเชจเซ€ เชฎเชพเชนเชฟเชคเซ€ เชฎเซ‡เชณเชตเชถเซ‡ เช…เชจเซ‡ เชตเชธเซเชคเซเช“เชจเซ€ เชตเชพเชธเซเชคเชตเชฟเช• เชธเซเชฅเชฟเชคเชฟเชจเชพ เชตเชงเซ เชตเชฟเชถเซเชฒเซ‡เชทเชฃ เชฎเชพเชŸเซ‡ เชคเซ‡เชจเซ‡ เชชเซเชฐเชธเชพเชฐเชฟเชค เช•เชฐเชถเซ‡. เช…เชฎเซ‡ เช—เซ‹เชฎเชพเช‚ เชเช• เช“เชชเชจ เชธเซ‹เชฐเซเชธ เชฒเชพเช‡เชฌเซเชฐเซ‡เชฐเซ€ เชฌเชจเชพเชตเซ€ เช›เซ‡ - เช•เซเชฏเซเชฌเชกเซ‹เช— (เชคเซ‡เชจเซ€ เชœเชพเชนเซ‡เชฐเชพเชค เชœเซเช“ เช…เชนเซ€เช‚), เชœเซ‡ เช† เชธเชฎเชธเซเชฏเชพเชจเซ‡ เชนเชฒ เช•เชฐเซ‡ เช›เซ‡ เช…เชจเซ‡ werf เชฎเชพเช‚ เชฌเชจเซ‡เชฒ เช›เซ‡.

werf เชธเซเชคเชฐ เชชเชฐ เช† เชŸเซเชฐเซ‡เช•เชฐเชจเซ€ เชตเชฐเซเชคเชฃเซ‚เช• เชเชจเซ‹เชŸเซ‡เชถเชจเซเชธเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เช—เซ‹เช เชตเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เชœเซ‡ เชกเชฟเชชเซเชฒเซ‹เชฏเชฎเซ‡เชจเซเชŸเซเชธ เช…เชฅเชตเชพ เชธเซเชŸเซ‡เชŸเชซเซเชฒเชธเซ‡เชŸเซเชธ เชชเชฐ เชฎเซ‚เช•เชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เชฎเซเช–เซเชฏ เชŸเซ€เช•เชพ - fail-mode - เชจเซ€เชšเซ‡เชจเชพ เช…เชฐเซเชฅเซ‹ เชธเชฎเชœเซ‡ เช›เซ‡:

  • IgnoreAndContinueDeployProcess โ€” เช…เชฎเซ‡ เช† เช˜เชŸเช•เชจเซ‡ เชฐเซ‹เชฒเช†เช‰เชŸ เช•เชฐเชตเชพเชจเซ€ เชธเชฎเชธเซเชฏเชพเช“เชจเซ‡ เช…เชตเช—เชฃเซ€เช เช›เซ€เช เช…เชจเซ‡ เชœเชฎเชพเชตเชŸ เชšเชพเชฒเซ เชฐเชพเช–เซ€เช เช›เซ€เช;
  • FailWholeDeployProcessImmediately โ€” เช† เช˜เชŸเช•เชฎเชพเช‚ เชญเซ‚เชฒ เชœเชฎเชพเชตเชŸ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเชจเซ‡ เช…เชŸเช•เชพเชตเซ‡ เช›เซ‡;
  • HopeUntilEndOfDeployProcess - เช…เชฎเซ‡ เช†เชถเชพ เชฐเชพเช–เซ€เช เช›เซ€เช เช•เซ‡ เช† เช˜เชŸเช• เชœเชฎเชพเชตเชŸเชจเชพ เช…เช‚เชค เชธเซเชงเซ€เชฎเชพเช‚ เช•เชพเชฎ เช•เชฐเชถเซ‡.

เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชธเช‚เชธเชพเชงเชจเซ‹ เช…เชจเซ‡ เชŸเซ€เช•เชพ เชฎเซ‚เชฒเซเชฏเซ‹เชจเซเช‚ เช† เชธเช‚เชฏเซ‹เชœเชจ fail-mode:

werf - เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธเชฎเชพเช‚ CI/CD เชฎเชพเชŸเซ‡ เช…เชฎเชพเชฐเซเช‚ เชธเชพเชงเชจ (เชตเชฟเชนเช‚เช—เชพเชตเชฒเซ‹เช•เชจ เช…เชจเซ‡ เชตเชฟเชกเชฟเชฏเซ‹ เชฐเชฟเชชเซ‹เชฐเซเชŸ)

เชœเซเชฏเชพเชฐเซ‡ เช…เชฎเซ‡ เชชเซเชฐเชฅเชฎ เชตเช–เชค เชœเชฎเชพเชตเชŸ เช•เชฐเซ€เช เช›เซ€เช, เชคเซเชฏเชพเชฐเซ‡ เชกเซ‡เชŸเชพเชฌเซ‡เช (MongoDB) เชนเชœเซ€ เชคเซˆเชฏเชพเชฐ เชจ เชนเซ‹เชˆ เชถเช•เซ‡ - เชœเชฎเชพเชตเชŸ เชจเชฟเชทเซเชซเชณ เชœเชถเซ‡. เชชเชฐเช‚เชคเซ เชคเชฎเซ‡ เชคเซ‡ เชถเชฐเซ‚ เชฅเชตเชพเชจเซ€ เช•เซเชทเชฃเชจเซ€ เชฐเชพเชน เชœเซ‹เชˆ เชถเช•เซ‹ เช›เซ‹, เช…เชจเซ‡ เชœเชฎเชพเชตเชŸ เชนเชœเซ เชชเชฃ เชฅเชถเซ‡.

เชตเชฐเซเชซเชฎเชพเช‚ เช•เซเชฌเซ‡เชกเซ‹เช— เชฎเชพเชŸเซ‡ เชตเชงเซ เชฌเซ‡ เชŸเซ€เช•เชพเช“ เช›เซ‡:

  • failures-allowed-per-replica - เชฆเชฐเซ‡เช• เชชเซเชฐเชคเชฟเช•เซƒเชคเชฟ เชฎเชพเชŸเซ‡ เชฎเช‚เชœเซ‚เชฐ เชซเซ‹เชฒเซเชธเชจเซ€ เชธเช‚เช–เซเชฏเชพ;
  • show-logs-until โ€” เชคเซ‡ เช•เซเชทเชฃเชจเซ‡ เชจเชฟเชฏเช‚เชคเซเชฐเชฟเชค เช•เชฐเซ‡ เช›เซ‡ เชœเซเชฏเชพเช‚ เชธเซเชงเซ€ werf เชคเชฎเชพเชฎ เชฐเซ‹เชฒเช†เช‰เชŸ เชชเซ‹เชกเซเชธเชฎเชพเช‚เชฅเซ€ เชฒเซ‹เช— (stdout เชฎเชพเช‚) เชฌเชคเชพเชตเซ‡ เช›เซ‡. เชฎเซ‚เชณเชญเซ‚เชค เช›เซ‡ PodIsReady (เชœเซเชฏเชพเชฐเซ‡ เชŸเซเชฐเชพเชซเชฟเช• เชชเซ‹เชก เชชเชฐ เช†เชตเชตเชพเชจเซเช‚ เชถเชฐเซ‚ เชฅเชพเชฏ เชคเซเชฏเชพเชฐเซ‡ เช†เชชเชฃเซ‡ เช•เชฆเชพเชš เชจ เชœเซ‹เชˆเชคเชพ เชนเซ‹เชฏ เชคเซ‡เชตเชพ เชธเช‚เชฆเซ‡เชถเชพเช“เชจเซ‡ เช…เชตเช—เชฃเชตเชพ), เชชเชฐเช‚เชคเซ เชฎเซ‚เชฒเซเชฏเซ‹ เชชเชฃ เชฎเชพเชจเซเชฏ เช›เซ‡: ControllerIsReady ะธ EndOfDeploy.

เชœเชฎเชพเชตเชŸเชฎเชพเช‚เชฅเซ€ เช†เชชเชฃเซ‡ เชฌเซ€เชœเซเช‚ เชถเซเช‚ เชœเซ‹เชˆเช เช›เซ‡?

เชชเชนเซ‡เชฒเชพเชฅเซ€ เชตเชฐเซเชฃเชตเซ‡เชฒ เชฌเซ‡ เชฎเซเชฆเซเชฆเชพเช“ เช‰เชชเชฐเชพเช‚เชค, เช…เชฎเซ‡ เช‡เชšเซเช›เซ€เช เช›เซ€เช:

  • เชœเซ‹เชตเชพ เชฎเชพเชŸเซ‡ เชฒเซ‹เช— - เช…เชจเซ‡ เชซเช•เซเชค เชœเชฐเซ‚เชฐเซ€ เชœ, เช…เชจเซ‡ เชธเชณเช‚เช— เชฌเชงเซเช‚ เชœ เชจเชนเซ€เช‚;
  • เชŸเซเชฐเซ‡เช• เชชเซเชฐเช—เชคเชฟ, เช•เชพเชฐเชฃ เช•เซ‡ เชœเซ‹ เชจเซ‹เช•เชฐเซ€ เชฅเซ‹เชกเซ€ เชฎเชฟเชจเชฟเชŸเซ‹ เชฎเชพเชŸเซ‡ "เชšเซเชชเชšเชพเชช" เช…เชŸเช•เซ€ เชœเชพเชฏ, เชคเซ‹ เชคเซ‡ เชธเชฎเชœเชตเซเช‚ เชฎเชนเชคเซเชตเชชเซ‚เชฐเซเชฃ เช›เซ‡ เช•เซ‡ เชคเซเชฏเชพเช‚ เชถเซเช‚ เชฅเชˆ เชฐเชนเซเชฏเซเช‚ เช›เซ‡;
  • เชชเชพเชธเซ‡ เช›เซ‡ เช†เชชเซ‹เช†เชช เชฐเซ‹เชฒเชฌเซ‡เช• เชœเซ‹ เช•เช‚เชˆเช• เช–เซ‹เชŸเซเช‚ เชฅเชฏเซเช‚ เชนเซ‹เชฏ (เช…เชจเซ‡ เชคเซ‡เชฅเซ€ เชœเชฎเชพเชตเชŸเชจเซ€ เชตเชพเชธเซเชคเชตเชฟเช• เชธเซเชฅเชฟเชคเชฟ เชœเชพเชฃเชตเซ€ เชฎเชนเชคเซเชตเชชเซ‚เชฐเซเชฃ เช›เซ‡). เชฐเซ‹เชฒเช†เช‰เชŸ เช…เชฃเซ เชนเซ‹เชตเซเช‚ เช†เชตเชถเซเชฏเช• เช›เซ‡: เช•เชพเช‚ เชคเซ‹ เชคเซ‡ เช…เช‚เชค เชธเซเชงเซ€ เชœเชพเชฏ เช›เซ‡, เช…เชฅเชตเชพ เชฌเชงเซเช‚ เชคเซ‡เชจเซ€ เชชเชพเช›เชฒเซ€ เชธเซเชฅเชฟเชคเชฟเชฎเชพเช‚ เชชเชพเช›เซเช‚ เช†เชตเซ‡ เช›เซ‡.

เชชเชฐเชฟเชฃเชพเชฎเซ‹

เชเช• เช•เช‚เชชเชจเซ€ เชคเชฐเซ€เช•เซ‡ เช…เชฎเชพเชฐเชพ เชฎเชพเชŸเซ‡, เชกเชฟเชฒเชฟเชตเชฐเซ€เชจเชพ เชตเชฟเชตเชฟเชง เชคเชฌเช•เซเช•เชพ (เชฌเชฟเชฒเซเชก, เชชเซเชฐเช•เชพเชถเชฟเชค, เชœเชฎเชพเชตเชŸ) เชชเชฐ เชตเชฐเซเชฃเชตเซ‡เชฒ เชคเชฎเชพเชฎ เช˜เซ‹เช‚เช˜เชพเชŸเชจเซ‡ เช…เชฎเชฒเชฎเชพเช‚ เชฎเซ‚เช•เชตเชพ เชฎเชพเชŸเซ‡, เชเช• CI เชธเชฟเชธเซเชŸเชฎ เช…เชจเซ‡ เช‰เชชเชฏเซ‹เช—เชฟเชคเชพ เชชเซ‚เชฐเชคเซ€ เช›เซ‡. เชตเชฐเซเชซ.

เชจเชฟเชทเซเช•เชฐเซเชทเชจเซ‡ เชฌเชฆเชฒเซ‡:

werf - เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธเชฎเชพเช‚ CI/CD เชฎเชพเชŸเซ‡ เช…เชฎเชพเชฐเซเช‚ เชธเชพเชงเชจ (เชตเชฟเชนเช‚เช—เชพเชตเชฒเซ‹เช•เชจ เช…เชจเซ‡ เชตเชฟเชกเชฟเชฏเซ‹ เชฐเชฟเชชเซ‹เชฐเซเชŸ)

werf เชจเซ€ เชฎเชฆเชฆเชฅเซ€, เช…เชฎเซ‡ DevOps เช‡เชœเชจเซ‡เชฐเซ‹ เชฎเชพเชŸเซ‡ เชฎเซ‹เชŸเซ€ เชธเช‚เช–เซเชฏเชพเชฎเชพเช‚ เชธเชฎเชธเซเชฏเชพเช“ เช‰เช•เซ‡เชฒเชตเชพเชฎเชพเช‚ เชธเชพเชฐเซ€ เชชเซเชฐเช—เชคเชฟ เช•เชฐเซ€ เช›เซ‡ เช…เชจเซ‡ เชœเซ‹ เชตเซเชฏเชพเชชเช• เชธเชฎเซเชฆเชพเชฏ เช“เช›เชพเชฎเชพเช‚ เช“เช›เชพ เช† เช‰เชชเชฏเซ‹เช—เชฟเชคเชพเชจเซ‡ เช•เชพเชฐเซเชฏเชฎเชพเช‚ เช…เชœเชฎเชพเชตเชถเซ‡ เชคเซ‹ เช…เชฎเชจเซ‡ เช†เชจเช‚เชฆ เชฅเชถเซ‡. เชเช•เชธเชพเชฅเซ‡ เชธเชพเชฐเซเช‚ เชชเชฐเชฟเชฃเชพเชฎ เชชเซเชฐเชพเชชเซเชค เช•เชฐเชตเซเช‚ เชธเชฐเชณ เชฌเชจเชถเซ‡.

เชตเชฟเชกเชฟเช“เช เช…เชจเซ‡ เชธเซเชฒเชพเช‡เชกเซเชธ

เชชเซเชฐเชฆเชฐเซเชถเชจเชฎเชพเช‚เชฅเซ€ เชตเชฟเชกเชฟเช“ (~47 เชฎเชฟเชจเชฟเชŸ):

เช…เชนเซ‡เชตเชพเชฒเชจเซ€ เชฐเชœเซ‚เช†เชค:

PS

เช…เชฎเชพเชฐเชพ เชฌเซเชฒเซ‹เช— เชชเชฐ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชตเชฟเชถเซ‡เชจเชพ เช…เชจเซเชฏ เช…เชนเซ‡เชตเชพเชฒเซ‹:

เชธเซ‹เชฐเซเชธ: www.habr.com

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹