เจฒเจ—เจพเจคเจพเจฐ เจคเฉˆเจจเจพเจคเฉ€ เจจเฉ‚เฉฐ เจธเฉฐเจ—เจ เจฟเจค เจ•เจฐเจจ เจฒเจˆ 3 เจชเฉเจฐเจธเจฟเฉฑเจง เจธเจพเจงเจจ (เจฒเจ—เจพเจคเจพเจฐ เจคเฉˆเจจเจพเจคเฉ€)

เจฒเจ—เจพเจคเจพเจฐ เจคเฉˆเจจเจพเจคเฉ€ เจจเฉ‚เฉฐ เจธเฉฐเจ—เจ เจฟเจค เจ•เจฐเจจ เจฒเจˆ 3 เจชเฉเจฐเจธเจฟเฉฑเจง เจธเจพเจงเจจ (เจฒเจ—เจพเจคเจพเจฐ เจคเฉˆเจจเจพเจคเฉ€)

เจจเจฟเจฐเฉฐเจคเจฐ เจคเฉˆเจจเจพเจคเฉ€ เจธเจพเจซเจŸเจตเฉ‡เจ…เจฐ เจตเจฟเจ•เจพเจธ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจตเจฟเจธเจผเฉ‡เจธเจผ เจชเจนเฉเฉฐเจš เจนเฉˆ เจœเจฟเจธเจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจธเฉŒเจซเจŸเจตเฉ‡เจ…เจฐ เจตเจฟเฉฑเจš เจตเฉฑเจ–-เจตเฉฑเจ– เจซเฉฐเจ•เจธเจผเจจเจพเจ‚ เจจเฉ‚เฉฐ เจคเฉ‡เจœเจผเฉ€ เจจเจพเจฒ, เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจ…เจคเฉ‡ เจ•เฉเจธเจผเจฒเจคเจพ เจจเจพเจฒ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจ เจฒเจˆ เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆเฅค

เจฎเฉเฉฑเจ– เจตเจฟเจšเจพเจฐ เจ‡เฉฑเจ• เจญเจฐเฉ‹เจธเฉ‡เจฎเฉฐเจฆ เจธเจตเฉˆเจšเจพเจฒเจค เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจฌเจฃเจพเจ‰เจฃเจพ เจนเฉˆ เจœเฉ‹ เจกเจฟเจตเฉˆเจฒเจชเจฐ เจจเฉ‚เฉฐ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจจเฉ‚เฉฐ เจคเจฟเจ†เจฐ เจ‰เจคเจชเจพเจฆ เจจเฉ‚เฉฐ เจคเฉ‡เจœเจผเฉ€ เจจเจพเจฒ เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจจ เจฆเฉ€ เจ†เจ—เจฟเจ† เจฆเจฟเฉฐเจฆเจพ เจนเฉˆ. เจ‰เจธเฉ‡ เจธเจฎเฉ‡เจ‚, เจ‰เจคเจชเจพเจฆเจจ เจตเจฟเฉฑเจš เจจเจฟเจฐเฉฐเจคเจฐ เจคเจฌเจฆเฉ€เจฒเฉ€เจ†เจ‚ เจ•เฉ€เจคเฉ€เจ†เจ‚ เจœเจพเจ‚เจฆเฉ€เจ†เจ‚ เจนเจจ - เจ‡เจธเจจเฉ‚เฉฐ เจจเจฟเจฐเฉฐเจคเจฐ เจกเจฟเจฒเจฟเจตเจฐเฉ€ เจชเจพเจˆเจชเจฒเจพเจˆเจจ (เจธเฉ€เจกเฉ€ เจชเจพเจˆเจชเจฒเจพเจˆเจจ) เจ•เจฟเจนเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค

เจธเจ•เจฟเฉฑเจฒเจฌเจพเจ•เจธ เจธเจฟเจซเจผเจพเจฐเจฟเจธเจผ เจ•เจฐเจฆเจพ เจนเฉˆ: เจชเฉเจฐเฉˆเจ•เจŸเฉ€เจ•เจฒ เจ•เฉ‹เจฐเจธ "เจฎเฉ‹เจฌเจพเจˆเจฒ เจกเจฟเจตเฉˆเจฒเจชเจฐ เจชเฉเจฐเฉ‹".

เจ…เจธเฉ€เจ‚ เจฏเจพเจฆ เจฆเจฟเจตเจพเจ‰เจ‚เจฆเฉ‡ เจนเจพเจ‚: "Habr" เจฆเฉ‡ เจธเจพเจฐเฉ‡ เจชเจพเจ เจ•เจพเจ‚ เจฒเจˆ - "Habr" เจชเฉเจฐเจšเจพเจฐ เจ•เฉ‹เจก เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ เจ•เจฟเจธเฉ‡ เจตเฉ€ เจธเจ•เจฟเฉฑเจฒเจฌเจพเจ•เจธ เจ•เฉ‹เจฐเจธ เจตเจฟเฉฑเจš เจฆเจพเจ–เจฒเจพ เจฒเฉˆเจฃ เจตเฉ‡เจฒเฉ‡ 10 เจฐเฉ‚เจฌเจฒ เจฆเฉ€ เจ›เฉ‹เจŸเฅค

เจฒเจ—เจพเจคเจพเจฐ เจคเฉˆเจจเจพเจคเฉ€ เจจเฉ‚เฉฐ เจธเฉฐเจ—เจ เจฟเจค เจ•เจฐเจจ เจฒเจˆ 3 เจชเฉเจฐเจธเจฟเฉฑเจง เจธเจพเจงเจจ (เจฒเจ—เจพเจคเจพเจฐ เจคเฉˆเจจเจพเจคเฉ€)

