เด’เดฐเต เดœเต†เด™เตเด•เดฟเตปเดธเต เดœเต‹เดฒเดฟเดฏเดฟเตฝ เดกเตˆเดจเดพเดฎเดฟเด•เต เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเต, เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดจเดฟเด™เตเด™เดณเตเดŸเต† เดŸเดพเดธเตโ€Œเด•เต เดŽเด™เตเด™เดจเต† เด‰เดชเดฏเต‹เด•เตเดคเตƒ-เดธเต—เดนเตƒเดฆเดฎเดพเด•เตเด•เดพเด‚

เดถเตเดญเดฆเดฟเดจเด‚, เดนเดฌเตเตผ!

เด‡เดจเตเดจเต เดžเดพเตป เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเดจเตเดณเตเดณ เดตเดดเดฟเด•เดณเดฟเตฝ เด’เดจเตเดจเต เดชเด™เตเด•เดฟเดŸเดพเตป เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเต เดธเดœเต€เดต เดšเต‹เดฏเตโ€Œเดธเต เดชเตเดฒเด—เดฟเตป เดšเตเดฎเดคเดฒ เดจเดฟเตผเดตเดนเดฟเด•เตเด•เตเด• เดœเต†เด™เตเด•เดฟเตปเดธเต เดเดฑเตเดฑเดตเตเด‚ เดเด•เต€เด•เตƒเดคเดตเตเด‚ เด‰เดชเดฏเต‹เด•เตเดคเตƒ เดธเต—เดนเตƒเดฆเดตเตเดฎเดพเดฃเต.

เด†เดฎเตเด–เด‚

DevOps เดŽเดจเตเดจ เด…เดคเตเดคเดฐเดฎเตŠเดฐเต เดšเตเดฐเตเด•เตเด•เต†เดดเตเดคเตเดคเต เดเดŸเดฟ เด•เดฎเตเดฎเตเดฏเต‚เดฃเดฟเดฑเตเดฑเดฟเด•เตเด•เต เด‡เดจเดฟ เดชเตเดคเดฟเดฏ เด•เดพเดฐเตเดฏเดฎเดฒเตเดฒ. เดชเดฒเตผเด•เตเด•เตเด‚, "DevOps" เดŽเดจเตเดจ เดตเดพเด•เตเดฏเด‚ เดเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดคเดฐเดคเตเดคเดฟเดฒเตเดณเตเดณ เดฎเดพเดœเดฟเด•เต เดฌเดŸเตเดŸเดฃเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดชเตเดชเต†เดŸเตเดŸเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต, เด•เตเดฒเดฟเด•เตเด•เต เดšเต†เดฏเตเดฏเตเดฎเตเดชเต‹เตพ, เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เด•เต‹เดกเต เดธเตเดตเดฏเดฎเต‡เดต เดตเดฟเดจเตเดฏเดธเดฟเดšเตเดšเดคเตเด‚ เดชเดฐเต€เด•เตเดทเดฟเดšเตเดšเดคเตเดฎเดพเดฏ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเดพเดฏเดฟ เดฎเดพเดฑเตเดจเตเดจเต (เดŽเดฒเตเดฒเดพเด‚ เดฏเดฅเดพเตผเดคเตเดฅเดคเตเดคเดฟเตฝ เด•เต‚เดŸเตเดคเตฝ เดธเด™เตเด•เต€เตผเดฃเตเดฃเดฎเดพเดฃเต, เดชเด•เตเดทเต‡ เดžเด™เตเด™เตพ เดŽเดฒเตเดฒเดพ เดชเตเดฐเด•เตเดฐเดฟเดฏเด•เดณเดฟเตฝ เดจเดฟเดจเตเดจเตเด‚ เด…เดฎเต‚เตผเดคเตเดคเดฎเดพเดฃเต).

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

เดžเด™เตเด™เดณเตเดŸเต† เด•เดพเดฐเตเดฏเดคเตเดคเดฟเตฝ เดžเด™เตเด™เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด‚ เดœเต†เด™เตเด•เดฟเตปเดธเต.


