เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™ เปเบฅเบฐเบเบฒเบ™เบ™เบณเปƒเบŠเป‰ Blue-Green, เบญเบตเบ‡เปƒเบชเปˆ The Twelve-Factor App methodology เบ—เบตเปˆเบกเบตเบ•เบปเบงเบขเปˆเบฒเบ‡เปƒเบ™ php เปเบฅเบฐ docker

เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™ เปเบฅเบฐเบเบฒเบ™เบ™เบณเปƒเบŠเป‰ Blue-Green, เบญเบตเบ‡เปƒเบชเปˆ The Twelve-Factor App methodology เบ—เบตเปˆเบกเบตเบ•เบปเบงเบขเปˆเบฒเบ‡เปƒเบ™ php เปเบฅเบฐ docker

เบซเบ™เป‰เบฒเบ—เปเบฒเบญเบดเบ”, เบ—เบดเบ”เบชเบฐเบ”เบตเป€เบฅเบฑเบเบ™เป‰เบญเบ. เป€เบเบตเบ”โ€‹เบซเบเบฑเบ‡โ€‹เบ‚เบถเป‰เบ™ เปเบญเบฑเบšเบชเบดเบšเบชเบญเบ‡เบ›เบฑเบ”เปƒเบˆ?

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

เป€เบญเบเบฐเบชเบฒเบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเป„เบ”เป‰เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™เป‚เบ”เบเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเบ‚เบญเบ‡เป€เบงเบ—เบต Heroku.

เปเบญเบฑเบš Twelve-Factor เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เบเบฑเบšเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเปˆเบ™เบ—เบตเปˆเบ‚เบฝเบ™เป€เบ›เบฑเบ™เบžเบฒเบชเบฒเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฃเปเบเบฃเบกเปƒเบ”เบเปเป„เบ”เป‰ เปเบฅเบฐเบ™เบณเปƒเบŠเป‰เบเบฒเบ™เบฅเบงเบกเบเบฑเบ™เบ‚เบญเบ‡เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบชเบณเบฎเบญเบ‡ (เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™, เปเบ–เบงเบ‚เปเป‰เบ„เบงเบฒเบก, เปเบ„เบช, เปเบฅเบฐเบญเบทเปˆเบ™เป†).

เป‚เบ”เบเบซเบเปเป‰เบเปˆเบฝเบงเบเบฑเบšเบ›เบฑเบ”เปƒเบˆเบ—เบตเปˆเบงเบดเบ—เบตเบเบฒเบ™เบ™เบตเป‰เปเบกเปˆเบ™เบญเบตเบ‡เปƒเบชเปˆ:

  1. codebase โ€“ เบซเบ™เบถเปˆเบ‡ codebase เบ•เบดเบ” เบ•เบฒเบก เปƒเบ™ เบเบฒเบ™ เบ„เบงเบš เบ„เบธเบก เบชเบฐ เบšเบฑเบš - เบเบฒเบ™ เบ™เปเบฒ เปƒเบŠเป‰ เบซเบผเบฒเบ
  2. เบเบฒเบ™เป€เบžเบดเปˆเบ‡เบžเบฒเบญเบฒเป„เบช - เบ›เบฐเบเบฒเบ”เบขเปˆเบฒเบ‡เบˆเบฐเปเบˆเป‰เบ‡ เปเบฅเบฐเปเบเบเบ•เบปเบงเป€เบžเบดเปˆเบ‡เบžเบฒเบญเบฒเป„เบช
  3. เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ - เบŠเปˆเบงเบโ€‹เบ›เบฐโ€‹เบขเบฑเบ”โ€‹เบเบฒเบ™โ€‹เบ•เบฑเป‰เบ‡โ€‹เบ„เปˆเบฒโ€‹เปƒเบ™ runtimeโ€‹
  4. เบšเปเบฅเบดเบเบฒเบ™เบ”เป‰เบฒเบ™เบซเบผเบฑเบ‡ โ€“ เบžเบดโ€‹เบˆเบฒโ€‹เบฅเบฐโ€‹เบ™เบฒโ€‹เบเบฒเบ™โ€‹เบšเปโ€‹เบฅเบดโ€‹เบเบฒเบ™โ€‹เบฎเบญเบ‡โ€‹เบฎเบฑเบšโ€‹เป€เบ›เบฑเบ™โ€‹เบŠเบฑเบšโ€‹เบžเบฐโ€‹เบเบฒโ€‹เบเบญเบ™โ€‹เบชเบฝเบšโ€‹เปƒเบ™โ€‹
  5. เบเปเปˆเบชเป‰เบฒเบ‡, เบ›เปˆเบญเบ, เปเบฅเปˆเบ™ - เปเบเบเบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เบ›เบฐเบเบญเบš เปเบฅเบฐเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบขเปˆเบฒเบ‡เป€เบ‚เบฑเป‰เบกเบ‡เบงเบ”
  6. เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ•เปˆเบฒเบ‡เป† - เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเป€เบ›เบฑเบ™เบซเบ™เบถเปˆเบ‡เบซเบผเบทเบซเบผเบฒเบเบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ—เบตเปˆเบšเปเปˆเบกเบตเบฅเบฑเบ”
  7. เบเบฒเบ™เบœเบนเบเบกเบฑเบ”เบžเบญเบ” - เบเบฒเบ™โ€‹เบšเปโ€‹เบฅเบดโ€‹เบเบฒเบ™โ€‹เบชเบปเปˆเบ‡โ€‹เบญเบญเบโ€‹เป‚เบ”เบโ€‹เบœเปˆเบฒเบ™โ€‹เบเบฒเบ™โ€‹เบœเบนเบโ€‹เบกเบฑเบ”โ€‹เบ—เปˆเบฒโ€‹เป€เบฎเบทเบญโ€‹
  8. เบ‚เบฐเบซเบ™เบฒเบ™ - เบ‚เบฐโ€‹เบซเบเบฒเบโ€‹เบ„เปเบฒโ€‹เบฎเป‰เบญเบ‡โ€‹เบชเบฐโ€‹เบซเบกเบฑเบโ€‹เบ‚เบญเบ‡โ€‹เบ—เปˆเบฒเบ™โ€‹เป‚เบ”เบโ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบ‚เบฐโ€‹เบšเบงเบ™โ€‹เบเบฒเบ™โ€‹
  9. เบ„เบงเบฒเบกเบžเบดเบเบฒเบ™ - เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ„เบงเบฒเบกเบซเบ™เป‰เบฒเป€เบŠเบทเปˆเบญเบ–เบทเบ”เป‰เบงเบเบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป„เบงเปเบฅเบฐเบเบฒเบ™เบ›เบดเบ”เบ—เบตเปˆเบชเบฐเบญเบฒเบ”
  10. เบเบฒเบ™โ€‹เบžเบฑเบ”โ€‹เบ—เบฐโ€‹เบ™เบฒโ€‹เบ„เปเบฒโ€‹เบฎเป‰เบญเบ‡โ€‹เบชเบฐโ€‹เบซเบกเบฑเบ / parity เบเบฒเบ™โ€‹เบ”เปเบฒโ€‹เป€เบ™เบตเบ™โ€‹เบ‡เบฒเบ™โ€‹ - เบฎเบฑเบโ€‹เบชเบฒโ€‹เบเบฒเบ™โ€‹เบžเบฑเบ”โ€‹เบ—เบฐโ€‹เบ™เบฒโ€‹, เบ‚เบฑเป‰เบ™โ€‹เบ•เบญเบ™โ€‹, เปเบฅเบฐโ€‹เบชเบฐโ€‹เบžเบฒเบšโ€‹เปเบงเบ”โ€‹เบฅเป‰เบญเบกโ€‹เบเบฒเบ™โ€‹เบœเบฐโ€‹เบฅเบดเบ”โ€‹เบ‚เบญเบ‡โ€‹เบ—เปˆเบฒเบ™โ€‹เป€เบ›เบฑเบ™โ€‹เบ—เบตเปˆโ€‹เบ„เป‰เบฒเบโ€‹เบ„เบทโ€‹เบเบฑเบ™โ€‹เป€เบ—เบปเปˆเบฒโ€‹เบ—เบตเปˆโ€‹เป€เบ›เบฑเบ™โ€‹เป„เบ›โ€‹เป„เบ”เป‰โ€‹
  11. เบเบฒเบ™เบ•เบฑเบ”เป„เบกเป‰ - เป€เบšเบดเปˆเบ‡เบšเบฑเบ™เบ—เบถเบเป€เบ›เบฑเบ™เบเบฐเปเบชเบ‚เบญเบ‡เป€เบซเบ”เบเบฒเบ™
  12. เบงเบฝเบเบ‡เบฒเบ™เบšเปเบฅเบดเบซเบฒเบ™ - เบ›เบฐเบ•เบดเบšเบฑเบ”เบงเบฝเบเบ‡เบฒเบ™เบšเปเบฅเบดเบซเบฒเบ™ / เบเบฒเบ™เบ„เบธเป‰เบกเบ„เบญเบ‡เป‚เบ”เบเปƒเบŠเป‰เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบชเบฐเป€เบžเบฒเบฐ

เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป„เบ”เป‰เบฎเบฑเบšเบ‚เปเป‰เบกเบนเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบเปˆเบฝเบงเบเบฑเบš 12 เบ›เบฑเบ”เปƒเบˆเบˆเบฒเบเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบ•เปเปˆเป„เบ›เบ™เบตเป‰:

เบเบฒเบ™เบ™เบณเปƒเบŠเป‰ Blue-Green เปเบกเปˆเบ™เบซเบเบฑเบ‡?

เบเบฒเบ™เบ™เบณเปƒเบŠเป‰เบชเบตเบŸเป‰เบฒ-เบชเบตเบ‚เบฝเบงเปเบกเปˆเบ™เบงเบดเบ—เบตเบเบฒเบ™เบชเบปเปˆเบ‡เปƒเบšเบชเบฐเปเบฑเบเป„เบ›เปƒเบซเป‰ เบเบฒเบ™โ€‹เบœเบฐโ€‹เบฅเบดเบ” เปƒเบ™เบ—เบฒเบ‡เบ—เบตเปˆเบฅเบนเบเบ„เป‰เบฒเบชเบธเบ”เบ—เป‰เบฒเบเบšเปเปˆเป€เบซเบฑเบ™เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เปƒเบ”เป†เปƒเบ™เบชเปˆเบงเบ™เบ‚เบญเบ‡เบฅเบฒเบง. เปƒเบ™เบ„เปเบฒเบชเบฑเบšเบ•เปˆเบฒเบ‡เป†เบญเบทเปˆเบ™เป†, เบ™เปเบฒเปƒเบŠเป‰เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ—เบตเปˆเบกเบตเบชเบนเบ™ downtime.

เบฎเบนเบšเปเบšเบš BG Deploy เปเบšเบšเบ„เบฅเบฒเบชเบชเบดเบเป€เบšเบดเปˆเบ‡เบ„เบทเบเบฑเบšเบ—เบตเปˆเบชเบฐเปเบ”เบ‡เบขเบนเปˆเปƒเบ™เบฎเบนเบšเบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰.

เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™ เปเบฅเบฐเบเบฒเบ™เบ™เบณเปƒเบŠเป‰ Blue-Green, เบญเบตเบ‡เปƒเบชเปˆ The Twelve-Factor App methodology เบ—เบตเปˆเบกเบตเบ•เบปเบงเบขเปˆเบฒเบ‡เปƒเบ™ php เปเบฅเบฐ docker

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

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

เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบšเปเปˆเบ”เบตเปเบฅเบฐเบ”เบต

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