เจชเฉเจฐเจตเจพเจน เจจเฉ‚เฉฐ เจจเจฟเจฏเฉฐเจคเจฐเจฟเจค เจ•เจฐเจจ เจฒเจˆ, เจคเฉเจธเฉ€เจ‚ เจŸเฉ‚เจฒเจธ เจฆเฉ€ เจ‡เฉฑเจ• เจตเจฟเจธเจผเจพเจฒ เจธเจผเฉเจฐเฉ‡เจฃเฉ€ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจœเจฟเจธ เจตเจฟเฉฑเจš เจ…เจฆเจพเจ‡เจ—เฉ€ เจ…เจคเฉ‡ เจชเฉ‚เจฐเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจฎเฉเจซเจค เจฆเฉ‹เจตเฉ‡เจ‚ เจธเจผเจพเจฎเจฒ เจนเจจเฅค เจ‡เจน เจฒเฉ‡เจ– เจกเจฟเจตเฉˆเจฒเจชเจฐเจพเจ‚ เจตเจฟเฉฑเจš เจคเจฟเฉฐเจจ เจธเจญ เจคเฉ‹เจ‚ เจชเฉเจฐเจธเจฟเฉฑเจง เจนเฉฑเจฒเจพเจ‚ เจฆเจพ เจตเจฐเจฃเจจ เจ•เจฐเจฆเจพ เจนเฉˆ เจœเฉ‹ เจนเจฐเฉ‡เจ• เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจฐ เจฒเจˆ เจ‰เจชเจฏเฉ‹เจ—เฉ€ เจนเฉ‹ เจธเจ•เจฆเฉ‡ เจนเจจเฅค

เจœเฉ‡เจจเจ•เจฟเฉฐเจธ

เจชเฉ‚เจฐเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจธเจตเฉˆ-เจจเจฟเจฐเจฎเจฟเจค เจ“เจชเจจ เจธเฉ‹เจฐเจธ เจ†เจŸเฉ‹เจฎเฉ‡เจธเจผเจจ เจธเจฐเจตเจฐเฅค เจฌเจฟเจฒเจกเจฟเฉฐเจ—, เจŸเฉˆเจธเจŸเจฟเฉฐเจ—, เจธเจผเจฟเจชเจฟเฉฐเจ—, เจœเจพเจ‚ เจธเฉŒเจซเจŸเจตเฉ‡เจ…เจฐ เจจเฉ‚เฉฐ เจคเฉˆเจจเจพเจค เจ•เจฐเจจ เจจเจพเจฒ เจธเจฌเฉฐเจงเจค เจนเจฐ เจ•เจฟเจธเจฎ เจฆเฉ‡ เจ•เฉฐเจฎเจพเจ‚ เจจเฉ‚เฉฐ เจธเจตเฉˆเจšเจฒเจฟเจค เจ•เจฐเจจ เจฒเจˆ เจ•เฉฐเจฎ เจ•เจฐเจจเจพ เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจฃ เจนเฉˆเฅค

เจ˜เฉฑเจŸเฉ‹-เจ˜เฉฑเจŸ PC เจฒเฉ‹เฉœเจพเจ‚:

  • 256 MB RAM, 1 GB เจซเจพเจˆเจฒ เจธเจชเฉ‡เจธเฅค

เจ…เจจเฉเจ•เฉ‚เจฒ:

  • 1 เจœเฉ€เจฌเฉ€ เจฐเฉˆเจฎ, 50 เจœเฉ€เจฌเฉ€ เจนเจพเจฐเจก เจกเจฐเจพเจˆเจตเฅค

เจ•เฉฐเจฎ เจ•เจฐเจจ เจฒเจˆ, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจตเจพเจงเฉ‚ เจธเฉŒเจซเจŸเจตเฉ‡เจ…เจฐ เจฆเฉ€ เจตเฉ€ เจฒเฉ‹เฉœ เจชเจตเฉ‡เจ—เฉ€ - Java Runtime Environment (JRE) เจตเจฐเจœเจจ 8เฅค

เจ†เจฐเจ•เฉ€เจŸเฉˆเจ•เจšเจฐ (เจตเจฟเจคเจฐเจฟเจค เจ•เฉฐเจชเจฟเจŠเจŸเจฟเฉฐเจ—) เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจฆเจฟเจ–เจฆเจพ เจนเฉˆ:
เจฒเจ—เจพเจคเจพเจฐ เจคเฉˆเจจเจพเจคเฉ€ เจจเฉ‚เฉฐ เจธเฉฐเจ—เจ เจฟเจค เจ•เจฐเจจ เจฒเจˆ 3 เจชเฉเจฐเจธเจฟเฉฑเจง เจธเจพเจงเจจ (เจฒเจ—เจพเจคเจพเจฐ เจคเฉˆเจจเจพเจคเฉ€)

เจœเฉ‡เจจเจ•เจฟเฉฐเจธ เจธเจฐเจตเจฐ เจ‡เฉฑเจ• เจ‡เฉฐเจธเจŸเจพเจฒเฉ‡เจธเจผเจจ เจนเฉˆ เจœเฉ‹ GUI เจนเฉ‹เจธเจŸเจฟเฉฐเจ— เจฒเจˆ เจœเจผเจฟเฉฐเจฎเฉ‡เจตเจพเจฐ เจนเฉˆ, เจจเจพเจฒ เจนเฉ€ เจชเฉ‚เจฐเฉ€ เจฌเจฟเจฒเจก เจจเฉ‚เฉฐ เจธเฉฐเจ—เจ เจฟเจค เจ…เจคเฉ‡ เจšเจฒเจพเจ‰เจฃ เจฒเจˆเฅค

เจœเฉ‡เจจเจ•เจฟเฉฐเจธ เจจเฉ‹เจก/เจธเจฒเฉ‡เจต/เจฌเจฟเจฒเจก เจธเจฐเจตเจฐ - เจกเจฟเจตเจพเจˆเจธเจพเจ‚ เจœเจฟเจจเฉเจนเจพเจ‚ เจจเฉ‚เฉฐ เจฎเจพเจธเจŸเจฐ (เจฎเจพเจธเจŸเจฐ เจจเฉ‹เจก) เจฆเฉ€ เจคเจฐเจซเฉ‹เจ‚ เจฌเจฟเจฒเจก เจ•เฉฐเจฎ เจ•เจฐเจจ เจฒเจˆ เจธเฉฐเจฐเจšเจฟเจค เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค

เจฒเฉ€เจจเจ•เจธ เจฒเจˆ เจ‡เฉฐเจธเจŸเจพเจฒเฉ‡เจธเจผเจจ

เจชเจนเจฟเจฒเจพเจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจธเจฟเจธเจŸเจฎ เจตเจฟเฉฑเจš เจœเฉ‡เจจเจ•เจฟเฉฐเจธ เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€ เจœเฉ‹เฉœเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ:

cd /tmp && wget -q -O โ€” pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add - echo 'deb pkg.jenkins.io/debian-stable เจฌเจพเจˆเจจเจฐเฉ€/' | sudo tee -a /etc/apt/sources.list.d/je

เจชเฉˆเจ•เฉ‡เจœ เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€ เจ…เฉฑเจชเจกเฉ‡เจŸ เจ•เจฐเฉ‹:

sudo apt update

เจœเฉ‡เจจเจ•เจฟเฉฐเจธ เจธเจฅเจพเจชเจฟเจค เจ•เจฐเฉ‹:

sudo apt jenkins เจ‡เฉฐเจธเจŸเจพเจฒ เจ•เจฐเฉ‹

เจ‡เจธ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจœเฉ‡เจจเจ•เจฟเจจเจธ เจกเจฟเจซเจพเจฒเจŸ เจชเฉ‹เจฐเจŸ 8080 เจฐเจพเจนเฉ€เจ‚ เจธเจฟเจธเจŸเจฎ เจตเจฟเฉฑเจš เจ‰เจชเจฒเจฌเจง เจนเฉ‹เจตเฉ‡เจ—เจพเฅค

เจ•เจพเจฐเจœเจ•เฉเจธเจผเจฒเจคเจพ เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐเจจ เจฒเจˆ, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจฌเฉเจฐเจพเจŠเจœเจผเจฐ เจตเจฟเฉฑเจš เจชเจคเจพ เจ–เฉ‹เจฒเฉเจนเจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ เจฒเฉ‹เจ•เจฒเจนเฉ‹เจธเจŸ:8080เฅค เจธเจฟเจธเจŸเจฎ เจซเจฟเจฐ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจฐเฉ‚เจŸ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจฒเจˆ เจธเจผเฉเจฐเฉ‚เจ†เจคเฉ€ เจชเจพเจธเจตเจฐเจก เจฆเฉ‡เจฃ เจฒเจˆ เจชเฉเฉฑเจ›เฉ‡เจ—เจพเฅค เจ‡เจน เจชเจพเจธเจตเจฐเจก เจซเจพเจˆเจฒ /var/lib/jenkins/secrets/initialAdminPassword เจตเจฟเฉฑเจš เจธเจฅเจฟเจค เจนเฉˆเฅค

เจนเฉเจฃ เจธเจญ เจ•เฉเจ เจœเจพเจฃ เจฒเจˆ เจคเจฟเจ†เจฐ เจนเฉˆ, เจคเฉเจธเฉ€เจ‚ CI/CD เจซเจฒเฉ‹ เจฌเจฃเจพเจ‰เจฃเจพ เจธเจผเฉเจฐเฉ‚ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค เจตเจฐเจ•เจฌเฉˆเจ‚เจš เจฆเจพ เจ—เฉเจฐเจพเจซเจฟเจ•เจฒ เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจฆเจฟเจ–เจฆเจพ เจนเฉˆ:

เจฒเจ—เจพเจคเจพเจฐ เจคเฉˆเจจเจพเจคเฉ€ เจจเฉ‚เฉฐ เจธเฉฐเจ—เจ เจฟเจค เจ•เจฐเจจ เจฒเจˆ 3 เจชเฉเจฐเจธเจฟเฉฑเจง เจธเจพเจงเจจ (เจฒเจ—เจพเจคเจพเจฐ เจคเฉˆเจจเจพเจคเฉ€)

เจฒเจ—เจพเจคเจพเจฐ เจคเฉˆเจจเจพเจคเฉ€ เจจเฉ‚เฉฐ เจธเฉฐเจ—เจ เจฟเจค เจ•เจฐเจจ เจฒเจˆ 3 เจชเฉเจฐเจธเจฟเฉฑเจง เจธเจพเจงเจจ (เจฒเจ—เจพเจคเจพเจฐ เจคเฉˆเจจเจพเจคเฉ€)

เจœเฉ‡เจจเจ•เจฟเฉฐเจธ เจฆเฉ€เจ†เจ‚ เจธเจผเจ•เจคเฉ€เจ†เจ‚:

  • เจฎเจพเจธเจŸเจฐ/เจธเจฒเฉ‡เจต เจ†เจฐเจ•เฉ€เจŸเฉˆเจ•เจšเจฐ เจฆเฉเจ†เจฐเจพ เจชเฉเจฐเจฆเจพเจจ เจ•เฉ€เจคเฉ€ เจธเจ•เฉ‡เจฒเฉ‡เจฌเจฟเจฒเจŸเฉ€;
  • REST XML/JSON API เจฆเฉ€ เจ‰เจชเจฒเจฌเจงเจคเจพ;
  • เจชเจฒเฉฑเจ—เจ‡เจจเจพเจ‚ เจฒเจˆ เจฌเจนเฉเจค เจธเจพเจฐเฉ€เจ†เจ‚ เจเจ•เจธเจŸเฉˆเจ‚เจธเจผเจจเจพเจ‚ เจจเฉ‚เฉฐ เจœเฉ‹เฉœเจจ เจฆเฉ€ เจธเจฎเจฐเฉฑเจฅเจพ;
  • เจธเจฐเจ—เจฐเจฎ เจ…เจคเฉ‡ เจจเจฟเจฐเฉฐเจคเจฐ เจตเจฟเจ•เจพเจธเจธเจผเฉ€เจฒ เจญเจพเจˆเจšเจพเจฐเจพเฅค

เจจเฉเจ•เจธเจพเจจ:

  • เจ•เฉ‹เจˆ เจตเจฟเจธเจผเจฒเฉ‡เจธเจผเจฃเจพเจคเจฎเจ• เจฌเจฒเจพเจ• เจจเจนเฉ€เจ‚ เจนเฉˆ;
  • เจฌเจนเฉเจค เจ‰เจชเจญเฉ‹เจ—เจคเจพ-เจ…เจจเฉเจ•เฉ‚เจฒ เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ เจจเจนเฉ€เจ‚ เจนเฉˆ.

