werf - เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเดฟเดฒเต† CI / CD-เดฏเตเด•เตเด•เตเดณเตเดณ เดžเด™เตเด™เดณเตเดŸเต† เด‰เดชเด•เดฐเดฃเด‚ (เด…เดตเดฒเต‹เด•เดจเดตเตเด‚ เดตเต€เดกเดฟเดฏเต‹ เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเตเด‚)

เดฎเต†เดฏเต 27-เดจเต เดซเต†เดธเตเดฑเตเดฑเดฟเดตเดฒเดฟเดจเตเดฑเต† เดญเดพเด—เดฎเดพเดฏเดฟ เดจเดŸเดจเตเดจ DevOpsConf 2019 เด•เต‹เตบเดซเดฑเตปเดธเดฟเดจเตเดฑเต† เดชเตเดฐเดงเดพเดจ เดนเดพเดณเดฟเตฝ RIT++ 2019, โ€œเดคเตเดŸเตผเดšเตเดšเดฏเดพเดฏ เดกเต†เดฒเดฟเดตเดฑเดฟโ€ เดตเดฟเดญเดพเด—เดคเตเดคเดฟเดจเตเดฑเต† เดญเดพเด—เดฎเดพเดฏเดฟ, เด’เดฐเต เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเต เดจเตฝเด•เดฟ โ€œเดตเต‡เตผเดซเต - เด•เตเดฌเต†เตผเดจเต†เดฑเตเดฑเดธเดฟเดฒเต† เดธเดฟเด/เดธเดฟเดกเดฟเด•เตเด•เตเดณเตเดณ เดžเด™เตเด™เดณเตเดŸเต† เด‰เดชเด•เดฐเดฃเด‚โ€. เด…เดคเต เด…เดตเดฐเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเดพเดฃเต เดธเด‚เดธเดพเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต Kubernetes-เดฒเต‡เด•เตเด•เต เดตเดฟเดจเตเดฏเดธเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ เดŽเดฒเตเดฒเดพเดตเดฐเตเด‚ เดจเต‡เดฐเดฟเดŸเตเดจเตเดจ เดชเตเดฐเดถเตเดจเด™เตเด™เดณเตเด‚ เดตเต†เดฒเตเดฒเตเดตเดฟเดณเดฟเด•เดณเตเด‚, เด…เดคเตเดชเต‹เดฒเต† เดชเต†เดŸเตเดŸเต†เดจเตเดจเต เดถเตเดฐเดฆเตเดงเดฏเดฟเตฝเดชเตเดชเต†เดŸเดพเดคเตเดค เดธเต‚เด•เตเดทเตเดฎเดคเด•เดณเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเด‚. เดธเดพเดงเตเดฏเดฎเดพเดฏ เดชเดฐเดฟเดนเดพเดฐเด™เตเด™เตพ เดตเดฟเดถเด•เดฒเดจเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดฒเต‚เดŸเต†, เด’เดฐเต เด“เดชเตเดชเตบ เดธเต‹เดดเตเดธเต เดŸเต‚เดณเดฟเตฝ เด‡เดคเต เดŽเด™เตเด™เดจเต† เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเดจเตเดจเตเดตเต†เดจเตเดจเต เดžเด™เตเด™เตพ เด•เดพเดฃเดฟเด•เตเด•เตเดจเตเดจเต เดตเต†เตผเดซเต.

เด…เดตเดคเดฐเดฃเดคเตเดคเดฟเดจเต เดถเต‡เดทเด‚, เดžเด™เตเด™เดณเตเดŸเต† เดฏเต‚เดŸเตเดŸเดฟเดฒเดฟเดฑเตเดฑเดฟ (เดฎเตเดฎเตเดชเต เด’เดฐเต เดกเดพเดชเตเดชเต เดŽเดจเตเดจเดฑเดฟเดฏเดชเตเดชเต†เดŸเตเดŸเดฟเดฐเตเดจเตเดจเต) เดšเดฐเดฟเดคเตเดฐเดชเดฐเดฎเดพเดฏ เด’เดฐเต เดจเดพเดดเดฟเด•เด•เตเด•เดฒเตเดฒเดฟเตฝ เดŽเดคเตเดคเดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต GitHub-เตฝ 1000 เดจเด•เตเดทเดคเตเดฐเด™เตเด™เตพ - เด…เดคเดฟเดจเตเดฑเต† เดตเตผเดฆเตเดงเดฟเดšเตเดšเตเดตเดฐเตเดจเตเดจ เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เดณเตเดŸเต† เด•เดฎเตเดฎเตเดฏเต‚เดฃเดฟเดฑเตเดฑเดฟ เดจเดฟเดฐเดตเดงเดฟ DevOps เดŽเดžเตเดšเดฟเดจเต€เดฏเตผเดฎเดพเตผเด•เตเด•เตเด‚ เดœเต€เดตเดฟเดคเด‚ เดŽเดณเตเดชเตเดชเดฎเดพเด•เตเด•เตเดฎเต†เดจเตเดจเต เดžเด™เตเด™เตพ เดชเตเดฐเดคเต€เด•เตเดทเดฟเด•เตเด•เตเดจเตเดจเต.

werf - เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเดฟเดฒเต† CI / CD-เดฏเตเด•เตเด•เตเดณเตเดณ เดžเด™เตเด™เดณเตเดŸเต† เด‰เดชเด•เดฐเดฃเด‚ (เด…เดตเดฒเต‹เด•เดจเดตเตเด‚ เดตเต€เดกเดฟเดฏเต‹ เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเตเด‚)

เด…เดคเดฟเดจเดพเตฝ, เดจเดฎเตเด•เตเด•เต เดชเดฐเดฟเดšเดฏเดชเตเดชเต†เดŸเตเดคเตเดคเดพเด‚ เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเดฟเดจเตเดฑเต† เดตเต€เดกเดฟเดฏเต‹ (~47 เดฎเดฟเดจเดฟเดฑเตเดฑเต, เดฒเต‡เด–เดจเดคเตเดคเต‡เด•เตเด•เดพเตพ เด•เต‚เดŸเตเดคเตฝ เดตเดฟเดœเตเดžเดพเดจเดชเตเดฐเดฆเด‚) เด•เต‚เดŸเดพเดคเต† เด…เดคเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดชเตเดฐเดงเดพเดจ เดŽเด•เตเดธเตเดŸเตเดฐเดพเด•เตเดฑเตเดฑเตเด‚ เดŸเต†เด•เตเดธเตเดฑเตเดฑเต เดฐเต‚เดชเดคเตเดคเดฟเตฝ. เดชเต‹เด•เต‚!

เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเดฟเดจเต เด•เต‹เดกเต เดกเต†เดฒเดฟเดตเตผ เดšเต†เดฏเตเดฏเตเดจเตเดจเต

เดธเด‚เดธเดพเดฐเด‚ เด‡เดจเดฟ เดตเต†เตผเดซเดฟเดจเต† เด•เตเดฑเดฟเดšเตเดšเดฒเตเดฒ, เด•เตเดฌเต†เตผเดจเต†เดฑเตเดฑเดธเดฟเดฒเต† CI/CD เดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚, เดžเด™เตเด™เดณเตเดŸเต† เดธเต‹เดซเตเดฑเตเดฑเตโ€Œเดตเต†เดฏเตผ เดกเต‹เด•เตเด•เตผ เด•เดฃเตเดŸเต†เดฏเตโ€Œเดจเดฑเตเด•เดณเดฟเตฝ เดชเดพเด•เตเด•เต‡เดœเต เดšเต†เดฏเตโ€Œเดคเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเตเดตเต†เดจเตเดจเต เดธเต‚เดšเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต. (เดžเดพเตป เด‡เดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เดธเด‚เดธเดพเดฐเดฟเดšเตเดšเต 2016 เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเต), เด‰เตฝเดชเตเดชเดพเดฆเดจเดคเตเดคเดฟเตฝ เด‡เดคเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เดพเตป K8s เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด‚ (เด‡เดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เด•เต‚เดŸเตเดคเตฝ 2017 เดตเตผเดทเด‚).

เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเดฟเตฝ เดกเต†เดฒเดฟเดตเดฑเดฟ เดŽเด™เตเด™เดจเต†เดฏเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚?

  • เด•เต‹เดกเตเด‚ เดจเดฟเตผเดฎเตเดฎเดพเดฃเดคเตเดคเดฟเดจเตเดณเตเดณ เดจเดฟเตผเดฆเตเดฆเต‡เดถเด™เตเด™เดณเตเด‚ เด…เดŸเด™เตเด™เดฟเดฏ เด’เดฐเต Git เดถเต‡เด–เดฐเด‚ เด‰เดฃเตเดŸเต. เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เด’เดฐเต เดกเต‹เด•เตเด•เตผ เด‡เดฎเต‡เดœเดฟเตฝ เดจเดฟเตผเดฎเตเดฎเดฟเดšเตเดšเต เดกเต‹เด•เตเด•เตผ เดฐเดœเดฟเดธเตเดŸเตเดฐเดฟเดฏเดฟเตฝ เดชเตเดฐเดธเดฟเดฆเตเดงเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเต.
  • เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดŽเด™เตเด™เดจเต† เดตเดฟเดจเตเดฏเดธเดฟเด•เตเด•เดพเดฎเต†เดจเตเดจเตเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เดพเดฎเต†เดจเตเดจเตเด‚ เด‰เดณเตเดณ เดจเดฟเตผเดฆเตเดฆเต‡เดถเด™เตเด™เดณเตเด‚ เด‡เดคเต‡ เดถเต‡เด–เดฐเดคเตเดคเดฟเตฝ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เดตเดฟเดจเตเดฏเดพเดธ เด˜เดŸเตเดŸเดคเตเดคเดฟเตฝ, เดˆ เดจเดฟเตผเดฆเตเดฆเต‡เดถเด™เตเด™เตพ เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเดฟเดฒเต‡เด•เตเด•เต เด…เดฏเดฏเตเด•เตเด•เตเดจเตเดจเต, เด…เดคเต เดฐเดœเดฟเดธเตเดŸเตเดฐเดฟเดฏเดฟเตฝ เดจเดฟเดจเตเดจเต เด†เดตเดถเตเดฏเดฎเตเดณเตเดณ เดšเดฟเดคเตเดฐเด‚ เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เตเด•เดฏเตเด‚ เด…เดคเต เดธเดฎเดพเดฐเด‚เดญเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต.
  • เด•เต‚เดŸเดพเดคเต†, เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เดŸเต†เดธเตเดฑเตเดฑเตเด•เตพ เด‰เดฃเตเดŸเต. เด’เดฐเต เดšเดฟเดคเตเดฐเด‚ เดชเตเดฐเดธเดฟเดฆเตเดงเต€เด•เดฐเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ เด‡เดตเดฏเดฟเตฝ เดšเดฟเดฒเดคเต เดšเต†เดฏเตเดฏเดพเดตเตเดจเตเดจเดคเดพเดฃเต. เดจเดฟเด™เตเด™เตพเด•เตเด•เต (เด…เดคเต‡ เดจเดฟเตผเดฆเตเดฆเต‡เดถเด™เตเด™เตพ เดชเดพเดฒเดฟเดšเตเดšเต) เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเดฑเต† เด’เดฐเต เดชเด•เตผเดชเตเดชเต (เด’เดฐเต เดชเตเดฐเดคเตเดฏเต‡เด• K8s เดจเต†เดฏเดฟเด‚เดธเตโ€Œเดชเต†เดฏเตโ€Œเดธเดฟเดฒเต‹ เดชเตเดฐเดคเตเดฏเต‡เด• เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเดฒเต‹) เดตเดฟเดจเตเดฏเดธเดฟเด•เตเด•เดพเดจเตเด‚ เด…เดตเดฟเดŸเต† เดชเดฐเดฟเดถเต‹เดงเดจเด•เตพ เดจเดŸเดคเตเดคเดพเดจเตเด‚ เด•เดดเดฟเดฏเตเด‚.
  • เด…เดตเดธเดพเดจเดฎเดพเดฏเดฟ, เดจเดฟเด™เตเด™เตพเด•เตเด•เต Git-เตฝ เดจเดฟเดจเตเดจเต เด‡เดตเดจเตเดฑเตเด•เตพ เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจ (เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดฌเดŸเตเดŸเตบ เด•เตเดฒเดฟเด•เตเด•เตเด•เตพ) เดŽเดฒเตเดฒเดพ เดจเดฟเดฏเตเด•เตเดค เด˜เดŸเตเดŸเด™เตเด™เดณเดฟเดฒเต‡เด•เตเด•เตเด‚ เดตเดฟเดณเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต CI เดธเดฟเดธเตเดฑเตเดฑเด‚ เด†เดตเดถเตเดฏเดฎเดพเดฃเต: เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเด•, เดชเตเดฐเดธเดฟเดฆเตเดงเต€เด•เดฐเดฟเด•เตเด•เตเด•, เดตเดฟเดจเตเดฏเดธเดฟเด•เตเด•เตเด•, เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเด•.

werf - เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเดฟเดฒเต† CI / CD-เดฏเตเด•เตเด•เตเดณเตเดณ เดžเด™เตเด™เดณเตเดŸเต† เด‰เดชเด•เดฐเดฃเด‚ (เด…เดตเดฒเต‹เด•เดจเดตเตเด‚ เดตเต€เดกเดฟเดฏเต‹ เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเตเด‚)