เบ•เบปเบงเบขเปˆเบฒเบ‡เบชเปˆเบงเบ™เปƒเบซเบเปˆเบˆเบฐเบขเบนเปˆเปƒเบ™เบงเบดเบ—เบตเบเบฒเบ™เบซเบ™เบถเปˆเบ‡เบซเบผเบทเบญเบทเปˆเบ™เบ—เบตเปˆเบ•เบฑเบ”เบเบฑเบ™เบเบฑเบšเบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเป€เบงเบฑเบš (เบ™เบตเป‰เปเบกเปˆเบ™เบ„เบงเบฒเบกเปเบ›เบเปƒเบˆ), เบกเบต PHP เปเบฅเบฐ Docker.

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

1. Codebase

เปƒเบŠเป‰ FTP เปเบฅเบฐ FileZilla เป€เบžเบทเปˆเบญเบญเบฑเบšเป‚เบซเบฅเบ”เป„เบŸเบฅเปŒเป„เบ›เบซเบฒเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบซเบ™เบถเปˆเบ‡เบ„เบฑเป‰เบ‡, เบขเปˆเบฒเป€เบเบฑเบšเบฅเบฐเบซเบฑเบ”เบขเบนเปˆเบšเปˆเบญเบ™เบญเบทเปˆเบ™เบ™เบญเบเป€เบซเบ™เบทเบญเบˆเบฒเบเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบเบฒเบ™เบœเบฐเบฅเบดเบ”.

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

2. เบ„เบงเบฒเบกเป€เบžเบดเปˆเบ‡เบžเบฒเบญเบฒเป„เบช

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

เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เบ„เบงเบ™โ€‹เบˆเบฐโ€‹เบกเบตโ€‹เบšเบฑเบ™โ€‹เบŠเบตโ€‹เบฅเบฒเบโ€‹เบเบฒเบ™โ€‹เบ—เบตเปˆโ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เป€เบ‚เบปเป‰เบฒโ€‹เปƒเบˆโ€‹เบขเปˆเบฒเบ‡โ€‹เบˆเบฐโ€‹เปเบˆเป‰เบ‡โ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เป€เบžเบดเปˆเบ‡โ€‹เบžเบฒโ€‹เบญเบฒโ€‹เป„เบช (เป‚เบ”เบโ€‹เบเบฒเบ™โ€‹เป€เบžเบดเปˆเบ‡โ€‹เบžเบฒโ€‹เบญเบฒโ€‹เป„เบชโ€‹เบ‚เป‰เบฒโ€‹เบžเบฐโ€‹เป€เบˆเบปเป‰เบฒโ€‹เบเบฑเบ‡โ€‹เบซเบกเบฒเบโ€‹เป€เบ–เบดเบ‡โ€‹เบชเบดเปˆเบ‡โ€‹เปเบงเบ”โ€‹เบฅเป‰เบญเบกโ€‹)โ€‹. เบเบฒเบ™เป€เบžเบดเปˆเบ‡เบžเบฒเบญเบฒเป„เบชเบ—เบฑเบ‡เปเบปเบ”เบˆเบฐเบ•เป‰เบญเบ‡เบ–เบทเบเบเบณเบ™เบปเบ”เบขเปˆเบฒเบ‡เบˆเบฐเปเบˆเป‰เบ‡ เปเบฅเบฐเป‚เบ”เบ”เบ”เปˆเบฝเบง.
เปƒเบซเป‰โ€‹เปƒเบŠเป‰โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เป€เบ›เบฑเบ™โ€‹เบ•เบปเบงโ€‹เบขเปˆเบฒเบ‡โ€‹ เบ›เบฐ ะธ Docker.

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

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

3. เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ

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

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

เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบ—เปˆเบฒเบ™เบˆเบฐเป€เบเบฑเบšเป„เบŸเบฅเปŒเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบซเบผเบฒเบ .config.prod .config.local เปเบฅเบฐเบ›เปˆเบฝเบ™เบŠเบทเปˆเบกเบฑเบ™เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเปƒเบŠเป‰เป€เบ›เบฑเบ™ .config (เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ•เบปเป‰เบ™เบ•เปเบ—เบตเปˆเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบญเปˆเบฒเบ™เบ‚เปเป‰เบกเบนเบ™) - เบ™เบตเป‰เบˆเบฐเบšเปเปˆเป€เบ›เบฑเบ™เบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡, เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆ. เปƒเบ™โ€‹เบเปโ€‹เบฅเบฐโ€‹เบ™เบตโ€‹เบ™เบตเป‰โ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบˆเบฒเบโ€‹เบเบฒเบ™โ€‹เบ•เบฑเป‰เบ‡โ€‹เบ„เปˆเบฒโ€‹เบˆเบฐโ€‹เบกเบตโ€‹เปƒเบซเป‰โ€‹เบชเบฒโ€‹เบ—เบฒโ€‹เบฅเบฐโ€‹เบ™เบฐโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบœเบนเป‰โ€‹เบžเบฑเบ”โ€‹เบ—เบฐโ€‹เบ™เบฒโ€‹เบ„เปเบฒโ€‹เบฎเป‰เบญเบ‡โ€‹เบชเบฐโ€‹เบซเบกเบฑเบโ€‹เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ”โ€‹เปเบฅเบฐโ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบˆเบฒเบโ€‹เป€เบ„เบทเปˆเบญเบ‡โ€‹เปเบกเปˆโ€‹เบ‚เปˆเบฒเบโ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบœเบฐโ€‹เบฅเบดเบ”โ€‹เบˆเบฐโ€‹เบ–เบทเบโ€‹เบฅเบฑเบโ€‹. เบเบฒเบ™เบเบณเบ™เบปเบ”เบ„เปˆเบฒเบ—เบฑเบ‡เปเบปเบ”เบ•เป‰เบญเบ‡เบ–เบทเบเป€เบเบฑเบšเป„เบงเป‰เป‚เบ”เบเบเบปเบ‡เปƒเบ™เบฅเบฐเบšเบปเบšเบเบฒเบ™เบ™เบณเปƒเบŠเป‰ (CI/CD) เปเบฅเบฐเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™เบชเบณเบฅเบฑเบšเบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบ•เปˆเบฒเบ‡เป† เบ”เป‰เบงเบเบ„เปˆเบฒเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบ—เบตเปˆเบˆเบณเป€เบ›เบฑเบ™เบชเบณเบฅเบฑเบšเบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบชเบฐเป€เบžเบฒเบฐเปƒเบ™เป€เบงเบฅเบฒเบ™เบณเปƒเบŠเป‰.