เจŸเฉ€เจฎเจธเจฟเจŸเฉ€

JetBrains เจคเฉ‹เจ‚ เจตเจชเจพเจฐเจ• เจตเจฟเจ•เจพเจธเฅค เจธเจฐเจตเจฐ เจธเจงเจพเจฐเจจ เจธเฉˆเฉฑเจŸเจ…เฉฑเจช เจ…เจคเฉ‡ เจ‡เฉฑเจ• เจธเจผเจพเจจเจฆเจพเจฐ เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ เจจเจพเจฒ เจตเจงเฉ€เจ† เจนเฉˆเฅค เจชเฉ‚เจฐเจต-เจจเจฟเจฐเจงเจพเจฐเจค เจธเฉฐเจฐเจšเจจเจพ เจตเจฟเฉฑเจš เจซเฉฐเจ•เจธเจผเจจเจพเจ‚ เจฆเฉ€ เจ‡เฉฑเจ• เจตเฉฑเจกเฉ€ เจ—เจฟเจฃเจคเฉ€ เจนเฉˆ, เจ…เจคเฉ‡ เจ‰เจชเจฒเจฌเจง เจชเจฒเฉฑเจ—เจ‡เจจเจพเจ‚ เจฆเฉ€ เจ—เจฟเจฃเจคเฉ€ เจฒเจ—เจพเจคเจพเจฐ เจตเจง เจฐเจนเฉ€ เจนเฉˆเฅค

Java Runtime Environment (JRE) เจตเจฐเจœเจจ 8 เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค

เจธเจฐเจตเจฐ เจนเจพเจฐเจกเจตเฉ‡เจ…เจฐ เจฒเฉ‹เฉœเจพเจ‚ เจ—เฉˆเจฐ-เจจเจพเจœเจผเฉเจ• เจนเจจ:

  • เจฐเฉˆเจฎ - 3,2 GB;
  • เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฐ - เจฆเฉ‹เจนเจฐเจพ-เจ•เฉ‹เจฐ, 3,2 GHz;
  • 1 Gb/s เจฆเฉ€ เจธเจฎเจฐเฉฑเจฅเจพ เจตเจพเจฒเจพ เจธเฉฐเจšเจพเจฐ เจšเฉˆเจจเจฒเฅค

เจธเจฐเจตเจฐ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‰เฉฑเจš เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจฆเจฟเฉฐเจฆเจพ เจนเฉˆ:

  • 60 เจฌเจฟเจฒเจก เจ•เฉŒเจ‚เจซเจฟเจ—เจฐเฉ‡เจธเจผเจจเจพเจ‚ เจตเจพเจฒเฉ‡ 300 เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ;
  • เจฌเจฟเจฒเจก เจฒเฉŒเจ— เจฒเจˆ 2 MB เจตเฉฐเจก;
  • 50 เจฌเจฟเจฒเจก เจเจœเฉฐเจŸ;
  • เจตเฉˆเฉฑเจฌ เจธเฉฐเจธเจ•เจฐเจฃ เจตเจฟเฉฑเจš 50 เจ‰เจชเจญเฉ‹เจ—เจคเจพเจตเจพเจ‚ เจ…เจคเฉ‡ IDE เจตเจฟเฉฑเจš 30 เจ‰เจชเจญเฉ‹เจ—เจคเจพเจตเจพเจ‚ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฆเฉ€ เจฏเฉ‹เจ—เจคเจพ;
  • เจฌเจพเจนเจฐเฉ€ VCS เจฆเฉ‡ 100 เจ•เจจเฉˆเจ•เจธเจผเจจ, เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡ เจชเจฐเจซเฉ‹เจฐเจธ เจ…เจคเฉ‡ เจธเจฌเจตเจฐเจœเจผเจจเฅค เจ”เจธเจค เจคเจฌเจฆเฉ€เจฒเฉ€ เจฆเจพ เจธเจฎเจพเจ‚ 120 เจธเจ•เจฟเฉฐเจŸ เจนเฉˆ;
  • เจชเฉเจฐเจคเฉ€ เจฆเจฟเจจ 150 เจคเฉ‹เจ‚ เจตเฉฑเจง เจธเฉ‹เจงเจพเจ‚;
  • เจ‡เฉฑเจ• เจธเจฐเจตเจฐ 'เจคเฉ‡ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจเจพ;
  • JVM เจธเจฐเจตเจฐ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจธเฉˆเจŸเจฟเฉฐเจ—เจพเจ‚: -Xmx1100m -XX:MaxPermSize=120m.

เจเจœเฉฐเจŸ เจฆเฉ€เจ†เจ‚ เจฒเฉ‹เฉœเจพเจ‚ เจšเฉฑเจฒ เจฐเจนเฉ€เจ†เจ‚ เจ…เจธเฉˆเจ‚เจฌเจฒเฉ€เจ†เจ‚ 'เจคเฉ‡ เจ†เจงเจพเจฐเจฟเจค เจนเจจเฅค เจธเจฐเจตเจฐ เจฆเจพ เจฎเฉเฉฑเจ– เจ•เฉฐเจฎ เจธเจพเจฐเฉ‡ เจœเฉเฉœเฉ‡ เจนเฉ‹เจ เจเจœเฉฐเจŸเจพเจ‚ เจฆเฉ€ เจจเจฟเจ—เจฐเจพเจจเฉ€ เจ•เจฐเจจเจพ เจ…เจคเฉ‡ เจ‡เจนเจจเจพเจ‚ เจเจœเฉฐเจŸเจพเจ‚ เจจเฉ‚เฉฐ เจ…เจจเฉเจ•เฉ‚เจฒเจคเจพ เจฒเฉ‹เฉœเจพเจ‚ เจฆเฉ‡ เจ†เจงเจพเจฐ 'เจคเฉ‡ เจ•เจคเจพเจฐเจฌเฉฑเจง เจ…เจธเฉˆเจ‚เจฌเจฒเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจตเฉฐเจกเจฃเจพ, เจจเจคเฉ€เจœเจฟเจ†เจ‚ เจฆเฉ€ เจฐเจฟเจชเฉ‹เจฐเจŸ เจ•เจฐเจจเจพ เจนเฉˆเฅค เจเจœเฉฐเจŸ เจ•เจˆ เจคเจฐเฉเจนเจพเจ‚ เจฆเฉ‡ เจชเจฒเฉ‡เจŸเจซเจพเจฐเจฎเจพเจ‚ เจ…เจคเฉ‡ เจ“เจชเจฐเฉ‡เจŸเจฟเฉฐเจ— เจธเจฟเจธเจŸเจฎเจพเจ‚ เจฆเฉ‡ เจจเจพเจฒ-เจจเจพเจฒ เจชเจนเจฟเจฒเจพเจ‚ เจคเฉ‹เจ‚ เจธเฉฐเจฐเจšเจฟเจค เจตเจพเจคเจพเจตเจฐเจฃ เจตเจฟเฉฑเจš เจ†เจ‰เจ‚เจฆเฉ‡ เจนเจจเฅค