เดšเดฟเดฒ เดชเตเดฐเดงเดพเดจ เด•เตเดฑเดฟเดชเตเดชเตเด•เตพ เด‡เดตเดฟเดŸเต†เดฏเตเดฃเตเดŸเต:

  1. เด•เดพเดฐเดฃเด‚ เดจเดฎเตเด•เตเด•เต เดฎเดพเดฑเตเดฑเดฎเดฟเดฒเตเดฒเดพเดคเตเดค เด…เดŸเดฟเดธเตเดฅเดพเดจ เดธเต—เด•เดฐเตเดฏเดฎเตเดฃเตเดŸเต (เดฎเดพเดฑเตเดฑเดฎเดฟเดฒเตเดฒเดพเดคเตเดค เด…เดŸเดฟเดธเตเดฅเดพเดจ เดธเต—เด•เดฐเตเดฏเด™เตเด™เตพ), เดŽเดฒเตเดฒเดพ เด˜เดŸเตเดŸเด™เตเด™เดณเดฟเดฒเตเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เด‡เดฎเต‡เดœเต (เดธเตเดฑเตเดฑเต‡เดœเดฟเด‚เด—เต, เดชเตเดฐเตŠเดกเด•เตเดทเตป เดฎเตเดคเดฒเดพเดฏเดต), เด’เดจเตเดจเต เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเดฟเด•เตเด•เดฃเด‚. เดžเดพเตป เด‡เดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เด•เต‚เดŸเตเดคเตฝ เดตเดฟเดถเดฆเดฎเดพเดฏเตเด‚ เด‰เดฆเดพเดนเดฐเดฃเด™เตเด™เดณเตเดฎเดพเดฏเดฟ เดธเด‚เดธเดพเดฐเดฟเดšเตเดšเต. เด‡เดตเดฟเดŸเต†.
  2. เด•เดพเดฐเดฃเด‚ เดžเด™เตเด™เตพ เด…เดŸเดฟเดธเตเดฅเดพเดจ เดธเต—เด•เดฐเตเดฏเด™เตเด™เดณเต† เด•เต‹เดกเต เดธเดฎเต€เดชเดจเดฎเดพเดฏเดฟ เดชเดฟเดจเตเดคเตเดŸเดฐเตเดจเตเดจเต (เดเดŽเดธเดฟ), เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เด•เต‹เดกเต, เด…เดคเต เด•เต‚เดŸเตเดŸเดฟเดšเตเดšเต‡เตผเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเด‚ เดธเดฎเดพเดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดฎเตเดณเตเดณ เดจเดฟเตผเดฆเตเดฆเต‡เดถเด™เตเด™เตพ เด†เดฏเดฟเดฐเดฟเด•เตเด•เดฃเด‚ เด•เตƒเดคเตเดฏเดฎเดพเดฏเดฟ เด’เดฐเต เดถเต‡เด–เดฐเดคเตเดคเดฟเตฝ. เด‡เดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เด•เต‚เดŸเตเดคเตฝ เดตเดฟเดตเดฐเด™เตเด™เตพเด•เตเด•เต, เด•เดพเดฃเตเด• เด…เดคเต‡ เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเต.
  3. เดกเต†เดฒเดฟเดตเดฑเดฟ เดšเต†เดฏเดฟเตป (เดกเต†เดฒเดฟเดตเดฑเดฟ) เดžเด™เตเด™เตพ เด‡เดคเต เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เด‡เดคเตเดชเต‹เดฒเต†เดฏเดพเดฃเต เด•เดพเดฃเตเดจเตเดจเดคเต: เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เด…เดธเด‚เดฌเดฟเตพ เดšเต†เดฏเตเดคเต, เดชเดฐเต€เด•เตเดทเดฟเดšเตเดšเต, เดฑเดฟเดฒเต€เดธเต เดšเต†เดฏเตเดคเต (เดฑเดฟเดฒเต€เดธเต เด˜เดŸเตเดŸเด‚) เด…เดคเตเดฐเดฏเต‡เดฏเตเดณเตเดณเต‚ - เดกเต†เดฒเดฟเดตเดฑเดฟ เดจเดŸเดจเตเดจเต. เดŽเดจเตเดจเดพเตฝ เดตเดพเดธเตเดคเดตเดคเตเดคเดฟเตฝ, เดจเดฟเด™เตเด™เตพ เด‰เดฐเตเดŸเตเดŸเดฟเดฏเดคเต เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเดฟเดจเต เดฒเดญเดฟเด•เตเด•เตเดจเตเดจเต, เด…เดฒเตเดฒ เดชเดฟเดจเตเดจเต€เดŸเต เดจเดฟเด™เตเด™เตพ เด…เดคเต เดชเตเดฐเตŠเดกเด•เตเดทเดจเดฟเดฒเต‡เด•เตเด•เต เดŽเดคเตเดคเดฟเดšเตเดšเดชเตเดชเต‹เตพ, เด…เดฏเดพเตพเด•เตเด•เต เด…เดตเดฟเดŸเต† เดชเต‹เด•เดพเตป เด•เดดเดฟเดžเตเดžเดชเตเดชเต‹เตพ เดˆ เดชเตเดฐเตŠเดกเด•เตเดทเตป เดชเตเดฐเดตเตผเดคเตเดคเดฟเดšเตเดšเต. เด…เดคเดฟเดจเดพเตฝ เดกเต†เดฒเดฟเดตเดฑเดฟ เดถเตƒเด‚เด–เดฒ เด…เดตเดธเดพเดจเดฟเด•เตเด•เตเดฎเต†เดจเตเดจเต เดžเดพเตป เดตเดฟเดถเตเดตเดธเดฟเด•เตเด•เตเดจเตเดจเต เดชเตเดฐเดตเตผเดคเตเดคเดจ เด˜เดŸเตเดŸเดคเตเดคเดฟเตฝ เดฎเดพเดคเตเดฐเด‚ (เด“เดŸเตเดŸเด‚), เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด•เต‚เดŸเตเดคเตฝ เด•เตƒเดคเตเดฏเดฎเดพเดฏเดฟ เดชเดฑเดžเตเดžเดพเตฝ, เด‰เตฝเดชเตเดชเดพเดฆเดจเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เด•เต‹เดกเต เดจเต€เด•เตเด•เด‚ เดšเต†เดฏเตเดค เดจเดฟเดฎเดฟเดทเดคเตเดคเดฟเตฝ เดชเต‹เดฒเตเด‚ (เด…เดคเต เดชเตเดคเดฟเดฏเตŠเดฐเต†เดฃเตเดฃเด‚ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดฎเดพเดฑเตเดฑเดฟเดธเตเดฅเดพเดชเดฟเด•เตเด•เตเดจเตเดจเต).

เด•เตเดฌเต†เตผเดจเต†เดฑเตเดฑเดธเดฟเดฒเต† เดฎเตเด•เดณเดฟเดฒเตเดณเตเดณ เดกเต†เดฒเดฟเดตเดฑเดฟ เดธเตเด•เต€เดฎเดฟเดฒเต‡เด•เตเด•เต เดจเดฎเตเด•เตเด•เต เดฎเดŸเด™เตเด™เดพเด‚: เด‡เดคเต เดžเด™เตเด™เตพ เดฎเดพเดคเตเดฐเดฎเดฒเตเดฒ, เด…เด•เตเดทเดฐเดพเตผเดคเตเดฅเดคเตเดคเดฟเตฝ เดˆ เดชเตเดฐเดถเตเดจเด‚ เด•เตˆเด•เดพเดฐเตเดฏเด‚ เดšเต†เดฏเตเดค เดŽเดฒเตเดฒเดพเดตเดฐเตเด‚ เด•เดฃเตเดŸเตเดชเดฟเดŸเดฟเดšเตเดšเดคเดพเดฃเต. เดตเดพเดธเตเดคเดตเดคเตเดคเดฟเตฝ, เดˆ เดชเดพเดฑเตเดฑเต‡เตบ เด‡เดชเตเดชเต‹เตพ GitOps เดŽเดจเตเดจเต เดตเดฟเดณเดฟเด•เตเด•เตเดจเตเดจเต (เดˆ เดชเดฆเดคเตเดคเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเด‚ เด…เดคเดฟเดจเตเดฑเต† เดชเดฟเดจเตเดจเดฟเดฒเต† เด†เดถเดฏเด™เตเด™เดณเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเด‚ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด•เต‚เดŸเตเดคเตฝ เดตเดพเดฏเดฟเด•เตเด•เดพเด‚ เด‡เดตเดฟเดŸเต†). เดชเดฆเตเดงเดคเดฟเดฏเตเดŸเต† เด˜เดŸเตเดŸเด™เตเด™เตพ เดจเต‹เด•เตเด•เดพเด‚.

เดธเตเดฑเตเดฑเต‡เดœเต เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเด•

เดกเต‹เด•เตเด•เตผ เดซเดฏเดฒเตเด•เตพ เดŽเด™เตเด™เดจเต† เดŽเดดเตเดคเดพเดฎเต†เดจเตเดจเตเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เดพเดฎเต†เดจเตเดจเตเด‚ เดŽเดฒเตเดฒเดพเดตเตผเด•เตเด•เตเด‚ เด…เดฑเดฟเดฏเดพเดตเตเดจเตเดจ 2019-เตฝ เดกเต‹เด•เตเด•เตผ เด‡เดฎเต‡เดœเตเด•เตพ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดธเด‚เดธเดพเดฐเดฟเด•เตเด•เดพเดฎเต†เดจเตเดจเต เดคเต‹เดจเตเดจเตเดจเตเดจเต docker build?.. เดžเดพเตป เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เดพเตป เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจ เดธเต‚เด•เตเดทเตเดฎเดคเด•เตพ เด‡เดคเดพ:

  1. เดšเดฟเดคเตเดฐเดคเตเดคเดฟเดจเตเดฑเต† เดญเดพเดฐเด‚ เดชเตเดฐเดงเดพเดจเดฎเดพเดฃเต, เด…เดคเดฟเดจเดพเตฝ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด• เดฎเตพเดŸเตเดŸเดฟ-เดธเตเดฑเตเดฑเต‡เดœเตเดชเตเดฐเดตเตผเดคเตเดคเดจเดคเตเดคเดฟเดจเต เดถเดฐเดฟเด•เตเด•เตเด‚ เด†เดตเดถเตเดฏเดฎเตเดณเตเดณ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดฎเดพเดคเตเดฐเด‚ เดšเดฟเดคเตเดฐเดคเตเดคเดฟเตฝ เด‡เดŸเตเด•.
  2. เดชเดพเดณเดฟเด•เดณเตเดŸเต† เดŽเดฃเตเดฃเด‚ เดฏเตเดŸเต† เดšเด™เตเด™เดฒเด•เตพ เดธเด‚เดฏเต‹เดœเดฟเดชเตเดชเดฟเดšเตเดšเต เดšเต†เดฑเตเดคเดพเด•เตเด•เดฃเด‚ RUN- เด…เตผเดคเตเดฅเดคเตเดคเดฟเดจเดจเตเดธเดฐเดฟเดšเตเดšเต เด•เดฎเดพเตปเดกเตเด•เตพ.
  3. เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เด‡เดคเต เดชเตเดฐเดถเตเดจเด™เตเด™เตพ เด•เต‚เดŸเตเดŸเดฟเดšเตเดšเต‡เตผเด•เตเด•เตเดจเตเดจเต เดกเต€เดฌเด—เตเด—เดฟเด‚เด—เต, เด•เดพเดฐเดฃเด‚ เด…เดธเด‚เดฌเตเดฒเดฟ เดคเด•เดฐเดพเดฑเดฟเดฒเดพเด•เตเดฎเตเดชเต‹เตพ, เดชเตเดฐเดถเตเดจเดคเตเดคเดฟเดจเต เด•เดพเดฐเดฃเดฎเดพเดฏ เดšเต†เดฏเดฟเดจเดฟเตฝ เดจเดฟเดจเตเดจเต เดจเดฟเด™เตเด™เตพ เดถเดฐเดฟเดฏเดพเดฏ เด•เดฎเดพเตปเดกเต เด•เดฃเตเดŸเต†เดคเตเดคเต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต.
  4. เด…เดธเด‚เดฌเตเดฒเดฟ เดตเต‡เด—เดค เดชเตเดฐเดงเดพเดจเดชเตเดชเต†เดŸเตเดŸเดคเต เด•เดพเดฐเดฃเด‚ เดžเด™เตเด™เตพ เดฎเดพเดฑเตเดฑเด™เตเด™เตพ เดตเต‡เด—เดคเตเดคเดฟเตฝ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดพเดจเตเด‚ เดซเดฒเด™เตเด™เตพ เด•เดพเดฃเดพเดจเตเด‚ เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเต. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดจเดฟเด™เตเด™เตพ เด’เดฐเต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเดฎเตเดชเต‹เดดเต†เดฒเตเดฒเดพเด‚ เดญเดพเดทเดพ เดฒเตˆเดฌเตเดฐเดฑเดฟเด•เดณเดฟเตฝ เดกเดฟเดชเตปเดกเตปเดธเดฟเด•เตพ เดชเตเดจเตผเดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เดพเตป เดจเดฟเด™เตเด™เตพ เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒ.
  5. เดชเดฒเดชเตเดชเต‹เดดเตเด‚ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด†เดตเดถเตเดฏเดฎเตเดณเตเดณ เด’เดฐเต Git เดถเต‡เด–เดฐเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดจเดฟเดฐเดตเดงเดฟ เดšเดฟเดคเตเดฐเด™เตเด™เตพ, เด’เดฐเต เด•เต‚เดŸเตเดŸเด‚ เดกเต‹เด•เตเด•เตผเดซเดฏเดฒเตเด•เตพ (เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด’เดฐเต เดซเดฏเดฒเดฟเตฝ เดธเตเดฑเตเดฑเต‡เดœเตเด•เตพ เดŽเดจเตเดจเต เดชเต‡เดฐเดฟเดŸเตเดŸเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต) เด•เต‚เดŸเดพเดคเต† เด…เดตเดฏเตเดŸเต† เดธเต€เด•เตเดตเตปเดทเตเดฏเตฝ เด…เดธเด‚เดฌเตเดฒเดฟเดฏเตเดณเตเดณ เด’เดฐเต เดฌเดพเดทเต เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เดŽเดจเตเดจเดฟเดต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดชเดฐเดฟเดนเดฐเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚.