เด’เดฐเต เดœเต†เด™เตเด•เดฟเตปเดธเต เดœเต‹เดฒเดฟเดฏเดฟเตฝ เดกเตˆเดจเดพเดฎเดฟเด•เต เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเต, เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดจเดฟเด™เตเด™เดณเตเดŸเต† เดŸเดพเดธเตโ€Œเด•เต เดŽเด™เตเด™เดจเต† เด‰เดชเดฏเต‹เด•เตเดคเตƒ-เดธเต—เดนเตƒเดฆเดฎเดพเด•เตเด•เดพเด‚

เดฒเด•เตเดทเตเดฏเด‚

เด’เดฐเต เดจเดฟเดถเตเดšเดฟเดค เดชเดคเดฟเดชเตเดชเดฟเดจเตเดฑเต† เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดคเตเดค เดฎเตˆเด•เตเดฐเต‹เดธเตผเดตเต€เดธเดฟเดจเตเดฑเต† เดจเดฟเตผเดฎเตเดฎเดพเดฃเดตเตเด‚ (เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ) เดตเดฟเดจเตเดฏเดพเดธเดตเตเด‚ เดธเดฎเดพเดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดธเต—เด•เดฐเตเดฏเดชเตเดฐเดฆเดฎเดพเดฏ เดœเต†เด™เตเด•เดฟเตปเดธเต เดœเต‹เดฒเดฟ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเด•.

เด’เดฐเต เดœเต†เด™เตเด•เดฟเตปเดธเต เดœเต‹เดฒเดฟเดฏเดฟเตฝ เดกเตˆเดจเดพเดฎเดฟเด•เต เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเต, เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดจเดฟเด™เตเด™เดณเตเดŸเต† เดŸเดพเดธเตโ€Œเด•เต เดŽเด™เตเด™เดจเต† เด‰เดชเดฏเต‹เด•เตเดคเตƒ-เดธเต—เดนเตƒเดฆเดฎเดพเด•เตเด•เดพเด‚

เด‡เตปเดชเตเดŸเตเดŸเต เดกเดพเดฑเตเดฑ

เดตเดฟเดตเดฟเดง เดฎเตˆเด•เตเดฐเต‹เดธเตผเดตเต€เดธเตเด•เดณเตเดŸเต† เดธเต‹เดดเตเดธเต เด•เต‹เดกเต เด…เดŸเด™เตเด™เตเดจเตเดจ เดจเดฟเดฐเดตเดงเดฟ เดฑเดฟเดชเตเดชเต‹เดธเดฟเดฑเตเดฑเดฑเดฟเด•เตพ เดžเด™เตเด™เดณเตเดŸเต† เดชเด•เตเด•เดฒเตเดฃเตเดŸเต.

เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เตพ เดจเดฟเตผเดตเดšเดฟเด•เตเด•เตเดจเตเดจเต

เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เตพ เดžเด™เตเด™เดณเตเดŸเต† เดœเต‹เดฒเดฟเดฏเตเดŸเต† เด‡เตปเดชเตเดŸเตเดŸเดพเดฏเดฟ เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เดฃเด‚:

  1. เดœเต‹เดฒเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ เดžเด™เตเด™เตพ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เดพเดจเตเด‚ เดตเดฟเดจเตเดฏเดธเดฟเด•เตเด•เดพเดจเตเด‚ เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจ เดฎเตˆเด•เตเดฐเต‹เดธเตผเดตเต€เดธเต เด•เต‹เดกเตเดณเตเดณ เดฑเดฟเดชเตเดชเต‹เดธเดฟเดฑเตเดฑเดฑเดฟเดฏเตเดŸเต† URL.
  2. เดจเดฟเตผเดฎเตเดฎเดพเดฃเด‚ เดธเด‚เดญเดตเดฟเด•เตเด•เตเดจเตเดจ เดชเตเดฐเดคเดฟเดฌเดฆเตเดงเดคเดฏเตเดŸเต† เดเดกเดฟ.

เด…เดคเต เดชเต†เดพเดฒเต†