เจฌเจฟเจฒเจก เจจเจคเฉ€เจœเจฟเจ†เจ‚ เจฌเจพเจฐเฉ‡ เจธเจพเจฐเฉ€ เจœเจพเจฃเจ•เจพเจฐเฉ€ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจตเจฟเฉฑเจš เจธเจŸเฉ‹เจฐ เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆเฅค เจฎเฉเฉฑเจ– เจคเฉŒเจฐ 'เจคเฉ‡ เจ‡เจน เจ‡เจคเจฟเจนเจพเจธ เจ…เจคเฉ‡ เจนเฉ‹เจฐ เจธเจฎเจพเจจ เจกเฉ‡เจŸเจพ, VCS เจฌเจฆเจฒเจพเจ…, เจเจœเฉฐเจŸ, เจฌเจฟเจฒเจก เจ•เจคเจพเจฐเจพเจ‚, เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจ–เจพเจคเฉ‡ เจ…เจคเฉ‡ เจ…เจจเฉเจฎเจคเฉ€เจ†เจ‚ เจนเจจเฅค เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจตเจฟเฉฑเจš เจธเจฟเจฐเจซ เจฌเจฟเจฒเจก เจฒเฉŒเจ— เจ…เจคเฉ‡ เจ•เจฒเจพเจคเจฎเจ• เจšเฉ€เจœเจผเจพเจ‚ เจธเจผเจพเจฎเจฒ เจจเจนเฉ€เจ‚ เจนเจจเฅค

เจฒเจ—เจพเจคเจพเจฐ เจคเฉˆเจจเจพเจคเฉ€ เจจเฉ‚เฉฐ เจธเฉฐเจ—เจ เจฟเจค เจ•เจฐเจจ เจฒเจˆ 3 เจชเฉเจฐเจธเจฟเฉฑเจง เจธเจพเจงเจจ (เจฒเจ—เจพเจคเจพเจฐ เจคเฉˆเจจเจพเจคเฉ€)

เจฒเฉ€เจจเจ•เจธ เจฒเจˆ เจ‡เฉฐเจธเจŸเจพเจฒเฉ‡เจธเจผเจจ

เจŸเฉ‹เจฎเจ•เฉˆเจŸ เจธเจฐเจตเจฒเฉ‡เจŸ เจ•เฉฐเจŸเฉ‡เจจเจฐ เจจเจพเจฒ เจŸเฉ€เจฎเจธเจฟเจŸเฉ€ เจจเฉ‚เฉฐ เจนเฉฑเจฅเฉ€เจ‚ เจธเจฅเจพเจชเจค เจ•เจฐเจจ เจฒเจˆ, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจŸเฉ€เจฎเจธเจฟเจŸเฉ€ เจ†เจฐเจ•เจพเจˆเจต เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเฉ€ เจšเจพเจนเฉ€เจฆเฉ€ เจนเฉˆ: TeamCity .tar.gz. เจกเจพเจŠเจจเจฒเฉ‹เจก เจ•เจฐเฉ‹ เจคเฉเจธเฉ€เจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจ‡เฉฑเจฅเฉ‹เจ‚ เจชเฉเจฐเจพเจชเจค เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹.

tar -xfz TeamCity.tar.gz

/bin/runAll. sh [เจธเจผเฉเจฐเฉ‚|เจธเจŸเจพเจช]

เจœเจฆเฉ‹เจ‚ เจคเฉเจธเฉ€เจ‚ เจชเจนเจฟเจฒเฉ€ เจตเจพเจฐ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจกเจพเจŸเจพเจฌเฉ‡เจธ เจฆเฉ€ เจ•เจฟเจธเจฎ เจšเฉเจฃเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ เจœเจฟเจธ เจตเจฟเฉฑเจš เจ…เจธเฉˆเจ‚เจฌเจฒเฉ€ เจกเฉ‡เจŸเจพ เจธเจŸเฉ‹เจฐ เจ•เฉ€เจคเจพ เจœเจพเจตเฉ‡เจ—เจพเฅค

เจฒเจ—เจพเจคเจพเจฐ เจคเฉˆเจจเจพเจคเฉ€ เจจเฉ‚เฉฐ เจธเฉฐเจ—เจ เจฟเจค เจ•เจฐเจจ เจฒเจˆ 3 เจชเฉเจฐเจธเจฟเฉฑเจง เจธเจพเจงเจจ (เจฒเจ—เจพเจคเจพเจฐ เจคเฉˆเจจเจพเจคเฉ€)

เจกเจฟเจซเจพเจฒเจŸ เจธเฉฐเจฐเจšเจจเจพ เจšเจพเจฒเฉ‚ เจนเฉˆ เจฒเฉ‹เจ•เจฒเจนเฉ‹เจธเจŸ:8111/ เจ‡เฉฑเจ•เฉ‹ เจชเฉ€เจธเฉ€ 'เจคเฉ‡ เจšเฉฑเจฒ เจฐเจนเฉ‡ เจ‡เฉฑเจ• เจฐเจœเจฟเจธเจŸเจฐเจก เจฌเจฟเจฒเจก เจเจœเฉฐเจŸ เจจเจพเจฒเฅค

