ืคื™ืชื•ื— ื™ื™ืฉื•ืžื™ื ื•ืคืจื™ืกื” ื›ื—ื•ืœ-ื™ืจื•ืง ืขืœ ื‘ืกื™ืก ืžืชื•ื“ื•ืœื•ื’ื™ื™ืช The Twelve-Factor App ืขื ื“ื•ื’ืžืื•ืช php ื•-docer

ืคื™ืชื•ื— ื™ื™ืฉื•ืžื™ื ื•ืคืจื™ืกื” ื›ื—ื•ืœ-ื™ืจื•ืง ืขืœ ื‘ืกื™ืก ืžืชื•ื“ื•ืœื•ื’ื™ื™ืช The Twelve-Factor App ืขื ื“ื•ื’ืžืื•ืช php ื•-docer

ื ืชื—ื™ืœ ืขื ืชื™ืื•ืจื™ื” ืงื˜ื ื”. ืžื” ืงืจื” ืืคืœื™ืงืฆื™ื™ืช XNUMX ื”ืคืงื˜ื•ืจื™ื?

ื‘ืžื™ืœื™ื ืคืฉื•ื˜ื•ืช, ืžืกืžืš ื–ื” ื ื•ืขื“ ืœืคืฉื˜ ืืช ื”ืคื™ืชื•ื— ืฉืœ ื™ื™ืฉื•ืžื™ SaaS, ืขื•ื–ืจ ืขืœ ื™ื“ื™ ื”ืคื™ื›ืช ืžืคืชื—ื™ื ื•ืžื”ื ื“ืกื™ DevOps ืœืžื•ื“ืขื•ืช ืœื‘ืขื™ื•ืช ื•ืœืคืจืงื˜ื™ืงื•ืช ื‘ื”ืŸ ื ืชืงืœื™ื ืœืจื•ื‘ ื‘ืคื™ืชื•ื— ื™ื™ืฉื•ืžื™ื ืžื•ื“ืจื ื™ื™ื.

ื”ืžืกืžืš ื ื•ืฆืจ ืขืœ ื™ื“ื™ ืžืคืชื—ื™ ืคืœื˜ืคื•ืจืžืช Heroku.