เดŽเดฒเตเดฒเดพเดตเดฐเตเด‚ เด…เดญเดฟเดฎเตเด–เต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจ เดฎเดžเตเดžเตเดฎเดฒเดฏเตเดŸเต† เด…เด—เตเดฐเด‚ เดฎเดพเดคเตเดฐเดฎเดพเดฏเดฟเดฐเตเดจเตเดจเต เด‡เดคเต. เดŽเดจเตเดจเดพเตฝ เดฎเดฑเตเดฑเต เดชเตเดฐเดถเตเดจเด™เตเด™เดณเตเดฃเตเดŸเต, เดชเตเดฐเดคเตเดฏเต‡เด•เดฟเดšเตเดšเต:

  1. เดชเดฒเดชเตเดชเต‹เดดเตเด‚ เด…เดธเด‚เดฌเตเดฒเดฟ เด˜เดŸเตเดŸเดคเตเดคเดฟเตฝ เดจเดฎเตเด•เตเด•เต เดŽเดจเตเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เด†เดตเดถเตเดฏเดฎเดพเดฃเต เดฎเต—เดฃเตเดŸเต (เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, apt เดชเต‹เดฒเต†เดฏเตเดณเตเดณ เด’เดฐเต เด•เดฎเดพเตปเดกเดฟเดจเตเดฑเต† เดซเดฒเด‚ เด’เดฐเต เดฎเต‚เดจเตเดจเดพเด‚ เด•เด•เตเดทเดฟ เดกเดฏเดฑเด•เตเดŸเดฑเดฟเดฏเดฟเตฝ เด•เดพเดทเต† เดšเต†เดฏเตเดฏเตเด•).
  2. เดžเด™เตเด™เตพ เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเต เด…เดธเดพเดงเตเดฏเด‚ เดทเต†เดฒเตเดฒเดฟเตฝ เดŽเดดเตเดคเตเดจเตเดจเดคเดฟเดจเตเดชเด•เดฐเด‚.
  3. เดžเด™เตเด™เตพ เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเต เดกเต‹เด•เตเด•เตผ เด‡เดฒเตเดฒเดพเดคเต† เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเด• (เดจเดฎเตเด•เตเด•เต เด‡เดคเดฟเดจเด•เด‚ เดคเดจเตเดจเต† เด•เดฃเตเดŸเต†เดฏเตโ€Œเดจเดฑเตเด•เตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเดจเตเดจ เด’เดฐเต เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเต เด•เตเดฒเดธเตเดฑเตเดฑเตผ เด‰เดณเตเดณเดชเตเดชเต‹เตพ, เด‡เดคเดฟเดจเดพเดฏเดฟ เดŽเดฒเตเดฒเดพเด‚ เด•เต‹เตบเดซเดฟเด—เตผ เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸ เด’เดฐเต เด…เดงเดฟเด• เดตเต†เตผเดšเตเดตเตฝ เดฎเต†เดทเต€เตป เด†เดตเดถเตเดฏเดฎเดพเดฏเดฟ เดตเดฐเตเดจเตเดจเดคเต เดŽเดจเตเดคเตเด•เตŠเดฃเตเดŸเต?).
  4. เดธเดฎเดพเดจเตเดคเดฐ เด…เดธเด‚เดฌเตเดฒเดฟ, เด‡เดคเต เดตเตเดฏเดคเตเดฏเดธเตเดค เดฐเต€เดคเดฟเด•เดณเดฟเตฝ เดฎเดจเดธเตเดธเดฟเดฒเดพเด•เตเด•เดพเด‚: เดกเต‹เด•เตเด•เตผเดซเดฏเดฒเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดตเตเดฏเดคเตเดฏเดธเตเดค เด•เดฎเดพเตปเดกเตเด•เตพ (เดฎเตพเดŸเตเดŸเดฟ-เดธเตเดฑเตเดฑเต‡เดœเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเดฟเดŸเตเดŸเตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ), เด’เดฐเต‡ เดถเต‡เด–เดฐเดฃเดคเตเดคเดฟเดจเตเดฑเต† เดจเดฟเดฐเดตเดงเดฟ เด•เดฎเตเดฎเดฟเดฑเตเดฑเตเด•เตพ, เดจเดฟเดฐเดตเดงเดฟ เดกเต‹เด•เตเด•เตผเดซเดฏเดฒเตเด•เตพ.
  5. เดตเดฟเดคเดฐเดฃเด‚ เดšเต†เดฏเตเดค เด…เดธเด‚เดฌเตเดฒเดฟ: "เดŽเดซเดฟเดฎเต†เดฑเตฝ" เด†เดฏ เด•เดพเดฏเตเด•เดณเดฟเตฝ เด•เดพเดฐเตเดฏเด™เตเด™เตพ เดถเต‡เด–เดฐเดฟเด•เตเด•เดพเตป เดžเด™เตเด™เตพ เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเต เด…เดตเดฐเตเดŸเต† เด•เดพเดทเต† เด…เดชเตเดฐเดคเตเดฏเด•เตเดทเดฎเดพเด•เตเดจเตเดจเต, เด…เดคเดฟเดจเตผเดคเตเดฅเด‚ เด…เดคเต เดชเตเดฐเดคเตเดฏเต‡เด•เด‚ เดŽเดตเดฟเดŸเต†เดฏเต†เด™เตเด•เดฟเดฒเตเด‚ เดธเต‚เด•เตเดทเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต เดŽเดจเตเดจเดพเดฃเต.
  6. เด’เดŸเตเดตเดฟเตฝ เด†เด—เตเดฐเดนเด™เตเด™เดณเตเดŸเต† เดชเดฐเด•เต‹เดŸเดฟเด•เตเด•เต เดžเดพเตป เดชเต‡เดฐเดฟเดŸเตเดŸเต เด“เดŸเตเดŸเต‹เดฎเดพเดœเดฟเด•เต: เดฑเดฟเดชเตเดชเต‹เดธเดฟเดฑเตเดฑเดฑเดฟเดฏเดฟเตฝ เดชเต‹เดฏเดฟ เด•เตเดฑเดšเตเดšเต เด•เดฎเดพเตปเดกเต เดŸเตˆเดชเตเดชเต เดšเต†เดฏเตเดคเต เด’เดฐเต เดฑเต†เดกเดฟเดฎเต†เดฏเตเดกเต เด‡เดฎเต‡เดœเต เดจเต‡เดŸเตเดจเตเดจเดคเต เดจเดฒเตเดฒเดคเดพเดฃเต, เดŽเด™เตเด™เดจเต†, เดŽเดจเตเดคเต เดถเดฐเดฟเดฏเดพเดฏเดฟ เดšเต†เดฏเตเดฏเดฃเด‚ เดŽเดจเตเดจเดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดงเดพเดฐเดฃเดฏเต‹เดŸเต†. เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เดŽเดฒเตเดฒเดพ เดธเต‚เด•เตเดทเตเดฎเดคเด•เดณเตเด‚ เดˆ เดฐเต€เดคเดฟเดฏเดฟเตฝ เดฎเตเตปเด•เต‚เดŸเตเดŸเดฟ เด•เดพเดฃเดพเตป เด•เดดเดฟเดฏเตเดฎเต†เดจเตเดจเต เดŽเดจเดฟเด•เตเด•เต เดตเตเดฏเด•เตเดคเดฟเดชเดฐเดฎเดพเดฏเดฟ เด‰เดฑเดชเตเดชเดฟเดฒเตเดฒ.

เด•เต‚เดŸเดพเดคเต† เดชเดฆเตเดงเดคเดฟเด•เตพ เด‡เดคเดพ:

  • moby/buildkit - เดˆ เดชเตเดฐเดถเตเดจเด™เตเด™เดณเต†เดฒเตเดฒเดพเด‚ เดชเดฐเดฟเดนเดฐเดฟเด•เตเด•เดพเตป เดถเตเดฐเดฎเดฟเด•เตเด•เตเดจเตเดจ เดกเต‹เด•เตเด•เตผ เด‡เด™เตเด•เดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เด’เดฐเต เดฌเดฟเตฝเดกเตผ (เด‡เดคเดฟเดจเด•เด‚ เดกเต‹เด•เตเด•เดฑเดฟเดจเตเดฑเต† เดจเดฟเดฒเดตเดฟเดฒเต† เดชเดคเดฟเดชเตเดชเตเด•เดณเดฟเดฒเต‡เด•เตเด•เต เดธเด‚เดฏเต‹เดœเดฟเดชเตเดชเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต);
  • เด•เดพเดฃเดฟเด•เตเด•เต‹ - เดกเต‹เด•เตเด•เตผ เด‡เดฒเตเดฒเดพเดคเต† เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เดพเตป เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจ Google-เตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เด’เดฐเต เดฌเดฟเตฝเดกเตผ;
  • Buildpacks.io - เด“เดŸเตเดŸเต‹เดฎเดพเดฑเตเดฑเดฟเด•เต เดฎเดพเดœเดฟเด•เต เด‰เดฃเตเดŸเดพเด•เตเด•เดพเดจเตเดณเตเดณ CNCF เดจเตเดฑเต† เดถเตเดฐเดฎเด‚, เดชเตเดฐเดคเตเดฏเต‡เด•เดฟเดšเตเดšเต, เดฒเต†เดฏเดฑเตเด•เดณเตเดŸเต† เดฑเต€เดฌเต‡เดธเต เด‰เดณเตเดณ เดฐเดธเด•เดฐเดฎเดพเดฏ เด’เดฐเต เดชเดฐเดฟเดนเดพเดฐเด‚;
  • เดชเต‹เดฒเตเดณเตเดณ เดฎเดฑเตเดฑเต เดฏเต‚เดŸเตเดŸเดฟเดฒเดฟเดฑเตเดฑเดฟเด•เดณเตเดŸเต† เด’เดฐเต เด•เต‚เดŸเตเดŸเด‚ เดฌเดฟเตฝเดก, genuinetools/imgเดชเด™เตเด•เต โ‚ฌ |

... เด•เต‚เดŸเดพเดคเต† เด…เดตเตผเด•เตเด•เต GitHub-เตฝ เดŽเดคเตเดฐ เดจเด•เตเดทเดคเตเดฐเด™เตเด™เดณเตเดฃเตเดŸเต†เดจเตเดจเต เดจเต‹เด•เตเด•เต‚. เด…เดคเดพเดฏเดคเต, เด’เดฐเต เดตเดถเดคเตเดคเต docker build เดจเดฟเดฒเดตเดฟเดฒเตเดฃเตเดŸเต, เดŽเดจเตเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเด‚, เดชเด•เตเดทเต‡ เดตเดพเดธเตเดคเดตเดคเตเดคเดฟเตฝ เดชเตเดฐเดถเตเดจเด‚ เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏเตเด‚ เดชเดฐเดฟเดนเดฐเดฟเดšเตเดšเดฟเดŸเตเดŸเดฟเดฒเตเดฒ - เด‡เดคเดฐ เด•เดณเด•เตเดŸเตผเดฎเดพเดฐเตเดŸเต† เดธเดฎเดพเดจเตเดคเดฐ เดตเดฟเด•เดธเดจเดฎเดพเดฃเต เด‡เดคเดฟเดจเตเดฑเต† เดคเต†เดณเดฟเดตเต, เด…เดตเดฏเดฟเตฝ เด“เดฐเต‹เดจเตเดจเตเด‚ เดšเดฟเดฒ เดชเตเดฐเดถเตเดจเด™เตเด™เตพ เดชเดฐเดฟเดนเดฐเดฟเด•เตเด•เตเดจเตเดจเต.

เดตเต†เตผเดซเดฟเดฒเต† เด…เดธเด‚เดฌเตเดฒเดฟ

เด…เด™เตเด™เดจเต† เดžเด™เตเด™เตพ เดŽเดคเตเดคเดฟ เดตเต†เตผเดซเต (เดฎเตเดฎเตเดชเต เดชเตเดฐเดถเดธเตเดคเดฎเดพเดฏ เดกเดพเดชเตเดชเต เดชเต‹เดฒเต†) - เดžเด™เตเด™เตพ เดตเตผเดทเด™เตเด™เดณเดพเดฏเดฟ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเดจเตเดจ เดซเตเดฒเดพเดจเตเดฑเต เด•เดฎเตเดชเดจเดฟเดฏเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เด’เดฐเต เด“เดชเตเดชเตบ เดธเต‹เดดเตเดธเต เดฏเต‚เดŸเตเดŸเดฟเดฒเดฟเดฑเตเดฑเดฟ. 5 เดตเตผเดทเด‚ เดฎเตเดฎเตเดชเต เดกเต‹เด•เตเด•เตผเดซเดฏเดฒเตเด•เดณเตเดŸเต† เด…เดธเด‚เดฌเตเดฒเดฟ เด’เดชเตเดฑเตเดฑเดฟเดฎเตˆเดธเต เดšเต†เดฏเตเดค เดฌเดพเดทเต เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเดพเดฃเต เด‡เดคเต†เดฒเตเดฒเดพเด‚ เด†เดฐเด‚เดญเดฟเดšเตเดšเดคเต, เด•เดดเดฟเดžเตเดž 3 เดตเตผเดทเดฎเดพเดฏเดฟ เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏ เดตเดฟเด•เดธเดจเด‚ เด’เดฐเต เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเดฟเดจเตเดฑเต† เดšเดŸเตเดŸเด•เตเด•เต‚เดŸเดฟเดจเตเดณเตเดณเดฟเตฝ เดธเตเดตเดจเตเดคเด‚ เดœเดฟเดฑเตเดฑเต เดถเต‡เด–เดฐเดฃเดคเตเดคเต‹เดŸเต† เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดฟ. (เด†เดฆเตเดฏเด‚ เดฑเต‚เดฌเดฟเดฏเดฟเตฝ, เดคเตเดŸเตผเดจเตเดจเต เดฎเดพเดฑเตเดฑเดฟเดฏเต†เดดเตเดคเดฟ เดชเต‹เด•เดพเตป, เด…เดคเต‡ เดธเดฎเดฏเด‚ เดชเต‡เดฐเต เดฎเดพเดฑเตเดฑเดฟ). เดŽเดจเตเดคเต เด…เดธเด‚เดฌเตเดฒเดฟ เดชเตเดฐเดถเตโ€Œเดจเด™เตเด™เดณเดพเดฃเต เดตเต†เตผเดซเดฟเตฝ เดชเดฐเดฟเดนเดฐเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดจเตเดจเดคเต?