เจŸเฉ€เจฎเจธเจฟเจŸเฉ€ เจฆเฉ€เจ†เจ‚ เจ–เฉ‚เจฌเฉ€เจ†เจ‚:

  • เจธเจงเจพเจฐเจจ เจธเฉˆเฉฑเจŸเจ…เฉฑเจช;
  • เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจชเฉฑเจ–เฉ€ เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ
  • เจฌเจฟเจฒเจŸ-เจ‡เจจ เจซเฉฐเจ•เจธเจผเจจ เจฆเฉ€ เจ‡เฉฑเจ• เจตเฉฑเจกเฉ€ เจ—เจฟเจฃเจคเฉ€;
  • เจธเจนเจพเจ‡เจคเจพ เจธเฉ‡เจตเจพ;
  • เจ‡เฉฑเจ• RESTful API เจนเฉˆ;
  • เจšเฉฐเจ—เฉ‡ เจฆเจธเจคเจพเจตเฉ‡เจœเจผ;
  • เจšเฉฐเจ—เฉ€ เจธเฉเจฐเฉฑเจ–เจฟเจ†.

เจจเฉเจ•เจธเจพเจจ:

  • เจธเฉ€เจฎเจค เจเจ•เฉ€เจ•เจฐเจฃ;
  • เจ‡เจน เจ‡เฉฑเจ• เจ…เจฆเจพเจ‡เจ—เฉ€ เจธเฉฐเจฆ เจนเฉˆ;
  • เจ‡เฉฑเจ• เจ›เฉ‹เจŸเจพ เจญเจพเจˆเจšเจพเจฐเจพ (เจœเฉ‹, เจนเจพเจฒเจพเจ‚เจ•เจฟ, เจตเจง เจฐเจฟเจนเจพ เจนเฉˆ)เฅค

GoCD

เจ‡เฉฑเจ• เจ“เจชเจจ เจธเฉ‹เจฐเจธ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจœเจฟเจธ เจจเฉ‚เฉฐ เจ‡เฉฐเจธเจŸเจพเจฒเฉ‡เจธเจผเจจ เจ…เจคเฉ‡ เจ“เจชเจฐเฉ‡เจธเจผเจจ เจฒเจˆ Java Runtime Environment (JRE) เจตเจฐเจœเจจ 8 เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค

เจธเจฟเจธเจŸเจฎ เจฒเฉ‹เฉœเจพเจ‚:

  • RAM - 1 GB เจ˜เฉฑเจŸเฉ‹-เจ˜เฉฑเจŸ, เจนเฉ‹เจฐ เจฌเจฟเจนเจคเจฐ เจนเฉˆ;
  • เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฐ - เจฆเฉ‹เจนเจฐเจพ-เจ•เฉ‹เจฐ, 2 GHz เจฆเฉ€ เจ•เฉ‹เจฐ เจฌเจพเจฐเฉฐเจฌเจพเจฐเจคเจพ เจฆเฉ‡ เจจเจพเจฒ;
  • เจนเจพเจฐเจก เจกเจฐเจพเจˆเจต - เจ˜เฉฑเจŸเฉ‹-เจ˜เฉฑเจŸ 1 GB เจ–เจพเจฒเฉ€ เจฅเจพเจ‚เฅค

เจเจœเฉฐเจŸ:

  • RAM - เจ˜เฉฑเจŸเฉ‹ เจ˜เฉฑเจŸ 128 MB, เจนเฉ‹เจฐ เจฌเจฟเจนเจคเจฐ เจนเฉˆ;
  • เจชเฉเจฐเฉ‹เจธเฉˆเจธเจฐ - เจ˜เฉฑเจŸเฉ‹ เจ˜เฉฑเจŸ 2 GHz.

เจธเจฐเจตเจฐ เจเจœเฉฐเจŸเจพเจ‚ เจฆเฉ‡ เจธเฉฐเจšเจพเจฒเจจ เจจเฉ‚เฉฐ เจฏเจ•เฉ€เจจเฉ€ เจฌเจฃเจพเจ‰เจ‚เจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจฒเจˆ เจ‡เฉฑเจ• เจธเฉเจตเจฟเจงเจพเจœเจจเจ• เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจฆเจพ เจนเฉˆ:

เจฒเจ—เจพเจคเจพเจฐ เจคเฉˆเจจเจพเจคเฉ€ เจจเฉ‚เฉฐ เจธเฉฐเจ—เจ เจฟเจค เจ•เจฐเจจ เจฒเจˆ 3 เจชเฉเจฐเจธเจฟเฉฑเจง เจธเจพเจงเจจ (เจฒเจ—เจพเจคเจพเจฐ เจคเฉˆเจจเจพเจคเฉ€)

เจชเฉœเจพเจ…/เจจเฉŒเจ•เจฐเฉ€เจ†เจ‚/เจ•เจพเจฐเจœ:

เจฒเจ—เจพเจคเจพเจฐ เจคเฉˆเจจเจพเจคเฉ€ เจจเฉ‚เฉฐ เจธเฉฐเจ—เจ เจฟเจค เจ•เจฐเจจ เจฒเจˆ 3 เจชเฉเจฐเจธเจฟเฉฑเจง เจธเจพเจงเจจ (เจฒเจ—เจพเจคเจพเจฐ เจคเฉˆเจจเจพเจคเฉ€)

เจฒเฉ€เจจเจ•เจธ เจฒเจˆ เจ‡เฉฐเจธเจŸเจพเจฒเฉ‡เจธเจผเจจ

เจเจ•เฉ‹ "เจกเฉˆเจฌ download.gocd.org /โ€ | sudo tee /etc/apt/sources.list.d/gocd.list

curl download.gocd.org/GOCD-GPG-KEY.asc | sudo apt-key เจเจก -
add-apt-repository ppa:openjdk-r/ppa

apt-get update

apt-get install -y openjdk-8-jre

apt-get install go-server

apt-get install go-agent

/etc/init.d/go-server [start|stop|status|restart]