4. เบšเปเบฅเบดเบเบฒเบ™เบžเบฒเบเบชเปˆเบงเบ™เบ—เบตเบชเบฒเบก

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

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

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

5. เบเปเปˆเบชเป‰เบฒเบ‡, เบ›เบปเบ”เบ›เปˆเบญเบ, เบ›เบฐเบ•เบดเบšเบฑเบ”

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

เบ—เบธเบเบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ‚เบญเบ‡เบเบฒเบ™เบ™เบณเปƒเบŠเป‰เบ•เป‰เบญเบ‡เปเบเบเบญเบญเบเบˆเบฒเบเบเบฑเบ™.

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

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

6. เบ‚เบฐเบšเบงเบ™เบเบฒเบ™

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

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

7. Port binding

เบžเบฝเบ‡เปเบ•เปˆเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเป€เบงเบฑเบšเป„เบŠเบ•เปŒเบ„เบงเบ™เบฎเบนเป‰เบงเบดเบ—เบตเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบšเปเบฅเบดเบเบฒเบ™เบžเบฒเบเบชเปˆเบงเบ™เบ—เบตเบชเบฒเบก. เบซเบผเบทเบ”เบตเบเบงเปˆเบฒ, เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบšเปเบฅเบดเบเบฒเบ™เบžเบฒเบเบชเปˆเบงเบ™เบ—เบตเบชเบฒเบกเป‚เบ”เบเบเบปเบ‡เบžเบฒเบเปƒเบ™เป€เบงเบฑเบšเป€เบŠเบตเบšเป€เบงเบต. เบ•เบปเบงเบขเปˆเบฒเบ‡, เป€เบ›เบฑเบ™เป‚เบกเบ”เบนเบ™ PHP เปƒเบ™ Apache.
เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒเบ•เป‰เบญเบ‡เบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบเบฑเบ™เปเบฅเบฐเบเบฑเบ™เป‚เบ”เบเบœเปˆเบฒเบ™เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบšเบฒเบ‡เบ—เบตเปˆเบขเบนเปˆเปเบฅเบฐเบžเบญเบ” (localgost: 5432, localhost: 3000, nginx: 80, php-fpm: 9000), เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบˆเบฒเบ nginx เบ‚เป‰เบญเบเบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบ—เบฑเบ‡ php-fpm เปเบฅเบฐเป„เบ›เบซเบฒ. postgres, เปเบฅเบฐเบˆเบฒเบ php-fpm เบเบฑเบš postgres เปเบฅเบฐ nginx เปเบฅเบฐเบ•เบปเบงเบˆเบดเบ‡เปเบฅเป‰เบงเบˆเบฒเบเปเบ•เปˆเบฅเบฐเบšเปเบฅเบดเบเบฒเบ™เบ‚เป‰เบญเบเบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบšเปเบฅเบดเบเบฒเบ™เบญเบทเปˆเบ™. เบ”เป‰เบงเบเบงเบดเบ—เบตเบ™เบตเป‰, เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ‚เบญเบ‡เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบšเปเปˆเป„เบ”เป‰เบœเบนเบเบกเบฑเบ”เบเบฑเบšเบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ‚เบญเบ‡เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบญเบทเปˆเบ™.

8. เบเบฒเบ™เบ‚เบฐเปœเบฒเบ™

เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ”เบฝเบง, เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบซเบผเบฒเบเบˆเบฐเบšเปเปˆเบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰!

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

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

9. Disposability

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

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

10. เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™/เบ„เบงเบฒเบกเบชเบฐเป€เปเบตเบžเบฒเบšเบ‚เบญเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‡เบฒเบ™

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

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

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

11. เบšเบฑเบ™เบ—เบถเบ

เบžเบงเบเป€เบฎเบปเบฒเบ‚เบฝเบ™เบšเบฑเบ™เบ—เบถเบเปƒเบชเปˆเป„เบŸเบฅเปŒ เปเบฅเบฐเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™! เบžเบงเบเป€เบฎเบปเบฒเบšเปเปˆเป€เบฎเบฑเบ”เบ„เบงเบฒเบกเบชเบฐเบญเบฒเบ”เป„เบŸเบฅเปŒเปเบฅเบฐเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบˆเบฒเบเบšเบฑเบ™เบ—เบถเบ. เบ‚เปเปƒเบซเป‰เบŠเบทเป‰เบฎเบฒเบ”เป„เบ”เบ—เบตเปˆเบกเบต 9000 Peta bytes เปเบฅเบฐเบ™เบฑเป‰เบ™เบ”เบต.

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

12. เบงเบฝเบเบ‡เบฒเบ™เบšเปเบฅเบดเบซเบฒเบ™

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

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

เบ•เบปเบงเบขเปˆเบฒเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™ PHP, Laravel, Laradock, Docker-Compose

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