เดˆ เดŸเดพเดธเตเด•เต เดจเดฟเตผเดตเตเดตเดนเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดเดฑเตเดฑเดตเตเด‚ เดŽเดณเตเดชเตเดชเดฎเตเดณเตเดณ เดฎเดพเตผเด—เตเด—เด‚, เดŸเตˆเดชเตเดชเต เดธเตเดŸเตเดฐเดฟเด‚เด—เต เดฐเดฃเตเดŸเต เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเด• เดŽเดจเตเดจเดคเดพเดฃเต.

เด’เดฐเต เดœเต†เด™เตเด•เดฟเตปเดธเต เดœเต‹เดฒเดฟเดฏเดฟเตฝ เดกเตˆเดจเดพเดฎเดฟเด•เต เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเต, เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดจเดฟเด™เตเด™เดณเตเดŸเต† เดŸเดพเดธเตโ€Œเด•เต เดŽเด™เตเด™เดจเต† เด‰เดชเดฏเต‹เด•เตเดคเตƒ-เดธเต—เดนเตƒเดฆเดฎเดพเด•เตเด•เดพเด‚

เดˆ เดธเดพเดนเดšเดฐเตเดฏเดคเตเดคเดฟเตฝ, เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเต เดฑเดฟเดชเตเดชเต‹เดธเดฟเดฑเตเดฑเดฑเดฟเดฏเดฟเดฒเต‡เด•เตเด•เตเด‚ เด•เดฎเตเดฎเดฟเดฑเตเดฑเต เดเดกเดฟเดฏเดฟเดฒเต‡เด•เตเด•เตเดฎเตเดณเตเดณ เดชเดพเดค เดธเตเดตเดฎเต‡เดงเดฏเดพ เดจเตฝเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต, เด…เดคเต เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏเตเด‚ เดธเต—เด•เดฐเตเดฏเดชเตเดฐเดฆเดฎเดฒเตเดฒ.

เด’เดฐเต เดœเต†เด™เตเด•เดฟเตปเดธเต เดœเต‹เดฒเดฟเดฏเดฟเตฝ เดกเตˆเดจเดพเดฎเดฟเด•เต เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเต, เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดจเดฟเด™เตเด™เดณเตเดŸเต† เดŸเดพเดธเตโ€Œเด•เต เดŽเด™เตเด™เดจเต† เด‰เดชเดฏเต‹เด•เตเดคเตƒ-เดธเต—เดนเตƒเดฆเดฎเดพเด•เตเด•เดพเด‚

เด†เด•เต‡เดฃเตเดŸเดคเดฟเดจเตเดจเต

เด‡เดชเตเดชเต‹เตพ เด…เดคเดฟเดจเตเดฑเต† เดŽเดฒเตเดฒเดพ เด—เตเดฃเด™เตเด™เดณเตเด‚ เดชเดฐเดฟเด—เดฃเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดฎเดฑเตเดฑเตŠเดฐเต เดคเดฐเด‚ เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เตพ เดชเดฐเต€เด•เตเดทเดฟเด•เตเด•เดพเด‚.
เดšเต‹เดฏเตโ€Œเดธเต เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเตผ เดคเดฐเด‚ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด†เดฆเตเดฏ เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเตผ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเด‚, เดฐเดฃเตเดŸเดพเดฎเดคเตเดคเต‡เดคเต - เดธเดœเต€เดต เดšเต‹เดฏเตโ€Œเดธเตเด•เตพ เดฑเดฟเดฏเดพเด•เตเดŸเต€เดตเต เดฑเดซเดฑเตปเดธเต เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเตผ. เดšเต‹เดฏเตโ€Œเดธเต เดคเดฐเด‚ เด‰เดณเตเดณ เดชเดฐเดพเดฎเต€เดฑเตเดฑเดฑเดฟเตฝ, เดžเด™เตเด™เดณเตเดŸเต† เดฎเตˆเด•เตเดฐเต‹เดธเตผเดตเต€เดธเตเด•เดณเตเดŸเต† เด•เต‹เดกเต เดธเด‚เดญเดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เดฑเดฟเดชเตเดชเต‹เดธเดฟเดฑเตเดฑเดฑเดฟเด•เดณเตเดŸเต† เดชเต‡เดฐเตเด•เตพ เดšเต‹เดฏเตโ€Œเดธเต เดซเต€เตฝเดกเดฟเตฝ เดžเด™เตเด™เตพ เดธเตเดตเดฎเต‡เดงเดฏเดพ เดšเต‡เตผเด•เตเด•เตเด‚.