/etc/init.d/go-agent [start|stop|status|restart]

เจฎเฉ‚เจฒ เจฐเฉ‚เจช เจตเจฟเฉฑเจš GoCd เจšเฉฑเจฒเจฆเจพ เจนเฉˆ เจฒเฉ‹เจ•เจฒเจนเฉ‹เจธเจŸ: 8153

GoCd เจฆเฉ€เจ†เจ‚ เจธเจผเจ•เจคเฉ€เจ†เจ‚:

  • เจ“เจชเจจ เจธเฉ‹เจฐเจธ;
  • เจธเจงเจพเจฐเจจ เจ‡เฉฐเจธเจŸเจพเจฒเฉ‡เจธเจผเจจ เจ…เจคเฉ‡ เจธเฉฐเจฐเจšเจจเจพ;
  • เจšเฉฐเจ—เฉ‡ เจฆเจธเจคเจพเจตเฉ‡เจœเจผ;

  • เจฎเจนเจพเจจ เจฏเฉ‚เจœเจผเจฐ เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ:

เจฒเจ—เจพเจคเจพเจฐ เจคเฉˆเจจเจพเจคเฉ€ เจจเฉ‚เฉฐ เจธเฉฐเจ—เจ เจฟเจค เจ•เจฐเจจ เจฒเจˆ 3 เจชเฉเจฐเจธเจฟเฉฑเจง เจธเจพเจงเจจ (เจฒเจ—เจพเจคเจพเจฐ เจคเฉˆเจจเจพเจคเฉ€)

  • เจ‡เฉฑเจ• เจฆเฉเจฐเจฟเจธเจผ เจตเจฟเฉฑเจš เจ•เจฆเจฎ-เจฆเจฐ-เจ•เจฆเจฎ GoCD เจคเฉˆเจจเจพเจคเฉ€ เจฎเจพเจฐเจ— เจฆเจฟเจ–เจพเจ‰เจฃ เจฆเฉ€ เจธเจฎเจฐเฉฑเจฅเจพ:

เจฒเจ—เจพเจคเจพเจฐ เจคเฉˆเจจเจพเจคเฉ€ เจจเฉ‚เฉฐ เจธเฉฐเจ—เจ เจฟเจค เจ•เจฐเจจ เจฒเจˆ 3 เจชเฉเจฐเจธเจฟเฉฑเจง เจธเจพเจงเจจ (เจฒเจ—เจพเจคเจพเจฐ เจคเฉˆเจจเจพเจคเฉ€)

  • เจชเจพเจˆเจชเจฒเจพเจˆเจจ เจฌเจฃเจคเจฐ เจฆเจพ เจธเจผเจพเจจเจฆเจพเจฐ เจชเฉเจฐเจฆเจฐเจธเจผเจจ:

เจฒเจ—เจพเจคเจพเจฐ เจคเฉˆเจจเจพเจคเฉ€ เจจเฉ‚เฉฐ เจธเฉฐเจ—เจ เจฟเจค เจ•เจฐเจจ เจฒเจˆ 3 เจชเฉเจฐเจธเจฟเฉฑเจง เจธเจพเจงเจจ (เจฒเจ—เจพเจคเจพเจฐ เจคเฉˆเจจเจพเจคเฉ€)

  • GoCD เจกเฉŒเจ•เจฐ, AWS เจธเจฎเฉ‡เจค เจธเจญ เจคเฉ‹เจ‚ เจชเฉเจฐเจธเจฟเฉฑเจง เจ•เจฒเจพเจ‰เจก เจตเจพเจคเจพเจตเจฐเจจ เจตเจฟเฉฑเจš เจธเฉ€เจกเฉ€ เจตเจฐเจ•เจซเจฒเฉ‹ เจจเฉ‚เฉฐ เจ…เจจเฉเจ•เฉ‚เจฒ เจฌเจฃเจพเจ‰เจ‚เจฆเจพ เจนเฉˆ;
  • เจŸเฉ‚เจฒ เจชเจพเจˆเจชเจฒเจพเจˆเจจ เจตเจฟเฉฑเจš เจธเจฎเฉฑเจธเจฟเจ†เจตเจพเจ‚ เจจเฉ‚เฉฐ เจ เฉ€เจ• เจ•เจฐเจจเจพ เจธเฉฐเจญเจต เจฌเจฃเจพเจ‰เจ‚เจฆเจพ เจนเฉˆ, เจœเจฟเจธ เจฒเจˆ เจฐเฉ€เจ…เจฒ เจŸเจพเจˆเจฎ เจตเจฟเฉฑเจš เจตเจšเจจเจฌเฉฑเจงเจคเจพ เจคเฉ‹เจ‚ เจฒเฉˆ เจ•เฉ‡ เจคเฉˆเจจเจพเจคเฉ€ เจคเฉฑเจ• เจนเจฐ เจคเจฌเจฆเฉ€เจฒเฉ€ เจฆเฉ€ เจŸเจฐเฉˆเจ•เจฟเฉฐเจ— เจนเฉเฉฐเจฆเฉ€ เจนเฉˆเฅค

เจจเฉเจ•เจธเจพเจจ:

  • เจ˜เฉฑเจŸเฉ‹-เจ˜เฉฑเจŸ เจ‡เฉฑเจ• เจเจœเฉฐเจŸ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ;
  • เจธเจพเจฐเฉ‡ เจฎเฉเจ•เฉฐเจฎเจฒ เจ•เฉ€เจคเฉ‡ เจ•เฉฐเจฎเจพเจ‚ เจจเฉ‚เฉฐ เจชเฉเจฐเจฆเจฐเจธเจผเจฟเจค เจ•เจฐเจจ เจฒเจˆ เจ•เฉ‹เจˆ เจ•เฉฐเจธเฉ‹เจฒ เจจเจนเฉ€เจ‚ เจนเฉˆ;
  • เจนเจฐเฉ‡เจ• เจ•เจฎเจพเจ‚เจก เจจเฉ‚เฉฐ เจšเจฒเจพเจ‰เจฃ เจฒเจˆ, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจชเจพเจˆเจชเจฒเจพเจˆเจจ เจธเฉฐเจฐเจšเจจเจพ เจฒเจˆ เจ‡เฉฑเจ• เจ•เฉฐเจฎ เจฌเจฃเจพเจ‰เจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ;
  • เจชเจฒเฉฑเจ—เจ‡เจจ เจจเฉ‚เฉฐ เจธเจฅเจพเจชเจฟเจค เจ•เจฐเจจ เจฒเจˆ, เจคเฉเจนเจพเจจเฉ‚เฉฐ .jar เจซเจพเจˆเจฒ เจจเฉ‚เฉฐ /plugins/external เจตเจฟเฉฑเจš เจฒเจฟเจœเจพเจฃ เจ…เจคเฉ‡ เจธเจฐเจตเจฐ เจจเฉ‚เฉฐ เจฎเฉเฉœ เจšเจพเจฒเฉ‚ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ;
  • เจฎเฉเจ•เจพเจฌเจฒเจคเจจ เจ›เฉ‹เจŸเจพ เจญเจพเจˆเจšเจพเจฐเจพเฅค