เปƒเบซเป‰เบˆเบดเบ™เบ•เบฐเบ™เบฒเบเบฒเบ™เบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบšเปเปˆเบกเบต PHP เบฅเบธเป‰เบ™เปƒเบ”เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบขเบนเปˆเปƒเบ™ PC เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเปเบฅเบฐเบšเปเปˆเบกเบตเบซเบเบฑเบ‡เป€เบฅเบตเบ.
เบ•เบดเบ”เบ•เบฑเป‰เบ‡ docker เปเบฅเบฐ docker-compose เป€เบงเบตเบŠเบฑเบ™เบซเบผเป‰เบฒเบชเบธเบ”. (เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบžเบปเบšเป„เบ”เป‰เปƒเบ™เบญเบดเบ™เป€เบ•เบตเป€เบ™เบฑเบ”)

docker -v && 
docker-compose -v

เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™ เปเบฅเบฐเบเบฒเบ™เบ™เบณเปƒเบŠเป‰ Blue-Green, เบญเบตเบ‡เปƒเบชเปˆ The Twelve-Factor App methodology เบ—เบตเปˆเบกเบตเบ•เบปเบงเบขเปˆเบฒเบ‡เปƒเบ™ php เปเบฅเบฐ docker

1. เบžเบงเบเป€เบฎเบปเบฒเบงเบฒเบ‡ Laradock

git clone https://github.com/Laradock/laradock.git && 
ls

เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™ เปเบฅเบฐเบเบฒเบ™เบ™เบณเปƒเบŠเป‰ Blue-Green, เบญเบตเบ‡เปƒเบชเปˆ The Twelve-Factor App methodology เบ—เบตเปˆเบกเบตเบ•เบปเบงเบขเปˆเบฒเบ‡เปƒเบ™ php เปเบฅเบฐ docker

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

2. Configure Laradock เป€เบžเบทเปˆเบญเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ.

cd laradock && 
cp env-example .env

เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™ เปเบฅเบฐเบเบฒเบ™เบ™เบณเปƒเบŠเป‰ Blue-Green, เบญเบตเบ‡เปƒเบชเปˆ The Twelve-Factor App methodology เบ—เบตเปˆเบกเบตเบ•เบปเบงเบขเปˆเบฒเบ‡เปƒเบ™ php เปเบฅเบฐ docker

2.1. เป€เบ›เบตเบ”เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบต habr (เป‚เบŸเบ™เป€เบ”เบตเบซเบผเบฑเบเบ—เบตเปˆ laradock เบ–เบทเบ cloned) เปƒเบ™เบšเบฒเบ‡เบšเบฑเบ™เบ™เบฒเบ—เบดเบเบฒเบ™. (เปƒเบ™เบเปเบฅเบฐเบ™เบต PHPStorm เบ‚เบญเบ‡เบ‚เป‰เบญเบ)

เปƒเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเบžเบฝเบ‡เปเบ•เปˆเปƒเบซเป‰เบŠเบทเปˆเป‚เบ„เบ‡เบเบฒเบ™.

เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™ เปเบฅเบฐเบเบฒเบ™เบ™เบณเปƒเบŠเป‰ Blue-Green, เบญเบตเบ‡เปƒเบชเปˆ The Twelve-Factor App methodology เบ—เบตเปˆเบกเบตเบ•เบปเบงเบขเปˆเบฒเบ‡เปƒเบ™ php เปเบฅเบฐ docker

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

เบžเบงเบเป€เบฎเบปเบฒเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบ–เบฑเบ‡เป‚เบ”เบเปƒเบŠเป‰

docker-compose up -d workspace && 
docker-compose exec workspace bash

เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™ เปเบฅเบฐเบเบฒเบ™เบ™เบณเปƒเบŠเป‰ Blue-Green, เบญเบตเบ‡เปƒเบชเปˆ The Twelve-Factor App methodology เบ—เบตเปˆเบกเบตเบ•เบปเบงเบขเปˆเบฒเบ‡เปƒเบ™ php เปเบฅเบฐ docker

2.3. เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡ Laravel

composer create-project --prefer-dist laravel/laravel application

เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™ เปเบฅเบฐเบเบฒเบ™เบ™เบณเปƒเบŠเป‰ Blue-Green, เบญเบตเบ‡เปƒเบชเปˆ The Twelve-Factor App methodology เบ—เบตเปˆเบกเบตเบ•เบปเบงเบขเปˆเบฒเบ‡เปƒเบ™ php เปเบฅเบฐ docker

2.4. เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹เบเบฒเบ™โ€‹เบ•เบดเบ”โ€‹เบ•เบฑเป‰เบ‡โ€‹, เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เบเบงเบ”โ€‹เบชเบญเบšโ€‹เบงเปˆเบฒโ€‹เบฅเบฐโ€‹เบšเบปเบšโ€‹เบ—เบตเปˆโ€‹เบกเบตโ€‹เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบชเป‰เบฒเบ‡โ€‹เบ•เบฑเป‰เบ‡โ€‹เบ‚เบถเป‰เบ™โ€‹เปเบฅเบฐโ€‹เบ‚เป‰เบฒโ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบเบญเบšโ€‹.

ls
exit
docker-compose down

เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™ เปเบฅเบฐเบเบฒเบ™เบ™เบณเปƒเบŠเป‰ Blue-Green, เบญเบตเบ‡เปƒเบชเปˆ The Twelve-Factor App methodology เบ—เบตเปˆเบกเบตเบ•เบปเบงเบขเปˆเบฒเบ‡เปƒเบ™ php เปเบฅเบฐ docker

2.5. เปƒเบซเป‰เบเบฑเบšเบ„เบทเบ™เป„เบ›เบšเปˆเบญเบ™ PHPStorm เปเบฅเบฐเบเปเบฒเบ™เบปเบ”เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบเบฑเบšเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ laravel เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเปƒเบ™เป„เบŸเบฅเปŒ .env.

เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™ เปเบฅเบฐเบเบฒเบ™เบ™เบณเปƒเบŠเป‰ Blue-Green, เบญเบตเบ‡เปƒเบชเปˆ The Twelve-Factor App methodology เบ—เบตเปˆเบกเบตเบ•เบปเบงเบขเปˆเบฒเบ‡เปƒเบ™ php เปเบฅเบฐ docker

