3 เป€เบ„เบทเปˆเบญเบ‡โ€‹เบกเบทโ€‹เบ—เบตเปˆโ€‹เบ™เบดโ€‹เบเบปเบกโ€‹เปƒเบ™โ€‹เบเบฒเบ™โ€‹เบˆเบฑเบ”โ€‹เบ•เบฑเป‰เบ‡โ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบขเปˆเบฒเบ‡โ€‹เบ•เปเปˆโ€‹เป€เบ™เบทเปˆเบญเบ‡ (Continuous Deployment)

3 เป€เบ„เบทเปˆเบญเบ‡โ€‹เบกเบทโ€‹เบ—เบตเปˆโ€‹เบ™เบดโ€‹เบเบปเบกโ€‹เปƒเบ™โ€‹เบเบฒเบ™โ€‹เบˆเบฑเบ”โ€‹เบ•เบฑเป‰เบ‡โ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบขเปˆเบฒเบ‡โ€‹เบ•เปเปˆโ€‹เป€เบ™เบทเปˆเบญเบ‡ (Continuous Deployment)

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

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

Skillbox เปเบ™เบฐเบ™เปเบฒ: เบซเบผเบฑเบเบชเบนเบ”เบžเบฒเบเบ›เบฐเบ•เบดเบšเบฑเบ” "เบœเบนเป‰เบžเบฑเบ”เบ—เบฐเบ™เบฒเบกเบทเบ–เบท PRO".

เบžเบงเบเป€เบฎเบปเบฒเป€เบ•เบทเบญเบ™: เบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เบญเปˆเบฒเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบ‚เบญเบ‡ "Habr" - เบชเปˆเบงเบ™เบซเบผเบธเบ” 10 rubles เป€เบกเบทเปˆเบญเบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เปƒเบ™เบซเบผเบฑเบเบชเบนเบ” Skillbox เป‚เบ”เบเปƒเบŠเป‰เบฅเบฐเบซเบฑเบ”เบชเบปเปˆเบ‡เป€เบชเบตเบก "Habr".

3 เป€เบ„เบทเปˆเบญเบ‡โ€‹เบกเบทโ€‹เบ—เบตเปˆโ€‹เบ™เบดโ€‹เบเบปเบกโ€‹เปƒเบ™โ€‹เบเบฒเบ™โ€‹เบˆเบฑเบ”โ€‹เบ•เบฑเป‰เบ‡โ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบขเปˆเบฒเบ‡โ€‹เบ•เปเปˆโ€‹เป€เบ™เบทเปˆเบญเบ‡ (Continuous Deployment)

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

Jenkins

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

เบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™ PC เบ•เปเบฒเปˆเบชเบธเบ”เบ—เบตเปˆ:

  • RAM 256 MB, เบžเบทเป‰เบ™เบ—เบตเปˆเบˆเบฑเบ”เป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™ 1 GB.

เบ”เบตเบ—เบตเปˆเบชเบธเบ”:

  • RAM 1 GB, เบฎเบฒเบ”เป„เบ” 50 GB.

เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบงเบฝเบ, เบ—เปˆเบฒเบ™เบเบฑเบ‡เบ•เป‰เบญเบ‡เบเบฒเบ™เบŠเบญเบšเปเบงเป€เบžเบตเปˆเบกเป€เบ•เบตเบก - Java Runtime Environment (JRE) เบฎเบธเปˆเบ™ 8 .

เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ (เบ„เบญเบกเบžเบดเบงเป€เบ•เบตเป‰เปเบˆเบเบขเบฒเบ) เบกเบตเบฅเบฑเบเบชเบฐเบ™เบฐเบ™เบตเป‰:
3 เป€เบ„เบทเปˆเบญเบ‡โ€‹เบกเบทโ€‹เบ—เบตเปˆโ€‹เบ™เบดโ€‹เบเบปเบกโ€‹เปƒเบ™โ€‹เบเบฒเบ™โ€‹เบˆเบฑเบ”โ€‹เบ•เบฑเป‰เบ‡โ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบขเปˆเบฒเบ‡โ€‹เบ•เปเปˆโ€‹เป€เบ™เบทเปˆเบญเบ‡ (Continuous Deployment)

Jenkins Server เปเบกเปˆเบ™เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบ—เบตเปˆเบฎเบฑเบšเบœเบดเบ”เบŠเบญเบšเบชเปเบฒเบฅเบฑเบš GUI hosting, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เปเบฅเบฐเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เบ—เบฑเบ‡เบซเบกเบปเบ”.