เด’เดฐเต เดœเต†เด™เตเด•เดฟเตปเดธเต เดœเต‹เดฒเดฟเดฏเดฟเตฝ เดกเตˆเดจเดพเดฎเดฟเด•เต เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเต, เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดจเดฟเด™เตเด™เดณเตเดŸเต† เดŸเดพเดธเตโ€Œเด•เต เดŽเด™เตเด™เดจเต† เด‰เดชเดฏเต‹เด•เตเดคเตƒ-เดธเต—เดนเตƒเดฆเดฎเดพเด•เตเด•เดพเด‚

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

เด†เดฆเตเดฏ เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเตผ (เดŸเต†เดธเตเดฑเตเดฑเต1 เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดŸเต†เดธเตเดฑเตเดฑเต2) เดŽเดŸเตเด•เตเด•เตเดจเตเดจ เดฎเต‚เดฒเตเดฏเดคเตเดคเต† เด†เดถเตเดฐเดฏเดฟเดšเตเดšเต เดฐเดฃเตเดŸเดพเดฎเดคเตเดคเต† เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเดฟเดจเตเดฑเต† เดฎเต‚เดฒเตเดฏเด™เตเด™เตพ เดšเดฒเดจเดพเดคเตเดฎเด•เดฎเดพเดฏเดฟ เดชเต‚เดฐเดฟเดชเตเดชเดฟเด•เตเด•เตเด‚, เด•เดพเดฐเดฃเด‚ เด“เดฐเต‹ เดถเต‡เด–เดฐเดคเตเดคเดฟเดจเตเด‚ เด…เดคเดฟเดจเตเดฑเต‡เดคเดพเดฏ เด•เดฎเตเดฎเดฟเดฑเตเดฑเตเด•เดณเตเดŸเต† เดชเดŸเตเดŸเดฟเด•เดฏเตเดฃเตเดŸเต.

เดธเดœเต€เดต เดšเต‹เดฏเตโ€Œเดธเตเด•เตพ เดฑเดฟเดฏเดพเด•เตเดŸเต€เดตเต เดฑเดซเดฑเตปเดธเต เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเตผ เดชเต‚เดฐเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดซเต€เตฝเดกเตเด•เตพ เด‰เดฃเตเดŸเต:

  1. เดชเต‡เดฐเต - เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเตผ เดชเต‡เดฐเต.
  2. เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต - เดฑเดซเดฑเตปเดธเต เดšเต†เดฏเตโ€Œเดค เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเตผ เดซเต€เตฝเดกเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเดฟเดจเตเดฑเต† เดฎเต‚เดฒเตเดฏเด‚ เดฎเดพเดฑเตเดฑเตเดฎเตเดชเต‹เดดเต†เดฒเตเดฒเดพเด‚ เดŽเด•เตโ€Œเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดฏเตเดจเตเดจ เด•เต‹เดกเต (เดžเด™เตเด™เดณเตเดŸเต† เด•เดพเดฐเตเดฏเดคเตเดคเดฟเตฝ, เดžเด™เตเด™เตพ test1 เดจเตเด‚ test2 เดจเตเด‚ เด‡เดŸเดฏเดฟเตฝ เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เตเดฎเตเดชเต‹เตพ).
  3. เดตเดฟเดตเดฐเดฃเด‚ - เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเดฟเดจเตเดฑเต† เดนเตเดฐเดธเตเดต เดตเดฟเดตเดฐเดฃเด‚.
  4. เดšเต‹เดฏเตเดธเต เดคเดฐเด‚ - เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เดจเตฝเด•เตเดจเตเดจ เด’เดฌเตเดœเด•เตเดฑเตเดฑเดฟเดจเตเดฑเต† เดคเดฐเด‚ (เดžเด™เตเด™เดณเตเดŸเต† เด•เดพเดฐเตเดฏเดคเตเดคเดฟเตฝ เดžเด™เตเด™เตพ html เด•เต‹เดกเต เดจเตฝเด•เตเด‚).
  5. เดชเดฐเดพเดฎเตผเดถเดฟเดšเตเดš เดชเดฐเดพเดฎเต€เดฑเตเดฑเตผ - เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเดฟเดจเตเดฑเต† เดชเต‡เดฐเต, เด…เดคเดฟเดจเตเดฑเต† เดฎเต‚เดฒเตเดฏเด‚ เดฎเดพเดฑเตเดฑเตเดฎเตเดชเต‹เตพ, เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เดตเดฟเดญเดพเด—เดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เด•เต‹เดกเต เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดฏเดชเตเดชเต†เดŸเตเด‚.