เจ‡เฉฑเจ• เจธเจฟเฉฑเจŸเฉ‡ เจตเจœเฉ‹เจ‚

เจ‡เจน เจธเจฟเจฐเจซเจผ เจคเจฟเฉฐเจจ เจธเจพเจงเจจ เจนเจจ, เจ…เจธเจฒ เจตเจฟเฉฑเจš เจนเฉ‹เจฐ เจตเฉ€ เจฌเจนเฉเจค เจธเจพเจฐเฉ‡ เจนเจจเฅค เจ‡เจน เจšเฉเจฃเจจเจพ เจ”เจ–เจพ เจนเฉˆ, เจ‡เจธ เจฒเจˆ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจฏเจ•เฉ€เจจเฉ€ เจคเฉŒเจฐ 'เจคเฉ‡ เจตเจพเจงเฉ‚ เจชเจนเจฟเจฒเฉ‚เจ†เจ‚ เจตเฉฑเจฒ เจงเจฟเจ†เจจ เจฆเฉ‡เจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค

เจŸเฉ‚เจฒ เจฆเจพ เจ“เจชเจจ เจธเฉ‹เจฐเจธ เจ•เฉ‹เจก เจ‡เจน เจธเจฎเจเจฃเจพ เจธเฉฐเจญเจต เจฌเจฃเจพเจ‰เจ‚เจฆเจพ เจนเฉˆ เจ•เจฟ เจ‡เจน เจ•เฉ€ เจนเฉˆ, เจจเจพเจฒ เจนเฉ€ เจจเจตเฉ€เจ†เจ‚ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ เจคเฉ‡เจœเจผเฉ€ เจจเจพเจฒ เจธเจผเจพเจฎเจฒ เจ•เจฐเฉ‹เฅค เจชเจฐ เจœเฉ‡เจ•เจฐ เจ•เฉเจ เจ•เฉฐเจฎ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเจพ เจนเฉˆ, เจคเจพเจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจธเจฟเจฐเจซเจผ เจ†เจชเจฃเฉ‡ เจ…เจคเฉ‡ เจญเจพเจˆเจšเจพเจฐเฉ‡ เจฆเฉ€ เจฎเจฆเจฆ 'เจคเฉ‡ เจญเจฐเฉ‹เจธเจพ เจ•เจฐเจจเจพ เจชเจตเฉ‡เจ—เจพเฅค เจญเฉเจ—เจคเจพเจจ เจ•เฉ€เจคเฉ‡ เจŸเฉ‚เจฒ เจธเจนเจพเจ‡เจคเจพ เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจฆเฉ‡ เจนเจจ เจœเฉ‹ เจ•เจˆ เจตเจพเจฐ เจจเจพเจœเจผเฉเจ• เจนเฉ‹ เจธเจ•เจฆเฉ‡ เจนเจจเฅค

เจœเฉ‡เจ•เจฐ เจธเฉเจฐเฉฑเจ–เจฟเจ† เจคเฉเจนเจพเจกเฉ€ เจชเฉเจฐเจฎเฉเฉฑเจ– เจคเจฐเจœเฉ€เจน เจนเฉˆ, เจคเจพเจ‚ เจ‡เจน เจ‡เฉฑเจ• เจธเจฅเจพเจจเจ• เจŸเฉ‚เจฒ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฆเฉ‡ เจฏเฉ‹เจ— เจนเฉˆเฅค เจœเฉ‡เจ•เจฐ เจจเจนเฉ€เจ‚, เจคเจพเจ‚ SaaS เจนเฉฑเจฒ เจšเฉเจฃเจจเจพ เจ‡เฉฑเจ• เจšเฉฐเจ—เจพ เจตเจฟเจ•เจฒเจช เจนเฉˆเฅค

เจ…เจคเฉ‡ เจ…เฉฐเจค เจตเจฟเฉฑเจš, เจ‡เฉฑเจ• เจธเฉฑเจšเจฎเฉเฉฑเจš เจชเฉเจฐเจญเจพเจตเจธเจผเจพเจฒเฉ€ เจจเจฟเจฐเฉฐเจคเจฐ เจคเฉˆเจจเจพเจคเฉ€ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจจเฉ‚เฉฐ เจฏเจ•เฉ€เจจเฉ€ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจฎเจพเจชเจฆเฉฐเจก เจคเจฟเจ†เจฐ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ เจœเจฟเจธ เจฆเฉ€เจ†เจ‚ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‰เจชเจฒเจฌเจง เจธเจพเจงเจจเจพเจ‚ เจฆเฉ€ เจฐเฉ‡เจ‚เจœ เจจเฉ‚เฉฐ เจ˜เจŸเจพเจ‰เจฃ เจฆเฉ€ เจ†เจ—เจฟเจ† เจฆเฉ‡เจตเฉ‡เจ—เฉ€เฅค

เจธเจ•เจฟเฉฑเจฒเจฌเจพเจ•เจธ เจธเจฟเจซเจผเจพเจฐเจฟเจธเจผ เจ•เจฐเจฆเจพ เจนเฉˆ:

เจธเจฐเฉ‹เจค: www.habr.com

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