3. เป€เบžเบตเปˆเบกเบฅเบฐเบซเบฑเบ”เบ—เบฑเบ‡เบซเบกเบปเบ”เปƒเบชเปˆ Git.

เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบชเบดเปˆเบ‡เบ™เบตเป‰, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบชเป‰เบฒเบ‡ repository เปƒเบ™ Github (เบซเบผเบทเบšเปˆเบญเบ™เบญเบทเปˆเบ™). เปƒเบซเป‰เป„เบ›เบ—เบตเปˆเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบต habr เปƒเบ™ terminal เปเบฅเบฐเบ›เบฐเบ•เบดเบšเบฑเบ”เบฅเบฐเบซเบฑเบ”เบ•เปเปˆเป„เบ›เบ™เบตเป‰.

echo "# habr-12factor" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin [email protected]:nzulfigarov/habr-12factor.git # ะทะดะตััŒ ะฑัƒะดะตั‚ ััั‹ะปะบะฐ ะฝะฐ ะฒะฐัˆ ั€ะตะฟะพ
git push -u origin master
git status

เปƒเบซเป‰เบเบงเบ”เป€เบšเบดเปˆเบ‡เบงเปˆเบฒเบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡.

เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™ เปเบฅเบฐเบเบฒเบ™เบ™เบณเปƒเบŠเป‰ Blue-Green, เบญเบตเบ‡เปƒเบชเปˆ The Twelve-Factor App methodology เบ—เบตเปˆเบกเบตเบ•เบปเบงเบขเปˆเบฒเบ‡เปƒเบ™ php เปเบฅเบฐ docker

เป€เบžเบทเปˆเบญเบ„เบงเบฒเบกเบชเบฐเบ”เบงเบเบชเบฐเบšเบฒเบ, เบ‚เป‰เบญเบเบ‚เปเปเบ™เบฐเบ™เปเบฒเปƒเบซเป‰เปƒเบŠเป‰เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบชเบฒเบเบ•เบฒเบชเปเบฒเบฅเบฑเบš Git, เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบ‚เป‰เบญเบ GitKraken. (เบ™เบตเป‰เปเบกเปˆเบ™เบฅเบดเป‰เบ‡เบญเป‰เบฒเบ‡เบญเบตเบ‡)

4. เป€เบ›เบตเบ”เบ•เบปเบง!

เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เปƒเบซเป‰เปเบ™เปˆเปƒเบˆเบงเปˆเบฒเบšเปเปˆเบกเบตเบซเบเบฑเบ‡เบ•เบดเบ”เบขเบนเปˆเปƒเบ™เบžเบญเบ” 80 เปเบฅเบฐ 443.

docker-compose up -d nginx php-fpm

เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™ เปเบฅเบฐเบเบฒเบ™เบ™เบณเปƒเบŠเป‰ Blue-Green, เบญเบตเบ‡เปƒเบชเปˆ The Twelve-Factor App methodology เบ—เบตเปˆเบกเบตเบ•เบปเบงเบขเปˆเบฒเบ‡เปƒเบ™ php เปเบฅเบฐ docker

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เป‚เบ„เบ‡เบเบฒเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบ›เบฐเบเบญเบšเบ”เป‰เบงเบ 3 เบšเปเบฅเบดเบเบฒเบ™เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ:

  • nginx - เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเป€เบงเบฑเบšเป„เบŠเบ•เปŒ
  • php-fpm - php เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบˆเบฒเบเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเป€เบงเบฑเบšเป„เบŠเบ•เปŒ
  • เบžเบทเป‰เบ™เบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบ - php เบชเปเบฒเบฅเบฑเบšเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ

เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™, เบžเบงเบเป€เบฎเบปเบฒเบšเบฑเบ™เบฅเบธเป„เบ”เป‰เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบชเป‰เบฒเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ—เบตเปˆเบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡ 4 เบˆเบธเบ”เปƒเบ™เบˆเปเบฒเบ™เบงเบ™ 12, เบ„เบท:

1. codebase โ€” เบฅเบฐเบซเบฑเบ”เบ—เบฑเบ‡เปเบปเบ”เบขเบนเปˆเปƒเบ™เบšเปˆเบญเบ™เป€เบเบฑเบšเบกเป‰เบฝเบ™เบญเบฑเบ™เบ”เบฝเบง (เปเบฒเบเป€เบซเบ”เบ™เป‰เบญเบเป†: เบกเบฑเบ™เบญเบฒเบ”เบˆเบฐเบ–เบทเบเบ•เป‰เบญเบ‡เบ—เบตเปˆเบˆเบฐเป€เบžเบตเปˆเบก docker เบžเบฒเบเปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™ laravel, เปเบ•เปˆเบกเบฑเบ™เบšเปเปˆเบชเบณเบ„เบฑเบ™).

2. เบเบฒเบ™เป€เบžเบดเปˆเบ‡เบžเบฒเบญเบฒเป„เบช - เบเบฒเบ™เป€เบžเบดเปˆเบ‡เบžเบฒเบญเบฒเป„เบชเบ—เบฑเบ‡เปเบปเบ”เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบ–เบทเบเบ‚เบฝเบ™เบขเปˆเบฒเบ‡เบˆเบฐเปเบˆเป‰เบ‡เปƒเบ™เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™/composer.json เปเบฅเบฐเปƒเบ™เปเบ•เปˆเบฅเบฐ Dockerfile เบ‚เบญเบ‡เปเบ•เปˆเบฅเบฐเบšเบฑเบ™เบˆเบธ.