Jenkins Node/Slave/Build Server - เบญเบธเบ›เบฐเบเบญเบ™เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบเบณเบ™เบปเบ”เบ„เปˆเบฒเป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบงเบฝเบเบเปเปˆเบชเป‰เบฒเบ‡เปƒเบ™เบ™เบฒเบกเบ‚เบญเบ‡ Master (master node).

เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบชเปเบฒเบฅเบฑเบš Linux

เบเปˆเบญเบ™เบญเบทเปˆเบ™ เปเบปเบ” เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เป€เบžเบตเปˆเบกเบšเปˆเบญเบ™เป€เบเบฑเบšเบกเป‰เบฝเบ™ Jenkins เปƒเบชเปˆเบฅเบฐเบšเบปเบš:

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

เบ•เบดเบ”เบ•เบฑเป‰เบ‡ Jenkins:

sudo apt เบ•เบดเบ”เบ•เบฑเป‰เบ‡ jenkins

เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบตเป‰, Jenkins เบˆเบฐเบกเบตเบขเบนเปˆเปƒเบ™เบฅเบฐเบšเบปเบšเป‚เบ”เบเบœเปˆเบฒเบ™เบžเบญเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ 8080.

เป€เบžเบทเปˆเบญเบเบงเบ”เบชเบญเบšเบเบฒเบ™เบ—เปเบฒเบ‡เบฒเบ™, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป€เบ›เบตเบ”เบ—เบตเปˆเบขเบนเปˆเปƒเบ™เบ•เบปเบงเบ—เปˆเบญเบ‡เป€เบงเบฑเบš localhost:8080. เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบฅเบฐเบšเบปเบšเบˆเบฐเป€เบ•เบทเบญเบ™เปƒเบซเป‰เบ—เปˆเบฒเบ™เปƒเบชเปˆเบฅเบฐเบซเบฑเบ”เบœเปˆเบฒเบ™เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™เบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เปƒเบŠเป‰เบฎเบฒเบ. เบฅเบฐเบซเบฑเบ”เบœเปˆเบฒเบ™เบ™เบตเป‰เปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™เป„เบŸเบฅเปŒ /var/lib/jenkins/secrets/initialAdminPassword.

เบ•เบญเบ™เบ™เบตเป‰เบ—เบธเบเบขเปˆเบฒเบ‡เบžเป‰เบญเบกเบ—เบตเปˆเบˆเบฐเป„เบ›, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบฅเบตเปˆเบกเบชเป‰เบฒเบ‡เบเบฐเปเบช CI/CD เป„เบ”เป‰. เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบฎเบนเบšเบžเบฒเบšเบ‚เบญเบ‡ workbench เป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเบ™เบตเป‰:

3 เป€เบ„เบทเปˆเบญเบ‡โ€‹เบกเบทโ€‹เบ—เบตเปˆโ€‹เบ™เบดโ€‹เบเบปเบกโ€‹เปƒเบ™โ€‹เบเบฒเบ™โ€‹เบˆเบฑเบ”โ€‹เบ•เบฑเป‰เบ‡โ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบขเปˆเบฒเบ‡โ€‹เบ•เปเปˆโ€‹เป€เบ™เบทเปˆเบญเบ‡ (Continuous Deployment)

3 เป€เบ„เบทเปˆเบญเบ‡โ€‹เบกเบทโ€‹เบ—เบตเปˆโ€‹เบ™เบดโ€‹เบเบปเบกโ€‹เปƒเบ™โ€‹เบเบฒเบ™โ€‹เบˆเบฑเบ”โ€‹เบ•เบฑเป‰เบ‡โ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบขเปˆเบฒเบ‡โ€‹เบ•เปเปˆโ€‹เป€เบ™เบทเปˆเบญเบ‡ (Continuous Deployment)

เบ„เบงเบฒเบกเป€เบ‚เบฑเป‰เบกเปเบ‚เบ‡เบ‚เบญเบ‡ Jenkins:

  • เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบ—เบตเปˆเบชเบฐเปœเบญเบ‡เปƒเบซเป‰เป‚เบ”เบเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเบณ Master/Slave;
  • เบ„เบงเบฒเบกเบžเป‰เบญเบกเบ‚เบญเบ‡ REST XML/JSON API;
  • เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบˆเปเบฒเบ™เบงเบ™เบซเบฅเบฒเบเบ‚เบญเบ‡เบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบเบ‚เบญเบšเปƒเบˆเบเบฑเบš plugins;
  • เบŠเบธเบกเบŠเบปเบ™เบ—เบตเปˆเบกเบตเบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เป„เบซเบง เปเบฅเบฐเบžเบฑเบ”เบ—เบฐเบ™เบฒเบขเปˆเบฒเบ‡เบ•เปเปˆเป€เบ™เบทเปˆเบญเบ‡.