werf - เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเดฟเดฒเต† CI / CD-เดฏเตเด•เตเด•เตเดณเตเดณ เดžเด™เตเด™เดณเตเดŸเต† เด‰เดชเด•เดฐเดฃเด‚ (เด…เดตเดฒเต‹เด•เดจเดตเตเด‚ เดตเต€เดกเดฟเดฏเต‹ เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเตเด‚)

เดจเต€เดฒ เดจเดฟเดฑเดคเตเดคเดฟเตฝ เดทเต‡เดกเตเดณเตเดณ เดชเตเดฐเดถเตเดจเด™เตเด™เตพ เด‡เดคเดฟเดจเด•เด‚ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดฟเดฏเดฟเดŸเตเดŸเตเดฃเตเดŸเต, เด’เดฐเต‡ เดนเต‹เดธเตเดฑเตเดฑเดฟเดจเตเดณเตเดณเดฟเตฝ เดธเดฎเดพเดจเตเดคเดฐ เดฌเดฟเตฝเดกเต เดšเต†เดฏเตเดคเต, เดฎเดžเตเดžเดฏเดฟเตฝ เดนเตˆเดฒเตˆเดฑเตเดฑเต เดšเต†เดฏเตเดค เดชเตเดฐเดถเตเดจเด™เตเด™เตพ เดตเต‡เดจเตฝเด•เตเด•เดพเดฒเดคเตเดคเดฟเดจเตเดฑเต† เด…เดตเดธเดพเดจเดคเตเดคเต‹เดŸเต† เดชเต‚เตผเดคเตเดคเดฟเดฏเดพเด•เตเด•เดพเตป เดชเดฆเตเดงเดคเดฟเดฏเดฟเดŸเตเดŸเดฟเดŸเตเดŸเตเดฃเตเดŸเต.

เดฐเดœเดฟเดธเตเดŸเตเดฐเดฟเดฏเดฟเตฝ เดชเตเดฐเดธเดฟเดฆเตเดงเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจ เด˜เดŸเตเดŸเด‚ (เดชเตเดฐเดธเดฟเดฆเตเดงเต€เด•เดฐเดฟเด•เตเด•เตเด•)

เดžเด™เตเด™เตพ เดกเดฏเตฝ เดšเต†เดฏเตเดคเต docker push... - เดฐเดœเดฟเดธเตเดŸเตเดฐเดฟเดฏเดฟเดฒเต‡เด•เตเด•เต เด’เดฐเต เดšเดฟเดคเตเดฐเด‚ เด…เดชเตโ€Œเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเตฝ เดŽเดจเตเดคเดพเดฃเต เดฌเตเดฆเตเดงเดฟเดฎเตเดŸเตเดŸเตเดณเตเดณเดคเต? เดคเตเดŸเตผเดจเตเดจเต เดšเต‹เดฆเตเดฏเด‚ เด‰เดฏเตผเดจเตเดจเตเดตเดฐเตเดจเตเดจเต: "เดšเดฟเดคเตเดฐเดคเตเดคเดฟเตฝ เดžเดพเตป เดŽเดจเตเดคเต เดŸเดพเด—เต เด‡เดŸเดฃเด‚?" เดจเดฎเตเด•เตเด•เตเดณเตเดณ เด•เดพเดฐเดฃเดคเตเดคเดพเดฒเดพเดฃเต เด‡เดคเต เด‰เดฃเตเดŸเดพเด•เตเดจเตเดจเดคเต Gitflow (เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดฎเดฑเตเดฑเต Git เดธเตเดŸเตเดฐเดพเดฑเตเดฑเดœเดฟ) เด•เตเดฌเต†เตผเดจเต†เดฑเตเดฑเตเด•เดณเตเด‚, เดตเตเดฏเดตเดธเดพเดฏเดตเตเด‚ เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเดฟเตฝ เดธเด‚เดญเดตเดฟเด•เตเด•เตเดจเตเดจเดคเต Git-เตฝ เดธเด‚เดญเดตเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต† เดชเดฟเดจเตเดคเตเดŸเดฐเตเดจเตเดจเตเดตเต†เดจเตเดจเต เด‰เดฑเดชเตเดชเดพเด•เตเด•เดพเตป เดถเตเดฐเดฎเดฟเด•เตเด•เตเดจเตเดจเต. เดŽเดฒเตเดฒเดพเดคเตเดคเดฟเดจเตเดฎเตเดชเดฐเดฟ, Git เดฎเดพเดคเตเดฐเดฎเดพเดฃเต เดจเดฎเตเดฎเตเดŸเต† เดธเดคเตเดฏเดคเตเดคเดฟเดจเตเดฑเต† เด‰เดฑเดตเดฟเดŸเด‚.

เด‡เดคเดฟเตฝ เดŽเดจเตเดคเดพเดฃเต เด‡เดคเตเดฐ เดฌเตเดฆเตเดงเดฟเดฎเตเดŸเตเดŸเตเดณเตเดณเดคเต? เดชเตเดจเดฐเตเตฝเดชเดพเดฆเดจเด•เตเดทเดฎเดค เด‰เดฑเดชเตเดชเดพเด•เตเด•เตเด•: Git-เดฒเต† เดชเตเดฐเดคเดฟเดฌเดฆเตเดงเดคเดฏเดฟเตฝ เดจเดฟเดจเตเดจเต, เด…เดคเต เดฎเดพเดฑเตเดฑเดฎเดฟเดฒเตเดฒเดพเดคเตเดค เดธเตเดตเดญเดพเดตเดฎเดพเดฃเต (เดฎเดพเดฑเตเดฑเดฎเดฟเดฒเตเดฒเดพเดคเตเดคเดคเต), เด’เดฐเต เดกเต‹เด•เตเด•เตผ เดšเดฟเดคเตเดฐเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต, เด…เดคเต เด…เดคเต‡เดชเดŸเดฟ เดจเดฟเดฒเดจเดฟเตผเดคเตเดคเดฃเด‚.

เด…เดคเต เดจเดฎเตเด•เตเด•เตเด‚ เดชเตเดฐเดงเดพเดจเดฎเดพเดฃเต เด‰เดคเตเดญเดตเด‚ เดจเดฟเตผเดฃเตเดฃเดฏเดฟเด•เตเด•เตเด•, เด•เดพเดฐเดฃเด‚ Kubernetes-เตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดเดคเต เด•เดฎเตเดฎเดฟเดฑเตเดฑเดฟเตฝ เดจเดฟเดจเตเดจเดพเดฃเต เดจเดฟเตผเดฎเตเดฎเดฟเดšเตเดšเดคเต†เดจเตเดจเต เดฎเดจเดธเดฟเดฒเดพเด•เตเด•เดพเตป เดžเด™เตเด™เตพ เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเต (เด…เดชเตเดชเต‹เตพ เดจเดฎเตเด•เตเด•เต เดตเตเดฏเดคเตเดฏเดพเดธเด™เตเด™เดณเตเด‚ เดธเดฎเดพเดจ เด•เดพเดฐเตเดฏเด™เตเด™เดณเตเด‚ เดšเต†เดฏเตเดฏเดพเด‚).

เดŸเดพเด—เดฟเด‚เด—เต เดคเดจเตเดคเตเดฐเด™เตเด™เตพ

เด†เดฆเตเดฏเดคเตเดคเต‡เดคเต เดฒเดณเดฟเดคเดฎเดพเดฃเต git เดŸเดพเด—เต. เดŽเดจเตเดจเต เดŸเดพเด—เต เดšเต†เดฏเตโ€Œเดค เด’เดฐเต เดšเดฟเดคเตเดฐเดฎเตเดณเตเดณ เด’เดฐเต เดฐเดœเดฟเดธเตโ€ŒเดŸเตเดฐเดฟ เดžเด™เตเด™เดณเตเดŸเต† เดชเด•เตเด•เดฒเตเดฃเตเดŸเต 1.0. เดˆ เดšเดฟเดคเตเดฐเด‚ เด…เดชเตโ€Œเดฒเต‹เดกเต เดšเต†เดฏเตโ€Œเดคเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เดธเตเดฑเตเดฑเต‡เดœเตเด‚ เดจเดฟเตผเดฎเตเดฎเดพเดฃเดตเตเด‚ เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเดฟเดจเตเดฃเตเดŸเต. Git-เตฝ เดจเดฎเตเดฎเตพ เด•เดฎเตเดฎเดฟเดฑเตเดฑเต เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดšเดฟเดฒ เด˜เดŸเตเดŸเด™เตเด™เดณเดฟเตฝ เดŸเดพเด—เต เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต 2.0. เดฑเดฟเดชเตเดชเต‹เดธเดฟเดฑเตเดฑเดฑเดฟเดฏเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดจเดฟเตผเดฆเตเดฆเต‡เดถเด™เตเด™เตพเด•เตเด•เดจเตเดธเตƒเดคเดฎเดพเดฏเดฟ เดžเด™เตเด™เตพ เด…เดคเต เดถเต‡เด–เดฐเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดŸเดพเด—เต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดฐเดœเดฟเดธเตเดŸเตเดฐเดฟเดฏเดฟเตฝ เดธเตเดฅเดพเดชเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต 2.0. เดžเด™เตเด™เตพ เด…เดคเต เดธเตเดฑเตเดฑเต‡เดœเดฟเดฒเต‡เด•เตเด•เตเด‚ เดŽเดฒเตเดฒเดพเด‚ เดถเดฐเดฟเดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ เด‰เตฝเดชเตเดชเดพเดฆเดจเดคเตเดคเดฟเดฒเต‡เด•เตเด•เตเด‚ เดฎเดพเดฑเตเดฑเตเดจเตเดจเต.

werf - เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเดฟเดฒเต† CI / CD-เดฏเตเด•เตเด•เตเดณเตเดณ เดžเด™เตเด™เดณเตเดŸเต† เด‰เดชเด•เดฐเดฃเด‚ (เด…เดตเดฒเต‹เด•เดจเดตเตเด‚ เดตเต€เดกเดฟเดฏเต‹ เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเตเด‚)

เดˆ เดธเดฎเต€เดชเดจเดคเตเดคเดฟเดฒเต† เดชเตเดฐเดถเตเดจเด‚, เดžเด™เตเด™เตพ เด†เดฆเตเดฏเด‚ เดŸเดพเด—เต เด‡เดŸเตเดŸเต, เด…เดคเดฟเดจเตเดถเต‡เดทเด‚ เดฎเดพเดคเตเดฐเดฎเต‡ เด…เดคเต เดชเดฐเต€เด•เตเดทเดฟเดšเตเดšเต เด‰เดฐเตเดŸเตเดŸเดฟเดฏเดฟเดŸเตเดŸเตเดณเตเดณเต‚ เดŽเดจเตเดจเดคเดพเดฃเต. เดŽเดจเตเดคเตเด•เตŠเดฃเตเดŸเต? เด’เดจเตเดจเดพเดฎเดคเดพเดฏเดฟ, เด‡เดคเต เด•เต‡เดตเดฒเด‚ เดฏเตเด•เตเดคเดฟเดฐเดนเดฟเดคเดฎเดพเดฃเต: เดžเด™เตเด™เตพ เด‡เดคเตเดตเดฐเต† เดชเดฐเต€เด•เตเดทเดฟเดšเตเดšเดฟเดŸเตเดŸเดฟเดฒเตเดฒเดพเดคเตเดค เดธเต‹เดซเตโ€Œเดฑเตเดฑเตโ€Œเดตเต†เดฏเดฑเดฟเดจเตเดฑเต† เด’เดฐเต เดชเดคเดฟเดชเตเดชเดพเดฃเต เดžเด™เตเด™เตพ เดจเตฝเด•เตเดจเตเดจเดคเต (เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดžเด™เตเด™เตพเด•เตเด•เต เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเดฟเดฒเตเดฒ, เด•เดพเดฐเดฃเด‚ เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต, เดžเด™เตเด™เตพ เด’เดฐเต เดŸเดพเด—เต เด‡เดŸเต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต). เดฐเดฃเตเดŸเดพเดฎเดคเดพเดฏเดฟ, เดˆ เดชเดพเดค Gitflow-เดฏเตเดฎเดพเดฏเดฟ เดชเตŠเดฐเตเดคเตเดคเดชเตเดชเต†เดŸเตเดจเตเดจเดฟเดฒเตเดฒ.