ื ื™ืชืŸ ืœื™ื™ืฉื ืืช ืžืชื•ื“ื•ืœื•ื’ื™ื™ืช ื”-XNUMX-Factor App ืขืœ ื™ื™ืฉื•ืžื™ื ื”ื›ืชื•ื‘ื™ื ื‘ื›ืœ ืฉืคืช ืชื›ื ื•ืช ื•ืฉื™ืžื•ืฉ ื‘ื›ืœ ืฉื™ืœื•ื‘ ืฉืœ ืฉื™ืจื•ืชื™ ื’ื™ื‘ื•ื™ ืฉืœ ืฆื“ ืฉืœื™ืฉื™ (ืžืกื“ื™ ื ืชื•ื ื™ื, ืชื•ืจื™ ื”ื•ื“ืขื•ืช, ืžื˜ืžื•ื ื™ื ื•ื›ื•').

ื‘ืงืฆืจื” ืขืœ ื”ื’ื•ืจืžื™ื ืขืฆืžื ืขืœื™ื”ื ืžืชื‘ืกืกืช ืžืชื•ื“ื•ืœื•ื’ื™ื” ื–ื•:

  1. ื‘ืกื™ืก ืงื•ื“ โ€“ ื‘ืกื™ืก ืงื•ื“ ืื—ื“ ื‘ืžืขืงื‘ ืžืงื•ืจ โ€“ ืคืจื™ืกื•ืช ืžืจื•ื‘ื•ืช
  2. ืชืœื•ืช - ื”ื›ืจื–ื” ืžืคื•ืจืฉืช ื•ื‘ื™ื“ื•ื“ ืชืœื•ืช
  3. ืชึฐืฆื•ึผืจึธื” - ืฉืžื•ืจ ืชืฆื•ืจื” ื‘ื–ืžืŸ ืจื™ืฆื”
  4. ืฉื™ืจื•ืชื™ ืฆื“ ืฉืœื™ืฉื™ (ืฉื™ืจื•ืชื™ ื’ื™ื‘ื•ื™) - ื”ืชื™ื™ื—ืก ืœืฉื™ืจื•ืชื™ ื’ื™ื‘ื•ื™ ื›ืืœ ืžืฉืื‘ื™ื ื”ื ื™ืชื ื™ื ืœื—ื™ื‘ื•ืจ
  5. ืœื‘ื ื•ืช, ืœืฉื—ืจืจ, ืœืจื•ืฅ - ื”ืคืจื“ื” ืžื•ื—ืœื˜ืช ืฉืœ ืฉืœื‘ื™ ื‘ื ื™ื™ื” ื•ื”ืคืขืœื”
  6. ะŸั€ะพั†ะตััั‹ - ื”ืคืขืœ ืืช ื”ืืคืœื™ืงืฆื™ื” ื›ืชื”ืœื™ืš ื—ืกืจ ืžืฆื‘ ืื—ื“ ืื• ื™ื•ืชืจ
  7. ื›ืจื™ื›ืช ื ืžืœ โ€“ ืฉื™ืจื•ืชื™ ื™ื™ืฆื•ื ื‘ืืžืฆืขื•ืช ื›ืจื™ื›ืช ื ืžืœ
  8. ื‘ืžืงื‘ื™ืœ - ื”ื’ื“ืœ ืืช ื”ืืคืœื™ืงืฆื™ื” ืฉืœืš ืขื ืชื”ืœื™ื›ื™ื
  9. ื—ื“ ืคืขืžื™ื•ืช - ื”ื’ื“ืœ ืืช ื”ืืžื™ื ื•ืช ืขื ื”ืคืขืœื” ืžื”ื™ืจื” ื•ื›ื™ื‘ื•ื™ ื—ื™ื ื ื™
  10. ื”ืชืืžื” ืœืคื™ืชื•ื— ืืคืœื™ืงืฆื™ื•ืช/ืชืคืขื•ืœ - ืฉืžื•ืจ ืขืœ ืกื‘ื™ื‘ื•ืช ืคื™ืชื•ื—, ื”ื‘ืžื” ื•ื”ืคืงื” ื“ื•ืžื•ืช ื›ื›ืœ ื”ืืคืฉืจ
  11. ืจื™ืฉื•ื - ื”ืชื™ื™ื—ืก ืœื™ื•ืžืŸ ื›ืืœ ื–ืจื ืฉืœ ืื™ืจื•ืขื™ื
  12. ืžืฉื™ืžื•ืช ื ื™ื”ื•ืœ โ€“ ื‘ื™ืฆื•ืข ืžืฉื™ืžื•ืช ื ื™ื”ื•ืœ/ื ื™ื”ื•ืœ ื‘ืชื”ืœื™ื›ื™ื ื—ื“-ืคืขืžื™ื™ื

ืœืžื™ื“ืข ื ื•ืกืฃ ืขืœ 12 ื”ื’ื•ืจืžื™ื, ืขื™ื™ืŸ ื‘ืžืฉืื‘ื™ื ื”ื‘ืื™ื:

ืžื”ื™ ืคืจื™ืกื” ื›ื—ื•ืœ-ื™ืจื•ืง?

ืคืจื™ืกื” ื›ื—ื•ืœ-ื™ืจื•ืง ื”ื™ื ื“ืจืš ืœืกืคืง ืืคืœื™ืงืฆื™ื” ื”ืคืงื” ื‘ืื•ืคืŸ ืฉืœืงื•ื— ื”ืงืฆื” ืœื ื™ืจืื” ืฉื™ื ื•ื™ื™ื ืžืฆื™ื“ื•. ื‘ืžื™ืœื™ื ืื—ืจื•ืช, ืคืจื™ืกืช ืืคืœื™ืงืฆื™ื” ืขื ืืคืก ื–ืžืŸ ื”ืฉื‘ืชื”.

ืขืจื›ืช BG Deploy ื”ืงืœืืกื™ืช ื ืจืื™ืช ื›ืžื• ื”ืชืžื•ื ื” ืœืžื˜ื”.

ืคื™ืชื•ื— ื™ื™ืฉื•ืžื™ื ื•ืคืจื™ืกื” ื›ื—ื•ืœ-ื™ืจื•ืง ืขืœ ื‘ืกื™ืก ืžืชื•ื“ื•ืœื•ื’ื™ื™ืช The Twelve-Factor App ืขื ื“ื•ื’ืžืื•ืช php ื•-docer

  • ื‘ื”ืชื—ืœื” ื™ืฉ 2 ืฉืจืชื™ื ืคื™ื–ื™ื™ื ืขื ืื•ืชื• ืงื•ื“, ืืคืœื™ืงืฆื™ื”, ืคืจื•ื™ืงื˜, ื•ื™ืฉ ื ืชื‘ (ืื™ื–ื•ืŸ).
  • ื”ื ืชื‘ ืžืคื ื” ื‘ืชื—ื™ืœื” ืืช ื›ืœ ื”ื‘ืงืฉื•ืช ืœืื—ื“ ื”ืฉืจืชื™ื (ะทะตะปะตะฝั‹ะน).
  • ื‘ืจื’ืข ืฉืืชื” ืฆืจื™ืš ืœืขืฉื•ืช ืฉื—ืจื•ืจ ืฉื•ื‘, ื›ืœ ื”ืคืจื•ื™ืงื˜ ืžืชืขื“ื›ืŸ ื‘ืฉืจืช ืื—ืจ (ะกะธะฝะธะน), ืฉืื™ื ื• ืžื˜ืคืœ ื›ืขืช ื‘ื‘ืงืฉื•ืช.
  • ืื—ืจื™ ื”ืงื•ื“ ืขื‘ื•ืจ ื›ึผึธื—ื•ึนืœ ื”ืฉืจืช ืžืขื•ื“ื›ืŸ ืœื—ืœื•ื˜ื™ืŸ, ื”ื ืชื‘ ืžืงื‘ืœ ืคืงื•ื“ื” ืœืขื‘ื•ืจ ืžืžื ื• ื™ืจื•ืง ืขืœ ะกะธะฝะธะน ืฉืจืช
  • ื›ืขืช ื›ืœ ื”ืœืงื•ื—ื•ืช ืจื•ืื™ื ืืช ื”ืชื•ืฆืื” ืฉืœ ื”ืงื•ื“ ืขื ื›ื—ื•ืœ ืฉืจืช.
  • ืœื›ืžื” ื–ืžืŸ, ะทะตะปะตะฝั‹ะน ื”ืฉืจืช ืžืฉืžืฉ ื›ื’ื™ื‘ื•ื™ ื‘ืžืงืจื” ืฉืœ ืคืจื™ืกื” ืœื ืžื•ืฆืœื—ืช ืœ ะกะธะฝะธะน ืฉืจืช ื•ื‘ืžืงืจื” ืฉืœ ื›ืฉืœ ื•ื‘ืื’ื™ื, ื”ื ืชื‘ ืžืขื‘ื™ืจ ืืช ื–ืจื™ืžืช ื”ืžืฉืชืžืฉ ื—ื–ืจื” ืืœื™ื• ะทะตะปะตะฝั‹ะน ืฉืจืช ืขื ื”ื’ืจืกื” ื”ื™ืฆื™ื‘ื” ื”ื™ืฉื ื”, โ€‹โ€‹ื•ื”ืงื•ื“ ื”ื—ื“ืฉ ื ืฉืœื— ืœืขื“ื›ื•ืŸ ื•ื‘ื“ื™ืงื”.
  • ื•ื‘ืกื•ืฃ ื”ืชื”ืœื™ืš ื”ื•ื ืžืชืขื“ื›ืŸ ื‘ืื•ืชื• ืื•ืคืŸ ะทะตะปะตะฝั‹ะน ืฉืจืช. ื•ืœืื—ืจ ืขื“ื›ื•ืŸ ื–ื”, ื”ื ืชื‘ ืžืขื‘ื™ืจ ืืช ื–ืจื™ืžืช ื”ื‘ืงืฉื•ืช ื—ื–ืจื” ืœ ะทะตะปะตะฝั‹ะน ืฉืจืช

ื”ื›ืœ ื ืจืื” ื˜ื•ื‘ ืžืื•ื“ ื•ื‘ืžื‘ื˜ ืจืืฉื•ืŸ ืœื ืืžื•ืจื•ืช ืœื”ื™ื•ืช ื‘ืขื™ื•ืช ืขื ื–ื”.
ืื‘ืœ ืžื›ื™ื•ื•ืŸ ืฉืื ื• ื—ื™ื™ื ื‘ืขื•ืœื ื”ืžื•ื“ืจื ื™, ื”ืืคืฉืจื•ืช ืขื ืžื™ืชื•ื’ ืคื™ื–ื™, ื›ืคื™ ืฉืžืฆื•ื™ืŸ ื‘ืชื›ื ื™ืช ื”ืงืœืืกื™ืช, ืœื ืžืชืื™ืžื” ืœื ื•. ืจืฉื•ื ืืช ื”ืžื™ื“ืข ืœืขืช ืขืชื”, ื ื—ื–ื•ืจ ืืœื™ื• ื‘ื”ืžืฉืš.

ืขืฆื” ืจืขื” ื•ื˜ื•ื‘ื”

ื›ืชื‘ ื•ื™ืชื•ืจ: ื”ื“ื•ื’ืžืื•ืช ืฉืœื”ืœืŸ ืžืฆื™ื’ื•ืช ืืช ื›ืœื™ ื”ืฉื™ืจื•ืช / ื”ืžืชื•ื“ื•ืœื•ื’ื™ื•ืช ื‘ื”ืŸ ืื ื™ ืžืฉืชืžืฉ, ืืชื” ื™ื›ื•ืœ ืœื”ืฉืชืžืฉ ื‘ื›ืœ ื—ืœื•ืคื•ืช ืขื ืคื•ื ืงืฆื™ื•ืช ื“ื•ืžื•ืช.

ืจื•ื‘ ื”ื“ื•ื’ืžืื•ืช ื™ืฆื˜ืœื‘ื• ืื™ื›ืฉื”ื• ืขื ืคื™ืชื•ื— ืืชืจื™ื (ืื™ื–ื• ื”ืคืชืขื”), ืขื PHP ื•-Docker.

ื‘ืคืกืงืื•ืช ืœืžื˜ื” ื™ืฉ ืชื™ืื•ืจ ืžืขืฉื™ ืคืฉื•ื˜ ืฉืœ ื”ืฉื™ืžื•ืฉ ื‘ื’ื•ืจืžื™ื ื‘ื“ื•ื’ืžืื•ืช ืžืกื•ื™ืžื•ืช, ืื ื‘ืจืฆื•ื ืš ืœืงื‘ืœ ืชื™ืื•ืจื™ื” ื ื•ืกืคืช ื‘ื ื•ืฉื ื–ื”, ืขื™ื™ืŸ ื‘ืงื™ืฉื•ืจื™ื ืœืžืขืœื” ืœืžืงื•ืจ ื”ืžืงื•ืจื™.

1. ื‘ืกื™ืก ืงื•ื“

ื”ืฉืชืžืฉ ื‘-FTP ื•ื‘-FileZilla ื›ื“ื™ ืœื”ืขืœื•ืช ืงื‘ืฆื™ื ืœืฉืจืชื™ื ืื—ื“ ื‘ื›ืœ ืคืขื, ืืœ ืชืื—ืกืŸ ืงื•ื“ ื‘ืฉื•ื ืžืงื•ื ืžืœื‘ื“ ื‘ืฉืจืช ื™ื™ืฆื•ืจ.

ืœืคืจื•ื™ืงื˜ ืชืžื™ื“ ืฆืจื™ืš ืœื”ื™ื•ืช ื‘ืกื™ืก ืงื•ื“ ื™ื—ื™ื“, ื›ืœื•ืžืจ ื›ืœ ื”ืงื•ื“ ืžื’ื™ืข ืžืื—ื“ Git ืžืื’ืจ. ืฉืจืชื™ื (ื™ื™ืฆื•ืจ, ื‘ื™ืžื•ื™, test1, test2...) ืžืฉืชืžืฉื™ื ื‘ืงื•ื“ ืžื”ืขื ืคื™ื ืฉืœ ืžืื’ืจ ืื—ื“ ืžืฉื•ืชืฃ. ืœืคื™ื›ืš, ืื ื• ืžืฉื™ื’ื™ื ืขืงื‘ื™ื•ืช ืงื•ื“.

2. ืชืœื•ืช

ื”ื•ืจื“ ืืช ื›ืœ ื”ืกืคืจื™ื•ืช ื‘ืชื™ืงื™ื•ืช ื™ืฉื™ืจื•ืช ืœืฉื•ืจืฉ ื”ืคืจื•ื™ืงื˜. ื‘ืฆืข ืขื“ื›ื•ื ื™ื ืคืฉื•ื˜ ืขืœ ื™ื“ื™ ื”ืขื‘ืจืช ื”ืงื•ื“ ื”ื—ื“ืฉ ืœืชื™ืงื™ื” ืขื ื”ื’ืจืกื” ื”ื ื•ื›ื—ื™ืช ืฉืœ ื”ืกืคืจื™ื™ื”. ืฉื™ื ืืช ื›ืœ ื›ืœื™ ื”ืฉื™ืจื•ืช ื”ื“ืจื•ืฉื™ื ื™ืฉื™ืจื•ืช ืœืฉืจืช ื”ืžืืจื— ืฉื‘ื• ืคื•ืขืœื™ื ืขื•ื“ 20 ืฉื™ืจื•ืชื™ื.

ืœืคืจื•ื™ืงื˜ ืชืžื™ื“ ืฆืจื™ื›ื” ืœื”ื™ื•ืช ืจืฉื™ืžื” ืžื•ื‘ื ืช ื‘ื‘ื™ืจื•ืจ ืฉืœ ืชืœื•ืช (ื‘ื”ืชืœื•ืช, ืื ื™ ืžืชื›ื•ื•ืŸ ื’ื ืœืกื‘ื™ื‘ื”). ื›ืœ ื”ืชืœื•ืช ื—ื™ื™ื‘ื•ืช ืœื”ื™ื•ืช ืžื•ื’ื“ืจื•ืช ื•ืžื‘ื•ื“ื“ื•ืช ื‘ืžืคื•ืจืฉ.
ื›ื“ื•ื’ืžื”, ื‘ื•ืื• ื ื™ืงื— ืžืœื—ื™ืŸ ะธ ืกึทื•ึธืจ.

ืžืœื—ื™ืŸ - ืžื ื”ืœ ื—ื‘ื™ืœื•ืช ื”ืžืืคืฉืจ ืœื”ืชืงื™ืŸ ืกืคืจื™ื•ืช ื‘-PHP. Composer ื ื•ืชืŸ ืœืš ืืช ื”ื™ื›ื•ืœืช ืœืฆื™ื™ืŸ ื’ืจืกืื•ืช ื‘ืงืคื“ื ื•ืช ืื• ืœื, ื•ืœื”ื’ื“ื™ืจ ืื•ืชืŸ ื‘ืžืคื•ืจืฉ. ื™ื›ื•ืœื™ื ืœื”ื™ื•ืช 20 ืคืจื•ื™ืงื˜ื™ื ืฉื•ื ื™ื ื‘ืฉืจืช, ื•ืœื›ืœ ืื—ื“ ืชื”ื™ื” ืจืฉื™ืžื” ืคืจื˜ื™ืช ืฉืœ ื—ื‘ื™ืœื•ืช ื•ืกืคืจื™ื•ืช ืœืœื ืชืœื•ืช ื‘ืื—ืจ.

ืกึทื•ึธืจ - ื›ืœื™ ืขื–ืจ ื”ืžืืคืฉืจ ืœื”ื’ื“ื™ืจ ื•ืœื‘ื•ื“ื“ ืืช ื”ืกื‘ื™ื‘ื” ื‘ื” ื”ืืคืœื™ืงืฆื™ื” ืชืขื‘ื•ื“. ื‘ื”ืชืื ืœื›ืš, ื‘ื“ื™ื•ืง ื›ืžื• ืขื ืžืœื—ื™ืŸ, ืื‘ืœ ื‘ืื•ืคืŸ ื™ืกื•ื“ื™ ื™ื•ืชืจ, ืื ื—ื ื• ื™ื›ื•ืœื™ื ืœืงื‘ื•ืข ืขื ืžื” ื”ืืคืœื™ืงืฆื™ื” ืขื•ื‘ื“ืช. ื‘ื—ืจ ื’ืจืกื” ืกืคืฆื™ืคื™ืช ืฉืœ PHP, ื”ืชืงืŸ ืจืง ืืช ื”ื—ื‘ื™ืœื•ืช ื”ื“ืจื•ืฉื•ืช ื›ื“ื™ ืฉื”ืคืจื•ื™ืงื˜ ื™ืขื‘ื•ื“, ืžื‘ืœื™ ืœื”ื•ืกื™ืฃ ืฉื•ื ื“ื‘ืจ ื ื•ืกืฃ. ื•ื”ื›ื™ ื—ืฉื•ื‘, ื‘ืœื™ ืœื”ืคืจื™ืข ืœื—ื‘ื™ืœื•ืช ื•ืœืกื‘ื™ื‘ื” ืฉืœ ื”ืžื›ื•ื ื” ื”ืžืืจื— ื•ืคืจื•ื™ืงื˜ื™ื ืื—ืจื™ื. ื›ืœื•ืžืจ, ื›ืœ ื”ืคืจื•ื™ืงื˜ื™ื ื‘ืฉืจืช ื”ืคื•ืขืœื™ื ื“ืจืš Docker ื™ื›ื•ืœื™ื ืœื”ืฉืชืžืฉ ืœื—ืœื•ื˜ื™ืŸ ื‘ื›ืœ ืกื˜ ืฉืœ ื—ื‘ื™ืœื•ืช ื•ืกื‘ื™ื‘ื•ืช ืฉื•ื ื•ืช ืœื—ืœื•ื˜ื™ืŸ.

3. ืชืฆื•ืจื”

ืื—ืกืŸ ื”ื’ื“ืจื•ืช ื›ืงื‘ื•ืขื™ื ื™ืฉื™ืจื•ืช ื‘ืงื•ื“. ืงื‘ื•ืขื™ื ื ืคืจื“ื™ื ืœืฉืจืช ื”ื‘ื“ื™ืงื”, ื ืคืจื“ื™ื ืœื™ื™ืฆื•ืจ. ืงืฉืจ ืืช ืขื‘ื•ื“ืช ื”ืืคืœื™ืงืฆื™ื” ื‘ื”ืชืื ืœืกื‘ื™ื‘ื” ื™ืฉื™ืจื•ืช ื‘ืœื•ื’ื™ืงื” ื”ืขืกืงื™ืช ืฉืœ ื”ืคืจื•ื™ืงื˜ ื‘ืืžืฆืขื•ืช ื”ื‘ื ื™ื” ืฉืœ if else.

ืชืฆื•ืจื•ืช - ื–ื” ื”ื“ื‘ืจ ื”ื™ื—ื™ื“ ืฉืฆืจื™ืš ืœื”ื™ื•ืช ืฉื•ื ื” ื‘ืคืจื™ืกืช ื”ืคืจื•ื™ืงื˜ (ืคืจื™ืกื”). ื‘ืื•ืคืŸ ืื™ื“ื™ืืœื™, ืชืฆื•ืจื•ืช ืฆืจื™ื›ื•ืช ืœืขื‘ื•ืจ ื“ืจืš ืžืฉืชื ื™ ืกื‘ื™ื‘ื” (env vars).

ื›ืœื•ืžืจ, ื’ื ืื ืชืื—ืกืŸ ืžืกืคืจ ืงื‘ืฆื™ ืชืฆื•ืจื” .config.prod .config.local ื•ืชืฉื ื” ืืช ืฉืžื ื‘ื–ืžืŸ ื”ืคืจื™ืกื” ืœ-.config (ื”ืชืฆื•ืจื” ื”ืจืืฉื™ืช ืฉืžืžื ื” ื”ืืคืœื™ืงืฆื™ื” ืงื•ืจืืช ื ืชื•ื ื™ื) - ื–ื• ืœื ืชื”ื™ื” ื”ื’ื™ืฉื” ื”ื ื›ื•ื ื”, ืฉื›ืŸ ื‘ืžืงืจื” ื–ื” ื”ืžื™ื“ืข ืžื”ืงื•ื ืคื™ื’ื•ืจืฆื™ื•ืช ื™ื”ื™ื” ื–ืžื™ืŸ ืœืฆื™ื‘ื•ืจ ืœื›ืœ ืžืคืชื—ื™ ื”ืืคืœื™ืงืฆื™ื•ืช ื•ื”ื ืชื•ื ื™ื ืžืฉืจืช ื”ื™ื™ืฆื•ืจ ื™ื™ืคื’ืขื•. ื™ืฉ ืœืื—ืกืŸ ืืช ื›ืœ ื”ืชืฆื•ืจื•ืช ื™ืฉื™ืจื•ืช ื‘ืžืขืจื›ืช ื”ืคืจื™ืกื” (CI / CD) ื•ืœื”ืคื™ืง ืขื‘ื•ืจ ืกื‘ื™ื‘ื•ืช ืฉื•ื ื•ืช ืขื ืขืจื›ื™ื ืฉื•ื ื™ื ื”ื“ืจื•ืฉื™ื ืœืกื‘ื™ื‘ื” ืžืกื•ื™ืžืช ื‘ื–ืžืŸ ื”ืคืจื™ืกื”.

4. ืฉื™ืจื•ืชื™ ืฆื“ ืฉืœื™ืฉื™ (ืฉื™ืจื•ืชื™ ื’ื™ื‘ื•ื™)

ืงืฉืจ ื—ื–ืง ืขืœ ื”ืกื‘ื™ื‘ื”, ื”ืฉืชืžืฉ ื‘ื—ื™ื‘ื•ืจื™ื ืฉื•ื ื™ื ืขื‘ื•ืจ ืื•ืชื ืฉื™ืจื•ืชื™ื ื‘ืกื‘ื™ื‘ื•ืช ืžืกื•ื™ืžื•ืช.

ืœืžืขืฉื”, ืคืจื™ื˜ ื–ื” ืžืฆื˜ืœื‘ ืžืื•ื“ ืขื ื”ืคืจื™ื˜ ืขืœ ืชืฆื•ืจื•ืช, ืฉื›ืŸ ืœืœื ื ื•ื›ื—ื•ืช ืฉืœ ืคืจื™ื˜ ื–ื”, ืœื ื ื™ืชืŸ ืœื™ืฆื•ืจ ื ืชื•ื ื™ ืชืฆื•ืจื” ืจื’ื™ืœื™ื, ื•ื‘ืื•ืคืŸ ื›ืœืœื™, ื”ืืคืฉืจื•ืช ืœื”ื’ื“ืจื” ืชื™ืขืœื.

ื›ืœ ื”ื—ื™ื‘ื•ืจื™ื ืœืฉื™ืจื•ืชื™ื ื—ื™ืฆื•ื ื™ื™ื ื›ื’ื•ืŸ ืฉืจืชื™ ืชื•ืจื™ื, ืžืกื“ื™ ื ืชื•ื ื™ื, ืฉื™ืจื•ืชื™ ืžื˜ืžื•ืŸ ื—ื™ื™ื‘ื™ื ืœื”ื™ื•ืช ื–ื”ื™ื ื”ืŸ ืขื‘ื•ืจ ื”ืกื‘ื™ื‘ื” ื”ืžืงื•ืžื™ืช ื•ื”ืŸ ืขื‘ื•ืจ ืกื‘ื™ื‘ืช ืฆื“ ืฉืœื™ืฉื™/ื™ื™ืฆื•ืจ. ื‘ืžื™ืœื™ื ืื—ืจื•ืช, ื‘ื›ืœ ืขืช ืื ื™ ื™ื›ื•ืœ ืœืฉื ื•ืช ืืช ืžื—ืจื•ื–ืช ื”ื—ื™ื‘ื•ืจ ื›ื“ื™ ืœื”ื—ืœื™ืฃ ืงืจื™ืื•ืช ืœื‘ืกื™ืก ืžืก' 1 ื‘ื‘ืกื™ืก ืžืก' 2 ืžื‘ืœื™ ืœืฉื ื•ืช ืืช ืงื•ื“ ื”ืืคืœื™ืงืฆื™ื”. ืื•, ื‘ืžื‘ื˜ ืงื“ื™ืžื”, ื›ื“ื•ื’ืžื”, ื”ืขื•ื‘ื“ื” ืฉื›ืืฉืจ ืžื“ืจื’ื™ื ืืช ื”ืฉื™ืจื•ืช, ืื™ื ืš ืฆืจื™ืš ืœืฆื™ื™ืŸ ืืช ื”ื—ื™ื‘ื•ืจ ื‘ืฆื•ืจื” ืžื™ื•ื—ื“ืช ืขื‘ื•ืจ ืฉืจืช ืžื˜ืžื•ืŸ ื ื•ืกืฃ.

5. ืœื‘ื ื•ืช, ืœืฉื—ืจืจ, ืœืจื•ืฅ

ืฉืžื•ืจ ืจืง ืืช ื”ื’ืจืกื” ื”ืกื•ืคื™ืช ืฉืœ ื”ืงื•ื“ ื‘ืฉืจืช, ืœืœื ืกื™ื›ื•ื™ ืœื”ื—ื–ื™ืจ ืืช ื”ืžื”ื“ื•ืจื” ืœืื—ื•ืจ. ืื™ืŸ ืฆื•ืจืš ืœืžืœื ืฉื˜ื— ื“ื™ืกืง. ืžื™ ืฉื—ื•ืฉื‘ ืฉื”ื•ื ื™ื›ื•ืœ ืœื”ื›ื ื™ืก ืืช ื”ืงื•ื“ ืœื™ื™ืฆื•ืจ ืขื ืฉื’ื™ืื” ื”ื•ื ืžืชื›ื ืช ื’ืจื•ืข!

ื™ืฉ ืœื”ืคืจื™ื“ ืืช ื›ืœ ืฉืœื‘ื™ ื”ืคืจื™ืกื” ื–ื” ืžื–ื”.

ื™ืฉ ื”ื–ื“ืžื ื•ืช ืœื—ื–ื•ืจ ืื—ื•ืจื”. ื‘ืฆืข ืžื”ื“ื•ืจื•ืช ืขื ื’ื™ืฉื” ืžื”ื™ืจื” ืœืขื•ืชืงื™ื ื™ืฉื ื™ื ืฉืœ ื”ืืคืœื™ืงืฆื™ื” (ื›ื‘ืจ ืžื•ืจื›ื‘ืช ื•ืžื•ื›ื ื” ืœืงืจื‘), ืขืœ ืžื ืช ืœืฉื—ื–ืจ ืืช ื”ื’ืจืกื” ื”ื™ืฉื ื” ื‘ืžืงืจื” ืฉืœ ืฉื’ื™ืื•ืช. ื›ืœื•ืžืจ, ื‘ืชื ืื™ ืฉื™ืฉ ืชื™ืงื™ื” ืžืฉื—ืจืจ ื•ืชื™ืงื™ื” ื ื•ึนื›ึฐื—ึดื™, ื•ืœืื—ืจ ืคืจื™ืกื” ื•ื”ืจื›ื‘ื” ืžื•ืฆืœื—ื™ื, ื”ืชื™ืงื™ื” ื ื•ึนื›ึฐื—ึดื™ ืงืฉื•ืจื” ื‘ืงื™ืฉื•ืจ ืกืžืœื™ ืœืžื”ื“ื•ืจื” ื”ื—ื“ืฉื” ืฉื ืžืฆืืช ื‘ืคื ื™ื ืžืฉื—ืจืจ ืขื ื”ืฉื ื”ืžื•ืชื ื” ืฉืœ ืžืกืคืจ ื”ืฉื—ืจื•ืจ.

ื–ื” ื”ืžืงื•ื ืฉื‘ื• ืื ื• ื–ื•ื›ืจื™ื ืืช ื”ืคืจื™ืกื” ืฉืœ Blue-Green, ื”ืžืืคืฉืจืช ืœืš ืœื ืจืง ืœืขื‘ื•ืจ ื‘ื™ืŸ ืงื•ื“, ืืœื ื’ื ืœืขื‘ื•ืจ ื‘ื™ืŸ ื›ืœ ื”ืžืฉืื‘ื™ื ื•ืืคื™ืœื• ืกื‘ื™ื‘ื•ืช ืขื ื”ื™ื›ื•ืœืช ืœื”ื—ื–ื™ืจ ื”ื›ืœ ืœืื—ื•ืจ.

6. ืชื”ืœื™ื›ื™ื

ืื—ืกืŸ ืืช ื ืชื•ื ื™ ืžืฆื‘ ื”ืืคืœื™ืงืฆื™ื” ื™ืฉื™ืจื•ืช ื‘ืืคืœื™ืงืฆื™ื” ืขืฆืžื”. ื”ืฉืชืžืฉ ื‘ื”ืคืขืœื•ืช ื‘-RAM ืฉืœ ื”ืืคืœื™ืงืฆื™ื” ืขืฆืžื”. ื”ืฉืชืžืฉ ื›ื›ืœ ื”ืืคืฉืจ ื‘ืฉื™ืชื•ืฃ ื‘ื™ืŸ ืฉื™ืจื•ืชื™ ืฆื“ ืฉืœื™ืฉื™. ืงืฉืจ ืœืขื•ื‘ื“ื” ืฉื”ืืคืœื™ืงืฆื™ื” ื™ื›ื•ืœื” ืœื”ื™ื•ืช ืจืง ืชื”ืœื™ืš ืื—ื“ ื•ืื™ื ื” ืžืืคืฉืจืช ืงื ื” ืžื™ื“ื”.

ืœื’ื‘ื™ ื”ืคืขืœื•ืช, ืื—ืกื ื• ื ืชื•ื ื™ื ืจืง ื‘ืžื˜ืžื•ืŸ ื”ื ืฉืœื˜ ืขืœ ื™ื“ื™ ืฉื™ืจื•ืชื™ ืฆื“ ืฉืœื™ืฉื™ (memcached, redis), ื›ืš ืฉื’ื ืื ืคื•ืขืœื™ื ืœื›ื 20 ืชื”ืœื™ื›ื™ ื™ื™ืฉื•ืžื™ื, ื›ืœ ืื—ื“ ืžื”ื ืฉื ื™ื’ืฉ ืœืžื˜ืžื•ืŸ ื™ื•ื›ืœ ืœื”ืžืฉื™ืš ืœืขื‘ื•ื“ ืขื ื”ืœืงื•ื— ื‘ืื•ืชื• ืžืฆื‘ ืฉื‘ื• ื”ืžืฉืชืžืฉ ืขื‘ื“ ืขื ื”ืืคืœื™ืงืฆื™ื” ื‘ืชื”ืœื™ืš ืื—ืจ. ื‘ื’ื™ืฉื” ื–ื• ืžืกืชื‘ืจ ืฉืœื ืžืฉื ื” ื‘ื›ืžื” ืขื•ืชืงื™ื ืฉืœ ืฉื™ืจื•ืชื™ ืฆื“ ืฉืœื™ืฉื™ ืชืฉืชืžืฉื•, ื”ื›ืœ ื™ืขื‘ื•ื“ ื›ืžื• ืฉืฆืจื™ืš ื•ืœืœื ื‘ืขื™ื•ืช ื‘ื’ื™ืฉื” ืœื ืชื•ื ื™ื.

7. ื›ืจื™ื›ืช ื ืžืœ

ืจืง ืฉืจืช ื”ืื™ื ื˜ืจื ื˜ ืฆืจื™ืš ืœื“ืขืช ืื™ืš ืœืขื‘ื•ื“ ืขื ืฉื™ืจื•ืชื™ ืฆื“ ืฉืœื™ืฉื™. ื•ืขื“ื™ืฃ ื‘ื“ืจืš ื›ืœืœ ืœื”ืขืœื•ืช ืฉื™ืจื•ืชื™ ืฆื“ ืฉืœื™ืฉื™ ื™ืฉื™ืจื•ืช ื‘ืชื•ืš ืฉืจืช ื”ืื™ื ื˜ืจื ื˜. ืœื“ื•ื’ืžื”, ื›ืžื•ื“ื•ืœ PHP ื‘- Apache.
ื›ืœ ื”ืฉื™ืจื•ืชื™ื ืฉืœื›ื ื—ื™ื™ื‘ื™ื ืœื”ื™ื•ืช ื ื’ื™ืฉื™ื ื–ื” ืœื–ื” ื‘ืืžืฆืขื•ืช ืงืจื™ืื” ืœื›ืชื•ื‘ืช ื›ืœืฉื”ื™ ื•ื™ืฆื™ืื” (localgost:5432, localhost:3000, nginx:80, php-fpm:9000), ื›ืœื•ืžืจ ืž-nginx ืื ื™ ื™ื›ื•ืœ ืœื’ืฉืช ื’ื ืœ-php-fpm ื•ื’ื postgres, ื•ืž-php-fpm ืœ-postgres ื•-nginx, ื•ืžื›ืœ ืฉื™ืจื•ืช ืขืฆืžื•, ืื ื™ ื™ื›ื•ืœ ืœื’ืฉืช ืœืฉื™ืจื•ืช ืื—ืจ. ืœืคื™ื›ืš, ื‘ืจื™ืื•ืชื• ืฉืœ ืฉื™ืจื•ืช ืื™ื ื” ืงืฉื•ืจื” ืœื‘ืจื™ืื•ืชื• ืฉืœ ืฉื™ืจื•ืช ืื—ืจ.

8. ืžืงื‘ื™ืœื™ื•ืช

ืขื•ื‘ื“ื™ื ืขื ืชื”ืœื™ืš ืื—ื“, ื•ืื– ืคืชืื•ื ื›ืžื” ืชื”ืœื™ื›ื™ื ืœื ื™ืฆืœื™ื—ื• ืœื”ืกืชื“ืจ ืื—ื“ ืขื ื”ืฉื ื™!

ื”ืฉืืจ ืืช ื”ืืคืฉืจื•ืช ืœืฉื ื•ืช ืงื ื” ืžื™ื“ื”. ื ื—ื™ืœ ื“ื•ืงืจ ื”ื•ื ื ื”ื“ืจ ื‘ืฉื‘ื™ืœ ื–ื”.
Docker Swarm ื”ื•ื ื›ืœื™ ืœื™ืฆื™ืจื” ื•ื ื™ื”ื•ืœ ืฉืœ ืืฉื›ื•ืœื•ืช ืžื›ื•ืœื•ืช ื”ืŸ ื‘ื™ืŸ ืžื›ื•ื ื•ืช ืฉื•ื ื•ืช ื•ื”ืŸ ื‘ื™ืŸ ื—ื‘ื•ืจื” ืฉืœ ืžื›ื•ืœื•ืช ื‘ืื•ืชื” ืžื›ื•ื ื”.

ื‘ืืžืฆืขื•ืช swarm, ืื ื™ ื™ื›ื•ืœ ืœืงื‘ื•ืข ื›ืžื” ืžืฉืื‘ื™ื ืืงืฆื” ืœื›ืœ ืชื”ืœื™ืš ื•ื›ืžื” ืชื”ืœื™ื›ื™ื ืฉืœ ืื•ืชื• ืฉื™ืจื•ืช ืื ื™ ืืจื™ืฅ, ื•ื”ืื™ื–ื•ืŸ ื”ืคื ื™ืžื™, ืฉืžืงื‘ืœ ื ืชื•ื ื™ื ืขืœ ืคื•ืจื˜ ื ืชื•ืŸ, ื™ื‘ืฆืข ืคืจื•ืงืกื™ ืื•ื˜ื•ืžื˜ื™ืช ืฉืœื• ืœืชื”ืœื™ื›ื™ื. ืœืคื™ื›ืš, ื›ืฉืื ื™ ืจื•ืื” ืฉื”ืขื•ืžืก ืขืœ ื”ืฉืจืช ื’ื“ืœ, ืื ื™ ื™ื›ื•ืœ ืœื”ื•ืกื™ืฃ ืขื•ื“ ืชื”ืœื™ื›ื™ื, ื•ื‘ื›ืš ืœื”ืคื—ื™ืช ืืช ื”ืขื•ืžืก ืขืœ ืชื”ืœื™ื›ื™ื ืžืกื•ื™ืžื™ื.

9. ื—ื“ ืคืขืžื™ื•ืช

ืืœ ืชืฉืชืžืฉ ื‘ืชื•ืจื™ื ืœืขื‘ื•ื“ื” ืขื ืชื”ืœื™ื›ื™ื ื•ื ืชื•ื ื™ื. ื”ืจื™ื’ืช ืชื”ืœื™ืš ืื—ื“ ืืžื•ืจื” ืœื”ืฉืคื™ืข ืขืœ ืคืขื•ืœืช ื”ืืคืœื™ืงืฆื™ื” ื›ื•ืœื”. ืื ืฉื™ืจื•ืช ืื—ื“ ื ื•ืคืœ, ื”ื›ืœ ื™ื•ืจื“.

ื ื™ืชืŸ ืœื›ื‘ื•ืช ื›ืœ ืชื”ืœื™ืš ื•ืฉื™ืจื•ืช ื‘ื›ืœ ืขืช ื•ื–ื” ืœื ืืžื•ืจ ืœื”ืฉืคื™ืข ืขืœ ืฉื™ืจื•ืชื™ื ืื—ืจื™ื (ื›ืžื•ื‘ืŸ ืฉืœื ืžื“ื•ื‘ืจ ื‘ืขื•ื‘ื“ื” ืฉื”ืฉื™ืจื•ืช ืœื ื™ื”ื™ื” ื ื’ื™ืฉ ืœืฉื™ืจื•ืช ืื—ืจ, ืืœื ืฉืฉื™ืจื•ืช ืื—ืจ ืœื ื™ื›ื‘ื” ืื—ืจื™ ื–ื”) . ื™ืฉ ืœืกื™ื™ื ืืช ื›ืœ ื”ืชื”ืœื™ื›ื™ื ื‘ืฆื•ืจื” ืจื›ื”, ื›ืš ืฉื›ืืฉืจ ื”ื ื™ืกืชื™ื™ืžื•, ื”ื ืชื•ื ื™ื ืœื ื™ื•ืฉืคืขื• ื•ื”ืžืขืจื›ืช ืชืคืขืœ ื›ื”ืœื›ื” ื‘ืคืขื ื”ื‘ืื” ืฉื”ื™ื ืชื•ืคืขืœ. ื›ืœื•ืžืจ, ื’ื ื‘ืžืงืจื” ืฉืœ ื”ืคืกืงื” ืื™ืŸ ืœื”ืฉืคื™ืข ืขืœ ื”ื ืชื•ื ื™ื (ืžื ื’ื ื•ืŸ ื”ืขืกืงืื•ืช ืžืชืื™ื ื›ืืŸ, ืฉืื™ืœืชื•ืช ืœื‘ืกื™ืก ื”ื ืชื•ื ื™ื ืขื•ื‘ื“ื•ืช ืจืง ื‘ืงื‘ื•ืฆื•ืช, ื•ืื ืœืคื—ื•ืช ืฉืื™ืœืชื” ืื—ืช ืžื”ืงื‘ื•ืฆื” ื ื›ืฉืœื” ืื• ื‘ื•ืฆืขื” ืขื ืฉื’ื™ืื” , ืื– ืืฃ ืฉืื™ืœืชื” ืื—ืจืช ืžื”ืงื‘ื•ืฆื” ืœื ืžื‘ื•ืฆืขืช ื‘ืกื•ืคื• ืฉืœ ื“ื‘ืจ.

10. ื–ื•ื’ื™ื•ืช ืคื™ืชื•ื— ืืคืœื™ืงืฆื™ื•ืช/ืชืคืขื•ืœ

ื”ื”ืคืงื”, ื”ื‘ืžื” ื•ื”ื’ืจืกื” ื”ืžืงื•ืžื™ืช ืฉืœ ื”ืืคืœื™ืงืฆื™ื” ื—ื™ื™ื‘ื•ืช ืœื”ื™ื•ืช ืฉื•ื ื•ืช. ื‘ื™ื™ืฆื•ืจ, ื™ืฉ ืœื ื• ืืช ื”ืžืกื’ืจืช Yii Lite, ื•ื‘ืžืงื•ื Yii, ื›ืš ืฉื”ื™ื ืขื•ื‘ื“ืช ืžื”ืจ ื™ื•ืชืจ ื‘ื™ื™ืฆื•ืจ!

ืœืžืขืฉื”, ื›ืœ ื”ืคืจื™ืกื” ื•ื”ืขื‘ื•ื“ื” ืขื ื”ืงื•ื“ ืฆืจื™ื›ื•ืช ืœื”ื™ื•ืช ื‘ืกื‘ื™ื‘ื” ื›ืžืขื˜ ื–ื”ื” (ืื ื—ื ื• ืœื ืžื“ื‘ืจื™ื ืขืœ ื—ื•ืžืจื” ืคื™ื–ื™ืช). ื›ืžื• ื›ืŸ, ื›ืœ ืขื•ื‘ื“ ืคื™ืชื•ื— ืืžื•ืจ ืœื”ื™ื•ืช ืžืกื•ื’ืœ ืœืคืจื•ืก ืืช ื”ืงื•ื“ ืœื™ื™ืฆื•ืจ ื‘ืžื™ื“ืช ื”ืฆื•ืจืš, ื•ืœื ืื™ื–ื• ืžื—ืœืงืช devops ืฉื”ื•ื›ืฉืจื” ื‘ืžื™ื•ื—ื“, ืฉื™ื›ื•ืœื” ืœื”ืขืœื•ืช ืืช ื”ืืคืœื™ืงืฆื™ื” ื‘ื™ื™ืฆื•ืจ ืจืง ื‘ื’ืœืœ ื—ื•ื–ืง ืžื™ื•ื—ื“.

Docker ื’ื ืขื•ื–ืจ ืœื ื• ื‘ื–ื”. ื‘ื›ืคื•ืฃ ืœื›ืœ ื”ื ืงื•ื“ื•ืช ื”ืงื•ื“ืžื•ืช, ืฉื™ืžื•ืฉ ื‘-docer ื™ื‘ื™ื ืืช ืชื”ืœื™ืš ืคืจื™ืกืช ื”ืกื‘ื™ื‘ื” ื”ืŸ ื‘ื™ื™ืฆื•ืจ ื•ื”ืŸ ื‘ืžื—ืฉื‘ ื”ืžืงื•ืžื™ ืœื”ื–ื ืช ืคืงื•ื“ื” ืื—ืช ืื• ืฉืชื™ื™ื.

11. ืจื™ืฉื•ื (ื™ื•ืžื ื™ื)

ืื ื• ื›ื•ืชื‘ื™ื ื™ื•ืžื ื™ื ืœืงื‘ืฆื™ื ื•ืœื‘ืกื™ืก ื ืชื•ื ื™ื! ืื ื—ื ื• ืœื ืžื ืงื™ื ืงื‘ืฆื™ื ื•ืžืกื“ ื ืชื•ื ื™ื ืžื™ื•ืžื ื™ื. ื‘ื•ืื• ืคืฉื•ื˜ ื ืงื ื” ื›ื•ื ืŸ ืงืฉื™ื— ืขื‘ื•ืจ 9000 Peta ื‘ื™ื™ื˜ื™ื ื•ื ื•ืจืžื•ืช.

ื›ืœ ื”ื™ื•ืžื ื™ื ืฆืจื™ื›ื™ื ืœื”ื™ื—ืฉื‘ ื›ื–ืจื ืฉืœ ืื™ืจื•ืขื™ื. ื”ื™ื™ืฉื•ื ืขืฆืžื• ืœื ืืžื•ืจ ืœืขืกื•ืง ื‘ืขื™ื‘ื•ื“ ื™ื•ืžื ื™ื. ื™ืฉ ืœื”ื ืคื™ืง ืืช ื”ื™ื•ืžื ื™ื ืœ-stdout ืื• ืœืฉืœื•ื— ื‘ืืžืฆืขื•ืช ืคืจื•ื˜ื•ืงื•ืœ ื›ื’ื•ืŸ udp ื›ื“ื™ ืฉื”ืืคืœื™ืงืฆื™ื” ืœื ืชื™ืฆื•ืจ ื‘ืขื™ื•ืช ืขื ื”ื™ื•ืžื ื™ื. Graylog ืขื•ื‘ื“ ื˜ื•ื‘ ื‘ืฉื‘ื™ืœ ื–ื”. ืงื‘ืœืช ื›ืœ ื”ื™ื•ืžื ื™ื ื‘ืืžืฆืขื•ืช udp (ื‘ืืžืฆืขื•ืช ืคืจื•ื˜ื•ืงื•ืœ ื–ื”, ืื™ืŸ ืฆื•ืจืš ืœื”ืžืชื™ืŸ ืœืชื’ื•ื‘ื” ืขืœ ืงืœื™ื˜ื” ืžื•ืฆืœื—ืช ืฉืœ ื”ื—ื‘ื™ืœื”) ืื™ื ื” ืžืคืจื™ืขื” ืœืืคืœื™ืงืฆื™ื” ื‘ืฉื•ื ืฆื•ืจื” ื•ืขื•ืกืงืช ืจืง ื‘ืžื‘ื ื” ื•ืขื™ื‘ื•ื“ ื™ื•ืžื ื™ื. ื”ืœื•ื’ื™ืงื” ืฉืœ ื”ื™ื™ืฉื•ื ืœื ืžืฉืชื ื” ื›ื“ื™ ืœืขื‘ื•ื“ ืขื ื’ื™ืฉื•ืช ืืœื”.

12. ืžืฉื™ืžื•ืช ื ื™ื”ื•ืœ

ื›ื“ื™ ืœืขื“ื›ืŸ ื ืชื•ื ื™ื, ืžืกื“ ื ืชื•ื ื™ื ื•ื›ื•', ื”ืฉืชืžืฉ ื‘ื ืงื•ื“ืช ืงืฆื” ืฉื ื•ืฆืจื” ื‘ื ืคืจื“ ื‘-API, ืฉื‘ื™ืฆื•ืขื” 2 ืคืขืžื™ื ื‘ืจืฆื™ืคื•ืช ื™ื•ื‘ื™ืœ ืœื›ืš ืฉื ื™ืชืŸ ื™ื”ื™ื” ืœืฉื›ืคืœ ื”ื›ืœ ืขื‘ื•ืจืš. ืื‘ืœ ืืชื ืœื ื˜ื™ืคืฉื™ื, ืœื ืชืœื—ืฆื• ืคืขืžื™ื™ื, ื•ืื ื—ื ื• ืœื ืฆืจื™ื›ื™ื ื”ืขื‘ืจื•ืช.

ื›ืœ ืžืฉื™ืžื•ืช ื”ื ื™ื”ื•ืœ ื—ื™ื™ื‘ื•ืช ืœื”ืชื‘ืฆืข ื‘ืื•ืชื” ืกื‘ื™ื‘ื” ื›ืžื• ื›ืœ ื”ืงื•ื“, ื‘ืจืžืช ื”ืฉื—ืจื•ืจ. ื›ืœื•ืžืจ, ืื ื ืฆื˜ืจืš ืœืฉื ื•ืช ืืช ืžื‘ื ื” ืžืกื“ ื”ื ืชื•ื ื™ื, ืื– ืœื ื ืขืฉื” ื–ืืช ื‘ืื•ืคืŸ ื™ื“ื ื™ ืขืœ ื™ื“ื™ ืฉื™ื ื•ื™ ืฉืžื•ืช ื”ืขืžื•ื“ื•ืช ื•ื”ื•ืกืคืช ื—ื“ืฉื™ื ื‘ืืžืฆืขื•ืช ื›ืœื™ื ืœื ื™ื”ื•ืœ ืžืกื“ ื ืชื•ื ื™ื ื•ื™ื–ื•ืืœื™ื™ื. ืœื“ื‘ืจื™ื ื›ืืœื” ืื ื—ื ื• ื™ื•ืฆืจื™ื ืกืงืจื™ืคื˜ื™ื ื ืคืจื“ื™ื - ื”ืขื‘ืจื•ืช ืฉืžืชื‘ืฆืขื•ืช ื‘ื›ืœ ืžืงื•ื ื•ื‘ื›ืœ ื”ืกื‘ื™ื‘ื•ืช ืขื ืื•ืชื” ืชื•ืฆืื” ืžืฉื•ืชืคืช ื•ืžื•ื‘ื ืช. ืขื‘ื•ืจ ื›ืœ ืฉืืจ ื”ืžืฉื™ืžื•ืช, ื›ื’ื•ืŸ ืื™ื›ืœื•ืก ืคืจื•ื™ืงื˜ ื‘ื ืชื•ื ื™ื, ื™ืฉ ืœื™ื™ืฉื ืžืชื•ื“ื•ืœื•ื’ื™ื•ืช ื“ื•ืžื•ืช.

ื“ื•ื’ืžื” ืœื™ื™ืฉื•ื ื‘-PHP, Laravel, Laradock, Docker-Compose

ื .ื‘. ื›ืœ ื”ื“ื•ื’ืžืื•ืช ื ืขืฉื• ื‘-MacOS. ืจื•ื‘ื ื™ืขื‘ื“ื• ื’ื ืขื‘ื•ืจ ืœื™ื ื•ืงืก. ืžืฆื˜ืขืจื™ื, ืžืฉืชืžืฉื™ Windows, ืื‘ืœ ืœื ืขื‘ื“ืชื™ ืขื Windows ื‘ืžืฉืš ื–ืžืŸ ืจื‘.

ืชืืจื• ืœืขืฆืžื›ื ืžืฆื‘ ืฉืื™ืŸ ืœื ื• ืฉื•ื ื’ืจืกื” ืฉืœ PHP ืžื•ืชืงื ืช ื‘ืžื—ืฉื‘ ื”ืื™ืฉื™ ืฉืœื ื• ื•ืฉื•ื ื“ื‘ืจ ื‘ื›ืœืœ.
ื”ืชืงืŸ ืืช ื”ื’ืจืกืื•ืช ื”ืื—ืจื•ื ื•ืช ืฉืœ docker ื•-docker-compose. (ืืคืฉืจ ืœืžืฆื•ื ืืช ื–ื” ื‘ืื™ื ื˜ืจื ื˜)

docker -v && 
docker-compose -v

ืคื™ืชื•ื— ื™ื™ืฉื•ืžื™ื ื•ืคืจื™ืกื” ื›ื—ื•ืœ-ื™ืจื•ืง ืขืœ ื‘ืกื™ืก ืžืชื•ื“ื•ืœื•ื’ื™ื™ืช The Twelve-Factor App ืขื ื“ื•ื’ืžืื•ืช php ื•-docer

1. ืฉืžื ื• ืœืืจืื“ื•ืง

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

ืคื™ืชื•ื— ื™ื™ืฉื•ืžื™ื ื•ืคืจื™ืกื” ื›ื—ื•ืœ-ื™ืจื•ืง ืขืœ ื‘ืกื™ืก ืžืชื•ื“ื•ืœื•ื’ื™ื™ืช The Twelve-Factor App ืขื ื“ื•ื’ืžืื•ืช php ื•-docer

ืœื’ื‘ื™ ืœืจื“ื•ืง, ืื ื™ ืื’ื™ื“ ืฉื–ื” ื“ื‘ืจ ืžืื•ื“ ืžื’ื ื™ื‘, ืฉื‘ื• ื ืืกืคื™ื ื”ืจื‘ื” ืžื›ื•ืœื•ืช ื•ื“ื‘ืจื™ ืขื–ืจ. ืื‘ืœ ืœื ื”ื™ื™ืชื™ ืžืžืœื™ืฅ ืœื”ืฉืชืžืฉ ื‘-Laradock ื›ื›ื–ื” ืœืœื ืฉื™ื ื•ื™ื™ื ืœื™ื™ืฆื•ืจ ื‘ื’ืœืœ ื”ื™ืชื™ืจื•ืช ืฉืœื•. ืขื“ื™ืฃ ืœื™ืฆื•ืจ ืืช ื”ืงื•ื ื˜ื™ื™ื ืจื™ื ืฉืœืš ืขืœ ืกืžืš ื“ื•ื’ืžืื•ืช ื‘-Laradock, ื›ืš ืฉืชื”ื™ื” ื”ืจื‘ื” ืื•ืคื˜ื™ืžื™ื–ืฆื™ื”, ื›ื™ ืืฃ ืื—ื“ ืœื ืฆืจื™ืš ืืช ื›ืœ ืžื” ืฉื™ืฉ ื‘ื• ื–ืžื ื™ืช.

2. ื”ื’ื“ืจืช Laradock ื›ืš ืฉื”ืืคืœื™ืงืฆื™ื” ืฉืœื ื• ืชืขื‘ื•ื“.

cd laradock && 
cp env-example .env

ืคื™ืชื•ื— ื™ื™ืฉื•ืžื™ื ื•ืคืจื™ืกื” ื›ื—ื•ืœ-ื™ืจื•ืง ืขืœ ื‘ืกื™ืก ืžืชื•ื“ื•ืœื•ื’ื™ื™ืช The Twelve-Factor App ืขื ื“ื•ื’ืžืื•ืช php ื•-docer

2.1. ืคืชื— ืืช ืกืคืจื™ื™ืช ื”-habr (ืชื™ืงื™ื™ืช ื”ืื‘ ืฉืืœื™ื” ืžืฉื•ื‘ื˜ื™ื ืœืืจืื“ื•ืง) ื‘ื›ืœ ืขื•ืจืš. (ื‘ืžืงืจื” PHPStorm ืฉืœื™)

ื‘ืฉืœื‘ ื–ื”, ืฉืžื ื• ืจืง ืืช ืฉื ื”ืคืจื•ื™ืงื˜.

ืคื™ืชื•ื— ื™ื™ืฉื•ืžื™ื ื•ืคืจื™ืกื” ื›ื—ื•ืœ-ื™ืจื•ืง ืขืœ ื‘ืกื™ืก ืžืชื•ื“ื•ืœื•ื’ื™ื™ืช The Twelve-Factor App ืขื ื“ื•ื’ืžืื•ืช php ื•-docer

2.2. ืื ื• ืžืฉื™ืงื™ื ืืช ืชืžื•ื ืช ืกื‘ื™ื‘ืช ื”ืขื‘ื•ื“ื”. (ื‘ืžืงืจื” ืฉืœืš, ื”ืชืžื•ื ื•ืช ื™ื™ื‘ื ื• ืœื–ืžืŸ ืžื”)
Workspace ื”ื™ื ืชืžื•ื ื” ืฉื”ื•ื›ื ื” ื‘ืžื™ื•ื—ื“ ืœืขื‘ื•ื“ื” ืขื ื”ืžืกื’ืจืช ืžื˜ืขื ื”ืžืคืชื—.

ื”ื™ื›ื ืก ืœืชื•ืš ื”ืžื™ื›ืœ ืขื

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

ืคื™ืชื•ื— ื™ื™ืฉื•ืžื™ื ื•ืคืจื™ืกื” ื›ื—ื•ืœ-ื™ืจื•ืง ืขืœ ื‘ืกื™ืก ืžืชื•ื“ื•ืœื•ื’ื™ื™ืช The Twelve-Factor App ืขื ื“ื•ื’ืžืื•ืช php ื•-docer

2.3. ื”ืชืงื ืช Laravel

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

ืคื™ืชื•ื— ื™ื™ืฉื•ืžื™ื ื•ืคืจื™ืกื” ื›ื—ื•ืœ-ื™ืจื•ืง ืขืœ ื‘ืกื™ืก ืžืชื•ื“ื•ืœื•ื’ื™ื™ืช The Twelve-Factor App ืขื ื“ื•ื’ืžืื•ืช php ื•-docer

2.4. ืœืื—ืจ ื”ื”ืชืงื ื”, ืื ื• ื‘ื•ื“ืงื™ื ืื ื”ืกืคืจื™ื™ื” ืขื ื”ืคืจื•ื™ื™ืงื˜ ื ื•ืฆืจื”, ื•ื”ื•ืจื’ื™ื ืืช ื”ื›ืชื™ื‘ื”.

ls
exit
docker-compose down

ืคื™ืชื•ื— ื™ื™ืฉื•ืžื™ื ื•ืคืจื™ืกื” ื›ื—ื•ืœ-ื™ืจื•ืง ืขืœ ื‘ืกื™ืก ืžืชื•ื“ื•ืœื•ื’ื™ื™ืช The Twelve-Factor App ืขื ื“ื•ื’ืžืื•ืช php ื•-docer

2.5. ืื ื• ื—ื•ื–ืจื™ื ืœ-PHPStorm ื•ืžื’ื“ื™ืจื™ื ืืช ื”ื ืชื™ื‘ ื”ื ื›ื•ืŸ ืœืืคืœื™ืงืฆื™ื™ืช laravel ืฉืœื ื• ื‘ืงื•ื‘ืฅ .env.

ืคื™ืชื•ื— ื™ื™ืฉื•ืžื™ื ื•ืคืจื™ืกื” ื›ื—ื•ืœ-ื™ืจื•ืง ืขืœ ื‘ืกื™ืก ืžืชื•ื“ื•ืœื•ื’ื™ื™ืช The Twelve-Factor App ืขื ื“ื•ื’ืžืื•ืช php ื•-docer

3. ื”ื•ืกืฃ ืืช ื›ืœ ื”ืงื•ื“ ืœ-Git.

ืœืฉื ื›ืš, ื ื™ืฆื•ืจ ืžืื’ืจ ื‘- Github (ืื• ื‘ื›ืœ ืžืงื•ื ืื—ืจ). ื‘ื•ื ื ืœืš ืœืกืคืจื™ื™ืช habr ื‘ื˜ืจืžื™ื ืœ ื•ื ื‘ืฆืข ืืช ื”ืงื•ื“ ื”ื‘ื.

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

ืื ื—ื ื• ื‘ื•ื“ืงื™ื ืื ื”ื›ืœ ืชืงื™ืŸ.

ืคื™ืชื•ื— ื™ื™ืฉื•ืžื™ื ื•ืคืจื™ืกื” ื›ื—ื•ืœ-ื™ืจื•ืง ืขืœ ื‘ืกื™ืก ืžืชื•ื“ื•ืœื•ื’ื™ื™ืช The Twelve-Factor App ืขื ื“ื•ื’ืžืื•ืช php ื•-docer

ืžื˜ืขืžื™ ื ื•ื—ื•ืช, ืื ื™ ืžืžืœื™ืฅ ืœื”ืฉืชืžืฉ ื‘ืžืžืฉืง ื•ื™ื–ื•ืืœื™ ื›ืœืฉื”ื• ืขื‘ื•ืจ Git, ื‘ืžืงืจื” ืฉืœื™ ื–ื”ื• GitKraken. (ืงื™ืฉื•ืจ ืœื”ืคื ื™ื” ื›ืืŸ)

4. ื”ืฉืงื”!

ืœืคื ื™ ืฉืชืชื—ื™ืœ, ื•ื“ื ืฉืื™ืŸ ืœืš ืฉื•ื ื“ื‘ืจ ืชืœื•ื™ ื‘ื™ืฆื™ืื•ืช 80 ื•-443.

docker-compose up -d nginx php-fpm

ืคื™ืชื•ื— ื™ื™ืฉื•ืžื™ื ื•ืคืจื™ืกื” ื›ื—ื•ืœ-ื™ืจื•ืง ืขืœ ื‘ืกื™ืก ืžืชื•ื“ื•ืœื•ื’ื™ื™ืช The Twelve-Factor App ืขื ื“ื•ื’ืžืื•ืช php ื•-docer

ืœืคื™ื›ืš, ื”ืคืจื•ื™ืงื˜ ืฉืœื ื• ืžื•ืจื›ื‘ ืž-3 ืฉื™ืจื•ืชื™ื ื ืคืจื“ื™ื:

  • nginx - ืฉืจืช ืื™ื ื˜ืจื ื˜
  • php-fpm - php ืœืงื‘ืœืช ื‘ืงืฉื•ืช ืžืฉืจืช ืื™ื ื˜ืจื ื˜
  • ืกื‘ื™ื‘ืช ืขื‘ื•ื“ื” - php ืœืžืคืชื—ื™ื

ื›ืจื’ืข, ื”ืฉื’ื ื• ืฉื™ืฆืจื ื• ืืคืœื™ืงืฆื™ื” ื”ืžืงื‘ื™ืœื” ืœ-4 ื ืงื•ื“ื•ืช ืžืชื•ืš 12, ื›ืœื•ืžืจ:

1. ื‘ืกื™ืก ืงื•ื“ - ื›ืœ ื”ืงื•ื“ ื ืžืฆื ื‘ืžืื’ืจ ืื—ื“ (ื”ืขืจื” ืงื˜ื ื”: ืื•ืœื™ ื ื›ื•ืŸ ืœื”ื›ื ื™ืก ืืช docker ืœืคืจื•ื™ืงื˜ laravel, ืื‘ืœ ื–ื” ืœื ื—ืฉื•ื‘).

2. ืชืœื•ืช - ื›ืœ ื”ืชืœื•ืช ืฉืœื ื• ื›ืชื•ื‘ื” ื‘ืžืคื•ืจืฉ ื‘-application/composer.json ื•ื‘ื›ืœ Dockerfile ืฉืœ ื›ืœ ืžื™ื›ืœ.

3. ืฉื™ืจื•ืชื™ ืฆื“ ืฉืœื™ืฉื™ (ืฉื™ืจื•ืชื™ ื’ื™ื‘ื•ื™) - ื›ืœ ืื—ื“ ืžื”ืฉื™ืจื•ืชื™ื (php-fom, nignx, workspace) ื—ื™ ืืช ื—ื™ื™ื• ื•ืžื—ื•ื‘ืจ ืžื‘ื—ื•ืฅ ื•ื›ืืฉืจ ืขื•ื‘ื“ื™ื ืขื ืฉื™ืจื•ืช ืื—ื“, ื”ืฉื ื™ ืœื ื™ื•ืฉืคืข.

4. ะŸั€ะพั†ะตััั‹ ื›ืœ ืฉื™ืจื•ืช ื”ื•ื ืชื”ืœื™ืš ืื—ื“. ื›ืœ ืฉื™ืจื•ืช ืื™ื ื• ืžืื—ืกืŸ ืžืฆื‘ ืคื ื™ืžื™.

5. ื›ืจื™ื›ืช ื ืžืœ

docker ps

ืคื™ืชื•ื— ื™ื™ืฉื•ืžื™ื ื•ืคืจื™ืกื” ื›ื—ื•ืœ-ื™ืจื•ืง ืขืœ ื‘ืกื™ืก ืžืชื•ื“ื•ืœื•ื’ื™ื™ืช The Twelve-Factor App ืขื ื“ื•ื’ืžืื•ืช php ื•-docer

ื›ืคื™ ืฉืื ื• ื™ื›ื•ืœื™ื ืœืจืื•ืช, ื›ืœ ืฉื™ืจื•ืช ืคื•ืขืœ ื‘ื ืžืœ ืžืฉืœื• ื•ื–ืžื™ืŸ ืœื›ืœ ื”ืฉื™ืจื•ืชื™ื ื”ืื—ืจื™ื.

6. ื‘ืžืงื‘ื™ืœ

Docker ืžืืคืฉืจ ืœื ื• ืœื”ื•ืœื™ื“ ืžืกืคืจ ืชื”ืœื™ื›ื™ื ืฉืœ ืื•ืชื ืฉื™ืจื•ืชื™ื ืขื ืื™ื–ื•ืŸ ืขื•ืžืกื™ื ืื•ื˜ื•ืžื˜ื™ ื‘ื™ื ื™ื”ื.

ืขืฆื•ืจ ืžื›ื•ืœื•ืช ื•ื”ืชื—ืœ ืื•ืชืŸ ืขื ื“ื’ืœ --ืกื•ึผืœึธื

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

ืคื™ืชื•ื— ื™ื™ืฉื•ืžื™ื ื•ืคืจื™ืกื” ื›ื—ื•ืœ-ื™ืจื•ืง ืขืœ ื‘ืกื™ืก ืžืชื•ื“ื•ืœื•ื’ื™ื™ืช The Twelve-Factor App ืขื ื“ื•ื’ืžืื•ืช php ื•-docer

ื›ืคื™ ืฉืื ื• ื™ื›ื•ืœื™ื ืœืจืื•ืช, ืœืžื™ื›ืœ php-fpm ื™ืฉ ืขื•ืชืงื™ื. ืื ื—ื ื• ืœื ืฆืจื™ื›ื™ื ืœืฉื ื•ืช ืฉื•ื ื“ื‘ืจ ื‘ืขื‘ื•ื“ื” ืขื ืžื™ื›ืœ ื–ื”. ืื ื—ื ื• ืžืžืฉื™ื›ื™ื ืœื’ืฉืช ืืœื™ื• ื’ื ื‘ื ืžืœ 9000, ื•ื“ื•ืงืจ ืžื•ื•ืกืช ืขื‘ื•ืจื ื• ืืช ื”ืขื•ืžืก ื‘ื™ืŸ ื”ืžื›ื•ืœื•ืช.

7. ื—ื“ ืคืขืžื™ื•ืช - ื ื™ืชืŸ ืœื”ืจื•ื’ ื›ืœ ืžื™ื›ืœ ืžื‘ืœื™ ืœืคื’ื•ืข ื‘ืฉื ื™. ืขืฆื™ืจื” ืื• ื”ืคืขืœื” ืžื—ื“ืฉ ืฉืœ ื”ืžื›ื•ืœื” ืœื ืชืฉืคื™ืข ืขืœ ืคืขื•ืœืช ื”ืืคืœื™ืงืฆื™ื” ื‘ื”ืฉืงื•ืช ื”ื‘ืื•ืช. ื ื™ืชืŸ ื’ื ืœื”ืจื™ื ื›ืœ ืžื™ื›ืœ ื‘ื›ืœ ืขืช.

8. ื”ืชืืžื” ืœืคื™ืชื•ื— ืืคืœื™ืงืฆื™ื•ืช/ืชืคืขื•ืœ ื›ืœ ื”ืกื‘ื™ื‘ื•ืช ืฉืœื ื• ื–ื”ื•ืช. ืขืœ ื™ื“ื™ ื”ืคืขืœืช ื”ืžืขืจื›ืช ืขืœ ื”ืฉืจืช ื‘ื™ื™ืฆื•ืจ, ืื™ื ืš ืฆืจื™ืš ืœืฉื ื•ืช ื“ื‘ืจ ื‘ืคืงื•ื“ื•ืช ืฉืœืš. ื”ื›ืœ ื™ืชื‘ืกืก ืขืœ Docker ื‘ืื•ืชื• ืื•ืคืŸ.

9. ืจื™ืฉื•ื - ื›ืœ ื”ื™ื•ืžื ื™ื ื‘ืžื›ื•ืœื•ืช ื”ืืœื” ืขื•ื‘ืจื™ื ืœื–ืจื ื•ื’ืœื•ื™ื™ื ื‘ืžืกื•ืฃ Docker. (ื‘ืžืงืจื” ื–ื”, ืœืžืขืฉื”, ืขื ืžื™ื›ืœื™ื ืชื•ืฆืจืช ื‘ื™ืช ืื—ืจื™ื, ื™ื™ืชื›ืŸ ืฉื–ื” ืœื ื™ืงืจื” ืื ืœื ืชื˜ืคืœ ื‘ื–ื”)

 docker-compose logs -f

ืคื™ืชื•ื— ื™ื™ืฉื•ืžื™ื ื•ืคืจื™ืกื” ื›ื—ื•ืœ-ื™ืจื•ืง ืขืœ ื‘ืกื™ืก ืžืชื•ื“ื•ืœื•ื’ื™ื™ืช The Twelve-Factor App ืขื ื“ื•ื’ืžืื•ืช php ื•-docer

ืื‘ืœ, ื™ืฉ ืœื™ืงื•ื™ ื‘ื›ืš ืฉืขืจื›ื™ ื‘ืจื™ืจืช ื”ืžื—ื“ืœ ื‘-PHP ื•ื‘-Nginx ื›ื•ืชื‘ื™ื ื’ื ื™ื•ืžื ื™ื ืœืงื•ื‘ืฅ. ื›ื“ื™ ืœืขืžื•ื“ ื‘-12 ื”ื’ื•ืจืžื™ื, ืืชื” ืฆืจื™ืš ืœื”ืชื ืชืง ื›ืชื™ื‘ืช ื™ื•ืžื ื™ื ืœืงื•ื‘ืฅ ื‘ืชืฆื•ืจื•ืช ืฉืœ ื›ืœ ืžื™ื›ืœ ื‘ื ืคืจื“.

Docker ืžืกืคืง ื’ื ืืช ื”ื™ื›ื•ืœืช ืœืฉืœื•ื— ื™ื•ืžื ื™ื ืœื ืจืง ืœ-stdout, ืืœื ื’ื ืœื“ื‘ืจื™ื ื›ืžื• Graylog, ืฉื”ื–ื›ืจืชื™ ืœืžืขืœื”. ื•ื‘ืชื•ืš graylog, ืื ื• ื™ื›ื•ืœื™ื ืœืคืขื•ืœ ืขื ื™ื•ืžื ื™ื ื›ืจืฆื•ื ื ื• ื•ื”ืืคืœื™ืงืฆื™ื” ืฉืœื ื• ืœื ืชื‘ื—ื™ืŸ ื‘ื›ืš ื‘ืฉื•ื ืฆื•ืจื”.

10. ืžืฉื™ืžื•ืช ื ื™ื”ื•ืœ - ื›ืœ ืžืฉื™ืžื•ืช ื”ื ื™ื”ื•ืœ ื ืคืชืจื•ืช ืขืœ ื™ื“ื™ laravel ื”ื•ื“ื•ืช ืœื›ืœื™ ื”ืื•ืžืŸ ื‘ื“ื™ื•ืง ื›ืคื™ ืฉื™ืจืฆื• ื”ื™ื•ืฆืจื™ื ืฉืœ ื™ื™ืฉื•ื 12 ื”ื’ื•ืจืžื™ื.

ื›ื“ื•ื’ืžื”, ืืจืื” ื›ื™ืฆื“ ืžื•ืคืขืœื•ืช ืคืงื•ื“ื•ืช ืžืกื•ื™ืžื•ืช.
ืื ื—ื ื• ื ื›ื ืกื™ื ืœืžื™ื›ืœ.

 
docker-compose exec workspace bash
php artisan list

ืคื™ืชื•ื— ื™ื™ืฉื•ืžื™ื ื•ืคืจื™ืกื” ื›ื—ื•ืœ-ื™ืจื•ืง ืขืœ ื‘ืกื™ืก ืžืชื•ื“ื•ืœื•ื’ื™ื™ืช The Twelve-Factor App ืขื ื“ื•ื’ืžืื•ืช php ื•-docer

ืขื›ืฉื™ื• ืื ื—ื ื• ื™ื›ื•ืœื™ื ืœื”ืฉืชืžืฉ ื‘ื›ืœ ืคืงื•ื“ื”. (ืฉื™ืžื• ืœื‘ ืฉืœื ื”ื’ื“ืจื ื• ืืช ืžืกื“ ื”ื ืชื•ื ื™ื ื•ื”ืžื˜ืžื•ืŸ, ื•ืœื›ืŸ ืžื—ืฆื™ืช ืžื”ืคืงื•ื“ื•ืช ืœื ื™ื‘ื•ืฆืขื• ื›ื”ืœื›ื”, ื›ื™ ื”ืŸ ื ื•ืขื“ื• ืœืขื‘ื•ื“ ืขื ื”ืžื˜ืžื•ืŸ ื•ื”ืžืื’ืจ).

ืคื™ืชื•ื— ื™ื™ืฉื•ืžื™ื ื•ืคืจื™ืกื” ื›ื—ื•ืœ-ื™ืจื•ืง ืขืœ ื‘ืกื™ืก ืžืชื•ื“ื•ืœื•ื’ื™ื™ืช The Twelve-Factor App ืขื ื“ื•ื’ืžืื•ืช php ื•-docer

11. ืชืฆื•ืจื•ืช ื•- 12. ืœื‘ื ื•ืช, ืœืฉื—ืจืจ, ืœืจื•ืฅ

ืจืฆื™ืชื™ ืœื”ืงื“ื™ืฉ ืืช ื”ื—ืœืง ื”ื–ื” ืœืคืจื™ืกื” ื›ื—ื•ืœื”-ื™ืจื•ืงื”, ืื‘ืœ ื”ืชื‘ืจืจ ืฉื”ื•ื ืžืคื•ืจื˜ ืžื“ื™ ืขื‘ื•ืจ ืžืืžืจ ื–ื”. ืื›ืชื•ื‘ ืขืœ ื–ื” ืžืืžืจ ื ืคืจื“.

ื‘ืงื™ืฆื•ืจ, ื”ืจืขื™ื•ืŸ ืžื‘ื•ืกืก ืขืœ ืžืขืจื›ื•ืช CI/CD ื›ืžื• ื’'ื ืงื™ื ืก ะธ Gitlab CI. ื‘ืฉื ื™ื”ื ื ื™ืชืŸ ืœื”ื’ื“ื™ืจ ืžืฉืชื ื™ ืกื‘ื™ื‘ื” ื”ืžืฉื•ื™ื›ื™ื ืœืกื‘ื™ื‘ื” ืกืคืฆื™ืคื™ืช. ืœืคื™ื›ืš, ื‘ืชืจื—ื™ืฉ ื–ื”, ืกืขื™ืฃ ื’ ืชืฆื•ืจื•ืช.

ื•ื”ื ืงื•ื“ื” ืœื’ื‘ื™ ืœื‘ื ื•ืช, ืœืฉื—ืจืจ, ืœืจื•ืฅ ื ืคืชืจื” ืขืœ ื™ื“ื™ ื”ืคื•ื ืงืฆื™ื•ืช ื”ืžื•ื‘ื ื•ืช ื‘ืฉื ื™ ื›ืœื™ ื”ืฉื™ืจื•ืช ื”ื ืงืจืื™ื ืฆื™ื ื•ืจ.

ืฆื™ื ื•ืจ ืžืืคืฉืจ ืœื—ืœืง ืืช ืชื”ืœื™ืš ื”ืคืจื™ืกื” ืœื”ืจื‘ื” ืฉืœื‘ื™ื, ืชื•ืš ื”ื“ื’ืฉืช ืฉืœื‘ื™ ื”ื”ืจื›ื‘ื”, ื”ืฉื—ืจื•ืจ ื•ื”ื‘ื™ืฆื•ืข. ื’ื ื‘-Pipeline ืชื•ื›ืœื• ืœื™ืฆื•ืจ ื’ื™ื‘ื•ื™ื™ื, ื•ืื›ืŸ ื›ืœ ื“ื‘ืจ. ืœื›ืœื™ ื–ื” ื™ืฉ ืคื•ื˜ื ืฆื™ืืœ ื‘ืœืชื™ ืžื•ื’ื‘ืœ.

ืงื•ื“ ื”ืืคืœื™ืงืฆื™ื” ืคื•ืขืœ GitHub.
ืืœ ืชืฉื›ื— ืœืืชื—ืœ ืืช ืชืช-ืžื•ื“ื•ืœ ื‘ืขืช ืฉื™ื‘ื•ื˜ ื”ืžืื’ืจ ื”ื–ื”.

ื .ื‘: ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ื›ืœ ื”ื’ื™ืฉื•ืช ื”ืœืœื• ืขื ื›ืœ ื›ืœื™ ืขื–ืจ ื•ืฉืคื•ืช ืชื›ื ื•ืช ืื—ืจื•ืช. ื”ืขื™ืงืจ ืฉื”ืžื”ื•ืช ืœื ืฉื•ื ื”.

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”