Cons:

  • เบšเปเปˆเบกเบตเบ•เบฑเบ™เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐ;
  • เบšเปเปˆเบกเบตเบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบœเบนเป‰เป€เบ›เบฑเบ™เบกเบดเบ”เบซเบผเบฒเบ.

เบ—เบตเบกเป€เบกเบทเบญเบ‡

เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบเบฒเบ™เบ„เป‰เบฒเบˆเบฒเบ JetBrains. เป€เบŠเบตเบšเป€เบงเบตเปเบกเปˆเบ™เบ”เบตเบเบฑเบšเบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบ‡เปˆเบฒเบเบ”เบฒเบเปเบฅเบฐเบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบ—เบตเปˆเบ”เบตเป€เบฅเบตเบ”. เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบกเบตเบซเบ™เป‰เบฒเบ—เบตเปˆเบˆเปเบฒเบ™เบงเบ™เบซเบฅเบฒเบ, เปเบฅเบฐเบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡ plugins เบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบกเปˆเบ™เป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™เบขเปˆเบฒเบ‡เบ•เปเปˆเป€เบ™เบทเปˆเบญเบ‡.

เบ•เป‰เบญเบ‡เบเบฒเบ™ Java Runtime Environment (JRE) เป€เบงเบตเบŠเบฑเปˆเบ™ 8.

เบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบฎเบฒเบ”เปเบงเป€เบŠเบตเบšเป€เบงเบตเปเบกเปˆเบ™เบšเปเปˆเบชเปเบฒเบ„เบฑเบ™:

  • RAM - 3,2 GB;
  • เป‚เบ›เป€เบŠเบ”เป€เบŠเบต - dual-core, 3,2 GHz;
  • เบŠเปˆเบญเบ‡เบ—เบฒเบ‡เบเบฒเบ™เบชเบทเปˆเบชเบฒเบ™เบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบˆเบธ 1 Gb / s.

เป€เบŠเบตเบšเป€เบงเบตเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เบšเบฑเบ™เบฅเบธเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบชเบนเบ‡:

  • 60 เป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบกเบต 300 เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡;
  • เบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™ 2 MB เบชเปเบฒเบฅเบฑเบšเบšเบฑเบ™เบ—เบถเบเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡;
  • 50 เบ•เบปเบงเปเบ—เบ™เบเปเปˆเบชเป‰เบฒเบ‡;
  • เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบš 50 เบœเบนเป‰เปƒเบŠเป‰เปƒเบ™เบชเบฐเบšเบฑเบšเป€เบงเบฑเบšเป„เบŠเบ•เปŒเปเบฅเบฐ 30 เบœเบนเป‰เปƒเบŠเป‰เปƒเบ™ IDE;
  • 100 เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ‚เบญเบ‡ VCS เบžเบฒเบเบ™เบญเบ, เบ›เบปเบเบเบฐเบ•เบดเปเบฅเป‰เบง Perforce เปเบฅเบฐ Subversion. เป€เบงเบฅเบฒเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบชเบฐเป€เบฅเปˆเบเปเบกเปˆเบ™ 120 เบงเบดเบ™เบฒเบ—เบต;
  • เบซเบผเบฒเบเบเบงเปˆเบฒ 150 เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ•เปเปˆเบกเบทเป‰;
  • เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบขเบนเปˆเปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบซเบ™เบถเปˆเบ‡;
  • เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ‚เบฐเบšเบงเบ™เบเบฒเบ™เป€เบŠเบตเบšเป€เบงเบต JVM: -Xmx1100m -XX:MaxPermSize=120m.

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

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

3 เป€เบ„เบทเปˆเบญเบ‡โ€‹เบกเบทโ€‹เบ—เบตเปˆโ€‹เบ™เบดโ€‹เบเบปเบกโ€‹เปƒเบ™โ€‹เบเบฒเบ™โ€‹เบˆเบฑเบ”โ€‹เบ•เบฑเป‰เบ‡โ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบขเปˆเบฒเบ‡โ€‹เบ•เปเปˆโ€‹เป€เบ™เบทเปˆเบญเบ‡ (Continuous Deployment)

เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบชเปเบฒเบฅเบฑเบš Linux

เป€เบžเบทเปˆเบญเบ•เบดเบ”เบ•เบฑเป‰เบ‡ TeamCity เบ”เป‰เบงเบเบ•เบปเบงเบšเบฑเบ™เบˆเบธ servlet Tomcat เบ”เป‰เบงเบเบ•เบปเบ™เป€เบญเบ‡, เบ—เปˆเบฒเบ™เบ„เบงเบ™เปƒเบŠเป‰ TeamCity archive: TeamCity .tar.gz. เบ”เบฒเบงเป‚เบซเบผเบ” เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป„เบ”เป‰เบฎเบฑเบšเบกเบฑเบ™เบˆเบฒเบเบ—เบตเปˆเบ™เบตเป‰.

tar -xfz TeamCity.tar.gz

/bin/runAll. sh [เป€เบฅเบตเปˆเบก|เบขเบธเบ”]

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

3 เป€เบ„เบทเปˆเบญเบ‡โ€‹เบกเบทโ€‹เบ—เบตเปˆโ€‹เบ™เบดโ€‹เบเบปเบกโ€‹เปƒเบ™โ€‹เบเบฒเบ™โ€‹เบˆเบฑเบ”โ€‹เบ•เบฑเป‰เบ‡โ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบขเปˆเบฒเบ‡โ€‹เบ•เปเปˆโ€‹เป€เบ™เบทเปˆเบญเบ‡ (Continuous Deployment)

เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปเบกเปˆเบ™เป€เบ›เบตเบ”เบขเบนเปˆ localhost:8111/ เบเบฑเบšเบ•เบปเบงเปเบ—เบ™เบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เบ—เบตเปˆเบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เปœเบถเปˆเบ‡เบญเบฑเบ™เบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™ PC เบ”เบฝเบงเบเบฑเบ™.

เบˆเบธเบ”เปเบ‚เบ‡เบ‚เบญเบ‡ TeamCity:

  • เบเบฒเบ™โ€‹เบ•เบฑเป‰เบ‡โ€‹เบ„เปˆเบฒโ€‹เบ‡เปˆเบฒเบโ€‹เบ”เบฒเบโ€‹;
  • เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบ—เบตเปˆเป€เบ›เบฑเบ™เบกเบดเบ”เบเบฑเบšเบœเบนเป‰เปƒเบŠเป‰;
  • เบˆเปเบฒเบ™เบงเบ™เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบ‚เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเบชเป‰เบฒเบ‡เปƒเบ™;
  • เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™;
  • เบกเบต RESTful API;
  • เป€เบญเบเบฐเบชเบฒเบ™เบ—เบตเปˆเบ”เบต;
  • เบ„เบงเบฒเบกเบ›เบญเบ”เป„เบžเบ—เบตเปˆเบ”เบต.

Cons:

  • เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เบˆเปเบฒเบเบฑเบ”;
  • เบ™เบตเป‰เปเบกเปˆเบ™เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ—เบตเปˆเบˆเปˆเบฒเบ;
  • เบŠเบธเบกเบŠเบปเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบ (เบŠเบถเปˆเบ‡, เปเบ™เบงเปƒเบ”เบเปเปˆเบ•เบฒเบก, เปเบกเปˆเบ™เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบ•เบปเบง).

GoCD

เป‚เบ„เบ‡เบเบฒเบ™เปเบซเบผเปˆเบ‡เป€เบ›เบตเบ”เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™ Java Runtime Environment (JRE) เป€เบงเบตเบŠเบฑเปˆเบ™ 8 เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡ เปเบฅเบฐเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™.

เบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบ‚เบญเบ‡เบฅเบฐเบšเบปเบš:

  • RAM - 1 GB เบ•เปเบฒเปˆเบชเบธเบ”เบ—เบตเปˆ, เบซเบผเบฒเบเปเบกเปˆเบ™เบ”เบตเบเบงเปˆเบฒ;
  • เป‚เบ›เป€เบŠเบ”เป€เบŠเบต - dual-core, เบกเบตเบ„เบงเบฒเบกเบ–เบตเปˆเบซเบผเบฑเบเบ‚เบญเบ‡ 2 GHz;
  • เบฎเบฒเบ”เบ”เบดเบ” - เบžเบทเป‰เบ™เบ—เบตเปˆเบซเบงเปˆเบฒเบ‡เบขเปˆเบฒเบ‡เปœเป‰เบญเบ 1 GB.