เด’เดฐเต เดœเต†เด™เตเด•เดฟเตปเดธเต เดœเต‹เดฒเดฟเดฏเดฟเตฝ เดกเตˆเดจเดพเดฎเดฟเด•เต เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเต, เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดจเดฟเด™เตเด™เดณเตเดŸเต† เดŸเดพเดธเตโ€Œเด•เต เดŽเด™เตเด™เดจเต† เด‰เดชเดฏเต‹เด•เตเดคเตƒ-เดธเต—เดนเตƒเดฆเดฎเดพเด•เตเด•เดพเด‚

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

เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดคเตเดค เดถเต‡เด–เดฐเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดŽเดฒเตเดฒเดพ เด•เดฎเตเดฎเดฟเดฑเตเดฑเตเด•เดณเตเด‚ เดฒเดญเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด—เตเดฐเต‚เดตเดฟ เด•เต‹เดกเต:

AUTH = "ะปะพะณะธะฝ ะธ ะฟะฐั€ะพะปัŒ ะฒ Base64"                           
GIT_URL = "url ะดะพ ะฒะฐัˆะตะน SCM (https://bitbucket.org/)"                       
PROJECT_NAME = "ะธะผั ะฟั€ะพะตะบั‚ะฝะพะน ะพะฑะปะฐัั‚ะธ, ะณะดะต ะฝะฐั…ะพะดัั‚ัั ั€ะตะฟะพะทะธั‚ะพั€ะธะธ"

def htmlBuild() {
    html = """
            <html>
            <head>
            <meta charset="windows-1251">
            <style type="text/css">
            div.grayTable {
            text-align: left;
            border-collapse: collapse;
            }
            .divTable.grayTable .divTableCell, .divTable.grayTable .divTableHead {
            padding: 0px 3px;
            }
            .divTable.grayTable .divTableBody .divTableCell {
            font-size: 13px;
            }
            </style>
            </head>
            <body>
        """

    def commitOptions = ""
    getCommitsForMicroservice(MICROSERVICE_NAME).each {
        commitOptions += "<option style='font-style: italic' value='COMMIT=${it.getKey()}'>${it}</option>"
    }
    html += """<p style="display: inline-block;">
        <select id="commit_id" size="1" name="value">
            ${commitOptions}
        </select></p></div>"""

    html += """
            </div>
            </div>
            </div>
            </body>
            </html>
         """
    return html
}

def getCommitsForMicroservice(microserviceRepo) {
    def commits = [:]
    def endpoint = GIT_URL + "/rest/api/1.0/projects/${PROJECT_NAME}/repos/${microserviceRepo}/commits"
    def conn = new URL(endpoint).openConnection()
    conn.setRequestProperty("Authorization", "Basic ${AUTH}")
    def response = new groovy.json.JsonSlurper().parseText(conn.content.text)
    response.values.each {
        commits.put(it.displayId, it.message)
    }
    return commits
}