3. เบšเปเบฅเบดเบเบฒเบ™เบ”เป‰เบฒเบ™เบซเบผเบฑเบ‡ โ€” เปเบ•เปˆเบฅเบฐเบšเปเบฅเบดเบเบฒเบ™ (php-fom, nignx, workspace) เปƒเบŠเป‰เบŠเบตเบงเบดเบ”เบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡เปเบฅเบฐเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบˆเบฒเบเบžเบฒเบเบ™เบญเบเปเบฅเบฐเป€เบกเบทเปˆเบญเป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบšเปเบฅเบดเบเบฒเบ™เบซเบ™เบถเปˆเบ‡, เบญเบตเบเบšเปเบฅเบดเบเบฒเบ™เบซเบ™เบถเปˆเบ‡เบˆเบฐเบšเปเปˆเป„เบ”เป‰เบฎเบฑเบšเบœเบปเบ™เบเบฐเบ—เบปเบš.

4. เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ•เปˆเบฒเบ‡เป† โ€” เปเบ•เปˆโ€‹เบฅเบฐโ€‹เบเบฒเบ™โ€‹เบšเปโ€‹เบฅเบดโ€‹เบเบฒเบ™โ€‹เปเบกเปˆเบ™โ€‹เบซเบ™เบถเปˆเบ‡โ€‹เบ‚เบฐโ€‹เบšเบงเบ™โ€‹เบเบฒเบ™โ€‹. เปเบ•เปˆเบฅเบฐเบšเปเบฅเบดเบเบฒเบ™เบšเปเปˆเป„เบ”เป‰เบฎเบฑเบเบชเบฒเบชเบฐเบ–เบฒเบ™เบฐเบžเบฒเบเปƒเบ™.

5. เบเบฒเบ™เบœเบนเบเบกเบฑเบ”เบžเบญเบ”

docker ps

เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™ เปเบฅเบฐเบเบฒเบ™เบ™เบณเปƒเบŠเป‰ Blue-Green, เบญเบตเบ‡เปƒเบชเปˆ The Twelve-Factor App methodology เบ—เบตเปˆเบกเบตเบ•เบปเบงเบขเปˆเบฒเบ‡เปƒเบ™ php เปเบฅเบฐ docker

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

6. เบ‚เบฐเบซเบ™เบฒเบ™

Docker เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเบชเป‰เบฒเบ‡เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบซเบผเบฒเบเบญเบฑเบ™เบ‚เบญเบ‡เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบ”เบฝเบงเบเบฑเบ™เบ”เป‰เบงเบเบเบฒเบ™เบ”เบธเปˆเบ™เบ”เปˆเบฝเบ‡เบเบฒเบ™เป‚เบซเบผเบ”เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบฅเบฐเบซเบงเปˆเบฒเบ‡เบžเบงเบเบกเบฑเบ™.

เปƒเบซเป‰เบขเบธเบ”เป€เบŠเบปเบฒเบเบฒเบ™เบšเบฑเบ™เบˆเบธเปเบฅเบฐเปเบฅเปˆเบ™เปƒเบซเป‰เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบœเปˆเบฒเบ™เบ—เบธเบ‡ --scale

docker-compose down && 
docker-compose up -d --scale php-fpm=3 nginx php-fpm

เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™ เปเบฅเบฐเบเบฒเบ™เบ™เบณเปƒเบŠเป‰ Blue-Green, เบญเบตเบ‡เปƒเบชเปˆ The Twelve-Factor App methodology เบ—เบตเปˆเบกเบตเบ•เบปเบงเบขเปˆเบฒเบ‡เปƒเบ™ php เปเบฅเบฐ docker

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

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

8. เบเบฒเบ™โ€‹เบžเบฑเบ”โ€‹เบ—เบฐโ€‹เบ™เบฒโ€‹เบ„เปเบฒโ€‹เบฎเป‰เบญเบ‡โ€‹เบชเบฐโ€‹เบซเบกเบฑเบ / parity เบเบฒเบ™โ€‹เบ”เปเบฒโ€‹เป€เบ™เบตเบ™โ€‹เบ‡เบฒเบ™โ€‹ - เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบ—เบฑเบ‡เบซเบกเบปเบ”เปเบกเปˆเบ™เบ„เบทเบเบฑเบ™. เป‚เบ”เบเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเปƒเบ™เบเบฒเบ™เบœเบฐเบฅเบดเบ”, เบ—เปˆเบฒเบ™เบˆเบฐเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบซเบเบฑเบ‡เปƒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เบ‚เบญเบ‡เบ—เปˆเบฒเบ™. เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เบˆเบฐเบญเบตเบ‡เปƒเบชเปˆ Docker เปƒเบ™เบ—เบฒเบ‡เบ”เบฝเบงเบเบฑเบ™.

9. เบเบฒเบ™เบ•เบฑเบ”เป„เบกเป‰ โ€” เบšเบฑเบ™โ€‹เบ—เบถเบโ€‹เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ”โ€‹เปƒเบ™โ€‹เบšเบฑเบ™โ€‹เบˆเบธโ€‹เป€เบซเบผเบปเปˆเบฒโ€‹เบ™เบตเป‰โ€‹เป„เบ›โ€‹เบชเบฐโ€‹เบ•โ€‹เบฃเบตเบกโ€‹เปเบฅเบฐโ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เป€เบšเบดเปˆเบ‡โ€‹เป€เบซเบฑเบ™โ€‹เบขเบนเปˆโ€‹เปƒเบ™ Docker consoleโ€‹. (เปƒเบ™โ€‹เบเปโ€‹เบฅเบฐโ€‹เบ™เบตโ€‹เบ™เบตเป‰โ€‹, เปƒเบ™โ€‹เบ„เบงเบฒเบกโ€‹เป€เบ›เบฑเบ™โ€‹เบˆเบดเบ‡โ€‹, เบกเบตโ€‹เบžเบฒโ€‹เบŠเบฐโ€‹เบ™เบฐโ€‹เบ—เบตเปˆโ€‹เป€เบฎเบฑเบ”โ€‹เบ”เป‰เบงเบโ€‹เป€เบฎเบทเบญเบ™โ€‹เบญเบทเปˆเบ™เป†โ€‹, เบ™เบตเป‰โ€‹เบญเบฒเบ”โ€‹เบˆเบฐโ€‹เบšเปเปˆโ€‹เปเบกเปˆเบ™โ€‹เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบ—เปˆเบฒเบ™โ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบ”เบนโ€‹เปเบฅโ€‹เบกเบฑเบ™โ€‹)

 docker-compose logs -f

เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™ เปเบฅเบฐเบเบฒเบ™เบ™เบณเปƒเบŠเป‰ Blue-Green, เบญเบตเบ‡เปƒเบชเปˆ The Twelve-Factor App methodology เบ—เบตเปˆเบกเบตเบ•เบปเบงเบขเปˆเบฒเบ‡เปƒเบ™ php เปเบฅเบฐ docker

เปเบ•เปˆ, เบกเบตเบเบฒเบ™เบˆเบฑเบšเป„เบ”เป‰เบงเปˆเบฒเบ„เปˆเบฒ Default เปƒเบ™ PHP เปเบฅเบฐ Nginx เบเบฑเบ‡เบ‚เบฝเบ™เบšเบฑเบ™เบ—เบถเบเปƒเบชเปˆเป„เบŸเบฅเปŒ. เป€เบžเบทเปˆเบญเบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡ 12 เบ›เบฑเบ”เปƒเบˆ, เบกเบฑเบ™เป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบˆเปเบฒเป€เบ›เบฑเบ™ เบ•เบฑเบ”เบ‚เบฒเบ” เบเบฒเบ™เบ‚เบฝเบ™เบšเบฑเบ™เบ—เบถเบเปƒเบชเปˆเป„เบŸเบฅเปŒเปƒเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ‚เบญเบ‡เปเบ•เปˆเบฅเบฐ container เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ.

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

10โ€‹. เบงเบฝเบเบ‡เบฒเบ™เบšเปเบฅเบดเบซเบฒเบ™ โ€” เบงเบฝเบเบšเปเบฅเบดเบซเบฒเบ™เบ—เบฑเบ‡เปเบปเบ”เบ–เบทเบเปเบเป‰เป„เบ‚เป‚เบ”เบ laravel เบ‚เบญเบšเปƒเบˆเบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เบกเบทเบŠเปˆเบฒเบ‡เบŠเปˆเบฒเบ‡เบขเปˆเบฒเบ‡เปเบ™เปˆเบ™เบญเบ™เบ•เบฒเบกเบ—เบตเปˆเบœเบนเป‰เบชเป‰เบฒเบ‡เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเปˆเบ™ 12 เบ•เป‰เบญเบ‡เบเบฒเบ™.

เป€เบ›เบฑเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ‚เป‰เบญเบเบˆเบฐเบชเบฐเปเบ”เบ‡เบงเบดเบ—เบตเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ„เปเบฒเบชเบฑเปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡.
เบžเบงเบเป€เบฎเบปเบฒเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบ–เบฑเบ‡.

 
docker-compose exec workspace bash
php artisan list

เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™ เปเบฅเบฐเบเบฒเบ™เบ™เบณเปƒเบŠเป‰ Blue-Green, เบญเบตเบ‡เปƒเบชเปˆ The Twelve-Factor App methodology เบ—เบตเปˆเบกเบตเบ•เบปเบงเบขเปˆเบฒเบ‡เปƒเบ™ php เปเบฅเบฐ docker

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

เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™ เปเบฅเบฐเบเบฒเบ™เบ™เบณเปƒเบŠเป‰ Blue-Green, เบญเบตเบ‡เปƒเบชเปˆ The Twelve-Factor App methodology เบ—เบตเปˆเบกเบตเบ•เบปเบงเบขเปˆเบฒเบ‡เปƒเบ™ php เปเบฅเบฐ docker

11โ€‹. เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ เปเบฅเบฐ 12. เบเปเปˆเบชเป‰เบฒเบ‡, เบ›เปˆเบญเบ, เปเบฅเปˆเบ™

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

เปƒเบ™เบชเบฑเป‰เบ™, เปเบ™เบงเบ„เบงเบฒเบกเบ„เบดเบ”เปเบกเปˆเบ™เบญเบตเบ‡เปƒเบชเปˆเบฅเบฐเบšเบปเบš CI / CD เป€เบŠเบฑเปˆเบ™ Jenkins ะธ Gitlab CI. เปƒเบ™เบ—เบฑเบ‡เบชเบญเบ‡, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบเปเบฒเบ™เบปเบ”เบ•เบปเบงเปเบ›เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบชเบฐเป€เบžเบฒเบฐ. เบ•เบฒเบกโ€‹เบ™เบฑเป‰เบ™โ€‹เปเบฅเป‰เบง, โ€‹เปƒเบ™โ€‹เบชเบฐเบžเบฒเบšโ€‹เบเบฒเบ™โ€‹เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง, เบˆเบธเบ” C เบˆเบฐโ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ›เบฐเบ•เบดเบšเบฑเบ” เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ.

เปเบฅเบฐเบˆเบธเบ”เบเปˆเบฝเบงเบเบฑเบš เบเปเปˆเบชเป‰เบฒเบ‡, เบ›เปˆเบญเบ, เปเบฅเปˆเบ™ เบ–เบทเบเปเบเป‰เป„เบ‚เป‚เบ”เบเบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบ”เป‰เบงเบเบŠเบทเปˆ เบ—เปเปˆเบ™เป‰เปเบฒ.

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

เบฅเบฐเบซเบฑเบ”เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเปเบกเปˆเบ™เบขเบนเปˆเบ—เบตเปˆ GitHub.
เบขเปˆเบฒเบฅเบทเบกเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป‚เบกเบ”เบนเบ™เบเปˆเบญเบเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ cloning repository เบ™เบตเป‰.

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

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

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