เดฐเดฃเตเดŸเดพเดฎเดคเตเดคเต† เด“เดชเตเดทเตป - git เด•เดฎเตเดฎเดฟเดฑเตเดฑเต + เดŸเดพเด—เต. เดฎเดพเดธเตเดฑเตเดฑเตผ เดฌเตเดฐเดพเดžเตเดšเดฟเดจเต เด’เดฐเต เดŸเดพเด—เต เด‰เดฃเตเดŸเต 1.0; เดฐเดœเดฟเดธเตเดŸเตเดฐเดฟเดฏเดฟเตฝ เด…เดคเดฟเดจเดพเดฏเดฟ - เดจเดฟเตผเดฎเตเดฎเดพเดฃเดคเตเดคเดฟเดจเดพเดฏเดฟ เดตเดฟเดจเตเดฏเดธเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดšเดฟเดคเตเดฐเด‚. เด•เต‚เดŸเดพเดคเต†, เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเต เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเดจเต เดชเตเดฐเดฟเดตเตเดฏเต‚, เดธเตเดฑเตเดฑเต‡เดœเดฟเด‚เด—เต เด•เต‹เดฃเตเดŸเต‚เตผ เดŽเดจเตเดจเดฟเดตเดฏเตเดฃเตเดŸเต. เด…เดŸเตเดคเตเดคเดคเดพเดฏเดฟ เดžเด™เตเด™เตพ Gitflow เดชเดฟเดจเตเดคเตเดŸเดฐเตเดจเตเดจเต: เดตเดฟเด•เดธเดจเดคเตเดคเดฟเดจเดพเดฏเตเดณเตเดณ เดชเตเดฐเดงเดพเดจ เดถเดพเด–เดฏเดฟเตฝ (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-เดฏเตเด•เตเด•เตเดณเตเดณ เดžเด™เตเด™เดณเตเดŸเต† เด‰เดชเด•เดฐเดฃเด‚ (เด…เดตเดฒเต‹เด•เดจเดตเตเด‚ เดตเต€เดกเดฟเดฏเต‹ เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเตเด‚)

เด‡เดชเตเดชเต‹เตพ, เด†เดตเดถเตเดฏเดฎเดพเดฏเดฟ เดตเดฐเตเดฎเตเดชเต‹เตพ, เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เด’เดฐเต เดฑเดฟเดฒเต€เดธเดฟเตฝ เดจเดฟเดจเตเดจเต เดฎเดพเดธเตเดฑเตเดฑเดฑเดฟเดฒเต‡เด•เตเด•เตเดณเตเดณ เดฎเดพเดฑเตเดฑเด™เตเด™เตพ เดฒเดฏเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต, เดจเดฎเตเด•เตเด•เต เด’เดฐเต เดฏเดฅเดพเตผเดคเตเดฅ เดฒเดฏเดจเด‚ เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเด‚: เด‡เดคเดฟเดจเต เดฎเดฑเตเดฑเตŠเดฐเต เดเดกเดจเตเดฑเดฟเดซเดฏเตผ เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚, เดŽเดจเตเดจเดพเตฝ เด’เดฐเต‡ เด’เดชเตเดชเต. เด…เดคเต‡ เดเดกเดจเตเดฑเดฟเดซเดฏเตผ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดžเด™เตเด™เตพ เดšเดฟเดคเตเดฐเด‚ เดชเตเดฐเตŠเดกเด•เตเดทเดจเดฟเดฒเต‡เด•เตเด•เต เดฎเดพเดฑเตเดฑเตเด‚.

เดเดคเต เดคเดฐเดคเตเดคเดฟเดฒเตเดณเตเดณ เดชเตเดฐเดคเดฟเดฌเดฆเตเดงเดคเดฏเดพเดฃเต เด‰เตฝเดชเดพเดฆเดจเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เดคเดณเตเดณเดฟเดตเดฟเดŸเตเดŸเดคเต†เดจเตเดจเต เด‡เดชเตเดชเต‹เตพ เดจเดฟเตผเดฃเตเดฃเดฏเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเดฟเดฒเตเดฒ เดŽเดจเตเดจเดคเดพเดฃเต เดชเต‹เดฐเดพเดฏเตเดฎ - เดšเต†เด•เตเด•เตเดธเด‚ เด’เดฐเต เดฆเดฟเดถเดฏเดฟเตฝ เดฎเดพเดคเตเดฐเดฎเต‡ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เต‚. เดฎเต†เดฑเตเดฑเดพเดกเดพเดฑเตเดฑเดฏเตเดณเตเดณ เด’เดฐเต เด…เดงเดฟเด• เดฒเต†เดฏเตผ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดˆ เดชเตเดฐเดถเตเดจเด‚ เดชเดฐเดฟเดนเดฐเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเด‚ - เดžเดพเตป เดชเดฟเดจเตเดจเต€เดŸเต เดจเดฟเด™เตเด™เดณเต‹เดŸเต เด•เต‚เดŸเตเดคเตฝ เดชเดฑเดฏเดพเด‚.

เดตเต†เตผเดซเดฟเตฝ เดŸเดพเด—เตเดšเต†เดฏเตเดฏเตเดจเตเดจเต

เดตเต†เตผเดซเดฟเตฝ เดžเด™เตเด™เตพ เด•เต‚เดŸเตเดคเตฝ เดฎเตเดจเตเดจเต‹เดŸเตเดŸเต เดชเต‹เดฏเดฟ, เด’เดฐเต เดฎเต†เดทเต€เดจเดฟเตฝ เดธเต‚เด•เตเดทเดฟเด•เตเด•เดพเดคเตเดค เด’เดฐเต เด•เดพเดทเต† เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด’เดฐเต เดกเดฟเดธเตเดŸเตเดฐเดฟเดฌเตเดฏเต‚เดŸเตเดŸเดกเต เดฌเดฟเตฝเดกเต เดšเต†เดฏเตเดฏเดพเตป เดคเดฏเตเดฏเดพเดฑเต†เดŸเตเด•เตเด•เตเด•เดฏเดพเดฃเต... เด…เดคเดฟเดจเดพเตฝ, เดžเด™เตเด™เตพ เดฐเดฃเตเดŸเต เดคเดฐเด‚ เดกเต‹เด•เตเด•เตผ เด‡เดฎเต‡เดœเตเด•เตพ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเดจเตเดจเต, เดžเด™เตเด™เตพ เด…เดตเดฏเต† เดตเดฟเดณเดฟเด•เตเด•เตเดจเตเดจเต เดธเตเดฑเตเดฑเต‡เดœเต ะธ เดšเดฟเดคเตเดฐเด‚.

เดจเดฟเตผเดฎเตเดฎเดพเดฃเดคเตเดคเดฟเดจเตเดฑเต† เดตเดฟเดตเดฟเดง เด˜เดŸเตเดŸเด™เตเด™เดณเต† เดตเดฟเดตเดฐเดฟเด•เตเด•เตเดจเตเดจ เดฌเดฟเตฝเดกเต-เดจเดฟเตผเดฆเตเดฆเดฟเดทเตเดŸ เดจเดฟเตผเดฆเตเดฆเต‡เดถเด™เตเด™เตพ เดตเต†เตผเดซเต Git เดฑเดฟเดชเตเดชเต‹เดธเดฟเดฑเตเดฑเดฑเดฟ เดธเด‚เดญเดฐเดฟเด•เตเด•เตเดจเตเดจเต (เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต เดฎเตเดฎเตเดชเต, เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเด•, เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดฎเตเดฎเตเดชเต, เดธเดœเตเดœเดฎเดพเด•เตเด•เตเด•). เด†เดฆเตเดฏ เด˜เดŸเตเดŸเด™เตเด™เดณเตเดŸเต† เดšเต†เด•เตเด•เตเดธเด‚ เด†เดฏเดฟ เดจเดฟเตผเดตเดšเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เด’เดชเตเดชเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดžเด™เตเด™เตพ เด†เดฆเตเดฏ เด˜เดŸเตเดŸ เดšเดฟเดคเตเดฐเด‚ เดถเต‡เด–เดฐเดฟเด•เตเด•เตเดจเตเดจเต. เดคเตเดŸเตผเดจเตเดจเต เดžเด™เตเด™เตพ เดธเต‹เดดเตเดธเต เด•เต‹เดกเต เดšเต‡เตผเด•เตเด•เตเดจเตเดจเต, เดชเตเดคเดฟเดฏ เดธเตเดฑเตเดฑเต‡เดœเต เด‡เดฎเต‡เดœเดฟเดจเดพเดฏเดฟ เดžเด™เตเด™เตพ เด…เดคเดฟเดจเตเดฑเต† เดšเต†เด•เตเด•เตเดธเด‚ เด•เดฃเด•เตเด•เดพเด•เตเด•เตเดจเตเดจเต... เดˆ เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เตพ เดŽเดฒเตเดฒเดพ เด˜เดŸเตเดŸเด™เตเด™เดณเดฟเดฒเตเด‚ เด†เดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต, เด…เดคเดฟเดจเตเดฑเต† เดซเดฒเดฎเดพเดฏเดฟ เดจเดฎเตเด•เตเด•เต เด’เดฐเต เด•เต‚เดŸเตเดŸเด‚ เดธเตเดฑเตเดฑเต‡เดœเต เด‡เดฎเต‡เดœเตเด•เตพ เดฒเดญเดฟเด•เตเด•เตเด‚. เดคเตเดŸเตผเดจเตเดจเต เดžเด™เตเด™เตพ เด…เดจเตเดคเดฟเดฎ เดšเดฟเดคเตเดฐเด‚ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเดจเตเดจเต, เด…เดคเดฟเตฝ เด…เดคเดฟเดจเตเดฑเต† เด‰เดคเตเดญเดตเดคเตเดคเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดฎเต†เดฑเตเดฑเดพเดกเดพเดฑเตเดฑเดฏเตเด‚ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เดžเด™เตเด™เตพ เดˆ เดšเดฟเดคเตเดฐเด‚ เดตเตเดฏเดคเตเดฏเดธเตเดค เดฐเต€เดคเดฟเด•เดณเดฟเตฝ เดŸเดพเด—เต เดšเต†เดฏเตเดฏเตเดจเตเดจเต (เดตเดฟเดถเดฆเดพเด‚เดถเด™เตเด™เตพ เดชเดฟเดจเตเดจเต€เดŸเต).

werf - เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเดฟเดฒเต† CI / CD-เดฏเตเด•เตเด•เตเดณเตเดณ เดžเด™เตเด™เดณเตเดŸเต† เด‰เดชเด•เดฐเดฃเด‚ (เด…เดตเดฒเต‹เด•เดจเดตเตเด‚ เดตเต€เดกเดฟเดฏเต‹ เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเตเด‚)

เด‡เดคเดฟเดจเตเดถเต‡เดทเด‚ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เด•เต‹เดกเต เดฎเดพเดคเตเดฐเด‚ เดฎเดพเดฑเตเดฑเดฟเดฏ เด’เดฐเต เดชเตเดคเดฟเดฏ เด•เดฎเตเดฎเดฟเดฑเตเดฑเต เดชเตเดฐเดคเตเดฏเด•เตเดทเดชเตเดชเต†เดŸเตเดจเตเดจเตเดตเต†เดจเตเดจเต เด•เดฐเตเดคเตเด•. เดŽเดจเตเดคเต เดธเด‚เดญเดตเดฟเด•เตเด•เตเด‚? เด•เต‹เดกเต เดฎเดพเดฑเตเดฑเด™เตเด™เตพเด•เตเด•เดพเดฏเดฟ, เด’เดฐเต เดชเดพเดšเตเดšเต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเด•เดฏเตเด‚ เด’เดฐเต เดชเตเดคเดฟเดฏ เดธเตเดฑเตเดฑเต‡เดœเต เด‡เดฎเต‡เดœเต เดคเดฏเตเดฏเดพเดฑเดพเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเด‚. เดชเดดเดฏ เดธเตเดฑเตเดฑเต‡เดœเต เด‡เดฎเต‡เดœเดฟเดจเตเดฑเต†เดฏเตเด‚ เดชเตเดคเดฟเดฏ เดชเดพเดšเตเดšเดฟเดจเตเดฑเต†เดฏเตเด‚ เดšเต†เด•เตเด•เตเดธเด‚ เด†เดฏเดฟ เด…เดคเดฟเดจเตเดฑเต† เด’เดชเตเดชเต เดจเดฟเตผเดฃเตเดฃเดฏเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเด‚. เดˆ เดšเดฟเดคเตเดฐเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เด’เดฐเต เดชเตเดคเดฟเดฏ เด…เดจเตเดคเดฟเดฎ เดšเดฟเดคเตเดฐเด‚ เดฐเต‚เดชเต€เด•เดฐเดฟเด•เตเด•เตเด‚. เดฎเดฑเตเดฑเต เด˜เดŸเตเดŸเด™เตเด™เดณเดฟเดฒเต† เดฎเดพเดฑเตเดฑเด™เตเด™เดณเดฟเดฒเตเด‚ เดธเดฎเดพเดจเดฎเดพเดฏ เดชเต†เดฐเตเดฎเดพเดฑเตเดฑเด‚ เดธเด‚เดญเดตเดฟเด•เตเด•เตเด‚.

เด…เด™เตเด™เดจเต†, เดธเตเดฑเตเดฑเต‡เดœเต เด‡เดฎเต‡เดœเตเด•เตพ เดตเดฟเดคเดฐเดฃเด‚ เดšเต†เดฏเตเดฏเดพเดตเตเดจเตเดจ เด’เดฐเต เด•เดพเดทเต†เดฏเดพเดฃเต, เด…เดคเดฟเตฝ เดจเดฟเดจเตเดจเต เด‡เดคเดฟเดจเด•เด‚ เดธเตƒเดทเตเดŸเดฟเดšเตเดš เดšเดฟเดคเตเดฐเด™เตเด™เตพ เดกเต‹เด•เตเด•เตผ เดฐเดœเดฟเดธเตเดŸเตเดฐเดฟเดฏเดฟเดฒเต‡เด•เตเด•เต เด…เดชเตเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต.

werf - เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเดฟเดฒเต† CI / CD-เดฏเตเด•เตเด•เตเดณเตเดณ เดžเด™เตเด™เดณเตเดŸเต† เด‰เดชเด•เดฐเดฃเด‚ (เด…เดตเดฒเต‹เด•เดจเดตเตเด‚ เดตเต€เดกเดฟเดฏเต‹ เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเตเด‚)

เดฐเดœเดฟเดธเตเดŸเตเดฐเดฟ เดตเตƒเดคเตเดคเดฟเดฏเดพเด•เตเด•เตเดจเตเดจเต

เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เดฟเดฏ เดŸเดพเด—เตเด•เตพเด•เตเด•เต เดถเต‡เดทเดตเตเด‚ เดคเต‚เด™เตเด™เดฟเด•เตเด•เดฟเดŸเด•เตเด•เตเดจเตเดจ เดฒเต†เดฏเดฑเตเด•เตพ เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเดฒเตเดฒ เดžเด™เตเด™เตพ เดธเด‚เดธเดพเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต - เด‡เดคเต เดกเต‹เด•เตเด•เตผ เดฐเดœเดฟเดธเตเดŸเตเดฐเดฟเดฏเตเดŸเต† เดคเดจเตเดจเต† เด’เดฐเต เดธเดพเดงเดพเดฐเดฃ เดธเดตเดฟเดถเต‡เดทเดคเดฏเดพเดฃเต. เดงเดพเดฐเดพเดณเด‚ เดกเต‹เด•เตเด•เตผ เดŸเดพเด—เตเด•เตพ เด•เตเดฎเดฟเดžเตเดžเตเด•เต‚เดŸเตเดจเตเดจ เด’เดฐเต เดธเดพเดนเดšเดฐเตเดฏเดคเตเดคเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเดพเดฃเต เดžเด™เตเด™เตพ เดธเด‚เดธเดพเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต, เด…เดตเดฏเดฟเตฝ เดšเดฟเดฒเดคเต เด‡เดจเดฟ เดจเดฎเตเด•เตเด•เต เด†เดตเดถเตเดฏเดฎเดฟเดฒเตเดฒเต†เดจเตเดจเต เดžเด™เตเด™เตพ เดฎเดจเดธเตเดธเดฟเดฒเดพเด•เตเด•เตเดจเตเดจเต, เดชเด•เตเดทเต‡ เด…เดต เด‡เดŸเด‚ เดชเดฟเดŸเดฟเด•เตเด•เตเดจเตเดจเต (เด•เต‚เดŸเดพเดคเต†/เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดžเด™เตเด™เตพ เด…เดคเดฟเดจเต เดชเดฃเด‚ เดจเตฝเด•เตเดจเตเดจเต).

เดถเตเดšเต€เด•เดฐเดฃ เดคเดจเตเดคเตเดฐเด™เตเด™เตพ เดŽเดจเตเดคเตŠเด•เตเด•เต†เดฏเดพเดฃเต?

  1. เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด’เดจเตเดจเตเด‚ เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเดฟเดฒเตเดฒ เดตเตƒเดคเตเดคเดฟเดฏเดพเด•เตเด•เดฐเตเดคเต. เดŸเดพเด—เตเด•เดณเตเดŸเต† เด’เดฐเต เดตเดฒเดฟเดฏ เด•เตเดฐเตเด•เตเด•เต เด…เดดเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต‡เด•เตเด•เดพเตพ เดšเดฟเดฒเดชเตเดชเต‹เตพ เด…เดงเดฟเด• เดธเตเดฅเดฒเดคเตเดคเดฟเดจเดพเดฏเดฟ เด•เตเดฑเดšเตเดšเต เดชเดฃเด‚ เดจเตฝเด•เตเดจเตเดจเดคเต เดตเดณเดฐเต† เดŽเดณเตเดชเตเดชเดฎเดพเดฃเต. เดŽเดจเตเดจเดพเตฝ เด‡เดคเต เด’เดฐเต เดจเดฟเดถเตเดšเดฟเดค เดชเต‹เดฏเดฟเดจเตเดฑเต เดตเดฐเต† เดฎเดพเดคเตเดฐเดฎเต‡ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เต‚.
  2. เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏ เดชเตเดจเดƒเดธเดœเตเดœเต€เด•เดฐเดฃเด‚. เดจเดฟเด™เตเด™เตพ เดŽเดฒเตเดฒเดพ เดšเดฟเดคเตเดฐเด™เตเด™เดณเตเด‚ เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เตเด•เดฏเตเด‚ CI เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเตฝ เดจเดฟเดฒเดตเดฟเดฒเตเดณเตเดณเดต เดฎเดพเดคเตเดฐเด‚ เดชเตเดจเตผเดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดคเดพเตฝ, เด’เดฐเต เดชเตเดฐเดถเตเดจเด‚ เด‰เดฃเตเดŸเดพเด•เดพเด‚. เดจเดฟเตผเดฎเตเดฎเดพเดฃเดคเตเดคเดฟเตฝ เด•เดฃเตเดŸเต†เดฏเตเดจเตผ เดชเตเดจเดฐเดพเดฐเด‚เดญเดฟเด•เตเด•เตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เด…เดคเดฟเดจเดพเดฏเดฟ เด’เดฐเต เดชเตเดคเดฟเดฏ เดšเดฟเดคเตเดฐเด‚ เดฒเต‹เดกเต เดšเต†เดฏเตเดฏเตเด‚ - เด‡เดคเตเดตเดฐเต† เด†เดฐเตเด‚ เดชเดฐเต€เด•เตเดทเดฟเดšเตเดšเดฟเดŸเตเดŸเดฟเดฒเตเดฒเดพเดคเตเดค เด’เดจเตเดจเต. เด‡เดคเต เดฎเดพเดฑเตเดฑเดฎเดฟเดฒเตเดฒเดพเดคเตเดค เด…เดŸเดฟเดธเตเดฅเดพเดจ เดธเต—เด•เดฐเตเดฏเด™เตเด™เตพ เดŽเดจเตเดจ เด†เดถเดฏเดคเตเดคเต† เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เตเดจเตเดจเต.
  3. เดจเต€เดฒ เดชเดšเตเดš. เด’เดฐเต เดฐเดœเดฟเดธเตเดŸเตเดฐเดฟ เด“เดตเตผเดซเตเดฒเต‹ เดคเตเดŸเด™เตเด™เดฟ - เดžเด™เตเด™เตพ เดšเดฟเดคเตเดฐเด™เตเด™เตพ เดฎเดฑเตเดฑเตŠเดจเตเดจเดฟเดฒเต‡เด•เตเด•เต เด…เดชเตโ€Œเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เดฎเตเดฎเตเดชเดคเตเดคเต† เดฐเต€เดคเดฟเดฏเดฟเดฒเต† เด…เดคเต‡ เดชเตเดฐเดถเตเดจเด‚: เด“เดตเตผเดซเตเดฒเต‹ เดšเต†เดฏเตเดฏเดพเตป เดคเตเดŸเด™เตเด™เดฟเดฏ เดฐเดœเดฟเดธเตเดŸเตเดฐเดฟ เดเดคเต เด˜เดŸเตเดŸเดคเตเดคเดฟเดฒเดพเดฃเต เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดฎเดพเดฏเตโ€Œเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด•?
  4. เดธเดฎเดฏเด‚. เด’เดฐเต เดฎเดพเดธเดคเตเดคเดฟเดฒเดงเดฟเด•เด‚ เดชเดดเด•เตเด•เดฎเตเดณเตเดณ เดŽเดฒเตเดฒเดพ เดšเดฟเดคเตเดฐเด™เตเด™เดณเตเด‚ เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เดฃเต‹? เดŽเดจเตเดจเดพเตฝ เด’เดฐเต เดฎเดพเดธเดฎเดพเดฏเดฟ เด…เดชเตเดกเต‡เดฑเตเดฑเต เดšเต†เดฏเตเดฏเดพเดคเตเดค เด’เดฐเต เดธเต‡เดตเดจเด‚ เดคเต€เตผเดšเตเดšเดฏเดพเดฏเตเด‚ เด‰เดฃเตเดŸเดพเด•เตเด‚...
  5. เดธเตเดตเดฎเต‡เดงเดฏเดพ เด‡เดคเดฟเดจเด•เด‚ เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเดจเตเดจเดต เดจเดฟเตผเดฃเตเดฃเดฏเดฟเด•เตเด•เตเด•.

เดฏเดฅเดพเตผเดคเตเดฅเดคเตเดคเดฟเตฝ เดชเตเดฐเดพเดฏเต‹เด—เดฟเด•เดฎเดพเดฏ เดฐเดฃเตเดŸเต เด“เดชเตเดทเดจเตเด•เตพ เด‰เดฃเตเดŸเต: เดตเตƒเดคเตเดคเดฟเดฏเดพเด•เตเด•เดฐเตเดคเต เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดจเต€เดฒ-เดชเดšเตเดš + เดธเตเดตเดฎเต‡เดงเดฏเดพ เดธเด‚เดฏเต‹เดœเดฟเดชเตเดชเดฟเด•เตเด•เดฐเตเดคเต. เดชเดฟเดจเตเดจเต€เดŸเตเดณเตเดณ เดธเดพเดนเดšเดฐเตเดฏเดคเตเดคเดฟเตฝ, เดžเด™เตเด™เตพ เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจเดตเดฏเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเดพเดฃเต เดธเด‚เดธเดพเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต: เดฐเดœเดฟเดธเตเดŸเตเดฐเดฟ เดตเตƒเดคเตเดคเดฟเดฏเดพเด•เตเด•เดพเดจเตเดณเตเดณ เดธเดฎเดฏเดฎเดพเดฃเดฟเดคเต†เดจเตเดจเต เดจเดฟเด™เตเด™เตพ เดฎเดจเดธเตเดธเดฟเดฒเดพเด•เตเด•เตเดฎเตเดชเต‹เตพ, เดจเดฟเด™เตเด™เตพ เดชเตเดคเดฟเดฏเตŠเดฐเต†เดฃเตเดฃเด‚ เดธเตƒเดทเตโ€ŒเดŸเดฟเด•เตเด•เตเด•เดฏเตเด‚ เด…เดคเดฟเดฒเต‡เด•เตเด•เต เดŽเดฒเตเดฒเดพ เดชเตเดคเดฟเดฏ เดšเดฟเดคเตเดฐเด™เตเด™เดณเตเด‚ เดšเต‡เตผเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต, เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เด’เดฐเต เดฎเดพเดธเดคเตเดคเดฟเดจเตเดณเตเดณเดฟเตฝ. เด’เดฐเต เดฎเดพเดธเดคเตเดคเดฟเดจเตเดถเต‡เดทเด‚, เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเดฟเดฒเต† เดเดคเตŠเด•เตเด•เต† เดชเต‹เดกเตเด•เตพ เด‡เดชเตเดชเต‹เดดเตเด‚ เดชเดดเดฏ เดฐเดœเดฟเดธเตเดŸเตเดฐเดฟ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเตเดฃเตเดŸเต†เดจเตเดจเต เด•เดพเดฃเตเด•, เด…เดตเดฏเตเด‚ เดชเตเดคเดฟเดฏ เดฐเดœเดฟเดธเตเดŸเตเดฐเดฟเดฏเดฟเดฒเต‡เด•เตเด•เต เดฎเดพเดฑเตเดฑเตเด•.

เดจเดฎเตเดฎเตพ เดŽเดจเตเดคเดฟเดฒเต‡เด•เตเด•เดพเดฃเต เดตเดจเตเดจเดคเต เดตเต†เตผเดซเต? เดžเด™เตเด™เตพ เดถเต‡เด–เดฐเดฟเด•เตเด•เตเดจเตเดจเต:

  1. Git head: เดŽเดฒเตเดฒเดพ เดŸเดพเด—เตเด•เดณเตเด‚, เดŽเดฒเตเดฒเดพ เดถเดพเด–เด•เดณเตเด‚ - เดšเดฟเดคเตเดฐเด™เตเด™เดณเดฟเตฝ Git-เตฝ เดŸเดพเด—เต เดšเต†เดฏเตเดคเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต†เดฒเตเดฒเดพเด‚ เดจเดฎเตเด•เตเด•เต เด†เดตเดถเตเดฏเดฎเดพเดฃเต†เดจเตเดจเต เด•เดฐเตเดคเตเด• (เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, Git-เตฝ เดคเดจเตเดจเต† เด…เดคเต เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต);
  2. เดจเดฟเดฒเดตเดฟเตฝ เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเดฟเดฒเต‡เด•เตเด•เต เดชเดฎเตเดชเต เดšเต†เดฏเตเดฏเตเดจเตเดจ เดŽเดฒเตเดฒเดพ เด•เดพเดฏเตเด•เดณเตเด‚;
  3. เดชเดดเดฏ ReplicaSets (เด…เดŸเตเดคเตเดคเดฟเดŸเต† เดฑเดฟเดฒเต€เดธเต เดšเต†เดฏเตเดคเดคเต), เด•เต‚เดŸเดพเดคเต† Helm เดฑเดฟเดฒเต€เดธเตเด•เตพ เดธเตเด•เดพเตป เดšเต†เดฏเตเดฏเดพเดจเตเด‚ เด…เดตเดฟเดŸเต† เดเดฑเตเดฑเดตเตเด‚ เดชเตเดคเดฟเดฏ เดšเดฟเดคเตเดฐเด™เตเด™เตพ เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เดพเดจเตเด‚ เดžเด™เตเด™เตพ เดชเดฆเตเดงเดคเดฟเดฏเดฟเดŸเตเดจเตเดจเต.

... เด•เต‚เดŸเดพเดคเต† เดˆ เดธเต†เดฑเตเดฑเดฟเตฝ เดจเดฟเดจเตเดจเต เด’เดฐเต เดตเตˆเดฑเตเดฑเตโ€Œเดฒเดฟเดธเตเดฑเตเดฑเต เด‰เดฃเตเดŸเดพเด•เตเด•เตเด• - เดžเด™เตเด™เตพ เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เดพเดคเตเดค เดšเดฟเดคเตเดฐเด™เตเด™เดณเตเดŸเต† เด’เดฐเต เดฒเดฟเดธเตเดฑเตเดฑเต. เดฎเดฑเตเดฑเต†เดฒเตเดฒเดพเด‚ เดžเด™เตเด™เตพ เดตเตƒเดคเตเดคเดฟเดฏเดพเด•เตเด•เตเดจเตเดจเต, เด…เดคเดฟเดจเตเดถเต‡เดทเด‚ เดžเด™เตเด™เตพ เด…เดจเดพเดฅ เดธเตเดฑเตเดฑเต‡เดœเต เดšเดฟเดคเตเดฐเด™เตเด™เตพ เด•เดฃเตเดŸเต†เดคเตเดคเดฟ เด…เดตเดฏเตเด‚ เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เตเดจเตเดจเต.

เด˜เดŸเตเดŸเด‚ เดตเดฟเดจเตเดฏเดธเดฟเด•เตเด•เตเด•

เดตเดฟเดถเตเดตเดธเดจเต€เดฏเดฎเดพเดฏ เดชเตเดฐเด–เตเดฏเดพเดชเดจเด‚

เดตเดฟเดจเตเดฏเดพเดธเดคเตเดคเดฟเตฝ เดžเดพเตป เดถเตเดฐเดฆเตเดง เด†เด•เตผเดทเดฟเด•เตเด•เดพเตป เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจ เด†เดฆเตเดฏ เดชเต‹เดฏเดฟเดจเตเดฑเต, เดกเดฟเด•เตเดฒเดฑเต‡เดฑเตเดฑเต€เดตเต เด†เดฏเดฟ เดชเตเดฐเด–เตเดฏเดพเดชเดฟเดšเตเดš, เด…เดชเตเดกเต‡เดฑเตเดฑเต เดšเต†เดฏเตเดค เดฑเดฟเดธเต‹เดดเตเดธเต เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเดจเตเดฑเต† เดฑเต‹เตพเด”เดŸเตเดŸเต เด†เดฃเต. Kubernetes เด‰เดฑเดตเดฟเดŸเด™เตเด™เตพ เดตเดฟเดตเดฐเดฟเด•เตเด•เตเดจเตเดจ เดฏเดฅเดพเตผเดคเตเดฅ YAML เดชเตเดฐเดฎเดพเดฃเด‚ เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเตฝ เดฏเดฅเดพเตผเดคเตเดฅเดคเตเดคเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ เดซเดฒเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดตเดณเดฐเต† เดตเตเดฏเดคเตเดฏเดธเตเดคเดฎเดพเดฃเต. เด•เดพเดฐเดฃเด‚, เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเดจเดฟเดฒเต‡เด•เตเด•เต Kubernetes เดšเต‡เตผเด•เตเด•เตเดจเตเดจเต:

  1. เดเดกเดจเตเดฑเดฟเดซเดฏเดฑเตเด•เตพ;
  2. เดธเต‡เดตเดจ เดตเดฟเดตเดฐเด‚;
  3. เดจเดฟเดฐเดตเดงเดฟ เดธเตเดฅเดฟเดฐ เดฎเต‚เดฒเตเดฏเด™เตเด™เตพ;
  4. เดจเดฟเดฒเดตเดฟเดฒเต† เดจเดฟเดฒเดฏเตเดณเตเดณ เดตเดฟเดญเดพเด—เด‚;
  5. เด…เดกเตเดฎเดฟเดทเตป เดตเต†เดฌเตเดนเตเด•เตเด•เดฟเดจเตเดฑเต† เดญเดพเด—เดฎเดพเดฏเดฟ เดตเดฐเตเดคเตเดคเดฟเดฏ เดฎเดพเดฑเตเดฑเด™เตเด™เตพ;
  6. เดตเดฟเดตเดฟเดง เด•เตบเดŸเตเดฐเต‹เดณเดฑเตเด•เดณเตเดŸเต† (เด’เดชเตเดชเด‚ เดทเต†เดกเตเดฏเต‚เดณเดฑเตเดŸเต†เดฏเตเด‚) เดชเตเดฐเดตเตผเดคเตเดคเดจเดคเตเดคเดฟเดจเตเดฑเต† เดซเดฒเด‚.

เด…เดคเดฟเดจเดพเตฝ, เด’เดฐเต เดชเตเดคเดฟเดฏ เดฑเดฟเดธเต‹เดดเตเดธเต เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดฆเตƒเดถเตเดฏเดฎเดพเด•เตเดฎเตเดชเต‹เตพ (เดชเตเดคเดฟเดฏ), เดจเดฟเดฒเดตเดฟเดฒเตเดณเตเดณ, โ€œเดคเดคเตเดธเดฎเดฏโ€ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดŽเดŸเตเดคเตเดคเต เดชเตเดจเดฐเดพเดฒเต‡เด–เดจเด‚ เดšเต†เดฏเตเดฏเดพเตป เดžเด™เตเด™เตพเด•เตเด•เต เด•เดดเดฟเดฏเดฟเดฒเตเดฒ (เดœเต€เดตเดฟเด•เตเด•เต‚). เด‡เดคเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต, เดจเดฎเตเดฎเตพ เดคเดพเดฐเดคเดฎเตเดฏเด‚ เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต เดชเตเดคเดฟเดฏ เด…เดตเดธเดพเดจเด‚ เดชเตเดฐเดฏเต‹เด—เดฟเดšเตเดš เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต (เด…เดตเดธเดพเดจเด‚ เดชเตเดฐเดฏเต‹เด—เดฟเดšเตเดšเดคเต) เด’เดชเตเดชเด‚ เด‰เดฐเตเดŸเตเดŸเตเด• เดœเต€เดตเดฟเด•เตเด•เต‚ เดชเดพเดšเตเดšเต เดฒเดญเดฟเดšเตเดšเต.

เดˆ เดธเดฎเต€เดชเดจเดคเตเดคเต† เดตเดฟเดณเดฟเด•เตเด•เตเดจเตเดจเต 2-เดตเต‡ เดฒเดฏเดจเด‚. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดนเต†เตฝเดฎเดฟเตฝ เด‡เดคเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต.

เด…เดตเดฟเดŸเต†เดฏเตเด‚ เด‰เดฃเตเดŸเต 3-เดตเต‡ เดฒเดฏเดจเด‚, เด…เดคเดฟเตฝ เดตเตเดฏเดคเตเดฏเดพเดธเดฎเตเดฃเตเดŸเต:

  • เดคเดพเดฐเดคเดฎเตเดฏเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต เด…เดตเดธเดพเดจเด‚ เดชเตเดฐเดฏเต‹เด—เดฟเดšเตเดšเดคเต ะธ เดชเตเดคเดฟเดฏ, เดŽเดจเตเดคเดพเดฃเต เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เดฟเดฏเดคเต†เดจเตเดจเต เดžเด™เตเด™เตพ เดจเต‹เด•เตเด•เตเดจเตเดจเต;
  • เดคเดพเดฐเดคเดฎเตเดฏเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต เดชเตเดคเดฟเดฏ ะธ เดœเต€เดตเดฟเด•เตเด•เต‚, เดŽเดจเตเดคเดพเดฃเต เดšเต‡เตผเดคเตเดคเดคเต เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดฎเดพเดฑเตเดฑเดฟเดฏเดคเต เดŽเดจเตเดจเต เดžเด™เตเด™เตพ เดจเต‹เด•เตเด•เตเดจเตเดจเต;
  • เดธเด‚เด—เตเดฐเดน เดชเดพเดšเตเดšเต เดชเตเดฐเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต เดœเต€เดตเดฟเด•เตเด•เต‚.

เดžเด™เตเด™เตพ เดนเต†เตฝเดฎเดฟเดจเตŠเดชเตเดชเด‚ 1000+ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เตพ เดตเดฟเดจเตเดฏเดธเดฟเด•เตเด•เตเดจเตเดจเต, เด…เดคเดฟเดจเดพเตฝ เดžเด™เตเด™เตพ เดฏเดฅเดพเตผเดคเตเดฅเดคเตเดคเดฟเตฝ 2-เดตเต‡ เดฒเดฏเดจเดคเตเดคเดฟเดฒเต‚เดŸเต†เดฏเดพเดฃเต เดœเต€เดตเดฟเด•เตเด•เตเดจเตเดจเดคเต. เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เดžเด™เตเด™เดณเตเดŸเต† เดชเดพเดšเตเดšเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดžเด™เตเด™เตพ เดชเดฐเดฟเดนเดฐเดฟเดšเตเดš เดจเดฟเดฐเดตเดงเดฟ เดชเตเดฐเดถเตโ€Œเดจเด™เตเด™เดณเตเดฃเตเดŸเต, เด‡เดคเต เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเตป เดนเต†เตฝเดฎเดฟเดจเต† เดธเดนเดพเดฏเดฟเด•เตเด•เตเดจเตเดจเต.

เดฏเดฅเดพเตผเดคเตเดฅ เดฑเต‹เตพเด”เดŸเตเดŸเต เดจเดฟเดฒ

เดžเด™เตเด™เดณเตเดŸเต† CI เดธเดฟเดธเตเดฑเตเดฑเด‚ เด…เดŸเตเดคเตเดค เด‡เดตเดจเตเดฑเดฟเดจเต† เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเด•เตเด•เดฟ Kubernetes-เดจเดพเดฏเดฟ เด’เดฐเต เดชเตเดคเดฟเดฏ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดธเตƒเดทเตเดŸเดฟเดšเตเดš เดถเต‡เดทเด‚, เด…เดคเต เด‰เดชเดฏเต‹เด—เดคเตเดคเดฟเดจเดพเดฏเดฟ เด…เดคเต เด•เตˆเดฎเดพเดฑเตเดจเตเดจเต (เด…เดชเต‡เด•เตเดทเดฟเด•เตเด•เตเด•) เด’เดฐเต เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเดฒเต‡เด•เตเด•เต - เดนเต†เตฝเด‚ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ kubectl apply. เด…เดŸเตเดคเตเดคเดคเดพเดฏเดฟ, เด‡เดคเดฟเดจเด•เด‚ เดตเดฟเดตเดฐเดฟเดšเตเดš N-way เดฒเดฏเดจเด‚ เดธเด‚เดญเดตเดฟเด•เตเด•เตเดจเตเดจเต, เด…เดคเดฟเดจเต Kubernetes API CI เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเดจเตเด‚ เด…เดคเดฟเดจเตเดฑเต† เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเดฟเดจเตเด‚ เด…เด‚เด—เต€เด•เดพเดฐเด‚ เดจเตฝเด•เตเดจเตเดจเต.

werf - เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเดฟเดฒเต† CI / CD-เดฏเตเด•เตเด•เตเดณเตเดณ เดžเด™เตเด™เดณเตเดŸเต† เด‰เดชเด•เดฐเดฃเด‚ (เด…เดตเดฒเต‹เด•เดจเดตเตเด‚ เดตเต€เดกเดฟเดฏเต‹ เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเตเด‚)

เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เด’เดฐเต เดตเดฒเดฟเดฏ เดชเตเดฐเดถเตเดจเดฎเตเดฃเตเดŸเต: เดŽเดฒเตเดฒเดพเดคเตเดคเดฟเดจเตเดฎเตเดชเดฐเดฟ เดตเดฟเดœเดฏเด•เดฐเดฎเดพเดฏ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดŽเดจเตเดจเดพเตฝ เดตเดฟเดœเดฏเด•เดฐเดฎเดพเดฏ เดฑเต‹เตพเด”เดŸเตเดŸเต เด…เตผเดคเตเดฅเดฎเดพเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒ. เดŽเดจเตเดคเต เดฎเดพเดฑเตเดฑเด™เตเด™เดณเดพเดฃเต เดชเตเดฐเดฏเต‹เด—เดฟเด•เตเด•เต‡เดฃเตเดŸเดคเต†เดจเตเดจเต เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเต เดฎเดจเดธเตเดธเดฟเดฒเดพเด•เตเด•เดฟ เด…เดคเต เดชเตเดฐเดฏเต‹เด—เดฟเด•เตเด•เตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เดซเดฒเด‚ เดŽเดจเตเดคเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเดฎเต†เดจเตเดจเต เดžเด™เตเด™เตพเด•เตเด•เต เด‡เดชเตเดชเต‹เดดเตเด‚ เด…เดฑเดฟเดฏเดฟเดฒเตเดฒ. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดซเตเดฐเดฃเตเดŸเตโ€ŒเดŽเตปเดกเดฟเตฝ เดชเต‹เดกเตเด•เตพ เด…เดชเตโ€Œเดกเต‡เดฑเตเดฑเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเตเด‚ เดชเตเดจเดฐเดพเดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเดคเตเด‚ เดตเดฟเดœเดฏเดฟเดšเตเดšเต‡เด•เตเด•เดพเด‚, เดชเด•เตเดทเต‡ เดฌเดพเด•เตเด•เต†เตปเดกเดฟเตฝ เด…เดฒเตเดฒ, เด•เต‚เดŸเดพเดคเต† เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เด‡เดฎเต‡เดœเตเด•เดณเตเดŸเต† เดตเตเดฏเดคเตเดฏเดธเตเดค เดชเดคเดฟเดชเตเดชเตเด•เตพ เดžเด™เตเด™เตพเด•เตเด•เต เดฒเดญเดฟเด•เตเด•เตเด‚.

เดŽเดฒเตเดฒเดพเด‚ เดถเดฐเดฟเดฏเดพเดฏเดฟ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต, เดˆ เดธเตเด•เต€เดฎเดฟเดจเต เด’เดฐเต เด…เดงเดฟเด• เดฒเดฟเด™เตเด•เต เด†เดตเดถเตเดฏเดฎเดพเดฃเต - เด’เดฐเต เดชเตเดฐเดคเตเดฏเต‡เด• เดŸเตเดฐเดพเด•เตเด•เตผ, เด…เดคเต Kubernetes API-เดฏเดฟเตฝ เดจเดฟเดจเตเดจเต เดธเตเดฑเตเดฑเดพเดฑเตเดฑเดธเต เดตเดฟเดตเดฐเด™เตเด™เตพ เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เตเด•เดฏเตเด‚ เด•เดพเดฐเตเดฏเด™เตเด™เดณเตเดŸเต† เดฏเดฅเดพเตผเดคเตเดฅ เด…เดตเดธเตเดฅเดฏเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เด•เต‚เดŸเตเดคเตฝ เดตเดฟเดถเด•เดฒเดจเดคเตเดคเดฟเดจเดพเดฏเดฟ เด…เดคเต เด•เตˆเดฎเดพเดฑเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเด‚. Go-เดฏเดฟเตฝ เดžเด™เตเด™เตพ เด’เดฐเต เด“เดชเตเดชเตบ เดธเต‹เดดเตเดธเต เดฒเตˆเดฌเตเดฐเดฑเดฟ เดธเตƒเดทเตเดŸเดฟเดšเตเดšเต - เด•เตเดฏเต‚เดฌเตเดกเต‹เด—เต (เด…เดคเดฟเดจเตเดฑเต† เด…เดฑเดฟเดฏเดฟเดชเตเดชเต เด•เดพเดฃเตเด• เด‡เดตเดฟเดŸเต†), เด‡เดคเต เดˆ เดชเตเดฐเดถเตเดจเด‚ เดชเดฐเดฟเดนเดฐเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดตเต†เตผเดซเดฟเตฝ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต.

เดตเดฟเดจเตเดฏเดพเดธเดคเตเดคเดฟเดฒเต‹ เดธเตเดฑเตเดฑเต‡เดฑเตเดฑเตเดซเตเตพเดธเต†เดฑเตเดฑเตเด•เดณเดฟเดฒเต‹ เดธเตเดฅเดพเดชเดฟเดšเตเดšเดฟเดŸเตเดŸเตเดณเตเดณ เดตเตเดฏเดพเด–เตเดฏเดพเดจเด™เตเด™เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเดพเดฃเต เดตเต†เตผเดซเต เดคเดฒเดคเตเดคเดฟเดฒเตเดณเตเดณ เดˆ เดŸเตเดฐเดพเด•เตเด•เดฑเดฟเดจเตเดฑเต† เดชเต†เดฐเตเดฎเดพเดฑเตเดฑเด‚ เด•เต‹เตบเดซเดฟเด—เตผ เดšเต†เดฏเตเดคเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต. เดชเตเดฐเดงเดพเดจ เดตเตเดฏเดพเด–เตเดฏเดพเดจเด‚ - fail-mode - เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เด…เตผเดคเตเดฅเด™เตเด™เตพ เดฎเดจเดธเตเดธเดฟเดฒเดพเด•เตเด•เตเดจเตเดจเต:

  • IgnoreAndContinueDeployProcess - เดˆ เด˜เดŸเด•เด‚ เดชเตเดฑเดคเตเดคเต†เดŸเตเด•เตเด•เตเดจเตเดจเดคเดฟเดฒเต† เดชเตเดฐเดถเตเดจเด™เตเด™เตพ เดžเด™เตเด™เตพ เด…เดตเด—เดฃเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดตเดฟเดจเตเดฏเดพเดธเด‚ เดคเตเดŸเดฐเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต;
  • FailWholeDeployProcessImmediately - เดˆ เด˜เดŸเด•เดคเตเดคเดฟเดฒเต† เด’เดฐเต เดชเดฟเดถเด•เต เดตเดฟเดจเตเดฏเดพเดธ เดชเตเดฐเด•เตเดฐเดฟเดฏ เดจเดฟเตผเดคเตเดคเตเดจเตเดจเต;
  • HopeUntilEndOfDeployProcess - เดตเดฟเดจเตเดฏเดพเดธเดคเตเดคเดฟเดจเตเดฑเต† เด…เดตเดธเดพเดจเดคเตเดคเต‹เดŸเต† เดˆ เด˜เดŸเด•เด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดฎเต†เดจเตเดจเต เดžเด™เตเด™เตพ เดชเตเดฐเดคเต€เด•เตเดทเดฟเด•เตเด•เตเดจเตเดจเต.

เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เด‰เดฑเดตเดฟเดŸเด™เตเด™เดณเตเดŸเต†เดฏเตเด‚ เดตเตเดฏเดพเด–เตเดฏเดพเดจ เดฎเต‚เดฒเตเดฏเด™เตเด™เดณเตเดŸเต†เดฏเตเด‚ เดˆ เดธเด‚เดฏเต‹เดœเดจเด‚ fail-mode:

werf - เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเดฟเดฒเต† CI / CD-เดฏเตเด•เตเด•เตเดณเตเดณ เดžเด™เตเด™เดณเตเดŸเต† เด‰เดชเด•เดฐเดฃเด‚ (เด…เดตเดฒเต‹เด•เดจเดตเตเด‚ เดตเต€เดกเดฟเดฏเต‹ เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเตเด‚)

เดžเด™เตเด™เตพ เด†เดฆเตเดฏเดฎเดพเดฏเดฟ เดตเดฟเดจเตเดฏเดธเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ, เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเต (MongoDB) เด‡เดคเตเดตเดฐเต† เดคเดฏเตเดฏเดพเดฑเดพเดฏเต‡เด•เตเด•เดฟเดฒเตเดฒ - เดตเดฟเดจเตเดฏเดพเดธเด™เตเด™เตพ เดชเดฐเดพเดœเดฏเดชเตเดชเต†เดŸเตเด‚. เดŽเดจเตเดจเดพเตฝ เด…เดคเต เด†เดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดจเดฟเดฎเดฟเดทเดคเตเดคเดฟเดจเดพเดฏเดฟ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด•เดพเดคเตเดคเดฟเดฐเดฟเด•เตเด•เดพเด‚, เดตเดฟเดจเตเดฏเดพเดธเด‚ เดคเตเดŸเตผเดจเตเดจเตเด‚ เดจเดŸเด•เตเด•เตเด‚.

เดตเต†เตผเดซเดฟเดฒเต† เด•เตเดฌเต†เดกเต‹เด—เดฟเดจเต เดฐเดฃเตเดŸเต เดตเตเดฏเดพเด–เตเดฏเดพเดจเด™เตเด™เตพ เด•เต‚เดŸเดฟเดฏเตเดฃเตเดŸเต:

  • failures-allowed-per-replica - เด“เดฐเต‹ เดชเด•เตผเดชเตเดชเดฟเดจเตเด‚ เด…เดจเตเดตเดฆเดจเต€เดฏเดฎเดพเดฏ เดตเต€เดดเตเดšเด•เดณเตเดŸเต† เดŽเดฃเตเดฃเด‚;
  • show-logs-until - เด‰เดฐเตเดŸเตเดŸเดฟเดฏ เดŽเดฒเตเดฒเดพ เดชเต‹เดกเตเด•เดณเดฟเตฝ เดจเดฟเดจเตเดจเตเด‚ เดตเต†เตผเดซเต (stdout-เตฝ) เดฒเต‹เด—เตเด•เตพ เด•เดพเดฃเดฟเด•เตเด•เตเดจเตเดจ เดจเดฟเดฎเดฟเดทเด‚ เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟเดฏเดพเดฃเต PodIsReady (เดชเต‹เดกเดฟเดฒเต‡เด•เตเด•เต เดŸเตเดฐเดพเดซเดฟเด•เตเด•เต เดตเดฐเดพเตป เดคเตเดŸเด™เตเด™เตเดฎเตเดชเต‹เตพ เดจเดฎเตเด•เตเด•เต เด†เดตเดถเตเดฏเดฎเดฟเดฒเตเดฒเดพเดคเตเดค เดธเดจเตเดฆเต‡เดถเด™เตเด™เตพ เด…เดตเด—เดฃเดฟเด•เตเด•เดพเตป), เดŽเดจเตเดจเดพเตฝ เดฎเต‚เดฒเตเดฏเด™เตเด™เดณเตเด‚ เดธเดพเดงเตเดตเดพเดฃเต: ControllerIsReady ะธ EndOfDeploy.

เดตเดฟเดจเตเดฏเดพเดธเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดจเดฎเตเด•เตเด•เต เดฎเดฑเตเดฑเต†เดจเตเดคเดพเดฃเต เดตเต‡เดฃเตเดŸเดคเต?

เด‡เดคเดฟเดจเด•เด‚ เดตเดฟเดตเดฐเดฟเดšเตเดš เดฐเดฃเตเดŸเต เดชเต‹เดฏเดฟเดจเตเดฑเตเด•เตพเด•เตเด•เต เดชเตเดฑเดฎเต‡, เดžเด™เตเด™เตพ เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเต:

  • เด•เดพเดฃเดพเตป เดฐเต‡เด–เด•เตพ - เด†เดตเดถเตเดฏเดฎเตเดณเตเดณเดต เดฎเดพเดคเตเดฐเด‚, เด’เดฐเต เดจเดฟเดฐเดฏเดฟเดฒเต† เดŽเดฒเตเดฒเดพเด‚ เด…เดฒเตเดฒ;
  • เดŸเตเดฐเดพเด•เตเด•เต เดชเตเดฐเต‹เด—เดคเดฟ, เด•เดพเดฐเดฃเด‚ เดœเต‹เดฒเดฟ เดจเดฟเดฐเดตเดงเดฟ เดฎเดฟเดจเดฟเดฑเตเดฑเต "เดจเดฟเดถเดฌเตเดฆเดฎเดพเดฏเดฟ" เดคเต‚เด™เตเด™เดฟเด•เตเด•เดฟเดŸเด•เตเด•เตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เด…เดตเดฟเดŸเต† เดŽเดจเตเดคเดพเดฃเต เดธเด‚เดญเดตเดฟเด•เตเด•เตเดจเตเดจเดคเต†เดจเตเดจเต เดฎเดจเดธเตเดธเดฟเดฒเดพเด•เตเด•เต‡เดฃเตเดŸเดคเต เดชเตเดฐเดงเดพเดจเดฎเดพเดฃเต;
  • เด‰เดฃเตเดŸเต เด“เดŸเตเดŸเต‹เดฎเดพเดฑเตเดฑเดฟเด•เต เดฑเต‹เตพเดฌเดพเด•เตเด•เต เดŽเดจเตเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดคเต†เดฑเตเดฑเต เดธเด‚เดญเดตเดฟเดšเตเดšเดพเตฝ (เด…เดคเดฟเดจเดพเตฝ เดตเดฟเดจเตเดฏเดพเดธเดคเตเดคเดฟเดจเตเดฑเต† เดฏเดฅเดพเตผเดคเตเดฅ เดจเดฟเดฒ เด…เดฑเดฟเดฏเตเดจเตเดจเดคเต เดตเดณเดฐเต† เดชเตเดฐเดงเดพเดจเดฎเดพเดฃเต). เดฑเต‹เตพเด”เดŸเตเดŸเต เด†เดฑเตเดฑเต‹เดฎเดฟเด•เต เด†เดฏเดฟเดฐเดฟเด•เตเด•เดฃเด‚: เด’เดจเตเดจเตเด•เดฟเตฝ เด…เดคเต เด…เดตเดธเดพเดจเด‚ เดตเดฐเต† เดชเต‹เด•เตเดจเตเดจเต, เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดŽเดฒเตเดฒเดพเด‚ เด…เดคเดฟเดจเตเดฑเต† เดฎเตเตป เดจเดฟเดฒเดฏเดฟเดฒเต‡เด•เตเด•เต เดฎเดŸเด™เตเด™เตเดจเตเดจเต.

เดซเดฒเด™เตเด™เตพ

เด’เดฐเต เด•เดฎเตเดชเดจเดฟเดฏเต†เดจเตเดจ เดจเดฟเดฒเดฏเดฟเตฝ, เดตเดฟเดตเดฐเดฟเดšเตเดš เดŽเดฒเตเดฒเดพ เดธเต‚เด•เตเดทเตเดฎเดคเด•เดณเตเด‚ เดกเต†เดฒเดฟเดตเดฑเดฟเดฏเตเดŸเต† เดตเดฟเดตเดฟเดง เด˜เดŸเตเดŸเด™เตเด™เดณเดฟเตฝ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดพเตป (เดฌเดฟเตฝเดกเต, เดชเดฌเตเดฒเดฟเดทเต, เดตเดฟเดจเตเดฏเดธเดฟเด•เตเด•เตเด•), เด’เดฐเต เดธเดฟเด เดธเดฟเดธเตเดฑเตเดฑเดตเตเด‚ เดฏเต‚เดŸเตเดŸเดฟเดฒเดฟเดฑเตเดฑเดฟเดฏเตเด‚ เดฎเดคเดฟ. เดตเต†เตผเดซเต.

เด’เดฐเต เดจเดฟเด—เดฎเดจเดคเตเดคเดฟเดจเต เดชเด•เดฐเด‚:

werf - เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเดฟเดฒเต† CI / CD-เดฏเตเด•เตเด•เตเดณเตเดณ เดžเด™เตเด™เดณเตเดŸเต† เด‰เดชเด•เดฐเดฃเด‚ (เด…เดตเดฒเต‹เด•เดจเดตเตเด‚ เดตเต€เดกเดฟเดฏเต‹ เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเตเด‚)

Werf-เดจเตเดฑเต† เดธเดนเดพเดฏเดคเตเดคเต‹เดŸเต†, DevOps เดŽเดžเตเดšเดฟเดจเต€เดฏเตผเดฎเดพเตผเด•เตเด•เตเดณเตเดณ เดงเดพเดฐเดพเดณเด‚ เดชเตเดฐเดถเตโ€Œเดจเด™เตเด™เตพ เดชเดฐเดฟเดนเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเตฝ เดžเด™เตเด™เตพ เดจเดฒเตเดฒ เดชเตเดฐเต‹เด—เดคเดฟ เด•เตˆเดตเดฐเดฟเดšเตเดšเต, เด•เต‚เดŸเดพเดคเต† เดตเดฟเดถเดพเดฒเดฎเดพเดฏ เด•เดฎเตเดฎเตเดฏเต‚เดฃเดฟเดฑเตเดฑเดฟเดฏเต†เด™เตเด•เดฟเดฒเตเด‚ เดˆ เดฏเต‚เดŸเตเดŸเดฟเดฒเดฟเดฑเตเดฑเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดจเดคเตเดคเดฟเตฝ เดชเดฐเต€เด•เตเดทเดฟเดšเตเดšเดพเตฝ เดธเดจเตเดคเต‹เดทเดฟเด•เตเด•เตเด‚. เด’เดฐเตเดฎเดฟเดšเตเดšเต เด’เดฐเต เดจเดฒเตเดฒ เดซเดฒเด‚ เดจเต‡เดŸเตเดจเตเดจเดคเต เดŽเดณเตเดชเตเดชเดฎเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚.

เดตเต€เดกเดฟเดฏเต‹เด•เดณเตเด‚ เดธเตเดฒเตˆเดกเตเด•เดณเตเด‚

เดชเตเดฐเด•เดŸเดจเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดตเต€เดกเดฟเดฏเต‹ (~47 เดฎเดฟเดจเดฟเดฑเตเดฑเต):

เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเดฟเดจเตเดฑเต† เด…เดตเดคเดฐเดฃเด‚:

เดชเดฟ.เดŽเดธเต

เดžเด™เตเด™เดณเตเดŸเต† เดฌเตเดฒเต‹เด—เดฟเดฒเต† เด•เตเดฌเตผเดจเต†เดฑเตเดฑเดธเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดฎเดฑเตเดฑเต เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเตเด•เตพ:

เด…เดตเดฒเด‚เดฌเด‚: www.habr.com

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•