return htmlBuild()

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

เดŽเดฒเตเดฒเดพ เด˜เดŸเตเดŸเด™เตเด™เดณเตเด‚ เดชเต‚เตผเดคเตเดคเดฟเดฏเดพเด•เตเด•เดฟเดฏ เดถเต‡เดทเด‚, เด…เดคเตเดคเดฐเดฎเตŠเดฐเต เดฎเดจเต‹เดนเดฐเดฎเดพเดฏ เดชเต‡เดœเต เดจเดฎเตเด•เตเด•เต เดฒเดญเดฟเด•เตเด•เดฃเด‚ เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเด•.

เดจเดฟเด™เตเด™เตพ test1 microservice เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดคเตเดคเต†เด™เตเด•เดฟเตฝ:

เด’เดฐเต เดœเต†เด™เตเด•เดฟเตปเดธเต เดœเต‹เดฒเดฟเดฏเดฟเตฝ เดกเตˆเดจเดพเดฎเดฟเด•เต เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเต, เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดจเดฟเด™เตเด™เดณเตเดŸเต† เดŸเดพเดธเตโ€Œเด•เต เดŽเด™เตเด™เดจเต† เด‰เดชเดฏเต‹เด•เตเดคเตƒ-เดธเต—เดนเตƒเดฆเดฎเดพเด•เตเด•เดพเด‚

เดจเดฟเด™เตเด™เตพ test2 microservice เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดคเตเดคเต†เด™เตเด•เดฟเตฝ:

เด’เดฐเต เดœเต†เด™เตเด•เดฟเตปเดธเต เดœเต‹เดฒเดฟเดฏเดฟเตฝ เดกเตˆเดจเดพเดฎเดฟเด•เต เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเต, เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดจเดฟเด™เตเด™เดณเตเดŸเต† เดŸเดพเดธเตโ€Œเด•เต เดŽเด™เตเด™เดจเต† เด‰เดชเดฏเต‹เด•เตเดคเตƒ-เดธเต—เดนเตƒเดฆเดฎเดพเด•เตเด•เดพเด‚

เด“เดฐเต‹ เดคเดตเดฃเดฏเตเด‚ url เดชเด•เตผเดคเตเดคเดฟ เด†เดตเดถเตเดฏเดฎเดพเดฏ เด•เดฎเตเดฎเดฟเดฑเตเดฑเต เดเดกเดฟ เดคเดฟเดฐเดฏเตเดจเตเดจเดคเดฟเดจเต‡เด•เตเด•เดพเตพ เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เตพเด•เตเด•เต เดˆ เดฐเต€เดคเดฟเดฏเดฟเตฝ เดจเดฟเด™เตเด™เดณเตเดŸเต† เดŸเดพเดธเตเด•เตเด•เตเดฎเดพเดฏเดฟ เด‡เดŸเดชเดดเด•เตเดจเตเดจเดคเต เด•เต‚เดŸเตเดคเตฝ เดธเต—เด•เดฐเตเดฏเดชเตเดฐเดฆเดฎเดพเด•เตเดฎเต†เดจเตเดจเต เดธเดฎเตเดฎเดคเดฟเด•เตเด•เตเด•.

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

เดชเดฟ.เดŽเดธเต.เดŽเดธเต เดžเดพเตป เดจเต‡เดฐเดคเตเดคเต† เดŽเดดเตเดคเดฟเดฏเดคเตเดชเต‹เดฒเต†, เดˆ เดฒเต‡เด–เดจเด‚ เด‰เดชเดฏเต‹เด—เดชเตเดฐเดฆเดฎเดพเดฃเต†เด™เตเด•เดฟเตฝ, เด…เดŸเตเดคเตเดคเดคเต เด…เดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚ เด•เต‹เดกเต เดตเดดเดฟ เดœเต†เด™เตเด•เดฟเตปเดธเต เดŸเดพเดธเตเด•เตเด•เตเด•เดณเตเดŸเต† เดกเตˆเดจเดพเดฎเดฟเด•เต เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป.

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

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