เบ•เบปเบงเปเบ—เบ™:

  • RAM - เบขเปˆเบฒเบ‡เบซเบ™เป‰เบญเบ 128 MB, เบซเบผเบฒเบเปเบกเปˆเบ™เบ”เบตเบเบงเปˆเบฒ;
  • เป‚เบฎเบ‡เบ‡เบฒเบ™เบœเบฐเบฅเบดเบ” - เบขเปˆเบฒเบ‡เบซเบ™เป‰เบญเบ 2 GHz.

เป€เบŠเบตเบšเป€เบงเบตเบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบ‚เบญเบ‡เบ•เบปเบงเปเบ—เบ™เปเบฅเบฐเบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบ—เบตเปˆเบชเบฐเบ”เบงเบเบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เปƒเบŠเป‰:

3 เป€เบ„เบทเปˆเบญเบ‡โ€‹เบกเบทโ€‹เบ—เบตเปˆโ€‹เบ™เบดโ€‹เบเบปเบกโ€‹เปƒเบ™โ€‹เบเบฒเบ™โ€‹เบˆเบฑเบ”โ€‹เบ•เบฑเป‰เบ‡โ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบขเปˆเบฒเบ‡โ€‹เบ•เปเปˆโ€‹เป€เบ™เบทเปˆเบญเบ‡ (Continuous Deployment)

เบ‚เบฑเป‰เบ™เบ•เบญเบ™/เบงเบฝเบ/เปœเป‰เบฒเบงเบฝเบ:

3 เป€เบ„เบทเปˆเบญเบ‡โ€‹เบกเบทโ€‹เบ—เบตเปˆโ€‹เบ™เบดโ€‹เบเบปเบกโ€‹เปƒเบ™โ€‹เบเบฒเบ™โ€‹เบˆเบฑเบ”โ€‹เบ•เบฑเป‰เบ‡โ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบขเปˆเบฒเบ‡โ€‹เบ•เปเปˆโ€‹เป€เบ™เบทเปˆเบญเบ‡ (Continuous Deployment)

เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบชเปเบฒเบฅเบฑเบš Linux

echo "deb download.gocd.org /โ€ | sudo tee /etc/apt/sources.list.d/gocd.list

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

apt-get update

apt-get เบ•เบดเบ”เบ•เบฑเป‰เบ‡ -y openjdk-8-jre

apt-get เบ•เบดเบ”เบ•เบฑเป‰เบ‡ go-server

apt-get เบ•เบดเบ”เบ•เบฑเป‰เบ‡ go-agent

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

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

เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ GoCd เป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆ localhost: 8153

เบˆเบธเบ”โ€‹เปเบ‚เบ‡โ€‹เบ‚เบญเบ‡ GoCdโ€‹:

  • เปเบซเบผเปˆเบ‡เป€เบ›เบตเบ”;
  • เบเบฒเบ™โ€‹เบ•เบดเบ”โ€‹เบ•เบฑเป‰เบ‡โ€‹เบ‡เปˆเบฒเบโ€‹เบ”เบฒเบโ€‹เปเบฅเบฐโ€‹เบเบฒเบ™โ€‹เบ•เบฑเป‰เบ‡โ€‹เบ„เปˆเบฒโ€‹;
  • เป€เบญเบเบฐเบชเบฒเบ™เบ—เบตเปˆเบ”เบต;

  • เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบœเบนเป‰เปƒเบŠเป‰เบ—เบตเปˆเบเบดเปˆเบ‡เปƒเบซเบเปˆ:

3 เป€เบ„เบทเปˆเบญเบ‡โ€‹เบกเบทโ€‹เบ—เบตเปˆโ€‹เบ™เบดโ€‹เบเบปเบกโ€‹เปƒเบ™โ€‹เบเบฒเบ™โ€‹เบˆเบฑเบ”โ€‹เบ•เบฑเป‰เบ‡โ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบขเปˆเบฒเบ‡โ€‹เบ•เปเปˆโ€‹เป€เบ™เบทเปˆเบญเบ‡ (Continuous Deployment)

  • เบ„เบงเบฒเบกโ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เบชเบฐโ€‹เปเบ”เบ‡โ€‹เปƒเบซเป‰โ€‹เป€เบซเบฑเบ™โ€‹เป€เบ›เบฑเบ™โ€‹เบšเบฒเบ”โ€‹เบเป‰เบฒเบงโ€‹เป‚เบ”เบโ€‹เบ‚เบฑเป‰เบ™โ€‹เบ•เบญเบ™โ€‹เบงเบดโ€‹เบ—เบตโ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰ GoCD เปƒเบ™โ€‹เบซเบ™เบถเปˆเบ‡โ€‹เป€เบšเบดเปˆเบ‡โ€‹:

3 เป€เบ„เบทเปˆเบญเบ‡โ€‹เบกเบทโ€‹เบ—เบตเปˆโ€‹เบ™เบดโ€‹เบเบปเบกโ€‹เปƒเบ™โ€‹เบเบฒเบ™โ€‹เบˆเบฑเบ”โ€‹เบ•เบฑเป‰เบ‡โ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบขเปˆเบฒเบ‡โ€‹เบ•เปเปˆโ€‹เป€เบ™เบทเปˆเบญเบ‡ (Continuous Deployment)

  • เบเบฒเบ™โ€‹เบชเบฐโ€‹เปเบ”เบ‡โ€‹เบ—เบตเปˆโ€‹เบ”เบตโ€‹เป€เบฅเบตเบ”โ€‹เบ‚เบญเบ‡โ€‹เป‚เบ„เบ‡โ€‹เบชเป‰เบฒเบ‡โ€‹เบ—เปเปˆโ€‹:

3 เป€เบ„เบทเปˆเบญเบ‡โ€‹เบกเบทโ€‹เบ—เบตเปˆโ€‹เบ™เบดโ€‹เบเบปเบกโ€‹เปƒเบ™โ€‹เบเบฒเบ™โ€‹เบˆเบฑเบ”โ€‹เบ•เบฑเป‰เบ‡โ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบขเปˆเบฒเบ‡โ€‹เบ•เปเปˆโ€‹เป€เบ™เบทเปˆเบญเบ‡ (Continuous Deployment)

  • GoCD เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ‚เบญเบ‡ CD เปƒเบ™เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบ„เบฅเบฒเบงเบ—เบตเปˆเบ™เบดเบเบปเบกเบซเบผเบฒเบเบ—เบตเปˆเบชเบธเบ”เบฅเบงเบกเบ—เบฑเบ‡ Docker, AWS;
  • เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเปเบเป‰เป„เบ‚เบ‚เปเป‰เบšเบปเบเบžเปˆเบญเบ‡เปƒเบ™เบ—เปเปˆ, เป€เบŠเบดเปˆเบ‡เบกเบตเบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ—เบธเบเบ„เบฑเป‰เบ‡เบˆเบฒเบเบ„เปเบฒเบซเบกเบฑเป‰เบ™เบชเบฑเบ™เบเบฒเบเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡.

Cons:

  • เบขเปˆเบฒเบ‡เบซเบ™เป‰เบญเบเบซเบ™เบถเปˆเบ‡เบ•เบปเบงเปเบ—เบ™เปเบกเปˆเบ™เบˆเปเบฒเป€เบ›เบฑเบ™;
  • เบšเปเปˆเบกเบต console เป€เบžเบทเปˆเบญเบชเบฐเปเบ”เบ‡เบงเบฝเบเบ‡เบฒเบ™เบ—เบตเปˆเบชเปเบฒเป€เบฅเบฑเบ”เบ—เบฑเบ‡เบซเบกเบปเบ”;
  • เป€เบžเบทเปˆเบญเบ›เบฐเบ•เบดเบšเบฑเบ”เปเบ•เปˆเบฅเบฐเบ„เปเบฒเบชเบฑเปˆเบ‡, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบชเป‰เบฒเบ‡เบซเบ™เบถเปˆเบ‡เบซเบ™เป‰เบฒเบงเบฝเบเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ—เปเปˆ;
  • เป€เบžเบทเปˆเบญเบ•เบดเบ”เบ•เบฑเป‰เบ‡ plugin เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบเป‰เบฒเบเป„เบŸเบฅเปŒ .jar เป„เบ›เปƒเบชเปˆ /plugins/external เปเบฅเบฐ restart server;
  • เบŠเบธเบกเบŠเบปเบ™เบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เบ™เป‰เบญเบ.

เป€เบ›เบฑเบ™เบเบฒเบ™เบชเบฐเบซเบฅเบธเบš

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

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

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

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

Skillbox เปเบ™เบฐเบ™เปเบฒ:

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

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